@frontlinesystems/rason-mcp-server 2026.5.1 → 2026.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,79 +1,79 @@
1
- {
2
- "modelName": "GasCompanyChanceExample",
3
- "modelDescription": "RASON example model using chance constraints: A gas company buys gas and then sells it to its consumers. The consumer demand this year is expected to be 100 units and price is $5 per unit. Next year's gas price and demand will depend on the weather. In the 2nd year, the weather could be either very cold or warm. If the weather is very cold, demand will be 180 with price of $7.50. If the weather is warm, demand will be 100 with a price of $5.00. Demand and price are perfectly correlated since both depend on the weather. To capture this, we use the Beta distribution for the uncertain variable, D5, in the calculation of both the demand and the price in year 2. The gas company can buy gas this year at the current price of $5/unit and store it for use next year. If gas is stored, there will be an associated holding or storage cost of $1/unit per year. How much gas should the company purchase this year (before next year's demand is known) and next year (after next year's demand is known)? This example models this problem with a chance constraint, assuming that all three decisions are 'here and now'.",
4
- "modelType": "optimization",
5
- "modelSettings": {
6
- "comment": "Use 'transformStochastic' to determine whether RASON Decision Services will attempt to transform your optimization model with uncertainty into a conventional optimization model without uncertainty: either the Deterministic Equivalent model, (using transformStochastic: deterministicEquivalent as used in stochastic linear programming), or a Robust Counterpart model (using transformStochastic: robustCounterpart as used in robust optimization). In both cases, the result of a successful transformation is a conventional linear programming model, but with considerably more decision variables and constraints than the original model. Generally, the Robust Counterpart model is much smaller than the Deterministic Equivalent model, but the solution of this model may be only an approximate (and conservative) solution of the original problem. The option 'chanceConstraintNorm:D', has an effect only if the Solve Uncertain Models option is set to Stochastic Transformation, and the Stochastic Transformation option is set to either Robust Counterpart or Automatic (and the Automatic method selects the Robust Counterpart form). It determines the norm (distance measure) used to constrain the size of uncertainty sets in the Robust Counterpart model. Select from the L1 Norm, L2 Norm, L-Inf Norm, or D Norm (the default). The D norm is equivalent to the intersection of the L1 norm and L-Inf (infinity) norm. If you choose the L2 norm, the Robust Counterpart model will be a SOCP (second order cone programming) model, which requires an SOCP or smooth nonlinear solver (such as the Platform's SOCP Barrier Solver or GRG Nonlinear Solver). If you choose the L1, L-Inf or D norm, the Robust Counterpart model will be an LP (linear programming) model, that can be solved efficiently with an LP, QP, or SOCP Solver. For more information, on this option, see https://www.solver.com/robust-decision-making. The option, numTrials, sets the number of trials to 100.",
7
- "transformStochastic": "robustCounterpart",
8
- "chanceConstraintNorm": "D",
9
- "numTrials": 100
10
- },
11
- "variables": {
12
- "comment": "These are the decision variables in the model. There are 3.",
13
- "d14:d15": {
14
- "comment": "D14 = Amt of gas to purchase and resell in yr 1, D15 = Amt of gas to buy and store in yr 1. Both variables have a lower bound of 0.",
15
- "lower": 0,
16
- "finalValue": []
17
- },
18
- "d18": {
19
- "comment": "D18 = Amt of gas to buy and resell in yr 2.",
20
- "lower": 0,
21
- "finalValue": []
22
- }
23
- },
24
- "uncertainVariables": {
25
- "comment": "This section holds the uncertain variables, or the uncertainty, in the model.",
26
- "d5": {
27
- "comment": "This uncertain variable models the perfect correlation of demand and price since both depend on the weather. For more information on the PsiBeta distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psibeta",
28
- "formula": "PsiBeta(2, 3.25)"
29
- }
30
- },
31
- "formulas": {
32
- "c4": {
33
- "comment": "Gas price in yr 1",
34
- "value": 5
35
- },
36
- "c5": {
37
- "comment": "Models gas price in year 2. The minimum price is $5. The incremental price of $2.50 depends on the weather, modeled by the uncertain variable.",
38
- "formula": "5 + 2.5*d5"
39
- },
40
- "c6": {
41
- "comment": "Storage cost per unit per year.",
42
- "value": 1
43
- },
44
- "c7": {
45
- "comment": "Demand in year 1.",
46
- "value": 100
47
- },
48
- "c8": {
49
- "comment": "Models demand in yr 2. The minimum demand is 100. The incremental demand of 80 depends on the weather, modeled by the uncertain variable.",
50
- "formula": "100 + 80*d5"
51
- }
52
- },
53
- "constraints": {
54
- "comment": "Two constraints: 1st ensures that the demand in yr 1 is met, the 2nd is a chance constraint that ensures that the demand in yr 2 is met 95% of the time. For more information on chance constraints, see Defining Your Stochastic Optimization model on the Help tab.",
55
- "c22": {
56
- "comment": "Ensures Demand is met in Year 1",
57
- "formula": "d14 - c7",
58
- "lower": 0,
59
- "upper": 0
60
- },
61
- "c23": {
62
- "comment": "Chance constraint: Ensures that the demand in Year 2 is met 95% of the time.",
63
- "formula": "d15 + d18 - c8",
64
- "lower": 0,
65
- "chanceType": "VaR",
66
- "chanceProbability": 0.95
67
- }
68
- },
69
- "objective": {
70
- "comment": "The objective is to minimize the total expected cost.",
71
- "c25": {
72
- "comment": "Since this model contains uncertainty, the objective must minimize the expected value of the objective or MIN: Mean(C25)",
73
- "formula": "(d14*c4) + (c5*d18) + (d15*(c4+c6))",
74
- "type": "min",
75
- "chanceType": "ExpVal",
76
- "finalValue": []
77
- }
78
- }
1
+ {
2
+ "modelName": "GasCompanyChanceExample",
3
+ "modelDescription": "RASON example model using chance constraints: A gas company buys gas and then sells it to its consumers. The consumer demand this year is expected to be 100 units and price is $5 per unit. Next year's gas price and demand will depend on the weather. In the 2nd year, the weather could be either very cold or warm. If the weather is very cold, demand will be 180 with price of $7.50. If the weather is warm, demand will be 100 with a price of $5.00. Demand and price are perfectly correlated since both depend on the weather. To capture this, we use the Beta distribution for the uncertain variable, D5, in the calculation of both the demand and the price in year 2. The gas company can buy gas this year at the current price of $5/unit and store it for use next year. If gas is stored, there will be an associated holding or storage cost of $1/unit per year. How much gas should the company purchase this year (before next year's demand is known) and next year (after next year's demand is known)? This example models this problem with a chance constraint, assuming that all three decisions are 'here and now'.",
4
+ "modelType": "optimization",
5
+ "modelSettings": {
6
+ "comment": "Use 'transformStochastic' to determine whether RASON Decision Services will attempt to transform your optimization model with uncertainty into a conventional optimization model without uncertainty: either the Deterministic Equivalent model, (using transformStochastic: deterministicEquivalent as used in stochastic linear programming), or a Robust Counterpart model (using transformStochastic: robustCounterpart as used in robust optimization). In both cases, the result of a successful transformation is a conventional linear programming model, but with considerably more decision variables and constraints than the original model. Generally, the Robust Counterpart model is much smaller than the Deterministic Equivalent model, but the solution of this model may be only an approximate (and conservative) solution of the original problem. The option 'chanceConstraintNorm:D', has an effect only if the Solve Uncertain Models option is set to Stochastic Transformation, and the Stochastic Transformation option is set to either Robust Counterpart or Automatic (and the Automatic method selects the Robust Counterpart form). It determines the norm (distance measure) used to constrain the size of uncertainty sets in the Robust Counterpart model. Select from the L1 Norm, L2 Norm, L-Inf Norm, or D Norm (the default). The D norm is equivalent to the intersection of the L1 norm and L-Inf (infinity) norm. If you choose the L2 norm, the Robust Counterpart model will be a SOCP (second order cone programming) model, which requires an SOCP or smooth nonlinear solver (such as the Platform's SOCP Barrier Solver or GRG Nonlinear Solver). If you choose the L1, L-Inf or D norm, the Robust Counterpart model will be an LP (linear programming) model, that can be solved efficiently with an LP, QP, or SOCP Solver. For more information, on this option, see https://www.solver.com/robust-decision-making. The option, numTrials, sets the number of trials to 100.",
7
+ "transformStochastic": "robustCounterpart",
8
+ "chanceConstraintNorm": "D",
9
+ "numTrials": 100
10
+ },
11
+ "variables": {
12
+ "comment": "These are the decision variables in the model. There are 3.",
13
+ "d14:d15": {
14
+ "comment": "D14 = Amt of gas to purchase and resell in yr 1, D15 = Amt of gas to buy and store in yr 1. Both variables have a lower bound of 0.",
15
+ "lower": 0,
16
+ "finalValue": []
17
+ },
18
+ "d18": {
19
+ "comment": "D18 = Amt of gas to buy and resell in yr 2.",
20
+ "lower": 0,
21
+ "finalValue": []
22
+ }
23
+ },
24
+ "uncertainVariables": {
25
+ "comment": "This section holds the uncertain variables, or the uncertainty, in the model.",
26
+ "d5": {
27
+ "comment": "This uncertain variable models the perfect correlation of demand and price since both depend on the weather. For more information on the PsiBeta distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psibeta",
28
+ "formula": "PsiBeta(2, 3.25)"
29
+ }
30
+ },
31
+ "formulas": {
32
+ "c4": {
33
+ "comment": "Gas price in yr 1",
34
+ "value": 5
35
+ },
36
+ "c5": {
37
+ "comment": "Models gas price in year 2. The minimum price is $5. The incremental price of $2.50 depends on the weather, modeled by the uncertain variable.",
38
+ "formula": "5 + 2.5*d5"
39
+ },
40
+ "c6": {
41
+ "comment": "Storage cost per unit per year.",
42
+ "value": 1
43
+ },
44
+ "c7": {
45
+ "comment": "Demand in year 1.",
46
+ "value": 100
47
+ },
48
+ "c8": {
49
+ "comment": "Models demand in yr 2. The minimum demand is 100. The incremental demand of 80 depends on the weather, modeled by the uncertain variable.",
50
+ "formula": "100 + 80*d5"
51
+ }
52
+ },
53
+ "constraints": {
54
+ "comment": "Two constraints: 1st ensures that the demand in yr 1 is met, the 2nd is a chance constraint that ensures that the demand in yr 2 is met 95% of the time. For more information on chance constraints, see Defining Your Stochastic Optimization model on the Help tab.",
55
+ "c22": {
56
+ "comment": "Ensures Demand is met in Year 1",
57
+ "formula": "d14 - c7",
58
+ "lower": 0,
59
+ "upper": 0
60
+ },
61
+ "c23": {
62
+ "comment": "Chance constraint: Ensures that the demand in Year 2 is met 95% of the time.",
63
+ "formula": "d15 + d18 - c8",
64
+ "lower": 0,
65
+ "chanceType": "VaR",
66
+ "chanceProbability": 0.95
67
+ }
68
+ },
69
+ "objective": {
70
+ "comment": "The objective is to minimize the total expected cost.",
71
+ "c25": {
72
+ "comment": "Since this model contains uncertainty, the objective must minimize the expected value of the objective or MIN: Mean(C25)",
73
+ "formula": "(d14*c4) + (c5*d18) + (d15*(c4+c6))",
74
+ "type": "min",
75
+ "chanceType": "ExpVal",
76
+ "finalValue": []
77
+ }
78
+ }
79
79
  }
@@ -1,79 +1,79 @@
1
- {
2
- "modelName": "GasCompanyRecourseExample",
3
- "modelDescription": "RASON example model with recourse variables: A gas company buys gas and then sells it to its consumers. The consumer demand this year is expected to be 100 units and price is $5 per unit. Next year's gas price and demand will depend on the weather: If Cold, Price = $7.50 with demand = 180, if Warm: Price = $5.00 with demand = 100. Demand and price are perfectly correlated since both depend on the weather. To capture this, we use the Beta distribution to calculate both the demand and the price in year 2. The gas company can buy gas this year at the current price of $5/unit and store it for use next year. If gas is stored for next year, there will be an associated holding or storage cost of $1/unit per year. How much gas should the company purchase this year (before next year's demand is known) and next year (after next year's demand is known)? This example models this problem with a 'wait and see' recourse variable. See GasCompanyChance to see this same model formulated with just a chance constraint.",
4
- "modelType": "optimization",
5
- "modelSettings": {
6
- "comment": "Use 'transformStochastic' to determine whether RASON Decision Services will attempt to transform your optimization model with uncertainty into a conventional optimization model without uncertainty: either the Deterministic Equivalent model (using transformStochastic: deterministicEquivalent as used in stochastic linear programming), or a Robust Counterpart model (transformStochastic: robustCounterpart as used in robust optimization). In both cases, the result of a successful transformation is a conventional linear programming model, but with considerably more decision variables and constraints than the original model. Generally, the Robust Counterpart model is much smaller than the Deterministic Equivalent model, but the solution of this model may be only an approximate (and conservative) solution of the original problem. The option numTrials sets the number of trials in the simulation to 90.",
7
- "transformStochastic": "deterministicEquivalent",
8
- "numTrials": 90
9
- },
10
- "variables": {
11
- "comment": "There are two normal or 'here and now' decisions and 1 recourse decision variable.",
12
- "d14:d15": {
13
- "comment": "D14 = Amt of gas bought in yr 1 to be used in yr 1, D15 = Amt of gas purchased in year 1 for use in year 2. Both have lower bounds of 0.",
14
- "lower": 0,
15
- "finalValue": []
16
- },
17
- "d18": {
18
- "comment": "D18 is a recourse variable and denotes the amount of gas to purchase and use in year 2. There will be 90 different solutions for this variable, one for each trial.",
19
- "lower": 0,
20
- "recourse": true,
21
- "finalValue": []
22
- }
23
- },
24
- "uncertainVariables": {
25
- "comment": "This section holds the uncertain variables, or the uncertainty, in the model.",
26
- "d5": {
27
- "comment": "This uncertain variable models the perfect correlation of demand and price since both depend on the weather. For more information on the PsiBeta distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psibeta",
28
- "formula": "PsiBeta(2, 3.25)"
29
- }
30
- },
31
- "data": {
32
- "comment": "Use the 'data' section to setup constant data.",
33
- "c4": {
34
- "comment": "Gas price in yr 1",
35
- "value": 5
36
- },
37
- "c6": {
38
- "comment": "Storage cost per unit per year.",
39
- "value": 1
40
- },
41
- "c7": {
42
- "comment": "Demand in year 1.",
43
- "value": 100
44
- }
45
- },
46
- "formulas": {
47
- "comment": "Use the 'formulas' section to calculate intermediary formulas for use in the constraints and objective.",
48
- "c5": {
49
- "comment": "Models gas price in year 2. The minimum price is $5. The incremental price of $2.50 depends on the weather, modeled by the uncertain variable.",
50
- "formula": "5 + 2.5*d5"
51
- },
52
- "c8": {
53
- "comment": "Models demand in yr 2. The minimum demand is 100. The incremental demand of 80 depends on the weather, modeled by the uncertain variable.",
54
- "formula": "100 + 80*d5"
55
- }
56
- },
57
- "constraints": {
58
- "comment": "Two constraints: 1st ensures that the demand in yr 1 is met, the 2nd is a chance constraint that ensures that the demand in yr 2 is met 95% of the time.",
59
- "c22": {
60
- "comment":"Ensures that demand is met in year 1.",
61
- "formula": "d14",
62
- "equal": "c7"
63
- },
64
- "c23": {
65
- "comment": "Ensures that the demand in year 2 is met 95% of the time.",
66
- "formula": "d15 + d18 - c8",
67
- "lower": 0
68
- }
69
- },
70
- "objective": {
71
- "c25": {
72
- "comment": "The expected value of the total cost is being minimized in the objective. Since this formula depends on the recourse variable (D18) and thus has 90 values (numtrials = 90), we must reduce this quantity to 1. To do so, we minimize the expected total cost.",
73
- "formula": "(d14*c4) + (c5*d18) + d15*(c4+c6)",
74
- "type": "min",
75
- "chanceType": "ExpVal",
76
- "finalValue": []
77
- }
78
- }
1
+ {
2
+ "modelName": "GasCompanyRecourseExample",
3
+ "modelDescription": "RASON example model with recourse variables: A gas company buys gas and then sells it to its consumers. The consumer demand this year is expected to be 100 units and price is $5 per unit. Next year's gas price and demand will depend on the weather: If Cold, Price = $7.50 with demand = 180, if Warm: Price = $5.00 with demand = 100. Demand and price are perfectly correlated since both depend on the weather. To capture this, we use the Beta distribution to calculate both the demand and the price in year 2. The gas company can buy gas this year at the current price of $5/unit and store it for use next year. If gas is stored for next year, there will be an associated holding or storage cost of $1/unit per year. How much gas should the company purchase this year (before next year's demand is known) and next year (after next year's demand is known)? This example models this problem with a 'wait and see' recourse variable. See GasCompanyChance to see this same model formulated with just a chance constraint.",
4
+ "modelType": "optimization",
5
+ "modelSettings": {
6
+ "comment": "Use 'transformStochastic' to determine whether RASON Decision Services will attempt to transform your optimization model with uncertainty into a conventional optimization model without uncertainty: either the Deterministic Equivalent model (using transformStochastic: deterministicEquivalent as used in stochastic linear programming), or a Robust Counterpart model (transformStochastic: robustCounterpart as used in robust optimization). In both cases, the result of a successful transformation is a conventional linear programming model, but with considerably more decision variables and constraints than the original model. Generally, the Robust Counterpart model is much smaller than the Deterministic Equivalent model, but the solution of this model may be only an approximate (and conservative) solution of the original problem. The option numTrials sets the number of trials in the simulation to 90.",
7
+ "transformStochastic": "deterministicEquivalent",
8
+ "numTrials": 90
9
+ },
10
+ "variables": {
11
+ "comment": "There are two normal or 'here and now' decisions and 1 recourse decision variable.",
12
+ "d14:d15": {
13
+ "comment": "D14 = Amt of gas bought in yr 1 to be used in yr 1, D15 = Amt of gas purchased in year 1 for use in year 2. Both have lower bounds of 0.",
14
+ "lower": 0,
15
+ "finalValue": []
16
+ },
17
+ "d18": {
18
+ "comment": "D18 is a recourse variable and denotes the amount of gas to purchase and use in year 2. There will be 90 different solutions for this variable, one for each trial.",
19
+ "lower": 0,
20
+ "recourse": true,
21
+ "finalValue": []
22
+ }
23
+ },
24
+ "uncertainVariables": {
25
+ "comment": "This section holds the uncertain variables, or the uncertainty, in the model.",
26
+ "d5": {
27
+ "comment": "This uncertain variable models the perfect correlation of demand and price since both depend on the weather. For more information on the PsiBeta distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psibeta",
28
+ "formula": "PsiBeta(2, 3.25)"
29
+ }
30
+ },
31
+ "data": {
32
+ "comment": "Use the 'data' section to setup constant data.",
33
+ "c4": {
34
+ "comment": "Gas price in yr 1",
35
+ "value": 5
36
+ },
37
+ "c6": {
38
+ "comment": "Storage cost per unit per year.",
39
+ "value": 1
40
+ },
41
+ "c7": {
42
+ "comment": "Demand in year 1.",
43
+ "value": 100
44
+ }
45
+ },
46
+ "formulas": {
47
+ "comment": "Use the 'formulas' section to calculate intermediary formulas for use in the constraints and objective.",
48
+ "c5": {
49
+ "comment": "Models gas price in year 2. The minimum price is $5. The incremental price of $2.50 depends on the weather, modeled by the uncertain variable.",
50
+ "formula": "5 + 2.5*d5"
51
+ },
52
+ "c8": {
53
+ "comment": "Models demand in yr 2. The minimum demand is 100. The incremental demand of 80 depends on the weather, modeled by the uncertain variable.",
54
+ "formula": "100 + 80*d5"
55
+ }
56
+ },
57
+ "constraints": {
58
+ "comment": "Two constraints: 1st ensures that the demand in yr 1 is met, the 2nd is a chance constraint that ensures that the demand in yr 2 is met 95% of the time.",
59
+ "c22": {
60
+ "comment":"Ensures that demand is met in year 1.",
61
+ "formula": "d14",
62
+ "equal": "c7"
63
+ },
64
+ "c23": {
65
+ "comment": "Ensures that the demand in year 2 is met 95% of the time.",
66
+ "formula": "d15 + d18 - c8",
67
+ "lower": 0
68
+ }
69
+ },
70
+ "objective": {
71
+ "c25": {
72
+ "comment": "The expected value of the total cost is being minimized in the objective. Since this formula depends on the recourse variable (D18) and thus has 90 values (numtrials = 90), we must reduce this quantity to 1. To do so, we minimize the expected total cost.",
73
+ "formula": "(d14*c4) + (c5*d18) + d15*(c4+c6)",
74
+ "type": "min",
75
+ "chanceType": "ExpVal",
76
+ "finalValue": []
77
+ }
78
+ }
79
79
  }
@@ -1,78 +1,78 @@
1
- {
2
- "modelName": "ProjectSelectExample",
3
- "modelDescription": "RASON Simulation Optimization Example with Excel ranges as array names: A company is considering eight different investment projects for the coming year. Each project's expected cash flow can be modeled as a PsiTriangular distribution with Minimum, Likely, and Maximum parameters. There is a 90% chance that each project chosen will be successful. The Initial Investment for each project can be found in F1:F8 block within 'formulas', below. Select the investments that will maximize the Expected Total Cash Flow while keeping within the $1.5M budget.",
4
- "modelType": "optimization",
5
- "modelSettings": {
6
- "simulationOptimization": true,
7
- "numTrials": 100,
8
- "randomSeed": 1
9
- },
10
- "engineSettings": {
11
- "comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
12
- "engine": "Evolutionary"
13
- },
14
- "variables": {
15
- "comment": "This example contains 8 decision variables. These variables are binary variables, or 0/1 variables, which represent the decision to accept or reject the project. Final values of the variables will be included in the result since the keyword finalValue is present.",
16
- "x1:x8": {
17
- "type": "binary",
18
- "finalValue": []
19
- }
20
- },
21
- "uncertainVariables": {
22
- "comment": "There are also 16 uncertain variables. This means that each uncertain variable will have 100 (numtrials) values. The first 8 uncertain variables, c1:c8, model the expected cash flow for each of the 8 projects using the PsiTriangular distribution. For more information on this distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psiTriangular. The next 8 uncertain variables model the project's success using the binomial distribution. For more information on this distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psiBinomial.",
23
- "c1": {
24
- "formula": "PsiTriangular(400000, 500000, 900000)"
25
- },
26
- "c2": {
27
- "formula": "PsiTriangular(500000, 750000, 1250000)"
28
- },
29
- "c3": {
30
- "formula": "PsiTriangular(500000, 1000000,1500000)"
31
- },
32
- "c4": {
33
- "formula": "PsiTriangular(400000, 600000, 900000)"
34
- },
35
- "c5": {
36
- "formula": "PsiTriangular(250000, 500000, 750000)"
37
- },
38
- "c6": {
39
- "formula": "PsiTriangular(300000, 500000, 600000)"
40
- },
41
- "c7": {
42
- "formula": "PsiTriangular(200000, 450000, 700000)"
43
- },
44
- "c8": {
45
- "formula": "PsiTriangular(400000, 500000, 700000)"
46
- },
47
- "d1:d8": {
48
- "comment": "Note that this set of uncertain variables are setup using the array, D1:D8.",
49
- "formula": "PsiBinomial(1, 0.9)"
50
- }
51
- },
52
- "formulas": {
53
- "comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
54
- "f1:f8": {
55
- "comment": "This array contains the initial investment for each project.",
56
- "value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
57
- },
58
- "cash": {
59
- "comment": "This array calculates the sumproduct of the expected cash flow for each project minus the initial investment, and the decision variables, to calculate the total net cash flow.",
60
- "formula": "sumproduct(c1:c8 * d1:d8 - f1:f8, x1:x8)"
61
- }
62
- },
63
- "constraints": {
64
- "comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
65
- "invest": {
66
- "formula": "sumproduct(f1:f8, x1:x8)",
67
- "upper": 1500000
68
- }
69
- },
70
- "objective": {
71
- "comment": "Maximizes the expected total cash flow. Notice that the objective is maximizing PsiMean(cash), reducing the uncertainty in the model from 100 values to 1. The objective could have also been set to maximize the Expected value of the objective as done in GasCompanyRecourse.",
72
- "total": {
73
- "type": "maximize",
74
- "formula": "PsiMean(cash)",
75
- "finalValue": []
76
- }
77
- }
1
+ {
2
+ "modelName": "ProjectSelectExample",
3
+ "modelDescription": "RASON Simulation Optimization Example with Excel ranges as array names: A company is considering eight different investment projects for the coming year. Each project's expected cash flow can be modeled as a PsiTriangular distribution with Minimum, Likely, and Maximum parameters. There is a 90% chance that each project chosen will be successful. The Initial Investment for each project can be found in F1:F8 block within 'formulas', below. Select the investments that will maximize the Expected Total Cash Flow while keeping within the $1.5M budget.",
4
+ "modelType": "optimization",
5
+ "modelSettings": {
6
+ "simulationOptimization": true,
7
+ "numTrials": 100,
8
+ "randomSeed": 1
9
+ },
10
+ "engineSettings": {
11
+ "comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
12
+ "engine": "Evolutionary"
13
+ },
14
+ "variables": {
15
+ "comment": "This example contains 8 decision variables. These variables are binary variables, or 0/1 variables, which represent the decision to accept or reject the project. Final values of the variables will be included in the result since the keyword finalValue is present.",
16
+ "x1:x8": {
17
+ "type": "binary",
18
+ "finalValue": []
19
+ }
20
+ },
21
+ "uncertainVariables": {
22
+ "comment": "There are also 16 uncertain variables. This means that each uncertain variable will have 100 (numtrials) values. The first 8 uncertain variables, c1:c8, model the expected cash flow for each of the 8 projects using the PsiTriangular distribution. For more information on this distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psiTriangular. The next 8 uncertain variables model the project's success using the binomial distribution. For more information on this distribution, see https://www.solver.com/risk-solver-help/psi-function-help/simulation/distributions/psiBinomial.",
23
+ "c1": {
24
+ "formula": "PsiTriangular(400000, 500000, 900000)"
25
+ },
26
+ "c2": {
27
+ "formula": "PsiTriangular(500000, 750000, 1250000)"
28
+ },
29
+ "c3": {
30
+ "formula": "PsiTriangular(500000, 1000000,1500000)"
31
+ },
32
+ "c4": {
33
+ "formula": "PsiTriangular(400000, 600000, 900000)"
34
+ },
35
+ "c5": {
36
+ "formula": "PsiTriangular(250000, 500000, 750000)"
37
+ },
38
+ "c6": {
39
+ "formula": "PsiTriangular(300000, 500000, 600000)"
40
+ },
41
+ "c7": {
42
+ "formula": "PsiTriangular(200000, 450000, 700000)"
43
+ },
44
+ "c8": {
45
+ "formula": "PsiTriangular(400000, 500000, 700000)"
46
+ },
47
+ "d1:d8": {
48
+ "comment": "Note that this set of uncertain variables are setup using the array, D1:D8.",
49
+ "formula": "PsiBinomial(1, 0.9)"
50
+ }
51
+ },
52
+ "formulas": {
53
+ "comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
54
+ "f1:f8": {
55
+ "comment": "This array contains the initial investment for each project.",
56
+ "value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
57
+ },
58
+ "cash": {
59
+ "comment": "This array calculates the sumproduct of the expected cash flow for each project minus the initial investment, and the decision variables, to calculate the total net cash flow.",
60
+ "formula": "sumproduct(c1:c8 * d1:d8 - f1:f8, x1:x8)"
61
+ }
62
+ },
63
+ "constraints": {
64
+ "comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
65
+ "invest": {
66
+ "formula": "sumproduct(f1:f8, x1:x8)",
67
+ "upper": 1500000
68
+ }
69
+ },
70
+ "objective": {
71
+ "comment": "Maximizes the expected total cash flow. Notice that the objective is maximizing PsiMean(cash), reducing the uncertainty in the model from 100 values to 1. The objective could have also been set to maximize the Expected value of the objective as done in GasCompanyRecourse.",
72
+ "total": {
73
+ "type": "maximize",
74
+ "formula": "PsiMean(cash)",
75
+ "finalValue": []
76
+ }
77
+ }
78
78
  }