@frontlinesystems/rason-mcp-server 2026.5.0
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 -0
- package/README.md +282 -0
- package/examples/EXAMPLES_REFERENCE.md +128 -0
- package/examples/Optimization/Conic/AirlineHubConic.json +112 -0
- package/examples/Optimization/Conic/AirlineHubConic2.json +109 -0
- package/examples/Optimization/Conic/AirlineHubConic3.json +112 -0
- package/examples/Optimization/Conic/AirlineHubConic4.json +100 -0
- package/examples/Optimization/Conic/AirlineHubConic5.json +102 -0
- package/examples/Optimization/DataBinding/ProductMixCsv.json +82 -0
- package/examples/Optimization/DataBinding/ProductMixCsv4.json +96 -0
- package/examples/Optimization/DataBinding/ProductMixExcel.json +74 -0
- package/examples/Optimization/DataBinding/ProductMixExcel1.json +87 -0
- package/examples/Optimization/DataBinding/ProductMixExcel11.json +109 -0
- package/examples/Optimization/DataBinding/ProductMixExcel2.json +78 -0
- package/examples/Optimization/DataBinding/ProductMixTab.json +90 -0
- package/examples/Optimization/DataBinding/ProductMixTab1.json +74 -0
- package/examples/Optimization/DataBinding/ProductMixTab2.json +78 -0
- package/examples/Optimization/Linear/Inventory.json +200 -0
- package/examples/Optimization/Linear/Matop.json +120 -0
- package/examples/Optimization/Linear/ProductMix.json +98 -0
- package/examples/Optimization/Linear/ProductMix2.json +73 -0
- package/examples/Optimization/Linear/ProductMix3.json +50 -0
- package/examples/Optimization/Linear/ProductMix4.json +57 -0
- package/examples/Optimization/Linear/ProductMixCsv1.json +106 -0
- package/examples/Optimization/Linear/ProductMixCsv2.json +106 -0
- package/examples/Optimization/Linear/ProductMixSQL11.json +82 -0
- package/examples/Optimization/Linear/Rowop.json +127 -0
- package/examples/Optimization/NonLinear/AirlineHub.json +64 -0
- package/examples/Optimization/NonLinear/AirlineHub2.json +48 -0
- package/examples/Optimization/NonLinear/AirlineHub3.json +48 -0
- package/examples/Optimization/NonSmooth/Inventory2.json +160 -0
- package/examples/Optimization/Quadratic/PortfolioOpt.json +56 -0
- package/examples/Optimization/Quadratic/PortfolioOpt2.json +66 -0
- package/examples/Optimization/WithUncertainty/GasCompanyChance.json +79 -0
- package/examples/Optimization/WithUncertainty/GasCompanyRecourse.json +79 -0
- package/examples/Optimization/WithUncertainty/ProjectSelect.json +78 -0
- package/examples/Optimization/WithUncertainty/ProjectSelect2.json +82 -0
- package/examples/Optimization/WithUncertainty/ProjectSelect3.json +85 -0
- package/examples/Optimization/WithUncertainty/ProjectSelect4.json +75 -0
- package/examples/Simulation/CandyStoreSalesUsingSIP.json +148 -0
- package/examples/Simulation/CollegeFundGrowth1.json +424 -0
- package/examples/Simulation/CollegeFundGrowth1SIPModel.json +28 -0
- package/examples/Simulation/CollegeFundGrowth2.json +416 -0
- package/examples/Simulation/CollegeFundGrowthSIP.json +402 -0
- package/examples/Simulation/GBMSimulationModel.json +237 -0
- package/examples/Simulation/YieldManagement(Sim).json +70 -0
- package/examples/Simulation/YieldManagement2(Sim).json +73 -0
- package/examples/calculation/DMNExamples/DMN Box Fun with typeDef result.json +54 -0
- package/examples/calculation/DMNExamples/DMN Context example.json +69 -0
- package/examples/calculation/DMNExamples/DMN DT with typeDef result.json +43 -0
- package/examples/calculation/DMNExamples/FEEL Date Time example.json +28 -0
- package/examples/calculation/DMNExamples/FEEL For iteration example.json +66 -0
- package/examples/calculation/DMNExamples/FEEL For with two indices.json +16 -0
- package/examples/calculation/DMNExamples/FEEL For with typeDef result.json +88 -0
- package/examples/calculation/DMNExamples/FEEL If Then Else example.json +26 -0
- package/examples/calculation/DMNExamples/FEEL List example.json +38 -0
- package/examples/calculation/DMNExamples/FEEL List operator.json +17 -0
- package/examples/calculation/DMNExamples/FEEL List with typeDef collection.json +37 -0
- package/examples/calculation/DMNExamples/FEEL Some or Every example.json +66 -0
- package/examples/calculation/DecisionTables/DT Datasource example.json +53 -0
- package/examples/calculation/DecisionTables/DT Date and Time examples.json +92 -0
- package/examples/calculation/DecisionTables/DT Expression example.json +32 -0
- package/examples/calculation/DecisionTables/DT Hit Policy examples.json +137 -0
- package/examples/calculation/DecisionTables/DT Loan Recommend model.json +82 -0
- package/examples/calculation/DecisionTables/DT Loan Strategy Model and Predictive CSV-XML.json +219 -0
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Datasource.json +286 -0
- package/examples/calculation/DecisionTables/DT Loan Strategy model and Predictive.json +204 -0
- package/examples/calculation/DecisionTables/DT Loan Strategy model by scratch.json +214 -0
- package/examples/calculation/DecisionTables/DT Output Order example.json +40 -0
- package/examples/calculation/DecisionTables/DT Unique example.json +39 -0
- package/examples/calculation/TypeDefinitions/TypeDefCF.json +65 -0
- package/examples/calculation/TypeDefinitions/TypeDefDT.json +58 -0
- package/examples/datamining/AffinityAnalysis/AssociationRules.json +52 -0
- package/examples/datamining/Classification/DecisionTree.json +91 -0
- package/examples/datamining/Classification/DiscriminantAnalysis.json +82 -0
- package/examples/datamining/Classification/Ensembles/Bagging.json +67 -0
- package/examples/datamining/Classification/Ensembles/Boosting.json +68 -0
- package/examples/datamining/Classification/Ensembles/RandomTrees.json +92 -0
- package/examples/datamining/Classification/FindBestModel.json +87 -0
- package/examples/datamining/Classification/LogisticRegression.json +83 -0
- package/examples/datamining/Classification/NaiveBayes.json +79 -0
- package/examples/datamining/Classification/NearestNeighbors.json +85 -0
- package/examples/datamining/Classification/NeuralNetwork.json +93 -0
- package/examples/datamining/Clustering/Hierarchical.json +55 -0
- package/examples/datamining/Clustering/KMeans.json +72 -0
- package/examples/datamining/DataSources/DelimitedFile.json +50 -0
- package/examples/datamining/DataSources/JSONFile.json +50 -0
- package/examples/datamining/DataSources/MSAccessDatabase.json +50 -0
- package/examples/datamining/DataSources/MSExcelTable.json +51 -0
- package/examples/datamining/DataSources/MSSQLDatabase.json +50 -0
- package/examples/datamining/DataSources/ODATATable.json +50 -0
- package/examples/datamining/DataSources/ODBCDatabase.json +50 -0
- package/examples/datamining/FeatureSelection/LinearWrapping.json +54 -0
- package/examples/datamining/FeatureSelection/LogisticWrapping.json +57 -0
- package/examples/datamining/FeatureSelection/Univariate.json +79 -0
- package/examples/datamining/Regression/DecisionTree.json +82 -0
- package/examples/datamining/Regression/Ensembles/Bagging.json +63 -0
- package/examples/datamining/Regression/Ensembles/Boosting.json +63 -0
- package/examples/datamining/Regression/Ensembles/RandomTrees.json +79 -0
- package/examples/datamining/Regression/FindBestModel.json +87 -0
- package/examples/datamining/Regression/LinearRegression.json +125 -0
- package/examples/datamining/Regression/NearestNeighbors.json +78 -0
- package/examples/datamining/Regression/NeuralNetwork.json +83 -0
- package/examples/datamining/Scoring/JSONClassifier.json +63 -0
- package/examples/datamining/Scoring/JSONClassifierNN.json +63 -0
- package/examples/datamining/Scoring/JSONClusterizer.json +38 -0
- package/examples/datamining/Scoring/JSONForecaster.json +50 -0
- package/examples/datamining/Scoring/JSONLinearRegression.json +57 -0
- package/examples/datamining/Scoring/JSONPCA.json +42 -0
- package/examples/datamining/Scoring/JSONRegressor.json +57 -0
- package/examples/datamining/Scoring/JSONTransformer.json +39 -0
- package/examples/datamining/Scoring/PMMLClassifier.json +43 -0
- package/examples/datamining/Scoring/PMMLForecaster.json +44 -0
- package/examples/datamining/Scoring/PMMLRegressor.json +39 -0
- package/examples/datamining/Scoring/PMMLTransformer.json +39 -0
- package/examples/datamining/Simulation/LinearRegressionSimulation.json +118 -0
- package/examples/datamining/Simulation/SyntheticDataGeneration.json +109 -0
- package/examples/datamining/Simulation/pmml-risk-scoring.json +63 -0
- package/examples/datamining/Summarizer/Summarization.json +55 -0
- package/examples/datamining/TextMining/LatentSemanticAnalysis.json +52 -0
- package/examples/datamining/TextMining/TfIdf-FileData.json +66 -0
- package/examples/datamining/TextMining/TfIdf-InlineData.json +56 -0
- package/examples/datamining/TimeSeries/AddHoltWinters.json +80 -0
- package/examples/datamining/TimeSeries/Arima.json +75 -0
- package/examples/datamining/TimeSeries/DoubleExponential.json +66 -0
- package/examples/datamining/TimeSeries/Exponential.json +65 -0
- package/examples/datamining/TimeSeries/LagAnalysis.json +49 -0
- package/examples/datamining/TimeSeries/MovingAverage.json +66 -0
- package/examples/datamining/TimeSeries/MulHoltWinters.json +66 -0
- package/examples/datamining/TimeSeries/NoTrendHoltWinters.json +66 -0
- package/examples/datamining/Transformation/Binning.json +70 -0
- package/examples/datamining/Transformation/CanonicalVariateAnalysis.json +48 -0
- package/examples/datamining/Transformation/CategoryReduction.json +52 -0
- package/examples/datamining/Transformation/Factorization.json +51 -0
- package/examples/datamining/Transformation/MissingDataHandling.json +84 -0
- package/examples/datamining/Transformation/OneHotEncoding-DataInline.json +55 -0
- package/examples/datamining/Transformation/OneHotEncoding-DatainFile.json +49 -0
- package/examples/datamining/Transformation/PartitionTimeSeries.json +49 -0
- package/examples/datamining/Transformation/Partitioning-DF.json +73 -0
- package/examples/datamining/Transformation/Partitioning.json +47 -0
- package/examples/datamining/Transformation/PartitioningWithOversampling-DF.json +66 -0
- package/examples/datamining/Transformation/PartitioningWithOversampling.json +45 -0
- package/examples/datamining/Transformation/PrincipalComponentsAnalysis.json +53 -0
- package/examples/datamining/Transformation/Rescaling.json +68 -0
- package/examples/datamining/Transformation/Sampling.json +44 -0
- package/examples/datamining/Transformation/StratifiedSampling.json +47 -0
- package/examples/flow/SQLServerTransform.json +261 -0
- package/examples/flow/dm-calc-pipeline.json +278 -0
- package/examples/flow/dm-pipeline-simulation.json +114 -0
- package/examples/flow/opt-sim-pipeline.json +160 -0
- package/examples/flow/sim-dm-pipeline.json +107 -0
- package/examples/flow/sim-sim-pipeline.json +137 -0
- package/examples/index.json +4679 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/DataFiltering/ListwithFilter.json +53 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ProductMix5.json +58 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/compoundWhileStatement.json +36 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/ifThenElseStatement.json +34 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/Loops/nestedLoop.json +26 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/ParallelArray.json +48 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/indexedArray.json +70 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/nonParallelArray.json +50 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/sumAggregateExample.json +338 -0
- package/examples/rason-features/Arrays_Loops_Tables/ArrayExamples/tsp.json +62 -0
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Iter_Sim_RASON.json +191 -0
- package/examples/rason-features/BoxIterators/Box_Fun_Loop_Sim_RASON.json +76 -0
- package/examples/rason-features/BoxIterators/Box_Fun_Sim_RASON.json +109 -0
- package/examples/rason-features/BoxIterators/Box_Iter_SIM_RASON.json +69 -0
- package/examples/rason-features/BoxIterators/Box_Iterator_Calc_Loop.json +183 -0
- package/examples/rason-features/BoxIterators/Box_Iterator_with_typeDef_partial.json +79 -0
- package/examples/rason-features/BoxLambdaExamples/BoxFunOptimize.json +155 -0
- package/examples/rason-features/BoxLambdaExamples/BoxFunSimulate.json +119 -0
- package/examples/rason-features/BoxLambdaExamples/LambdaFunOptimize.json +143 -0
- package/examples/rason-features/BoxLambdaExamples/LambdaFunSimulate.json +82 -0
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocation.json +69 -0
- package/examples/rason-features/ReferenceGuide/RGFirehouseLocationConic.json +114 -0
- package/examples/rason-features/ReferenceGuide/RGProductMixCsv1.json +108 -0
- package/examples/rason-features/ReferenceGuide/RGProductMixExcel11.json +117 -0
- package/examples/rason-features/ReferenceGuide/RGProductMixSQL11.json +108 -0
- package/examples/rason-features/UserGuide/UGAirlineHubCSV.json +67 -0
- package/examples/rason-features/UserGuide/UGForecast.json +51 -0
- package/examples/rason-features/UserGuide/UGProductMix1.json +49 -0
- package/examples/rason-features/UserGuide/UGProductMix2.json +49 -0
- package/examples/rason-features/UserGuide/UGProductMixTab1.json +68 -0
- package/examples/rason-features/UserGuide/UGProductMixTab2.json +77 -0
- package/examples/rason-features/UserGuide/UGProductMixTab3.json +67 -0
- package/examples/rason-features/UserGuide/UGProductMixTab4.json +71 -0
- package/examples/rason-features/UserGuide/UGProductMixTab5.json +68 -0
- package/examples/rason-features/UserGuide/UGProjectSelect0.json +92 -0
- package/examples/rason-features/UserGuide/UGProjectSelect1.json +75 -0
- package/examples/rason-features/UserGuide/UGProjectSelect2.json +75 -0
- package/examples/rason-features/UserGuide/UGYieldManagement1.json +62 -0
- package/examples/rason-features/UserGuide/UGYieldManagement2.json +62 -0
- package/examples/rason-features/UserGuide/UGYieldManagement3.json +64 -0
- package/out/index.cjs +361 -0
- package/package.json +76 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"modelName": "Box_Fun_Sim_Rason",
|
|
3
|
+
"modelDescription": "Box Function example that calculates a monthly loan payment for three unique loans.",
|
|
4
|
+
"modelType": "simulation",
|
|
5
|
+
"engineSettings": {
|
|
6
|
+
"numThreads": 1,
|
|
7
|
+
"randomGenerator": "Lecuyer",
|
|
8
|
+
"samplingMethod": "Latin"
|
|
9
|
+
},
|
|
10
|
+
"uncertainVariables": {
|
|
11
|
+
"comment": "Three uncertain variables that model the interest rate for each loan.",
|
|
12
|
+
"intRateCust1": {
|
|
13
|
+
"comment": "Models interest rate for 1st customer's loan.",
|
|
14
|
+
"formula": "PsiNormal(0.0375,0.1)"
|
|
15
|
+
},
|
|
16
|
+
"intRateCust2": {
|
|
17
|
+
"comment": "Models interest rate for 2nd customer's loan.",
|
|
18
|
+
"formula": "PsiNormal(0.0475,0.1)"
|
|
19
|
+
},
|
|
20
|
+
"intRateCust3": {
|
|
21
|
+
"comment": "Models interest rate for 3rd customer's loan.",
|
|
22
|
+
"formula": "PsiNormal(0.0575,0.1)"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"boxFunctions": {
|
|
26
|
+
"comment": "Includes 1 box function which calculates a customer's monthly loan payment based on the loan's principal (p), interest rate (r) and term (n). All input types must be numbers. Output type will also be a number.",
|
|
27
|
+
"funMonthlyPayment": {
|
|
28
|
+
"inputs": ["p", "r", "n"],
|
|
29
|
+
"inputTypes": ["number", "number", "number"],
|
|
30
|
+
"language": "Excel",
|
|
31
|
+
"resultType": "number",
|
|
32
|
+
"body": {
|
|
33
|
+
"payment": {
|
|
34
|
+
"formula": "(p * r / 12) / (1 - (1 + r / 12)^-n)"
|
|
35
|
+
},
|
|
36
|
+
"fee": {
|
|
37
|
+
"formula": "feePercent * payment"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"result": "payment + fee"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"data": {
|
|
44
|
+
"comment": "This section holds the loan data information, principal, term and fee percentage.",
|
|
45
|
+
"feePercent": {
|
|
46
|
+
"comment": "Fee percentage",
|
|
47
|
+
"value": 0.01
|
|
48
|
+
},
|
|
49
|
+
"loan1Princ": {
|
|
50
|
+
"comment": "Principal amount for loan 1.",
|
|
51
|
+
"value": 600000
|
|
52
|
+
},
|
|
53
|
+
"loan1Term": {
|
|
54
|
+
"comment": "Term length for loan 1.",
|
|
55
|
+
"value": 360
|
|
56
|
+
},
|
|
57
|
+
"loan2Princ": {
|
|
58
|
+
"comment": "Principal amount for loan 2.",
|
|
59
|
+
"value": 550000
|
|
60
|
+
},
|
|
61
|
+
"loan2Term": {
|
|
62
|
+
"comment": "Term length for loan 2.",
|
|
63
|
+
"value": 360
|
|
64
|
+
},
|
|
65
|
+
"loan3Princ": {
|
|
66
|
+
"comment": "Principal amount for loan 3.",
|
|
67
|
+
"value": 500000
|
|
68
|
+
},
|
|
69
|
+
"loan3Term": {
|
|
70
|
+
"comment": "Term length for loan 3.",
|
|
71
|
+
"value": 360
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"formulas": {
|
|
75
|
+
"cust1MonthlyPayment": {
|
|
76
|
+
"comment": "Passes the information for the 1st customer's loan to the funMonthlyPayment box function (above).",
|
|
77
|
+
"formula": "funMonthlyPayment(loan1Princ, intRateCust1, loan1Term) + PsiOutput()"
|
|
78
|
+
},
|
|
79
|
+
"cust2MonthlyPayment": {
|
|
80
|
+
"comment": "Passes the information for the 2nd customer's loan to the funMonthlyPayment box function (above).",
|
|
81
|
+
"formula": "funMonthlyPayment(loan2Princ, intRateCust2, loan2Term) + PsiOutput()"
|
|
82
|
+
},
|
|
83
|
+
"cust3MonthlyPayment": {
|
|
84
|
+
"comment": "Passes the information for the 3rd customer's loan to the funMonthlyPayment box function (above).",
|
|
85
|
+
"formula": "funMonthlyPayment(loan3Princ, intRateCust3, loan3Term) + PsiOutput()"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"uncertainFunctions": {
|
|
89
|
+
"comment": "This section holds the uncertain functions in the simulation model.",
|
|
90
|
+
"uncFunc1": {
|
|
91
|
+
"comment": "Transforms the cust1MonthlyPayment formula into an uncertain function, providing results from all 1000 simulation trials along with the mean of these trials.",
|
|
92
|
+
"formula": "cust1MonthlyPayment",
|
|
93
|
+
"trials": [],
|
|
94
|
+
"mean": []
|
|
95
|
+
},
|
|
96
|
+
"uncFunc2": {
|
|
97
|
+
"comment": "Transforms the cust1MonthlyPayment formula into an uncertain function, providing results from all 1000 simulation trials along with the mean of these trials.",
|
|
98
|
+
"formula": "cust2MonthlyPayment",
|
|
99
|
+
"trials": [],
|
|
100
|
+
"mean": []
|
|
101
|
+
},
|
|
102
|
+
"uncFunc3": {
|
|
103
|
+
"comment": "Transforms the cust1MonthlyPayment formula into an uncertain function, providing results from all 1000 simulation trials along with the mean of these trials.",
|
|
104
|
+
"formula": "cust3MonthlyPayment",
|
|
105
|
+
"trials": [],
|
|
106
|
+
"mean": []
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"modelName": "Box_Iter_Sim_Rason",
|
|
3
|
+
"modelDescription": "Box Iterator example that calculates a monthly loan payment for three unique loans.",
|
|
4
|
+
"modelType": "simulation",
|
|
5
|
+
"engineSettings": {
|
|
6
|
+
"numThreads": 1,
|
|
7
|
+
"randomGenerator": "Lecuyer",
|
|
8
|
+
"samplingMethod": "Latin"
|
|
9
|
+
},
|
|
10
|
+
"uncertainVariables": {
|
|
11
|
+
"comment": "Three uncertain variables that model the interest rate for each loan.",
|
|
12
|
+
"rate": {
|
|
13
|
+
"comment": "Each uncertain variable is an element of the rate array: rate[1] models interest rate of 1st loan, rate[2] models interest rate of 2nd loan and rate[3] models interest rate of 3rd loan.",
|
|
14
|
+
"dimensions": [3],
|
|
15
|
+
"value": ["PsiNormal(0.0375, 0.1)", "PsiNormal(0.0475, 0.1)", "PsiNormal(0.0575, 0.1)"]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"boxIterators": {
|
|
19
|
+
"comment": "Use the boxIterator section when entering box iterators. Includes 1 box function which calculates a customer's monthly loan payment based on the loan's principal (amount), interest rate (rate) and term (term). Output type will also be a number.",
|
|
20
|
+
"iterMonthlyPayment": {
|
|
21
|
+
"language": "Excel",
|
|
22
|
+
"returnType": "number",
|
|
23
|
+
"for": "i",
|
|
24
|
+
"in": "1..rows(amount)",
|
|
25
|
+
"return": "((amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])) * (1 + feePercent)"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"data": {
|
|
29
|
+
"comment": "This section holds the loan data: principals, terms and fee percentage.",
|
|
30
|
+
"feePercent": {
|
|
31
|
+
"comment": "Fee percentage",
|
|
32
|
+
"value": 0.01
|
|
33
|
+
},
|
|
34
|
+
"amount": {
|
|
35
|
+
"comment": "Principal amounts for each loan: amount[1] = principal for loan 1, amount[2] = principal for loan 2, amount[3] = principal for loan 3. ",
|
|
36
|
+
"value": [600000, 550000, 500000]
|
|
37
|
+
},
|
|
38
|
+
"term": {
|
|
39
|
+
"comment": "Terms for each loan: term[1] = term for loan 1, term[2] = term for loan 2, term[3] = term for loan 3. ",
|
|
40
|
+
"value": [360, 360, 360]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"formulas": {
|
|
44
|
+
"comment": "Calls the box iterator above with the data to compute monthly payments for each loan.",
|
|
45
|
+
"callingBoxIterator": {
|
|
46
|
+
"formula": "iterMonthlyPayment()"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"uncertainFunctions": {
|
|
50
|
+
"uncFunc7": {
|
|
51
|
+
"comment": "Uncertain function returns expected value, or mean, for the monthly payment of 1st loan.",
|
|
52
|
+
"formula": "callingBoxIterator[1]",
|
|
53
|
+
"trials": [],
|
|
54
|
+
"mean": []
|
|
55
|
+
},
|
|
56
|
+
"uncFunc8": {
|
|
57
|
+
"comment": "Uncertain function returns expected value, or mean, for the monthly payment of 2nd loan.",
|
|
58
|
+
"formula": "callingBoxIterator[2]",
|
|
59
|
+
"trials": [],
|
|
60
|
+
"mean": []
|
|
61
|
+
},
|
|
62
|
+
"uncFunc9": {
|
|
63
|
+
"comment": "Uncertain function returns expected value, or mean, for the monthly payment of 3rd loan.",
|
|
64
|
+
"formula": "callingBoxIterator[3]",
|
|
65
|
+
"trials": [],
|
|
66
|
+
"mean": []
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"modelName": "Calc_Box_Fcn_and_Box_Iters",
|
|
3
|
+
"modelDescription": "This example includes 1 box function and 4 box iterators. Each one calculates the monthly payments of 3 loans.",
|
|
4
|
+
"modelType": "calculation",
|
|
5
|
+
"boxFunctions": {
|
|
6
|
+
"comment": "Box Function that calculates the monthly payment of 3 loans. This box function accepts 3 inputs: p - principal, r - interest rate and n - loan term length. All inputs must be numbers (see inputTypes). The returned result will also be a number (see resultType). See loan1Pmt, loan2Pmt and loan3Pmt, under formulas (below), to see how to pass the arguments to the function.",
|
|
7
|
+
"funMonthlyPayment": {
|
|
8
|
+
"inputs": [ "p", "r", "n" ],
|
|
9
|
+
"inputTypes": [ "number", "number", "number" ],
|
|
10
|
+
"language": "Excel",
|
|
11
|
+
"resultType": "number",
|
|
12
|
+
"body": {
|
|
13
|
+
"payment": {
|
|
14
|
+
"formula": "(p * r / 12) / (1 - (1 + r / 12)^-n)"
|
|
15
|
+
},
|
|
16
|
+
"fee": {
|
|
17
|
+
"formula": "feePercent * payment"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"result": "payment + fee"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"boxIterators": {
|
|
24
|
+
"comment": "There are 4 box iterators: iterMonthlyPayment (example of a box iterator of type FOR, using language EXCEL), iterPaymentSome (example of a box iterator of type SOME) iterPaymentEvery (example of a box iterator of type EVERY) and iterPaymentFEEL (example of a box iterator using FEEL Language)",
|
|
25
|
+
"iterMonthlyPayment": {
|
|
26
|
+
"comment": "This box iterator uses language Excel and type FOR to calculate the monthly payment for 3 loans. A FOR type of box iterator executes a traditional For Loop. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
27
|
+
"language": "Excel",
|
|
28
|
+
"returnType": "",
|
|
29
|
+
"for": "i",
|
|
30
|
+
"in": "1..rows(amount)",
|
|
31
|
+
"body": {
|
|
32
|
+
"payment": {
|
|
33
|
+
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
34
|
+
},
|
|
35
|
+
"fee": {
|
|
36
|
+
"formula": "feePercent * payment"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"return": "payment + fee"
|
|
40
|
+
},
|
|
41
|
+
"iterPaymentSome": {
|
|
42
|
+
"comment": "This box iterator uses language Excel and type SOME. The SOME type of box iterator, verifies if at least one computed element of the loop is True. If so, the box iterator will return True. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
43
|
+
"language": "Excel",
|
|
44
|
+
"returnType": "",
|
|
45
|
+
"some": "i",
|
|
46
|
+
"in": "1..rows(amount)",
|
|
47
|
+
"body": {
|
|
48
|
+
"payment": {
|
|
49
|
+
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
50
|
+
},
|
|
51
|
+
"fee": {
|
|
52
|
+
"formula": "feePercent * payment"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"return": "(payment + fee) > 2900"
|
|
56
|
+
},
|
|
57
|
+
"iterPaymentEvery": {
|
|
58
|
+
"comment": "This box iterator uses language Excel and EVERY. The EVERY type of box iterator, verifies if at all computed elements of the loop are True. If so, the box iterator will return True. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
59
|
+
"language": "Excel",
|
|
60
|
+
"returnType": "",
|
|
61
|
+
"every": "i",
|
|
62
|
+
"in": "1..rows(amount)",
|
|
63
|
+
"body": {
|
|
64
|
+
"payment": {
|
|
65
|
+
"formula": "(amount[i] * rate[i] /12) / (1 - (1 + rate[i]/12)^-term[i])"
|
|
66
|
+
},
|
|
67
|
+
"fee": {
|
|
68
|
+
"formula": "feePercent * payment"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"return": "(payment + fee) > 2900"
|
|
72
|
+
},
|
|
73
|
+
"iterPaymentFeel": {
|
|
74
|
+
"comment": "This box iterator uses language FEEL and type FOR. The FOR type of box iterator executes a traditional FOR loop. This iterator accepts three inputs, amount[i], rate[i] and term[i] and returns the monthly payment plus a small fee.",
|
|
75
|
+
"language": "Feel",
|
|
76
|
+
"returnType": "",
|
|
77
|
+
"for": "rate",
|
|
78
|
+
"in": "[0.0375, 0.0475, 0.0575]",
|
|
79
|
+
"body": {
|
|
80
|
+
"payment": {
|
|
81
|
+
"formula": "(600000 * rate /12) / (1 - (1 + rate/12)**-360)"
|
|
82
|
+
},
|
|
83
|
+
"fee": {
|
|
84
|
+
"formula": "0.01 * payment"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"return": "payment + fee"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"data": {
|
|
91
|
+
"comment": "Holds all constant data arrays.",
|
|
92
|
+
"feePercent": {
|
|
93
|
+
"comment": "fee percentage",
|
|
94
|
+
"value": 0.01
|
|
95
|
+
},
|
|
96
|
+
"loan1Princ": {
|
|
97
|
+
"comment": "Loan 1 principal",
|
|
98
|
+
"value": 600000
|
|
99
|
+
},
|
|
100
|
+
"loan1Rate": {
|
|
101
|
+
"comment": "Loan 1 interest rate",
|
|
102
|
+
"value": 0.0375
|
|
103
|
+
},
|
|
104
|
+
"loan1Term": {
|
|
105
|
+
"comment": "Loan 1 term",
|
|
106
|
+
"value": 360
|
|
107
|
+
},
|
|
108
|
+
"loan2Princ": {
|
|
109
|
+
"comment": "Loan 2 principal",
|
|
110
|
+
"value": 550000
|
|
111
|
+
},
|
|
112
|
+
"loan2Rate": {
|
|
113
|
+
"comment": "Loan 2 interest rate",
|
|
114
|
+
"value": 0.0475
|
|
115
|
+
},
|
|
116
|
+
"loan2Term": {
|
|
117
|
+
"comment": "Loan 2 term",
|
|
118
|
+
"value": 360
|
|
119
|
+
},
|
|
120
|
+
"loan3Princ": {
|
|
121
|
+
"comment": "Loan 3 principal",
|
|
122
|
+
"value": 500000
|
|
123
|
+
},
|
|
124
|
+
"loan3Rate": {
|
|
125
|
+
"comment": "Loan 3 interest rate",
|
|
126
|
+
"value": 0.0575
|
|
127
|
+
},
|
|
128
|
+
"loan3Term": {
|
|
129
|
+
"comment": "Loan 3 term",
|
|
130
|
+
"value": 360
|
|
131
|
+
},
|
|
132
|
+
"amount": {
|
|
133
|
+
"comment": "Array containing principal amounts for all three loans. Loan 1 = amount[1] = 600000",
|
|
134
|
+
"value": [ 600000, 550000, 500000 ]
|
|
135
|
+
},
|
|
136
|
+
"rate": {
|
|
137
|
+
"comment": "Array containing interest rate amounts for all three loans. Interest rate for loan 1 = rate[1] = 0.0375",
|
|
138
|
+
"value": [ 0.0375, 0.0475, 0.0575 ]
|
|
139
|
+
},
|
|
140
|
+
"term": {
|
|
141
|
+
"comment": "Array containing term lengths for all three loans. Loan 1 term = term[1] = 360",
|
|
142
|
+
"value": [ 360, 360, 360 ]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"formulas": {
|
|
146
|
+
"comment": "Contains all formulas calling the box function and box iterators.",
|
|
147
|
+
"loan1Pmt": {
|
|
148
|
+
"comment": "Calls the funMonthlyPayment box function with three arguments, loan1Princ, loan1Rate and loan1Term, to calculate the monthly payment for loan 1.",
|
|
149
|
+
"formula": "funMonthlyPayment(loan1Princ, loan1Rate, loan1Term)",
|
|
150
|
+
"finalValue": []
|
|
151
|
+
},
|
|
152
|
+
"loan2Pmt": {
|
|
153
|
+
"comment": "Calls the funMonthlyPayment box function with three arguments, loan2Princ, loan2Rate and loan2Term, to calculate the monthly payment for loan 2.",
|
|
154
|
+
"formula": "funMonthlyPayment(loan2Princ, loan2Rate, loan2Term)",
|
|
155
|
+
"finalValue": []
|
|
156
|
+
},
|
|
157
|
+
"loan3Pmt": {
|
|
158
|
+
"comment": "Calls the funMonthlyPayment box function with three arguments, loan3Princ, loan3Rate and loan3Term, to calculate the monthly payment for loan 3.",
|
|
159
|
+
"formula": "funMonthlyPayment(loan3Princ, loan3Rate, loan3Term)",
|
|
160
|
+
"finalValue": []
|
|
161
|
+
},
|
|
162
|
+
"monthlyLoanPMT": {
|
|
163
|
+
"comment": "Calls the iterMonthlyPayment box iterator.",
|
|
164
|
+
"formula": "iterMonthlyPayment()",
|
|
165
|
+
"finalValue": []
|
|
166
|
+
},
|
|
167
|
+
"boxIterTypeSome": {
|
|
168
|
+
"comment": "Calls the iterPaymentSome box iterator.",
|
|
169
|
+
"formula": "iterPaymentSome()",
|
|
170
|
+
"finalValue": []
|
|
171
|
+
},
|
|
172
|
+
"boxIterTypeEvery": {
|
|
173
|
+
"comment": "Calls the iterPaymentEvery box iterator.",
|
|
174
|
+
"formula": "iterPaymentEvery()",
|
|
175
|
+
"finalValue": []
|
|
176
|
+
},
|
|
177
|
+
"boxIterLangFEEL": {
|
|
178
|
+
"comment": "Calls the iterPaymentFeel box iterator.",
|
|
179
|
+
"formula": "iterPaymentFeel()",
|
|
180
|
+
"finalValue": []
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"modelName": "BoxIter_FEELwithTypeDef",
|
|
3
|
+
"modelDescription": "Example of box iterator using FEEL language",
|
|
4
|
+
"modelType": "calculation",
|
|
5
|
+
|
|
6
|
+
"typeDefs": {
|
|
7
|
+
|
|
8
|
+
"tLoan": {
|
|
9
|
+
"components": {
|
|
10
|
+
"principal": { "type": "number", "allowedValues": [">0"] },
|
|
11
|
+
"rate": { "type": "number", "allowedValues": ["[0..1]"] },
|
|
12
|
+
"termMonths": { "type": "number", "allowedValues": [">0"] }
|
|
13
|
+
},
|
|
14
|
+
"language": "Excel"
|
|
15
|
+
},
|
|
16
|
+
"tLoanList": {
|
|
17
|
+
"language": "Excel", "typeRef": "tLoan", "isCollection": true
|
|
18
|
+
},
|
|
19
|
+
"tPayment": {
|
|
20
|
+
"language": "Excel",
|
|
21
|
+
"components": ["payment","fee","total"], "types": ["number","number","number"]
|
|
22
|
+
},
|
|
23
|
+
"tPaymentList": {
|
|
24
|
+
"language": "Excel", "typeRef": "tPayment", "isCollection": true
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
"boxFunctions": {
|
|
29
|
+
|
|
30
|
+
"funPMT": {
|
|
31
|
+
"inputs": ["p", "r", "n"], "inputTypes": ["number", "number", "number"],
|
|
32
|
+
|
|
33
|
+
"language": "Excel", "returnType": "tPayment",
|
|
34
|
+
|
|
35
|
+
"body": {
|
|
36
|
+
"payment": { "formula": "(p*r/12) / (1 - (1 + r/12)^-n)" },
|
|
37
|
+
"fee": { "formula": "0.01 * payment" },
|
|
38
|
+
"total": { "formula": "payment + fee" }
|
|
39
|
+
},
|
|
40
|
+
"return": "0"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
"boxIterators": {
|
|
45
|
+
|
|
46
|
+
"forPMT": {
|
|
47
|
+
"language": "Excel", "returnType": "tPayment",
|
|
48
|
+
|
|
49
|
+
"for": "loan", "in": "loans",
|
|
50
|
+
|
|
51
|
+
"body": {
|
|
52
|
+
"payment": { "formula": "(loan.principal*loan.rate/12) / (1 - (1 + loan.rate/12)^-loan.termMonths)" },
|
|
53
|
+
"fee": { "formula": "0.01 * payment" },
|
|
54
|
+
"total": { "formula": "payment + fee" }
|
|
55
|
+
},
|
|
56
|
+
"return": "total"
|
|
57
|
+
},
|
|
58
|
+
"forFac": {
|
|
59
|
+
"language": "Feel", "returnType": "number",
|
|
60
|
+
|
|
61
|
+
"for": "i", "in": "0..N",
|
|
62
|
+
|
|
63
|
+
"return": "if i = 0 then 1 else i * partial[-1]"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
"data": {
|
|
68
|
+
"N": { "value": 4, "binding": "get" },
|
|
69
|
+
|
|
70
|
+
"loans": { "type": "tLoanList", "value": [[600000, 0.0375, 360],[100000, 0.0375, 360]], "binding": "get" }
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
"formulas": {
|
|
74
|
+
|
|
75
|
+
"MonthlyPayment": { "feelFormula": "forPMT()", "finalValue": [] },
|
|
76
|
+
|
|
77
|
+
"Factorials": { "feelFormula": "forFac()", "finalValue": [] }
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"comment": "This model has been generated by Psi from an Excel model in the workbook Book7",
|
|
3
|
+
"modelName": "BoxFunOptimize",
|
|
4
|
+
"modelDescription": "This Box Function calculates the distance function based on 4 inputs x1, x2 and y1, y2. A Box function is a custom, reusable function. This example solves an optimization model using the funDistance box function to calculate the distance between a proposed airline hub and six regional airports.",
|
|
5
|
+
"modelType": "optimization",
|
|
6
|
+
"engineSettings": {
|
|
7
|
+
"comment": "The GRG Nonlinear engine is selected to solve the model.",
|
|
8
|
+
"engine": "GRG Nonlinear",
|
|
9
|
+
"scaling": -1
|
|
10
|
+
},
|
|
11
|
+
"boxFunctions": {
|
|
12
|
+
"funDistance": {
|
|
13
|
+
"comment": "The 'funDistance' box function calculates the distance between two points.",
|
|
14
|
+
"inputs": [ "Xone", "Xtwo", "Yone", "Ytwo" ],
|
|
15
|
+
"inputTypes": [ "number", "number", "number", "number" ],
|
|
16
|
+
"language": "EXCEL",
|
|
17
|
+
"resultType": "number",
|
|
18
|
+
"body": {
|
|
19
|
+
"formula1": {
|
|
20
|
+
"formula": "(Xtwo-Xone)^2"
|
|
21
|
+
},
|
|
22
|
+
"formula2": {
|
|
23
|
+
"formula": "(Ytwo-Yone)^2"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"result": "SQRT(Formula1+Formula2)"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"variables": {
|
|
30
|
+
"comment": "There are 3 decision variables in the model. E13 and F13 are the x and y coordinates of the proposed airline hub. G20 is an artificial variable. The objective function minimizes the G20 variable which has a squashing effect on the distance calculations. In the final solution, G20 will equal the maximum value of the six distance calculations.",
|
|
31
|
+
"e13:f13": {
|
|
32
|
+
"comment": "Two variables, x and y, the coordinates of the proprosed hub.",
|
|
33
|
+
"value": 1,
|
|
34
|
+
"finalValue": []
|
|
35
|
+
},
|
|
36
|
+
"g20": {
|
|
37
|
+
"comment": "Artifical variable that will be mimimized in the objective.",
|
|
38
|
+
"value": 1,
|
|
39
|
+
"finalValue": []
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"data": {
|
|
43
|
+
"comment": "x and y coordinates for each regional airport; E14 and F14 1st regional airport coordinates, E15 and F15 2nd regional airport coordinates, etc.",
|
|
44
|
+
"e14": {
|
|
45
|
+
"comment": "x coordinate for 1st regional airport",
|
|
46
|
+
"value": 6
|
|
47
|
+
},
|
|
48
|
+
"f14": {
|
|
49
|
+
"comment": "y coordinate for 1st regional airport",
|
|
50
|
+
"value": 2
|
|
51
|
+
},
|
|
52
|
+
"e15": {
|
|
53
|
+
"comment": "x coordinate for 2nd regional airport",
|
|
54
|
+
"value": 5
|
|
55
|
+
},
|
|
56
|
+
"f15": {
|
|
57
|
+
"comment": "y coordinate for 2nd regional airport",
|
|
58
|
+
"value": 5
|
|
59
|
+
},
|
|
60
|
+
"e16": {
|
|
61
|
+
"comment": "x coordinate for 3rd regional airport",
|
|
62
|
+
"value": 4
|
|
63
|
+
},
|
|
64
|
+
"f16": {
|
|
65
|
+
"comment": "y coordinate for 3rd regional airport",
|
|
66
|
+
"value": 8
|
|
67
|
+
},
|
|
68
|
+
"e17": {
|
|
69
|
+
"comment": "x coordinate for 4th regional airport",
|
|
70
|
+
"value": 3
|
|
71
|
+
},
|
|
72
|
+
"f17": {
|
|
73
|
+
"comment": "y coordinate for 4th regional airport",
|
|
74
|
+
"value": 4
|
|
75
|
+
},
|
|
76
|
+
"e18": {
|
|
77
|
+
"comment": "x coordinate for 5th regional airport",
|
|
78
|
+
"value": 3
|
|
79
|
+
},
|
|
80
|
+
"f18": {
|
|
81
|
+
"comment": "y coordinate for 5th regional airport",
|
|
82
|
+
"value": 3
|
|
83
|
+
},
|
|
84
|
+
"e19": {
|
|
85
|
+
"comment": "x coordinate for 6th regional airport",
|
|
86
|
+
"value": 1
|
|
87
|
+
},
|
|
88
|
+
"f19": {
|
|
89
|
+
"comment": "y coordinate for 6th regional airport",
|
|
90
|
+
"value": 2
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"formulas": {
|
|
94
|
+
"comment": "Calls the box function, funDistance, to calculate the distance between the proposed hub and of the 6 regional airports.",
|
|
95
|
+
"g14": {
|
|
96
|
+
"comment": "Calculates distance between proposed hub location and the 1st regional airport.",
|
|
97
|
+
"formula": "funDistance($E$13,E14,$F$13,F14)"
|
|
98
|
+
},
|
|
99
|
+
"g15": {
|
|
100
|
+
"comment": "Calculates distance between proposed hub location and the 2nd regional airport.",
|
|
101
|
+
"formula": "funDistance($E$13,E15,$F$13,F15)"
|
|
102
|
+
},
|
|
103
|
+
"g16": {
|
|
104
|
+
"comment": "Calculates distance between proposed hub location and the 3rd regional airport.",
|
|
105
|
+
"formula": "funDistance($E$13,E16,$F$13,F16)"
|
|
106
|
+
},
|
|
107
|
+
"g17": {
|
|
108
|
+
"comment": "Calculates distance between proposed hub location and the 4th regional airport.",
|
|
109
|
+
"formula": "funDistance($E$13,E17,$F$13,F17)"
|
|
110
|
+
},
|
|
111
|
+
"g18": {
|
|
112
|
+
"comment": "Calculates distance between proposed hub location and the 5th regional airport.",
|
|
113
|
+
"formula": "funDistance($E$13,E18,$F$13,F18)"
|
|
114
|
+
},
|
|
115
|
+
"g19": {
|
|
116
|
+
"comment": "Calculates distance between proposed hub location and the 6th regional airport.",
|
|
117
|
+
"formula": "funDistance($E$13,E19,$F$13,F19)"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"constraints": {
|
|
121
|
+
"comment": "Six constraints of the form, SQRT((y2-y1)+(x2-x1)) - G20 <= 0.",
|
|
122
|
+
"g14_": {
|
|
123
|
+
"formula": "g14 - g20",
|
|
124
|
+
"upper": 0
|
|
125
|
+
},
|
|
126
|
+
"g15_": {
|
|
127
|
+
"formula": "g15 - g20",
|
|
128
|
+
"upper": 0
|
|
129
|
+
},
|
|
130
|
+
"g16_": {
|
|
131
|
+
"formula": "g16 - g20",
|
|
132
|
+
"upper": 0
|
|
133
|
+
},
|
|
134
|
+
"g17_": {
|
|
135
|
+
"formula": "g17 - g20",
|
|
136
|
+
"upper": 0
|
|
137
|
+
},
|
|
138
|
+
"g18_": {
|
|
139
|
+
"formula": "g18 - g20",
|
|
140
|
+
"upper": 0
|
|
141
|
+
},
|
|
142
|
+
"g19_": {
|
|
143
|
+
"formula": "g19 - g20",
|
|
144
|
+
"upper": 0
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"objective": {
|
|
148
|
+
"comment": "Minimizing the artificial variable, G20. In the final solution, the value of the G20 variable will equal the maximim value of the six distance calculations, in this example, the box function values.",
|
|
149
|
+
"objective": {
|
|
150
|
+
"formula": "g20",
|
|
151
|
+
"type": "min",
|
|
152
|
+
"finalValue": []
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|