├── programs ├── SOGA │ ├── Debug.soga │ ├── Optimization │ │ ├── Optim1.param │ │ ├── Optim7.soga │ │ ├── Optim1.soga │ │ ├── Optim2.soga │ │ ├── CaseStudies │ │ │ ├── shuttle.soga │ │ │ ├── Params │ │ │ │ └── bayesianLR.param │ │ │ ├── gm_diff_eq.soga │ │ │ ├── LRC2.soga │ │ │ ├── linear_regression.soga │ │ │ ├── LRC.soga │ │ │ ├── LotkaVolterra.soga │ │ │ ├── bayesian_linear_regression.soga │ │ │ ├── bayesian_linear_regression2.soga │ │ │ ├── BayesianLotkaVolterra.soga │ │ │ ├── bnn_one_x.soga │ │ │ ├── PID.soga │ │ │ ├── LRC_windup.soga │ │ │ ├── Thermostat.soga │ │ │ ├── ThermostatBayesian.soga │ │ │ ├── bnn3_mean_only.soga │ │ │ ├── .ipynb_checkpoints │ │ │ │ ├── Thermostat-checkpoint.soga │ │ │ │ ├── PID-checkpoint.soga │ │ │ │ └── Gearbox-checkpoint.soga │ │ │ ├── bnn3_smooth.soga │ │ │ ├── bnn3.soga │ │ │ ├── bouncing_ball.soga │ │ │ └── Gearbox.soga │ │ ├── Optim3.soga │ │ ├── Optim4.soga │ │ ├── .ipynb_checkpoints │ │ │ ├── Optim7-checkpoint.soga │ │ │ ├── Optim1-checkpoint.soga │ │ │ ├── Optim2-checkpoint.soga │ │ │ ├── Optim3-checkpoint.soga │ │ │ ├── Optim4-checkpoint.soga │ │ │ ├── Optim5-checkpoint.soga │ │ │ └── Optim6-checkpoint.soga │ │ ├── Optim5.soga │ │ ├── Optim6.soga │ │ └── Optim8.soga │ ├── .ipynb_checkpoints │ │ ├── Debug-checkpoint.soga │ │ ├── Toy-checkpoint.soga │ │ ├── Optim3-checkpoint.soga │ │ ├── BernoulliTorch-checkpoint.soga │ │ ├── Bernoulli-checkpoint.soga │ │ ├── BernoulliPrune-checkpoint.soga │ │ ├── ClinicalTrial-checkpoint.soga │ │ └── Burglar-checkpoint.soga │ ├── Optim3.soga │ ├── .DS_Store │ ├── SensitivityExp │ │ ├── .DS_Store │ │ ├── #branches │ │ │ ├── .DS_Store │ │ │ ├── observedVariables.csv │ │ │ ├── continuous │ │ │ │ ├── RandomWalk │ │ │ │ │ ├── RandomWalk1.soga │ │ │ │ │ ├── RandomWalk3.soga │ │ │ │ │ ├── RandomWalk5.soga │ │ │ │ │ ├── RandomWalk7.soga │ │ │ │ │ ├── RandomWalk9.soga │ │ │ │ │ ├── RandomWalk11.soga │ │ │ │ │ ├── RandomWalk13.soga │ │ │ │ │ └── RandomWalk15.soga │ │ │ │ ├── Bernoulli │ │ │ │ │ ├── Bernoulli1.soga │ │ │ │ │ ├── Bernoulli11.soga │ │ │ │ │ ├── Bernoulli13.soga │ │ │ │ │ ├── Bernoulli15.soga │ │ │ │ │ ├── Bernoulli3.soga │ │ │ │ │ ├── Bernoulli5.soga │ │ │ │ │ ├── Bernoulli7.soga │ │ │ │ │ └── Bernoulli9.soga │ │ │ │ ├── CoinBias │ │ │ │ │ ├── CoinBias1.soga │ │ │ │ │ ├── CoinBias11.soga │ │ │ │ │ ├── CoinBias13.soga │ │ │ │ │ ├── CoinBias15.soga │ │ │ │ │ ├── CoinBias3.soga │ │ │ │ │ ├── CoinBias5.soga │ │ │ │ │ ├── CoinBias7.soga │ │ │ │ │ └── CoinBias9.soga │ │ │ │ ├── SurveyUnbias │ │ │ │ │ ├── SurveyUnbias1.soga │ │ │ │ │ ├── SurveyUnbias11.soga │ │ │ │ │ ├── SurveyUnbias13.soga │ │ │ │ │ ├── SurveyUnbias15.soga │ │ │ │ │ ├── SurveyUnbias3.soga │ │ │ │ │ ├── SurveyUnbias5.soga │ │ │ │ │ ├── SurveyUnbias7.soga │ │ │ │ │ └── SurveyUnbias9.soga │ │ │ │ └── ClinicalTrial │ │ │ │ │ ├── ClinicalTrial11.soga │ │ │ │ │ ├── ClinicalTrial13.soga │ │ │ │ │ ├── ClinicalTrial15.soga │ │ │ │ │ ├── ClinicalTrial3.soga │ │ │ │ │ ├── ClinicalTrial5.soga │ │ │ │ │ ├── ClinicalTrial7.soga │ │ │ │ │ ├── ClinicalTrial9.soga │ │ │ │ │ └── ClinicalTrial1.soga │ │ │ └── discrete │ │ │ │ └── RandomWalk │ │ │ │ ├── RandomWalk1.soga │ │ │ │ ├── RandomWalk11.soga │ │ │ │ ├── RandomWalk13.soga │ │ │ │ ├── RandomWalk15.soga │ │ │ │ ├── RandomWalk3.soga │ │ │ │ ├── RandomWalk5.soga │ │ │ │ ├── RandomWalk7.soga │ │ │ │ └── RandomWalk9.soga │ │ ├── Pruning │ │ │ ├── .DS_Store │ │ │ ├── observerdVariables.txt │ │ │ ├── K=C │ │ │ │ ├── BernoulliPrune.soga │ │ │ │ ├── CoinBiasPrune.soga │ │ │ │ ├── SurveyUnbiasPrune.soga │ │ │ │ ├── ClinicalTrialPrune.soga │ │ │ │ ├── ClickGraphPrune.soga │ │ │ │ └── RadarQueryPrune.soga │ │ │ ├── K=0.00725C │ │ │ │ ├── BernoulliPrune.soga │ │ │ │ ├── CoinBiasPrune.soga │ │ │ │ ├── SurveyUnbiasPrune.soga │ │ │ │ ├── ClinicalTrialPrune.soga │ │ │ │ ├── ClickGraphPrune.soga │ │ │ │ └── RadarQueryPrune.soga │ │ │ ├── K=0.003625C │ │ │ │ ├── BernoulliPrune.soga │ │ │ │ ├── CoinBiasPrune.soga │ │ │ │ ├── SurveyUnbiasPrune.soga │ │ │ │ ├── ClinicalTrialPrune.soga │ │ │ │ ├── ClickGraphPrune.soga │ │ │ │ └── RadarQueryPrune.soga │ │ │ └── K=0.015C │ │ │ │ ├── BernoulliPrune.soga │ │ │ │ ├── CoinBiasPrune.soga │ │ │ │ ├── SurveyUnbiasPrune.soga │ │ │ │ ├── ClinicalTrialPrune.soga │ │ │ │ ├── ClickGraphPrune.soga │ │ │ │ └── RadarQueryPrune.soga │ │ ├── #proc │ │ │ └── continuous │ │ │ │ ├── RandomWalk │ │ │ │ └── RandomWalk15.soga │ │ │ │ ├── Bernoulli │ │ │ │ └── Bernoulli15.soga │ │ │ │ ├── CoinBias │ │ │ │ └── CoinBias15.soga │ │ │ │ ├── SurveyUnbias │ │ │ │ └── SurveyUnbias15.soga │ │ │ │ └── ClinicalTrial │ │ │ │ └── ClinicalTrial15.soga │ │ ├── #components │ │ │ ├── CoinBias1.soga │ │ │ ├── CoinBias2.soga │ │ │ ├── CoinBias4.soga │ │ │ ├── CoinBias6.soga │ │ │ ├── CoinBias.tpl │ │ │ ├── SurveyUnbias1.soga │ │ │ ├── SurveyUnbias2.soga │ │ │ ├── SurveyUnbias4.soga │ │ │ ├── SurveyUnbias6.soga │ │ │ └── SurveyUnbias.tpl │ │ └── #variables │ │ │ ├── trueskills │ │ │ ├── TrueSkills3.soga │ │ │ ├── TrueSkills4.soga │ │ │ ├── TrueSkills5.soga │ │ │ ├── TrueSkills6.soga │ │ │ ├── TrueSkills7.soga │ │ │ ├── TrueSkills8.soga │ │ │ ├── TrueSkills9.soga │ │ │ └── TrueSkills10.soga │ │ │ └── timeseries │ │ │ ├── TimeSeries15.soga │ │ │ ├── TimeSeries25.soga │ │ │ ├── TimeSeries5.soga │ │ │ └── TimeSeries6.soga │ ├── Toy.soga │ ├── Privug │ │ └── rasmus │ │ │ ├── Scalability │ │ │ └── SOGA │ │ │ │ ├── scale │ │ │ │ ├── eval_soga_scale_800.soga │ │ │ │ ├── eval_soga_scale_10000.soga │ │ │ │ ├── eval_soga_scale_1100.soga │ │ │ │ ├── eval_soga_scale_1200.soga │ │ │ │ ├── eval_soga_scale_1700.soga │ │ │ │ ├── eval_soga_scale_1800.soga │ │ │ │ ├── eval_soga_scale_1900.soga │ │ │ │ ├── eval_soga_scale_2000.soga │ │ │ │ ├── eval_soga_scale_3000.soga │ │ │ │ ├── eval_soga_scale_900.soga │ │ │ │ ├── eval_soga_scale_1000.soga │ │ │ │ ├── eval_soga_scale_1300.soga │ │ │ │ ├── eval_soga_scale_1600.soga │ │ │ │ ├── eval_soga_scale_5000.soga │ │ │ │ ├── eval_soga_scale_1400.soga │ │ │ │ └── eval_soga_scale_1500.soga │ │ │ │ ├── cond │ │ │ │ ├── eval_soga_scale_800.soga │ │ │ │ ├── eval_soga_scale_900.soga │ │ │ │ ├── eval_soga_scale_1100.soga │ │ │ │ ├── eval_soga_scale_1200.soga │ │ │ │ ├── eval_soga_scale_1300.soga │ │ │ │ ├── eval_soga_scale_1700.soga │ │ │ │ ├── eval_soga_scale_1800.soga │ │ │ │ ├── eval_soga_scale_1900.soga │ │ │ │ ├── eval_soga_scale_2000.soga │ │ │ │ ├── eval_soga_scale_4000.soga │ │ │ │ ├── eval_soga_scale_6000.soga │ │ │ │ ├── eval_soga_scale_1000.soga │ │ │ │ ├── eval_soga_scale_1400.soga │ │ │ │ ├── eval_soga_scale_1500.soga │ │ │ │ └── eval_soga_scale_1600.soga │ │ │ │ ├── varscond │ │ │ │ ├── eval_soga_scale_500.soga │ │ │ │ ├── eval_soga_scale_4000.soga │ │ │ │ ├── eval_soga_scale_100.soga │ │ │ │ ├── eval_soga_scale_1000.soga │ │ │ │ ├── eval_soga_scale_2000.soga │ │ │ │ ├── eval_soga_scale_250.soga │ │ │ │ └── eval_soga_scale_6000.soga │ │ │ │ └── vars │ │ │ │ ├── eval_soga_scale_500.soga │ │ │ │ ├── eval_soga_scale_1000.soga │ │ │ │ ├── eval_soga_scale_2000.soga │ │ │ │ ├── eval_soga_scale_250.soga │ │ │ │ ├── eval_soga_scale_4000.soga │ │ │ │ ├── eval_soga_scale_6000.soga │ │ │ │ └── eval_soga_scale_100.soga │ │ │ ├── Laplace │ │ │ ├── Laplace4.soga │ │ │ ├── Laplace1.soga │ │ │ ├── Laplace3.soga │ │ │ └── Laplace2.soga │ │ │ ├── experiment1.soga │ │ │ ├── Case1 │ │ │ ├── experiment1.soga │ │ │ ├── experiment2.soga │ │ │ └── experiment3.soga │ │ │ ├── Case2 │ │ │ ├── experiment1.soga │ │ │ ├── experiment2.soga │ │ │ └── experiment3.soga │ │ │ ├── Case3 │ │ │ ├── experiment4.soga │ │ │ ├── experiment1.soga │ │ │ └── experiment5.soga │ │ │ ├── experiment4.soga │ │ │ ├── Case4 │ │ │ ├── experiment1b.soga │ │ │ ├── experiment1a.soga │ │ │ ├── experiment1c.soga │ │ │ └── high_epsilon_1.soga │ │ │ ├── experiment3.soga │ │ │ ├── experiment5.soga │ │ │ └── experiment2.soga │ ├── Causality │ │ ├── SCM_1_int.soga │ │ └── SCM_1.soga │ ├── RandomWalkUnif10.soga │ ├── ThreeCoins.soga │ ├── RandomWalkDisc10.soga │ ├── RandomWalkGauss10.soga │ ├── BernoulliTorch.soga │ ├── MurderMistery.soga │ ├── TestProgram │ │ └── test.soga │ ├── Bernoulli.soga │ ├── CoinBias.soga │ ├── Scale.soga │ ├── TwoCoins.soga │ ├── BernoulliPrune.soga │ ├── Scalability │ │ ├── Thermostat │ │ │ ├── Thermostat2.soga │ │ │ ├── Thermostat4.soga │ │ │ ├── Thermostat6.soga │ │ │ ├── Thermostat8.soga │ │ │ ├── Thermostat10.soga │ │ │ ├── Thermostat12.soga │ │ │ ├── Thermostat14.soga │ │ │ └── Thermostat16.soga │ │ └── Trueskills │ │ │ ├── TrueSkills5.soga │ │ │ └── TrueSkills10.soga │ ├── TrueSkills.soga │ ├── IndianGPA.soga │ ├── Tracking │ │ ├── Tracking1.soga │ │ ├── Tracking10.soga │ │ ├── Tracking5.soga │ │ ├── Tracking50.soga │ │ ├── Tracking100.soga │ │ └── Tracking150.soga │ ├── SurveyUnbias.soga │ ├── BayesPointMachine.soga │ ├── ClinicalTrial.soga │ ├── ClinicalTrialPrune.soga │ ├── ClickGraph.soga │ ├── AQUA │ │ ├── Altermu2.soga │ │ ├── Altermu.soga │ │ ├── NormalMixtures.soga │ │ ├── NormalMixturesPrune.soga │ │ ├── .ipynb_checkpoints │ │ │ ├── NormalMixtures-checkpoint.soga │ │ │ └── RadarQuery-checkpoint.soga │ │ └── RadarQuery.soga │ ├── ClickGraphPrune.soga │ ├── Burglar.soga │ ├── Collaborative Filtering │ │ ├── CF1.soga │ │ ├── CF2.soga │ │ ├── CF3.soga │ │ └── CF5.soga │ ├── Grass.soga │ └── NoisyOr.soga ├── .DS_Store └── Example │ └── Bernoulli.soga ├── logo.jpeg ├── src ├── .DS_Store ├── example.png ├── timing.py ├── __pycache__ │ ├── timing.cpython-310.pyc │ ├── timing.cpython-311.pyc │ ├── timing.cpython-38.pyc │ ├── libSOGA.cpython-311.pyc │ ├── ASGMTLexer.cpython-311.pyc │ ├── ASGMTParser.cpython-311.pyc │ ├── SOGALexer.cpython-311.pyc │ ├── SOGAParser.cpython-311.pyc │ ├── TRUNCLexer.cpython-310.pyc │ ├── TRUNCLexer.cpython-311.pyc │ ├── TRUNCLexer.cpython-38.pyc │ ├── TRUNCParser.cpython-310.pyc │ ├── TRUNCParser.cpython-311.pyc │ ├── TRUNCParser.cpython-38.pyc │ ├── producecfg.cpython-311.pyc │ ├── ASGMTListener.cpython-311.pyc │ ├── SOGAListener.cpython-311.pyc │ ├── TRUNCListener.cpython-310.pyc │ ├── TRUNCListener.cpython-311.pyc │ ├── TRUNCListener.cpython-38.pyc │ ├── libSOGAmerge.cpython-311.pyc │ ├── libSOGAshared.cpython-311.pyc │ ├── libSOGAupdate.cpython-311.pyc │ ├── libSOGAsmoother.cpython-311.pyc │ ├── libSOGAtruncate.cpython-311.pyc │ ├── sogaPreprocessor.cpython-311.pyc │ ├── TRUNC.tokens │ └── TRUNCLexer.tokens ├── PROGRAMS │ ├── errors_csv │ │ ├── errors_burglary.txt │ │ ├── errors_clickgraph.txt │ │ └── errors_bernoulli.txt │ └── losses_csv │ │ └── loss_clickgraph.txt ├── ASGMT.tokens ├── ASGMTLexer.tokens ├── TRUNC.tokens ├── TRUNCLexer.tokens ├── SOGA.tokens └── SOGALexer.tokens ├── .gitignore ├── grammars ├── .DS_Store ├── __pycache__ │ ├── TRUNC2Lexer.cpython-311.pyc │ ├── TRUNC2Parser.cpython-311.pyc │ └── TRUNC2Listener.cpython-311.pyc ├── ASGMT.g4 ├── .ipynb_checkpoints │ ├── ASGMT-checkpoint.g4 │ ├── TRUNC-checkpoint.g4 │ ├── SOGAorig-checkpoint.g4 │ └── SOGA-checkpoint.g4 ├── TRUNC.g4 └── SOGA.g4 ├── requirements.txt └── README.md /programs/SOGA/Debug.soga: -------------------------------------------------------------------------------- 1 | skip; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim1.param: -------------------------------------------------------------------------------- 1 | "mean", 5., True -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/Debug-checkpoint.soga: -------------------------------------------------------------------------------- 1 | skip; -------------------------------------------------------------------------------- /logo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/logo.jpeg -------------------------------------------------------------------------------- /src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/.DS_Store -------------------------------------------------------------------------------- /src/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/example.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Python bytecode files 2 | *.pyc 3 | __pycache__/ 4 | *.csv 5 | *.txt -------------------------------------------------------------------------------- /grammars/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/grammars/.DS_Store -------------------------------------------------------------------------------- /programs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/programs/.DS_Store -------------------------------------------------------------------------------- /programs/SOGA/Optim3.soga: -------------------------------------------------------------------------------- 1 | /*TEST 3 */ 2 | a = gm([1.], [1.], [1.]); 3 | a = 2 * a + 1; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim7.soga: -------------------------------------------------------------------------------- 1 | /* TEST 7 */ 2 | a = gm([1.], [_mean], [_std]); 3 | -------------------------------------------------------------------------------- /src/timing.py: -------------------------------------------------------------------------------- 1 | trunc_time = [] 2 | update_time = [] 3 | prune_time = [] 4 | num_trunc = 0 5 | -------------------------------------------------------------------------------- /programs/SOGA/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/programs/SOGA/.DS_Store -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim1.soga: -------------------------------------------------------------------------------- 1 | /* TEST 1 */ 2 | a = gm([1.], [_mean], [1.]); 3 | 4 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim2.soga: -------------------------------------------------------------------------------- 1 | /* TEST 2 */ 2 | a = gm([1.], [10.], [_std]); 3 | 4 | -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/Toy-checkpoint.soga: -------------------------------------------------------------------------------- 1 | x = gauss(0,1); 2 | y = gauss(0,2); 3 | z = x+y; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/shuttle.soga: -------------------------------------------------------------------------------- 1 | y = gm([_p1, _p2, _p3], [0., 1., 2.], [0., 0., 0.]); -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim3.soga: -------------------------------------------------------------------------------- 1 | /*TEST 3 */ 2 | 3 | a = gm([1.], [1.], [1.]); 4 | a = _par1 * a; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim4.soga: -------------------------------------------------------------------------------- 1 | /*TEST 4 */ 2 | 3 | a = gm([1.], [1.], [1.]); 4 | a = 2 * a + _par2; -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/Optim3-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /*TEST 3 */ 2 | a = gm([1.], [1.], [1.]); 3 | a = 2 * a + 1; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim7-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /* TEST 7 */ 2 | a = gm([1.], [_mean], [_std]); 3 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim1-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /* TEST 1 */ 2 | a = gm([1.], [_mean], [1.]); 3 | 4 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim2-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /* TEST 2 */ 2 | a = gm([1.], [10.], [_std]); 3 | 4 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/programs/SOGA/SensitivityExp/.DS_Store -------------------------------------------------------------------------------- /src/__pycache__/timing.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/timing.cpython-310.pyc -------------------------------------------------------------------------------- /src/__pycache__/timing.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/timing.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/timing.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/timing.cpython-38.pyc -------------------------------------------------------------------------------- /programs/SOGA/Toy.soga: -------------------------------------------------------------------------------- 1 | x = gauss(0,1); 2 | y = gauss(1,1) + x; 3 | z = gauss(1,1) + y; 4 | observe(y==1.5); 5 | /*observe(z==2.25);*/ -------------------------------------------------------------------------------- /src/__pycache__/libSOGA.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/libSOGA.cpython-311.pyc -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim3-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /*TEST 3 */ 2 | 3 | a = gm([1.], [1.], [1.]); 4 | a = _par1 * a; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim4-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /*TEST 4 */ 2 | 3 | a = gm([1.], [1.], [1.]); 4 | a = 2 * a + _par2; -------------------------------------------------------------------------------- /src/__pycache__/ASGMTLexer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/ASGMTLexer.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/ASGMTParser.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/ASGMTParser.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/SOGALexer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/SOGALexer.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/SOGAParser.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/SOGAParser.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCLexer.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCLexer.cpython-310.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCLexer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCLexer.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCLexer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCLexer.cpython-38.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCParser.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCParser.cpython-310.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCParser.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCParser.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCParser.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCParser.cpython-38.pyc -------------------------------------------------------------------------------- /src/__pycache__/producecfg.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/producecfg.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/ASGMTListener.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/ASGMTListener.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/SOGAListener.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/SOGAListener.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCListener.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCListener.cpython-310.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCListener.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCListener.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/TRUNCListener.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/TRUNCListener.cpython-38.pyc -------------------------------------------------------------------------------- /src/__pycache__/libSOGAmerge.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/libSOGAmerge.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/libSOGAshared.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/libSOGAshared.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/libSOGAupdate.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/libSOGAupdate.cpython-311.pyc -------------------------------------------------------------------------------- /grammars/__pycache__/TRUNC2Lexer.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/grammars/__pycache__/TRUNC2Lexer.cpython-311.pyc -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/programs/SOGA/SensitivityExp/#branches/.DS_Store -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/programs/SOGA/SensitivityExp/Pruning/.DS_Store -------------------------------------------------------------------------------- /src/__pycache__/libSOGAsmoother.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/libSOGAsmoother.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/libSOGAtruncate.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/libSOGAtruncate.cpython-311.pyc -------------------------------------------------------------------------------- /src/__pycache__/sogaPreprocessor.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/src/__pycache__/sogaPreprocessor.cpython-311.pyc -------------------------------------------------------------------------------- /grammars/__pycache__/TRUNC2Parser.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/grammars/__pycache__/TRUNC2Parser.cpython-311.pyc -------------------------------------------------------------------------------- /grammars/__pycache__/TRUNC2Listener.cpython-311.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-doz/DeGAS_BPMN/main/grammars/__pycache__/TRUNC2Listener.cpython-311.pyc -------------------------------------------------------------------------------- /src/PROGRAMS/errors_csv/errors_burglary.txt: -------------------------------------------------------------------------------- 1 | 0.1,0.5530888185794716 2 | 0.01,0.5530887766850139 3 | 0.001,0.5530887768101965 4 | 0.0001,0.5530887713385635 5 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/observedVariables.csv: -------------------------------------------------------------------------------- 1 | RandomWalk, x 2 | Bernoulli, theta 3 | ClinicalTrial, isEff 4 | CoinBias, bias 5 | SurveyUnbias, bias1 -------------------------------------------------------------------------------- /src/PROGRAMS/errors_csv/errors_clickgraph.txt: -------------------------------------------------------------------------------- 1 | 0.1,0.375003417802464 2 | 0.01,0.053652294495335345 3 | 0.001,0.053915528499134946 4 | 0.0001,0.05391816810429412 5 | -------------------------------------------------------------------------------- /src/PROGRAMS/errors_csv/errors_bernoulli.txt: -------------------------------------------------------------------------------- 1 | 0.1,0.0031197420056564007 2 | 0.01,0.003119742005656262 3 | 0.001,0.003119742005656262 4 | 0.0001,0.003119742005656262 5 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/Params/bayesianLR.param: -------------------------------------------------------------------------------- 1 | "muw", 1., True 2 | "sigmaw", 0.1, True 3 | "mub", 1., True 4 | "sigmab", 0.1, True 5 | "sigmay", 0.1, True -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_800.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(800) { 5 | x = x + y; 6 | } end for; 7 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim5.soga: -------------------------------------------------------------------------------- 1 | /*TEST 5 */ 2 | 3 | if gm([1.], [_mean], [1.]) < 0 { 4 | a = gm([1.], [-5.], [1.]); 5 | } else { 6 | a = gm([1.], [5.], [1.]); 7 | } end if; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_10000.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(10000) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1100.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1100) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1200.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1200) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1700.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1700) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1800.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1800) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1900.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1900) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_2000.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(2000) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_3000.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(3000) { 6 | x = x + y; 7 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_900.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(900) { 6 | x = x + y; 7 | } end for; 8 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim6.soga: -------------------------------------------------------------------------------- 1 | /*TEST 6 */ 2 | 3 | if gm([1.], [0.], [1.]) < _coeff { 4 | a = gm([1.], [-5.], [1.]); 5 | } else { 6 | a = gm([1.], [5.], [1.]); 7 | } end if; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1000.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1000) { 6 | x = x + y; 7 | } end for; 8 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1300.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1300) { 6 | x = x + y; 7 | } end for; 8 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1600.soga: -------------------------------------------------------------------------------- 1 | 2 | 3 | x = gauss(1, 1); 4 | y = gauss(1, 1); 5 | 6 | for i in range(1600) { 7 | x = x + y; 8 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_5000.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(5000) { 6 | x = x + y; 7 | } end for; 8 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/Optim8.soga: -------------------------------------------------------------------------------- 1 | /* TEST 8 */ 2 | 3 | x = bern(0.5); 4 | if x < _coeff { 5 | a = gm([1.], [-5.], [1.]); 6 | } else { 7 | a = gm([1.], [5.], [1.]); 8 | } end if; 9 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_800.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(800): 6 | x = x + y; 7 | end for; 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_900.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(900): 6 | x = x + y; 7 | end for; 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1400.soga: -------------------------------------------------------------------------------- 1 | 2 | 3 | x = gauss(1, 1); 4 | y = gauss(1, 1); 5 | 6 | for i in range(1400) { 7 | x = x + y; 8 | } end for; 9 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/scale/eval_soga_scale_1500.soga: -------------------------------------------------------------------------------- 1 | 2 | 3 | x = gauss(1, 1); 4 | y = gauss(1, 1); 5 | 6 | for i in range(1500) { 7 | x = x + y; 8 | } end for; 9 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1100.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1100): 6 | x = x + y; 7 | end for; 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1200.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1200): 6 | x = x + y; 7 | end for; 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1300.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1300): 6 | x = x + y; 7 | end for; 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1700.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(1700) { 5 | x = x + y; 6 | } end for; 7 | 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1800.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(1800) { 5 | x = x + y; 6 | } end for; 7 | 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1900.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(1900) { 5 | x = x + y; 6 | } end for; 7 | 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_2000.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(2000) { 5 | x = x + y; 6 | } end for; 7 | 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_4000.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(4000) { 5 | x = x + y; 6 | } end for; 7 | 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_6000.soga: -------------------------------------------------------------------------------- 1 | x = gauss(1, 1); 2 | y = gauss(1, 1); 3 | 4 | for i in range(6000) { 5 | x = x + y; 6 | } end for; 7 | 8 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Causality/SCM_1_int.soga: -------------------------------------------------------------------------------- 1 | a = gm([1.], [2.], [2.]); 2 | 3 | b = 3.; 4 | 5 | d = a + gm([1.], [0.], [1.]); 6 | 7 | c = b+2; 8 | c = c + d; 9 | c = c + gm([1.], [0], [1]); 10 | 11 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1000.soga: -------------------------------------------------------------------------------- 1 | 2 | x = gauss(1, 1); 3 | y = gauss(1, 1); 4 | 5 | for i in range(1000): 6 | x = x + y; 7 | end for; 8 | 9 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1400.soga: -------------------------------------------------------------------------------- 1 | 2 | 3 | x = gauss(1, 1); 4 | y = gauss(1, 1); 5 | 6 | for i in range(1400): 7 | x = x + y; 8 | end for; 9 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1500.soga: -------------------------------------------------------------------------------- 1 | 2 | 3 | x = gauss(1, 1); 4 | y = gauss(1, 1); 5 | 6 | for i in range(1500): 7 | x = x + y; 8 | end for; 9 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/cond/eval_soga_scale_1600.soga: -------------------------------------------------------------------------------- 1 | 2 | 3 | x = gauss(1, 1); 4 | y = gauss(1, 1); 5 | 6 | for i in range(1600): 7 | x = x + y; 8 | end for; 9 | observe(x==1); -------------------------------------------------------------------------------- /programs/SOGA/RandomWalkUnif10.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(10) { 4 | if uniform([0,1],2) < 0.75 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/ThreeCoins.soga: -------------------------------------------------------------------------------- 1 | a = gm([0.5,0.5],[1.,0.],[0.,0.]); 2 | b = gm([0.5,0.5],[1.,0.],[0.,0.]); 3 | c = gm([0.5,0.5],[1.,0.],[0.,0.]); 4 | 5 | sum = a+b+c; 6 | 7 | observe(sum >= 2); 8 | 9 | skip; -------------------------------------------------------------------------------- /programs/SOGA/RandomWalkDisc10.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(10) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/RandomWalkGauss10.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(10) { 4 | if gm([1.], [0.], [1.]) < 0.6745 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim5-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /*TEST 5 */ 2 | 3 | if gm([1.], [_mean], [1.]) < 0 { 4 | a = gm([1.], [-5.], [1.]); 5 | } else { 6 | a = gm([1.], [5.], [1.]); 7 | } end if; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/.ipynb_checkpoints/Optim6-checkpoint.soga: -------------------------------------------------------------------------------- 1 | /*TEST 6 */ 2 | 3 | if gm([1.], [0.], [1.]) < _coeff { 4 | a = gm([1.], [-5.], [1.]); 5 | } else { 6 | a = gm([1.], [5.], [1.]); 7 | } end if; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_500.soga: -------------------------------------------------------------------------------- 1 | array[500] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(500) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_4000.soga: -------------------------------------------------------------------------------- 1 | array[4000] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(4000) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | -------------------------------------------------------------------------------- /programs/SOGA/Causality/SCM_1.soga: -------------------------------------------------------------------------------- 1 | a = gm([1.], [2.], [2.]); 2 | 3 | b = 2*a; 4 | b = b + gm([1.], [0.], [1.]); 5 | 6 | d = a + gm([1.], [0.], [1.]); 7 | 8 | c = b+2; 9 | c = c + d; 10 | c = c + gm([1.], [0], [1]); 11 | 12 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_100.soga: -------------------------------------------------------------------------------- 1 | array[100] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(100) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | 10 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_1000.soga: -------------------------------------------------------------------------------- 1 | array[1000] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(1000) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | 10 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_2000.soga: -------------------------------------------------------------------------------- 1 | array[2000] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(2000) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk1.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | y = gm([1.], [0.], [1.]); 3 | for i in range(1) { 4 | if y < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_250.soga: -------------------------------------------------------------------------------- 1 | array[250] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(250) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | 10 | 11 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/varscond/eval_soga_scale_6000.soga: -------------------------------------------------------------------------------- 1 | array[6000] sum; 2 | x = gauss(1,1); 3 | 4 | for i in range(6000) { 5 | sum[i] = gauss(0,1) + x; 6 | } end for; 7 | 8 | observe(x == 1); 9 | 10 | 11 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk3.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(3) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk5.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(5) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk7.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(7) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk9.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(9) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#proc/continuous/RandomWalk/RandomWalk15.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(15) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/BernoulliTorch.soga: -------------------------------------------------------------------------------- 1 | theta = uniform([0,1], 2); 2 | 3 | if uniform([0,1], 2) - theta < 0 { 4 | y = gm([1.], [0.], [0.01]); 5 | } else { 6 | y = gm([1.], [1.], [0.01]); 7 | } end if; 8 | 9 | /* observe(y == 1.);*/ 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk11.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(11) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk13.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(13) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/RandomWalk/RandomWalk15.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(15) { 4 | if gm([1.], [0.], [1.]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk1.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(1) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk11.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(11) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk13.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(13) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk15.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(15) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk3.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(3) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk5.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(5) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk7.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(7) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/discrete/RandomWalk/RandomWalk9.soga: -------------------------------------------------------------------------------- 1 | x = 0; 2 | 3 | for i in range(9) { 4 | if gm([0.5,0.5],[-1,1],[0,0]) < 0 { 5 | x = x - 1; 6 | } else { 7 | x = x + 1; 8 | } end if; 9 | } end for; 10 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/observerdVariables.txt: -------------------------------------------------------------------------------- 1 | 2 | BernoulliPrune, "theta" 3 | ClickGraphPrune, "simAll" 4 | ClinicalTrialPrune, "isEff"" 5 | NormalMixturesPrune, "theta" 6 | RadarQueryPrune, "x0" 7 | coinbiasprune, "bias" 8 | surveyunbias, "bias1" -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/BernoulliTorch-checkpoint.soga: -------------------------------------------------------------------------------- 1 | theta = uniform([0,1], 2); 2 | 3 | if uniform([0,1], 2) - theta < 0 { 4 | y = gm([1.], [0.], [0.01]); 5 | } else { 6 | y = gm([1.], [1.], [0.01]); 7 | } end if; 8 | 9 | /* observe(y == 1.);*/ 10 | -------------------------------------------------------------------------------- /programs/SOGA/MurderMistery.soga: -------------------------------------------------------------------------------- 1 | aliceDunnit = gm([0.3,0.7], [1.,0.], [0.,0.]); 2 | 3 | if aliceDunnit == 1 { 4 | withGun = gm([0.03,0.97], [1.,0.], [0.,0.]); 5 | } else { 6 | withGun = gm([0.8,0.2], [1.,0.], [0.,0.]); 7 | } end if; 8 | 9 | observe(withGun == 1); 10 | 11 | -------------------------------------------------------------------------------- /programs/SOGA/TestProgram/test.soga: -------------------------------------------------------------------------------- 1 | r1 = exprnd(1 , 2 ); 2 | r2 = exprnd( 1 , 2 ); 3 | 4 | cnt=0; 5 | x=0; 6 | 7 | for i in range(2) { 8 | if r1-r2 >= 0 { 9 | cnt=cnt+1; 10 | } else { 11 | x = x + 1; 12 | } end if; 13 | } end for; 14 | 15 | observe(cnt == 0); -------------------------------------------------------------------------------- /src/ASGMT.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | IDV=11 12 | NUM=12 13 | COMM=13 14 | WS=14 15 | DIGIT=15 16 | '='=1 17 | '+'=2 18 | '*'=3 19 | '['=4 20 | ']'=5 21 | 'gm('=6 22 | ','=7 23 | ')'=8 24 | '-'=9 25 | '_'=10 26 | -------------------------------------------------------------------------------- /src/ASGMTLexer.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | IDV=11 12 | NUM=12 13 | COMM=13 14 | WS=14 15 | DIGIT=15 16 | '='=1 17 | '+'=2 18 | '*'=3 19 | '['=4 20 | ']'=5 21 | 'gm('=6 22 | ','=7 23 | ')'=8 24 | '-'=9 25 | '_'=10 26 | -------------------------------------------------------------------------------- /programs/SOGA/Bernoulli.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(10) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1.; 8 | } else { 9 | y = 0.; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/CoinBias.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/Scale.soga: -------------------------------------------------------------------------------- 1 | hasFake = gm([0.5, 0.5], [0., 1.], [0., 0.]); 2 | 3 | wFake = gm([1.], [0.5], [1]); 4 | observe(wFake < 1); 5 | observe(wFake > 0.1); 6 | 7 | if hasFake == 1 { 8 | balance = wFake - 0.5 + gm([1.], [0.], [1.]); 9 | } else { 10 | balance = 0; 11 | } end if; 12 | 13 | 14 | observe(balance == 0); -------------------------------------------------------------------------------- /programs/SOGA/TwoCoins.soga: -------------------------------------------------------------------------------- 1 | first = gm([0.5,0.5], [0.,1.], [0.,0.]); 2 | second = gm([0.5,0.5], [0.,1.], [0.,0.]); 3 | 4 | if first == 1 { 5 | if second == 1 { 6 | both = 1; 7 | } else { 8 | both = 0; 9 | } end if; 10 | } else { 11 | both = 0; 12 | } end if; 13 | 14 | observe(both == 0); 15 | -------------------------------------------------------------------------------- /programs/SOGA/BernoulliPrune.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | 6 | for i in range(10) { 7 | if uniform([0,1], 2) - theta < 0 { 8 | y = 1; 9 | } else { 10 | y = 0; 11 | } end if; 12 | observe(y == obs[i]); 13 | prune(27); 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_500.soga: -------------------------------------------------------------------------------- 1 | /*array[500] y; 2 | x = gauss(1,1); 3 | 4 | for i in range(500) { 5 | y[i] = gauss(1,1); 6 | x = x + y[i]; 7 | } end for;*/ 8 | 9 | 10 | array[500] sum; 11 | x = gauss(1,1); 12 | 13 | for i in range(500) { 14 | sum[i] = sum[i] + x; 15 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/Bernoulli-checkpoint.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(10) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1.; 8 | } else { 9 | y = 0.; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_1000.soga: -------------------------------------------------------------------------------- 1 | /*array[1000] y; 2 | x = gauss(1,1); 3 | 4 | for i in range(1000) { 5 | y[i] = gauss(1,1); 6 | x = x + y[i]; 7 | } end for;*/ 8 | 9 | array[1000] sum; 10 | x = gauss(1,1); 11 | 12 | for i in range(1000) { 13 | sum[i] = sum[i] + x; 14 | } end for; 15 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # To be updated 2 | antlr4-python3-runtime==4.10 # make sure you use this version or you will get a lot of warnings 3 | numpy>=1.21.6 4 | scipy>=1.7.3 5 | sympy==1.9 6 | scikit-learn==1.3.2 7 | Mathics-omnibus==4.0.1 8 | pandas==2.0.3 9 | pymc3==3.11.5 10 | psutil==5.9.8 11 | Jinja2==3.1.4 12 | natsort==8.4.0 13 | botorch -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_2000.soga: -------------------------------------------------------------------------------- 1 | /*array[2000] y; 2 | x = gauss(1,1); 3 | 4 | for i in range(2000) { 5 | y[i] = gauss(1,1); 6 | x = x + y[i]; 7 | } end for;*/ 8 | 9 | array[2000] sum; 10 | x = gauss(1,1); 11 | 12 | for i in range(2000) { 13 | sum[i] = sum[i] + x; 14 | } end for; 15 | 16 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_250.soga: -------------------------------------------------------------------------------- 1 | /*array[250] y; 2 | x = gauss(1,1); 3 | 4 | for i in range(250) { 5 | y[i] = gauss(1,1); 6 | x = x + y[i]; 7 | } end for;*/ 8 | 9 | array[250] sum; 10 | x = gauss(1,1); 11 | 12 | for i in range(250) { 13 | sum[i] = sum[i] + x; 14 | } end for; 15 | 16 | 17 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_4000.soga: -------------------------------------------------------------------------------- 1 | /*array[4000] y; 2 | x = gauss(1,1); 3 | 4 | for i in range(4000) { 5 | y[i] = gauss(1,1); 6 | x = x + y[i]; 7 | } end for;*/ 8 | 9 | array[4000] sum; 10 | x = gauss(1,1); 11 | 12 | for i in range(4000) { 13 | sum[i] = sum[i] + x; 14 | } end for; 15 | 16 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_6000.soga: -------------------------------------------------------------------------------- 1 | /*array[6000] y; 2 | x = gauss(1,1); 3 | 4 | for i in range(6000) { 5 | y[i] = gauss(1,1); 6 | x = x + y[i]; 7 | } end for;*/ 8 | 9 | array[6000] sum; 10 | x = gauss(1,1); 11 | 12 | for i in range(6000) { 13 | sum[i] = sum[i] + x; 14 | } end for; 15 | 16 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/CoinBias1.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],1); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],1) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/CoinBias2.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],2); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/CoinBias4.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],4); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],4) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/CoinBias6.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],6); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],6) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=C/BernoulliPrune.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | 6 | for i in range(10) { 7 | if uniform([0,1], 2) - theta < 0 { 8 | y = 1; 9 | } else { 10 | y = 0; 11 | } end if; 12 | observe(y == obs[i]); 13 | } end for; 14 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/CoinBias.tpl: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],$cmp); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],$cmp) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/BernoulliPrune-checkpoint.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | 6 | for i in range(10) { 7 | if uniform([0,1], 2) - theta < 0 { 8 | y = 1; 9 | } else { 10 | y = 0; 11 | } end if; 12 | observe(y == obs[i]); 13 | prune(27); 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/gm_diff_eq.soga: -------------------------------------------------------------------------------- 1 | array[10] x; 2 | array[10] y; 3 | 4 | xcurr = 20.; 5 | ycurr = 20.; 6 | 7 | for i in range(10){ 8 | x[i] = xcurr + 0.1 * gm([_w1, _w2], [_mu1, _mu2], [_s1, _s2]); 9 | y[i] = ycurr + 0.1 * gm([_w1, _w2], [_mu1, _mu2], [_s1, _s2]); 10 | 11 | xcurr = x[i]; 12 | ycurr = y[i]; 13 | 14 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#proc/continuous/Bernoulli/Bernoulli15.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(15) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=C/CoinBiasPrune.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],3); 4 | 5 | for i in range(12) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == toss[i]); 12 | 13 | } end for; 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli1.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(1) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli11.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(11) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli13.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(13) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli15.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(15) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli3.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(3) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli5.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(5) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli7.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(7) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/Bernoulli/Bernoulli9.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | for i in range(9) { 6 | if uniform([0,1], 2) - theta < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | observe(y == obs[i]); 12 | } end for; 13 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.00725C/BernoulliPrune.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | 6 | for i in range(10) { 7 | if uniform([0,1], 2) - theta < 0 { 8 | y = 1; 9 | } else { 10 | y = 0; 11 | } end if; 12 | prune(15); 13 | observe(y == obs[i]); 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Scalability/SOGA/vars/eval_soga_scale_100.soga: -------------------------------------------------------------------------------- 1 | /*array[100] y; 2 | x = gauss(1,1); 3 | sum = gauss(0,1); 4 | 5 | for i in range(100) { 6 | y[i] = gauss(1,1); 7 | x = x + y[i]; 8 | } end for;*/ 9 | 10 | array[100] sum; 11 | x = gauss(1,1); 12 | 13 | for i in range(100) { 14 | sum[i] = sum[i] + x; 15 | } end for; 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat2.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(2) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat4.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(4) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat6.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(6) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat8.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(8) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.003625C/BernoulliPrune.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | 6 | for i in range(10) { 7 | if uniform([0,1], 2) - theta < 0 { 8 | y = 1; 9 | } else { 10 | y = 0; 11 | } end if; 12 | prune(8); 13 | observe(y == obs[i]); 14 | 15 | } end for; 16 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.015C/BernoulliPrune.soga: -------------------------------------------------------------------------------- 1 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 2 | 3 | theta = uniform([0,1], 2); 4 | 5 | 6 | for i in range(10) { 7 | if uniform([0,1], 2) - theta < 0 { 8 | y = 1; 9 | } else { 10 | y = 0; 11 | } end if; 12 | prune(30); 13 | observe(y == obs[i]); 14 | 15 | } end for; 16 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat10.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(10) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat12.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(12) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat14.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(14) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Thermostat/Thermostat16.soga: -------------------------------------------------------------------------------- 1 | currT = gauss(16, 1.); 2 | isOn = gauss(0, 1); 3 | 4 | for i in range(16) { 5 | 6 | if isOn > 0 { 7 | newT = 0.99*currT + 0.5 + gauss(0., 1); 8 | } else { 9 | newT = 0.99*currT + gauss(0., 1); 10 | } end if; 11 | 12 | currT = newT + gauss(0., 0.5); 13 | 14 | } end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.003625C/CoinBiasPrune.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0,1,0,1,0,0,1,0]; 2 | 3 | bias = beta([2, 5],3); 4 | 5 | for i in range(12) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | prune(29); 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#proc/continuous/CoinBias/CoinBias15.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(15) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.00725C/CoinBiasPrune.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0,1,0,1,0,0,1,0,1,0]; 2 | 3 | bias = beta([2, 5],3); 4 | 5 | for i in range(12) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | prune(58); 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias1.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(1) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias11.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(11) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias13.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(13) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias15.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(15) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias3.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(3) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias5.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(5) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias7.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(7) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/CoinBias/CoinBias9.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0]; 2 | 3 | bias = beta([2,5],2); 4 | 5 | for i in range(9) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.015C/CoinBiasPrune.soga: -------------------------------------------------------------------------------- 1 | data toss = [1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0]; 2 | 3 | bias = beta([2, 5],3); 4 | 5 | for i in range(12) { 6 | if uniform([0,1],2) - bias < 0 { 7 | y = 1; 8 | } else { 9 | y = 0; 10 | } end if; 11 | prune(116); 12 | observe(y == toss[i]); 13 | 14 | } end for; 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /programs/SOGA/TrueSkills.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | 6 | perfA = gm([1],[0],[15])+skillA; 7 | perfB = gm([1],[0],[15])+skillB; 8 | perfC = gm([1],[0],[15])+skillC; 9 | 10 | /* constraints to observations */ 11 | observe(perfA-perfB > 0); 12 | observe(perfA-perfC > 0); 13 | 14 | skip; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills3.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | 6 | perfA = gm([1],[0],[15])+skillA; 7 | perfB = gm([1],[0],[15])+skillB; 8 | perfC = gm([1],[0],[15])+skillC; 9 | 10 | /* constraints to observations */ 11 | observe(perfA-perfB > 0); 12 | observe(perfA-perfC > 0); 13 | 14 | skip; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/LRC2.soga: -------------------------------------------------------------------------------- 1 | array[50] z0; 2 | array[50] z1; 3 | 4 | z0curr = 0.; 5 | z1curr = 0.; 6 | 7 | for i in range(50){ 8 | 9 | z0[i] = z0curr + 0.000005 * z1curr; 10 | prod = _RL*z1curr; 11 | prod1 = _LC*z0[i]; 12 | prod2 = _L * _V0; 13 | z1[i] = z1curr + 0.000005 * prod2 - 0.000005 * prod - 0.000005 * prod1; 14 | 15 | z0curr = z0[i]; 16 | z1curr = z1[i]; 17 | 18 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Laplace/Laplace4.soga: -------------------------------------------------------------------------------- 1 | array[2] lower; 2 | array[18] higher; 3 | sum = 0; 4 | 5 | for i in range(2) { 6 | lower[i] = gauss(300,100); 7 | sum = sum + lower[i]; 8 | } end for; 9 | 10 | for i in range(18) { 11 | higher[i] = gauss(450,150); 12 | sum = sum + higher[i]; 13 | } end for; 14 | 15 | sum = 0.05*sum; 16 | noise = gm([0.879, 0.121], [0, 0], [29.3139896771589, 93.2124479739502]); 17 | sum = sum + noise; 18 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias1.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(1) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | 19 | -------------------------------------------------------------------------------- /programs/SOGA/IndianGPA.soga: -------------------------------------------------------------------------------- 1 | usa = gm([0.5,0.5],[1,0],[0,0]); 2 | 3 | if uniform([0,1],2) < 0.01 { 4 | usagpa = 4; 5 | } else { 6 | usagpa = uniform([0,4], 2); 7 | } end if; 8 | 9 | 10 | if uniform([0,1],2) < 0.01 { 11 | indgpa = 10; 12 | } else { 13 | indgpa = uniform([0,10], 2); 14 | } end if; 15 | 16 | if usa == 1 17 | { 18 | gpa = usagpa; 19 | } 20 | else 21 | { 22 | gpa = indgpa; 23 | } 24 | end if; 25 | 26 | observe(gpa==4); 27 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/linear_regression.soga: -------------------------------------------------------------------------------- 1 | data X = [0.3100, 0.3400, 0.3500, 0.3700, 0.3900, 0.3900, 0.4000, 0.4000, 0.4100, 2 | 0.4300, 0.4600, 0.4700, 0.5100, 0.5500, 0.5700, 0.5900, 0.6000, 0.6100, 3 | 0.6700, 0.6800, 0.7000, 0.7100, 0.7200, 0.7300, 0.7400, 0.7500, 0.7600, 4 | 0.7700, 0.7800, 0.9200]; 5 | 6 | array[30] y; 7 | 8 | for i in range(30) { 9 | y[i] = _w * X[i] + _b + gauss(0., 1); 10 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Laplace/Laplace1.soga: -------------------------------------------------------------------------------- 1 | array[2] lower; 2 | array[18] higher; 3 | sum = 0; 4 | 5 | for i in range(2) { 6 | lower[i] = uniform([200,400],2); 7 | sum = sum + lower[i]; 8 | } end for; 9 | 10 | for i in range(18) { 11 | higher[i] = uniform([300,600],2); 12 | sum = sum + higher[i]; 13 | } end for; 14 | 15 | sum = 0.05*sum; 16 | noise = gm([0.879, 0.121], [0, 0], [29.3139896771589, 93.2124479739502]); 17 | sum = sum + noise; 18 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Laplace/Laplace3.soga: -------------------------------------------------------------------------------- 1 | array[2] lower; 2 | array[8] higher; 3 | sum = 0; 4 | 5 | for i in range(2) { 6 | lower[i] = uniform([200,400],2); 7 | sum = sum + lower[i]; 8 | } end for; 9 | 10 | for i in range(8) { 11 | higher[i] = uniform([300,600],2); 12 | sum = sum + higher[i]; 13 | } end for; 14 | 15 | sum = 0.1*sum; 16 | noise = gm([0.879, 0.121], [0, 0], [58.6279793543178, 186.4248959479004]); 17 | sum = sum + noise; 18 | -------------------------------------------------------------------------------- /src/TRUNC.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | T__10=11 12 | T__11=12 13 | T__12=13 14 | T__13=14 15 | SUM=15 16 | SUB=16 17 | MUL=17 18 | IDV=18 19 | POSNUM=19 20 | COMM=20 21 | WS=21 22 | ALPHA=22 23 | DIGIT=23 24 | '<='=1 25 | '<'=2 26 | '>'=3 27 | '>='=4 28 | 'and'=5 29 | 'or'=6 30 | '=='=7 31 | '!='=8 32 | '['=9 33 | ']'=10 34 | 'gm('=11 35 | ','=12 36 | ')'=13 37 | '_'=14 38 | '+'=15 39 | '-'=16 40 | '*'=17 41 | -------------------------------------------------------------------------------- /programs/SOGA/Tracking/Tracking1.soga: -------------------------------------------------------------------------------- 1 | x = 2; 2 | y = -1; 3 | 4 | for i in range(2) { 5 | x = x + gm([1.], [0.], [1.]); 6 | y = y + gm([1.], [0.], [1.]); 7 | } end for; 8 | 9 | distx = x*x; 10 | disty = y*y; 11 | dist = distx + disty; 12 | 13 | if dist > 10 { 14 | out = 1; 15 | } else { 16 | out = 0; 17 | } end if; 18 | 19 | if out == 1 { 20 | observed = 10; 21 | } else { 22 | observed = dist + gm([1.], [0.], [1.]); 23 | } end if; 24 | 25 | 26 | observe(out == 1); -------------------------------------------------------------------------------- /programs/SOGA/Tracking/Tracking10.soga: -------------------------------------------------------------------------------- 1 | x = 2; 2 | y = -1; 3 | 4 | for i in range(10) { 5 | x = x + gm([1.], [0.], [1.]); 6 | y = y + gm([1.], [0.], [1.]); 7 | } end for; 8 | 9 | distx = x*x; 10 | disty = y*y; 11 | dist = distx + disty; 12 | 13 | if dist > 10 { 14 | out = 1; 15 | } else { 16 | out = 0; 17 | } end if; 18 | 19 | if out == 1 { 20 | observed = 10; 21 | } else { 22 | observed = dist + gm([1.], [0.], [1.]); 23 | } end if; 24 | 25 | 26 | observe(out == 1); -------------------------------------------------------------------------------- /programs/SOGA/Tracking/Tracking5.soga: -------------------------------------------------------------------------------- 1 | x = 2; 2 | y = -1; 3 | 4 | for i in range(5) { 5 | x = x + gm([1.], [0.], [1.]); 6 | y = y + gm([1.], [0.], [1.]); 7 | } end for; 8 | 9 | distx = x*x; 10 | disty = y*y; 11 | dist = distx + disty; 12 | 13 | if dist > 10 { 14 | out = 1; 15 | } else { 16 | out = 0; 17 | } end if; 18 | 19 | if out == 1 { 20 | observed = 10; 21 | } else { 22 | observed = dist + gm([1.], [0.], [1.]); 23 | } end if; 24 | 25 | 26 | observe(out == 1); -------------------------------------------------------------------------------- /programs/SOGA/Tracking/Tracking50.soga: -------------------------------------------------------------------------------- 1 | x = 2; 2 | y = -1; 3 | 4 | for i in range(50) { 5 | x = x + gm([1.], [0.], [1.]); 6 | y = y + gm([1.], [0.], [1.]); 7 | } end for; 8 | 9 | distx = x*x; 10 | disty = y*y; 11 | dist = distx + disty; 12 | 13 | if dist > 10 { 14 | out = 1; 15 | } else { 16 | out = 0; 17 | } end if; 18 | 19 | if out == 1 { 20 | observed = 10; 21 | } else { 22 | observed = dist + gm([1.], [0.], [1.]); 23 | } end if; 24 | 25 | 26 | observe(out == 1); -------------------------------------------------------------------------------- /src/TRUNCLexer.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | T__10=11 12 | T__11=12 13 | T__12=13 14 | T__13=14 15 | SUM=15 16 | SUB=16 17 | MUL=17 18 | IDV=18 19 | POSNUM=19 20 | COMM=20 21 | WS=21 22 | ALPHA=22 23 | DIGIT=23 24 | '<='=1 25 | '<'=2 26 | '>'=3 27 | '>='=4 28 | 'and'=5 29 | 'or'=6 30 | '=='=7 31 | '!='=8 32 | '['=9 33 | ']'=10 34 | 'gm('=11 35 | ','=12 36 | ')'=13 37 | '_'=14 38 | '+'=15 39 | '-'=16 40 | '*'=17 41 | -------------------------------------------------------------------------------- /programs/SOGA/Tracking/Tracking100.soga: -------------------------------------------------------------------------------- 1 | x = 2; 2 | y = -1; 3 | 4 | for i in range(100) { 5 | x = x + gm([1.], [0.], [1.]); 6 | y = y + gm([1.], [0.], [1.]); 7 | } end for; 8 | 9 | distx = x*x; 10 | disty = y*y; 11 | dist = distx + disty; 12 | 13 | if dist > 10 { 14 | out = 1; 15 | } else { 16 | out = 0; 17 | } end if; 18 | 19 | if out == 1 { 20 | observed = 10; 21 | } else { 22 | observed = dist + gm([1.], [0.], [1.]); 23 | } end if; 24 | 25 | 26 | observe(out == 1); -------------------------------------------------------------------------------- /programs/SOGA/Tracking/Tracking150.soga: -------------------------------------------------------------------------------- 1 | x = 2; 2 | y = -1; 3 | 4 | for i in range(150) { 5 | x = x + gm([1.], [0.], [1.]); 6 | y = y + gm([1.], [0.], [1.]); 7 | } end for; 8 | 9 | distx = x*x; 10 | disty = y*y; 11 | dist = distx + disty; 12 | 13 | if dist > 10 { 14 | out = 1; 15 | } else { 16 | out = 0; 17 | } end if; 18 | 19 | if out == 1 { 20 | observed = 10; 21 | } else { 22 | observed = dist + gm([1.], [0.], [1.]); 23 | } end if; 24 | 25 | 26 | observe(out == 1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Laplace/Laplace2.soga: -------------------------------------------------------------------------------- 1 | array[2] lower; 2 | array[8] higher; 3 | sum = 0; 4 | 5 | for i in range(2) { 6 | lower[i] = uniform([50,100],2); 7 | sum = sum + lower[i]; 8 | } end for; 9 | 10 | for i in range(8) { 11 | higher[i] = uniform([500,600],2); 12 | sum = sum + higher[i]; 13 | } end for; 14 | 15 | sum = 0.1*sum; 16 | noise = gm([0.879, 0.121], [0, 0], [58.6279793543178, 186.4248959479004]); 17 | obs = sum + noise + gauss(0,0.1); 18 | 19 | observe(obs == 550); 20 | -------------------------------------------------------------------------------- /src/__pycache__/TRUNC.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | T__10=11 12 | T__11=12 13 | T__12=13 14 | T__13=14 15 | T__14=15 16 | T__15=16 17 | T__16=17 18 | IDV=18 19 | NUM=19 20 | COMM=20 21 | WS=21 22 | ALPHA=22 23 | DIGIT=23 24 | '<='=1 25 | '<'=2 26 | '>'=3 27 | '>='=4 28 | 'and'=5 29 | 'or'=6 30 | '=='=7 31 | '!='=8 32 | '*'=9 33 | '+'=10 34 | '-'=11 35 | '['=12 36 | ']'=13 37 | 'gm('=14 38 | ','=15 39 | ')'=16 40 | '_'=17 41 | -------------------------------------------------------------------------------- /src/__pycache__/TRUNCLexer.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | T__10=11 12 | T__11=12 13 | T__12=13 14 | T__13=14 15 | T__14=15 16 | T__15=16 17 | T__16=17 18 | IDV=18 19 | NUM=19 20 | COMM=20 21 | WS=21 22 | ALPHA=22 23 | DIGIT=23 24 | '<='=1 25 | '<'=2 26 | '>'=3 27 | '>='=4 28 | 'and'=5 29 | 'or'=6 30 | '=='=7 31 | '!='=8 32 | '*'=9 33 | '+'=10 34 | '-'=11 35 | '['=12 36 | ']'=13 37 | 'gm('=14 38 | ','=15 39 | ')'=16 40 | '_'=17 41 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills4.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | 7 | perfA = gm([1],[0],[15])+skillA; 8 | perfB = gm([1],[0],[15])+skillB; 9 | perfC = gm([1],[0],[15])+skillC; 10 | perfD = gm([1],[0],[15])+skillD; 11 | 12 | /* constraints to observations */ 13 | observe(perfA-perfB > 0); 14 | observe(perfA-perfC > 0); 15 | observe(perfA-perfD > 0); 16 | 17 | skip; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/LRC.soga: -------------------------------------------------------------------------------- 1 | array[40] z0; 2 | array[40] z1; 3 | 4 | z0curr = 0.; 5 | z1curr = 0.; 6 | 7 | for i in range(40){ 8 | 9 | z0[i] = z0curr + 0.000005 * z1curr; 10 | prod = _RL*z1curr; 11 | prod1 = _LC*z0[i]; 12 | z1[i] = z1curr + 0.000005 * _VL - 0.000005 * prod - 0.000005 * prod1; 13 | 14 | z0curr = z0[i]; 15 | z1curr = z1[i]; 16 | 17 | } end for; 18 | 19 | for i in range(40){ 20 | z0[i] = z0[i] + gm([1.], [0.], [0.000000001]); 21 | z1[i] = z1[i] + gm([1.], [0.], [0.0001]); 22 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/LotkaVolterra.soga: -------------------------------------------------------------------------------- 1 | array[30] x; 2 | array[30] y; 3 | 4 | xcurr = 20.; 5 | ycurr = 20.; 6 | 7 | for i in range(30){ 8 | 9 | prod = xcurr * ycurr; 10 | prod1 = _beta * prod; 11 | prod2 = _alpha * xcurr; 12 | 13 | x[i] = xcurr + 0.1 * prod2 - 0.1 * prod1; 14 | y[i] = 0.7 * ycurr + 0.1 * prod1; 15 | 16 | xcurr = x[i]; 17 | ycurr = y[i]; 18 | 19 | } end for; 20 | 21 | for i in range(30){ 22 | x[i] = x[i] + gm([1.], [0.], [10]); 23 | y[i] = y[i] + gm([1.], [0.], [10]); 24 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/SurveyUnbias.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1]; 2 | data ans2 = [0, 1]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(3) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/BayesPointMachine.soga: -------------------------------------------------------------------------------- 1 | data feat1 = [63, 16, 28, 55, 22, 20]; 2 | data feat2 = [38, 23, 40, 27, 18, 40]; 3 | data feat3 = [1, 1, 1, 1, 1, 1]; 4 | 5 | array[3] w; 6 | array[6] mean; 7 | 8 | for i in range(3) { 9 | w[i] = gm([1.], [0.], [1.]); 10 | } end for; 11 | 12 | for i in range(6) { 13 | mean[i] = feat1[i]*w[0] + feat2[i]*w[1] + feat3[i]*w[2]; 14 | mean[i] = gm([1.], [0.], [0.1]) + mean[i]; 15 | } end for; 16 | 17 | observe(mean[0] > 0); 18 | observe(mean[1] < 0); 19 | observe(mean[2] > 0); 20 | observe(mean[3] > 0); 21 | observe(mean[4] < 0); 22 | observe(mean[5] < 0); 23 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bayesian_linear_regression.soga: -------------------------------------------------------------------------------- 1 | data X = [0.3100, 0.3400, 0.3500, 0.3700, 0.3900, 0.3900, 0.4000, 0.4000, 0.4100, 2 | 0.4300, 0.4600, 0.4700, 0.5100, 0.5500, 0.5700, 0.5900, 0.6000, 0.6100, 3 | 0.6700, 0.6800, 0.7000, 0.7100, 0.7200, 0.7300, 0.7400, 0.7500, 0.7600, 4 | 0.7700, 0.7800, 0.9200]; 5 | 6 | array[30] y; 7 | 8 | w = gm([1.], [_muw], [_sigmaw]); 9 | b = gm([1.], [_mub], [_sigmab]); 10 | 11 | for i in range(30) { 12 | y[i] = w * X[i]; 13 | y[i] = y[i] + b; 14 | y[i] = y[i]+ gm([1.], [0.], [_sigmay]); 15 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bayesian_linear_regression2.soga: -------------------------------------------------------------------------------- 1 | data X = [0.3100, 0.3400, 0.3500, 0.3700, 0.3900, 0.3900, 0.4000, 0.4000, 0.4100, 2 | 0.4300, 0.4600, 0.4700, 0.5100, 0.5500, 0.5700, 0.5900, 0.6000, 0.6100, 3 | 0.6700, 0.6800, 0.7000, 0.7100, 0.7200, 0.7300, 0.7400, 0.7500, 0.7600, 4 | 0.7700, 0.7800, 0.9200]; 5 | 6 | array[30] y; 7 | 8 | w = gm([1.], [-7.96], [_sigmaw]); 9 | b = gm([1.], [20.84], [_sigmab]); 10 | 11 | for i in range(30) { 12 | y[i] = w * X[i]; 13 | y[i] = y[i] + b; 14 | y[i] = y[i]+ gm([1.], [0.], [_sigmay]); 15 | } end for; -------------------------------------------------------------------------------- /grammars/ASGMT.g4: -------------------------------------------------------------------------------- 1 | grammar ASGMT; 2 | 3 | assignment: symvars '=' add; 4 | 5 | add: add_term (('+')? add_term)*?; 6 | add_term: (term '*')? term; 7 | 8 | term: NUM | sub? par | sub? symvars | sub? gm; 9 | symvars : IDV | idd; 10 | idd : IDV '[' (NUM | IDV) ']'; 11 | gm: 'gm(' list ',' list ',' list ')'; 12 | list: '[' (NUM | par) (',' (NUM | par))*? ']'; 13 | 14 | sub: '-'; 15 | 16 | par: '_' IDV; 17 | 18 | IDV : ALPHA (ALPHA|DIGIT)*; 19 | NUM : ('-')? DIGIT+ ('.' DIGIT*)?; 20 | 21 | COMM : '/*' .*? '*/' -> skip; 22 | WS : (' '|'\t'|'\r'|'\n') -> skip; 23 | 24 | fragment 25 | ALPHA : [a-zA-Z]; 26 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=C/SurveyUnbiasPrune.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 1,0,0]; 2 | data ans2 = [0, 1,1,1,0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(6) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | observe(ansb1 == ans1[i]); 14 | 15 | }end for; 16 | 17 | for i in range(5) { 18 | 19 | if uniform([0,1],2) - bias2 < 0 { 20 | ansb2 = 1; 21 | } else { 22 | ansb2 = 0; 23 | } end if; 24 | observe(ansb2 == ans2[i]); 25 | 26 | } end for; 27 | -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Trueskills/TrueSkills5.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skill1 = gm([1.],[100.],[10.]); 3 | skill2 = gm([1.],[100.],[10.]); 4 | skill3 = gm([1.],[100.],[10.]); 5 | skill4 = gm([1.],[100.],[10.]); 6 | skill5 = gm([1.],[100.],[10.]); 7 | 8 | perf1 = gm([1.],[0.],[15.])+skill1; 9 | perf2 = gm([1.],[0.],[15.])+skill2; 10 | perf3 = gm([1.],[0.],[15.])+skill3; 11 | perf4 = gm([1.],[0.],[15.])+skill4; 12 | perf5 = gm([1.],[0.],[15.])+skill5; 13 | 14 | /* constraints to observations */ 15 | observe(perf1-perf2 > 0); 16 | observe(perf2-perf3 > 0); 17 | observe(perf3-perf4 > 0); 18 | observe(perf4-perf5 > 0); -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/SurveyUnbias1.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1]; 2 | data ans2 = [0, 1]; 3 | 4 | bias1 = uniform([0,1], 1); 5 | bias2 = uniform([0,1], 1); 6 | 7 | for i in range(3) { 8 | if uniform([0,1], 1) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1], 1) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/SurveyUnbias2.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1]; 2 | data ans2 = [0, 1]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(3) { 8 | if uniform([0,1], 2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1], 2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/SurveyUnbias4.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1]; 2 | data ans2 = [0, 1]; 3 | 4 | bias1 = uniform([0,1], 4); 5 | bias2 = uniform([0,1], 4); 6 | 7 | for i in range(3) { 8 | if uniform([0,1], 4) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1], 4) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/SurveyUnbias6.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1]; 2 | data ans2 = [0, 1]; 3 | 4 | bias1 = uniform([0,1], 6); 5 | bias2 = uniform([0,1], 6); 6 | 7 | for i in range(3) { 8 | if uniform([0,1], 6) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1], 6) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#components/SurveyUnbias.tpl: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1]; 2 | data ans2 = [0, 1]; 3 | 4 | bias1 = uniform([0,1], $cmp); 5 | bias2 = uniform([0,1], $cmp); 6 | 7 | for i in range(3) { 8 | if uniform([0,1], $cmp) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1], $cmp) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /grammars/.ipynb_checkpoints/ASGMT-checkpoint.g4: -------------------------------------------------------------------------------- 1 | grammar ASGMT; 2 | 3 | assignment: symvars '=' add; 4 | 5 | add: add_term (('+')? add_term)*?; 6 | add_term: (term '*')? term; 7 | 8 | term: NUM | sub? par | sub? symvars | sub? gm; 9 | symvars : IDV | idd; 10 | idd : IDV '[' (NUM | IDV) ']'; 11 | gm: 'gm(' list ',' list ',' list ')'; 12 | list: '[' (NUM | par) (',' (NUM | par))*? ']'; 13 | 14 | sub: '-'; 15 | 16 | par: '_' IDV; 17 | 18 | IDV : ALPHA (ALPHA|DIGIT)*; 19 | NUM : ('-')? DIGIT+ ('.' DIGIT*)?; 20 | 21 | COMM : '/*' .*? '*/' -> skip; 22 | WS : (' '|'\t'|'\r'|'\n') -> skip; 23 | 24 | fragment 25 | ALPHA : [a-zA-Z]; 26 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills5.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | skillE = gm([1],[100],[10]); 7 | 8 | 9 | 10 | perfA = gm([1],[0],[15])+skillA; 11 | perfB = gm([1],[0],[15])+skillB; 12 | perfC = gm([1],[0],[15])+skillC; 13 | perfD = gm([1],[0],[15])+skillD; 14 | perfE = gm([1],[0],[15])+skillE; 15 | 16 | 17 | /* constraints to observations */ 18 | observe(perfA-perfB > 0); 19 | observe(perfA-perfC > 0); 20 | observe(perfA-perfD > 0); 21 | observe(perfA-perfE > 0); 22 | 23 | 24 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/BayesianLotkaVolterra.soga: -------------------------------------------------------------------------------- 1 | array[30] x; 2 | array[30] y; 3 | 4 | xcurr = 20.; 5 | ycurr = 20.; 6 | 7 | alpha = gm([1.], [_mAlpha], [_stdAlpha]); 8 | beta = gm([1.], [_mBeta], [_stdBeta]); 9 | 10 | for i in range(30){ 11 | 12 | prod = xcurr * ycurr; 13 | prod1 = beta * prod; 14 | prod2 = alpha * xcurr; 15 | 16 | x[i] = xcurr + 0.1 * prod2 - 0.1 * prod1; 17 | y[i] = 0.7 * ycurr + 0.1 * prod1; 18 | 19 | xcurr = x[i]; 20 | ycurr = y[i]; 21 | 22 | } end for; 23 | 24 | 25 | for i in range(30){ 26 | x[i] = x[i] + gm([1.], [0.], [5.]); 27 | y[i] = y[i] + gm([1.], [0.], [5.]); 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#proc/continuous/SurveyUnbias/SurveyUnbias15.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(8) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(7) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.003625C/SurveyUnbiasPrune.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 1,0,0]; 2 | data ans2 = [0, 1,1,1,0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(6) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | prune(26); 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(5) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | prune(26); 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.00725C/SurveyUnbiasPrune.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 1,0,0]; 2 | data ans2 = [0, 1,1,1,0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(6) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | prune(52); 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(5) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | prune(52); 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias11.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(6) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(5) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias13.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(7) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(6) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias15.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(8) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(7) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias3.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(2) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(1) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias5.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(3) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(2) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias7.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(4) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(3) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/SurveyUnbias/SurveyUnbias9.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 0, 0, 1, 0, 1]; 2 | data ans2 = [0, 1, 0, 1, 1, 0, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(5) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(4) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.015C/SurveyUnbiasPrune.soga: -------------------------------------------------------------------------------- 1 | data ans1 = [1, 1, 1, 1, 0, 0]; 2 | data ans2 = [0, 1, 1, 1, 0]; 3 | 4 | bias1 = uniform([0,1], 2); 5 | bias2 = uniform([0,1], 2); 6 | 7 | for i in range(6) { 8 | if uniform([0,1],2) - bias1 < 0 { 9 | ansb1 = 1; 10 | } else { 11 | ansb1 = 0; 12 | } end if; 13 | prune(104); 14 | observe(ansb1 == ans1[i]); 15 | 16 | }end for; 17 | 18 | for i in range(5) { 19 | 20 | if uniform([0,1],2) - bias2 < 0 { 21 | ansb2 = 1; 22 | } else { 23 | ansb2 = 0; 24 | } end if; 25 | prune(104); 26 | observe(ansb2 == ans2[i]); 27 | 28 | } end for; 29 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bnn_one_x.soga: -------------------------------------------------------------------------------- 1 | w1 = gm([1.], [_muw1], [0.2]); 2 | w2 = gm([1.], [_muw2], [0.2]); 3 | w3 = gm([1.], [_muw3], [0.2]); 4 | w4 = gm([1.], [_muw4], [0.2]); 5 | b1 = gm([1.], [_mub1], [0.2]); 6 | b2 = gm([1.], [_mub2], [0.2]); 7 | b3 = gm([1.], [_mub3], [0.2]); 8 | 9 | 10 | a10 = _x * w1; 11 | a10 = a10 + b1; 12 | 13 | a11 = _x * w2; 14 | a11 = a11 + b2; 15 | 16 | if a10 < 0.0 { 17 | a10 = gauss(0., 0.01); 18 | } else { 19 | skip; 20 | } end if; 21 | 22 | if a11 < 0. { 23 | a11 = gauss(0., 0.01); 24 | } else { 25 | skip; 26 | } end if; 27 | 28 | p1 = w3 * a10; 29 | p2 = w4 * a11; 30 | y = p1+p2+b3; 31 | 32 | y = y + gauss(0., 0.5); 33 | 34 | -------------------------------------------------------------------------------- /grammars/.ipynb_checkpoints/TRUNC-checkpoint.g4: -------------------------------------------------------------------------------- 1 | grammar TRUNC; 2 | 3 | trunc: ineq | eq; 4 | 5 | ineq: lexpr inop const; 6 | inop: '<=' | '<' | '>' | '>='; 7 | 8 | eq: var eqop const; 9 | eqop: '==' | '!='; 10 | 11 | lexpr: monom ((sum|sub) monom)*?; 12 | monom: (const '*')? var; 13 | 14 | const: NUM | par | idd; 15 | var: IDV | idd | gm; 16 | idd : IDV '[' (NUM | IDV) ']'; 17 | gm: 'gm(' list ',' list ',' list ')'; 18 | list: '[' (NUM | par) (',' (NUM | par))*? ']'; 19 | 20 | sum: '+'; 21 | sub: '-'; 22 | 23 | par: '_' IDV; 24 | 25 | IDV : ALPHA (ALPHA|DIGIT)*; 26 | NUM : '-'? DIGIT+ ('.' DIGIT*)?; 27 | 28 | COMM : '/*' .*? '*/' -> skip; 29 | WS : (' '|'\t'|'\r'|'\n') -> skip; 30 | 31 | ALPHA : [a-zA-Z]; 32 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills6.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | skillE = gm([1],[100],[10]); 7 | skillF = gm([1],[100],[10]); 8 | 9 | 10 | 11 | perfA = gm([1],[0],[15])+skillA; 12 | perfB = gm([1],[0],[15])+skillB; 13 | perfC = gm([1],[0],[15])+skillC; 14 | perfD = gm([1],[0],[15])+skillD; 15 | perfE = gm([1],[0],[15])+skillE; 16 | perfF = gm([1],[0],[15])+skillF; 17 | 18 | 19 | /* constraints to observations */ 20 | observe(perfA-perfB > 0); 21 | observe(perfA-perfC > 0); 22 | observe(perfA-perfD > 0); 23 | observe(perfA-perfE > 0); 24 | observe(perfA-perfF > 0); 25 | 26 | -------------------------------------------------------------------------------- /programs/SOGA/ClinicalTrial.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(5) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(5) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/ClinicalTrial-checkpoint.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(5) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(5) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=C/ClinicalTrialPrune.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(5) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | observe(ycontr == contr[i]); 21 | } end for; 22 | 23 | for i in range(5) { 24 | if uniform([0,1],2) - probTreated < 0 { 25 | ytreat = 1; 26 | } else { 27 | ytreat = 0; 28 | } end if; 29 | observe(ytreat == treat[i]); 30 | } end for; 31 | -------------------------------------------------------------------------------- /programs/SOGA/ClinicalTrialPrune.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | prune(23); 14 | 15 | for i in range(5) { 16 | if uniform([0,1],2) - probContr < 0 { 17 | ycontr = 1; 18 | } else { 19 | ycontr = 0; 20 | } end if; 21 | observe(ycontr == contr[i]); 22 | prune(23); 23 | } end for; 24 | 25 | for i in range(5) { 26 | if uniform([0,1],2) - probTreated < 0 { 27 | ytreat = 1; 28 | } else { 29 | ytreat = 0; 30 | } end if; 31 | observe(ytreat == treat[i]); 32 | prune(23); 33 | } end for; 34 | -------------------------------------------------------------------------------- /programs/SOGA/ClickGraph.soga: -------------------------------------------------------------------------------- 1 | data obs0 = [1, 1, 1, 0, 0]; 2 | data obs1 = [1, 1, 1, 0, 0]; 3 | 4 | simAll = uniform([0,1],2); 5 | 6 | for i in range(5) { 7 | if uniform([0,1],2) - simAll < 0 { 8 | sim = 1; 9 | } else { 10 | sim = 0; 11 | } end if; 12 | 13 | beta1 = uniform([0,1],2); 14 | if sim == 1 { 15 | beta2 = beta1; 16 | } else { 17 | beta2 = uniform([0,1],2); 18 | } end if; 19 | 20 | if uniform([0,1],2) - beta1 < 0 { 21 | click0 = 1; 22 | } else { 23 | click0 = 0; 24 | } end if; 25 | observe(click0 == obs0[i]); 26 | 27 | if uniform([0,1],2) - beta2 < 0 { 28 | click1 = 1; 29 | } else { 30 | click1 = 0; 31 | } end if; 32 | observe(click1 == obs1[i]); 33 | 34 | } end for; 35 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial11.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(6) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(5) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial13.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1, 1, 0]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(7) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(6) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial15.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1, 1, 0]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(8) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(7) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial3.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(2) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(1) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial5.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(3) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(2) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial7.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(4) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(3) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial9.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(5) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(4) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#proc/continuous/ClinicalTrial/ClinicalTrial15.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1, 1, 0]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(8) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | for i in range(7) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for; 32 | -------------------------------------------------------------------------------- /programs/SOGA/AQUA/Altermu2.soga: -------------------------------------------------------------------------------- 1 | data x = [-2.57251482, 0.33806206, 2.71757796, 1.09861336, 2.85603752, -0.91651351, 0.15555127, -2.68160347, 2.47043789, 3.47459025, 1.63949862, -1.32148757, 2.64187513, 0.30357848, -4.09546231, -1.50709863, -0.99517866, -2.0648892 , -2.40317949, 3.46383544, 0.91173696, 1.18222221, 0.04235722, -0.52815171, 1.15551598, -1.62749724, 0.71473237, -1.08458812, 4.66020296, 1.24563831, -0.67970862, 0.93461681, 1.18187607, -1.49501051, 2.44755622, -2.06424237, -0.04584074, 1.93396696, 1.07685273, -0.09837907]; 2 | 3 | array[40] y; 4 | 5 | w1 = uniform([-10, 10], 2); 6 | w2 = uniform([-10, 10], 2); 7 | 8 | 9 | for i in range(40) { 10 | y[i] = w1 + w2 + gm([1.], [0.], [1.]); 11 | } end for; 12 | 13 | for i in range(40) { 14 | observe(y[i] == x[i]); 15 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#branches/continuous/ClinicalTrial/ClinicalTrial1.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0, 1, 0, 0, 1, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | 14 | for i in range(1) { 15 | if uniform([0,1],2) - probContr < 0 { 16 | ycontr = 1; 17 | } else { 18 | ycontr = 0; 19 | } end if; 20 | 21 | observe(ycontr == contr[i]); 22 | } end for; 23 | 24 | /*for i in range(5) { 25 | if uniform([0,1],2) - probTreated < 0 { 26 | ytreat = 1; 27 | } else { 28 | ytreat = 0; 29 | } end if; 30 | observe(ytreat == treat[i]); 31 | } end for;*/ 32 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/PID.soga: -------------------------------------------------------------------------------- 1 | array[51] ang; 2 | 3 | v = 0; 4 | currAng = 0.5; 5 | id = 0; 6 | oldv = 0; 7 | 8 | for i in range(51) { 9 | 10 | ang[i] = currAng; 11 | 12 | d = 3.14 - currAng; 13 | torq = _s0*d + _s1*v + _s2*id; 14 | id = 0.9*id + 0.1*d; 15 | oldv = v; 16 | 17 | v = v + 0.01*torq + gauss(0, 0.25); 18 | currAng = currAng + 0.05*v + 0.05*oldv + gauss(0., 0.25); 19 | 20 | /*if currAng > 6.28 { 21 | currAng = currAng - 6.28; 22 | } else { 23 | if currAng < 0 { 24 | currAng = currAng + 6.28; 25 | } else { 26 | skip; 27 | } end if; 28 | } end if; */ 29 | 30 | } end for; 31 | 32 | ang[50] = currAng; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=C/ClickGraphPrune.soga: -------------------------------------------------------------------------------- 1 | data obs0 = [1, 1, 1, 0, 0]; 2 | data obs1 = [1, 1, 1, 0, 0]; 3 | 4 | simAll = uniform([0,1],2); 5 | 6 | for i in range(5) { 7 | if uniform([0,1],2) - simAll < 0 { 8 | sim = 1; 9 | } else { 10 | sim = 0; 11 | } end if; 12 | 13 | beta1 = uniform([0,1],2); 14 | if sim == 1 { 15 | beta2 = beta1; 16 | } else { 17 | beta2 = uniform([0,1],2); 18 | } end if; 19 | 20 | if uniform([0,1],2) - beta1 < 0 { 21 | click0 = 1; 22 | } else { 23 | click0 = 0; 24 | } end if; 25 | observe(click0 == obs0[i]); 26 | 27 | if uniform([0,1],2) - beta2 < 0 { 28 | click1 = 1; 29 | } else { 30 | click1 = 0; 31 | } end if; 32 | observe(click1 == obs1[i]); 33 | 34 | } end for; 35 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/timeseries/TimeSeries15.soga: -------------------------------------------------------------------------------- 1 | a = gm([1.], [1.], [1.]); 2 | b = gm([1.], [1.], [1.]); 3 | lamb = uniform([0,1], 2); 4 | 5 | y0 = 1; 6 | y1 = lamb*y0; 7 | y1 = y1 + 0.5*b + a + gauss(0,0.5); 8 | y2 = lamb*y1; 9 | y2 = y2 + 0.5*b + a + gauss(0,0.5); 10 | y3 = lamb*y2; 11 | y3 = y3 + 0.5*b + a + gauss(0,0.5); 12 | y4 = lamb*y3; 13 | y4 = y4 + 0.5*b + a + gauss(0,0.5); 14 | y5 = lamb*y4; 15 | y5 = y5 + 0.5*b + a + gauss(0,0.5); 16 | y6 = lamb*y5; 17 | y6 = y6 + 0.5*b + a + gauss(0,0.5); 18 | y7 = lamb*y6; 19 | y7 = y7 + 0.5*b + a + gauss(0,0.5); 20 | y8 = lamb*y7; 21 | y8 = y8 + 0.5*b + a + gauss(0,0.5); 22 | y9 = lamb*y8; 23 | y9 = y9 + 0.5*b + a + gauss(0,0.5); 24 | y10 = lamb*y9; 25 | y10 = y10 + 0.5*b + a + gauss(0,0.5); 26 | y11 = lamb*y10; 27 | y11 = y11 + 0.5*b + a + gauss(0,0.5); 28 | observe(y11 > 0); 29 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills7.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | skillE = gm([1],[100],[10]); 7 | skillF = gm([1],[100],[10]); 8 | skillG = gm([1],[100],[10]); 9 | 10 | 11 | 12 | perfA = gm([1],[0],[15])+skillA; 13 | perfB = gm([1],[0],[15])+skillB; 14 | perfC = gm([1],[0],[15])+skillC; 15 | perfD = gm([1],[0],[15])+skillD; 16 | perfE = gm([1],[0],[15])+skillE; 17 | perfF = gm([1],[0],[15])+skillF; 18 | perfG = gm([1],[0],[15])+skillG; 19 | 20 | 21 | 22 | /* constraints to observations */ 23 | observe(perfA-perfB > 0); 24 | observe(perfA-perfC > 0); 25 | observe(perfA-perfD > 0); 26 | observe(perfA-perfE > 0); 27 | observe(perfA-perfF > 0); 28 | observe(perfA-perfG > 0); 29 | 30 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.015C/ClinicalTrialPrune.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | prune(89); 14 | 15 | for i in range(5) { 16 | if uniform([0,1],2) - probContr < 0 { 17 | ycontr = 1; 18 | } else { 19 | ycontr = 0; 20 | } end if; 21 | prune(89); 22 | observe(ycontr == contr[i]); 23 | 24 | } end for; 25 | 26 | for i in range(5) { 27 | if uniform([0,1],2) - probTreated < 0 { 28 | ytreat = 1; 29 | } else { 30 | ytreat = 0; 31 | } end if; 32 | prune(89); 33 | observe(ytreat == treat[i]); 34 | 35 | } end for; 36 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.003625C/ClinicalTrialPrune.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | prune(23); 14 | 15 | for i in range(5) { 16 | if uniform([0,1],2) - probContr < 0 { 17 | ycontr = 1; 18 | } else { 19 | ycontr = 0; 20 | } end if; 21 | prune(23); 22 | observe(ycontr == contr[i]); 23 | 24 | } end for; 25 | 26 | for i in range(5) { 27 | if uniform([0,1],2) - probTreated < 0 { 28 | ytreat = 1; 29 | } else { 30 | ytreat = 0; 31 | } end if; 32 | prune(23); 33 | observe(ytreat == treat[i]); 34 | 35 | } end for; 36 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.00725C/ClinicalTrialPrune.soga: -------------------------------------------------------------------------------- 1 | data contr = [0, 0, 1, 0, 0]; 2 | data treat = [1, 0, 1, 1, 1]; 3 | 4 | 5 | isEff = gm([0.5,0.5],[1.,0.],[0.,0.]); 6 | probTreated = uniform([0,1],2); 7 | 8 | if isEff == 1 { 9 | probContr = uniform([0,1],2); 10 | } else { 11 | probContr = probTreated; 12 | } end if; 13 | prune(45); 14 | 15 | for i in range(5) { 16 | if uniform([0,1],2) - probContr < 0 { 17 | ycontr = 1; 18 | } else { 19 | ycontr = 0; 20 | } end if; 21 | prune(45); 22 | observe(ycontr == contr[i]); 23 | 24 | } end for; 25 | 26 | for i in range(5) { 27 | if uniform([0,1],2) - probTreated < 0 { 28 | ytreat = 1; 29 | } else { 30 | ytreat = 0; 31 | } end if; 32 | prune(45); 33 | observe(ytreat == treat[i]); 34 | 35 | } end for; 36 | -------------------------------------------------------------------------------- /programs/SOGA/AQUA/Altermu.soga: -------------------------------------------------------------------------------- 1 | data x = [-2.57251482, 0.33806206, 2.71757796, 1.09861336, 2.85603752, -0.91651351, 0.15555127, -2.68160347, 2.47043789, 3.47459025,1.63949862, -1.32148757, 2.64187513, 0.30357848, -4.09546231,-1.50709863, -0.99517866, -2.0648892 , -2.40317949, 3.46383544,0.91173696, 1.18222221, 0.04235722, -0.52815171, 1.15551598,-1.62749724, 0.71473237, -1.08458812, 4.66020296, 1.24563831,-0.67970862, 0.93461681, 1.18187607, -1.49501051, 2.44755622,-2.06424237, -0.04584074, 1.93396696, 1.07685273, -0.09837907]; 2 | 3 | array[40] y; 4 | 5 | w1 = gm([1.], [0.], [5.]); 6 | w2 = gm([1.], [0.], [5.]); 7 | w3 = gm([1.], [0.], [5.]); 8 | 9 | mean = w1*w2; 10 | mean = 3*mean - w3; 11 | 12 | for i in range(40) { 13 | y[i] = gm([1.], [0.], [1.]) + mean; 14 | } end for; 15 | 16 | for i in range(40) { 17 | observe(y[i] == x[i]); 18 | } end for; -------------------------------------------------------------------------------- /src/SOGA.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | T__10=11 12 | T__11=12 13 | T__12=13 14 | T__13=14 15 | T__14=15 16 | T__15=16 17 | T__16=17 18 | T__17=18 19 | T__18=19 20 | T__19=20 21 | T__20=21 22 | T__21=22 23 | T__22=23 24 | T__23=24 25 | T__24=25 26 | T__25=26 27 | T__26=27 28 | T__27=28 29 | T__28=29 30 | T__29=30 31 | T__30=31 32 | IDV=32 33 | NUM=33 34 | COMM=34 35 | WS=35 36 | DIGIT=36 37 | ';'=1 38 | 'data'=2 39 | '='=3 40 | 'array['=4 41 | ']'=5 42 | 'skip'=6 43 | '+'=7 44 | '-'=8 45 | '*'=9 46 | 'end if'=10 47 | 'if'=11 48 | '{'=12 49 | '}'=13 50 | 'else'=14 51 | '<'=15 52 | '<='=16 53 | '>='=17 54 | '>'=18 55 | '=='=19 56 | '!='=20 57 | 'prune('=21 58 | ')'=22 59 | 'observe('=23 60 | 'for'=24 61 | 'in range('=25 62 | 'end for'=26 63 | '['=27 64 | 'gm('=28 65 | ','=29 66 | 'uniform('=30 67 | '_'=31 68 | -------------------------------------------------------------------------------- /programs/SOGA/ClickGraphPrune.soga: -------------------------------------------------------------------------------- 1 | data obs0 = [1, 1, 1, 0, 0]; 2 | data obs1 = [1, 1, 1, 0, 0]; 3 | 4 | simAll = uniform([0,1],2); 5 | 6 | for i in range(5) { 7 | if uniform([0,1],2) - simAll < 0 { 8 | sim = 1; 9 | } else { 10 | sim = 0; 11 | } end if; 12 | prune(35); 13 | 14 | beta1 = uniform([0,1],2); 15 | if sim == 1 { 16 | beta2 = beta1; 17 | } else { 18 | beta2 = uniform([0,1],2); 19 | } end if; 20 | prune(35); 21 | 22 | if uniform([0,1],2) - beta1 < 0 { 23 | click0 = 1; 24 | } else { 25 | click0 = 0; 26 | } end if; 27 | observe(click0 == obs0[i]); 28 | prune(35); 29 | 30 | if uniform([0,1],2) - beta2 < 0 { 31 | click1 = 1; 32 | } else { 33 | click1 = 0; 34 | } end if; 35 | observe(click1 == obs1[i]); 36 | prune(35); 37 | 38 | } end for; 39 | -------------------------------------------------------------------------------- /src/SOGALexer.tokens: -------------------------------------------------------------------------------- 1 | T__0=1 2 | T__1=2 3 | T__2=3 4 | T__3=4 5 | T__4=5 6 | T__5=6 7 | T__6=7 8 | T__7=8 9 | T__8=9 10 | T__9=10 11 | T__10=11 12 | T__11=12 13 | T__12=13 14 | T__13=14 15 | T__14=15 16 | T__15=16 17 | T__16=17 18 | T__17=18 19 | T__18=19 20 | T__19=20 21 | T__20=21 22 | T__21=22 23 | T__22=23 24 | T__23=24 25 | T__24=25 26 | T__25=26 27 | T__26=27 28 | T__27=28 29 | T__28=29 30 | T__29=30 31 | T__30=31 32 | IDV=32 33 | NUM=33 34 | COMM=34 35 | WS=35 36 | DIGIT=36 37 | ';'=1 38 | 'data'=2 39 | '='=3 40 | 'array['=4 41 | ']'=5 42 | 'skip'=6 43 | '+'=7 44 | '-'=8 45 | '*'=9 46 | 'end if'=10 47 | 'if'=11 48 | '{'=12 49 | '}'=13 50 | 'else'=14 51 | '<'=15 52 | '<='=16 53 | '>='=17 54 | '>'=18 55 | '=='=19 56 | '!='=20 57 | 'prune('=21 58 | ')'=22 59 | 'observe('=23 60 | 'for'=24 61 | 'in range('=25 62 | 'end for'=26 63 | '['=27 64 | 'gm('=28 65 | ','=29 66 | 'uniform('=30 67 | '_'=31 68 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/LRC_windup.soga: -------------------------------------------------------------------------------- 1 | array[50] z0; 2 | array[50] z1; 3 | array[50] integ; 4 | 5 | z0curr = 0.; 6 | z1curr = 0.; 7 | icurr = 0.; 8 | 9 | for i in range(50){ 10 | 11 | e = 1. - z0curr; 12 | uc = _Kp * e; 13 | uc = uc + _Ki * icurr; 14 | 15 | if uc > 10.{ 16 | V0 = 10.; 17 | } else{ 18 | if uc < -10. { 19 | V0 = -10.; 20 | } else { 21 | V0 = uc; 22 | } end if; 23 | } end if; 24 | 25 | z0[i] = z0curr + 0.01 * z1curr; 26 | prod = _RL*z1curr; 27 | prod1 = _LC*z0[i]; 28 | prod2 = _L * V0; 29 | z1[i] = z1curr + 0.01 * prod2 - 0.01* prod - 0.01 * prod1; 30 | 31 | prod3 = _kaw * V0; 32 | prod4 = _kaw * uc; 33 | 34 | integ[i] = icurr + 0.01 * e + 0.01 * prod3 - 0.01 * prod4; 35 | 36 | z0curr = z0[i]; 37 | z1curr = z1[i]; 38 | icurr = integ[i]; 39 | 40 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/Thermostat.soga: -------------------------------------------------------------------------------- 1 | array[31] T; 2 | 3 | currT = 16; 4 | isOn = -1; 5 | 6 | for i in range(31) { 7 | 8 | T[i] = currT; 9 | 10 | /* Temperature update */ 11 | if isOn > 0 { 12 | newT = 0.99*currT + 0.5 + gauss(0., 0.1); 13 | } else { 14 | newT = 0.99*currT + gauss(0., 0.1); 15 | } end if; 16 | 17 | currT = newT; 18 | 19 | /* Check on thermostat */ 20 | if isOn > 0 { 21 | if newT > _tOff { 22 | isOn = -1; 23 | } else { 24 | skip; 25 | } end if; 26 | } else { 27 | if newT < _tOn { 28 | isOn = 1; 29 | } else { 30 | skip; 31 | } end if; 32 | } end if; 33 | 34 | } end for; 35 | 36 | T[30] = currT; 37 | 38 | for i in range(30) { 39 | T[i] = T[i] + gauss(0, 1); 40 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills8.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | skillE = gm([1],[100],[10]); 7 | skillF = gm([1],[100],[10]); 8 | skillG = gm([1],[100],[10]); 9 | skillH = gm([1],[100],[10]); 10 | 11 | 12 | 13 | perfA = gm([1],[0],[15])+skillA; 14 | perfB = gm([1],[0],[15])+skillB; 15 | perfC = gm([1],[0],[15])+skillC; 16 | perfD = gm([1],[0],[15])+skillD; 17 | perfE = gm([1],[0],[15])+skillE; 18 | perfF = gm([1],[0],[15])+skillF; 19 | perfG = gm([1],[0],[15])+skillG; 20 | perfH = gm([1],[0],[15])+skillH; 21 | 22 | 23 | 24 | /* constraints to observations */ 25 | observe(perfA-perfB > 0); 26 | observe(perfA-perfC > 0); 27 | observe(perfA-perfD > 0); 28 | observe(perfA-perfE > 0); 29 | observe(perfA-perfF > 0); 30 | observe(perfA-perfG > 0); 31 | observe(perfA-perfH > 0); 32 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.015C/ClickGraphPrune.soga: -------------------------------------------------------------------------------- 1 | data obs0 = [1, 1, 1, 0, 0]; 2 | data obs1 = [1, 1, 1, 0, 0]; 3 | 4 | simAll = uniform([0,1],2); 5 | 6 | for i in range(5) { 7 | if uniform([0,1],2) - simAll < 0 { 8 | sim = 1; 9 | } else { 10 | sim = 0; 11 | } end if; 12 | prune(69); 13 | 14 | beta1 = uniform([0,1],2); 15 | if sim == 1 { 16 | beta2 = beta1; 17 | } else { 18 | beta2 = uniform([0,1],2); 19 | } end if; 20 | prune(69); 21 | 22 | if uniform([0,1],2) - beta1 < 0 { 23 | click0 = 1; 24 | } else { 25 | click0 = 0; 26 | } end if; 27 | prune(69); 28 | observe(click0 == obs0[i]); 29 | 30 | 31 | if uniform([0,1],2) - beta2 < 0 { 32 | click1 = 1; 33 | } else { 34 | click1 = 0; 35 | } end if; 36 | prune(69); 37 | observe(click1 == obs1[i]); 38 | 39 | 40 | } end for; 41 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.003625C/ClickGraphPrune.soga: -------------------------------------------------------------------------------- 1 | data obs0 = [1, 1, 1, 0, 0]; 2 | data obs1 = [1, 1, 1, 0, 0]; 3 | 4 | simAll = uniform([0,1],2); 5 | 6 | for i in range(5) { 7 | if uniform([0,1],2) - simAll < 0 { 8 | sim = 1; 9 | } else { 10 | sim = 0; 11 | } end if; 12 | prune(18); 13 | 14 | beta1 = uniform([0,1],2); 15 | if sim == 1 { 16 | beta2 = beta1; 17 | } else { 18 | beta2 = uniform([0,1],2); 19 | } end if; 20 | prune(18); 21 | 22 | if uniform([0,1],2) - beta1 < 0 { 23 | click0 = 1; 24 | } else { 25 | click0 = 0; 26 | } end if; 27 | prune(18); 28 | observe(click0 == obs0[i]); 29 | 30 | 31 | if uniform([0,1],2) - beta2 < 0 { 32 | click1 = 1; 33 | } else { 34 | click1 = 0; 35 | } end if; 36 | prune(18); 37 | observe(click1 == obs1[i]); 38 | 39 | 40 | } end for; 41 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.00725C/ClickGraphPrune.soga: -------------------------------------------------------------------------------- 1 | data obs0 = [1, 1, 1, 0, 0]; 2 | data obs1 = [1, 1, 1, 0, 0]; 3 | 4 | simAll = uniform([0,1],2); 5 | 6 | for i in range(5) { 7 | if uniform([0,1],2) - simAll < 0 { 8 | sim = 1; 9 | } else { 10 | sim = 0; 11 | } end if; 12 | prune(35); 13 | 14 | beta1 = uniform([0,1],2); 15 | if sim == 1 { 16 | beta2 = beta1; 17 | } else { 18 | beta2 = uniform([0,1],2); 19 | } end if; 20 | prune(35); 21 | 22 | if uniform([0,1],2) - beta1 < 0 { 23 | click0 = 1; 24 | } else { 25 | click0 = 0; 26 | } end if; 27 | prune(35); 28 | observe(click0 == obs0[i]); 29 | 30 | 31 | if uniform([0,1],2) - beta2 < 0 { 32 | click1 = 1; 33 | } else { 34 | click1 = 0; 35 | } end if; 36 | prune(35); 37 | observe(click1 == obs1[i]); 38 | 39 | 40 | } end for; 41 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/ThermostatBayesian.soga: -------------------------------------------------------------------------------- 1 | array[11] T; 2 | 3 | currT = 17; 4 | isOn = -1; 5 | 6 | /* 7 | tOn = gm([1.], [16.], [0.1]); 8 | tOff = gm([1.], [22.], [0.1]); 9 | */ 10 | 11 | tOn = 16.; 12 | tOff = 22.; 13 | 14 | for i in range(11) { 15 | 16 | T[i] = currT; 17 | 18 | /* Temperature update */ 19 | if isOn > 0 { 20 | newT = 0.99*currT + 0.5 + gauss(0., 0.5); 21 | } else { 22 | newT = 0.99*currT + gauss(0., 0.5); 23 | } end if; 24 | 25 | currT = newT; 26 | 27 | /* Check on thermostat */ 28 | if isOn > 0 { 29 | if newT - tOff > 0 { 30 | isOn = -1; 31 | } else { 32 | skip; 33 | } end if; 34 | } else { 35 | if newT - tOn < 0 { 36 | isOn = 1; 37 | } else { 38 | skip; 39 | } end if; 40 | } end if; 41 | 42 | } end for; 43 | 44 | T[10] = currT; -------------------------------------------------------------------------------- /grammars/TRUNC.g4: -------------------------------------------------------------------------------- 1 | grammar TRUNC; 2 | 3 | trunc: ineq | eq | and_trunc | or_trunc; 4 | 5 | ineq: lexpr inop const_expr; 6 | inop: '<=' | '<' | '>' | '>='; 7 | 8 | and_trunc: IDV inop const_expr 'and' IDV inop const_expr; 9 | or_trunc: IDV inop const_expr 'or' IDV inop const_expr; 10 | 11 | eq: var eqop const_expr; 12 | eqop: '==' | '!='; 13 | 14 | lexpr: monom (aop monom)*?; 15 | monom: (const MUL)? var; 16 | 17 | const_expr: const (aop pos_const)*?; 18 | pos_const: POSNUM | par | idd; 19 | const: num | par | idd; 20 | 21 | num: POSNUM | SUB POSNUM; 22 | var: IDV | idd | gm; 23 | idd : IDV '[' (num | IDV) ']'; 24 | gm: 'gm(' list ',' list ',' list ')'; 25 | list: '[' (num | par) (',' (num | par))*? ']'; 26 | 27 | par: '_' IDV; 28 | 29 | aop: SUM | SUB; 30 | SUM: '+'; 31 | SUB: '-'; 32 | MUL: '*'; 33 | 34 | 35 | IDV : ALPHA (ALPHA|DIGIT)*; 36 | 37 | POSNUM : DIGIT+ ('.' DIGIT*)?; 38 | 39 | COMM : '/*' .*? '*/' -> skip; 40 | WS : (' '|'\t'|'\r'|'\n') -> skip; 41 | 42 | ALPHA : [a-zA-Z]; 43 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/Burglar.soga: -------------------------------------------------------------------------------- 1 | earthquake = gm([0.0001, 0.9999], [1., 0.], [0., 0.]); 2 | burglary = gm([0.001, 0.999], [1., 0.], [0., 0.]); 3 | 4 | if earthquake == 0 { 5 | if burglary == 0 { 6 | alarm = 0; 7 | } else { 8 | alarm = 1; 9 | } end if; 10 | } else { 11 | alarm = 1; 12 | } end if; 13 | 14 | if earthquake == 1 { 15 | phoneWorking = gm([0.7, 0.3], [1., 0.], [0., 0.]); 16 | } else { 17 | phoneWorking = gm([0.99, 0.01], [1., 0.], [0., 0.]); 18 | } end if; 19 | 20 | if alarm == 1 { 21 | if earthquake == 1 { 22 | maryWakes = gm([0.8, 0.2], [1., 0.], [0., 0.]); 23 | } else { 24 | maryWakes = gm([0.6, 0.4], [1., 0.], [0., 0.]); 25 | } end if; 26 | } else { 27 | maryWakes = gm([0.2, 0.8], [1., 0.], [0., 0.]); 28 | } end if; 29 | 30 | if maryWakes == 1 { 31 | if phoneWorking == 1 { 32 | called = 1; 33 | } else { 34 | called = 0; 35 | } end if; 36 | } else { 37 | called = 0; 38 | } end if; 39 | 40 | observe(called == 1); 41 | 42 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills9.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | skillE = gm([1],[100],[10]); 7 | skillF = gm([1],[100],[10]); 8 | skillG = gm([1],[100],[10]); 9 | skillH = gm([1],[100],[10]); 10 | skillI = gm([1],[100],[10]); 11 | 12 | 13 | perfA = gm([1],[0],[15])+skillA; 14 | perfB = gm([1],[0],[15])+skillB; 15 | perfC = gm([1],[0],[15])+skillC; 16 | perfD = gm([1],[0],[15])+skillD; 17 | perfE = gm([1],[0],[15])+skillE; 18 | perfF = gm([1],[0],[15])+skillF; 19 | perfG = gm([1],[0],[15])+skillG; 20 | perfH = gm([1],[0],[15])+skillH; 21 | perfI = gm([1],[0],[15])+skillI; 22 | 23 | 24 | /* constraints to observations */ 25 | observe(perfA-perfB > 0); 26 | observe(perfA-perfC > 0); 27 | observe(perfA-perfD > 0); 28 | observe(perfA-perfE > 0); 29 | observe(perfA-perfF > 0); 30 | observe(perfA-perfG > 0); 31 | observe(perfA-perfH > 0); 32 | observe(perfA-perfI > 0); 33 | -------------------------------------------------------------------------------- /programs/SOGA/.ipynb_checkpoints/Burglar-checkpoint.soga: -------------------------------------------------------------------------------- 1 | earthquake = gm([0.0001, 0.9999], [1., 0.], [0., 0.]); 2 | burglary = gm([0.001, 0.999], [1., 0.], [0., 0.]); 3 | 4 | if earthquake == 0 { 5 | if burglary == 0 { 6 | alarm = 0; 7 | } else { 8 | alarm = 1; 9 | } end if; 10 | } else { 11 | alarm = 1; 12 | } end if; 13 | 14 | if earthquake == 1 { 15 | phoneWorking = gm([0.7, 0.3], [1., 0.], [0., 0.]); 16 | } else { 17 | phoneWorking = gm([0.99, 0.01], [1., 0.], [0., 0.]); 18 | } end if; 19 | 20 | if alarm == 1 { 21 | if earthquake == 1 { 22 | maryWakes = gm([0.8, 0.2], [1., 0.], [0., 0.]); 23 | } else { 24 | maryWakes = gm([0.6, 0.4], [1., 0.], [0., 0.]); 25 | } end if; 26 | } else { 27 | maryWakes = gm([0.2, 0.8], [1., 0.], [0., 0.]); 28 | } end if; 29 | 30 | if maryWakes == 1 { 31 | if phoneWorking == 1 { 32 | called = 1; 33 | } else { 34 | called = 0; 35 | } end if; 36 | } else { 37 | called = 0; 38 | } end if; 39 | 40 | /*observe(called == 1);*/ 41 | 42 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bnn3_mean_only.soga: -------------------------------------------------------------------------------- 1 | data X = [-1.0000, -0.7778, -0.5556, -0.3333, -0.1111, 0.1111, 0.3333, 0.5556, 0.7778, 1.0000]; 2 | 3 | 4 | /* 5 | data X = [ 0.3333, 0.5556, 0.7778 ] 6 | */ 7 | 8 | array[10] y; 9 | 10 | w1 = gm([1.], [_muw1], [0.2]); 11 | w2 = gm([1.], [_muw2], [0.2]); 12 | w3 = gm([1.], [_muw3], [0.2]); 13 | w4 = gm([1.], [_muw4], [0.2]); 14 | b1 = gm([1.], [_mub1], [0.2]); 15 | b2 = gm([1.], [_mub2], [0.2]); 16 | b3 = gm([1.], [_mub3], [0.2]); 17 | 18 | for i in range(10) { 19 | 20 | a10 = w1 * X[i]; 21 | a10 = a10 + b1; 22 | 23 | a11 = w2 * X[i]; 24 | a11 = a11 + b2; 25 | 26 | if a10 < 0.0 { 27 | a10 = gauss(0., 0.01); 28 | } else { 29 | skip; 30 | } end if; 31 | 32 | if a11 < 0. { 33 | a11 = gauss(0., 0.01); 34 | } else { 35 | skip; 36 | } end if; 37 | 38 | p1 = w3 * a10; 39 | p2 = w4 * a11; 40 | y[i] = p1+p2+b3; 41 | 42 | y[i] = y[i] + gauss(0., 0.5); 43 | 44 | prune(1500); 45 | 46 | } end for; 47 | 48 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/.ipynb_checkpoints/Thermostat-checkpoint.soga: -------------------------------------------------------------------------------- 1 | array[11] T; 2 | 3 | currT = gauss(16, 0.01); /* smoothing added here */ 4 | isOn = gauss(-1, 0.01); /* smoothing added here */ 5 | 6 | for i in range(11) { 7 | 8 | T[i] = currT + gauss(0., 0.05); /* smoothing added here */ 9 | 10 | if isOn > 0 { 11 | newT = 0.99*currT + 0.5 + gauss(0., 0.5); 12 | } else { 13 | newT = 0.99*currT + gauss(0., 0.5); 14 | } end if; 15 | 16 | currT = newT + gauss(0., 0.05); /* smoothing added here */ 17 | 18 | if isOn > 0 { 19 | if currT > _tOff { 20 | isOn = gauss(-1, 0.01); /* smoothing added here */ 21 | } else { 22 | skip; 23 | } end if; 24 | } else { 25 | if currT < _tOn { 26 | isOn = gauss(1, 0.01); /* smoothing added here */ 27 | } else { 28 | skip; 29 | } end if; 30 | } end if; 31 | 32 | } end for; 33 | 34 | T[10] = currT + gauss(0., 0.05); /* smoothing added here */ -------------------------------------------------------------------------------- /programs/SOGA/AQUA/NormalMixtures.soga: -------------------------------------------------------------------------------- 1 | data obs = [10.0787617156523, -9.51866467444093, 9.73922587306449, 11.5662681883816, 9.62798489000074, -9.60265090119919, 8.90114345923455, 10.866328444034, 10.5347883361026, 8.60577222463504, -10.625227428575, -9.08615131315038, -8.99280046532217, 9.43533905966944, 8.92696803962787, 9.642301288006, 9.42066621557773, 9.90838406119759, 9.63911912487384, 7.55585122379505, 9.58069898235901, 9.63228461457187, -9.99589804304319, 8.61024296515084, -10.4988882191036, -8.45028703711596, 9.76066425342707, -8.68129886943495, 9.83763492226261, 7.29698608457303, 8.78881675784227, 10.6057117460834, 10.2807363791435, 9.54352982843898, -10.9911972452721, 12.2061931600758, 7.76887153466896, 10.7523541087606, -9.98525551020183, 10.6248182699128]; 2 | 3 | theta = uniform([0,1], 2); 4 | mu1 = gm([1.], [-10], [1]); 5 | mu2 = gm([1.], [10], [1]); 6 | 7 | for i in range(40) { 8 | if uniform([0,1], 2) - theta < 0 { 9 | y = gm([1.],[0.],[1.]) + mu1; 10 | } else { 11 | y = gm([1.],[0.],[1.]) + mu2; 12 | } end if; 13 | observe(y == obs[i]); 14 | }end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/AQUA/NormalMixturesPrune.soga: -------------------------------------------------------------------------------- 1 | data obs = [10.0787617156523, -9.51866467444093, 9.73922587306449, 11.5662681883816, 9.62798489000074, -9.60265090119919, 8.90114345923455, 10.866328444034, 10.5347883361026, 8.60577222463504, -10.625227428575, -9.08615131315038, -8.99280046532217, 9.43533905966944, 8.92696803962787, 9.642301288006, 9.42066621557773, 9.90838406119759, 9.63911912487384, 7.55585122379505, 9.58069898235901, 9.63228461457187, -9.99589804304319, 8.61024296515084, -10.4988882191036, -8.45028703711596, 9.76066425342707, -8.68129886943495, 9.83763492226261, 7.29698608457303, 8.78881675784227, 10.6057117460834, 10.2807363791435, 9.54352982843898, -10.9911972452721, 12.2061931600758, 7.76887153466896, 10.7523541087606, -9.98525551020183, 10.6248182699128]; 2 | 3 | theta = uniform([0,1], 2); 4 | mu1 = gm([1.], [-10], [1]); 5 | mu2 = gm([1.], [10], [1]); 6 | 7 | for i in range(40) { 8 | if uniform([0,1], 2) - theta < 0 { 9 | y = gm([1.],[0.],[1.]) + mu1; 10 | } else { 11 | y = gm([1.],[0.],[1.]) + mu2; 12 | } end if; 13 | observe(y == obs[i]); 14 | prune(200); 15 | }end for; 16 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/trueskills/TrueSkills10.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skillA = gm([1],[100],[10]); 3 | skillB = gm([1],[100],[10]); 4 | skillC = gm([1],[100],[10]); 5 | skillD = gm([1],[100],[10]); 6 | skillE = gm([1],[100],[10]); 7 | skillF = gm([1],[100],[10]); 8 | skillG = gm([1],[100],[10]); 9 | skillH = gm([1],[100],[10]); 10 | skillI = gm([1],[100],[10]); 11 | skillJ = gm([1],[100],[10]); 12 | 13 | perfA = gm([1],[0],[15])+skillA; 14 | perfB = gm([1],[0],[15])+skillB; 15 | perfC = gm([1],[0],[15])+skillC; 16 | perfD = gm([1],[0],[15])+skillD; 17 | perfE = gm([1],[0],[15])+skillE; 18 | perfF = gm([1],[0],[15])+skillF; 19 | perfG = gm([1],[0],[15])+skillG; 20 | perfH = gm([1],[0],[15])+skillH; 21 | perfI = gm([1],[0],[15])+skillI; 22 | perfJ = gm([1],[0],[15])+skillJ; 23 | 24 | /* constraints to observations */ 25 | observe(perfA-perfB > 0); 26 | observe(perfA-perfC > 0); 27 | observe(perfA-perfD > 0); 28 | observe(perfA-perfE > 0); 29 | observe(perfA-perfF > 0); 30 | observe(perfA-perfG > 0); 31 | observe(perfA-perfH > 0); 32 | observe(perfA-perfI > 0); 33 | observe(perfA-perfJ > 0); 34 | 35 | skip; -------------------------------------------------------------------------------- /programs/SOGA/AQUA/.ipynb_checkpoints/NormalMixtures-checkpoint.soga: -------------------------------------------------------------------------------- 1 | data obs = [10.0787617156523, -9.51866467444093, 9.73922587306449, 11.5662681883816, 9.62798489000074, -9.60265090119919, 8.90114345923455, 10.866328444034, 10.5347883361026, 8.60577222463504, -10.625227428575, -9.08615131315038, -8.99280046532217, 9.43533905966944, 8.92696803962787, 9.642301288006, 9.42066621557773, 9.90838406119759, 9.63911912487384, 7.55585122379505, 9.58069898235901, 9.63228461457187, -9.99589804304319, 8.61024296515084, -10.4988882191036, -8.45028703711596, 9.76066425342707, -8.68129886943495, 9.83763492226261, 7.29698608457303, 8.78881675784227, 10.6057117460834, 10.2807363791435, 9.54352982843898, -10.9911972452721, 12.2061931600758, 7.76887153466896, 10.7523541087606, -9.98525551020183, 10.6248182699128]; 2 | 3 | theta = uniform([0,1], 2); 4 | mu1 = gm([1.], [-10], [1]); 5 | mu2 = gm([1.], [10], [1]); 6 | 7 | for i in range(40) { 8 | if uniform([0,1], 2) - theta < 0 { 9 | y = gm([1.],[0.],[1.]) + mu1; 10 | } else { 11 | y = gm([1.],[0.],[1.]) + mu2; 12 | } end if; 13 | observe(y == obs[i]); 14 | }end for; 15 | -------------------------------------------------------------------------------- /programs/SOGA/Collaborative Filtering/CF1.soga: -------------------------------------------------------------------------------- 1 | data obs = [7.0458965604219586, 9.976865373313265, 3.7896466951186865, 4.841338754637926, -3.5729383916183695, -0.7010274566041637, 1.3507514719219715, 2.427904401682172, -3.8809812928438983, -0.3870893442366492, 0.9983985547240126, 9.965447053299572, -2.690466227068149, 2.4040174162583114, 4.887410694717346, 0.6373905487801463, 3.3402044221696, -3.1432705242808834, 5.4184685918623705, 4.51868707618341, -0.8061279609825658, 0.4624562880319262, 2.2339021831568124, -0.03549450537128104, -1.0798097571554581, 4.011901853466679, 2.83736186841697, -1.015676239999747, 2.358373605501589, -1.4568344308007237, 5.925560746829647, 2.71215264192572, 1.3754204121532572, 4.756241263222474, -2.2034668148766285, -1.5615657081551901, 5.7308349679939665, 0.31352250329741804, -3.989483926911242, 6.7872168462106535]; 2 | 3 | array[40] y; 4 | 5 | a = gm([1.], [0.], [5.]); 6 | b = gm([1.], [0.], [5.]); 7 | c = gm([1.], [0.], [5.]); 8 | 9 | mean = a*b; 10 | mean = mean + c; 11 | 12 | for i in range(40) { 13 | y[i] = mean + gm([1.], [0.], [1.]); 14 | } end for; 15 | 16 | for i in range(40) { 17 | observe(y[i] == obs[i]); 18 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Scalability/Trueskills/TrueSkills10.soga: -------------------------------------------------------------------------------- 1 | /* assigns distributions */ 2 | skill1 = gm([1.],[100.],[10.]); 3 | skill2 = gm([1.],[100.],[10.]); 4 | skill3 = gm([1.],[100.],[10.]); 5 | skill4 = gm([1.],[100.],[10.]); 6 | skill5 = gm([1.],[100.],[10.]); 7 | skill6 = gm([1.],[100.],[10.]); 8 | skill7 = gm([1.],[100.],[10.]); 9 | skill8 = gm([1.],[100.],[10.]); 10 | skill9 = gm([1.],[100.],[10.]); 11 | skill10 = gm([1.],[100.],[10.]); 12 | 13 | 14 | perf1 = gm([1.],[0.],[15.])+skill1; 15 | perf2 = gm([1.],[0.],[15.])+skill2; 16 | perf3 = gm([1.],[0.],[15.])+skill3; 17 | perf4 = gm([1.],[0.],[15.])+skill4; 18 | perf5 = gm([1.],[0.],[15.])+skill5; 19 | perf6 = gm([1.],[0.],[15.])+skill6; 20 | perf7 = gm([1.],[0.],[15.])+skill7; 21 | perf8 = gm([1.],[0.],[15.])+skill8; 22 | perf9 = gm([1.],[0.],[15.])+skill9; 23 | perf10 = gm([1.],[0.],[15.])+skill10; 24 | 25 | /* constraints to observations */ 26 | observe(perf1 -perf2 > 0); 27 | observe(perf2-perf3 > 0); 28 | observe(perf3-perf4 > 0); 29 | observe(perf4-perf5 > 0); 30 | observe(perf5-perf6 > 0); 31 | observe(perf6-perf7 > 0); 32 | observe(perf7-perf8 > 0); 33 | observe(perf8-perf9 > 0); 34 | observe(perf9-perf10 > 0); -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bnn3_smooth.soga: -------------------------------------------------------------------------------- 1 | data X = [-1.0000, -0.7778, -0.5556, -0.3333, -0.1111, 0.1111, 0.3333, 0.5556, 0.7778, 1.0000]; 2 | 3 | array[10] X; 4 | 5 | 6 | array[10] y; 7 | 8 | w1 = gm([1.], [_muw1], [0.2]); 9 | w2 = gm([1.], [_muw2], [0.2]); 10 | w3 = gm([1.], [_muw3], [0.2]); 11 | w4 = gm([1.], [_muw4], [0.2]); 12 | b1 = gm([1.], [_mub1], [0.2]); 13 | b2 = gm([1.], [_mub2], [0.2]); 14 | b3 = gm([1.], [_mub3], [0.2]); 15 | 16 | for i in range(10) { 17 | 18 | a10 = w1 * X[i]; 19 | a10 = a10 + gauss(0., 0.01); 20 | a10 = a10 + b1 + gauss(0., 0.01); 21 | 22 | a11 = w2 * X[i]; 23 | a11 = a11 + gauss(0., 0.01); 24 | a11 = a11 + b2 + gauss(0., 0.01); 25 | 26 | if a10 < 0. { 27 | a10 = gauss(0., 0.01); 28 | } else { 29 | skip; 30 | } end if; 31 | 32 | if a11 < 0. { 33 | a11 = gauss(0., 0.01); 34 | } else { 35 | skip; 36 | } end if; 37 | 38 | p1 = w3 * a10; 39 | p1 = p1 + gauss(0., 0.01); 40 | p2 = w4 * a11; 41 | p2 = p2 + gauss(0., 0.01); 42 | y[i] = p1+p2+b3 + gauss(0., 0.01); 43 | 44 | y[i] = y[i] + gauss(0., 0.5); 45 | 46 | prune(50); 47 | 48 | } end for; 49 | 50 | -------------------------------------------------------------------------------- /programs/SOGA/Collaborative Filtering/CF2.soga: -------------------------------------------------------------------------------- 1 | data obs = [28.78613619093979, 21.08373226505738, 30.538973100583096, 26.558524060126434, 32.14494636975737, 17.207681132356985, 24.776552498208215, 36.347723322835684, 15.905517439008536, 39.35966835509401, 15.349080164933994, 9.740547372112351, 27.078895172886273, 31.33667986311917, 22.6804987062791, 37.297504065300885, 30.561446060787084, 22.583998559392843, 38.444237766650126, 38.10699088422625, 22.967903802090103, 9.30746825976304, 14.103222350512665, 21.9908511949224, 38.30998591610415, 18.694663893496518, 43.51879892749412, 7.592037433433955, 1.3425916488564955, 33.59800842816037, 22.505267268210368, 36.69405692180118, 12.99710815249319, 31.636138151997734, 18.875435827840736, 15.795359430174722, 27.474077701865095, 21.620612432564332, 3.6456257608188807, 22.76947305425614]; 2 | 3 | array[40] y; 4 | 5 | a1 = gm([1.], [0.], [5.]); 6 | b1 = gm([1.], [0.], [5.]); 7 | a2 = gm([1.], [0.], [5.]); 8 | b2 = gm([1.], [0.], [5.]); 9 | c = gm([1.], [0.], [5.]); 10 | 11 | mean1 = a1*b1; 12 | mean2 = a2*b2; 13 | mean = mean1 + mean2 + c; 14 | 15 | for i in range(40) { 16 | y[i] = mean + gm([1.], [0.], [1.]); 17 | } end for; 18 | 19 | for i in range(40) { 20 | observe(y[i] == obs[i]); 21 | } end for; -------------------------------------------------------------------------------- /src/PROGRAMS/losses_csv/loss_clickgraph.txt: -------------------------------------------------------------------------------- 1 | -10622.720695848353 2 | -10623.79705996216 3 | -10624.947510127195 4 | -10626.181015430528 5 | -10627.307095624525 6 | -10628.043737320537 7 | -10628.2433947062 8 | -10628.055039440456 9 | -10627.754348398483 10 | -10627.501055936349 11 | -10627.334488619734 12 | -10627.248495762515 13 | -10627.229913237654 14 | -10627.268852312558 15 | -10627.358972299298 16 | -10627.494701876747 17 | -10627.66711863461 18 | -10627.859277163834 19 | -10628.043108245643 20 | -10628.182122032242 21 | -10628.243813793324 22 | -10628.218598888116 23 | -10628.130874827266 24 | -10628.028513443951 25 | -10627.957578866994 26 | -10627.942963476553 27 | -10627.984247940043 28 | -10628.061785358454 29 | -10628.146784680806 30 | -10628.212439269042 31 | -10628.243313434974 32 | -10628.239211898017 33 | -10628.211898002719 34 | -10628.177612249681 35 | -10628.150328386255 36 | -10628.138372281392 37 | -10628.143945697706 38 | -10628.164075841793 39 | -10628.1921079696 40 | -10628.219630413625 41 | -10628.238907343562 42 | -10628.245439630897 43 | -10628.239635114522 44 | -10628.226517264127 45 | -10628.21334415582 46 | -10628.20631948082 47 | -10628.208106369813 48 | -10628.217236891564 49 | -10628.229400328626 50 | -10628.239740837904 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DeGAS 2 | 3 | ## Usage 4 | 5 | For all the experiments the hyperparameters are the ones specified in the paper, except for the synthesis for probabilistic programs that tunes automatically the hyperparamters when run on a single program. 6 | 7 | Running the CPS experiments: 8 | 9 | - Likelihood loss: 10 | folder src/CPS 11 | 12 | - All the experiments: python3 cps_process.py 13 | - Single experiment: python3 cps_process.py experiment_name 14 | 15 | - Reachabilty loss: 16 | folder src/REACHABILITY 17 | 18 | - All the experiments: python3 reachability_process.py 19 | - Single experiment: python3 reachability_process.py experiment_name 20 | 21 | with available experiments: thermostat, gearbox, bouncing_ball, pid 22 | 23 | 24 | Running the Synthesis for Probabilistic Programs: 25 | 26 | 27 | folder src/PROGRAMS 28 | 29 | - All the experiments: python3 synthesis_process.py 30 | Output -> results_all.csv structured as: 31 | VI Time, VI Error, MCMC Time, MCMC Error, MCMC r-hat, MCMC effective sample size, DeGAS Time, DeGAS Error 32 | 33 | - One experiment: python3 synthesis_process.py experiment_name 34 | where experiment_name is one model of Table 1 of the paper written all lowercase 35 | 36 | 37 | -------------------------------------------------------------------------------- /programs/SOGA/Grass.soga: -------------------------------------------------------------------------------- 1 | cloudy = gm([0.5,0.5],[1.,0.],[0.,0.]); 2 | 3 | if cloudy == 1 { 4 | rain = gm([0.8, 0.2], [1.,0.], [0.,0.]); 5 | sprinkler = gm([0.1, 0.9], [1.,0.], [0.,0.]); 6 | } else { 7 | rain = gm([0.2, 0.8], [1.,0.], [0.,0.]); 8 | sprinkler = gm([0.5, 0.5], [1.,0.], [0.,0.]); 9 | } end if; 10 | 11 | temp1 = gm([0.7, 0.3], [1.,0.], [0.,0.]); 12 | 13 | if temp1 == 1 { 14 | skip; 15 | if rain == 1 { 16 | wetRoof = 1; 17 | } else { 18 | wetRoof = 0; 19 | } end if; 20 | } else { 21 | wetRoof = 0; 22 | } end if; 23 | 24 | temp2 = gm([0.9, 0.1], [1.,0.], [0.,0.]); 25 | temp3 = gm([0.9, 0.1], [1.,0.], [0.,0.]); 26 | 27 | if temp2 == 1 { 28 | if rain == 1 { 29 | or1 = 1; 30 | } else { 31 | or1 = 0; 32 | } end if; 33 | } else { 34 | or1 = 0; 35 | } end if; 36 | 37 | if temp3 == 1 { 38 | if sprinkler == 1 { 39 | or2 = 1; 40 | } else { 41 | or2 = 0; 42 | } end if; 43 | } else { 44 | or2 = 0; 45 | } end if; 46 | 47 | if or1 == 0 { 48 | skip; 49 | if or2 == 0 { 50 | wetGrass = 0; 51 | } else { 52 | wetGrass = 1; 53 | } end if; 54 | } else { 55 | wetGrass = 1; 56 | } end if; 57 | 58 | observe(wetGrass == 1); -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/.ipynb_checkpoints/PID-checkpoint.soga: -------------------------------------------------------------------------------- 1 | array[51] ang; 2 | 3 | v = gauss(0, 0.05); /* smoothing added here */ 4 | currAng = gauss(0.5, 0.05); /* smoothing added here */ 5 | id = gauss(0, 0.05); /* smoothing added here */ 6 | oldv = gauss(0, 0.05); /* smoothing added here */ 7 | 8 | for i in range(51) { 9 | 10 | ang[i] = currAng + gauss(0., 0.05); /* smoothing added here */ 11 | 12 | d = 3.14 - currAng + gauss(0., 0.05); /* smoothing added here */ 13 | torq = _s0*d + _s1*v + _s2*id + gauss(0., 0.05); /* smoothing added here */ 14 | id = 0.9*id + 0.1*d; /* smoothing added here */ 15 | oldv = v + gauss(0., 0.05); /* smoothing added here */ 16 | 17 | v = v + 0.01*torq + gauss(0, 0.25); 18 | currAng = currAng + 0.05*v + 0.05*oldv + gauss(0., 0.25); 19 | 20 | /*if currAng > 6.28 { 21 | currAng = currAng - 6.28; 22 | } else { 23 | if currAng < 0 { 24 | currAng = currAng + 6.28; 25 | } else { 26 | skip; 27 | } end if; 28 | } end if; */ 29 | 30 | } end for; 31 | 32 | ang[50] = currAng + gauss(0., 0.05); /* smoothing added here */ -------------------------------------------------------------------------------- /programs/SOGA/NoisyOr.soga: -------------------------------------------------------------------------------- 1 | n0 = gm([0.5,0.5], [1.,0.], [0.,0.]); 2 | n4 = gm([0.5,0.5], [1.,0.], [0.,0.]); 3 | 4 | if n0 == 1 { 5 | n1 = gm([0.8,0.2], [1.,0.], [0.,0.]); 6 | n21 = gm([0.8,0.2], [1.,0.], [0.,0.]); 7 | } else { 8 | n1 = gm([0.1,0.9], [1.,0.], [0.,0.]); 9 | n21 = gm([0.1,0.9], [1.,0.], [0.,0.]); 10 | } end if; 11 | 12 | if n4 == 1 { 13 | n22 = gm([0.8,0.2], [1.,0.], [0.,0.]); 14 | n33 = gm([0.8,0.2], [1.,0.], [0.,0.]); 15 | } else { 16 | n22 = gm([0.1,0.9], [1.,0.], [0.,0.]); 17 | n33 = gm([0.1,0.9], [1.,0.], [0.,0.]); 18 | } end if; 19 | 20 | if n21 == 0 { 21 | if n22 == 0 { 22 | n2 = 0; 23 | } else { 24 | n2 = 1; 25 | } end if; 26 | } else { 27 | n2 = 1; 28 | } end if; 29 | 30 | if n1 == 1 { 31 | n31 = gm([0.8,0.2], [1.,0.], [0.,0.]); 32 | } else { 33 | n31 = gm([0.1,0.9], [1.,0.], [0.,0.]); 34 | } end if; 35 | 36 | if n2 == 1 { 37 | n32 = gm([0.8,0.2], [1.,0.], [0.,0.]); 38 | } else { 39 | n32 = gm([0.1,0.9], [1.,0.], [0.,0.]); 40 | } end if; 41 | 42 | if n31 == 0 { 43 | if n32 == 0 { 44 | if n33 == 0 { 45 | n3 = 0; 46 | } else { 47 | n3 = 1; 48 | } end if; 49 | } else { 50 | n3 = 1; 51 | } end if; 52 | } else { 53 | n3 = 1; 54 | } end if; 55 | -------------------------------------------------------------------------------- /programs/Example/Bernoulli.soga: -------------------------------------------------------------------------------- 1 | /* This is an example of a program written in the SOGA syntax. 2 | This program models the toss of a coin with bias uniformly distributed. */ 3 | 4 | /* At the beginning of the file it is possible to declare 'data', i.e. read-only array. 5 | Here we use data to store the observed results of tossing the coin 10 times. */ 6 | 7 | data obs = [0, 1, 0, 0, 0, 0, 0, 0, 0, 1]; 8 | 9 | /* The following instruction assigns a variable 'theta' with a continuous uniform distribution in [0,1]. The parameter 2 specifies that during the pre-processing phase SOGA will approximate the distribution with a Gaussian Mixture of 2 components */ 10 | 11 | theta = uniform([0,1], 2); 12 | 13 | /* The loop simulates 10 tossings of a coin. Loops must have a deterministic number of iterations. */ 14 | for i in range(10) { 15 | /* The conditional statement simulates a Bernoulli with parameter theta. This is needed because currently SOGA does not support distributions dependent on probabilistic parameters. */ 16 | if uniform([0,1], 2) - theta < 0 { 17 | y = 1; 18 | } else { 19 | y = 0; 20 | } end if; 21 | /* The observe statement conditions the the toss of the coin to the observed values, by accessing the data array 'obs' */ 22 | observe(y == obs[i]); 23 | } end for; 24 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bnn3.soga: -------------------------------------------------------------------------------- 1 | w1 = gm([1.], [_muw1], [_sigmaw1]); 2 | w2 = gm([1.], [_muw2], [_sigmaw2]); 3 | w3 = gm([1.], [_muw3], [_sigmaw3]); 4 | w4 = gm([1.], [_muw4], [_sigmaw4]); 5 | w5 = gm([1.], [_muw5], [_sigmaw5]); 6 | w6 = gm([1.], [_muw6], [_sigmaw6]); 7 | w7 = gm([1.], [_muw7], [_sigmaw7]); 8 | w8 = gm([1.], [_muw8], [_sigmaw8]); 9 | b1 = gm([1.], [_mub1], [_sigmab1]); 10 | b2 = gm([1.], [_mub2], [_sigmab2]); 11 | b3 = gm([1.], [_mub3], [_sigmab3]); 12 | b4 = gm([1.], [_mub4], [_sigmab4]); 13 | b5 = gm([1.], [_mub5], [_sigmab5]); 14 | 15 | a10 = _x * w1; 16 | a10 = a10 + b1; 17 | 18 | a11 = _x * w2; 19 | a11 = a11 + b2; 20 | 21 | a12 = _x * w3; 22 | a12 = a12 + b3; 23 | 24 | a13 = _x * w4; 25 | a13 = a13 + b4; 26 | 27 | if a10 < 0.0 { 28 | a10 = gauss(0., 0.01); 29 | } else { 30 | skip; 31 | } end if; 32 | 33 | if a11 < 0. { 34 | a11 = gauss(0., 0.01); 35 | } else { 36 | skip; 37 | } end if; 38 | 39 | if a12 < 0. { 40 | a12 = gauss(0., 0.01); 41 | } else { 42 | skip; 43 | } end if; 44 | 45 | if a13 < 0. { 46 | a13 = gauss(0., 0.01); 47 | } else { 48 | skip; 49 | } end if; 50 | 51 | p1 = w5 * a10; 52 | p2 = w6 * a11; 53 | p3 = w7 * a12; 54 | p4 = w8 * a13; 55 | 56 | y = p1+p2+ p3 + p4 + b5; 57 | 58 | y = y + gauss(0., 0.1); 59 | 60 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/bouncing_ball.soga: -------------------------------------------------------------------------------- 1 | array[36] H; 2 | 3 | /* Initial state */ 4 | currH = gauss(9., 1.); 5 | mode = -1.; 6 | currV = 0.; 7 | 8 | dt = 0.08; 9 | 10 | for i in range(35) { 11 | /* Save current state */ 12 | H[i] = currH; 13 | 14 | /* Continuous dynamics */ 15 | 16 | if mode < 0 { 17 | /* falling down */ 18 | temp = -9.8 * dt; 19 | newV = currV + temp + gauss(0., 0.1); 20 | } else { 21 | /* going up */ 22 | temp = -9.8 * dt; 23 | 24 | spring = _R*currV; 25 | temp2 = _C*currH; 26 | spring = spring + temp2; 27 | spring = spring * dt; 28 | spring = 0.14 * spring; 29 | newV = currV + temp - spring + gauss(0., 0.1); 30 | } end if; 31 | 32 | currV = newV; 33 | 34 | temp = currV * dt; 35 | newH = currH + temp + gauss(0., 0.1); 36 | 37 | currH = newH; 38 | 39 | /* Mode switching */ 40 | if mode < 0 { 41 | if currH <= 0. { 42 | mode = 1; 43 | } else { 44 | skip; 45 | } end if; 46 | } else { 47 | if currH > 0. { 48 | mode = -1; 49 | } else { 50 | skip; 51 | } end if; 52 | } end if; 53 | } end for; 54 | 55 | /* Save final state */ 56 | H[35] = currH; 57 | -------------------------------------------------------------------------------- /programs/SOGA/Collaborative Filtering/CF3.soga: -------------------------------------------------------------------------------- 1 | data obs = [1.5141577321371331, 5.043693971610803, -15.486884461376592, -4.507056746805851, -3.385760724347325, -14.33039571614555, -4.9709524832772605, -16.86251130040892, 0.10775452833673249, -3.8480595147468573, -13.538147226528986, -17.915874820922063, -11.930427421590139, -2.6667808708781005, -3.620667625347211, 1.0527071318295598, -8.52449805879012, -18.856746732588427, 1.898670894944014, 5.697063925998871, -5.080296144442959, 6.947548900487531, -17.217628701230026, -14.538381451145462, -10.653414488747304, -11.918649169813866, 2.2770246143860557, -8.668986150239865, -6.964405555488027, -16.429637678983745, -5.937548241676957, 0.022533526678936155, 6.938688952952651, -6.957184566386633, -5.5106198074242885, -2.04186266718731, 2.3277636768590266, 0.7344761765029899, -8.291821903291916, -5.547204955043026]; 2 | 3 | array[40] y; 4 | 5 | a1 = gm([1.], [0.], [5.]); 6 | b1 = gm([1.], [0.], [5.]); 7 | a2 = gm([1.], [0.], [5.]); 8 | b2 = gm([1.], [0.], [5.]); 9 | a3= gm([1.], [0.], [5.]); 10 | b3 = gm([1.], [0.], [5.]); 11 | c = gm([1.], [0.], [5.]); 12 | 13 | mean1 = a1*b1; 14 | mean2 = a2*b2; 15 | mean3 = a3*b3; 16 | mean = mean1 + mean2 + mean3 + c; 17 | 18 | for i in range(40) { 19 | y[i] = mean + gm([1.], [0.], [1.]); 20 | } end for; 21 | 22 | for i in range(40) { 23 | observe(y[i] == obs[i]); 24 | } end for; -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/experiment1.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [553663., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 541769.2 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean */ 6 | 7 | /* Real mean all male 529692.55 */ 8 | 9 | array[10] male2130; 10 | array[10] male3140; 11 | array[10] male4150; 12 | array[10] male5160; 13 | array[10] female2130; 14 | 15 | for i in range(10): 16 | male2130[i] = gauss(465000, 100000); 17 | male3140[i] = gauss(475000, 100000); 18 | male4150[i] = gauss(485000, 100000); 19 | male5160[i] = gauss(495000, 100000); 20 | female2130[i] = gauss(460000, 100000); 21 | end for; 22 | 23 | totalmale = 0; 24 | 25 | for i in range(10): 26 | totalmale = totalmale + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 27 | end for; 28 | 29 | totalmale = 0.025*totalmale; 30 | observe(totalmale==529692.55); -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/timeseries/TimeSeries25.soga: -------------------------------------------------------------------------------- 1 | a = gm([1.], [1.], [1.]); 2 | b = gm([1.], [1.], [1.]); 3 | lamb = uniform([0,1], 2); 4 | 5 | y0 = 1; 6 | y1 = lamb*y0; 7 | y1 = y1 + 0.5*b + a + gauss(0,0.5); 8 | y2 = lamb*y1; 9 | y2 = y2 + 0.5*b + a + gauss(0,0.5); 10 | y3 = lamb*y2; 11 | y3 = y3 + 0.5*b + a + gauss(0,0.5); 12 | y4 = lamb*y3; 13 | y4 = y4 + 0.5*b + a + gauss(0,0.5); 14 | y5 = lamb*y4; 15 | y5 = y5 + 0.5*b + a + gauss(0,0.5); 16 | y6 = lamb*y5; 17 | y6 = y6 + 0.5*b + a + gauss(0,0.5); 18 | y7 = lamb*y6; 19 | y7 = y7 + 0.5*b + a + gauss(0,0.5); 20 | y8 = lamb*y7; 21 | y8 = y8 + 0.5*b + a + gauss(0,0.5); 22 | y9 = lamb*y8; 23 | y9 = y9 + 0.5*b + a + gauss(0,0.5); 24 | y10 = lamb*y9; 25 | y10 = y10 + 0.5*b + a + gauss(0,0.5); 26 | y11 = lamb*y10; 27 | y11 = y11 + 0.5*b + a + gauss(0,0.5); 28 | y12 = lamb*y11; 29 | y12 = y12 + 0.5*b + a + gauss(0,0.5); 30 | y13 = lamb*y12; 31 | y13 = y13 + 0.5*b + a + gauss(0,0.5); 32 | y14 = lamb*y13; 33 | y14 = y14 + 0.5*b + a + gauss(0,0.5); 34 | y15 = lamb*y14; 35 | y15 = y15 + 0.5*b + a + gauss(0,0.5); 36 | y16 = lamb*y15; 37 | y16 = y16 + 0.5*b + a + gauss(0,0.5); 38 | y17 = lamb*y16; 39 | y17 = y17 + 0.5*b + a + gauss(0,0.5); 40 | y18 = lamb*y17; 41 | y18 = y18 + 0.5*b + a + gauss(0,0.5); 42 | y19 = lamb*y18; 43 | y19 = y19 + 0.5*b + a + gauss(0,0.5); 44 | y20 = lamb*y19; 45 | y20 = y20 + 0.5*b + a + gauss(0,0.5); 46 | y21 = lamb*y20; 47 | y21 = y21 + 0.5*b + a + gauss(0,0.5); 48 | observe(y21 > 0); 49 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case1/experiment1.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [553663., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 541769.2 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 529692.55 */ 8 | /* Real mean all 508389.1 */ 9 | 10 | array[10] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(10): 17 | male2130[i] = gauss(465000, 100000); 18 | male3140[i] = gauss(465000, 100000); 19 | male4150[i] = gauss(465000, 100000); 20 | male5160[i] = gauss(465000, 100000); 21 | female2130[i] = gauss(465000, 100000); 22 | end for; 23 | 24 | 25 | totalall = 0; 26 | for i in range(10): 27 | totalall = totalall + female2130[i] + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 28 | end for; 29 | 30 | totalall = 0.02*totalall; 31 | observe(totalall==508389.1); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case2/experiment1.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 586402.8 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 540850.95 */ 8 | /* Real mean all 517315.82 */ 9 | 10 | array[10] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(10): 17 | male2130[i] = gauss(465000, 100000); 18 | male3140[i] = gauss(465000, 100000); 19 | male4150[i] = gauss(465000, 100000); 20 | male5160[i] = gauss(465000, 100000); 21 | female2130[i] = gauss(465000, 100000); 22 | end for; 23 | 24 | 25 | totalall = 0; 26 | for i in range(10): 27 | totalall = totalall + female2130[i] + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 28 | end for; 29 | 30 | totalall = 0.02*totalall; 31 | observe(totalall==517315.82); -------------------------------------------------------------------------------- /grammars/SOGA.g4: -------------------------------------------------------------------------------- 1 | grammar SOGA; 2 | 3 | progr : (data ';')*? (instr ';' | array ';')*; 4 | 5 | data : 'data' symvars '=' list; 6 | 7 | array: 'array[' NUM ']' IDV; 8 | 9 | instr : assignment | conditional | prune | observe | loop; 10 | 11 | assignment: symvars '=' (const | add | mul) | 'skip'; 12 | 13 | const: const_term (('+'|'-') const_term)*?; 14 | const_term: (NUM | par | idd) ('*' (NUM | idd | par))?; 15 | add: add_term (('+'|'-') add_term)*?; 16 | add_term: ((NUM | idd | par) '*')? vars | const_term; 17 | mul: ((NUM | idd | par) '*')? vars '*' vars; 18 | 19 | conditional: ifclause elseclause 'end if'; 20 | 21 | ifclause : 'if' bexpr '{' block '}'; 22 | elseclause : 'else' '{' block '}'; 23 | block : (instr ';')+; 24 | bexpr : lexpr ('<'|'<='|'>='|'>') (NUM | idd | par) | symvars ('=='|'!=') (NUM | idd | par); 25 | lexpr: monom (('+'|'-') monom)*?; 26 | monom: ((NUM | idd | par) '*')? vars; 27 | 28 | prune : 'prune(' NUM ')'; 29 | 30 | observe: 'observe(' bexpr ')'; 31 | 32 | loop : 'for' IDV 'in range(' (NUM | idd) ')' '{' block '}' 'end for'; 33 | 34 | vars: symvars | gm | uniform; 35 | idd: IDV '[' (NUM | IDV) ']'; 36 | symvars : IDV | idd; 37 | gm: 'gm(' list ',' list ',' list ')'; 38 | uniform: 'uniform(' list ',' NUM ')'; 39 | list: '[' (NUM | par) (',' (NUM | par))*? ']'; 40 | 41 | par: '_' IDV; 42 | 43 | IDV : ALPHA (ALPHA|DIGIT)*; 44 | NUM : '-'? DIGIT+ ('.' DIGIT*)?; 45 | 46 | COMM : '/*' .*? '*/' -> skip; 47 | WS : (' '|'\t'|'\r'|'\n') -> skip; 48 | 49 | fragment 50 | ALPHA : [a-zA-Z]; 51 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/Gearbox.soga: -------------------------------------------------------------------------------- 1 | array[21] v; 2 | 3 | w = 0; 4 | gear = 1; 5 | currV = 5; 6 | 7 | for i in range(21) { 8 | 9 | v[i] = currV; 10 | 11 | if gear > 0.8 { 12 | newV = 1.078*currV; 13 | temp = 0.1*gauss(5., 1.); 14 | newV = newV + temp; 15 | } else { 16 | newV = currV*currV; 17 | newV = 0.00005*newV; 18 | newV = currV - newV + gauss(0, 1.); 19 | } end if; 20 | 21 | currV = newV; 22 | 23 | if gear > 0. { 24 | if gear < 1.5 { 25 | if newV > _s1 { 26 | nxt = gear + 1; 27 | gear = 0; 28 | w = 0.3; 29 | } else { 30 | skip; 31 | } end if; 32 | } else { 33 | if gear < 2.5 { 34 | if newV > _s2 { 35 | nxt = gear + 1; 36 | gear = 0; 37 | w = 0.3; 38 | } else { 39 | skip; 40 | } end if; 41 | } else { 42 | skip; 43 | } end if; 44 | } end if; 45 | } else { 46 | if w < 0.1 { 47 | gear = nxt; 48 | } else { 49 | skip; 50 | } end if; 51 | } end if; 52 | 53 | w = w - 0.1; 54 | v[i] = v[i] + gauss(0., 0.5); 55 | 56 | 57 | } end for; 58 | -------------------------------------------------------------------------------- /grammars/.ipynb_checkpoints/SOGAorig-checkpoint.g4: -------------------------------------------------------------------------------- 1 | grammar SOGA; 2 | 3 | progr : (data ';')*? (instr ';' | array ';')*; 4 | 5 | data : 'data' symvars '=' list; 6 | 7 | array: 'array[' NUM ']' IDV; 8 | 9 | instr : assignment | conditional | prune | observe | loop; 10 | 11 | assignment: symvars '=' (const | add | mul) | 'skip'; 12 | 13 | const: const_term (('+'|'-') const_term)*?; 14 | const_term: (NUM | idd) ('*' (NUM | idd))?; 15 | add: add_term (('+'|'-') add_term)*?; 16 | add_term: ((NUM | idd) '*')? vars | const_term; 17 | mul: ((NUM | idd) '*')? vars '*' vars; 18 | 19 | conditional: ifclause elseclause 'end if'; 20 | 21 | ifclause : 'if' bexpr '{' block '}'; 22 | elseclause : 'else' '{' block '}'; 23 | block : (instr ';')+; 24 | bexpr : lexpr ('<'|'<='|'>='|'>') (NUM | idd) | symvars ('=='|'!=') (NUM | idd); 25 | lexpr: monom (('+'|'-') monom)*?; 26 | monom: ((NUM | idd) '*')? vars; 27 | 28 | prune : 'prune(' NUM ')'; 29 | 30 | observe: 'observe(' bexpr ')'; 31 | 32 | loop : 'for' IDV 'in range(' (NUM | idd) ')' '{' block '}' 'end for'; 33 | 34 | expr : lexpr | (NUM '*')? vars '*' vars | vars '^2' ; 35 | 36 | vars: symvars | gm | uniform; 37 | idd: IDV '[' (NUM | IDV) ']'; 38 | symvars : IDV | idd; 39 | gm: 'gm(' list ',' list ',' list ')'; 40 | uniform: 'uniform(' list ',' NUM ')'; 41 | list: '[' NUM (',' NUM)*? ']'; 42 | 43 | IDV : ALPHA (ALPHA|DIGIT)*; 44 | NUM : '-'? DIGIT+ ('.' DIGIT*)?; 45 | 46 | COMM : '/*' .*? '*/' -> skip; 47 | WS : (' '|'\t'|'\r'|'\n') -> skip; 48 | 49 | fragment 50 | ALPHA : [a-zA-Z]; 51 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/Collaborative Filtering/CF5.soga: -------------------------------------------------------------------------------- 1 | data obs = [-22.47620917009301, -25.552915868240117, -46.29981060413596, -23.11929929781675, -49.26755555546385, -16.210475052455443, -21.597904348824585, -22.56773533063504, -29.931046265338143, -56.103607775110355, -47.5416359294226, -26.235295836228808, -25.165293639016035, -53.273065653820574, -5.341468922074248, -19.517931269199746, -24.26936399910197, -1.859642383477871, -38.453793365382914, -52.90137068359686, -41.013832726846374, -31.82433808824578, -42.5853119243696, -26.860785169709697, -53.42960458255663, -17.637131571785385, -34.32814193997388, -1.7483670510448626, -28.210882888131792, -36.037703242604415, -30.595899943601115, -20.91899841600842, -31.41210200603848, -33.79220060398766, -30.52008206361833, -58.72602525009127, -44.91152156181976, -37.12250085264185, -43.34525641783513, -26.685309604019775]; 2 | 3 | array[40] y; 4 | 5 | a1 = gm([1.], [0.], [5.]); 6 | b1 = gm([1.], [0.], [5.]); 7 | a2 = gm([1.], [0.], [5.]); 8 | b2 = gm([1.], [0.], [5.]); 9 | a3= gm([1.], [0.], [5.]); 10 | b3 = gm([1.], [0.], [5.]); 11 | a4= gm([1.], [0.], [5.]); 12 | b4 = gm([1.], [0.], [5.]); 13 | a5= gm([1.], [0.], [5.]); 14 | b5 = gm([1.], [0.], [5.]); 15 | c = gm([1.], [0.], [5.]); 16 | 17 | mean1 = a1*b1; 18 | mean2 = a2*b2; 19 | mean3 = a3*b3; 20 | mean4 = a4*b4; 21 | mean5 = a5*b5; 22 | mean = mean1 + mean2 + mean3 + mean4 + mean5 + c; 23 | 24 | for i in range(40) { 25 | y[i] = mean + gm([1.], [0.], [1.]); 26 | } end for; 27 | 28 | for i in range(40) { 29 | observe(y[i] == obs[i]); 30 | } end for; -------------------------------------------------------------------------------- /grammars/.ipynb_checkpoints/SOGA-checkpoint.g4: -------------------------------------------------------------------------------- 1 | grammar SOGA; 2 | 3 | progr : (data ';')*? (instr ';' | array ';')*; 4 | 5 | data : 'data' symvars '=' list; 6 | 7 | array: 'array[' NUM ']' IDV; 8 | 9 | instr : assignment | conditional | prune | observe | loop; 10 | 11 | assignment: symvars '=' (const | add | mul) | 'skip'; 12 | 13 | const: const_term (('+'|'-') const_term)*?; 14 | const_term: (NUM | par | idd) ('*' (NUM | idd | par))?; 15 | add: add_term (('+'|'-') add_term)*?; 16 | add_term: ((NUM | idd | par) '*')? vars | const_term; 17 | mul: ((NUM | idd | par) '*')? vars '*' vars; 18 | 19 | conditional: ifclause elseclause 'end if'; 20 | 21 | ifclause : 'if' bexpr '{' block '}'; 22 | elseclause : 'else' '{' block '}'; 23 | block : (instr ';')+; 24 | bexpr : lexpr ('<'|'<='|'>='|'>') (NUM | idd | par) | symvars ('=='|'!=') (NUM | idd | par); 25 | lexpr: monom (('+'|'-') monom)*?; 26 | monom: ((NUM | idd | par) '*')? vars; 27 | 28 | prune : 'prune(' NUM ')'; 29 | 30 | observe: 'observe(' bexpr ')'; 31 | 32 | loop : 'for' IDV 'in range(' (NUM | idd) ')' '{' block '}' 'end for'; 33 | 34 | vars: symvars | gm | uniform; 35 | idd: IDV '[' (NUM | IDV) ']'; 36 | symvars : IDV | idd; 37 | gm: 'gm(' list ',' list ',' list ')'; 38 | uniform: 'uniform(' list ',' NUM ')'; 39 | list: '[' (NUM | par) (',' (NUM | par))*? ']'; 40 | 41 | par: '_' IDV; 42 | 43 | IDV : ALPHA (ALPHA|DIGIT)*; 44 | NUM : '-'? DIGIT+ ('.' DIGIT*)?; 45 | 46 | COMM : '/*' .*? '*/' -> skip; 47 | WS : (' '|'\t'|'\r'|'\n') -> skip; 48 | 49 | fragment 50 | ALPHA : [a-zA-Z]; 51 | DIGIT : [0-9]; -------------------------------------------------------------------------------- /programs/SOGA/AQUA/.ipynb_checkpoints/RadarQuery-checkpoint.soga: -------------------------------------------------------------------------------- 1 | b0 = gm([0.2,0.8], [1,0], [0,0]); 2 | 3 | if b0 == 1 { 4 | b1 = 1; 5 | } else { 6 | b1 = gm([0.2,0.8], [1,0], [0,0]); 7 | } end if; 8 | 9 | x0 = uniform([0,10], 2); 10 | x1 = gm([1.], [0.], [1.4142]) + x0; 11 | 12 | if b0 == 1 { 13 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 14 | observe(x <= 0); 15 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 16 | observe(y > 0); 17 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 18 | o0 = x0 + x; 19 | } else { 20 | o0 = x0 + y; 21 | } end if; 22 | } else { 23 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 24 | observe(x <= 0); 25 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 26 | observe(y > 0); 27 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 28 | o0 = x + x0; 29 | } else { 30 | o0 = y + x0; 31 | } end if; 32 | } end if; 33 | 34 | if b1 == 1 { 35 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 36 | observe(x <= 0); 37 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 38 | observe(y > 0); 39 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 40 | o1 = x + x1; 41 | } else { 42 | o1 = y + x1; 43 | } end if; 44 | } else { 45 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 46 | observe(x <= 0); 47 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 48 | observe(y > 0); 49 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 50 | o1 = x + x1; 51 | } else { 52 | o1 = y + x1; 53 | } end if; 54 | } end if; 55 | 56 | observe(o0 == 5); 57 | observe(b0 == 1); 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case3/experiment4.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411.]; /* mean 465k */ /* Real mean 610884.2 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 537840.8857142857 */ 8 | /* Real mean all 512359.64444444445 */ 9 | 10 | array[5] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(5): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(5): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | totalall = 0.02222222222*totalall; 38 | observe(totalall==512359.64444444445 ); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/experiment4.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [976405., 433856., 713989., 471166., 435411., 745048., 577540.]; /* mean 465k */ /* Real mean 621916.428571429 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4*/ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean */ 6 | 7 | 8 | array[7] male2130; 9 | array[10] male3140; 10 | array[10] male4150; 11 | array[10] male5160; 12 | array[10] female2130; 13 | 14 | male2130[0] = gauss(800000, 100000); 15 | male2130[1] = gauss(465000, 100000); 16 | male2130[2] = gauss(465000, 100000); 17 | male2130[3] = gauss(465000, 100000); 18 | male2130[4] = gauss(465000, 100000); 19 | male2130[5] = gauss(465000, 100000); 20 | male2130[6] = gauss(465000, 100000); 21 | 22 | 23 | for i in range(10): 24 | male3140[i] = gauss(475000, 100000); 25 | male4150[i] = gauss(485000, 100000); 26 | male5160[i] = gauss(495000, 100000); 27 | female2130[i] = gauss(460000, 100000); 28 | end for; 29 | 30 | for i in range(7): 31 | totalmale2130 = totalmale2130 + male2130[i]; 32 | end for; 33 | 34 | totalmale2130 = 0.14*totalmale2130; 35 | 36 | observe(totalmale2130==621916.428571429); -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=C/RadarQueryPrune.soga: -------------------------------------------------------------------------------- 1 | b0 = gm([0.2,0.8], [1,0], [0,0]); 2 | 3 | if b0 == 1 { 4 | b1 = 1; 5 | } else { 6 | b1 = gm([0.2,0.8], [1,0], [0,0]); 7 | } end if; 8 | 9 | x0 = uniform([0,10], 2); 10 | x1 = gm([1.], [0.], [1.4142]) + x0; 11 | 12 | if b0 == 1 { 13 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 14 | observe(x <= 0); 15 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 16 | observe(y > 0); 17 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 18 | o0 = x0 + x; 19 | } else { 20 | o0 = x0 + y; 21 | } end if; 22 | } else { 23 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 24 | observe(x <= 0); 25 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 26 | observe(y > 0); 27 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 28 | o0 = x + x0; 29 | } else { 30 | o0 = y + x0; 31 | } end if; 32 | } end if; 33 | 34 | if b1 == 1 { 35 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 36 | observe(x <= 0); 37 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 38 | observe(y > 0); 39 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 40 | o1 = x + x1; 41 | } else { 42 | o1 = y + x1; 43 | } end if; 44 | } else { 45 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 46 | observe(x <= 0); 47 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 48 | observe(y > 0); 49 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 50 | o1 = x + x1; 51 | } else { 52 | o1 = y + x1; 53 | } end if; 54 | } end if; 55 | 56 | observe(o0 == 5); 57 | observe(b0 == 1); 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case3/experiment1.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540.]; /* mean 465k */ /* Real mean 625287.0 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 544514.027027027 */ 8 | /* Real mean all 518697.27659574465 */ 9 | 10 | array[7] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(7): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(7): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | totalall = 0.02127659574*totalall; 38 | observe(totalall==518697.27659574465); -------------------------------------------------------------------------------- /programs/SOGA/AQUA/RadarQuery.soga: -------------------------------------------------------------------------------- 1 | b0 = gm([0.2,0.8], [1,0], [0,0]); 2 | 3 | if b0 == 1 { 4 | b1 = 1; 5 | } else { 6 | b1 = gm([0.2,0.8], [1,0], [0,0]); 7 | } end if; 8 | 9 | x0 = uniform([0,10], 2); 10 | x1 = gm([1.], [0.], [1.4142]) + x0; 11 | 12 | if b0 == 1 { 13 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 14 | observe(x <= 0); 15 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 16 | observe(y > 0); 17 | flip = gm([0.83333,0.16667],[1,0],[0,0]); 18 | if flip > 0 { 19 | o0 = x0 + x; 20 | } else { 21 | o0 = x0 + y; 22 | } end if; 23 | } else { 24 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 25 | observe(x <= 0); 26 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 27 | observe(y > 0); 28 | flip = gm([0.5,0.5],[1,0],[0,0]); 29 | if flip > 0 { 30 | o0 = x + x0; 31 | } else { 32 | o0 = y + x0; 33 | } end if; 34 | } end if; 35 | 36 | if b1 == 1 { 37 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 38 | observe(x <= 0); 39 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 40 | observe(y > 0); 41 | flip = gm([0.83333,0.16667],[1,0],[0,0]); 42 | if flip > 0 { 43 | o1 = x + x1; 44 | } else { 45 | o1 = y + x1; 46 | } end if; 47 | } else { 48 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 49 | observe(x <= 0); 50 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 51 | observe(y > 0); 52 | flip = gm([0.5,0.5],[1,0],[0,0]); 53 | if flip > 0 { 54 | o1 = x + x1; 55 | } else { 56 | o1 = y + x1; 57 | } end if; 58 | } end if; 59 | 60 | observe(o0 == 5); 61 | observe(b0 == 1); 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case4/experiment1b.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540.]; /* mean 465k */ /* Real mean 625287.0 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 544514.027027027 */ 8 | /* Real mean all 518697.27659574465 */ 9 | 10 | array[7] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(7): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(7): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | totalall = 0.02127659574*totalall; 38 | noise = gauss(0,17337052120.795837); 39 | 40 | totalall = totalall + noise; 41 | 42 | observe(totalall==518697.27659574465); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case4/experiment1a.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540.]; /* mean 465k */ /* Real mean 625287.0 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 544514.027027027 */ 8 | /* Real mean all 518697.27659574465 */ 9 | 10 | array[7] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(7): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(7): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | totalall = 0.02127659574*totalall; 38 | 39 | noise = gauss(0,4334263030.198959); 40 | 41 | totalall = totalall + noise; 42 | 43 | observe(totalall==518697.27659574465); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case4/experiment1c.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540.]; /* mean 465k */ /* Real mean 625287.0 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 544514.027027027 */ 8 | /* Real mean all 518697.27659574465 */ 9 | 10 | array[7] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(7): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(7): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | totalall = 0.02127659574*totalall; 38 | 39 | noise = gauss(0,48158478113.32177); 40 | 41 | totalall = totalall + noise; 42 | 43 | observe(totalall==518697.27659574465); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case4/high_epsilon_1.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540.]; /* mean 465k */ /* Real mean 625287.0 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 544514.027027027 */ 8 | /* Real mean all 518697.27659574465 */ 9 | 10 | array[7] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(7): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(7): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | totalall = 0.02127659574*totalall; 38 | 39 | noise = gauss(0,10835657.575497398); 40 | 41 | totalall = totalall + noise; 42 | 43 | observe(totalall==518697.27659574465); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case1/experiment2.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [553663., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 541769.2 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 529692.55 */ 8 | /* Real mean all 508389.1 */ 9 | 10 | array[10] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(10): 17 | male2130[i] = gauss(465000, 100000); 18 | male3140[i] = gauss(465000, 100000); 19 | male4150[i] = gauss(465000, 100000); 20 | male5160[i] = gauss(465000, 100000); 21 | female2130[i] = gauss(465000, 100000); 22 | end for; 23 | 24 | 25 | totalall = 0; 26 | for i in range(10): 27 | totalall = totalall + female2130[i] + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 28 | end for; 29 | 30 | totalmale = 0; 31 | for i in range(10): 32 | totalmale = totalmale + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 33 | end for; 34 | 35 | totalall = 0.02*totalall; 36 | totalmale = 0.025*totalmale; 37 | 38 | observe(totalall==508389.1); 39 | observe(totalmale==529692.55); 40 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.003625C/RadarQueryPrune.soga: -------------------------------------------------------------------------------- 1 | b0 = gm([0.2,0.8], [1,0], [0,0]); 2 | 3 | if b0 == 1 { 4 | b1 = 1; 5 | } else { 6 | b1 = gm([0.2,0.8], [1,0], [0,0]); 7 | } end if; 8 | prune(8); 9 | 10 | x0 = uniform([0,10], 2); 11 | x1 = gm([1.], [0.], [1.4142]) + x0; 12 | 13 | if b0 == 1 { 14 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 15 | observe(x <= 0); 16 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 17 | observe(y > 0); 18 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 19 | o0 = x0 + x; 20 | } else { 21 | o0 = x0 + y; 22 | } end if; 23 | prune(8); 24 | } else { 25 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 26 | observe(x <= 0); 27 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 28 | observe(y > 0); 29 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 30 | o0 = x + x0; 31 | } else { 32 | o0 = y + x0; 33 | } end if; 34 | prune(8); 35 | } end if; 36 | prune(8); 37 | 38 | if b1 == 1 { 39 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 40 | observe(x <= 0); 41 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 42 | observe(y > 0); 43 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 44 | o1 = x + x1; 45 | } else { 46 | o1 = y + x1; 47 | } end if; 48 | prune(8); 49 | } else { 50 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 51 | observe(x <= 0); 52 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 53 | observe(y > 0); 54 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 55 | o1 = x + x1; 56 | } else { 57 | o1 = y + x1; 58 | } end if; 59 | prune(8); 60 | } end if; 61 | prune(8); 62 | 63 | observe(o0 == 5); 64 | observe(b0 == 1); 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case2/experiment2.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 586402.8 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 540850.95 */ 8 | /* Real mean all 517315.82 */ 9 | 10 | array[10] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(10): 17 | male2130[i] = gauss(465000, 100000); 18 | male3140[i] = gauss(465000, 100000); 19 | male4150[i] = gauss(465000, 100000); 20 | male5160[i] = gauss(465000, 100000); 21 | female2130[i] = gauss(465000, 100000); 22 | end for; 23 | 24 | 25 | totalall = 0; 26 | for i in range(10): 27 | totalall = totalall + female2130[i] + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 28 | end for; 29 | 30 | totalmale = 0; 31 | for i in range(10): 32 | totalmale = totalmale + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 33 | end for; 34 | 35 | totalall = 0.02*totalall; 36 | totalmale = 0.025*totalmale; 37 | 38 | observe(totalall==517315.82); 39 | observe(totalmale==540850.95); 40 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.015C/RadarQueryPrune.soga: -------------------------------------------------------------------------------- 1 | b0 = gm([0.2,0.8], [1,0], [0,0]); 2 | 3 | if b0 == 1 { 4 | b1 = 1; 5 | } else { 6 | b1 = gm([0.2,0.8], [1,0], [0,0]); 7 | } end if; 8 | prune(31); 9 | 10 | x0 = uniform([0,10], 2); 11 | x1 = gm([1.], [0.], [1.4142]) + x0; 12 | 13 | if b0 == 1 { 14 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 15 | observe(x <= 0); 16 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 17 | observe(y > 0); 18 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 19 | o0 = x0 + x; 20 | } else { 21 | o0 = x0 + y; 22 | } end if; 23 | prune(31); 24 | } else { 25 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 26 | observe(x <= 0); 27 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 28 | observe(y > 0); 29 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 30 | o0 = x + x0; 31 | } else { 32 | o0 = y + x0; 33 | } end if; 34 | prune(31); 35 | } end if; 36 | prune(31); 37 | 38 | if b1 == 1 { 39 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 40 | observe(x <= 0); 41 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 42 | observe(y > 0); 43 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 44 | o1 = x + x1; 45 | } else { 46 | o1 = y + x1; 47 | } end if; 48 | prune(31); 49 | } else { 50 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 51 | observe(x <= 0); 52 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 53 | observe(y > 0); 54 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 55 | o1 = x + x1; 56 | } else { 57 | o1 = y + x1; 58 | } end if; 59 | prune(31); 60 | } end if; 61 | prune(31); 62 | 63 | observe(o0 == 5); 64 | observe(b0 == 1); 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/Pruning/K=0.00725C/RadarQueryPrune.soga: -------------------------------------------------------------------------------- 1 | b0 = gm([0.2,0.8], [1,0], [0,0]); 2 | 3 | if b0 == 1 { 4 | b1 = 1; 5 | } else { 6 | b1 = gm([0.2,0.8], [1,0], [0,0]); 7 | } end if; 8 | prune(16); 9 | 10 | x0 = uniform([0,10], 2); 11 | x1 = gm([1.], [0.], [1.4142]) + x0; 12 | 13 | if b0 == 1 { 14 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 15 | observe(x <= 0); 16 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 17 | observe(y > 0); 18 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 19 | o0 = x0 + x; 20 | } else { 21 | o0 = x0 + y; 22 | } end if; 23 | prune(16); 24 | } else { 25 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 26 | observe(x <= 0); 27 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 28 | observe(y > 0); 29 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 30 | o0 = x + x0; 31 | } else { 32 | o0 = y + x0; 33 | } end if; 34 | prune(16); 35 | } end if; 36 | prune(16); 37 | 38 | if b1 == 1 { 39 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 40 | observe(x <= 0); 41 | y = uniform([-1, 0], 2) + uniform([0,1], 2); 42 | observe(y > 0); 43 | if gm([0.83333,0.16667],[1,0],[0,0]) > 0 { 44 | o1 = x + x1; 45 | } else { 46 | o1 = y + x1; 47 | } end if; 48 | prune(16); 49 | } else { 50 | x = uniform([-5, 0], 2) + uniform([0,5], 2); 51 | observe(x <= 0); 52 | y = uniform([-5, 0], 2) + uniform([0,5], 2); 53 | observe(y > 0); 54 | if gm([0.5,0.5],[1,0],[0,0]) > 0 { 55 | o1 = x + x1; 56 | } else { 57 | o1 = y + x1; 58 | } end if; 59 | prune(16); 60 | } end if; 61 | prune(16); 62 | 63 | observe(o0 == 5); 64 | observe(b0 == 1); 65 | prune(16); 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/experiment3.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [976405., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 584043.4 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4*/ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean */ 6 | 7 | /* Real mean all male 540261.1 */ 8 | 9 | array[10] male2130; 10 | array[10] male3140; 11 | array[10] male4150; 12 | array[10] male5160; 13 | array[10] female2130; 14 | 15 | male2130[0] = gauss(800000, 100000); 16 | male2130[1] = gauss(465000, 100000); 17 | male2130[2] = gauss(465000, 100000); 18 | male2130[3] = gauss(465000, 100000); 19 | male2130[4] = gauss(465000, 100000); 20 | male2130[5] = gauss(465000, 100000); 21 | male2130[6] = gauss(465000, 100000); 22 | male2130[7] = gauss(465000, 100000); 23 | male2130[8] = gauss(465000, 100000); 24 | male2130[9] = gauss(465000, 100000); 25 | 26 | for i in range(10): 27 | male3140[i] = gauss(475000, 100000); 28 | male4150[i] = gauss(485000, 100000); 29 | male5160[i] = gauss(495000, 100000); 30 | female2130[i] = gauss(460000, 100000); 31 | end for; 32 | 33 | for i in range(10): 34 | totalmale2130 = totalmale2130 + male2130[i]; 35 | end for; 36 | 37 | totalmale2130 = 0.1*totalmale2130; 38 | 39 | observe(totalmale2130==584043.4); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/experiment5.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [976405., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 584043.4 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4*/ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean */ 6 | 7 | /* Real mean all male 540261.1 */ 8 | 9 | array[10] male2130; 10 | array[10] male3140; 11 | array[10] male4150; 12 | array[10] male5160; 13 | array[10] female2130; 14 | 15 | male2130[0] = gauss(800000, 100000); 16 | male2130[1] = gauss(465000, 100000); 17 | male2130[2] = gauss(465000, 100000); 18 | male2130[3] = gauss(465000, 100000); 19 | male2130[4] = gauss(465000, 100000); 20 | male2130[5] = gauss(465000, 100000); 21 | male2130[6] = gauss(465000, 100000); 22 | male2130[7] = gauss(465000, 100000); 23 | male2130[8] = gauss(465000, 100000); 24 | male2130[9] = gauss(465000, 100000); 25 | 26 | for i in range(10): 27 | male3140[i] = gauss(475000, 100000); 28 | male4150[i] = gauss(485000, 100000); 29 | male5160[i] = gauss(495000, 100000); 30 | female2130[i] = gauss(460000, 100000); 31 | end for; 32 | 33 | for i in range(10): 34 | totalmale2130 = totalmale2130 + male2130[i]; 35 | end for; 36 | 37 | totalmale2130 = 0.1*totalmale2130; 38 | 39 | observe(totalmale2130==584043.4); 40 | -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/timeseries/TimeSeries5.soga: -------------------------------------------------------------------------------- 1 | data x = [0.0530897649405518, -0.427176340746955, 0.575506045064776, -1.05503057032362, -0.00138425373659317, 0.362367184144129, -0.906400668762085, 1.39464604836768, -1.40047244298115, -0.872458836353285, -0.425555167755021, -0.192907289991263, 0.611345320709905, 0.223493915844394, -0.335855643300744, -0.786177511979181, 1.0466888412128, -1.35578280849525, -0.4802662607177, -0.482825573577857, -0.44808934155094, 1.41677018342172, -1.12722529948411, -1.52518755310289, -0.232336215009525, -0.452482201859223, -0.235580964484178, -0.789514125170731, 1.61944620303219, 0.735756130006795, -1.0253656503392, 0.936124304383727, 1.10587169595422, 0.833182124741184, 0.113696178051401, -1.15636049024915, 1.85507312756962, 1.30957252757083, 0.822235075588577, -1.43800316565635]; 2 | 3 | data y = [-1.09070023335653, -2.49513228748069, -2.07918898737732, -3.34621083464711, -3.21905761756761, -3.84835139936697, -4.14591579938845, -2.17085702918779, -2.72986009710348, -2.35417403593087, -3.05798313015489, -2.85360404455837, -2.9261492993768, -2.67713444957349, -2.97731974867721, -4.7510500052692, -3.2939903406896, -4.11626048191435, -4.08086402479665, -3.34743297842617, -3.59294970060833, -1.70489370379594, -3.522911840642, -4.13944648650588, -4.04992280586435, -3.71707285571859, -2.6830205191276, -3.21920265745786, -1.78221835462429, -1.71385611701893, -3.15284681754168, -3.26094915407183, -2.92240028325557, -2.40186352631743, -3.1697331801915, -4.00540748111558, -2.32625323220302, -1.74827635320394, -1.05716214917384, -3.44536781268663]; 4 | 5 | 6 | a = gm([1.], [1.], [1.]); 7 | b = gm([1.], [1.], [1.]); 8 | lamb = uniform([0,1], 2); 9 | 10 | y0 = -1.09070023335653; 11 | y1 = lamb*y0; 12 | y1 = y1 + a + -0.4272*b; 13 | y1 = y1 + gm([1.],[0.],[0.5]); 14 | observe(y1 > 0); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/experiment2.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [976405., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 584043.4 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4*/ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean */ 6 | 7 | /* Real mean all male 540261.1 */ 8 | 9 | array[10] male2130; 10 | array[10] male3140; 11 | array[10] male4150; 12 | array[10] male5160; 13 | array[10] female2130; 14 | 15 | male2130[0] = gauss(800000, 100000); 16 | male2130[1] = gauss(465000, 100000); 17 | male2130[2] = gauss(465000, 100000); 18 | male2130[3] = gauss(465000, 100000); 19 | male2130[4] = gauss(465000, 100000); 20 | male2130[5] = gauss(465000, 100000); 21 | male2130[6] = gauss(465000, 100000); 22 | male2130[7] = gauss(465000, 100000); 23 | male2130[8] = gauss(465000, 100000); 24 | male2130[9] = gauss(465000, 100000); 25 | 26 | for i in range(10): 27 | male3140[i] = gauss(475000, 100000); 28 | male4150[i] = gauss(485000, 100000); 29 | male5160[i] = gauss(495000, 100000); 30 | female2130[i] = gauss(460000, 100000); 31 | end for; 32 | 33 | totalmale = 0; 34 | 35 | for i in range(10): 36 | totalmale = totalmale + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 37 | end for; 38 | 39 | totalmale = 0.025*totalmale; 40 | observe(totalmale==540261.1); -------------------------------------------------------------------------------- /programs/SOGA/SensitivityExp/#variables/timeseries/TimeSeries6.soga: -------------------------------------------------------------------------------- 1 | data x = [0.0530897649405518, -0.427176340746955, 0.575506045064776, -1.05503057032362, -0.00138425373659317, 0.362367184144129, -0.906400668762085, 1.39464604836768, -1.40047244298115, -0.872458836353285, -0.425555167755021, -0.192907289991263, 0.611345320709905, 0.223493915844394, -0.335855643300744, -0.786177511979181, 1.0466888412128, -1.35578280849525, -0.4802662607177, -0.482825573577857, -0.44808934155094, 1.41677018342172, -1.12722529948411, -1.52518755310289, -0.232336215009525, -0.452482201859223, -0.235580964484178, -0.789514125170731, 1.61944620303219, 0.735756130006795, -1.0253656503392, 0.936124304383727, 1.10587169595422, 0.833182124741184, 0.113696178051401, -1.15636049024915, 1.85507312756962, 1.30957252757083, 0.822235075588577, -1.43800316565635]; 2 | 3 | data y = [-1.09070023335653, -2.49513228748069, -2.07918898737732, -3.34621083464711, -3.21905761756761, -3.84835139936697, -4.14591579938845, -2.17085702918779, -2.72986009710348, -2.35417403593087, -3.05798313015489, -2.85360404455837, -2.9261492993768, -2.67713444957349, -2.97731974867721, -4.7510500052692, -3.2939903406896, -4.11626048191435, -4.08086402479665, -3.34743297842617, -3.59294970060833, -1.70489370379594, -3.522911840642, -4.13944648650588, -4.04992280586435, -3.71707285571859, -2.6830205191276, -3.21920265745786, -1.78221835462429, -1.71385611701893, -3.15284681754168, -3.26094915407183, -2.92240028325557, -2.40186352631743, -3.1697331801915, -4.00540748111558, -2.32625323220302, -1.74827635320394, -1.05716214917384, -3.44536781268663]; 4 | 5 | 6 | a = gm([1.], [1.], [1.]); 7 | b = gm([1.], [1.], [1.]); 8 | lamb = uniform([0,1], 2); 9 | 10 | y0 = -1.09070023335653; 11 | y1 = lamb*y0; 12 | y1 = y1 + a + -0.4272*b; 13 | y1 = y1 + gm([1.],[0.],[0.5]); 14 | y2 = lamb*y1; 15 | y2 = y2 + a + 0.5755*b; 16 | y2 = y2 + gm([1.],[0.],[0.5]); 17 | observe(y2 > 0); -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case1/experiment3.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [553663., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 541769.2 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 529692.55 */ 8 | /* Real mean all 508389.1 */ 9 | 10 | array[10] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(10): 17 | male2130[i] = gauss(465000, 100000); 18 | male3140[i] = gauss(465000, 100000); 19 | male4150[i] = gauss(465000, 100000); 20 | male5160[i] = gauss(465000, 100000); 21 | female2130[i] = gauss(465000, 100000); 22 | end for; 23 | 24 | totalall = 0; 25 | for i in range(10): 26 | totalall = totalall + female2130[i] + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 27 | end for; 28 | 29 | totalmale = 0; 30 | for i in range(10): 31 | totalmale = totalmale + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 32 | end for; 33 | 34 | totalmale2130 = 0; 35 | for i in range(10): 36 | totalmale2130 = totalmale2130 + male2130[i]; 37 | end for; 38 | 39 | 40 | totalall = 0.02*totalall; 41 | totalmale = 0.025*totalmale; 42 | totalmale2130 = 0.1*totalmale2130; 43 | 44 | observe(totalall==508389.1); 45 | observe(totalmale==529692.55); 46 | observe(totalmale2130==541769.2); 47 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case2/experiment3.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411., 745048., 577540., 540576., 442278., 504165.]; /* mean 465k */ /* Real mean 586402.8 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 540850.95 */ 8 | /* Real mean all 517315.82 */ 9 | 10 | array[10] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(10): 17 | male2130[i] = gauss(465000, 100000); 18 | male3140[i] = gauss(465000, 100000); 19 | male4150[i] = gauss(465000, 100000); 20 | male5160[i] = gauss(465000, 100000); 21 | female2130[i] = gauss(465000, 100000); 22 | end for; 23 | 24 | totalall = 0; 25 | for i in range(10): 26 | totalall = totalall + female2130[i] + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 27 | end for; 28 | 29 | totalmale = 0; 30 | for i in range(10): 31 | totalmale = totalmale + male2130[i] + male3140[i] + male4150[i] + male5160[i]; 32 | end for; 33 | 34 | totalmale2130 = 0; 35 | for i in range(10): 36 | totalmale2130 = totalmale2130 + male2130[i]; 37 | end for; 38 | 39 | 40 | totalall = 0.02*totalall; 41 | totalmale = 0.025*totalmale; 42 | totalmale2130 = 0.1*totalmale2130; 43 | 44 | observe(totalall==517315.82); 45 | observe(totalmale==540850.95); 46 | observe(totalmale2130==586402.8); 47 | -------------------------------------------------------------------------------- /programs/SOGA/Privug/rasmus/Case3/experiment5.soga: -------------------------------------------------------------------------------- 1 | data meanm2130 = [999999., 433856., 713989., 471166., 435411.]; /* mean 465k */ /* Real mean 610884.2 */ 2 | data meanm3140 = [429254., 565260., 490365., 568815., 446628., 417811., 403353., 618130., 454271., 444181.]; /* mean 475k */ /* Real mean 483806.8 */ 3 | data meanm4150 = [612930., 486621., 535591., 584664., 467942., 593904., 577935., 366869., 614758., 676634.]; /* mean 485k */ /* Real mean 551784.8 */ 4 | data meanm5160 = [421815., 619666., 723055., 498242., 540499., 541263., 494399., 596725., 474274., 504156.]; /* mean 495k */ /* Real mean 541409.4 */ 5 | data meanf2130 = [570584., 486264., 433134., 418759., 222708., 455372., 457377., 383811., 394170., 409574.]; /* mean 460k */ /* Real mean 423175.3*/ 6 | 7 | /* Real mean all male 537840.8857142857 */ 8 | /* Real mean all 512359.64444444445 */ 9 | 10 | array[5] male2130; 11 | array[10] male3140; 12 | array[10] male4150; 13 | array[10] male5160; 14 | array[10] female2130; 15 | 16 | for i in range(5): 17 | male2130[i] = gauss(465000, 100000); 18 | end for; 19 | 20 | for i in range(10): 21 | male3140[i] = gauss(465000, 100000); 22 | male4150[i] = gauss(465000, 100000); 23 | male5160[i] = gauss(465000, 100000); 24 | female2130[i] = gauss(465000, 100000); 25 | end for; 26 | 27 | 28 | totalall = 0; 29 | for i in range(10): 30 | totalall = totalall + female2130[i] + male3140[i] + male4150[i] + male5160[i]; 31 | end for; 32 | 33 | for i in range(5): 34 | totalall = totalall + male2130[i]; 35 | end for; 36 | 37 | 38 | totalmale = 0; 39 | for i in range(10): 40 | totalmale = totalmale + male3140[i] + male4150[i] + male5160[i]; 41 | end for; 42 | 43 | for i in range(5): 44 | totalmale = totalmale + male2130[i]; 45 | end for; 46 | 47 | 48 | totalall = 0.02222222222*totalall; 49 | totalmale = 0.02857142857*totalmale; 50 | 51 | observe(totalall==512359.64444444445); 52 | observe(totalmale== 537840.8857142857); 53 | -------------------------------------------------------------------------------- /programs/SOGA/Optimization/CaseStudies/.ipynb_checkpoints/Gearbox-checkpoint.soga: -------------------------------------------------------------------------------- 1 | array[21] v; 2 | 3 | w = gauss(0, 0.01); /* smoothing added here */ 4 | gear = gauss(1, 0.01); /* smoothing added here */ 5 | currV = gauss(5, 0.01); /* smoothing added here */ 6 | 7 | for i in range(21) { 8 | 9 | v[i] = currV + gauss(0., 0.05); /* smoothing added here */ 10 | 11 | if gear > 0.5 { 12 | newV = 1.078*currV + 0.1*gauss(5., 1.); 13 | } else { 14 | newV = currV*currV; 15 | newV = 0.00005*newV; 16 | newV = currV - newV + gauss(0, 1.); 17 | } end if; 18 | 19 | currV = newV + gauss(0., 0.05); /* smoothing added here */ 20 | 21 | if gear > 0.5 { 22 | if gear < 1.5 { 23 | if currV > _s1 { 24 | nxt = gear + 1 + gauss(0, 0.05); /* smoothing added here */ 25 | gear = gauss(0, 0.01); /* smoothing added here */ 26 | w = gauss(0.3, 0.01); /* smoothing added here */ 27 | } else { 28 | skip; 29 | } end if; 30 | } else { 31 | if gear < 2.5 { 32 | if currV > _s2 { 33 | nxt = gear + 1 + gauss(0, 0.005); /* smoothing added here */ 34 | gear = gauss(0, 0.01); /* smoothing added here */ 35 | w = gauss(0.3, 0.01); /* smoothing added here */ 36 | } else { 37 | skip; 38 | } end if; 39 | } else { 40 | skip; 41 | } end if; 42 | } end if; 43 | } else { 44 | if w < 0.05 { 45 | gear = nxt + gauss(0, 0.05); /* smoothing added here */ 46 | } else { 47 | skip; 48 | } end if; 49 | } end if; 50 | 51 | w = w - 0.1; 52 | 53 | } end for; 54 | 55 | --------------------------------------------------------------------------------