@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,78 +1,78 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixExcel2Example",
|
|
3
|
-
"modelDescription": "RASON model example of using Excel table binding with sorted indexCols: The only difference between this example and the earlier ProductMixExcel1 example is that this example uses sortIndexCols set to true. If the sortIndexCols (or sort) property is used, all indexCols will be sorted alphabetically. (Note: The properties sort and sortIndexCols perform the same function.) Otherwise, the table will be sorted as entered. In the example below, the order for prods will be: speaker, stereo, tv. While the order for parts will be: chas, cone, elec, psup, tube.",
|
|
4
|
-
"modelType": "optimization",
|
|
5
|
-
"datasources": {
|
|
6
|
-
"comment": "Enter the data sources for the model in this section. There are 3 datasources importing data from the same workbook, ProductMixExcel.xlsx. Download the data source file by clicking the download icon on the Editor tab ribbon. Then attach the file by clicking Choose Files in the Properties tab (to the right), navigating to the location of the saved file, and clicking Open. The direction property specifies whether the data will be imported or exported.",
|
|
7
|
-
"parts_data": {
|
|
8
|
-
"comment": "Since sortIndexCols is set to True, all indexCols will be sorted alphabetically.",
|
|
9
|
-
"type": "excel",
|
|
10
|
-
"connection": "ProductMixExcel.xlsx",
|
|
11
|
-
"selection": "Sheet1!G2:I12",
|
|
12
|
-
"indexCols": [ "parts", "prods" ],
|
|
13
|
-
"valueCols": [ "qty" ],
|
|
14
|
-
"sortIndexCols": true,
|
|
15
|
-
"direction": "import"
|
|
16
|
-
},
|
|
17
|
-
"invent_data": {
|
|
18
|
-
"type": "excel",
|
|
19
|
-
"connection": "ProductMixExcel.xlsx",
|
|
20
|
-
"selection": "Sheet1!N2:O6",
|
|
21
|
-
"indexCols": [ "parts" ],
|
|
22
|
-
"valueCols": [ "inventory" ],
|
|
23
|
-
"direction": "import"
|
|
24
|
-
},
|
|
25
|
-
"profit_data": {
|
|
26
|
-
"type": "excel",
|
|
27
|
-
"connection": "ProductMixExcel.xlsx",
|
|
28
|
-
"selection": "Sheet1!K2:L4",
|
|
29
|
-
"indexCols": [ "prods" ],
|
|
30
|
-
"valueCols": [ "profits" ],
|
|
31
|
-
"direction": "import"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"data": {
|
|
35
|
-
"parts2": {
|
|
36
|
-
"binding": "parts_data",
|
|
37
|
-
"valueCol": "qty"
|
|
38
|
-
},
|
|
39
|
-
"invent": {
|
|
40
|
-
"binding": "invent_data",
|
|
41
|
-
"valueCol": "inventory"
|
|
42
|
-
},
|
|
43
|
-
"profit": {
|
|
44
|
-
"binding": "profit_data",
|
|
45
|
-
"valueCol": "profits"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"formulas": {
|
|
49
|
-
"piv_parts": {
|
|
50
|
-
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
"variables": {
|
|
54
|
-
"x": {
|
|
55
|
-
"comment": "Since sortIndexCols is set to True within the parts_data dataSource, the final variable values in the result will be reported alphabetically.",
|
|
56
|
-
"dimensions": [ "prods" ],
|
|
57
|
-
"value": 0,
|
|
58
|
-
"lower": 0,
|
|
59
|
-
"finalValue": []
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
"constraints": {
|
|
63
|
-
"c": {
|
|
64
|
-
"comment": "Since sortIndexCols is set to True within the parts_data dataSource, the final constraint values in the result will be reported alphabetically.",
|
|
65
|
-
"dimensions": [ "parts" ],
|
|
66
|
-
"formula": "MMULT(piv_parts, x) - invent[]",
|
|
67
|
-
"upper": 0,
|
|
68
|
-
"finalValue": []
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"objective": {
|
|
72
|
-
"total": {
|
|
73
|
-
"formula": "sumproduct(x, profit[])",
|
|
74
|
-
"type": "maximize",
|
|
75
|
-
"finalValue": []
|
|
76
|
-
}
|
|
77
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixExcel2Example",
|
|
3
|
+
"modelDescription": "RASON model example of using Excel table binding with sorted indexCols: The only difference between this example and the earlier ProductMixExcel1 example is that this example uses sortIndexCols set to true. If the sortIndexCols (or sort) property is used, all indexCols will be sorted alphabetically. (Note: The properties sort and sortIndexCols perform the same function.) Otherwise, the table will be sorted as entered. In the example below, the order for prods will be: speaker, stereo, tv. While the order for parts will be: chas, cone, elec, psup, tube.",
|
|
4
|
+
"modelType": "optimization",
|
|
5
|
+
"datasources": {
|
|
6
|
+
"comment": "Enter the data sources for the model in this section. There are 3 datasources importing data from the same workbook, ProductMixExcel.xlsx. Download the data source file by clicking the download icon on the Editor tab ribbon. Then attach the file by clicking Choose Files in the Properties tab (to the right), navigating to the location of the saved file, and clicking Open. The direction property specifies whether the data will be imported or exported.",
|
|
7
|
+
"parts_data": {
|
|
8
|
+
"comment": "Since sortIndexCols is set to True, all indexCols will be sorted alphabetically.",
|
|
9
|
+
"type": "excel",
|
|
10
|
+
"connection": "ProductMixExcel.xlsx",
|
|
11
|
+
"selection": "Sheet1!G2:I12",
|
|
12
|
+
"indexCols": [ "parts", "prods" ],
|
|
13
|
+
"valueCols": [ "qty" ],
|
|
14
|
+
"sortIndexCols": true,
|
|
15
|
+
"direction": "import"
|
|
16
|
+
},
|
|
17
|
+
"invent_data": {
|
|
18
|
+
"type": "excel",
|
|
19
|
+
"connection": "ProductMixExcel.xlsx",
|
|
20
|
+
"selection": "Sheet1!N2:O6",
|
|
21
|
+
"indexCols": [ "parts" ],
|
|
22
|
+
"valueCols": [ "inventory" ],
|
|
23
|
+
"direction": "import"
|
|
24
|
+
},
|
|
25
|
+
"profit_data": {
|
|
26
|
+
"type": "excel",
|
|
27
|
+
"connection": "ProductMixExcel.xlsx",
|
|
28
|
+
"selection": "Sheet1!K2:L4",
|
|
29
|
+
"indexCols": [ "prods" ],
|
|
30
|
+
"valueCols": [ "profits" ],
|
|
31
|
+
"direction": "import"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"data": {
|
|
35
|
+
"parts2": {
|
|
36
|
+
"binding": "parts_data",
|
|
37
|
+
"valueCol": "qty"
|
|
38
|
+
},
|
|
39
|
+
"invent": {
|
|
40
|
+
"binding": "invent_data",
|
|
41
|
+
"valueCol": "inventory"
|
|
42
|
+
},
|
|
43
|
+
"profit": {
|
|
44
|
+
"binding": "profit_data",
|
|
45
|
+
"valueCol": "profits"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"formulas": {
|
|
49
|
+
"piv_parts": {
|
|
50
|
+
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"variables": {
|
|
54
|
+
"x": {
|
|
55
|
+
"comment": "Since sortIndexCols is set to True within the parts_data dataSource, the final variable values in the result will be reported alphabetically.",
|
|
56
|
+
"dimensions": [ "prods" ],
|
|
57
|
+
"value": 0,
|
|
58
|
+
"lower": 0,
|
|
59
|
+
"finalValue": []
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"constraints": {
|
|
63
|
+
"c": {
|
|
64
|
+
"comment": "Since sortIndexCols is set to True within the parts_data dataSource, the final constraint values in the result will be reported alphabetically.",
|
|
65
|
+
"dimensions": [ "parts" ],
|
|
66
|
+
"formula": "MMULT(piv_parts, x) - invent[]",
|
|
67
|
+
"upper": 0,
|
|
68
|
+
"finalValue": []
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"objective": {
|
|
72
|
+
"total": {
|
|
73
|
+
"formula": "sumproduct(x, profit[])",
|
|
74
|
+
"type": "maximize",
|
|
75
|
+
"finalValue": []
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
78
|
}
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixTableInlineExample",
|
|
3
|
-
"modelDescription": "RASON example model which uses inline tables: In this version of the Product Mix example, data has been entered into two tables: parts and profits.",
|
|
4
|
-
"modelType": "optimization",
|
|
5
|
-
"data": {
|
|
6
|
-
"comment": "Two tables are created in this section, profits holding the profit per product, and parts, holding the parts required to produce each product.",
|
|
7
|
-
"profits": {
|
|
8
|
-
"value": [ 75, 50, 35 ],
|
|
9
|
-
"binding": "get",
|
|
10
|
-
"finalValue": []
|
|
11
|
-
},
|
|
12
|
-
"parts": {
|
|
13
|
-
"indexCols": [ "part", "prod" ],
|
|
14
|
-
"value": [
|
|
15
|
-
[ "chas", "tv", 1 ],
|
|
16
|
-
[ "chas", "stereo", 1 ],
|
|
17
|
-
[ "chas", "speaker", 0 ],
|
|
18
|
-
[ "tube", "tv", 1 ],
|
|
19
|
-
[ "tube", "stereo", 0 ],
|
|
20
|
-
[ "tube", "speaker", 0 ],
|
|
21
|
-
[ "cone", "tv", 2 ],
|
|
22
|
-
[ "cone", "stereo", 2 ],
|
|
23
|
-
[ "cone", "speaker", 1 ],
|
|
24
|
-
[ "psup", "tv", 1 ],
|
|
25
|
-
[ "psup", "stereo", 1 ],
|
|
26
|
-
[ "psup", "speaker", 0 ],
|
|
27
|
-
[ "elec", "tv", 2 ],
|
|
28
|
-
[ "elec", "stereo", 1 ],
|
|
29
|
-
[ "elec", "speaker", 1 ]
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
"crit2": {
|
|
33
|
-
"comment": "In this example, the cone part has been renamed to crit2.",
|
|
34
|
-
"value": "part = 'cone'"
|
|
35
|
-
},
|
|
36
|
-
"crit1": {
|
|
37
|
-
"comment": "In this example, the psup part has been renamed to crit1.",
|
|
38
|
-
"value": "part = 'psup'"
|
|
39
|
-
},
|
|
40
|
-
"crit0": {
|
|
41
|
-
"comment": "In this example, the elec part has been renamed to crit0.",
|
|
42
|
-
"value": "part = 'elec'"
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"variables": {
|
|
46
|
-
"comment": "Creates the 'x' variable array. The array dimension is explicitly set using the 'dimensions' property. All initial variable values are set to 0. A lower bound of 0 is given for all variables using the property, 'lower'. The final variable values will be returned in the result due to the 'finalValue' property.",
|
|
47
|
-
"x": {
|
|
48
|
-
"dimensions": [ "prod" ],
|
|
49
|
-
"value": 0,
|
|
50
|
-
"lower": 0,
|
|
51
|
-
"finalValue": []
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
"constraints": {
|
|
55
|
-
"comment": "Sets up 5 constraints to ensure that no more than the number of parts in inventory are used to produce the 3 products.",
|
|
56
|
-
"c1": {
|
|
57
|
-
"comment": "The 1st constraint multiplies the chas part data (1,1,0) by the variable values in the x array. The number of chas in inventory is 450. The resulting constraint is: 1x1 + 1 x2 + 0 x3 <= 450.",
|
|
58
|
-
"formula": "sumproduct(parts['chas',], x)",
|
|
59
|
-
"upper": 450
|
|
60
|
-
},
|
|
61
|
-
"c2": {
|
|
62
|
-
"comment": "The 2nd constraint multiplies the tube part data (1,0,0) by the variable values in the x array. The number of tubes in inventory is 250. The resulting constraint is: 1x1 + 0 x2 + 0 x3 <= 250.",
|
|
63
|
-
"formula": "sumproduct(parts['tube',], x)",
|
|
64
|
-
"upper": 250
|
|
65
|
-
},
|
|
66
|
-
"c3": {
|
|
67
|
-
"comment": "The 3rd constraint multiplies the cone part data, renamed to crit2 (2,2,1), by the variable values in the x array. The number of cones in inventory is 800. The resulting constraint is: 2 x1 + 2 x2 + 1 x3 <= 800.",
|
|
68
|
-
"formula": "sumproduct(select(parts, crit2), x)",
|
|
69
|
-
"upper": 800
|
|
70
|
-
},
|
|
71
|
-
"c4": {
|
|
72
|
-
"comment": "The 4th constraint multiplies the psup part data, renamed to crit1 (1,1,0), by the variable values in the x array. The number of psups in inventory is 450. The resulting constraint is: 1 x1 + 1 x2 + 0 x3 <= 450.",
|
|
73
|
-
"formula": "sumproduct(select(parts, crit1), x)",
|
|
74
|
-
"upper": 450
|
|
75
|
-
},
|
|
76
|
-
"c5": {
|
|
77
|
-
"comment": "The 5th constraint multiplies the elec part data, renamed to crit0 (2,1,1), by the variable values in the x array. The number of elecs in inventory is 600. The resulting constraint is: 2 x1 + 1 x2 + 1 x3 <= 600.",
|
|
78
|
-
"formula": "sumproduct(select(parts, crit0), x)",
|
|
79
|
-
"upper": 600
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
"objective": {
|
|
83
|
-
"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 profits table. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
84
|
-
"total": {
|
|
85
|
-
"formula": "sumproduct(x, profits)",
|
|
86
|
-
"type": "maximize",
|
|
87
|
-
"finalValue": []
|
|
88
|
-
}
|
|
89
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixTableInlineExample",
|
|
3
|
+
"modelDescription": "RASON example model which uses inline tables: In this version of the Product Mix example, data has been entered into two tables: parts and profits.",
|
|
4
|
+
"modelType": "optimization",
|
|
5
|
+
"data": {
|
|
6
|
+
"comment": "Two tables are created in this section, profits holding the profit per product, and parts, holding the parts required to produce each product.",
|
|
7
|
+
"profits": {
|
|
8
|
+
"value": [ 75, 50, 35 ],
|
|
9
|
+
"binding": "get",
|
|
10
|
+
"finalValue": []
|
|
11
|
+
},
|
|
12
|
+
"parts": {
|
|
13
|
+
"indexCols": [ "part", "prod" ],
|
|
14
|
+
"value": [
|
|
15
|
+
[ "chas", "tv", 1 ],
|
|
16
|
+
[ "chas", "stereo", 1 ],
|
|
17
|
+
[ "chas", "speaker", 0 ],
|
|
18
|
+
[ "tube", "tv", 1 ],
|
|
19
|
+
[ "tube", "stereo", 0 ],
|
|
20
|
+
[ "tube", "speaker", 0 ],
|
|
21
|
+
[ "cone", "tv", 2 ],
|
|
22
|
+
[ "cone", "stereo", 2 ],
|
|
23
|
+
[ "cone", "speaker", 1 ],
|
|
24
|
+
[ "psup", "tv", 1 ],
|
|
25
|
+
[ "psup", "stereo", 1 ],
|
|
26
|
+
[ "psup", "speaker", 0 ],
|
|
27
|
+
[ "elec", "tv", 2 ],
|
|
28
|
+
[ "elec", "stereo", 1 ],
|
|
29
|
+
[ "elec", "speaker", 1 ]
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"crit2": {
|
|
33
|
+
"comment": "In this example, the cone part has been renamed to crit2.",
|
|
34
|
+
"value": "part = 'cone'"
|
|
35
|
+
},
|
|
36
|
+
"crit1": {
|
|
37
|
+
"comment": "In this example, the psup part has been renamed to crit1.",
|
|
38
|
+
"value": "part = 'psup'"
|
|
39
|
+
},
|
|
40
|
+
"crit0": {
|
|
41
|
+
"comment": "In this example, the elec part has been renamed to crit0.",
|
|
42
|
+
"value": "part = 'elec'"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"variables": {
|
|
46
|
+
"comment": "Creates the 'x' variable array. The array dimension is explicitly set using the 'dimensions' property. All initial variable values are set to 0. A lower bound of 0 is given for all variables using the property, 'lower'. The final variable values will be returned in the result due to the 'finalValue' property.",
|
|
47
|
+
"x": {
|
|
48
|
+
"dimensions": [ "prod" ],
|
|
49
|
+
"value": 0,
|
|
50
|
+
"lower": 0,
|
|
51
|
+
"finalValue": []
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"constraints": {
|
|
55
|
+
"comment": "Sets up 5 constraints to ensure that no more than the number of parts in inventory are used to produce the 3 products.",
|
|
56
|
+
"c1": {
|
|
57
|
+
"comment": "The 1st constraint multiplies the chas part data (1,1,0) by the variable values in the x array. The number of chas in inventory is 450. The resulting constraint is: 1x1 + 1 x2 + 0 x3 <= 450.",
|
|
58
|
+
"formula": "sumproduct(parts['chas',], x)",
|
|
59
|
+
"upper": 450
|
|
60
|
+
},
|
|
61
|
+
"c2": {
|
|
62
|
+
"comment": "The 2nd constraint multiplies the tube part data (1,0,0) by the variable values in the x array. The number of tubes in inventory is 250. The resulting constraint is: 1x1 + 0 x2 + 0 x3 <= 250.",
|
|
63
|
+
"formula": "sumproduct(parts['tube',], x)",
|
|
64
|
+
"upper": 250
|
|
65
|
+
},
|
|
66
|
+
"c3": {
|
|
67
|
+
"comment": "The 3rd constraint multiplies the cone part data, renamed to crit2 (2,2,1), by the variable values in the x array. The number of cones in inventory is 800. The resulting constraint is: 2 x1 + 2 x2 + 1 x3 <= 800.",
|
|
68
|
+
"formula": "sumproduct(select(parts, crit2), x)",
|
|
69
|
+
"upper": 800
|
|
70
|
+
},
|
|
71
|
+
"c4": {
|
|
72
|
+
"comment": "The 4th constraint multiplies the psup part data, renamed to crit1 (1,1,0), by the variable values in the x array. The number of psups in inventory is 450. The resulting constraint is: 1 x1 + 1 x2 + 0 x3 <= 450.",
|
|
73
|
+
"formula": "sumproduct(select(parts, crit1), x)",
|
|
74
|
+
"upper": 450
|
|
75
|
+
},
|
|
76
|
+
"c5": {
|
|
77
|
+
"comment": "The 5th constraint multiplies the elec part data, renamed to crit0 (2,1,1), by the variable values in the x array. The number of elecs in inventory is 600. The resulting constraint is: 2 x1 + 1 x2 + 1 x3 <= 600.",
|
|
78
|
+
"formula": "sumproduct(select(parts, crit0), x)",
|
|
79
|
+
"upper": 600
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"objective": {
|
|
83
|
+
"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 profits table. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
84
|
+
"total": {
|
|
85
|
+
"formula": "sumproduct(x, profits)",
|
|
86
|
+
"type": "maximize",
|
|
87
|
+
"finalValue": []
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
90
|
}
|
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixTableSparseInlineExample",
|
|
3
|
-
"modelDescription": "RASON model example of using sparse inline tables: In this version of Product Mix, only the nonzero elements of the parts table are passed. This is called a sparse table. No parts have been renamed in this example.",
|
|
4
|
-
"modelType": "optimization",
|
|
5
|
-
"data": {
|
|
6
|
-
"comment": "Two tables are created in this section: parts and profits. The parts table is a sparse table, meaning only the nonzero elements are being passed.",
|
|
7
|
-
"parts": {
|
|
8
|
-
"indexCols": [ "part", "prod" ],
|
|
9
|
-
"value": [
|
|
10
|
-
[ "chas", "tv", 1 ],
|
|
11
|
-
[ "elec", "stereo", 1 ],
|
|
12
|
-
[ "tube", "tv", 1 ],
|
|
13
|
-
[ "cone", "tv", 2 ],
|
|
14
|
-
[ "cone", "stereo", 2 ],
|
|
15
|
-
[ "chas", "stereo", 1 ],
|
|
16
|
-
[ "cone", "speaker", 1 ],
|
|
17
|
-
[ "psup", "tv", 1 ],
|
|
18
|
-
[ "psup", "stereo", 1 ],
|
|
19
|
-
[ "elec", "tv", 2 ],
|
|
20
|
-
[ "elec", "speaker", 1 ]
|
|
21
|
-
]
|
|
22
|
-
},
|
|
23
|
-
"profits": {
|
|
24
|
-
"value": [ 75, 50, 35 ],
|
|
25
|
-
"binding": "get",
|
|
26
|
-
"finalValue": []
|
|
27
|
-
}
|
|
28
|
-
},
|
|
29
|
-
"variables": {
|
|
30
|
-
"comment": "Creates the 'x' variable array. The array dimension is explicitly set using the 'dimensions' property. All initial variable values are set to 0. A lower bound of 0 is given for all variables using the property, 'lower'. The final variable values will be returned in the result due to the 'finalValue' property.",
|
|
31
|
-
"x": {
|
|
32
|
-
"dimensions": [ "prod" ],
|
|
33
|
-
"value": 0,
|
|
34
|
-
"lower": 0,
|
|
35
|
-
"finalValue": []
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
"constraints": {
|
|
39
|
-
"comment": "Sets up 5 constraints to limit the number of parts used to what is in inventory. Notice that the 2nd argument to the sumproduct function is empty. The resulting formula multiplies the existing corresponding elements for each part by the x array.",
|
|
40
|
-
"c1": {
|
|
41
|
-
"comment": "The 1st constraint multiplies the chas part data ['chas', 'tv', 1] and ['chas', 'stereo', 1] by the x array or 1 x1 + 1 * x2 <= 450. (Note that the 0 for 'chas' 'speaker' is implied because it does not exist in the table.) The number of chas in inventory is 450.",
|
|
42
|
-
"formula": "sumproduct(parts['chas',], x)",
|
|
43
|
-
"upper": 450
|
|
44
|
-
},
|
|
45
|
-
"c2": {
|
|
46
|
-
"comment": "The 2nd constraint multiplies the tube part data, ['tube', 'tv', 1], by the x array or 1 x1 <= 250. The number of tubes in inventory is 250.",
|
|
47
|
-
"formula": "sumproduct(parts['tube',], x)",
|
|
48
|
-
"upper": 250
|
|
49
|
-
},
|
|
50
|
-
"c3": {
|
|
51
|
-
"comment": "The 3rd constraint multiplies the cone part data, ['cone', 'tv', 2], ['cone', 'stereo', 2], ['tube', 'tv', 1], by the x array or 2 x1 + 2 x2 + 1 x1 <= 800. The number of cones in inventory is 800.",
|
|
52
|
-
"formula": "sumproduct(parts['cone',], x)",
|
|
53
|
-
"upper": 800
|
|
54
|
-
},
|
|
55
|
-
"c4": {
|
|
56
|
-
"comment": "The 4th constraint multiplies the psup part data, ['psup', 'tv', 1], ['psup', 'stereo', 1] by the x array or 1 x1 + 1 x2 <= 450. The number of psups in inventory is 450.",
|
|
57
|
-
"formula": "sumproduct(parts['psup',], x)",
|
|
58
|
-
"upper": 450
|
|
59
|
-
},
|
|
60
|
-
"c5": {
|
|
61
|
-
"comment": "The 5th constraint multiplies the elec part data, ['elec', 'tv', 2], ['elec', 'stereo', 1], ['elec', 'speaker', 1], by the x array or 2 x1 + 1 x2 <= 600. The number of elecs in inventory is 600.",
|
|
62
|
-
"formula": "sumproduct(parts['elec',], x)",
|
|
63
|
-
"upper": 600
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
"objective": {
|
|
67
|
-
"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 profits table. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
68
|
-
"total": {
|
|
69
|
-
"formula": "sumproduct(x, profits)",
|
|
70
|
-
"type": "maximize",
|
|
71
|
-
"finalValue": []
|
|
72
|
-
}
|
|
73
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixTableSparseInlineExample",
|
|
3
|
+
"modelDescription": "RASON model example of using sparse inline tables: In this version of Product Mix, only the nonzero elements of the parts table are passed. This is called a sparse table. No parts have been renamed in this example.",
|
|
4
|
+
"modelType": "optimization",
|
|
5
|
+
"data": {
|
|
6
|
+
"comment": "Two tables are created in this section: parts and profits. The parts table is a sparse table, meaning only the nonzero elements are being passed.",
|
|
7
|
+
"parts": {
|
|
8
|
+
"indexCols": [ "part", "prod" ],
|
|
9
|
+
"value": [
|
|
10
|
+
[ "chas", "tv", 1 ],
|
|
11
|
+
[ "elec", "stereo", 1 ],
|
|
12
|
+
[ "tube", "tv", 1 ],
|
|
13
|
+
[ "cone", "tv", 2 ],
|
|
14
|
+
[ "cone", "stereo", 2 ],
|
|
15
|
+
[ "chas", "stereo", 1 ],
|
|
16
|
+
[ "cone", "speaker", 1 ],
|
|
17
|
+
[ "psup", "tv", 1 ],
|
|
18
|
+
[ "psup", "stereo", 1 ],
|
|
19
|
+
[ "elec", "tv", 2 ],
|
|
20
|
+
[ "elec", "speaker", 1 ]
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"profits": {
|
|
24
|
+
"value": [ 75, 50, 35 ],
|
|
25
|
+
"binding": "get",
|
|
26
|
+
"finalValue": []
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"variables": {
|
|
30
|
+
"comment": "Creates the 'x' variable array. The array dimension is explicitly set using the 'dimensions' property. All initial variable values are set to 0. A lower bound of 0 is given for all variables using the property, 'lower'. The final variable values will be returned in the result due to the 'finalValue' property.",
|
|
31
|
+
"x": {
|
|
32
|
+
"dimensions": [ "prod" ],
|
|
33
|
+
"value": 0,
|
|
34
|
+
"lower": 0,
|
|
35
|
+
"finalValue": []
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"constraints": {
|
|
39
|
+
"comment": "Sets up 5 constraints to limit the number of parts used to what is in inventory. Notice that the 2nd argument to the sumproduct function is empty. The resulting formula multiplies the existing corresponding elements for each part by the x array.",
|
|
40
|
+
"c1": {
|
|
41
|
+
"comment": "The 1st constraint multiplies the chas part data ['chas', 'tv', 1] and ['chas', 'stereo', 1] by the x array or 1 x1 + 1 * x2 <= 450. (Note that the 0 for 'chas' 'speaker' is implied because it does not exist in the table.) The number of chas in inventory is 450.",
|
|
42
|
+
"formula": "sumproduct(parts['chas',], x)",
|
|
43
|
+
"upper": 450
|
|
44
|
+
},
|
|
45
|
+
"c2": {
|
|
46
|
+
"comment": "The 2nd constraint multiplies the tube part data, ['tube', 'tv', 1], by the x array or 1 x1 <= 250. The number of tubes in inventory is 250.",
|
|
47
|
+
"formula": "sumproduct(parts['tube',], x)",
|
|
48
|
+
"upper": 250
|
|
49
|
+
},
|
|
50
|
+
"c3": {
|
|
51
|
+
"comment": "The 3rd constraint multiplies the cone part data, ['cone', 'tv', 2], ['cone', 'stereo', 2], ['tube', 'tv', 1], by the x array or 2 x1 + 2 x2 + 1 x1 <= 800. The number of cones in inventory is 800.",
|
|
52
|
+
"formula": "sumproduct(parts['cone',], x)",
|
|
53
|
+
"upper": 800
|
|
54
|
+
},
|
|
55
|
+
"c4": {
|
|
56
|
+
"comment": "The 4th constraint multiplies the psup part data, ['psup', 'tv', 1], ['psup', 'stereo', 1] by the x array or 1 x1 + 1 x2 <= 450. The number of psups in inventory is 450.",
|
|
57
|
+
"formula": "sumproduct(parts['psup',], x)",
|
|
58
|
+
"upper": 450
|
|
59
|
+
},
|
|
60
|
+
"c5": {
|
|
61
|
+
"comment": "The 5th constraint multiplies the elec part data, ['elec', 'tv', 2], ['elec', 'stereo', 1], ['elec', 'speaker', 1], by the x array or 2 x1 + 1 x2 <= 600. The number of elecs in inventory is 600.",
|
|
62
|
+
"formula": "sumproduct(parts['elec',], x)",
|
|
63
|
+
"upper": 600
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"objective": {
|
|
67
|
+
"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 profits table. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
68
|
+
"total": {
|
|
69
|
+
"formula": "sumproduct(x, profits)",
|
|
70
|
+
"type": "maximize",
|
|
71
|
+
"finalValue": []
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
74
|
}
|