@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.
Files changed (195) hide show
  1. package/LICENSE +35 -35
  2. package/README.md +1 -1
  3. package/examples/EXAMPLES_REFERENCE.md +128 -128
  4. package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
  5. package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
  6. package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
  7. package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
  8. package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
  9. package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
  10. package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
  11. package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
  12. package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
  13. package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
  14. package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
  15. package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
  16. package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
  17. package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
  18. package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
  19. package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
  20. package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
  21. package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
  22. package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
  23. package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
  24. package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
  25. package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
  26. package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
  27. package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
  28. package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
  29. package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
  30. package/examples/datamining/Classification/DecisionTree.json +90 -90
  31. package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
  32. package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
  33. package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
  34. package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
  35. package/examples/datamining/Classification/FindBestModel.json +86 -86
  36. package/examples/datamining/Classification/LogisticRegression.json +82 -82
  37. package/examples/datamining/Classification/NaiveBayes.json +78 -78
  38. package/examples/datamining/Classification/NearestNeighbors.json +84 -84
  39. package/examples/datamining/Classification/NeuralNetwork.json +92 -92
  40. package/examples/datamining/Clustering/Hierarchical.json +54 -54
  41. package/examples/datamining/Clustering/KMeans.json +71 -71
  42. package/examples/datamining/DataSources/DelimitedFile.json +49 -49
  43. package/examples/datamining/DataSources/JSONFile.json +49 -49
  44. package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
  45. package/examples/datamining/DataSources/MSExcelTable.json +50 -50
  46. package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
  47. package/examples/datamining/DataSources/ODATATable.json +49 -49
  48. package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
  49. package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
  50. package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
  51. package/examples/datamining/FeatureSelection/Univariate.json +78 -78
  52. package/examples/datamining/Regression/DecisionTree.json +82 -82
  53. package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
  54. package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
  55. package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
  56. package/examples/datamining/Regression/FindBestModel.json +86 -86
  57. package/examples/datamining/Regression/LinearRegression.json +124 -124
  58. package/examples/datamining/Regression/NearestNeighbors.json +77 -77
  59. package/examples/datamining/Regression/NeuralNetwork.json +82 -82
  60. package/examples/datamining/Scoring/JSONClassifier.json +62 -62
  61. package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
  62. package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
  63. package/examples/datamining/Scoring/JSONForecaster.json +49 -49
  64. package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
  65. package/examples/datamining/Scoring/JSONPCA.json +41 -41
  66. package/examples/datamining/Scoring/JSONRegressor.json +56 -56
  67. package/examples/datamining/Scoring/JSONTransformer.json +38 -38
  68. package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
  69. package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
  70. package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
  71. package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
  72. package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
  73. package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
  74. package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
  75. package/examples/datamining/Summarizer/Summarization.json +54 -54
  76. package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
  77. package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
  78. package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
  79. package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
  80. package/examples/datamining/TimeSeries/Arima.json +74 -74
  81. package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
  82. package/examples/datamining/TimeSeries/Exponential.json +64 -64
  83. package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
  84. package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
  85. package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
  86. package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
  87. package/examples/datamining/Transformation/Binning.json +69 -69
  88. package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
  89. package/examples/datamining/Transformation/CategoryReduction.json +51 -51
  90. package/examples/datamining/Transformation/Factorization.json +50 -50
  91. package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
  92. package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
  93. package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
  94. package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
  95. package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
  96. package/examples/datamining/Transformation/Partitioning.json +46 -46
  97. package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
  98. package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
  99. package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
  100. package/examples/datamining/Transformation/Rescaling.json +67 -67
  101. package/examples/datamining/Transformation/Sampling.json +43 -43
  102. package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
  103. package/examples/flow/SQLServerTransform.json +260 -260
  104. package/examples/flow/dm-calc-pipeline.json +277 -277
  105. package/examples/flow/dm-pipeline-simulation.json +113 -113
  106. package/examples/flow/opt-sim-pipeline.json +159 -159
  107. package/examples/flow/sim-dm-pipeline.json +106 -106
  108. package/examples/flow/sim-sim-pipeline.json +136 -136
  109. package/examples/index.json +4678 -4678
  110. package/examples/{Optimization → optimization}/Conic/AirlineHubConic.json +111 -111
  111. package/examples/{Optimization → optimization}/Conic/AirlineHubConic2.json +108 -108
  112. package/examples/{Optimization → optimization}/Conic/AirlineHubConic3.json +111 -111
  113. package/examples/{Optimization → optimization}/Conic/AirlineHubConic4.json +99 -99
  114. package/examples/{Optimization → optimization}/Conic/AirlineHubConic5.json +101 -101
  115. package/examples/{Optimization → optimization}/DataBinding/ProductMixCsv.json +81 -81
  116. package/examples/{Optimization → optimization}/DataBinding/ProductMixCsv4.json +96 -96
  117. package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel.json +73 -73
  118. package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel1.json +86 -86
  119. package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel11.json +108 -108
  120. package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel2.json +77 -77
  121. package/examples/{Optimization → optimization}/DataBinding/ProductMixTab.json +89 -89
  122. package/examples/{Optimization → optimization}/DataBinding/ProductMixTab1.json +73 -73
  123. package/examples/{Optimization → optimization}/DataBinding/ProductMixTab2.json +77 -77
  124. package/examples/{Optimization → optimization}/Linear/Inventory.json +199 -199
  125. package/examples/{Optimization → optimization}/Linear/Matop.json +119 -119
  126. package/examples/{Optimization → optimization}/Linear/ProductMix.json +97 -97
  127. package/examples/{Optimization → optimization}/Linear/ProductMix2.json +72 -72
  128. package/examples/{Optimization → optimization}/Linear/ProductMix3.json +49 -49
  129. package/examples/{Optimization → optimization}/Linear/ProductMix4.json +56 -56
  130. package/examples/{Optimization → optimization}/Linear/ProductMixCsv1.json +106 -106
  131. package/examples/{Optimization → optimization}/Linear/ProductMixCsv2.json +106 -106
  132. package/examples/{Optimization → optimization}/Linear/ProductMixSQL11.json +82 -82
  133. package/examples/{Optimization → optimization}/Linear/Rowop.json +126 -126
  134. package/examples/{Optimization → optimization}/NonLinear/AirlineHub.json +63 -63
  135. package/examples/{Optimization → optimization}/NonLinear/AirlineHub2.json +47 -47
  136. package/examples/{Optimization → optimization}/NonLinear/AirlineHub3.json +47 -47
  137. package/examples/{Optimization → optimization}/NonSmooth/Inventory2.json +159 -159
  138. package/examples/{Optimization → optimization}/Quadratic/PortfolioOpt.json +55 -55
  139. package/examples/{Optimization → optimization}/Quadratic/PortfolioOpt2.json +65 -65
  140. package/examples/{Optimization → optimization}/WithUncertainty/GasCompanyChance.json +78 -78
  141. package/examples/{Optimization → optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
  142. package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect.json +77 -77
  143. package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect2.json +81 -81
  144. package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect3.json +84 -84
  145. package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect4.json +74 -74
  146. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
  147. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
  148. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
  149. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
  150. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
  151. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
  152. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
  153. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
  154. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
  155. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
  156. package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
  157. package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
  158. package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
  159. package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
  160. package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
  161. package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
  162. package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
  163. package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
  164. package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
  165. package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
  166. package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
  167. package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
  168. package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
  169. package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
  170. package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
  171. package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
  172. package/examples/rason-features/UserGuide/UGForecast.json +50 -50
  173. package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
  174. package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
  175. package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
  176. package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
  177. package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
  178. package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
  179. package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
  180. package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
  181. package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
  182. package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
  183. package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
  184. package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
  185. package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
  186. package/examples/{Simulation → simulation}/CandyStoreSalesUsingSIP.json +147 -147
  187. package/examples/{Simulation → simulation}/CollegeFundGrowth1.json +423 -423
  188. package/examples/{Simulation → simulation}/CollegeFundGrowth1SIPModel.json +27 -27
  189. package/examples/{Simulation → simulation}/CollegeFundGrowth2.json +415 -415
  190. package/examples/{Simulation → simulation}/CollegeFundGrowthSIP.json +401 -401
  191. package/examples/{Simulation → simulation}/GBMSimulationModel.json +236 -236
  192. package/examples/{Simulation → simulation}/YieldManagement(Sim).json +69 -69
  193. package/examples/{Simulation → simulation}/YieldManagement2(Sim).json +72 -72
  194. package/out/index.cjs +38 -38
  195. package/package.json +2 -2
@@ -1,50 +1,50 @@
1
- {
2
- "modelName": "productMix3Example",
3
- "modelDescription": "Product Mix RASON Optimization Example 3: Recall that the Product Mix example finds the optimal product mix that a company should manufacture in order to maximize gross profit. In this version of the Product Mix model, sensitivity information is returned in the result. This information lets the user know which constraints are binding or non binding. If a constraint is binding, the left hand side of the constraint is equal to its upper or lower bound or both, in the case of an equality. This means that in order to improve the objective, the constraint(s) must be relaxed or moved away from the upper or lower bound. The Dual Value, or Shadow Price, is the change in the objective value of the optimal solution when the constraint is relaxed by one unit within the allowable increase or decrease.",
4
- "modelType": "optimization",
5
- "variables": {
6
- "comment": "If the dualValue keyword is present, the variable's dual values will be returned. The variable dual values in the result will be 0 for TVs, 0 for Stereos and -2.5 for Speakers. The reduced cost of -2.5 for Speakers (F9), indicates that, if forced to produce some Speakers, the objective (Total Profit) would decrease by $2.50 for each Speaker made. This is because the production of an alternate more profitable product would be decreased to make way for Speaker production.",
7
- "d9:f9": {
8
- "lower": 0,
9
- "value": 0,
10
- "finalValue": [],
11
- "dualValue": []
12
- }
13
- },
14
- "data": {
15
- "d17:f17": {
16
- "comment": "D17:F17 contain the coefficient values (profit per unit produced) for each [TV, Stereo, Speaker].",
17
- "value": [
18
- [ 75, 50, 35 ]
19
- ]
20
- },
21
- "d11:f15": {
22
- "comment": "D11:F15 contains all constraint coefficient values, or the number of parts required to produce each [TV, Stereo, Speaker]. The first row of the array passes the number of chassis required to produce each product, the 2nd, the number of Screens, the 3rd, the number of Speakers, the 4th, the number of Power Supply kits and lastly, the number of Electronic kits required to produce each product.",
23
- "value": [
24
- [ 1, 1, 0 ],
25
- [ 1, 0, 0 ],
26
- [ 2, 2, 1 ],
27
- [ 1, 1, 0 ],
28
- [ 2, 1, 1 ]
29
- ]
30
- }
31
- },
32
- "constraints": {
33
- "comment": "Five constraints are created using the Excel MMULT function, which multiplies matrices. The syntax for the function is: MMULT (array1,array2) where array1 and array2 are the arrays or matrices to be multiplied. The constraint right hand sides are contained in the upper array. The resulting constraints are: Chassis - #Tvs * 1 + #Stereos * 1 + #Speakers * 0 <= 450, Screens - #Tvs * 1 + #Stereos * 0 + #Speakers * 0 <= 250, etc. The constraint dual values will be 0 for 1st, 2nd and 4th constraints, 12.5 for the 3rd constraint (Speakers) and 25 for the last constraint (Electronics). Note that a constraint dual value will only be nonzero if the constraint is equal to it's lower or upper bound. In the optimal solution, all 800 Speakers and 600 Electronics, but not all of the additional components such as Chassis, LCD Screens or Power Supplies, are used. Since all Speakers and Electronics are used in the final solution, these two constraints have non-zero dual values. The dual value for Electronics indicates that if we can obtain one more Electronic kit, our objective function value (total profit) will increase by $25. Similarly, if one more speaker can be obtained in the inventory, the objective final value will increase by $12.50.",
34
- "c11:c15": {
35
- "formula": "mmult(d11:f15, transpose(d9:f9))",
36
- "lower": 0,
37
- "upper": [ 450, 250, 800, 450, 600 ],
38
- "dualValue": []
39
- }
40
- },
41
- "objective": {
42
- "comment": "Calculates the objective function to be maximized: =#TVS * 75 + #Stereos * 50 + #Speakers * 35. The keyword, initialValue, returns the initial objective value in the result. Since the initial values for all 3 variables are set to 0, the objective's initialValue will also be 0 (=#Tvs * 0, #Stereos * 0 + #Speakers * 0).",
43
- "d18": {
44
- "type": "maximize",
45
- "formula": "sumproduct(d9:f9, d17:f17)",
46
- "finalValue": [],
47
- "initialValue": []
48
- }
49
- }
1
+ {
2
+ "modelName": "productMix3Example",
3
+ "modelDescription": "Product Mix RASON Optimization Example 3: Recall that the Product Mix example finds the optimal product mix that a company should manufacture in order to maximize gross profit. In this version of the Product Mix model, sensitivity information is returned in the result. This information lets the user know which constraints are binding or non binding. If a constraint is binding, the left hand side of the constraint is equal to its upper or lower bound or both, in the case of an equality. This means that in order to improve the objective, the constraint(s) must be relaxed or moved away from the upper or lower bound. The Dual Value, or Shadow Price, is the change in the objective value of the optimal solution when the constraint is relaxed by one unit within the allowable increase or decrease.",
4
+ "modelType": "optimization",
5
+ "variables": {
6
+ "comment": "If the dualValue keyword is present, the variable's dual values will be returned. The variable dual values in the result will be 0 for TVs, 0 for Stereos and -2.5 for Speakers. The reduced cost of -2.5 for Speakers (F9), indicates that, if forced to produce some Speakers, the objective (Total Profit) would decrease by $2.50 for each Speaker made. This is because the production of an alternate more profitable product would be decreased to make way for Speaker production.",
7
+ "d9:f9": {
8
+ "lower": 0,
9
+ "value": 0,
10
+ "finalValue": [],
11
+ "dualValue": []
12
+ }
13
+ },
14
+ "data": {
15
+ "d17:f17": {
16
+ "comment": "D17:F17 contain the coefficient values (profit per unit produced) for each [TV, Stereo, Speaker].",
17
+ "value": [
18
+ [ 75, 50, 35 ]
19
+ ]
20
+ },
21
+ "d11:f15": {
22
+ "comment": "D11:F15 contains all constraint coefficient values, or the number of parts required to produce each [TV, Stereo, Speaker]. The first row of the array passes the number of chassis required to produce each product, the 2nd, the number of Screens, the 3rd, the number of Speakers, the 4th, the number of Power Supply kits and lastly, the number of Electronic kits required to produce each product.",
23
+ "value": [
24
+ [ 1, 1, 0 ],
25
+ [ 1, 0, 0 ],
26
+ [ 2, 2, 1 ],
27
+ [ 1, 1, 0 ],
28
+ [ 2, 1, 1 ]
29
+ ]
30
+ }
31
+ },
32
+ "constraints": {
33
+ "comment": "Five constraints are created using the Excel MMULT function, which multiplies matrices. The syntax for the function is: MMULT (array1,array2) where array1 and array2 are the arrays or matrices to be multiplied. The constraint right hand sides are contained in the upper array. The resulting constraints are: Chassis - #Tvs * 1 + #Stereos * 1 + #Speakers * 0 <= 450, Screens - #Tvs * 1 + #Stereos * 0 + #Speakers * 0 <= 250, etc. The constraint dual values will be 0 for 1st, 2nd and 4th constraints, 12.5 for the 3rd constraint (Speakers) and 25 for the last constraint (Electronics). Note that a constraint dual value will only be nonzero if the constraint is equal to it's lower or upper bound. In the optimal solution, all 800 Speakers and 600 Electronics, but not all of the additional components such as Chassis, LCD Screens or Power Supplies, are used. Since all Speakers and Electronics are used in the final solution, these two constraints have non-zero dual values. The dual value for Electronics indicates that if we can obtain one more Electronic kit, our objective function value (total profit) will increase by $25. Similarly, if one more speaker can be obtained in the inventory, the objective final value will increase by $12.50.",
34
+ "c11:c15": {
35
+ "formula": "mmult(d11:f15, transpose(d9:f9))",
36
+ "lower": 0,
37
+ "upper": [ 450, 250, 800, 450, 600 ],
38
+ "dualValue": []
39
+ }
40
+ },
41
+ "objective": {
42
+ "comment": "Calculates the objective function to be maximized: =#TVS * 75 + #Stereos * 50 + #Speakers * 35. The keyword, initialValue, returns the initial objective value in the result. Since the initial values for all 3 variables are set to 0, the objective's initialValue will also be 0 (=#Tvs * 0, #Stereos * 0 + #Speakers * 0).",
43
+ "d18": {
44
+ "type": "maximize",
45
+ "formula": "sumproduct(d9:f9, d17:f17)",
46
+ "finalValue": [],
47
+ "initialValue": []
48
+ }
49
+ }
50
50
  }
@@ -1,57 +1,57 @@
1
- {
2
- "modelName": "productMix4Example",
3
- "modelDescription": "Product Mix RASON Optimization Example 4: This version of the Product Mix example replaces the Excel range array names with improved readable names such as profits, parts, inventory, etc. Recall that the Product Mix example finds the optimal product mix that a company should manufacture in order to maximize gross profit. ",
4
- "modelType": "optimization",
5
- "variables": {
6
- "comment": "The name, D9:F9, has been replaced with the name, x. The previous name D9:F9 automatically created an array of size 3, since the Excel range contained 3 cells: D9, E9 and F9. Since the name is now being replaced with x, the size of the array must be specified. The dimensions keyword explicitly defines the number of dimensions in the array. Since there are 3 variables, the variable array must be of size 3.",
7
- "x": {
8
- "dimensions": [ 3 ],
9
- "value": 0,
10
- "lower": 0,
11
- "finalValue": []
12
- }
13
- },
14
- "data": {
15
- "comment": "The name D17:F17 has been replaced with profits and D11:F15 has been replaced with parts.",
16
- "profits": {
17
- "comment": "This array uses the dimensions property to create an array of size 3. Previously, the name D17:F17 automatically created an array of size 3 since this Excel range contained 3 cells: D17, E17, and F17. Note the 'binding' property which serves two functions, one of which is to allow write access to a table or array outside of the RASON model environment. For example, passing 'binding': 'get' to the profits array allows these values to be modified directly through a REST API call, or from within the Query Parameters section on the Editor page. ",
18
- "dimensions": [ 3 ],
19
- "value": [ 75, 50, 35 ],
20
- "binding": "get",
21
- "finalValue": []
22
- },
23
- "parts": {
24
- "comment": "This array uses the dimensions property to create a double array of size 5 rows and 3 cols. Previously, the name D11:F15 automatically created an array of this size since this Excel range contained 15 cells in 5 rows and 3 cols.",
25
- "dimensions": [ 5, 3 ],
26
- "value": [
27
- [ 1, 1, 0 ],
28
- [ 1, 0, 0 ],
29
- [ 2, 2, 1 ],
30
- [ 1, 1, 0 ],
31
- [ 2, 1, 1 ]
32
- ]
33
- },
34
- "inventory": {
35
- "comment": "This new array contains the constraint right hand sides, or the number of parts in inventory. No dimensions property is required as the size of the array is inferred through the number of individual values passed (5): [Chassis, Screens, Speakers, Power Supply, Electronics]",
36
- "value": [ 450, 250, 800, 450, 600 ]
37
- }
38
- },
39
- "constraints": {
40
- "comment": "5 constraints are created in this section.",
41
- "num_used": {
42
- "comment": "The name C11:C15 has been replaced with the name, num_used. The dimensions property is used to set the size of the array to 5. The MMULT Excel function multiplies the parts array by the x array creating 5 constraints. The right hand sides of the constraints are passed in the upper property.",
43
- "dimensions": [ 5 ],
44
- "formula": "MMULT(parts, x)",
45
- "lower": 0,
46
- "upper": "inventory"
47
- }
48
- },
49
- "objective": {
50
- "comment": "The name D18 has been replaced with total. The sumproduct function multiples two arrays, x and profits, creating the formula: x1 * 75 + x2 * 50 + x3 * 35",
51
- "total": {
52
- "formula": "sumproduct(x, profits)",
53
- "type": "maximize",
54
- "finalValue": []
55
- }
56
- }
1
+ {
2
+ "modelName": "productMix4Example",
3
+ "modelDescription": "Product Mix RASON Optimization Example 4: This version of the Product Mix example replaces the Excel range array names with improved readable names such as profits, parts, inventory, etc. Recall that the Product Mix example finds the optimal product mix that a company should manufacture in order to maximize gross profit. ",
4
+ "modelType": "optimization",
5
+ "variables": {
6
+ "comment": "The name, D9:F9, has been replaced with the name, x. The previous name D9:F9 automatically created an array of size 3, since the Excel range contained 3 cells: D9, E9 and F9. Since the name is now being replaced with x, the size of the array must be specified. The dimensions keyword explicitly defines the number of dimensions in the array. Since there are 3 variables, the variable array must be of size 3.",
7
+ "x": {
8
+ "dimensions": [ 3 ],
9
+ "value": 0,
10
+ "lower": 0,
11
+ "finalValue": []
12
+ }
13
+ },
14
+ "data": {
15
+ "comment": "The name D17:F17 has been replaced with profits and D11:F15 has been replaced with parts.",
16
+ "profits": {
17
+ "comment": "This array uses the dimensions property to create an array of size 3. Previously, the name D17:F17 automatically created an array of size 3 since this Excel range contained 3 cells: D17, E17, and F17. Note the 'binding' property which serves two functions, one of which is to allow write access to a table or array outside of the RASON model environment. For example, passing 'binding': 'get' to the profits array allows these values to be modified directly through a REST API call, or from within the Query Parameters section on the Editor page. ",
18
+ "dimensions": [ 3 ],
19
+ "value": [ 75, 50, 35 ],
20
+ "binding": "get",
21
+ "finalValue": []
22
+ },
23
+ "parts": {
24
+ "comment": "This array uses the dimensions property to create a double array of size 5 rows and 3 cols. Previously, the name D11:F15 automatically created an array of this size since this Excel range contained 15 cells in 5 rows and 3 cols.",
25
+ "dimensions": [ 5, 3 ],
26
+ "value": [
27
+ [ 1, 1, 0 ],
28
+ [ 1, 0, 0 ],
29
+ [ 2, 2, 1 ],
30
+ [ 1, 1, 0 ],
31
+ [ 2, 1, 1 ]
32
+ ]
33
+ },
34
+ "inventory": {
35
+ "comment": "This new array contains the constraint right hand sides, or the number of parts in inventory. No dimensions property is required as the size of the array is inferred through the number of individual values passed (5): [Chassis, Screens, Speakers, Power Supply, Electronics]",
36
+ "value": [ 450, 250, 800, 450, 600 ]
37
+ }
38
+ },
39
+ "constraints": {
40
+ "comment": "5 constraints are created in this section.",
41
+ "num_used": {
42
+ "comment": "The name C11:C15 has been replaced with the name, num_used. The dimensions property is used to set the size of the array to 5. The MMULT Excel function multiplies the parts array by the x array creating 5 constraints. The right hand sides of the constraints are passed in the upper property.",
43
+ "dimensions": [ 5 ],
44
+ "formula": "MMULT(parts, x)",
45
+ "lower": 0,
46
+ "upper": "inventory"
47
+ }
48
+ },
49
+ "objective": {
50
+ "comment": "The name D18 has been replaced with total. The sumproduct function multiples two arrays, x and profits, creating the formula: x1 * 75 + x2 * 50 + x3 * 35",
51
+ "total": {
52
+ "formula": "sumproduct(x, profits)",
53
+ "type": "maximize",
54
+ "finalValue": []
55
+ }
56
+ }
57
57
  }
@@ -1,106 +1,106 @@
1
- {
2
- "modelName": "productMixCsv1Example",
3
- "modelDescription": "Product Mix CSV 1 RASON Optimization Example: This example uses CSV table binding to read parameter values and save the final results. Recall that the Product Mix example finds the optimal product mix that a company should manufacture in order to maximize gross profit.",
4
- "modelType": "optimization",
5
- "datasources": {
6
- "comment": "There are 6 datasources (parts_data, invent_data, profit_data, vars_data, fcns_data and obj_data) that will either import data, export data or both. Download all 6 data source files by clicking the download icon on the Editor tab ribbon. Then attach all 6 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.",
7
- "parts_data": {
8
- "comment": "This data source pulls data from the ProductMixParts.txt file. This data source file contains two index sets, 'parts' and 'prods' and contains the required number of parts required to produce each product. The column in the data source containing the values is 'qty'. Since we are reading data from this source, the direction is 'import'.",
9
- "type": "csv",
10
- "connection": "ProductMixParts.txt",
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",
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",
27
- "indexCols": [ "prods" ],
28
- "valueCols": [ "profits" ],
29
- "direction": "import"
30
- },
31
- "vars_data": {
32
- "comment": "This data source pulls data from the ResultVarsInit.txt file. This data source contains one index, 'prods'. The initial value for each variable is listed under 'initials'. Since we are reading the initial variable values and also saving the final values to this source, the direction is 'import/export'.",
33
- "type": "csv",
34
- "connection": "ResultVarsInit.txt",
35
- "indexCols": [ "prods" ],
36
- "valueCols": [ "initials" ],
37
- "direction": "import/export"
38
- },
39
- "fcns_data": {
40
- "comment": "Final constraint values will be exported, or saved, to the file, ResultFcns.txt. Since this file is used for export only, there is no need to attach this file to the model using Choose Files...",
41
- "type": "csv",
42
- "connection": "ResultFcns.txt",
43
- "direction": "export"
44
- },
45
- "obj_data": {
46
- "comment": "The final objective value will be exported, or saved, to the file, ResultObj.txt. Since this file is used for export only, there is no need to attach this file to the model using Choose Files...",
47
- "type": "csv",
48
- "connection": "ResultObj.txt",
49
- "direction": "export"
50
- }
51
- },
52
- "data": [
53
- {
54
- "comment": "Binds the 'parts_data' data source to 'parts2' data array.",
55
- "name": "parts2",
56
- "binding": "parts_data",
57
- "valueCol": "qty"
58
- },
59
- {
60
- "comment": "Binds the 'invent_data' data source to 'invent' data array.",
61
- "name": "invent",
62
- "binding": "invent_data",
63
- "valueCol": "inventory"
64
- },
65
- {
66
- "comment": "Binds the 'profit_data' data source to '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.",
75
- "name": "piv_parts",
76
- "formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
77
- }
78
- ],
79
- "variables": {
80
- "comment": "Creates the 'x' variable array from the 'vars_data' datasource. The initial variable values are set to the values listed in the 'initials' column in the data source. The final variable values will be exported back to this file after the solve is complete.",
81
- "name": "x",
82
- "binding": "vars_data",
83
- "valueCol": "initials",
84
- "lower": 0,
85
- "finalValue": []
86
- },
87
- "constraints": [
88
- {
89
- "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. The final constraint values will be exported back to the same data source.",
90
- "name": "c",
91
- "dimensions": [ "parts" ],
92
- "formula": "MMULT(piv_parts, x)",
93
- "upper": "invent",
94
- "binding": "fcns_data",
95
- "finalValue": []
96
- }
97
- ],
98
- "objective": {
99
- "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 obj_data data source. The final objective value will be exported back to this data source.",
100
- "name": "total",
101
- "formula": "sumproduct(x, profit)",
102
- "type": "maximize",
103
- "binding": "obj_data",
104
- "finalValue": []
105
- }
106
- }
1
+ {
2
+ "modelName": "productMixCsv1Example",
3
+ "modelDescription": "Product Mix CSV 1 RASON Optimization Example: This example uses CSV table binding to read parameter values and save the final results. Recall that the Product Mix example finds the optimal product mix that a company should manufacture in order to maximize gross profit.",
4
+ "modelType": "optimization",
5
+ "datasources": {
6
+ "comment": "There are 6 datasources (parts_data, invent_data, profit_data, vars_data, fcns_data and obj_data) that will either import data, export data or both. Download all 6 data source files by clicking the download icon on the Editor tab ribbon. Then attach all 6 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.",
7
+ "parts_data": {
8
+ "comment": "This data source pulls data from the ProductMixParts.txt file. This data source file contains two index sets, 'parts' and 'prods' and contains the required number of parts required to produce each product. The column in the data source containing the values is 'qty'. Since we are reading data from this source, the direction is 'import'.",
9
+ "type": "csv",
10
+ "connection": "ProductMixParts.txt",
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",
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",
27
+ "indexCols": [ "prods" ],
28
+ "valueCols": [ "profits" ],
29
+ "direction": "import"
30
+ },
31
+ "vars_data": {
32
+ "comment": "This data source pulls data from the ResultVarsInit.txt file. This data source contains one index, 'prods'. The initial value for each variable is listed under 'initials'. Since we are reading the initial variable values and also saving the final values to this source, the direction is 'import/export'.",
33
+ "type": "csv",
34
+ "connection": "ResultVarsInit.txt",
35
+ "indexCols": [ "prods" ],
36
+ "valueCols": [ "initials" ],
37
+ "direction": "import/export"
38
+ },
39
+ "fcns_data": {
40
+ "comment": "Final constraint values will be exported, or saved, to the file, ResultFcns.txt. Since this file is used for export only, there is no need to attach this file to the model using Choose Files...",
41
+ "type": "csv",
42
+ "connection": "ResultFcns.txt",
43
+ "direction": "export"
44
+ },
45
+ "obj_data": {
46
+ "comment": "The final objective value will be exported, or saved, to the file, ResultObj.txt. Since this file is used for export only, there is no need to attach this file to the model using Choose Files...",
47
+ "type": "csv",
48
+ "connection": "ResultObj.txt",
49
+ "direction": "export"
50
+ }
51
+ },
52
+ "data": [
53
+ {
54
+ "comment": "Binds the 'parts_data' data source to 'parts2' data array.",
55
+ "name": "parts2",
56
+ "binding": "parts_data",
57
+ "valueCol": "qty"
58
+ },
59
+ {
60
+ "comment": "Binds the 'invent_data' data source to 'invent' data array.",
61
+ "name": "invent",
62
+ "binding": "invent_data",
63
+ "valueCol": "inventory"
64
+ },
65
+ {
66
+ "comment": "Binds the 'profit_data' data source to '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.",
75
+ "name": "piv_parts",
76
+ "formula": "PIVOT(parts2, { 'prods' }, { 'parts' })"
77
+ }
78
+ ],
79
+ "variables": {
80
+ "comment": "Creates the 'x' variable array from the 'vars_data' datasource. The initial variable values are set to the values listed in the 'initials' column in the data source. The final variable values will be exported back to this file after the solve is complete.",
81
+ "name": "x",
82
+ "binding": "vars_data",
83
+ "valueCol": "initials",
84
+ "lower": 0,
85
+ "finalValue": []
86
+ },
87
+ "constraints": [
88
+ {
89
+ "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. The final constraint values will be exported back to the same data source.",
90
+ "name": "c",
91
+ "dimensions": [ "parts" ],
92
+ "formula": "MMULT(piv_parts, x)",
93
+ "upper": "invent",
94
+ "binding": "fcns_data",
95
+ "finalValue": []
96
+ }
97
+ ],
98
+ "objective": {
99
+ "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 obj_data data source. The final objective value will be exported back to this data source.",
100
+ "name": "total",
101
+ "formula": "sumproduct(x, profit)",
102
+ "type": "maximize",
103
+ "binding": "obj_data",
104
+ "finalValue": []
105
+ }
106
+ }