@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,58 +1,58 @@
1
- {
2
- "modelName": "ProductMix5",
3
- "modelDescription": "Solves the product mix example using constraints defined with a for statement and indexed arrays.",
4
- "modelType": "optimization",
5
- "variables": {
6
- "x": {
7
- "comment": "Decision variables: quantity produced of each product (one variable per product). Lower bound of 0 for each variable. Final values are requested in the solution.",
8
- "lower": [ 0, 0, 0 ],
9
- "finalValue": []
10
- }
11
- },
12
- "data": {
13
- "profits": {
14
- "comment": "Profit per unit for each product. $75 for TVS, $50 for stereos and $35 for speakers. The binding:get property allows these values to be changed outside of the model environment. Values will be available in the solution.",
15
- "dimensions": [ 3 ],
16
- "value": [ 75, 50, 35 ],
17
- "binding": "get",
18
- "finalValue": []
19
-
20
- },
21
-
22
- "parts": {
23
- "comment": "Parts usage matrix: parts[p,i] = units of part p required to produce product i",
24
- "dimensions": [ 5, 3 ],
25
- "value": [
26
- [ 1, 1, 0 ],
27
- [ 1, 0, 0 ],
28
- [ 2, 2, 1 ],
29
- [ 1, 1, 0 ],
30
- [ 2, 1, 1 ]
31
- ]
32
- },
33
-
34
- "inventory": {
35
- "comment": "Available inventory for each part (one value per part)",
36
- "value": [ 450, 250, 800, 450, 600 ]
37
- }
38
- },
39
-
40
- "constraints": {
41
- "comment": "Create one inventory constraint for each part",
42
- "for(p in 1..5)": {
43
- "comment": "Total usage of part p across all products cannot exceed available inventory",
44
- "cons[p]": {
45
- "formula": "sumproduct(parts[p,], transpose(x))",
46
- "upper": "inventory"
47
- }
48
- }
49
- },
50
- "objective": {
51
- "comment": "Maximize total profit across all products",
52
- "total": {
53
- "formula": "sumproduct(x, profits)",
54
- "type": "maximize",
55
- "finalValue": []
56
- }
57
- }
1
+ {
2
+ "modelName": "ProductMix5",
3
+ "modelDescription": "Solves the product mix example using constraints defined with a for statement and indexed arrays.",
4
+ "modelType": "optimization",
5
+ "variables": {
6
+ "x": {
7
+ "comment": "Decision variables: quantity produced of each product (one variable per product). Lower bound of 0 for each variable. Final values are requested in the solution.",
8
+ "lower": [ 0, 0, 0 ],
9
+ "finalValue": []
10
+ }
11
+ },
12
+ "data": {
13
+ "profits": {
14
+ "comment": "Profit per unit for each product. $75 for TVS, $50 for stereos and $35 for speakers. The binding:get property allows these values to be changed outside of the model environment. Values will be available in the solution.",
15
+ "dimensions": [ 3 ],
16
+ "value": [ 75, 50, 35 ],
17
+ "binding": "get",
18
+ "finalValue": []
19
+
20
+ },
21
+
22
+ "parts": {
23
+ "comment": "Parts usage matrix: parts[p,i] = units of part p required to produce product i",
24
+ "dimensions": [ 5, 3 ],
25
+ "value": [
26
+ [ 1, 1, 0 ],
27
+ [ 1, 0, 0 ],
28
+ [ 2, 2, 1 ],
29
+ [ 1, 1, 0 ],
30
+ [ 2, 1, 1 ]
31
+ ]
32
+ },
33
+
34
+ "inventory": {
35
+ "comment": "Available inventory for each part (one value per part)",
36
+ "value": [ 450, 250, 800, 450, 600 ]
37
+ }
38
+ },
39
+
40
+ "constraints": {
41
+ "comment": "Create one inventory constraint for each part",
42
+ "for(p in 1..5)": {
43
+ "comment": "Total usage of part p across all products cannot exceed available inventory",
44
+ "cons[p]": {
45
+ "formula": "sumproduct(parts[p,], transpose(x))",
46
+ "upper": "inventory"
47
+ }
48
+ }
49
+ },
50
+ "objective": {
51
+ "comment": "Maximize total profit across all products",
52
+ "total": {
53
+ "formula": "sumproduct(x, profits)",
54
+ "type": "maximize",
55
+ "finalValue": []
56
+ }
57
+ }
58
58
  }
@@ -1,36 +1,36 @@
1
- {
2
- "modelName": "compoundWhileStatement",
3
- "modelDescription": "example of compound and while statements",
4
- "modelType": "calculation",
5
- "data": {
6
- "f": {
7
- "dimensions": [ 5 ],
8
- "value": 0
9
- },
10
- "i": {
11
- "value": 1
12
- }
13
- },
14
- "formulas": {
15
- "compound": {
16
- "i": {
17
- "value": 1,
18
- "comment": "need to reset it in case of multiple calculation"
19
- },
20
- "while(i <= 5)": {
21
- "sum(j in 1..i)": {
22
- "s": {
23
- "formula": "j"
24
- }
25
- },
26
- "f[i]": {
27
- "formula": "s",
28
- "finalValue": []
29
- },
30
- "i": {
31
- "formula": "i + 1"
32
- }
33
- }
34
- }
35
- }
1
+ {
2
+ "modelName": "compoundWhileStatement",
3
+ "modelDescription": "example of compound and while statements",
4
+ "modelType": "calculation",
5
+ "data": {
6
+ "f": {
7
+ "dimensions": [ 5 ],
8
+ "value": 0
9
+ },
10
+ "i": {
11
+ "value": 1
12
+ }
13
+ },
14
+ "formulas": {
15
+ "compound": {
16
+ "i": {
17
+ "value": 1,
18
+ "comment": "need to reset it in case of multiple calculation"
19
+ },
20
+ "while(i <= 5)": {
21
+ "sum(j in 1..i)": {
22
+ "s": {
23
+ "formula": "j"
24
+ }
25
+ },
26
+ "f[i]": {
27
+ "formula": "s",
28
+ "finalValue": []
29
+ },
30
+ "i": {
31
+ "formula": "i + 1"
32
+ }
33
+ }
34
+ }
35
+ }
36
36
  }
@@ -1,34 +1,34 @@
1
- {
2
- "modelName": "ifThenElseStatement",
3
- "modelDescription": "example of if-then-else statement",
4
- "modelType": "calculation",
5
- "data": {
6
- "comment": "Creates array with 5 entries (indexed 1..5). Initial value for all elements = 0.",
7
- "f": {
8
- "dimensions": [ 5 ],
9
- "value": 0
10
- }
11
- },
12
-
13
- "formulas": {
14
- "comment": "Loops over i = 1, 2, 3, 4, 5",
15
- "loop(i in 1..5)": {
16
- "comment": "If i is greater than 1, compute f[i] based on previous entry",
17
- "if(i > 1)": {
18
- "comment": "Take the previous element f[i-1] and add i",
19
- "f[i]": {
20
- "formula": "f[i-1] + i",
21
- "finalValue": []
22
- }
23
- },
24
-
25
- "else": {
26
- "comment": "Otherwise (i == 1), initialize the first element",
27
- "f[i]": {
28
- "comment": "Set f[1] = 1",
29
- "value": 1
30
- }
31
- }
32
- }
33
- }
1
+ {
2
+ "modelName": "ifThenElseStatement",
3
+ "modelDescription": "example of if-then-else statement",
4
+ "modelType": "calculation",
5
+ "data": {
6
+ "comment": "Creates array with 5 entries (indexed 1..5). Initial value for all elements = 0.",
7
+ "f": {
8
+ "dimensions": [ 5 ],
9
+ "value": 0
10
+ }
11
+ },
12
+
13
+ "formulas": {
14
+ "comment": "Loops over i = 1, 2, 3, 4, 5",
15
+ "loop(i in 1..5)": {
16
+ "comment": "If i is greater than 1, compute f[i] based on previous entry",
17
+ "if(i > 1)": {
18
+ "comment": "Take the previous element f[i-1] and add i",
19
+ "f[i]": {
20
+ "formula": "f[i-1] + i",
21
+ "finalValue": []
22
+ }
23
+ },
24
+
25
+ "else": {
26
+ "comment": "Otherwise (i == 1), initialize the first element",
27
+ "f[i]": {
28
+ "comment": "Set f[1] = 1",
29
+ "value": 1
30
+ }
31
+ }
32
+ }
33
+ }
34
34
  }
@@ -1,26 +1,26 @@
1
- {
2
- "modelName": "nestedLoops",
3
- "modelDescription": "Example of a nested loop",
4
- "modelType": "calculation",
5
- "data": {
6
- "comment": "Creates array with 5 entries (indexed 1..5). Initial value for all elements = 0.",
7
- "f": {
8
- "dimensions": [ 5 ],
9
- "value": 0
10
- }
11
- },
12
- "formulas": {
13
- "comment": "Creates loop that generates a running total and assigns total to variable, f[i].",
14
- "loop(i in 1..5)": {
15
- "sum(j in 1..i)": {
16
- "s": {
17
- "formula": "j"
18
- }
19
- },
20
- "f[i]": {
21
- "formula": "s",
22
- "finalValue": []
23
- }
24
- }
25
- }
1
+ {
2
+ "modelName": "nestedLoops",
3
+ "modelDescription": "Example of a nested loop",
4
+ "modelType": "calculation",
5
+ "data": {
6
+ "comment": "Creates array with 5 entries (indexed 1..5). Initial value for all elements = 0.",
7
+ "f": {
8
+ "dimensions": [ 5 ],
9
+ "value": 0
10
+ }
11
+ },
12
+ "formulas": {
13
+ "comment": "Creates loop that generates a running total and assigns total to variable, f[i].",
14
+ "loop(i in 1..5)": {
15
+ "sum(j in 1..i)": {
16
+ "s": {
17
+ "formula": "j"
18
+ }
19
+ },
20
+ "f[i]": {
21
+ "formula": "s",
22
+ "finalValue": []
23
+ }
24
+ }
25
+ }
26
26
  }
@@ -1,48 +1,48 @@
1
- {
2
- "modelName": "AirlineHub2Example",
3
- "modelDescription": "This example is identical to Airline Hub 2 RASON Nonlinear Optimization Example. This example showcases how to use an array to formulate multiple constraints at once.",
4
- "modelType": "optimization",
5
- "variables": {
6
- "comment": "There are 3 variables in the model: x, y and z. x and y are the (x, y) coordinates of the proposed hub location. z is an artificial variable that will be minimized in the objective. The initial value of each variable is set to 1 using the value property and the final values will be returned in the result due to the presence of the keyword, finalValue.",
7
-
8
- "x": {
9
- "value": 1.0,
10
- "finalValue": []
11
- },
12
- "y": {
13
- "value": 1.0,
14
- "finalValue": []
15
- },
16
- "z": {
17
- "value": 1.0,
18
- "finalValue": []
19
- }
20
- },
21
- "data": {
22
- "comment": "The data section holds the x and y coordinates of each of the 6 airports. Supplying the x and y coordinates in two arrays allows all 6 constraints to be entered as a constraint block. See 'constraints' section below. In this example, the size of the arrays are inferred by the number of values passed to each array.",
23
- "dx": {
24
- "comment": "These are the x coordinates of each of the 6 airports.",
25
- "value": [ 1, 0.5, 2, 2, 2, 0.5 ]
26
- },
27
- "dy": {
28
- "comment": "These are the y coordinates of each of the 6 airports.",
29
- "value": [ 4, 3, 4, 2, 5, 6 ]
30
- }
31
- },
32
- "constraints": {
33
- "comment": "In this example, all six constraints are entered at once. This was made possible by the x and y coordinates being supplied via two arrays, dx and dy. Each constraint calculates the distance between the proposed hub and each of the 6 airports. Each constraint is of the form SQRT((x1 - x0) + (y1 - y0)) <= z where z is the artificial variable. When z is minimized in the objective, it has a 'squashing' effect that pushes the distance formula to be as small as possible, thereby moving the (x,y) coordinates to such a place that minimizes the distance between the hub and all 6 airports. (To convert the constraint to standard form, z is subtracted from both sides of the equation, leaving SQRT((x1 - x0) + (y1 - y0)) - z <= 0.) Notice that the 'dimensions' propety is used to explicitly create the array of size 6.",
34
- "distance": {
35
- "dimensions": [ 6 ],
36
- "formula": "sqrt((x - dx)^2 + (y - dy)^2) - z",
37
- "upper": 0
38
- }
39
- },
40
- "objective": {
41
- "obj": {
42
- "comment": "Minimize the artificial variable z. This minimization 'squashes' all six of the distance formulas. The resulting (x,y) coordinate will be the coordinate that minimizes the distance between the hub and all six airports.",
43
- "formula": "z",
44
- "type": "minimize",
45
- "finalValue": []
46
- }
47
- }
1
+ {
2
+ "modelName": "AirlineHub2Example",
3
+ "modelDescription": "This example is identical to Airline Hub 2 RASON Nonlinear Optimization Example. This example showcases how to use an array to formulate multiple constraints at once.",
4
+ "modelType": "optimization",
5
+ "variables": {
6
+ "comment": "There are 3 variables in the model: x, y and z. x and y are the (x, y) coordinates of the proposed hub location. z is an artificial variable that will be minimized in the objective. The initial value of each variable is set to 1 using the value property and the final values will be returned in the result due to the presence of the keyword, finalValue.",
7
+
8
+ "x": {
9
+ "value": 1.0,
10
+ "finalValue": []
11
+ },
12
+ "y": {
13
+ "value": 1.0,
14
+ "finalValue": []
15
+ },
16
+ "z": {
17
+ "value": 1.0,
18
+ "finalValue": []
19
+ }
20
+ },
21
+ "data": {
22
+ "comment": "The data section holds the x and y coordinates of each of the 6 airports. Supplying the x and y coordinates in two arrays allows all 6 constraints to be entered as a constraint block. See 'constraints' section below. In this example, the size of the arrays are inferred by the number of values passed to each array.",
23
+ "dx": {
24
+ "comment": "These are the x coordinates of each of the 6 airports.",
25
+ "value": [ 1, 0.5, 2, 2, 2, 0.5 ]
26
+ },
27
+ "dy": {
28
+ "comment": "These are the y coordinates of each of the 6 airports.",
29
+ "value": [ 4, 3, 4, 2, 5, 6 ]
30
+ }
31
+ },
32
+ "constraints": {
33
+ "comment": "In this example, all six constraints are entered at once. This was made possible by the x and y coordinates being supplied via two arrays, dx and dy. Each constraint calculates the distance between the proposed hub and each of the 6 airports. Each constraint is of the form SQRT((x1 - x0) + (y1 - y0)) <= z where z is the artificial variable. When z is minimized in the objective, it has a 'squashing' effect that pushes the distance formula to be as small as possible, thereby moving the (x,y) coordinates to such a place that minimizes the distance between the hub and all 6 airports. (To convert the constraint to standard form, z is subtracted from both sides of the equation, leaving SQRT((x1 - x0) + (y1 - y0)) - z <= 0.) Notice that the 'dimensions' propety is used to explicitly create the array of size 6.",
34
+ "distance": {
35
+ "dimensions": [ 6 ],
36
+ "formula": "sqrt((x - dx)^2 + (y - dy)^2) - z",
37
+ "upper": 0
38
+ }
39
+ },
40
+ "objective": {
41
+ "obj": {
42
+ "comment": "Minimize the artificial variable z. This minimization 'squashes' all six of the distance formulas. The resulting (x,y) coordinate will be the coordinate that minimizes the distance between the hub and all six airports.",
43
+ "formula": "z",
44
+ "type": "minimize",
45
+ "finalValue": []
46
+ }
47
+ }
48
48
  }
@@ -1,70 +1,70 @@
1
- {
2
- "modelName": "indexedArray",
3
- "modelDescription": "Solves the product mix example problem. However, in this example, the constraints are created using a 'for' statement, an indexed array. For more information on this example, see RASON Examples -- Example Models Discussed in RASON User Guide -- UGProductMixTab4.json.",
4
- "modelType": "optimization",
5
- "indexSets": {
6
- "part": {
7
- "value": [ "chas", "tube", "cone", "psup", "elec" ]
8
- },
9
- "prod": {
10
- "value": [ "tv", "stereo", "speaker" ]
11
- }
12
- },
13
- "data": {
14
- "parts": {
15
- "indexCols": [ "part", "prod" ],
16
- "value": [
17
- [ "chas", "tv", 1 ],
18
- [ "elec", "stereo", 1 ],
19
- [ "tube", "tv", 1 ],
20
- [ "cone", "tv", 2 ],
21
- [ "cone", "stereo", 2 ],
22
- [ "chas", "stereo", 1 ],
23
- [ "cone", "speaker", 1 ],
24
- [ "psup", "tv", 1 ],
25
- [ "psup", "stereo", 1 ],
26
- [ "elec", "tv", 2 ],
27
- [ "elec", "speaker", 1 ]
28
- ]
29
- },
30
- "profits": {
31
- "dimensions": [ "prod" ],
32
- "value": [ 75, 50, 35 ]
33
- },
34
- "inventory": {
35
- "comment": "inventory values by part",
36
- "indexCols": [ "part" ],
37
- "value": [
38
- [ "chas", 450 ],
39
- [ "tube", 250 ],
40
- [ "cone", 800 ],
41
- [ "psup", 450 ],
42
- [ "elec", 600 ]
43
- ]
44
- }
45
- },
46
- "variables": {
47
- "x": {
48
- "dimensions": [ "prod" ],
49
- "value": 0,
50
- "lower": 0,
51
- "finalValue": []
52
- }
53
- },
54
- "constraints": {
55
- "comment": "Constraints created using indexed array formula, a declarative construct used to assign attributes across an indexed array.",
56
- "for(p in 'part')": {
57
- "cons[p]": {
58
- "formula": "sumproduct(parts[p, ], x) - inventory[p]",
59
- "upper": 0
60
- }
61
- }
62
- },
63
- "objective": {
64
- "total": {
65
- "formula": "sumproduct(x, profits)",
66
- "type": "maximize",
67
- "finalValue": []
68
- }
69
- }
1
+ {
2
+ "modelName": "indexedArray",
3
+ "modelDescription": "Solves the product mix example problem. However, in this example, the constraints are created using a 'for' statement, an indexed array. For more information on this example, see RASON Examples -- Example Models Discussed in RASON User Guide -- UGProductMixTab4.json.",
4
+ "modelType": "optimization",
5
+ "indexSets": {
6
+ "part": {
7
+ "value": [ "chas", "tube", "cone", "psup", "elec" ]
8
+ },
9
+ "prod": {
10
+ "value": [ "tv", "stereo", "speaker" ]
11
+ }
12
+ },
13
+ "data": {
14
+ "parts": {
15
+ "indexCols": [ "part", "prod" ],
16
+ "value": [
17
+ [ "chas", "tv", 1 ],
18
+ [ "elec", "stereo", 1 ],
19
+ [ "tube", "tv", 1 ],
20
+ [ "cone", "tv", 2 ],
21
+ [ "cone", "stereo", 2 ],
22
+ [ "chas", "stereo", 1 ],
23
+ [ "cone", "speaker", 1 ],
24
+ [ "psup", "tv", 1 ],
25
+ [ "psup", "stereo", 1 ],
26
+ [ "elec", "tv", 2 ],
27
+ [ "elec", "speaker", 1 ]
28
+ ]
29
+ },
30
+ "profits": {
31
+ "dimensions": [ "prod" ],
32
+ "value": [ 75, 50, 35 ]
33
+ },
34
+ "inventory": {
35
+ "comment": "inventory values by part",
36
+ "indexCols": [ "part" ],
37
+ "value": [
38
+ [ "chas", 450 ],
39
+ [ "tube", 250 ],
40
+ [ "cone", 800 ],
41
+ [ "psup", 450 ],
42
+ [ "elec", 600 ]
43
+ ]
44
+ }
45
+ },
46
+ "variables": {
47
+ "x": {
48
+ "dimensions": [ "prod" ],
49
+ "value": 0,
50
+ "lower": 0,
51
+ "finalValue": []
52
+ }
53
+ },
54
+ "constraints": {
55
+ "comment": "Constraints created using indexed array formula, a declarative construct used to assign attributes across an indexed array.",
56
+ "for(p in 'part')": {
57
+ "cons[p]": {
58
+ "formula": "sumproduct(parts[p, ], x) - inventory[p]",
59
+ "upper": 0
60
+ }
61
+ }
62
+ },
63
+ "objective": {
64
+ "total": {
65
+ "formula": "sumproduct(x, profits)",
66
+ "type": "maximize",
67
+ "finalValue": []
68
+ }
69
+ }
70
70
  }
@@ -1,50 +1,50 @@
1
- {
2
- "modelName": "nonParallelArrayExample",
3
- "modelDescription": "This example is identical to the ProductMix4 .json example under RASON Examples-Optimization-LinearExamples. It is included here to showcase the non-parallel array 'num_used' in the 'constraints' section, below.",
4
- "modelType": "optimization",
5
- "variables": {
6
- "x": {
7
- "dimensions": [ 3 ],
8
- "value": 0,
9
- "lower": 0,
10
- "finalValue": []
11
- }
12
- },
13
- "data": {
14
- "profits": {
15
- "dimensions": [ 3 ],
16
- "value": [ 75, 50, 35 ],
17
- "binding": "get",
18
- "finalValue": []
19
- },
20
- "parts": {
21
- "dimensions": [ 5, 3 ],
22
- "value": [
23
- [ 1, 1, 0 ],
24
- [ 1, 0, 0 ],
25
- [ 2, 2, 1 ],
26
- [ 1, 1, 0 ],
27
- [ 2, 1, 1 ]
28
- ]
29
- },
30
- "inventory": {
31
- "value": [ 450, 250, 800, 450, 600 ]
32
- }
33
- },
34
- "constraints": {
35
- "comment": "5 constraints are created in this section.",
36
- "num_used": {
37
- "comment": "This type of array formula is evaluated only once as a single operation. The MMULT function is evaluated as one function call that internally performs a matrix–vector multiplication and returns an array of size 5. The resulting multi-dimensional output is then assigned to the array variable num_used, which is defined as a one-dimensional vertical array of length 5. Since this formula appears in the constraints section, the solver automatically generates one constraint for each element of the resulting array.",
38
- "dimensions": [ 5 ],
39
- "formula": "MMULT(parts, x)",
40
- "upper": "inventory"
41
- }
42
- },
43
- "objective": {
44
- "total": {
45
- "formula": "sumproduct(x, profits)",
46
- "type": "maximize",
47
- "finalValue": []
48
- }
49
- }
1
+ {
2
+ "modelName": "nonParallelArrayExample",
3
+ "modelDescription": "This example is identical to the ProductMix4 .json example under RASON Examples-Optimization-LinearExamples. It is included here to showcase the non-parallel array 'num_used' in the 'constraints' section, below.",
4
+ "modelType": "optimization",
5
+ "variables": {
6
+ "x": {
7
+ "dimensions": [ 3 ],
8
+ "value": 0,
9
+ "lower": 0,
10
+ "finalValue": []
11
+ }
12
+ },
13
+ "data": {
14
+ "profits": {
15
+ "dimensions": [ 3 ],
16
+ "value": [ 75, 50, 35 ],
17
+ "binding": "get",
18
+ "finalValue": []
19
+ },
20
+ "parts": {
21
+ "dimensions": [ 5, 3 ],
22
+ "value": [
23
+ [ 1, 1, 0 ],
24
+ [ 1, 0, 0 ],
25
+ [ 2, 2, 1 ],
26
+ [ 1, 1, 0 ],
27
+ [ 2, 1, 1 ]
28
+ ]
29
+ },
30
+ "inventory": {
31
+ "value": [ 450, 250, 800, 450, 600 ]
32
+ }
33
+ },
34
+ "constraints": {
35
+ "comment": "5 constraints are created in this section.",
36
+ "num_used": {
37
+ "comment": "This type of array formula is evaluated only once as a single operation. The MMULT function is evaluated as one function call that internally performs a matrix–vector multiplication and returns an array of size 5. The resulting multi-dimensional output is then assigned to the array variable num_used, which is defined as a one-dimensional vertical array of length 5. Since this formula appears in the constraints section, the solver automatically generates one constraint for each element of the resulting array.",
38
+ "dimensions": [ 5 ],
39
+ "formula": "MMULT(parts, x)",
40
+ "upper": "inventory"
41
+ }
42
+ },
43
+ "objective": {
44
+ "total": {
45
+ "formula": "sumproduct(x, profits)",
46
+ "type": "maximize",
47
+ "finalValue": []
48
+ }
49
+ }
50
50
  }