@frontlinesystems/rason-mcp-server 2026.5.0 → 2026.5.1
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/README.md +1 -1
- package/examples/EXAMPLES_REFERENCE.md +128 -128
- 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/{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/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/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/out/index.cjs +38 -38
- package/package.json +2 -2
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixExcel1Example",
|
|
3
|
-
"modelDescription": "RASON model example of binding to an Excel table: Recall that the product mix example finds the optimal number of products a business should produce (optimal product mix) in order to maximize total profit, given present inventory levels",
|
|
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": "The parts data is found in cells Sheet1!G2:I12. This excel range has two indices, prods and parts.",
|
|
9
|
-
"type": "excel",
|
|
10
|
-
"connection": "ProductMixExcel.xlsx",
|
|
11
|
-
"selection": "Sheet1!G2:I12",
|
|
12
|
-
"indexCols": [ "parts", "prods" ],
|
|
13
|
-
"valueCols": [ "qty" ],
|
|
14
|
-
"direction": "import"
|
|
15
|
-
},
|
|
16
|
-
"invent_data": {
|
|
17
|
-
"comment": "The inventory data is found in cells Sheet1!N2:O6. This excel range has one index, parts.",
|
|
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
|
-
"comment": "The profit per product produced is found in cells K2:L4. This excel range has one index, prods.",
|
|
27
|
-
"type": "excel",
|
|
28
|
-
"connection": "ProductMixExcel.xlsx",
|
|
29
|
-
"selection": "Sheet1!K2:L4",
|
|
30
|
-
"indexCols": [ "prods" ],
|
|
31
|
-
"valueCols": [ "profits" ],
|
|
32
|
-
"direction": "import"
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
"data": {
|
|
36
|
-
"comment": "Use this section to organize constant parameters or to bind datasources to data arrays.",
|
|
37
|
-
"parts2": {
|
|
38
|
-
"comment": "Binds the parts_data data source to the parts2 data array.",
|
|
39
|
-
"binding": "parts_data",
|
|
40
|
-
"valueCol": "qty"
|
|
41
|
-
},
|
|
42
|
-
"invent": {
|
|
43
|
-
"comment": "Binds the invent_data data source to the invent data array.",
|
|
44
|
-
"binding": "invent_data",
|
|
45
|
-
"valueCol": "inventory"
|
|
46
|
-
},
|
|
47
|
-
"profit": {
|
|
48
|
-
"comment": "Binds the profit_data data source to the profits data array.",
|
|
49
|
-
"binding": "profit_data",
|
|
50
|
-
"valueCol": "profits"
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
"formulas": {
|
|
54
|
-
"comment": "Use this section to calculate any intermediary formulas that will be used in the constraints or objective.",
|
|
55
|
-
"piv_parts": {
|
|
56
|
-
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array.",
|
|
57
|
-
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
"variables": {
|
|
61
|
-
"comment": "Use this section to specify the variables in the model.",
|
|
62
|
-
"x": {
|
|
63
|
-
"comment": "Creates the 'x' variable array. The initial variable values are set to 0 using the 'value' property. The size of the array is specified by the 'dimensions' property. 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.",
|
|
64
|
-
"dimensions": [ "prods" ],
|
|
65
|
-
"value": 0,
|
|
66
|
-
"lower": 0,
|
|
67
|
-
"finalValue": []
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"constraints": {
|
|
71
|
-
"comment": "Use this section to specify the constraints in the model.",
|
|
72
|
-
"c": {
|
|
73
|
-
"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.",
|
|
74
|
-
"dimensions": [ "parts" ],
|
|
75
|
-
"formula": "MMULT(piv_parts, x) - invent",
|
|
76
|
-
"upper": 0
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"objective": {
|
|
80
|
-
"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. Note that the transpose property is required since the 'profit' array must be of the same orientation as the x array. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
81
|
-
"total": {
|
|
82
|
-
"formula": "sumproduct(x, profit)",
|
|
83
|
-
"type": "maximize",
|
|
84
|
-
"finalValue": []
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixExcel1Example",
|
|
3
|
+
"modelDescription": "RASON model example of binding to an Excel table: Recall that the product mix example finds the optimal number of products a business should produce (optimal product mix) in order to maximize total profit, given present inventory levels",
|
|
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": "The parts data is found in cells Sheet1!G2:I12. This excel range has two indices, prods and parts.",
|
|
9
|
+
"type": "excel",
|
|
10
|
+
"connection": "ProductMixExcel.xlsx",
|
|
11
|
+
"selection": "Sheet1!G2:I12",
|
|
12
|
+
"indexCols": [ "parts", "prods" ],
|
|
13
|
+
"valueCols": [ "qty" ],
|
|
14
|
+
"direction": "import"
|
|
15
|
+
},
|
|
16
|
+
"invent_data": {
|
|
17
|
+
"comment": "The inventory data is found in cells Sheet1!N2:O6. This excel range has one index, parts.",
|
|
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
|
+
"comment": "The profit per product produced is found in cells K2:L4. This excel range has one index, prods.",
|
|
27
|
+
"type": "excel",
|
|
28
|
+
"connection": "ProductMixExcel.xlsx",
|
|
29
|
+
"selection": "Sheet1!K2:L4",
|
|
30
|
+
"indexCols": [ "prods" ],
|
|
31
|
+
"valueCols": [ "profits" ],
|
|
32
|
+
"direction": "import"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"data": {
|
|
36
|
+
"comment": "Use this section to organize constant parameters or to bind datasources to data arrays.",
|
|
37
|
+
"parts2": {
|
|
38
|
+
"comment": "Binds the parts_data data source to the parts2 data array.",
|
|
39
|
+
"binding": "parts_data",
|
|
40
|
+
"valueCol": "qty"
|
|
41
|
+
},
|
|
42
|
+
"invent": {
|
|
43
|
+
"comment": "Binds the invent_data data source to the invent data array.",
|
|
44
|
+
"binding": "invent_data",
|
|
45
|
+
"valueCol": "inventory"
|
|
46
|
+
},
|
|
47
|
+
"profit": {
|
|
48
|
+
"comment": "Binds the profit_data data source to the profits data array.",
|
|
49
|
+
"binding": "profit_data",
|
|
50
|
+
"valueCol": "profits"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"formulas": {
|
|
54
|
+
"comment": "Use this section to calculate any intermediary formulas that will be used in the constraints or objective.",
|
|
55
|
+
"piv_parts": {
|
|
56
|
+
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array.",
|
|
57
|
+
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"variables": {
|
|
61
|
+
"comment": "Use this section to specify the variables in the model.",
|
|
62
|
+
"x": {
|
|
63
|
+
"comment": "Creates the 'x' variable array. The initial variable values are set to 0 using the 'value' property. The size of the array is specified by the 'dimensions' property. 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.",
|
|
64
|
+
"dimensions": [ "prods" ],
|
|
65
|
+
"value": 0,
|
|
66
|
+
"lower": 0,
|
|
67
|
+
"finalValue": []
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"constraints": {
|
|
71
|
+
"comment": "Use this section to specify the constraints in the model.",
|
|
72
|
+
"c": {
|
|
73
|
+
"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.",
|
|
74
|
+
"dimensions": [ "parts" ],
|
|
75
|
+
"formula": "MMULT(piv_parts, x) - invent",
|
|
76
|
+
"upper": 0
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"objective": {
|
|
80
|
+
"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. Note that the transpose property is required since the 'profit' array must be of the same orientation as the x array. The property 'finalValue' ensures that the final objective function value will be returned in the result.",
|
|
81
|
+
"total": {
|
|
82
|
+
"formula": "sumproduct(x, profit)",
|
|
83
|
+
"type": "maximize",
|
|
84
|
+
"finalValue": []
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
87
|
}
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProductMixExcel11Example",
|
|
3
|
-
"modelDescription": "RASON model example of using Excel table binding: Recall that the product mix example finds the optimal number of products (optimal product mix) a business should produce in order to maximize total profit, given present inventory levels. In this example, final variable and constraint values are exported back to the Excel file.",
|
|
4
|
-
"modelType": "optimization",
|
|
5
|
-
"datasources": {
|
|
6
|
-
"comment": "Enter the data sources for the model in this section. There are 5 datasources importing/exporting data from/to 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": "The parts data is found in cells Sheet1!G2:I12. This excel range has two indices, prods and parts. Data from the 'qty' column will be imported into the parts_data datasource.",
|
|
9
|
-
"type": "excel",
|
|
10
|
-
"connection": "ProductMixExcel.xlsx",
|
|
11
|
-
"selection": "Sheet1!G2:I12",
|
|
12
|
-
"indexCols": [ "parts", "prods" ],
|
|
13
|
-
"valueCols": [ "qty" ],
|
|
14
|
-
"direction": "import"
|
|
15
|
-
},
|
|
16
|
-
"invent_data": {
|
|
17
|
-
"comment": "The inventory data is found in cells Sheet1!N2:O6. This excel range has one index, parts. Data from the 'inventory' column will be imported into the invent_data datasource.",
|
|
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
|
-
"comment": "The profit per product produced data is found in cells Sheet1!K2:L4. This excel range has one index, prods. Data from the 'profits' column will be imported into the profit_data datasource.",
|
|
27
|
-
"type": "excel",
|
|
28
|
-
"connection": "ProductMixExcel.xlsx",
|
|
29
|
-
"selection": "Sheet1!K2:L4",
|
|
30
|
-
"indexCols": [ "prods" ],
|
|
31
|
-
"valueCols": [ "profits" ],
|
|
32
|
-
"direction": "import"
|
|
33
|
-
},
|
|
34
|
-
"vars_data": {
|
|
35
|
-
"comment": "The variable initial values are imported from cells Sheet1!Q2:R4. This excel range has one index, prods. The initial variable values 'initials' will be imported into the vars_data datasource. After the solve, the final variable values will be exported back to this same excel range.",
|
|
36
|
-
"type": "excel",
|
|
37
|
-
"connection": "ProductMixExcel.xlsx",
|
|
38
|
-
"selection": "Sheet1!Q2:R4",
|
|
39
|
-
"indexCols": [ "prods" ],
|
|
40
|
-
"valueCols": [ "initials" ],
|
|
41
|
-
"direction": "import/export"
|
|
42
|
-
},
|
|
43
|
-
"fcns_data": {
|
|
44
|
-
"comment": "The final constraint values will be exported to cells Sheet1!U2:U6. The imported data will be organized by the index, parts.",
|
|
45
|
-
"type": "excel",
|
|
46
|
-
"connection": "ProductMixExcel.xlsx",
|
|
47
|
-
"selection": "Sheet1!U2:U6",
|
|
48
|
-
"indexCols": [ "parts" ],
|
|
49
|
-
"direction": "export"
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"data": [
|
|
53
|
-
{
|
|
54
|
-
"comment": "Notice that in this example, the data section has been entered as an array to showcase the flexibility of RASON. This data array, parts2, binds 'qty' data from the parts_data datasource.",
|
|
55
|
-
"name": "parts2",
|
|
56
|
-
"binding": "parts_data",
|
|
57
|
-
"valueCol": "qty"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"comment": "Binds the data in 'inventory' value column within the invent_data data source to the invent data array.",
|
|
61
|
-
"name": "invent",
|
|
62
|
-
"binding": "invent_data",
|
|
63
|
-
"valueCol": "inventory"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"comment": "Binds the data in 'profits' value column within the profit_data data source to the profit data array.",
|
|
67
|
-
"name": "profit",
|
|
68
|
-
"binding": "profit_data",
|
|
69
|
-
"valueCol": "profits"
|
|
70
|
-
}
|
|
71
|
-
],
|
|
72
|
-
"formulas": [
|
|
73
|
-
{
|
|
74
|
-
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array. Notice that this section also uses the alternative syntax as the section above.",
|
|
75
|
-
"name": "piv_parts",
|
|
76
|
-
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
77
|
-
}
|
|
78
|
-
],
|
|
79
|
-
"variables": {
|
|
80
|
-
"comment": "Creates the 'x' variable array. Recall that the variable's initial variables are imported from the vars_data data source (using binding:vars_data) using 'valueCol:initials'. (Recall that 'initials' is the valuecols argument in the vars_data datasource.) The array dimension is explicitly set using the 'dimensions' property. A lower bound of 0 is given for all variables using the property, 'lower'. The final variable values and array indices will be returned in the result due to the 'finalValue' and 'indexValue' properties, respectively.",
|
|
81
|
-
"name": "x",
|
|
82
|
-
"valueCol": "initials",
|
|
83
|
-
"dimensions": [ "prods" ],
|
|
84
|
-
"lower": 0,
|
|
85
|
-
"binding": "vars_data",
|
|
86
|
-
"finalValue": [],
|
|
87
|
-
"indexValue": []
|
|
88
|
-
},
|
|
89
|
-
"constraints": [
|
|
90
|
-
{
|
|
91
|
-
"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. After the solve, the final constraint values will be exported to the fcns_data datasource; the ProductMixExcel.xlsx worksheet in the range, Sheet1!U2:U6.",
|
|
92
|
-
"name": "c",
|
|
93
|
-
"dimensions": [ "parts" ],
|
|
94
|
-
"formula": "MMULT(piv_parts, x) - invent",
|
|
95
|
-
"upper": 0,
|
|
96
|
-
"binding": "fcns_data",
|
|
97
|
-
"finalValue": [],
|
|
98
|
-
"indexValue": []
|
|
99
|
-
}
|
|
100
|
-
],
|
|
101
|
-
"objective": {
|
|
102
|
-
"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.",
|
|
103
|
-
"name": "total",
|
|
104
|
-
"formula": "sumproduct(x, profit)",
|
|
105
|
-
"type": "maximize",
|
|
106
|
-
"finalValue": []
|
|
107
|
-
}
|
|
108
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProductMixExcel11Example",
|
|
3
|
+
"modelDescription": "RASON model example of using Excel table binding: Recall that the product mix example finds the optimal number of products (optimal product mix) a business should produce in order to maximize total profit, given present inventory levels. In this example, final variable and constraint values are exported back to the Excel file.",
|
|
4
|
+
"modelType": "optimization",
|
|
5
|
+
"datasources": {
|
|
6
|
+
"comment": "Enter the data sources for the model in this section. There are 5 datasources importing/exporting data from/to 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": "The parts data is found in cells Sheet1!G2:I12. This excel range has two indices, prods and parts. Data from the 'qty' column will be imported into the parts_data datasource.",
|
|
9
|
+
"type": "excel",
|
|
10
|
+
"connection": "ProductMixExcel.xlsx",
|
|
11
|
+
"selection": "Sheet1!G2:I12",
|
|
12
|
+
"indexCols": [ "parts", "prods" ],
|
|
13
|
+
"valueCols": [ "qty" ],
|
|
14
|
+
"direction": "import"
|
|
15
|
+
},
|
|
16
|
+
"invent_data": {
|
|
17
|
+
"comment": "The inventory data is found in cells Sheet1!N2:O6. This excel range has one index, parts. Data from the 'inventory' column will be imported into the invent_data datasource.",
|
|
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
|
+
"comment": "The profit per product produced data is found in cells Sheet1!K2:L4. This excel range has one index, prods. Data from the 'profits' column will be imported into the profit_data datasource.",
|
|
27
|
+
"type": "excel",
|
|
28
|
+
"connection": "ProductMixExcel.xlsx",
|
|
29
|
+
"selection": "Sheet1!K2:L4",
|
|
30
|
+
"indexCols": [ "prods" ],
|
|
31
|
+
"valueCols": [ "profits" ],
|
|
32
|
+
"direction": "import"
|
|
33
|
+
},
|
|
34
|
+
"vars_data": {
|
|
35
|
+
"comment": "The variable initial values are imported from cells Sheet1!Q2:R4. This excel range has one index, prods. The initial variable values 'initials' will be imported into the vars_data datasource. After the solve, the final variable values will be exported back to this same excel range.",
|
|
36
|
+
"type": "excel",
|
|
37
|
+
"connection": "ProductMixExcel.xlsx",
|
|
38
|
+
"selection": "Sheet1!Q2:R4",
|
|
39
|
+
"indexCols": [ "prods" ],
|
|
40
|
+
"valueCols": [ "initials" ],
|
|
41
|
+
"direction": "import/export"
|
|
42
|
+
},
|
|
43
|
+
"fcns_data": {
|
|
44
|
+
"comment": "The final constraint values will be exported to cells Sheet1!U2:U6. The imported data will be organized by the index, parts.",
|
|
45
|
+
"type": "excel",
|
|
46
|
+
"connection": "ProductMixExcel.xlsx",
|
|
47
|
+
"selection": "Sheet1!U2:U6",
|
|
48
|
+
"indexCols": [ "parts" ],
|
|
49
|
+
"direction": "export"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"data": [
|
|
53
|
+
{
|
|
54
|
+
"comment": "Notice that in this example, the data section has been entered as an array to showcase the flexibility of RASON. This data array, parts2, binds 'qty' data from the parts_data datasource.",
|
|
55
|
+
"name": "parts2",
|
|
56
|
+
"binding": "parts_data",
|
|
57
|
+
"valueCol": "qty"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"comment": "Binds the data in 'inventory' value column within the invent_data data source to the invent data array.",
|
|
61
|
+
"name": "invent",
|
|
62
|
+
"binding": "invent_data",
|
|
63
|
+
"valueCol": "inventory"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"comment": "Binds the data in 'profits' value column within the profit_data data source to the profit data array.",
|
|
67
|
+
"name": "profit",
|
|
68
|
+
"binding": "profit_data",
|
|
69
|
+
"valueCol": "profits"
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"formulas": [
|
|
73
|
+
{
|
|
74
|
+
"comment": "Constructs a pivot table, piv_parts, using the Excel function, PIVOT, using data from the parts2 data array. Notice that this section also uses the alternative syntax as the section above.",
|
|
75
|
+
"name": "piv_parts",
|
|
76
|
+
"formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"variables": {
|
|
80
|
+
"comment": "Creates the 'x' variable array. Recall that the variable's initial variables are imported from the vars_data data source (using binding:vars_data) using 'valueCol:initials'. (Recall that 'initials' is the valuecols argument in the vars_data datasource.) The array dimension is explicitly set using the 'dimensions' property. A lower bound of 0 is given for all variables using the property, 'lower'. The final variable values and array indices will be returned in the result due to the 'finalValue' and 'indexValue' properties, respectively.",
|
|
81
|
+
"name": "x",
|
|
82
|
+
"valueCol": "initials",
|
|
83
|
+
"dimensions": [ "prods" ],
|
|
84
|
+
"lower": 0,
|
|
85
|
+
"binding": "vars_data",
|
|
86
|
+
"finalValue": [],
|
|
87
|
+
"indexValue": []
|
|
88
|
+
},
|
|
89
|
+
"constraints": [
|
|
90
|
+
{
|
|
91
|
+
"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. After the solve, the final constraint values will be exported to the fcns_data datasource; the ProductMixExcel.xlsx worksheet in the range, Sheet1!U2:U6.",
|
|
92
|
+
"name": "c",
|
|
93
|
+
"dimensions": [ "parts" ],
|
|
94
|
+
"formula": "MMULT(piv_parts, x) - invent",
|
|
95
|
+
"upper": 0,
|
|
96
|
+
"binding": "fcns_data",
|
|
97
|
+
"finalValue": [],
|
|
98
|
+
"indexValue": []
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"objective": {
|
|
102
|
+
"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.",
|
|
103
|
+
"name": "total",
|
|
104
|
+
"formula": "sumproduct(x, profit)",
|
|
105
|
+
"type": "maximize",
|
|
106
|
+
"finalValue": []
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
109
|
|
|
@@ -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
|
}
|