@frontlinesystems/rason-mcp-server 2026.5.0 → 2026.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +35 -35
- package/README.md +1 -1
- package/examples/EXAMPLES_REFERENCE.md +128 -128
- package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +53 -53
- package/examples/calculation/DMNExamples/DMN Context example.json +69 -69
- package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -43
- package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -28
- package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -66
- package/examples/calculation/DMNExamples/FEEL For with two indices.json +15 -15
- package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -88
- package/examples/calculation/DMNExamples/FEEL If Then Else example.json +25 -25
- package/examples/calculation/DMNExamples/FEEL List example.json +37 -37
- package/examples/calculation/DMNExamples/FEEL List operator.json +17 -17
- package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +36 -36
- package/examples/calculation/DMNExamples/FEEL Some or Every example.json +65 -65
- package/examples/calculation/DecisionTables/DT Datasource example.json +52 -52
- package/examples/calculation/DecisionTables/DT Date and Time examples.json +91 -91
- package/examples/calculation/DecisionTables/DT Expression example.json +32 -32
- package/examples/calculation/DecisionTables/DT Hit Policy examples.json +136 -136
- package/examples/calculation/DecisionTables/DT Loan Recommend model.json +81 -81
- package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +218 -218
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -286
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +203 -203
- package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -214
- package/examples/calculation/DecisionTables/DT Output Order example.json +39 -39
- package/examples/calculation/DecisionTables/DT Unique example.json +38 -38
- package/examples/calculation/TypeDefinitions/TypeDefCF.json +64 -64
- package/examples/calculation/TypeDefinitions/TypeDefDT.json +57 -57
- package/examples/datamining/AffinityAnalysis/AssociationRules.json +51 -51
- package/examples/datamining/Classification/DecisionTree.json +90 -90
- package/examples/datamining/Classification/DiscriminantAnalysis.json +81 -81
- package/examples/datamining/Classification/Ensembles/Bagging.json +66 -66
- package/examples/datamining/Classification/Ensembles/Boosting.json +67 -67
- package/examples/datamining/Classification/Ensembles/RandomTrees.json +91 -91
- package/examples/datamining/Classification/FindBestModel.json +86 -86
- package/examples/datamining/Classification/LogisticRegression.json +82 -82
- package/examples/datamining/Classification/NaiveBayes.json +78 -78
- package/examples/datamining/Classification/NearestNeighbors.json +84 -84
- package/examples/datamining/Classification/NeuralNetwork.json +92 -92
- package/examples/datamining/Clustering/Hierarchical.json +54 -54
- package/examples/datamining/Clustering/KMeans.json +71 -71
- package/examples/datamining/DataSources/DelimitedFile.json +49 -49
- package/examples/datamining/DataSources/JSONFile.json +49 -49
- package/examples/datamining/DataSources/MSAccessDatabase.json +49 -49
- package/examples/datamining/DataSources/MSExcelTable.json +50 -50
- package/examples/datamining/DataSources/MSSQLDatabase.json +49 -49
- package/examples/datamining/DataSources/ODATATable.json +49 -49
- package/examples/datamining/DataSources/ODBCDatabase.json +49 -49
- package/examples/datamining/FeatureSelection/LinearWrapping.json +53 -53
- package/examples/datamining/FeatureSelection/LogisticWrapping.json +56 -56
- package/examples/datamining/FeatureSelection/Univariate.json +78 -78
- package/examples/datamining/Regression/DecisionTree.json +82 -82
- package/examples/datamining/Regression/Ensembles/Bagging.json +62 -62
- package/examples/datamining/Regression/Ensembles/Boosting.json +62 -62
- package/examples/datamining/Regression/Ensembles/RandomTrees.json +78 -78
- package/examples/datamining/Regression/FindBestModel.json +86 -86
- package/examples/datamining/Regression/LinearRegression.json +124 -124
- package/examples/datamining/Regression/NearestNeighbors.json +77 -77
- package/examples/datamining/Regression/NeuralNetwork.json +82 -82
- package/examples/datamining/Scoring/JSONClassifier.json +62 -62
- package/examples/datamining/Scoring/JSONClassifierNN.json +62 -62
- package/examples/datamining/Scoring/JSONClusterizer.json +37 -37
- package/examples/datamining/Scoring/JSONForecaster.json +49 -49
- package/examples/datamining/Scoring/JSONLinearRegression.json +56 -56
- package/examples/datamining/Scoring/JSONPCA.json +41 -41
- package/examples/datamining/Scoring/JSONRegressor.json +56 -56
- package/examples/datamining/Scoring/JSONTransformer.json +38 -38
- package/examples/datamining/Scoring/PMMLClassifier.json +42 -42
- package/examples/datamining/Scoring/PMMLForecaster.json +43 -43
- package/examples/datamining/Scoring/PMMLRegressor.json +38 -38
- package/examples/datamining/Scoring/PMMLTransformer.json +38 -38
- package/examples/datamining/Simulation/LinearRegressionSimulation.json +117 -117
- package/examples/datamining/Simulation/SyntheticDataGeneration.json +108 -108
- package/examples/datamining/Simulation/pmml-risk-scoring.json +62 -62
- package/examples/datamining/Summarizer/Summarization.json +54 -54
- package/examples/datamining/TextMining/LatentSemanticAnalysis.json +51 -51
- package/examples/datamining/TextMining/TfIdf-FileData.json +65 -65
- package/examples/datamining/TextMining/TfIdf-InlineData.json +55 -55
- package/examples/datamining/TimeSeries/AddHoltWinters.json +79 -79
- package/examples/datamining/TimeSeries/Arima.json +74 -74
- package/examples/datamining/TimeSeries/DoubleExponential.json +65 -65
- package/examples/datamining/TimeSeries/Exponential.json +64 -64
- package/examples/datamining/TimeSeries/LagAnalysis.json +48 -48
- package/examples/datamining/TimeSeries/MovingAverage.json +65 -65
- package/examples/datamining/TimeSeries/MulHoltWinters.json +65 -65
- package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +65 -65
- package/examples/datamining/Transformation/Binning.json +69 -69
- package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +47 -47
- package/examples/datamining/Transformation/CategoryReduction.json +51 -51
- package/examples/datamining/Transformation/Factorization.json +50 -50
- package/examples/datamining/Transformation/MissingDataHandling.json +83 -83
- package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +54 -54
- package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +48 -48
- package/examples/datamining/Transformation/PartitionTimeSeries.json +48 -48
- package/examples/datamining/Transformation/Partitioning-DF.json +72 -72
- package/examples/datamining/Transformation/Partitioning.json +46 -46
- package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +65 -65
- package/examples/datamining/Transformation/PartitioningWithOversampling.json +44 -44
- package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +52 -52
- package/examples/datamining/Transformation/Rescaling.json +67 -67
- package/examples/datamining/Transformation/Sampling.json +43 -43
- package/examples/datamining/Transformation/StratifiedSampling.json +46 -46
- package/examples/flow/SQLServerTransform.json +260 -260
- package/examples/flow/dm-calc-pipeline.json +277 -277
- package/examples/flow/dm-pipeline-simulation.json +113 -113
- package/examples/flow/opt-sim-pipeline.json +159 -159
- package/examples/flow/sim-dm-pipeline.json +106 -106
- package/examples/flow/sim-sim-pipeline.json +136 -136
- package/examples/index.json +4678 -4678
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic.json +111 -111
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic2.json +108 -108
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic3.json +111 -111
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic4.json +99 -99
- package/examples/{Optimization → optimization}/Conic/AirlineHubConic5.json +101 -101
- package/examples/{Optimization → optimization}/DataBinding/ProductMixCsv.json +81 -81
- package/examples/{Optimization → optimization}/DataBinding/ProductMixCsv4.json +96 -96
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel.json +73 -73
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel1.json +86 -86
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel11.json +108 -108
- package/examples/{Optimization → optimization}/DataBinding/ProductMixExcel2.json +77 -77
- package/examples/{Optimization → optimization}/DataBinding/ProductMixTab.json +89 -89
- package/examples/{Optimization → optimization}/DataBinding/ProductMixTab1.json +73 -73
- package/examples/{Optimization → optimization}/DataBinding/ProductMixTab2.json +77 -77
- package/examples/{Optimization → optimization}/Linear/Inventory.json +199 -199
- package/examples/{Optimization → optimization}/Linear/Matop.json +119 -119
- package/examples/{Optimization → optimization}/Linear/ProductMix.json +97 -97
- package/examples/{Optimization → optimization}/Linear/ProductMix2.json +72 -72
- package/examples/{Optimization → optimization}/Linear/ProductMix3.json +49 -49
- package/examples/{Optimization → optimization}/Linear/ProductMix4.json +56 -56
- package/examples/{Optimization → optimization}/Linear/ProductMixCsv1.json +106 -106
- package/examples/{Optimization → optimization}/Linear/ProductMixCsv2.json +106 -106
- package/examples/{Optimization → optimization}/Linear/ProductMixSQL11.json +82 -82
- package/examples/{Optimization → optimization}/Linear/Rowop.json +126 -126
- package/examples/{Optimization → optimization}/NonLinear/AirlineHub.json +63 -63
- package/examples/{Optimization → optimization}/NonLinear/AirlineHub2.json +47 -47
- package/examples/{Optimization → optimization}/NonLinear/AirlineHub3.json +47 -47
- package/examples/{Optimization → optimization}/NonSmooth/Inventory2.json +159 -159
- package/examples/{Optimization → optimization}/Quadratic/PortfolioOpt.json +55 -55
- package/examples/{Optimization → optimization}/Quadratic/PortfolioOpt2.json +65 -65
- package/examples/{Optimization → optimization}/WithUncertainty/GasCompanyChance.json +78 -78
- package/examples/{Optimization → optimization}/WithUncertainty/GasCompanyRecourse.json +78 -78
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect.json +77 -77
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect2.json +81 -81
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect3.json +84 -84
- package/examples/{Optimization → optimization}/WithUncertainty/ProjectSelect4.json +74 -74
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +52 -52
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +57 -57
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +35 -35
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +33 -33
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +25 -25
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +47 -47
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +69 -69
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +49 -49
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +337 -337
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +61 -61
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +190 -190
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +75 -75
- package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +108 -108
- package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +68 -68
- package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -183
- package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -79
- package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +154 -154
- package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +118 -118
- package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +142 -142
- package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +81 -81
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -69
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +113 -113
- package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +107 -107
- package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -117
- package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -108
- package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -67
- package/examples/rason-features/UserGuide/UGForecast.json +50 -50
- package/examples/rason-features/UserGuide/UGProductMix1.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMix2.json +48 -48
- package/examples/rason-features/UserGuide/UGProductMixTab1.json +67 -67
- package/examples/rason-features/UserGuide/UGProductMixTab2.json +76 -76
- package/examples/rason-features/UserGuide/UGProductMixTab3.json +66 -66
- package/examples/rason-features/UserGuide/UGProductMixTab4.json +70 -70
- package/examples/rason-features/UserGuide/UGProductMixTab5.json +67 -67
- package/examples/rason-features/UserGuide/UGProjectSelect0.json +91 -91
- package/examples/rason-features/UserGuide/UGProjectSelect1.json +74 -74
- package/examples/rason-features/UserGuide/UGProjectSelect2.json +74 -74
- package/examples/rason-features/UserGuide/UGYieldManagement1.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement2.json +61 -61
- package/examples/rason-features/UserGuide/UGYieldManagement3.json +63 -63
- package/examples/{Simulation → simulation}/CandyStoreSalesUsingSIP.json +147 -147
- package/examples/{Simulation → simulation}/CollegeFundGrowth1.json +423 -423
- package/examples/{Simulation → simulation}/CollegeFundGrowth1SIPModel.json +27 -27
- package/examples/{Simulation → simulation}/CollegeFundGrowth2.json +415 -415
- package/examples/{Simulation → simulation}/CollegeFundGrowthSIP.json +401 -401
- package/examples/{Simulation → simulation}/GBMSimulationModel.json +236 -236
- package/examples/{Simulation → simulation}/YieldManagement(Sim).json +69 -69
- package/examples/{Simulation → simulation}/YieldManagement2(Sim).json +72 -72
- package/out/index.cjs +38 -38
- package/package.json +2 -2
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProjectSelect2Example",
|
|
3
|
-
"modelDescription": "RASON Simulation Optimization Example with typical array names (i.e. no Excel range 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 the F 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
|
-
"comment": "This example uses simulation optimization to solve the model. See 'Solving with Simulation Optimization' on the Help tab for more information. The option 'numTrials' sets the number of simulation trials to 100. Use 'randomSeed' to set a seed for the random number generator used in the Monte Carlo simulation process. Enter a positive integer value for this option; this value will then be used to 'seed' the random number generator each time you click Solve.",
|
|
7
|
-
"simulationOptimization": true,
|
|
8
|
-
"numTrials": 100,
|
|
9
|
-
"randomSeed": 1
|
|
10
|
-
},
|
|
11
|
-
"engineSettings": {
|
|
12
|
-
"comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
|
|
13
|
-
"engine": "Evolutionary"
|
|
14
|
-
},
|
|
15
|
-
"variables": {
|
|
16
|
-
"x": {
|
|
17
|
-
"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. The 'dimensions' property explicitly specifies the number of dimensions as 8.",
|
|
18
|
-
"dimensions": [ 8 ],
|
|
19
|
-
"type": "binary",
|
|
20
|
-
"finalValue": []
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"uncertainVariables": {
|
|
24
|
-
"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, d, 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.",
|
|
25
|
-
|
|
26
|
-
"c1": {
|
|
27
|
-
"formula": "PsiTriangular(400000, 500000, 900000)"
|
|
28
|
-
},
|
|
29
|
-
"c2": {
|
|
30
|
-
"formula": "PsiTriangular(500000, 750000, 1250000)"
|
|
31
|
-
},
|
|
32
|
-
"c3": {
|
|
33
|
-
"formula": "PsiTriangular(500000, 1000000,1500000)"
|
|
34
|
-
},
|
|
35
|
-
"c4": {
|
|
36
|
-
"formula": "PsiTriangular(400000, 600000, 900000)"
|
|
37
|
-
},
|
|
38
|
-
"c5": {
|
|
39
|
-
"formula": "PsiTriangular(250000, 500000, 750000)"
|
|
40
|
-
},
|
|
41
|
-
"c6": {
|
|
42
|
-
"formula": "PsiTriangular(300000, 500000, 600000)"
|
|
43
|
-
},
|
|
44
|
-
"c7": {
|
|
45
|
-
"formula": "PsiTriangular(200000, 450000, 700000)"
|
|
46
|
-
},
|
|
47
|
-
"c8": {
|
|
48
|
-
"formula": "PsiTriangular(400000, 500000, 700000)"
|
|
49
|
-
},
|
|
50
|
-
"d": {
|
|
51
|
-
"comment": "Note that this set of uncertain variables are setup using one array, the d array.",
|
|
52
|
-
"dimensions": [ 8 ],
|
|
53
|
-
"formula": "PsiBinomial(1, 0.9)"
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"formulas": {
|
|
57
|
-
"comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
|
|
58
|
-
"f": {
|
|
59
|
-
"comment": "This array contains the initial investment for each project.",
|
|
60
|
-
"value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
|
|
61
|
-
},
|
|
62
|
-
"cash": {
|
|
63
|
-
"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.",
|
|
64
|
-
"formula": "sumproduct((c1:c8) * d - f, x)"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"constraints": {
|
|
68
|
-
"comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
|
|
69
|
-
"invest": {
|
|
70
|
-
"formula": "sumproduct(f, x)",
|
|
71
|
-
"upper": 1500000
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"objective": {
|
|
75
|
-
"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.",
|
|
76
|
-
"total": {
|
|
77
|
-
"type": "maximize",
|
|
78
|
-
"formula": "PsiMean(cash)",
|
|
79
|
-
"finalValue": []
|
|
80
|
-
}
|
|
81
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProjectSelect2Example",
|
|
3
|
+
"modelDescription": "RASON Simulation Optimization Example with typical array names (i.e. no Excel range 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 the F 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
|
+
"comment": "This example uses simulation optimization to solve the model. See 'Solving with Simulation Optimization' on the Help tab for more information. The option 'numTrials' sets the number of simulation trials to 100. Use 'randomSeed' to set a seed for the random number generator used in the Monte Carlo simulation process. Enter a positive integer value for this option; this value will then be used to 'seed' the random number generator each time you click Solve.",
|
|
7
|
+
"simulationOptimization": true,
|
|
8
|
+
"numTrials": 100,
|
|
9
|
+
"randomSeed": 1
|
|
10
|
+
},
|
|
11
|
+
"engineSettings": {
|
|
12
|
+
"comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
|
|
13
|
+
"engine": "Evolutionary"
|
|
14
|
+
},
|
|
15
|
+
"variables": {
|
|
16
|
+
"x": {
|
|
17
|
+
"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. The 'dimensions' property explicitly specifies the number of dimensions as 8.",
|
|
18
|
+
"dimensions": [ 8 ],
|
|
19
|
+
"type": "binary",
|
|
20
|
+
"finalValue": []
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"uncertainVariables": {
|
|
24
|
+
"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, d, 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.",
|
|
25
|
+
|
|
26
|
+
"c1": {
|
|
27
|
+
"formula": "PsiTriangular(400000, 500000, 900000)"
|
|
28
|
+
},
|
|
29
|
+
"c2": {
|
|
30
|
+
"formula": "PsiTriangular(500000, 750000, 1250000)"
|
|
31
|
+
},
|
|
32
|
+
"c3": {
|
|
33
|
+
"formula": "PsiTriangular(500000, 1000000,1500000)"
|
|
34
|
+
},
|
|
35
|
+
"c4": {
|
|
36
|
+
"formula": "PsiTriangular(400000, 600000, 900000)"
|
|
37
|
+
},
|
|
38
|
+
"c5": {
|
|
39
|
+
"formula": "PsiTriangular(250000, 500000, 750000)"
|
|
40
|
+
},
|
|
41
|
+
"c6": {
|
|
42
|
+
"formula": "PsiTriangular(300000, 500000, 600000)"
|
|
43
|
+
},
|
|
44
|
+
"c7": {
|
|
45
|
+
"formula": "PsiTriangular(200000, 450000, 700000)"
|
|
46
|
+
},
|
|
47
|
+
"c8": {
|
|
48
|
+
"formula": "PsiTriangular(400000, 500000, 700000)"
|
|
49
|
+
},
|
|
50
|
+
"d": {
|
|
51
|
+
"comment": "Note that this set of uncertain variables are setup using one array, the d array.",
|
|
52
|
+
"dimensions": [ 8 ],
|
|
53
|
+
"formula": "PsiBinomial(1, 0.9)"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"formulas": {
|
|
57
|
+
"comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
|
|
58
|
+
"f": {
|
|
59
|
+
"comment": "This array contains the initial investment for each project.",
|
|
60
|
+
"value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
|
|
61
|
+
},
|
|
62
|
+
"cash": {
|
|
63
|
+
"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.",
|
|
64
|
+
"formula": "sumproduct((c1:c8) * d - f, x)"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"constraints": {
|
|
68
|
+
"comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
|
|
69
|
+
"invest": {
|
|
70
|
+
"formula": "sumproduct(f, x)",
|
|
71
|
+
"upper": 1500000
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"objective": {
|
|
75
|
+
"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.",
|
|
76
|
+
"total": {
|
|
77
|
+
"type": "maximize",
|
|
78
|
+
"formula": "PsiMean(cash)",
|
|
79
|
+
"finalValue": []
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
82
|
}
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProjectSelect3Example",
|
|
3
|
-
"modelDescription": "RASON Simulation-optimization example with indexed assignments: 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 the f block in '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
|
-
"comment": "This example uses simulation optimization to solve the model. See 'Solving with Simulation Optimization' on the Help tab for more information. The option 'numTrials' sets the number of simulation trials to 100. Enter a positive integer value for randomSeed; this value will then be used to 'seed' the random number generator each time you click Solve.",
|
|
7
|
-
"simulationOptimization": true,
|
|
8
|
-
"numTrials": 100,
|
|
9
|
-
"randomSeed": 1
|
|
10
|
-
},
|
|
11
|
-
"engineSettings": {
|
|
12
|
-
"comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
|
|
13
|
-
"engine": "Evolutionary"
|
|
14
|
-
},
|
|
15
|
-
"variables": {
|
|
16
|
-
"x": {
|
|
17
|
-
"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. The 'dimensions' property explicitly specifies the number of dimensions as 8.",
|
|
18
|
-
"dimensions": [ 8 ],
|
|
19
|
-
"type": "binary",
|
|
20
|
-
"finalValue": []
|
|
21
|
-
}
|
|
22
|
-
},
|
|
23
|
-
"uncertainVariables": {
|
|
24
|
-
"comment": "There are also 16 uncertain variables. This means that each uncertain variable will have 100 (numtrials) values. The first 8 uncertain variables, in the c array, 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, d, 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.",
|
|
25
|
-
"c": {
|
|
26
|
-
"comment": "In this example, the c array of size 8 is created first, then populated element by element.",
|
|
27
|
-
"dimensions": [ 8 ]
|
|
28
|
-
},
|
|
29
|
-
"c[1]": {
|
|
30
|
-
"formula": "PsiTriangular(400000, 500000, 900000)"
|
|
31
|
-
},
|
|
32
|
-
"c[2]": {
|
|
33
|
-
"formula": "PsiTriangular(500000, 750000, 1250000)"
|
|
34
|
-
},
|
|
35
|
-
"c[3]": {
|
|
36
|
-
"formula": "PsiTriangular(500000, 1000000,1500000)"
|
|
37
|
-
},
|
|
38
|
-
"c[4]": {
|
|
39
|
-
"formula": "PsiTriangular(400000, 600000, 900000)"
|
|
40
|
-
},
|
|
41
|
-
"c[5]": {
|
|
42
|
-
"formula": "PsiTriangular(250000, 500000, 750000)"
|
|
43
|
-
},
|
|
44
|
-
"c[6]": {
|
|
45
|
-
"formula": "PsiTriangular(300000, 500000, 600000)"
|
|
46
|
-
},
|
|
47
|
-
"c[7]": {
|
|
48
|
-
"formula": "PsiTriangular(200000, 450000, 700000)"
|
|
49
|
-
},
|
|
50
|
-
"c[8]": {
|
|
51
|
-
"formula": "PsiTriangular(400000, 500000, 700000)"
|
|
52
|
-
},
|
|
53
|
-
"d": {
|
|
54
|
-
"comment": "This uncertain variable block contains 8 uncertain variables, all with the same distribution, PsiBinomial(1,0.9).",
|
|
55
|
-
"dimensions": [ 8 ],
|
|
56
|
-
"formula": "PsiBinomial(1, 0.9)"
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
"formulas": {
|
|
60
|
-
"comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
|
|
61
|
-
"f": {
|
|
62
|
-
"comment": "This array contains the initial investment for each project.",
|
|
63
|
-
"value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
|
|
64
|
-
},
|
|
65
|
-
"cash": {
|
|
66
|
-
"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.",
|
|
67
|
-
"formula": "sumproduct(c * d - f, x)"
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
"constraints": {
|
|
71
|
-
"comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
|
|
72
|
-
"invest": {
|
|
73
|
-
"formula": "sumproduct(f, x)",
|
|
74
|
-
"upper": 1500000
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
"objective": {
|
|
78
|
-
"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.",
|
|
79
|
-
"total": {
|
|
80
|
-
"type": "maximize",
|
|
81
|
-
"formula": "PsiMean(cash)",
|
|
82
|
-
"finalValue": []
|
|
83
|
-
}
|
|
84
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProjectSelect3Example",
|
|
3
|
+
"modelDescription": "RASON Simulation-optimization example with indexed assignments: 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 the f block in '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
|
+
"comment": "This example uses simulation optimization to solve the model. See 'Solving with Simulation Optimization' on the Help tab for more information. The option 'numTrials' sets the number of simulation trials to 100. Enter a positive integer value for randomSeed; this value will then be used to 'seed' the random number generator each time you click Solve.",
|
|
7
|
+
"simulationOptimization": true,
|
|
8
|
+
"numTrials": 100,
|
|
9
|
+
"randomSeed": 1
|
|
10
|
+
},
|
|
11
|
+
"engineSettings": {
|
|
12
|
+
"comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
|
|
13
|
+
"engine": "Evolutionary"
|
|
14
|
+
},
|
|
15
|
+
"variables": {
|
|
16
|
+
"x": {
|
|
17
|
+
"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. The 'dimensions' property explicitly specifies the number of dimensions as 8.",
|
|
18
|
+
"dimensions": [ 8 ],
|
|
19
|
+
"type": "binary",
|
|
20
|
+
"finalValue": []
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"uncertainVariables": {
|
|
24
|
+
"comment": "There are also 16 uncertain variables. This means that each uncertain variable will have 100 (numtrials) values. The first 8 uncertain variables, in the c array, 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, d, 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.",
|
|
25
|
+
"c": {
|
|
26
|
+
"comment": "In this example, the c array of size 8 is created first, then populated element by element.",
|
|
27
|
+
"dimensions": [ 8 ]
|
|
28
|
+
},
|
|
29
|
+
"c[1]": {
|
|
30
|
+
"formula": "PsiTriangular(400000, 500000, 900000)"
|
|
31
|
+
},
|
|
32
|
+
"c[2]": {
|
|
33
|
+
"formula": "PsiTriangular(500000, 750000, 1250000)"
|
|
34
|
+
},
|
|
35
|
+
"c[3]": {
|
|
36
|
+
"formula": "PsiTriangular(500000, 1000000,1500000)"
|
|
37
|
+
},
|
|
38
|
+
"c[4]": {
|
|
39
|
+
"formula": "PsiTriangular(400000, 600000, 900000)"
|
|
40
|
+
},
|
|
41
|
+
"c[5]": {
|
|
42
|
+
"formula": "PsiTriangular(250000, 500000, 750000)"
|
|
43
|
+
},
|
|
44
|
+
"c[6]": {
|
|
45
|
+
"formula": "PsiTriangular(300000, 500000, 600000)"
|
|
46
|
+
},
|
|
47
|
+
"c[7]": {
|
|
48
|
+
"formula": "PsiTriangular(200000, 450000, 700000)"
|
|
49
|
+
},
|
|
50
|
+
"c[8]": {
|
|
51
|
+
"formula": "PsiTriangular(400000, 500000, 700000)"
|
|
52
|
+
},
|
|
53
|
+
"d": {
|
|
54
|
+
"comment": "This uncertain variable block contains 8 uncertain variables, all with the same distribution, PsiBinomial(1,0.9).",
|
|
55
|
+
"dimensions": [ 8 ],
|
|
56
|
+
"formula": "PsiBinomial(1, 0.9)"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"formulas": {
|
|
60
|
+
"comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
|
|
61
|
+
"f": {
|
|
62
|
+
"comment": "This array contains the initial investment for each project.",
|
|
63
|
+
"value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
|
|
64
|
+
},
|
|
65
|
+
"cash": {
|
|
66
|
+
"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.",
|
|
67
|
+
"formula": "sumproduct(c * d - f, x)"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"constraints": {
|
|
71
|
+
"comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
|
|
72
|
+
"invest": {
|
|
73
|
+
"formula": "sumproduct(f, x)",
|
|
74
|
+
"upper": 1500000
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"objective": {
|
|
78
|
+
"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.",
|
|
79
|
+
"total": {
|
|
80
|
+
"type": "maximize",
|
|
81
|
+
"formula": "PsiMean(cash)",
|
|
82
|
+
"finalValue": []
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
85
|
}
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ProjectSelect4Example",
|
|
3
|
-
"modelDescription": "Simulation-optimization RASON investment model example with formulas in array: 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 the f 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
|
-
"comment": "This example uses simulation optimization to solve the model. See 'Solving with Simulation Optimization' on the Help tab for more information. The option 'numTrials' sets the number of simulation trials to 100. Enter a positive integer value for randomSeed; this value will then be used to 'seed' the random number generator each time you click Solve.",
|
|
7
|
-
"simulationOptimization": true,
|
|
8
|
-
"numTrials": 100,
|
|
9
|
-
"randomSeed": 1
|
|
10
|
-
},
|
|
11
|
-
"engineSettings": {
|
|
12
|
-
"comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
|
|
13
|
-
"engine": "Evolutionary"
|
|
14
|
-
},
|
|
15
|
-
"variables": {
|
|
16
|
-
"comment": "Enter the model decision variables in the 'variables' section of the RASON model.",
|
|
17
|
-
"x": {
|
|
18
|
-
"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. The 'dimensions' property explicitly specifies the number of dimensions as 8.",
|
|
19
|
-
|
|
20
|
-
"dimensions": [ 8 ],
|
|
21
|
-
"type": "binary",
|
|
22
|
-
"finalValue": []
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"uncertainVariables": {
|
|
26
|
-
"comment": "There are also 16 uncertain variables. This means that each uncertain variable will have 100 (numtrials) values. The first 8 uncertain variables, in the c array, 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, d, 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.",
|
|
27
|
-
"c": {
|
|
28
|
-
"comment": "In this example, the c array of size 8 is populated directly with the distribution formulas.",
|
|
29
|
-
"dimensions": [ 8 ],
|
|
30
|
-
"formula": [
|
|
31
|
-
"PsiTriangular(400000, 500000, 900000)",
|
|
32
|
-
"PsiTriangular(500000, 750000, 1250000)",
|
|
33
|
-
"PsiTriangular(500000, 1000000,1500000)",
|
|
34
|
-
"PsiTriangular(400000, 600000, 900000)",
|
|
35
|
-
"PsiTriangular(250000, 500000, 750000)",
|
|
36
|
-
"PsiTriangular(300000, 500000, 600000)",
|
|
37
|
-
"PsiTriangular(200000, 450000, 700000)",
|
|
38
|
-
"PsiTriangular(400000, 500000, 700000)"
|
|
39
|
-
]
|
|
40
|
-
},
|
|
41
|
-
"d": {
|
|
42
|
-
"comment": "This uncertain variable block contains 8 uncertain variables, all with the same distribution, PsiBinomial(1,0.9).",
|
|
43
|
-
"dimensions": [ 8 ],
|
|
44
|
-
"formula": "PsiBinomial(1, 0.9)"
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
"formulas": {
|
|
48
|
-
"comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
|
|
49
|
-
"f": {
|
|
50
|
-
"comment": "This array contains the initial investment for each project.",
|
|
51
|
-
"value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
|
|
52
|
-
},
|
|
53
|
-
"cash": {
|
|
54
|
-
"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.",
|
|
55
|
-
"formula": "sumproduct(c * d - f, x)"
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"constraints": {
|
|
59
|
-
"comment": "Enter the model constraints in the 'constraints' section of the RASON model.",
|
|
60
|
-
"invest": {
|
|
61
|
-
"comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
|
|
62
|
-
"formula": "sumproduct(f, x)",
|
|
63
|
-
"upper": 1500000
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
"objective": {
|
|
67
|
-
"comment": "Enter the objective function in the 'objective' section of the RASON model.",
|
|
68
|
-
"total": {
|
|
69
|
-
"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.",
|
|
70
|
-
"type": "maximize",
|
|
71
|
-
"formula": "PsiMean(cash)",
|
|
72
|
-
"finalValue": []
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ProjectSelect4Example",
|
|
3
|
+
"modelDescription": "Simulation-optimization RASON investment model example with formulas in array: 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 the f 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
|
+
"comment": "This example uses simulation optimization to solve the model. See 'Solving with Simulation Optimization' on the Help tab for more information. The option 'numTrials' sets the number of simulation trials to 100. Enter a positive integer value for randomSeed; this value will then be used to 'seed' the random number generator each time you click Solve.",
|
|
7
|
+
"simulationOptimization": true,
|
|
8
|
+
"numTrials": 100,
|
|
9
|
+
"randomSeed": 1
|
|
10
|
+
},
|
|
11
|
+
"engineSettings": {
|
|
12
|
+
"comment": "Set the engine to be used to solve the model here. Since this model solves with simulation optimization, the Evolutionary engine is selected.",
|
|
13
|
+
"engine": "Evolutionary"
|
|
14
|
+
},
|
|
15
|
+
"variables": {
|
|
16
|
+
"comment": "Enter the model decision variables in the 'variables' section of the RASON model.",
|
|
17
|
+
"x": {
|
|
18
|
+
"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. The 'dimensions' property explicitly specifies the number of dimensions as 8.",
|
|
19
|
+
|
|
20
|
+
"dimensions": [ 8 ],
|
|
21
|
+
"type": "binary",
|
|
22
|
+
"finalValue": []
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"uncertainVariables": {
|
|
26
|
+
"comment": "There are also 16 uncertain variables. This means that each uncertain variable will have 100 (numtrials) values. The first 8 uncertain variables, in the c array, 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, d, 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.",
|
|
27
|
+
"c": {
|
|
28
|
+
"comment": "In this example, the c array of size 8 is populated directly with the distribution formulas.",
|
|
29
|
+
"dimensions": [ 8 ],
|
|
30
|
+
"formula": [
|
|
31
|
+
"PsiTriangular(400000, 500000, 900000)",
|
|
32
|
+
"PsiTriangular(500000, 750000, 1250000)",
|
|
33
|
+
"PsiTriangular(500000, 1000000,1500000)",
|
|
34
|
+
"PsiTriangular(400000, 600000, 900000)",
|
|
35
|
+
"PsiTriangular(250000, 500000, 750000)",
|
|
36
|
+
"PsiTriangular(300000, 500000, 600000)",
|
|
37
|
+
"PsiTriangular(200000, 450000, 700000)",
|
|
38
|
+
"PsiTriangular(400000, 500000, 700000)"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"d": {
|
|
42
|
+
"comment": "This uncertain variable block contains 8 uncertain variables, all with the same distribution, PsiBinomial(1,0.9).",
|
|
43
|
+
"dimensions": [ 8 ],
|
|
44
|
+
"formula": "PsiBinomial(1, 0.9)"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"formulas": {
|
|
48
|
+
"comment": "Use this optional section to setup constant arrays and calculate intermediary formulas that will be used in the constraints and objective.",
|
|
49
|
+
"f": {
|
|
50
|
+
"comment": "This array contains the initial investment for each project.",
|
|
51
|
+
"value": [ 325000, 450000, 550000, 300000, 150000, 250000, 150000, 325000 ]
|
|
52
|
+
},
|
|
53
|
+
"cash": {
|
|
54
|
+
"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.",
|
|
55
|
+
"formula": "sumproduct(c * d - f, x)"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"constraints": {
|
|
59
|
+
"comment": "Enter the model constraints in the 'constraints' section of the RASON model.",
|
|
60
|
+
"invest": {
|
|
61
|
+
"comment": "This model uses 1 constraint to ensure that the total investment does not exceed the budget of $1.5M.",
|
|
62
|
+
"formula": "sumproduct(f, x)",
|
|
63
|
+
"upper": 1500000
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"objective": {
|
|
67
|
+
"comment": "Enter the objective function in the 'objective' section of the RASON model.",
|
|
68
|
+
"total": {
|
|
69
|
+
"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.",
|
|
70
|
+
"type": "maximize",
|
|
71
|
+
"formula": "PsiMean(cash)",
|
|
72
|
+
"finalValue": []
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
75
|
}
|
package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"modelName": "ListwithFilter",
|
|
3
|
-
"modelDescription": "Example illustrating how to filter a table (list).",
|
|
4
|
-
"modelType": "calculation",
|
|
5
|
-
"typeDefs": {
|
|
6
|
-
"comment": "This section defines custom data structures used in the model.",
|
|
7
|
-
"tLoanList": {
|
|
8
|
-
"comment": "A custom type named tLoanList, defined using FEEL language. This is a collection of items. The names of the fields (all of type number) are: principal, rate and termMonths. ",
|
|
9
|
-
"language": "FEEL",
|
|
10
|
-
"isCollection": true,
|
|
11
|
-
"components": [ "principal", "rate", "termMonths" ],
|
|
12
|
-
"types": [ "number", "number", "number" ]
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"data": {
|
|
16
|
-
"comment": "Data provided in this section. The 'binding: get'' field indicates this data can be accessed from outside the model environment.",
|
|
17
|
-
"arr": {
|
|
18
|
-
"value": [ 0, 1, 2, 3, 4, 5 ],
|
|
19
|
-
"binding": "get"
|
|
20
|
-
},
|
|
21
|
-
"list": {
|
|
22
|
-
"type": "tLoanList",
|
|
23
|
-
"value": [
|
|
24
|
-
[ 600000, 0.0275, 360 ],
|
|
25
|
-
[ 300000, 0.03, 360 ]
|
|
26
|
-
],
|
|
27
|
-
"binding": "get"
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
"formulas": {
|
|
31
|
-
"comment": "Defines computed fields using expressions or FEEL formulas.",
|
|
32
|
-
"resExc": {
|
|
33
|
-
"comment": "Filters arr to include only even numbers greater than 0",
|
|
34
|
-
"formula": "arr[AND(item > 0, ISEVEN(item))]",
|
|
35
|
-
"finalValue": []
|
|
36
|
-
},
|
|
37
|
-
"resFeel": {
|
|
38
|
-
"comment": "Same logic as above, but using FEEL syntax instead of expression syntax.",
|
|
39
|
-
"feelFormula": "arr[item > 0 and even(item)]",
|
|
40
|
-
"finalValue": []
|
|
41
|
-
},
|
|
42
|
-
"selExc": {
|
|
43
|
-
"comment": "Filters the list of loans to only include those with a rate less than 3%.",
|
|
44
|
-
"formula": "list[rate < 0.03]",
|
|
45
|
-
"finalValue": []
|
|
46
|
-
},
|
|
47
|
-
"selFeel": {
|
|
48
|
-
"comment": "Same logic as above, but using FEEL syntax instead of expression syntax.",
|
|
49
|
-
"feelFormula": "list[rate < 0.03]",
|
|
50
|
-
"finalValue": []
|
|
51
|
-
}
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"modelName": "ListwithFilter",
|
|
3
|
+
"modelDescription": "Example illustrating how to filter a table (list).",
|
|
4
|
+
"modelType": "calculation",
|
|
5
|
+
"typeDefs": {
|
|
6
|
+
"comment": "This section defines custom data structures used in the model.",
|
|
7
|
+
"tLoanList": {
|
|
8
|
+
"comment": "A custom type named tLoanList, defined using FEEL language. This is a collection of items. The names of the fields (all of type number) are: principal, rate and termMonths. ",
|
|
9
|
+
"language": "FEEL",
|
|
10
|
+
"isCollection": true,
|
|
11
|
+
"components": [ "principal", "rate", "termMonths" ],
|
|
12
|
+
"types": [ "number", "number", "number" ]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"data": {
|
|
16
|
+
"comment": "Data provided in this section. The 'binding: get'' field indicates this data can be accessed from outside the model environment.",
|
|
17
|
+
"arr": {
|
|
18
|
+
"value": [ 0, 1, 2, 3, 4, 5 ],
|
|
19
|
+
"binding": "get"
|
|
20
|
+
},
|
|
21
|
+
"list": {
|
|
22
|
+
"type": "tLoanList",
|
|
23
|
+
"value": [
|
|
24
|
+
[ 600000, 0.0275, 360 ],
|
|
25
|
+
[ 300000, 0.03, 360 ]
|
|
26
|
+
],
|
|
27
|
+
"binding": "get"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"formulas": {
|
|
31
|
+
"comment": "Defines computed fields using expressions or FEEL formulas.",
|
|
32
|
+
"resExc": {
|
|
33
|
+
"comment": "Filters arr to include only even numbers greater than 0",
|
|
34
|
+
"formula": "arr[AND(item > 0, ISEVEN(item))]",
|
|
35
|
+
"finalValue": []
|
|
36
|
+
},
|
|
37
|
+
"resFeel": {
|
|
38
|
+
"comment": "Same logic as above, but using FEEL syntax instead of expression syntax.",
|
|
39
|
+
"feelFormula": "arr[item > 0 and even(item)]",
|
|
40
|
+
"finalValue": []
|
|
41
|
+
},
|
|
42
|
+
"selExc": {
|
|
43
|
+
"comment": "Filters the list of loans to only include those with a rate less than 3%.",
|
|
44
|
+
"formula": "list[rate < 0.03]",
|
|
45
|
+
"finalValue": []
|
|
46
|
+
},
|
|
47
|
+
"selFeel": {
|
|
48
|
+
"comment": "Same logic as above, but using FEEL syntax instead of expression syntax.",
|
|
49
|
+
"feelFormula": "list[rate < 0.03]",
|
|
50
|
+
"finalValue": []
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
53
|
}
|