@frontlinesystems/rason-mcp-server 2026.5.1 → 2026.5.2

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 (194) hide show
  1. package/LICENSE +35 -35
  2. package/examples/EXAMPLES_REFERENCE.md +128 -128
  3. package/examples/{optimization → Optimization}/Conic/AirlineHubConic.json +111 -111
  4. package/examples/{optimization → Optimization}/Conic/AirlineHubConic2.json +108 -108
  5. package/examples/{optimization → Optimization}/Conic/AirlineHubConic3.json +111 -111
  6. package/examples/{optimization → Optimization}/Conic/AirlineHubConic4.json +99 -99
  7. package/examples/{optimization → Optimization}/Conic/AirlineHubConic5.json +101 -101
  8. package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv.json +81 -81
  9. package/examples/{optimization → Optimization}/DataBinding/ProductMixCsv4.json +96 -96
  10. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel.json +73 -73
  11. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel1.json +86 -86
  12. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel11.json +108 -108
  13. package/examples/{optimization → Optimization}/DataBinding/ProductMixExcel2.json +77 -77
  14. package/examples/{optimization → Optimization}/DataBinding/ProductMixTab.json +89 -89
  15. package/examples/{optimization → Optimization}/DataBinding/ProductMixTab1.json +73 -73
  16. package/examples/{optimization → Optimization}/DataBinding/ProductMixTab2.json +77 -77
  17. package/examples/{optimization → Optimization}/Linear/Inventory.json +199 -199
  18. package/examples/{optimization → Optimization}/Linear/Matop.json +119 -119
  19. package/examples/{optimization → Optimization}/Linear/ProductMix.json +97 -97
  20. package/examples/{optimization → Optimization}/Linear/ProductMix2.json +72 -72
  21. package/examples/{optimization → Optimization}/Linear/ProductMix3.json +49 -49
  22. package/examples/{optimization → Optimization}/Linear/ProductMix4.json +56 -56
  23. package/examples/{optimization → Optimization}/Linear/ProductMixCsv1.json +106 -106
  24. package/examples/{optimization → Optimization}/Linear/ProductMixCsv2.json +106 -106
  25. package/examples/{optimization → Optimization}/Linear/ProductMixSQL11.json +82 -82
  26. package/examples/{optimization → Optimization}/Linear/Rowop.json +126 -126
  27. package/examples/{optimization → Optimization}/NonLinear/AirlineHub.json +63 -63
  28. package/examples/{optimization → Optimization}/NonLinear/AirlineHub2.json +47 -47
  29. package/examples/{optimization → Optimization}/NonLinear/AirlineHub3.json +47 -47
  30. package/examples/{optimization → Optimization}/NonSmooth/Inventory2.json +159 -159
  31. package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt.json +55 -55
  32. package/examples/{optimization → Optimization}/Quadratic/PortfolioOpt2.json +65 -65
  33. package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyChance.json +78 -78
  34. package/examples/{optimization → Optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
  35. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect.json +77 -77
  36. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect2.json +81 -81
  37. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect3.json +84 -84
  38. package/examples/{optimization → Optimization}/WithUncertainty/ProjectSelect4.json +74 -74
  39. package/examples/{simulation → Simulation}/CandyStoreSalesUsingSIP.json +147 -147
  40. package/examples/{simulation → Simulation}/CollegeFundGrowth1.json +423 -423
  41. package/examples/{simulation → Simulation}/CollegeFundGrowth1SIPModel.json +27 -27
  42. package/examples/{simulation → Simulation}/CollegeFundGrowth2.json +415 -415
  43. package/examples/{simulation → Simulation}/CollegeFundGrowthSIP.json +401 -401
  44. package/examples/{simulation → Simulation}/GBMSimulationModel.json +236 -236
  45. package/examples/{simulation → Simulation}/YieldManagement(Sim).json +69 -69
  46. package/examples/{simulation → Simulation}/YieldManagement2(Sim).json +72 -72
  47. package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
  48. package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
  49. package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
  50. package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
  51. package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
  52. package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
  53. package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
  54. package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
  55. package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
  56. package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
  57. package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
  58. package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
  59. package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
  60. package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
  61. package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
  62. package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
  63. package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
  64. package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
  65. package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
  66. package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
  67. package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
  68. package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
  69. package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
  70. package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
  71. package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
  72. package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
  73. package/examples/datamining/Classification/DecisionTree.json +90 -90
  74. package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
  75. package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
  76. package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
  77. package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
  78. package/examples/datamining/Classification/FindBestModel.json +86 -86
  79. package/examples/datamining/Classification/LogisticRegression.json +82 -82
  80. package/examples/datamining/Classification/NaiveBayes.json +78 -78
  81. package/examples/datamining/Classification/NearestNeighbors.json +84 -84
  82. package/examples/datamining/Classification/NeuralNetwork.json +92 -92
  83. package/examples/datamining/Clustering/Hierarchical.json +54 -54
  84. package/examples/datamining/Clustering/KMeans.json +71 -71
  85. package/examples/datamining/DataSources/DelimitedFile.json +49 -49
  86. package/examples/datamining/DataSources/JSONFile.json +49 -49
  87. package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
  88. package/examples/datamining/DataSources/MSExcelTable.json +50 -50
  89. package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
  90. package/examples/datamining/DataSources/ODATATable.json +49 -49
  91. package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
  92. package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
  93. package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
  94. package/examples/datamining/FeatureSelection/Univariate.json +78 -78
  95. package/examples/datamining/Regression/DecisionTree.json +82 -82
  96. package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
  97. package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
  98. package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
  99. package/examples/datamining/Regression/FindBestModel.json +86 -86
  100. package/examples/datamining/Regression/LinearRegression.json +124 -124
  101. package/examples/datamining/Regression/NearestNeighbors.json +77 -77
  102. package/examples/datamining/Regression/NeuralNetwork.json +82 -82
  103. package/examples/datamining/Scoring/JSONClassifier.json +62 -62
  104. package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
  105. package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
  106. package/examples/datamining/Scoring/JSONForecaster.json +49 -49
  107. package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
  108. package/examples/datamining/Scoring/JSONPCA.json +41 -41
  109. package/examples/datamining/Scoring/JSONRegressor.json +56 -56
  110. package/examples/datamining/Scoring/JSONTransformer.json +38 -38
  111. package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
  112. package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
  113. package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
  114. package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
  115. package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
  116. package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
  117. package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
  118. package/examples/datamining/Summarizer/Summarization.json +54 -54
  119. package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
  120. package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
  121. package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
  122. package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
  123. package/examples/datamining/TimeSeries/Arima.json +74 -74
  124. package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
  125. package/examples/datamining/TimeSeries/Exponential.json +64 -64
  126. package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
  127. package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
  128. package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
  129. package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
  130. package/examples/datamining/Transformation/Binning.json +69 -69
  131. package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
  132. package/examples/datamining/Transformation/CategoryReduction.json +51 -51
  133. package/examples/datamining/Transformation/Factorization.json +50 -50
  134. package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
  135. package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
  136. package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
  137. package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
  138. package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
  139. package/examples/datamining/Transformation/Partitioning.json +46 -46
  140. package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
  141. package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
  142. package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
  143. package/examples/datamining/Transformation/Rescaling.json +67 -67
  144. package/examples/datamining/Transformation/Sampling.json +43 -43
  145. package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
  146. package/examples/flow/SQLServerTransform.json +260 -260
  147. package/examples/flow/dm-calc-pipeline.json +277 -277
  148. package/examples/flow/dm-pipeline-simulation.json +113 -113
  149. package/examples/flow/opt-sim-pipeline.json +159 -159
  150. package/examples/flow/sim-dm-pipeline.json +106 -106
  151. package/examples/flow/sim-sim-pipeline.json +136 -136
  152. package/examples/index.json +4678 -4678
  153. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
  154. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
  155. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
  156. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
  157. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
  158. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
  159. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
  160. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
  161. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
  162. package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
  163. package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
  164. package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
  165. package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
  166. package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
  167. package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
  168. package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
  169. package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
  170. package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
  171. package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
  172. package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
  173. package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
  174. package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
  175. package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
  176. package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
  177. package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
  178. package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
  179. package/examples/rason-features/UserGuide/UGForecast.json +50 -50
  180. package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
  181. package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
  182. package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
  183. package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
  184. package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
  185. package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
  186. package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
  187. package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
  188. package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
  189. package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
  190. package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
  191. package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
  192. package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
  193. package/out/index.cjs +1 -1
  194. package/package.json +3 -2
@@ -1,338 +1,338 @@
1
- {
2
- "modelName": "sumAggregateLogistics",
3
- "comment": "Transport3 model in Logistic Examples.xls — demonstrates indexed SUM aggregates in a multi-echelon logistics network",
4
- "modelType": "optimization",
5
-
6
- "engineSettings": {
7
- "engine": "LP/Quadratic",
8
- "comment": "Linear (optionally quadratic) optimization engine"
9
- },
10
-
11
- "indexSets": {
12
- "factories": {
13
- "comment": "Manufacturing / supply locations",
14
- "value": [ "f1", "f2" ]
15
- },
16
- "products": {
17
- "comment": "Products that must be produced and shipped",
18
- "value": [ "p1", "p2", "p3" ]
19
- },
20
- "warehouses": {
21
- "comment": "Intermediate distribution centers",
22
- "value": [ "w1", "w2", "w3", "w4" ]
23
- },
24
- "customers": {
25
- "comment": "End customers with product demand",
26
- "value": [ "c1", "c2", "c3", "c4", "c5" ]
27
- }
28
- },
29
-
30
- "variables": {
31
- "f_w_num": {
32
- "comment": "Units of product shipped from factories to warehouses",
33
- "indexCols": [ "warehouses", "products", "factories" ],
34
- "value": 0,
35
- "lower": 0,
36
- "finalValue": []
37
- },
38
-
39
- "f_c_num": {
40
- "comment": "Units of product shipped directly from factories to customers",
41
- "indexCols": [ "customers", "products", "factories" ],
42
- "value": 0,
43
- "lower": 0,
44
- "finalValue": []
45
- },
46
-
47
- "w_c_num": {
48
- "comment": "Units of product shipped from warehouses to customers",
49
- "indexCols": [ "customers", "products", "warehouses" ],
50
- "value": 0,
51
- "lower": 0,
52
- "finalValue": []
53
- }
54
- },
55
-
56
- "data": {
57
- "demand": {
58
- "comment": "Customer demand by product",
59
- "indexCols": [ "customers", "products" ],
60
- "value": [
61
- [ "c1", "p1", 30000 ],
62
- [ "c2", "p1", 23000 ],
63
- [ "c3", "p1", 15000 ],
64
- [ "c4", "p1", 32000 ],
65
- [ "c5", "p1", 16000 ],
66
- [ "c1", "p2", 20000 ],
67
- [ "c2", "p2", 15000 ],
68
- [ "c3", "p2", 22000 ],
69
- [ "c4", "p2", 12000 ],
70
- [ "c5", "p2", 18000 ],
71
- [ "c1", "p3", 25000 ],
72
- [ "c2", "p3", 22000 ],
73
- [ "c3", "p3", 16000 ],
74
- [ "c4", "p3", 20000 ],
75
- [ "c5", "p3", 25000 ]
76
- ]
77
- },
78
-
79
- "cap_f": {
80
- "comment": "Maximum production capacity of each factory by product",
81
- "indexCols": [ "products", "factories" ],
82
- "value": [
83
- [ "p1", "f1", 90000 ],
84
- [ "p2", "f1", 100000 ],
85
- [ "p3", "f1", 80000 ],
86
- [ "p1", "f2", 75000 ],
87
- [ "p2", "f2", 65000 ],
88
- [ "p3", "f2", 90000 ]
89
- ]
90
- },
91
-
92
- "cap_w": {
93
- "comment": "Maximum throughput capacity of each warehouse by product",
94
- "indexCols": [ "warehouses", "products" ],
95
- "value": [
96
- [ "w1", "p1", 35000 ],
97
- [ "w2", "p1", 20000 ],
98
- [ "w3", "p1", 30000 ],
99
- [ "w4", "p1", 15000 ],
100
- [ "w1", "p2", 30000 ],
101
- [ "w2", "p2", 25000 ],
102
- [ "w3", "p2", 15000 ],
103
- [ "w4", "p2", 24000 ],
104
- [ "w1", "p3", 20000 ],
105
- [ "w2", "p3", 20000 ],
106
- [ "w3", "p3", 25000 ],
107
- [ "w4", "p3", 20000 ]
108
- ]
109
- },
110
-
111
- "f_w_cost": {
112
- "comment": "Per-unit cost to ship from factory to warehouse",
113
- "indexCols": [ "warehouses", "products", "factories" ],
114
- "value": [
115
- [ "w1", "p1", "f1", 0.50 ],
116
- [ "w2", "p1", "f1", 0.50 ],
117
- [ "w3", "p1", "f1", 1.00 ],
118
- [ "w4", "p1", "f1", 0.20 ],
119
- [ "w1", "p2", "f1", 1.00 ],
120
- [ "w2", "p2", "f1", 0.75 ],
121
- [ "w3", "p2", "f1", 1.25 ],
122
- [ "w4", "p2", "f1", 1.25 ],
123
- [ "w1", "p3", "f1", 0.75 ],
124
- [ "w2", "p3", "f1", 1.25 ],
125
- [ "w3", "p3", "f1", 1.00 ],
126
- [ "w4", "p3", "f1", 0.80 ],
127
- [ "w1", "p1", "f2", 1.50 ],
128
- [ "w2", "p1", "f2", 0.30 ],
129
- [ "w3", "p1", "f2", 0.50 ],
130
- [ "w4", "p1", "f2", 0.20 ],
131
- [ "w1", "p2", "f2", 1.25 ],
132
- [ "w2", "p2", "f2", 0.80 ],
133
- [ "w3", "p2", "f2", 1.00 ],
134
- [ "w4", "p2", "f2", 0.75 ],
135
- [ "w1", "p3", "f2", 1.40 ],
136
- [ "w2", "p3", "f2", 0.90 ],
137
- [ "w3", "p3", "f2", 0.95 ],
138
- [ "w4", "p3", "f2", 1.10 ]
139
- ]
140
- },
141
-
142
- "f_c_cost": {
143
- "comment": "Per-unit cost to ship directly from factory to customer",
144
- "indexCols": [ "customers", "products", "factories" ],
145
- "value": [
146
- [ "c1", "p1", "f1", 2.75 ],
147
- [ "c2", "p1", "f1", 3.50 ],
148
- [ "c3", "p1", "f1", 2.50 ],
149
- [ "c4", "p1", "f1", 3.00 ],
150
- [ "c5", "p1", "f1", 2.50 ],
151
- [ "c1", "p2", "f1", 2.50 ],
152
- [ "c2", "p2", "f1", 3.00 ],
153
- [ "c3", "p2", "f1", 2.00 ],
154
- [ "c4", "p2", "f1", 2.75 ],
155
- [ "c5", "p2", "f1", 2.60 ],
156
- [ "c1", "p3", "f1", 2.90 ],
157
- [ "c2", "p3", "f1", 3.00 ],
158
- [ "c3", "p3", "f1", 2.25 ],
159
- [ "c4", "p3", "f1", 2.80 ],
160
- [ "c5", "p3", "f1", 2.35 ],
161
- [ "c1", "p1", "f2", 3.00 ],
162
- [ "c2", "p1", "f2", 3.50 ],
163
- [ "c3", "p1", "f2", 3.50 ],
164
- [ "c4", "p1", "f2", 2.50 ],
165
- [ "c5", "p1", "f2", 2.00 ],
166
- [ "c1", "p2", "f2", 2.25 ],
167
- [ "c2", "p2", "f2", 2.95 ],
168
- [ "c3", "p2", "f2", 2.20 ],
169
- [ "c4", "p2", "f2", 2.50 ],
170
- [ "c5", "p2", "f2", 2.10 ],
171
- [ "c1", "p3", "f2", 2.45 ],
172
- [ "c2", "p3", "f2", 2.75 ],
173
- [ "c3", "p3", "f2", 2.35 ],
174
- [ "c4", "p3", "f2", 2.85 ],
175
- [ "c5", "p3", "f2", 2.45 ]
176
- ]
177
- },
178
-
179
- "w_c_cost": {
180
- "comment": "Per-unit cost to ship from warehouse to customer",
181
- "indexCols": [ "customers", "products", "warehouses" ],
182
- "value": [
183
- [ "c1", "p1", "w1", 1.50 ],
184
- [ "c2", "p1", "w1", 0.80 ],
185
- [ "c3", "p1", "w1", 0.50 ],
186
- [ "c4", "p1", "w1", 1.50 ],
187
- [ "c5", "p1", "w1", 3.00 ],
188
- [ "c1", "p2", "w1", 1.00 ],
189
- [ "c2", "p2", "w1", 0.90 ],
190
- [ "c3", "p2", "w1", 1.20 ],
191
- [ "c4", "p2", "w1", 1.30 ],
192
- [ "c5", "p2", "w1", 2.10 ],
193
- [ "c1", "p3", "w1", 1.25 ],
194
- [ "c2", "p3", "w1", 0.70 ],
195
- [ "c3", "p3", "w1", 1.10 ],
196
- [ "c4", "p3", "w1", 0.80 ],
197
- [ "c5", "p3", "w1", 1.60 ],
198
- [ "c1", "p1", "w2", 1.00 ],
199
- [ "c2", "p1", "w2", 0.50 ],
200
- [ "c3", "p1", "w2", 0.50 ],
201
- [ "c4", "p1", "w2", 1.00 ],
202
- [ "c5", "p1", "w2", 0.50 ],
203
- [ "c1", "p2", "w2", 1.25 ],
204
- [ "c2", "p2", "w2", 1.00 ],
205
- [ "c3", "p2", "w2", 1.00 ],
206
- [ "c4", "p2", "w2", 0.90 ],
207
- [ "c5", "p2", "w2", 1.50 ],
208
- [ "c1", "p3", "w2", 1.10 ],
209
- [ "c2", "p3", "w2", 1.10 ],
210
- [ "c3", "p3", "w2", 0.90 ],
211
- [ "c4", "p3", "w2", 1.40 ],
212
- [ "c5", "p3", "w2", 1.75 ],
213
- [ "c1", "p1", "w3", 1.00 ],
214
- [ "c2", "p1", "w3", 1.50 ],
215
- [ "c3", "p1", "w3", 2.00 ],
216
- [ "c4", "p1", "w3", 2.00 ],
217
- [ "c5", "p1", "w3", 0.50 ],
218
- [ "c1", "p2", "w3", 0.90 ],
219
- [ "c2", "p2", "w3", 1.35 ],
220
- [ "c3", "p2", "w3", 1.45 ],
221
- [ "c4", "p2", "w3", 1.80 ],
222
- [ "c5", "p2", "w3", 1.00 ],
223
- [ "c1", "p3", "w3", 1.25 ],
224
- [ "c2", "p3", "w3", 1.20 ],
225
- [ "c3", "p3", "w3", 1.75 ],
226
- [ "c4", "p3", "w3", 1.70 ],
227
- [ "c5", "p3", "w3", 0.85 ],
228
- [ "c1", "p1", "w4", 2.50 ],
229
- [ "c2", "p1", "w4", 1.50 ],
230
- [ "c3", "p1", "w4", 0.60 ],
231
- [ "c4", "p1", "w4", 1.50 ],
232
- [ "c5", "p1", "w4", 0.50 ],
233
- [ "c1", "p2", "w4", 1.75 ],
234
- [ "c2", "p2", "w4", 1.30 ],
235
- [ "c3", "p2", "w4", 0.70 ],
236
- [ "c4", "p2", "w4", 1.25 ],
237
- [ "c5", "p2", "w4", 1.10 ],
238
- [ "c1", "p3", "w4", 1.50 ],
239
- [ "c2", "p3", "w4", 1.10 ],
240
- [ "c3", "p3", "w4", 1.50 ],
241
- [ "c4", "p3", "w4", 1.10 ],
242
- [ "c5", "p3", "w4", 0.90 ]
243
- ]
244
- }
245
- },
246
-
247
- "formulas": {
248
- "comment": "Cost aggregation using indexed SUM and SUMPRODUCT",
249
-
250
- "sum(w in warehouses, p in products, f in factories)": {
251
- "comment": "Total factory → warehouse transportation cost",
252
- "s1": {
253
- "formula": "f_w_cost[w,p,f] * f_w_num[w,p,f]",
254
- "finalValue": []
255
- }
256
- },
257
-
258
- "sum(c in customers, p in products, f in factories)": {
259
- "comment": "Total factory → customer (direct) transportation cost",
260
- "s2": {
261
- "formula": "f_c_cost[c,p,f] * f_c_num[c,p,f]",
262
- "finalValue": []
263
- }
264
- },
265
-
266
- "sum(c in customers, p in products, w in warehouses)": {
267
- "comment": "Total warehouse → customer transportation cost",
268
- "s3": {
269
- "formula": "w_c_cost[c,p,w] * w_c_num[c,p,w]",
270
- "finalValue": []
271
- }
272
- },
273
-
274
- "s11": {
275
- "comment": "SUMPRODUCT version of factory → warehouse cost",
276
- "formula": "sumproduct(f_w_cost[,,], f_w_num[,,])",
277
- "finalValue": []
278
- },
279
- "s22": {
280
- "comment": "SUMPRODUCT version of factory → customer cost",
281
- "formula": "sumproduct(f_c_cost[,,], f_c_num[,,])",
282
- "finalValue": []
283
- },
284
- "s33": {
285
- "comment": "SUMPRODUCT version of warehouse → customer cost",
286
- "formula": "sumproduct(w_c_cost[,,], w_c_num[,,])",
287
- "finalValue": []
288
- }
289
- },
290
-
291
- "constraints": {
292
- "comment": "Demand satisfaction, capacity limits, and flow balance",
293
-
294
- "for(c in customers, p in products)": {
295
- "comment": "Ensure all customer demand is met",
296
- "d_con": {
297
- "formula": "sum(w_c_num[c,p,]) + sum(f_c_num[c,p,]) - demand[c,p]",
298
- "lower": 0,
299
- "finalValue": []
300
- }
301
- },
302
-
303
- "for(p in products, f in factories)": {
304
- "comment": "Factory production capacity limits",
305
- "cf_con": {
306
- "formula": "sum(f_w_num[,p,f]) + sum(f_c_num[,p,f]) - cap_f[p,f]",
307
- "upper": 0,
308
- "finalValue": []
309
- }
310
- },
311
-
312
- "for(w in warehouses, p in products)": {
313
- "comment": "Warehouse capacity and flow conservation",
314
-
315
- "cw_con": {
316
- "comment": "Warehouse throughput limit",
317
- "formula": "sum(f_w_num[w,p,]) - cap_w[w,p]",
318
- "upper": 0,
319
- "finalValue": []
320
- },
321
-
322
- "w_con": {
323
- "comment": "Flow balance: inbound = outbound at each warehouse",
324
- "formula": "sum(f_w_num[w,p,]) - sum(w_c_num[,p,w])",
325
- "equal": 0,
326
- "finalValue": []
327
- }
328
- }
329
- },
330
-
331
- "objective": {
332
- "comment": "Minimize total transportation cost across all shipping paths",
333
- "total": {
334
- "type": "min",
335
- "formula": "s11 + s22 + s3"
336
- }
337
- }
1
+ {
2
+ "modelName": "sumAggregateLogistics",
3
+ "comment": "Transport3 model in Logistic Examples.xls — demonstrates indexed SUM aggregates in a multi-echelon logistics network",
4
+ "modelType": "optimization",
5
+
6
+ "engineSettings": {
7
+ "engine": "LP/Quadratic",
8
+ "comment": "Linear (optionally quadratic) optimization engine"
9
+ },
10
+
11
+ "indexSets": {
12
+ "factories": {
13
+ "comment": "Manufacturing / supply locations",
14
+ "value": [ "f1", "f2" ]
15
+ },
16
+ "products": {
17
+ "comment": "Products that must be produced and shipped",
18
+ "value": [ "p1", "p2", "p3" ]
19
+ },
20
+ "warehouses": {
21
+ "comment": "Intermediate distribution centers",
22
+ "value": [ "w1", "w2", "w3", "w4" ]
23
+ },
24
+ "customers": {
25
+ "comment": "End customers with product demand",
26
+ "value": [ "c1", "c2", "c3", "c4", "c5" ]
27
+ }
28
+ },
29
+
30
+ "variables": {
31
+ "f_w_num": {
32
+ "comment": "Units of product shipped from factories to warehouses",
33
+ "indexCols": [ "warehouses", "products", "factories" ],
34
+ "value": 0,
35
+ "lower": 0,
36
+ "finalValue": []
37
+ },
38
+
39
+ "f_c_num": {
40
+ "comment": "Units of product shipped directly from factories to customers",
41
+ "indexCols": [ "customers", "products", "factories" ],
42
+ "value": 0,
43
+ "lower": 0,
44
+ "finalValue": []
45
+ },
46
+
47
+ "w_c_num": {
48
+ "comment": "Units of product shipped from warehouses to customers",
49
+ "indexCols": [ "customers", "products", "warehouses" ],
50
+ "value": 0,
51
+ "lower": 0,
52
+ "finalValue": []
53
+ }
54
+ },
55
+
56
+ "data": {
57
+ "demand": {
58
+ "comment": "Customer demand by product",
59
+ "indexCols": [ "customers", "products" ],
60
+ "value": [
61
+ [ "c1", "p1", 30000 ],
62
+ [ "c2", "p1", 23000 ],
63
+ [ "c3", "p1", 15000 ],
64
+ [ "c4", "p1", 32000 ],
65
+ [ "c5", "p1", 16000 ],
66
+ [ "c1", "p2", 20000 ],
67
+ [ "c2", "p2", 15000 ],
68
+ [ "c3", "p2", 22000 ],
69
+ [ "c4", "p2", 12000 ],
70
+ [ "c5", "p2", 18000 ],
71
+ [ "c1", "p3", 25000 ],
72
+ [ "c2", "p3", 22000 ],
73
+ [ "c3", "p3", 16000 ],
74
+ [ "c4", "p3", 20000 ],
75
+ [ "c5", "p3", 25000 ]
76
+ ]
77
+ },
78
+
79
+ "cap_f": {
80
+ "comment": "Maximum production capacity of each factory by product",
81
+ "indexCols": [ "products", "factories" ],
82
+ "value": [
83
+ [ "p1", "f1", 90000 ],
84
+ [ "p2", "f1", 100000 ],
85
+ [ "p3", "f1", 80000 ],
86
+ [ "p1", "f2", 75000 ],
87
+ [ "p2", "f2", 65000 ],
88
+ [ "p3", "f2", 90000 ]
89
+ ]
90
+ },
91
+
92
+ "cap_w": {
93
+ "comment": "Maximum throughput capacity of each warehouse by product",
94
+ "indexCols": [ "warehouses", "products" ],
95
+ "value": [
96
+ [ "w1", "p1", 35000 ],
97
+ [ "w2", "p1", 20000 ],
98
+ [ "w3", "p1", 30000 ],
99
+ [ "w4", "p1", 15000 ],
100
+ [ "w1", "p2", 30000 ],
101
+ [ "w2", "p2", 25000 ],
102
+ [ "w3", "p2", 15000 ],
103
+ [ "w4", "p2", 24000 ],
104
+ [ "w1", "p3", 20000 ],
105
+ [ "w2", "p3", 20000 ],
106
+ [ "w3", "p3", 25000 ],
107
+ [ "w4", "p3", 20000 ]
108
+ ]
109
+ },
110
+
111
+ "f_w_cost": {
112
+ "comment": "Per-unit cost to ship from factory to warehouse",
113
+ "indexCols": [ "warehouses", "products", "factories" ],
114
+ "value": [
115
+ [ "w1", "p1", "f1", 0.50 ],
116
+ [ "w2", "p1", "f1", 0.50 ],
117
+ [ "w3", "p1", "f1", 1.00 ],
118
+ [ "w4", "p1", "f1", 0.20 ],
119
+ [ "w1", "p2", "f1", 1.00 ],
120
+ [ "w2", "p2", "f1", 0.75 ],
121
+ [ "w3", "p2", "f1", 1.25 ],
122
+ [ "w4", "p2", "f1", 1.25 ],
123
+ [ "w1", "p3", "f1", 0.75 ],
124
+ [ "w2", "p3", "f1", 1.25 ],
125
+ [ "w3", "p3", "f1", 1.00 ],
126
+ [ "w4", "p3", "f1", 0.80 ],
127
+ [ "w1", "p1", "f2", 1.50 ],
128
+ [ "w2", "p1", "f2", 0.30 ],
129
+ [ "w3", "p1", "f2", 0.50 ],
130
+ [ "w4", "p1", "f2", 0.20 ],
131
+ [ "w1", "p2", "f2", 1.25 ],
132
+ [ "w2", "p2", "f2", 0.80 ],
133
+ [ "w3", "p2", "f2", 1.00 ],
134
+ [ "w4", "p2", "f2", 0.75 ],
135
+ [ "w1", "p3", "f2", 1.40 ],
136
+ [ "w2", "p3", "f2", 0.90 ],
137
+ [ "w3", "p3", "f2", 0.95 ],
138
+ [ "w4", "p3", "f2", 1.10 ]
139
+ ]
140
+ },
141
+
142
+ "f_c_cost": {
143
+ "comment": "Per-unit cost to ship directly from factory to customer",
144
+ "indexCols": [ "customers", "products", "factories" ],
145
+ "value": [
146
+ [ "c1", "p1", "f1", 2.75 ],
147
+ [ "c2", "p1", "f1", 3.50 ],
148
+ [ "c3", "p1", "f1", 2.50 ],
149
+ [ "c4", "p1", "f1", 3.00 ],
150
+ [ "c5", "p1", "f1", 2.50 ],
151
+ [ "c1", "p2", "f1", 2.50 ],
152
+ [ "c2", "p2", "f1", 3.00 ],
153
+ [ "c3", "p2", "f1", 2.00 ],
154
+ [ "c4", "p2", "f1", 2.75 ],
155
+ [ "c5", "p2", "f1", 2.60 ],
156
+ [ "c1", "p3", "f1", 2.90 ],
157
+ [ "c2", "p3", "f1", 3.00 ],
158
+ [ "c3", "p3", "f1", 2.25 ],
159
+ [ "c4", "p3", "f1", 2.80 ],
160
+ [ "c5", "p3", "f1", 2.35 ],
161
+ [ "c1", "p1", "f2", 3.00 ],
162
+ [ "c2", "p1", "f2", 3.50 ],
163
+ [ "c3", "p1", "f2", 3.50 ],
164
+ [ "c4", "p1", "f2", 2.50 ],
165
+ [ "c5", "p1", "f2", 2.00 ],
166
+ [ "c1", "p2", "f2", 2.25 ],
167
+ [ "c2", "p2", "f2", 2.95 ],
168
+ [ "c3", "p2", "f2", 2.20 ],
169
+ [ "c4", "p2", "f2", 2.50 ],
170
+ [ "c5", "p2", "f2", 2.10 ],
171
+ [ "c1", "p3", "f2", 2.45 ],
172
+ [ "c2", "p3", "f2", 2.75 ],
173
+ [ "c3", "p3", "f2", 2.35 ],
174
+ [ "c4", "p3", "f2", 2.85 ],
175
+ [ "c5", "p3", "f2", 2.45 ]
176
+ ]
177
+ },
178
+
179
+ "w_c_cost": {
180
+ "comment": "Per-unit cost to ship from warehouse to customer",
181
+ "indexCols": [ "customers", "products", "warehouses" ],
182
+ "value": [
183
+ [ "c1", "p1", "w1", 1.50 ],
184
+ [ "c2", "p1", "w1", 0.80 ],
185
+ [ "c3", "p1", "w1", 0.50 ],
186
+ [ "c4", "p1", "w1", 1.50 ],
187
+ [ "c5", "p1", "w1", 3.00 ],
188
+ [ "c1", "p2", "w1", 1.00 ],
189
+ [ "c2", "p2", "w1", 0.90 ],
190
+ [ "c3", "p2", "w1", 1.20 ],
191
+ [ "c4", "p2", "w1", 1.30 ],
192
+ [ "c5", "p2", "w1", 2.10 ],
193
+ [ "c1", "p3", "w1", 1.25 ],
194
+ [ "c2", "p3", "w1", 0.70 ],
195
+ [ "c3", "p3", "w1", 1.10 ],
196
+ [ "c4", "p3", "w1", 0.80 ],
197
+ [ "c5", "p3", "w1", 1.60 ],
198
+ [ "c1", "p1", "w2", 1.00 ],
199
+ [ "c2", "p1", "w2", 0.50 ],
200
+ [ "c3", "p1", "w2", 0.50 ],
201
+ [ "c4", "p1", "w2", 1.00 ],
202
+ [ "c5", "p1", "w2", 0.50 ],
203
+ [ "c1", "p2", "w2", 1.25 ],
204
+ [ "c2", "p2", "w2", 1.00 ],
205
+ [ "c3", "p2", "w2", 1.00 ],
206
+ [ "c4", "p2", "w2", 0.90 ],
207
+ [ "c5", "p2", "w2", 1.50 ],
208
+ [ "c1", "p3", "w2", 1.10 ],
209
+ [ "c2", "p3", "w2", 1.10 ],
210
+ [ "c3", "p3", "w2", 0.90 ],
211
+ [ "c4", "p3", "w2", 1.40 ],
212
+ [ "c5", "p3", "w2", 1.75 ],
213
+ [ "c1", "p1", "w3", 1.00 ],
214
+ [ "c2", "p1", "w3", 1.50 ],
215
+ [ "c3", "p1", "w3", 2.00 ],
216
+ [ "c4", "p1", "w3", 2.00 ],
217
+ [ "c5", "p1", "w3", 0.50 ],
218
+ [ "c1", "p2", "w3", 0.90 ],
219
+ [ "c2", "p2", "w3", 1.35 ],
220
+ [ "c3", "p2", "w3", 1.45 ],
221
+ [ "c4", "p2", "w3", 1.80 ],
222
+ [ "c5", "p2", "w3", 1.00 ],
223
+ [ "c1", "p3", "w3", 1.25 ],
224
+ [ "c2", "p3", "w3", 1.20 ],
225
+ [ "c3", "p3", "w3", 1.75 ],
226
+ [ "c4", "p3", "w3", 1.70 ],
227
+ [ "c5", "p3", "w3", 0.85 ],
228
+ [ "c1", "p1", "w4", 2.50 ],
229
+ [ "c2", "p1", "w4", 1.50 ],
230
+ [ "c3", "p1", "w4", 0.60 ],
231
+ [ "c4", "p1", "w4", 1.50 ],
232
+ [ "c5", "p1", "w4", 0.50 ],
233
+ [ "c1", "p2", "w4", 1.75 ],
234
+ [ "c2", "p2", "w4", 1.30 ],
235
+ [ "c3", "p2", "w4", 0.70 ],
236
+ [ "c4", "p2", "w4", 1.25 ],
237
+ [ "c5", "p2", "w4", 1.10 ],
238
+ [ "c1", "p3", "w4", 1.50 ],
239
+ [ "c2", "p3", "w4", 1.10 ],
240
+ [ "c3", "p3", "w4", 1.50 ],
241
+ [ "c4", "p3", "w4", 1.10 ],
242
+ [ "c5", "p3", "w4", 0.90 ]
243
+ ]
244
+ }
245
+ },
246
+
247
+ "formulas": {
248
+ "comment": "Cost aggregation using indexed SUM and SUMPRODUCT",
249
+
250
+ "sum(w in warehouses, p in products, f in factories)": {
251
+ "comment": "Total factory → warehouse transportation cost",
252
+ "s1": {
253
+ "formula": "f_w_cost[w,p,f] * f_w_num[w,p,f]",
254
+ "finalValue": []
255
+ }
256
+ },
257
+
258
+ "sum(c in customers, p in products, f in factories)": {
259
+ "comment": "Total factory → customer (direct) transportation cost",
260
+ "s2": {
261
+ "formula": "f_c_cost[c,p,f] * f_c_num[c,p,f]",
262
+ "finalValue": []
263
+ }
264
+ },
265
+
266
+ "sum(c in customers, p in products, w in warehouses)": {
267
+ "comment": "Total warehouse → customer transportation cost",
268
+ "s3": {
269
+ "formula": "w_c_cost[c,p,w] * w_c_num[c,p,w]",
270
+ "finalValue": []
271
+ }
272
+ },
273
+
274
+ "s11": {
275
+ "comment": "SUMPRODUCT version of factory → warehouse cost",
276
+ "formula": "sumproduct(f_w_cost[,,], f_w_num[,,])",
277
+ "finalValue": []
278
+ },
279
+ "s22": {
280
+ "comment": "SUMPRODUCT version of factory → customer cost",
281
+ "formula": "sumproduct(f_c_cost[,,], f_c_num[,,])",
282
+ "finalValue": []
283
+ },
284
+ "s33": {
285
+ "comment": "SUMPRODUCT version of warehouse → customer cost",
286
+ "formula": "sumproduct(w_c_cost[,,], w_c_num[,,])",
287
+ "finalValue": []
288
+ }
289
+ },
290
+
291
+ "constraints": {
292
+ "comment": "Demand satisfaction, capacity limits, and flow balance",
293
+
294
+ "for(c in customers, p in products)": {
295
+ "comment": "Ensure all customer demand is met",
296
+ "d_con": {
297
+ "formula": "sum(w_c_num[c,p,]) + sum(f_c_num[c,p,]) - demand[c,p]",
298
+ "lower": 0,
299
+ "finalValue": []
300
+ }
301
+ },
302
+
303
+ "for(p in products, f in factories)": {
304
+ "comment": "Factory production capacity limits",
305
+ "cf_con": {
306
+ "formula": "sum(f_w_num[,p,f]) + sum(f_c_num[,p,f]) - cap_f[p,f]",
307
+ "upper": 0,
308
+ "finalValue": []
309
+ }
310
+ },
311
+
312
+ "for(w in warehouses, p in products)": {
313
+ "comment": "Warehouse capacity and flow conservation",
314
+
315
+ "cw_con": {
316
+ "comment": "Warehouse throughput limit",
317
+ "formula": "sum(f_w_num[w,p,]) - cap_w[w,p]",
318
+ "upper": 0,
319
+ "finalValue": []
320
+ },
321
+
322
+ "w_con": {
323
+ "comment": "Flow balance: inbound = outbound at each warehouse",
324
+ "formula": "sum(f_w_num[w,p,]) - sum(w_c_num[,p,w])",
325
+ "equal": 0,
326
+ "finalValue": []
327
+ }
328
+ }
329
+ },
330
+
331
+ "objective": {
332
+ "comment": "Minimize total transportation cost across all shipping paths",
333
+ "total": {
334
+ "type": "min",
335
+ "formula": "s11 + s22 + s3"
336
+ }
337
+ }
338
338
  }