@frontlinesystems/rason-mcp-server 2026.5.1 → 2026.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +35 -35
- package/examples/EXAMPLES_REFERENCE.md +128 -128
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic.json +111 -111
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic2.json +108 -108
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic3.json +111 -111
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic4.json +99 -99
- package/examples/{optimization → Optimization}/Conic/AirlineHubConic5.json +101 -101
- package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv.json +81 -81
- package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv4.json +96 -96
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel.json +73 -73
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel1.json +86 -86
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel11.json +108 -108
- package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel2.json +77 -77
- package/examples/{optimization → Optimization}/DataBinding/ProductMixTab.json +89 -89
- package/examples/{optimization → Optimization}/DataBinding/ProductMixTab1.json +73 -73
- package/examples/{optimization → Optimization}/DataBinding/ProductMixTab2.json +77 -77
- package/examples/{optimization → Optimization}/Linear/Inventory.json +199 -199
- package/examples/{optimization → Optimization}/Linear/Matop.json +119 -119
- package/examples/{optimization → Optimization}/Linear/ProductMix.json +97 -97
- package/examples/{optimization → Optimization}/Linear/ProductMix2.json +72 -72
- package/examples/{optimization → Optimization}/Linear/ProductMix3.json +49 -49
- package/examples/{optimization → Optimization}/Linear/ProductMix4.json +56 -56
- package/examples/{optimization → Optimization}/Linear/ProductMixCsv1.json +106 -106
- package/examples/{optimization → Optimization}/Linear/ProductMixCsv2.json +106 -106
- package/examples/{optimization → Optimization}/Linear/ProductMixSQL11.json +82 -82
- package/examples/{optimization → Optimization}/Linear/Rowop.json +126 -126
- package/examples/{optimization → Optimization}/NonLinear/AirlineHub.json +63 -63
- package/examples/{optimization → Optimization}/NonLinear/AirlineHub2.json +47 -47
- package/examples/{optimization → Optimization}/NonLinear/AirlineHub3.json +47 -47
- package/examples/{optimization → Optimization}/NonSmooth/Inventory2.json +159 -159
- package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt.json +55 -55
- package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt2.json +65 -65
- package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyChance.json +78 -78
- package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect.json +77 -77
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect2.json +81 -81
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect3.json +84 -84
- package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect4.json +74 -74
- package/examples/{simulation → Simulation}/CandyStoreSalesUsingSIP.json +147 -147
- package/examples/{simulation → Simulation}/CollegeFundGrowth1.json +423 -423
- package/examples/{simulation → Simulation}/CollegeFundGrowth1SIPModel.json +27 -27
- package/examples/{simulation → Simulation}/CollegeFundGrowth2.json +415 -415
- package/examples/{simulation → Simulation}/CollegeFundGrowthSIP.json +401 -401
- package/examples/{simulation → Simulation}/GBMSimulationModel.json +236 -236
- package/examples/{simulation → Simulation}/YieldManagement(Sim).json +69 -69
- package/examples/{simulation → Simulation}/YieldManagement2(Sim).json +72 -72
- package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
- package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
- package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
- package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
- package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
- package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
- package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
- package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
- package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
- package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
- package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
- package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
- package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
- package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
- package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
- package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
- package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
- package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
- package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
- package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
- package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
- package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
- package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
- package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
- package/examples/datamining/Classification/DecisionTree.json +90 -90
- package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
- package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
- package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
- package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
- package/examples/datamining/Classification/FindBestModel.json +86 -86
- package/examples/datamining/Classification/LogisticRegression.json +82 -82
- package/examples/datamining/Classification/NaiveBayes.json +78 -78
- package/examples/datamining/Classification/NearestNeighbors.json +84 -84
- package/examples/datamining/Classification/NeuralNetwork.json +92 -92
- package/examples/datamining/Clustering/Hierarchical.json +54 -54
- package/examples/datamining/Clustering/KMeans.json +71 -71
- package/examples/datamining/DataSources/DelimitedFile.json +49 -49
- package/examples/datamining/DataSources/JSONFile.json +49 -49
- package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
- package/examples/datamining/DataSources/MSExcelTable.json +50 -50
- package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
- package/examples/datamining/DataSources/ODATATable.json +49 -49
- package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
- package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
- package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
- package/examples/datamining/FeatureSelection/Univariate.json +78 -78
- package/examples/datamining/Regression/DecisionTree.json +82 -82
- package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
- package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
- package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
- package/examples/datamining/Regression/FindBestModel.json +86 -86
- package/examples/datamining/Regression/LinearRegression.json +124 -124
- package/examples/datamining/Regression/NearestNeighbors.json +77 -77
- package/examples/datamining/Regression/NeuralNetwork.json +82 -82
- package/examples/datamining/Scoring/JSONClassifier.json +62 -62
- package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
- package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
- package/examples/datamining/Scoring/JSONForecaster.json +49 -49
- package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
- package/examples/datamining/Scoring/JSONPCA.json +41 -41
- package/examples/datamining/Scoring/JSONRegressor.json +56 -56
- package/examples/datamining/Scoring/JSONTransformer.json +38 -38
- package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
- package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
- package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
- package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
- package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
- package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
- package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
- package/examples/datamining/Summarizer/Summarization.json +54 -54
- package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
- package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
- package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
- package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
- package/examples/datamining/TimeSeries/Arima.json +74 -74
- package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
- package/examples/datamining/TimeSeries/Exponential.json +64 -64
- package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
- package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
- package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
- package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
- package/examples/datamining/Transformation/Binning.json +69 -69
- package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
- package/examples/datamining/Transformation/CategoryReduction.json +51 -51
- package/examples/datamining/Transformation/Factorization.json +50 -50
- package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
- package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
- package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
- package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
- package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
- package/examples/datamining/Transformation/Partitioning.json +46 -46
- package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
- package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
- package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
- package/examples/datamining/Transformation/Rescaling.json +67 -67
- package/examples/datamining/Transformation/Sampling.json +43 -43
- package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
- package/examples/flow/SQLServerTransform.json +260 -260
- package/examples/flow/dm-calc-pipeline.json +277 -277
- package/examples/flow/dm-pipeline-simulation.json +113 -113
- package/examples/flow/opt-sim-pipeline.json +159 -159
- package/examples/flow/sim-dm-pipeline.json +106 -106
- package/examples/flow/sim-sim-pipeline.json +136 -136
- package/examples/index.json +4678 -4678
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
- package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
- package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
- package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
- package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
- package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
- package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
- package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
- package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
- package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
- package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
- package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
- package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
- package/examples/rason-features/UserGuide/UGForecast.json +50 -50
- package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
- package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
- package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
- package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
- package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
- package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
- package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
- package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
- package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
- package/out/index.cjs +1 -1
- package/package.json +3 -2
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "AirlineHubConic5Example",
|
|
3
|
-
"modelDescription": "Airline Hub Conic 5 RASON Optimization Example: This model minimizes the distance between several regional airports and a proposed hub location. The difference between this example and the original AirlineHubConicExample is that this example illustrates how to 'slice' an array. For a complete description of this model, see AirlineHubConic Example.",
|
|
4
|
-
"modelType": "optimization",
|
|
5
|
-
"engineSettings": {
|
|
6
|
-
"comment": "Since this model uses conic constraints, the SOCP Barrier engine must be selected.",
|
|
7
|
-
"engine": "SOCP Barrier"
|
|
8
|
-
},
|
|
9
|
-
"variables": {
|
|
10
|
-
"comment": "There are 21 total decision variables in the optimization model.",
|
|
11
|
-
"x": {
|
|
12
|
-
"comment": "X coordinate of proposed hub.",
|
|
13
|
-
"value": 1.0,
|
|
14
|
-
"finalValue": []
|
|
15
|
-
},
|
|
16
|
-
"y": {
|
|
17
|
-
"comment": "y coordinate of proposed hub.",
|
|
18
|
-
"value": 1.0,
|
|
19
|
-
"finalValue": []
|
|
20
|
-
},
|
|
21
|
-
"z": {
|
|
22
|
-
"comment": "Artificial z variable. Used in the objective that is being minimized. The effect of this variable being minimized coupled with the constraint z >= v[1, ] will result in cell z being equal to the maximum of v[1, ], in the final solution.",
|
|
23
|
-
"value": 1.0,
|
|
24
|
-
"finalValue": []
|
|
25
|
-
},
|
|
26
|
-
"v": {
|
|
27
|
-
"comment": "In this example, the f, g and h variable arrays in the AirlineHubConic3Example have been combined into 1 array, the v array.",
|
|
28
|
-
"dimensions": [ 3, 6 ],
|
|
29
|
-
"value": 1.0
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"data": {
|
|
33
|
-
"comment": "The data section (optional) can be used to setup constant arrays or generate formulas to be utilized in the constraints and objective. ",
|
|
34
|
-
"corx": {
|
|
35
|
-
"comment": "This array contains the x coordinates for each regional airport.",
|
|
36
|
-
"dimensions": [ 6 ],
|
|
37
|
-
"binding": "get",
|
|
38
|
-
"value": [ 1, 0.5, 2, 2, 2, 0.5 ]
|
|
39
|
-
},
|
|
40
|
-
"cory": {
|
|
41
|
-
"comment": "This array contains the y coordinates for each regional airport.",
|
|
42
|
-
"dimensions": [ 6 ],
|
|
43
|
-
"binding": "get",
|
|
44
|
-
"value": [ 4, 3, 4, 2, 5, 6 ]
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"constraints": {
|
|
48
|
-
"dx": {
|
|
49
|
-
"comment": "The differences between the x coordinates of the hub and each regional airport. This constraint is set equal to the v[2, ] array, previously the g array.",
|
|
50
|
-
"dimensions": [ 6 ],
|
|
51
|
-
"formula": "corx - x - transpose(v[2,])",
|
|
52
|
-
"lower": 0,
|
|
53
|
-
"upper": 0
|
|
54
|
-
},
|
|
55
|
-
"dy": {
|
|
56
|
-
"comment": "The differences between the y coordinates of the hub and each regional airport. This constraint is set equal to the v[3, ] variables, previously the h array.",
|
|
57
|
-
"dimensions": [ 6 ],
|
|
58
|
-
"formula": "cory - y - transpose(v[3,])",
|
|
59
|
-
"lower": 0,
|
|
60
|
-
"upper": 0
|
|
61
|
-
},
|
|
62
|
-
"dz": {
|
|
63
|
-
"comment": "The effect of this constraint, coupled with the minimization of the z artificial variable, results in the artificial variable becoming equal to the maximum value in the v[1, ] variable array, in the final solution.",
|
|
64
|
-
"dimensions": [ 6 ],
|
|
65
|
-
"formula": "transpose(v[1,]) - z",
|
|
66
|
-
"upper": 0
|
|
67
|
-
},
|
|
68
|
-
"cone1": {
|
|
69
|
-
"comment": "This comment applies to all 6 cone constraints, below. Each set of 3 variables, for example, v[1,1], v[2,1] and v[3,1], must belong to a second order cone constraint which can be rewritten as v[1,1] >= SQRT(SumSQ(v[2,1],v[3,1]). These 6 conic constraints replace the nonlinear distance calculation in the original AirlineHub example.",
|
|
70
|
-
"value": "v[,1]",
|
|
71
|
-
"type": "cone"
|
|
72
|
-
},
|
|
73
|
-
"cone2": {
|
|
74
|
-
"value": "v[,2]",
|
|
75
|
-
"type": "cone"
|
|
76
|
-
},
|
|
77
|
-
"cone3": {
|
|
78
|
-
"value": "v[,3]",
|
|
79
|
-
"type": "cone"
|
|
80
|
-
},
|
|
81
|
-
"cone4": {
|
|
82
|
-
"value": "v[,4]",
|
|
83
|
-
"type": "cone"
|
|
84
|
-
},
|
|
85
|
-
"cone5": {
|
|
86
|
-
"value": "v[,5]",
|
|
87
|
-
"type": "cone"
|
|
88
|
-
},
|
|
89
|
-
"cone6": {
|
|
90
|
-
"value": "v[,6]",
|
|
91
|
-
"type": "cone"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
"objective": {
|
|
95
|
-
"obj": {
|
|
96
|
-
"comment": "The objective, the z variable, is a decision variable being minimized. The effect of this variable being minimized, coupled with the dz constraint, results in the z variable being equal to the max of v[1,1], v[1,2], v[1,3], v[1,4], v[1,5], v[1,6] variable values in the final solution.",
|
|
97
|
-
"formula": "z",
|
|
98
|
-
"type": "minimize",
|
|
99
|
-
"finalValue": []
|
|
100
|
-
}
|
|
101
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "AirlineHubConic5Example",
|
|
3
|
+
"modelDescription": "Airline Hub Conic 5 RASON Optimization Example: This model minimizes the distance between several regional airports and a proposed hub location. The difference between this example and the original AirlineHubConicExample is that this example illustrates how to 'slice' an array. For a complete description of this model, see AirlineHubConic Example.",
|
|
4
|
+
"modelType": "optimization",
|
|
5
|
+
"engineSettings": {
|
|
6
|
+
"comment": "Since this model uses conic constraints, the SOCP Barrier engine must be selected.",
|
|
7
|
+
"engine": "SOCP Barrier"
|
|
8
|
+
},
|
|
9
|
+
"variables": {
|
|
10
|
+
"comment": "There are 21 total decision variables in the optimization model.",
|
|
11
|
+
"x": {
|
|
12
|
+
"comment": "X coordinate of proposed hub.",
|
|
13
|
+
"value": 1.0,
|
|
14
|
+
"finalValue": []
|
|
15
|
+
},
|
|
16
|
+
"y": {
|
|
17
|
+
"comment": "y coordinate of proposed hub.",
|
|
18
|
+
"value": 1.0,
|
|
19
|
+
"finalValue": []
|
|
20
|
+
},
|
|
21
|
+
"z": {
|
|
22
|
+
"comment": "Artificial z variable. Used in the objective that is being minimized. The effect of this variable being minimized coupled with the constraint z >= v[1, ] will result in cell z being equal to the maximum of v[1, ], in the final solution.",
|
|
23
|
+
"value": 1.0,
|
|
24
|
+
"finalValue": []
|
|
25
|
+
},
|
|
26
|
+
"v": {
|
|
27
|
+
"comment": "In this example, the f, g and h variable arrays in the AirlineHubConic3Example have been combined into 1 array, the v array.",
|
|
28
|
+
"dimensions": [ 3, 6 ],
|
|
29
|
+
"value": 1.0
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"data": {
|
|
33
|
+
"comment": "The data section (optional) can be used to setup constant arrays or generate formulas to be utilized in the constraints and objective. ",
|
|
34
|
+
"corx": {
|
|
35
|
+
"comment": "This array contains the x coordinates for each regional airport.",
|
|
36
|
+
"dimensions": [ 6 ],
|
|
37
|
+
"binding": "get",
|
|
38
|
+
"value": [ 1, 0.5, 2, 2, 2, 0.5 ]
|
|
39
|
+
},
|
|
40
|
+
"cory": {
|
|
41
|
+
"comment": "This array contains the y coordinates for each regional airport.",
|
|
42
|
+
"dimensions": [ 6 ],
|
|
43
|
+
"binding": "get",
|
|
44
|
+
"value": [ 4, 3, 4, 2, 5, 6 ]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"constraints": {
|
|
48
|
+
"dx": {
|
|
49
|
+
"comment": "The differences between the x coordinates of the hub and each regional airport. This constraint is set equal to the v[2, ] array, previously the g array.",
|
|
50
|
+
"dimensions": [ 6 ],
|
|
51
|
+
"formula": "corx - x - transpose(v[2,])",
|
|
52
|
+
"lower": 0,
|
|
53
|
+
"upper": 0
|
|
54
|
+
},
|
|
55
|
+
"dy": {
|
|
56
|
+
"comment": "The differences between the y coordinates of the hub and each regional airport. This constraint is set equal to the v[3, ] variables, previously the h array.",
|
|
57
|
+
"dimensions": [ 6 ],
|
|
58
|
+
"formula": "cory - y - transpose(v[3,])",
|
|
59
|
+
"lower": 0,
|
|
60
|
+
"upper": 0
|
|
61
|
+
},
|
|
62
|
+
"dz": {
|
|
63
|
+
"comment": "The effect of this constraint, coupled with the minimization of the z artificial variable, results in the artificial variable becoming equal to the maximum value in the v[1, ] variable array, in the final solution.",
|
|
64
|
+
"dimensions": [ 6 ],
|
|
65
|
+
"formula": "transpose(v[1,]) - z",
|
|
66
|
+
"upper": 0
|
|
67
|
+
},
|
|
68
|
+
"cone1": {
|
|
69
|
+
"comment": "This comment applies to all 6 cone constraints, below. Each set of 3 variables, for example, v[1,1], v[2,1] and v[3,1], must belong to a second order cone constraint which can be rewritten as v[1,1] >= SQRT(SumSQ(v[2,1],v[3,1]). These 6 conic constraints replace the nonlinear distance calculation in the original AirlineHub example.",
|
|
70
|
+
"value": "v[,1]",
|
|
71
|
+
"type": "cone"
|
|
72
|
+
},
|
|
73
|
+
"cone2": {
|
|
74
|
+
"value": "v[,2]",
|
|
75
|
+
"type": "cone"
|
|
76
|
+
},
|
|
77
|
+
"cone3": {
|
|
78
|
+
"value": "v[,3]",
|
|
79
|
+
"type": "cone"
|
|
80
|
+
},
|
|
81
|
+
"cone4": {
|
|
82
|
+
"value": "v[,4]",
|
|
83
|
+
"type": "cone"
|
|
84
|
+
},
|
|
85
|
+
"cone5": {
|
|
86
|
+
"value": "v[,5]",
|
|
87
|
+
"type": "cone"
|
|
88
|
+
},
|
|
89
|
+
"cone6": {
|
|
90
|
+
"value": "v[,6]",
|
|
91
|
+
"type": "cone"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"objective": {
|
|
95
|
+
"obj": {
|
|
96
|
+
"comment": "The objective, the z variable, is a decision variable being minimized. The effect of this variable being minimized, coupled with the dz constraint, results in the z variable being equal to the max of v[1,1], v[1,2], v[1,3], v[1,4], v[1,5], v[1,6] variable values in the final solution.",
|
|
97
|
+
"formula": "z",
|
|
98
|
+
"type": "minimize",
|
|
99
|
+
"finalValue": []
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
102
|
}
|
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixCsvExample",
|
|
3
|
-
"modelDescription": "RASON model example of using CSV table binding: The product mix example is used to illustrate how to bind table elements to a data source. Recall that the product mix example finds the optimal number of products to produce in order to maximize the total profit.",
|
|
4
|
-
"modelType": "optimization",
|
|
5
|
-
"datasources": {
|
|
6
|
-
"comment": "Use this section to import or export data. There are 3 datasources (parts_data, invent_data, profit_data) that import data. Download all 3 data source files by clicking the download icon on the Editor tab ribbon. Then attach all 3 files by clicking Choose Files in the Properties tab (to the right), navigating to the location of the saved files, and clicking Open. Note the use of header in 'connection' which specifies that the indexCols and valueCols include column headings. The index columns are specified using 'indexCols'. The value column is specified using 'valueCols'. All files are of type CSV. See the RASON User Guide for a complete list of supported file types. 'Direction' specifies if this is an import or export. Note that the valueCols property must always follow the indexCols property.",
|
|
7
|
-
"parts_data": {
|
|
8
|
-
"comment": "This data source pulls data from the ProductMixParts.txt file. This data source file contains two indices, 'parts' and 'prods'. The column 'qty' contains the number of parts required to produce each product. Since we are reading data from this source, the direction is 'import'.",
|
|
9
|
-
"type": "csv",
|
|
10
|
-
"connection": "ProductMixParts.txt; header",
|
|
11
|
-
"indexCols": [ "parts", "prods" ],
|
|
12
|
-
"valueCols": [ "qty" ],
|
|
13
|
-
"direction": "import"
|
|
14
|
-
},
|
|
15
|
-
"invent_data": {
|
|
16
|
-
"comment": "This data source pulls data from the ProductMixInventory.txt file. This data source file contains one index, 'parts'. The column 'inventory' contains the number of parts in inventory. Since we are reading data from this source, the direction is 'import'.",
|
|
17
|
-
"type": "csv",
|
|
18
|
-
"connection": "ProductMixInventory.txt; header",
|
|
19
|
-
"indexCols": [ "parts" ],
|
|
20
|
-
"valueCols": [ "inventory" ],
|
|
21
|
-
"direction": "import"
|
|
22
|
-
},
|
|
23
|
-
"profit_data": {
|
|
24
|
-
"comment": "This data source pulls data from the ProductMixProfits.txt file. This data source contains one index, 'prods'. The profit per unit for each product produced is in the 'profits' col. Since we are reading data from this source, the direction is 'import'.",
|
|
25
|
-
"type": "csv",
|
|
26
|
-
"connection": "ProductMixProfits.txt; header",
|
|
27
|
-
"indexCols": [ "prods" ],
|
|
28
|
-
"valueCols": [ "profits" ],
|
|
29
|
-
"direction": "import"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"data": {
|
|
33
|
-
"parts2": {
|
|
34
|
-
"comment": "Binds the 'parts_data' data source to 'parts2' data array.",
|
|
35
|
-
"binding": "parts_data",
|
|
36
|
-
"valueCol": "qty"
|
|
37
|
-
},
|
|
38
|
-
"invent": {
|
|
39
|
-
"comment": "Binds the 'invent_data' data source to 'invent' data array.",
|
|
40
|
-
"binding": "invent_data",
|
|
41
|
-
"valueCol": "inventory"
|
|
42
|
-
},
|
|
43
|
-
"profit": {
|
|
44
|
-
"comment": "Binds the 'profit_data' data source to 'profit' data array.",
|
|
45
|
-
"binding": "profit_data",
|
|
46
|
-
"valueCol": "profits"
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
"formulas": {
|
|
50
|
-
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array.",
|
|
51
|
-
"piv_parts": {
|
|
52
|
-
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
"variables": {
|
|
56
|
-
"comment": "Use this section to specify the decision variables in the model.",
|
|
57
|
-
"x": {
|
|
58
|
-
"comment": "Creates the 'x' variable array of size 'prods' (3). The 'value' property sets all variables values to 0 before the solve. The 'lower' property sets all variable lower bounds to 0. The final variable values will be returned in the result due to the presence of the 'finalValue' property.",
|
|
59
|
-
"dimensions": [ "prods" ],
|
|
60
|
-
"value": 0,
|
|
61
|
-
"lower": 0,
|
|
62
|
-
"finalValue": []
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
"constraints": {
|
|
66
|
-
"comment": "Use this section to specify the constraints in the model.",
|
|
67
|
-
"c": {
|
|
68
|
-
"comment": "5 constraints limiting the number of parts used by the number of parts in inventory. The result of the Excel MMULT function generates 5 constraints with right hand sides pulled from the invent data array.",
|
|
69
|
-
"dimensions": [ "parts" ],
|
|
70
|
-
"formula": "MMULT(piv_parts, x) - invent",
|
|
71
|
-
"upper": 0
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"objective": {
|
|
75
|
-
"total": {
|
|
76
|
-
"comment": "Calculates the objective function by multiplying the number of products produced (the variables in the x array) by the profit per unit values from the profit data array imported from the profit_data data source. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
77
|
-
"formula": "sumproduct(x, profit)",
|
|
78
|
-
"type": "maximize",
|
|
79
|
-
"finalValue": []
|
|
80
|
-
}
|
|
81
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixCsvExample",
|
|
3
|
+
"modelDescription": "RASON model example of using CSV table binding: The product mix example is used to illustrate how to bind table elements to a data source. Recall that the product mix example finds the optimal number of products to produce in order to maximize the total profit.",
|
|
4
|
+
"modelType": "optimization",
|
|
5
|
+
"datasources": {
|
|
6
|
+
"comment": "Use this section to import or export data. There are 3 datasources (parts_data, invent_data, profit_data) that import data. Download all 3 data source files by clicking the download icon on the Editor tab ribbon. Then attach all 3 files by clicking Choose Files in the Properties tab (to the right), navigating to the location of the saved files, and clicking Open. Note the use of header in 'connection' which specifies that the indexCols and valueCols include column headings. The index columns are specified using 'indexCols'. The value column is specified using 'valueCols'. All files are of type CSV. See the RASON User Guide for a complete list of supported file types. 'Direction' specifies if this is an import or export. Note that the valueCols property must always follow the indexCols property.",
|
|
7
|
+
"parts_data": {
|
|
8
|
+
"comment": "This data source pulls data from the ProductMixParts.txt file. This data source file contains two indices, 'parts' and 'prods'. The column 'qty' contains the number of parts required to produce each product. Since we are reading data from this source, the direction is 'import'.",
|
|
9
|
+
"type": "csv",
|
|
10
|
+
"connection": "ProductMixParts.txt; header",
|
|
11
|
+
"indexCols": [ "parts", "prods" ],
|
|
12
|
+
"valueCols": [ "qty" ],
|
|
13
|
+
"direction": "import"
|
|
14
|
+
},
|
|
15
|
+
"invent_data": {
|
|
16
|
+
"comment": "This data source pulls data from the ProductMixInventory.txt file. This data source file contains one index, 'parts'. The column 'inventory' contains the number of parts in inventory. Since we are reading data from this source, the direction is 'import'.",
|
|
17
|
+
"type": "csv",
|
|
18
|
+
"connection": "ProductMixInventory.txt; header",
|
|
19
|
+
"indexCols": [ "parts" ],
|
|
20
|
+
"valueCols": [ "inventory" ],
|
|
21
|
+
"direction": "import"
|
|
22
|
+
},
|
|
23
|
+
"profit_data": {
|
|
24
|
+
"comment": "This data source pulls data from the ProductMixProfits.txt file. This data source contains one index, 'prods'. The profit per unit for each product produced is in the 'profits' col. Since we are reading data from this source, the direction is 'import'.",
|
|
25
|
+
"type": "csv",
|
|
26
|
+
"connection": "ProductMixProfits.txt; header",
|
|
27
|
+
"indexCols": [ "prods" ],
|
|
28
|
+
"valueCols": [ "profits" ],
|
|
29
|
+
"direction": "import"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"data": {
|
|
33
|
+
"parts2": {
|
|
34
|
+
"comment": "Binds the 'parts_data' data source to 'parts2' data array.",
|
|
35
|
+
"binding": "parts_data",
|
|
36
|
+
"valueCol": "qty"
|
|
37
|
+
},
|
|
38
|
+
"invent": {
|
|
39
|
+
"comment": "Binds the 'invent_data' data source to 'invent' data array.",
|
|
40
|
+
"binding": "invent_data",
|
|
41
|
+
"valueCol": "inventory"
|
|
42
|
+
},
|
|
43
|
+
"profit": {
|
|
44
|
+
"comment": "Binds the 'profit_data' data source to 'profit' data array.",
|
|
45
|
+
"binding": "profit_data",
|
|
46
|
+
"valueCol": "profits"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"formulas": {
|
|
50
|
+
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array.",
|
|
51
|
+
"piv_parts": {
|
|
52
|
+
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"variables": {
|
|
56
|
+
"comment": "Use this section to specify the decision variables in the model.",
|
|
57
|
+
"x": {
|
|
58
|
+
"comment": "Creates the 'x' variable array of size 'prods' (3). The 'value' property sets all variables values to 0 before the solve. The 'lower' property sets all variable lower bounds to 0. The final variable values will be returned in the result due to the presence of the 'finalValue' property.",
|
|
59
|
+
"dimensions": [ "prods" ],
|
|
60
|
+
"value": 0,
|
|
61
|
+
"lower": 0,
|
|
62
|
+
"finalValue": []
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"constraints": {
|
|
66
|
+
"comment": "Use this section to specify the constraints in the model.",
|
|
67
|
+
"c": {
|
|
68
|
+
"comment": "5 constraints limiting the number of parts used by the number of parts in inventory. The result of the Excel MMULT function generates 5 constraints with right hand sides pulled from the invent data array.",
|
|
69
|
+
"dimensions": [ "parts" ],
|
|
70
|
+
"formula": "MMULT(piv_parts, x) - invent",
|
|
71
|
+
"upper": 0
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"objective": {
|
|
75
|
+
"total": {
|
|
76
|
+
"comment": "Calculates the objective function by multiplying the number of products produced (the variables in the x array) by the profit per unit values from the profit data array imported from the profit_data data source. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
77
|
+
"formula": "sumproduct(x, profit)",
|
|
78
|
+
"type": "maximize",
|
|
79
|
+
"finalValue": []
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
82
|
}
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixCSV4",
|
|
3
|
-
"modelType": "optimization",
|
|
4
|
-
"modelDescription": "This RASON model is used in the RASON User Guide to illustrate how to export a model to Power BI and Tableau. Click the Help tab, then scroll down to Creating Your Own Application. Notice that there is a mixture of syntaxes used in setting up each model section to showcase the flexibility of RASON Decision Services!",
|
|
5
|
-
"indexSets": [
|
|
6
|
-
{
|
|
7
|
-
"comment": "The index sets for the data sources below are setup in this section. This model has two index sets: parts and prods. The parts index set contains 5 items and the prods index set contains 3.",
|
|
8
|
-
"name": "parts",
|
|
9
|
-
"value": [ "chas", "tube", "cone", "psup", "elec" ]
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"name": "prods",
|
|
13
|
-
"value": [ "tv", "stereo", "speaker" ]
|
|
14
|
-
}
|
|
15
|
-
],
|
|
16
|
-
"datasources": {
|
|
17
|
-
"comment": "Use the 'datasources' section to import data from an external file(s). There are 3 datasources (parts_data, invent_data, profit_data) that import data. Download all 3 data source files by clicking the download icon on the Editor tab ribbon. Then attach all 3 files by clicking Choose Files in the Properties tab (to the right), navigating to the location of the saved files, and clicking Open. The index columns are specified using 'indexCols'. The value column is specified using 'valueCols'. All files are of type CSV. See the RASON User Guide for a complete list of supported file types. 'Direction' specifies if this is an import or export. Note that the valueCols property must always follow the indexCols property.",
|
|
18
|
-
"parts_data": {
|
|
19
|
-
"comment": "This data source pulls data from the ProductMixParts.txt file. This data source file contains two indices, 'parts' and 'prods'. The column 'qty' contains the number of parts required to produce each product. Since we are reading data from this source, the direction is 'import'.",
|
|
20
|
-
"type": "csv",
|
|
21
|
-
"connection": "ProductMixParts.txt",
|
|
22
|
-
"indexCols": [ "parts", "prods" ],
|
|
23
|
-
"valueCols": [ "qty" ],
|
|
24
|
-
"direction": "import"
|
|
25
|
-
},
|
|
26
|
-
"invent_data": {
|
|
27
|
-
"comment": "This data source pulls data from the ProductMixInventory.txt file. This data source file contains one index, 'parts'. The column 'inventory' contains the number of parts in inventory. Since we are reading data from this source, the direction is 'import'.",
|
|
28
|
-
"type": "csv",
|
|
29
|
-
"connection": "ProductMixInventory.txt",
|
|
30
|
-
"indexCols": [ "parts" ],
|
|
31
|
-
"valueCols": [ "inventory" ],
|
|
32
|
-
"direction": "import"
|
|
33
|
-
},
|
|
34
|
-
"profit_data": {
|
|
35
|
-
"comment": "This data source pulls data from the ProductMixProfits.txt file. This data source contains one index, 'prods'. The profit per unit for each product produced is in the 'profits' col. Since we are reading data from this source, the direction is 'import'.",
|
|
36
|
-
"type": "csv",
|
|
37
|
-
"connection": "ProductMixProfits.txt",
|
|
38
|
-
"indexCols": [ "prods" ],
|
|
39
|
-
"valueCols": [ "profits" ],
|
|
40
|
-
"direction": "import"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"data": [
|
|
44
|
-
{
|
|
45
|
-
"comment": "Binds the parts_data data source to the parts2 data array.",
|
|
46
|
-
"name": "parts2",
|
|
47
|
-
"binding": "parts_data",
|
|
48
|
-
"valueCol": "qty"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"comment": "Binds the 'invent_data' data source to 'invent' data array.",
|
|
52
|
-
"name": "invent",
|
|
53
|
-
"binding": "invent_data",
|
|
54
|
-
"valueCol": "inventory"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"comment": "Binds the 'profit_data' data source to 'profit' data array.",
|
|
58
|
-
"name": "profit",
|
|
59
|
-
"binding": "profit_data",
|
|
60
|
-
"valueCol": "profits"
|
|
61
|
-
}
|
|
62
|
-
],
|
|
63
|
-
"formulas": [
|
|
64
|
-
{
|
|
65
|
-
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array.",
|
|
66
|
-
"name": "piv_parts",
|
|
67
|
-
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
68
|
-
}
|
|
69
|
-
],
|
|
70
|
-
"variables": {
|
|
71
|
-
"comment": "Use the 'variables' section to enter the variables in the model. In this example, the x array is created of size 'prods' with initial variable values set to 0 and a lower bound of 0. The final variable values and variable indices will be returned in the result due to the presence of the properties, finalValue and indexValue, respectively.",
|
|
72
|
-
"name": "x",
|
|
73
|
-
"dimensions": [ "prods" ],
|
|
74
|
-
"value": 0,
|
|
75
|
-
"lower": 0,
|
|
76
|
-
"finalValue": [],
|
|
77
|
-
"indexValue": []
|
|
78
|
-
},
|
|
79
|
-
"constraints": [
|
|
80
|
-
{
|
|
81
|
-
"comment": "Use the 'constraints' section to enter the constraints in the model. Here, the c array is created of size 'parts' to hold the 5 constraints limiting the parts used to manufacture the products to the amount of parts in inventory.",
|
|
82
|
-
"name": "c",
|
|
83
|
-
"dimensions": [ "parts" ],
|
|
84
|
-
"formula": "MMULT(piv_parts, x) - invent[]",
|
|
85
|
-
"upper": 0,
|
|
86
|
-
"finalValue": []
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"objective": {
|
|
90
|
-
"comment": "Calculates the objective function by multiplying the number of products produced (the variables in the x array) by the profit per unit values from the profit data array imported from the profit_data data source. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
91
|
-
"name": "total",
|
|
92
|
-
"formula": "sumproduct(x, profit[])",
|
|
93
|
-
"type": "maximize",
|
|
94
|
-
"finalValue": []
|
|
95
|
-
}
|
|
96
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixCSV4",
|
|
3
|
+
"modelType": "optimization",
|
|
4
|
+
"modelDescription": "This RASON model is used in the RASON User Guide to illustrate how to export a model to Power BI and Tableau. Click the Help tab, then scroll down to Creating Your Own Application. Notice that there is a mixture of syntaxes used in setting up each model section to showcase the flexibility of RASON Decision Services!",
|
|
5
|
+
"indexSets": [
|
|
6
|
+
{
|
|
7
|
+
"comment": "The index sets for the data sources below are setup in this section. This model has two index sets: parts and prods. The parts index set contains 5 items and the prods index set contains 3.",
|
|
8
|
+
"name": "parts",
|
|
9
|
+
"value": [ "chas", "tube", "cone", "psup", "elec" ]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "prods",
|
|
13
|
+
"value": [ "tv", "stereo", "speaker" ]
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"datasources": {
|
|
17
|
+
"comment": "Use the 'datasources' section to import data from an external file(s). There are 3 datasources (parts_data, invent_data, profit_data) that import data. Download all 3 data source files by clicking the download icon on the Editor tab ribbon. Then attach all 3 files by clicking Choose Files in the Properties tab (to the right), navigating to the location of the saved files, and clicking Open. The index columns are specified using 'indexCols'. The value column is specified using 'valueCols'. All files are of type CSV. See the RASON User Guide for a complete list of supported file types. 'Direction' specifies if this is an import or export. Note that the valueCols property must always follow the indexCols property.",
|
|
18
|
+
"parts_data": {
|
|
19
|
+
"comment": "This data source pulls data from the ProductMixParts.txt file. This data source file contains two indices, 'parts' and 'prods'. The column 'qty' contains the number of parts required to produce each product. Since we are reading data from this source, the direction is 'import'.",
|
|
20
|
+
"type": "csv",
|
|
21
|
+
"connection": "ProductMixParts.txt",
|
|
22
|
+
"indexCols": [ "parts", "prods" ],
|
|
23
|
+
"valueCols": [ "qty" ],
|
|
24
|
+
"direction": "import"
|
|
25
|
+
},
|
|
26
|
+
"invent_data": {
|
|
27
|
+
"comment": "This data source pulls data from the ProductMixInventory.txt file. This data source file contains one index, 'parts'. The column 'inventory' contains the number of parts in inventory. Since we are reading data from this source, the direction is 'import'.",
|
|
28
|
+
"type": "csv",
|
|
29
|
+
"connection": "ProductMixInventory.txt",
|
|
30
|
+
"indexCols": [ "parts" ],
|
|
31
|
+
"valueCols": [ "inventory" ],
|
|
32
|
+
"direction": "import"
|
|
33
|
+
},
|
|
34
|
+
"profit_data": {
|
|
35
|
+
"comment": "This data source pulls data from the ProductMixProfits.txt file. This data source contains one index, 'prods'. The profit per unit for each product produced is in the 'profits' col. Since we are reading data from this source, the direction is 'import'.",
|
|
36
|
+
"type": "csv",
|
|
37
|
+
"connection": "ProductMixProfits.txt",
|
|
38
|
+
"indexCols": [ "prods" ],
|
|
39
|
+
"valueCols": [ "profits" ],
|
|
40
|
+
"direction": "import"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"data": [
|
|
44
|
+
{
|
|
45
|
+
"comment": "Binds the parts_data data source to the parts2 data array.",
|
|
46
|
+
"name": "parts2",
|
|
47
|
+
"binding": "parts_data",
|
|
48
|
+
"valueCol": "qty"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"comment": "Binds the 'invent_data' data source to 'invent' data array.",
|
|
52
|
+
"name": "invent",
|
|
53
|
+
"binding": "invent_data",
|
|
54
|
+
"valueCol": "inventory"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"comment": "Binds the 'profit_data' data source to 'profit' data array.",
|
|
58
|
+
"name": "profit",
|
|
59
|
+
"binding": "profit_data",
|
|
60
|
+
"valueCol": "profits"
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"formulas": [
|
|
64
|
+
{
|
|
65
|
+
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array.",
|
|
66
|
+
"name": "piv_parts",
|
|
67
|
+
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"variables": {
|
|
71
|
+
"comment": "Use the 'variables' section to enter the variables in the model. In this example, the x array is created of size 'prods' with initial variable values set to 0 and a lower bound of 0. The final variable values and variable indices will be returned in the result due to the presence of the properties, finalValue and indexValue, respectively.",
|
|
72
|
+
"name": "x",
|
|
73
|
+
"dimensions": [ "prods" ],
|
|
74
|
+
"value": 0,
|
|
75
|
+
"lower": 0,
|
|
76
|
+
"finalValue": [],
|
|
77
|
+
"indexValue": []
|
|
78
|
+
},
|
|
79
|
+
"constraints": [
|
|
80
|
+
{
|
|
81
|
+
"comment": "Use the 'constraints' section to enter the constraints in the model. Here, the c array is created of size 'parts' to hold the 5 constraints limiting the parts used to manufacture the products to the amount of parts in inventory.",
|
|
82
|
+
"name": "c",
|
|
83
|
+
"dimensions": [ "parts" ],
|
|
84
|
+
"formula": "MMULT(piv_parts, x) - invent[]",
|
|
85
|
+
"upper": 0,
|
|
86
|
+
"finalValue": []
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"objective": {
|
|
90
|
+
"comment": "Calculates the objective function by multiplying the number of products produced (the variables in the x array) by the profit per unit values from the profit data array imported from the profit_data data source. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
91
|
+
"name": "total",
|
|
92
|
+
"formula": "sumproduct(x, profit[])",
|
|
93
|
+
"type": "maximize",
|
|
94
|
+
"finalValue": []
|
|
95
|
+
}
|
|
96
|
+
}
|