Esempio n. 1
0
    def test_load_results(self):
        # test for 1d
        # test for 2d
        # test for 3d

        nr_experiments = 10000

        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={
                                       'x': np.float,
                                       'y': np.float
                                   })

        experiments['x'] = np.random.rand(nr_experiments)
        experiments['y'] = np.random.rand(nr_experiments)

        outcome_a = np.zeros((nr_experiments, 1))
        results = (experiments, {'a': outcome_a})

        save_results(results, '../data/test.tar.gz')
        loaded_experiments, outcomes = load_results('../data/test.tar.gz')

        self.assertTrue(np.all(np.allclose(outcomes['a'], outcome_a)))
        self.assertTrue(
            np.all(np.allclose(experiments['x'], loaded_experiments['x'])))
        self.assertTrue(
            np.all(np.allclose(experiments['y'], loaded_experiments['y'])))

        os.remove('../data/test.tar.gz')

        nr_experiments = 1000
        nr_timesteps = 100
        nr_replications = 10
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={
                                       'x': np.float,
                                       'y': np.float
                                   })
        experiments['x'] = np.random.rand(nr_experiments)
        experiments['y'] = np.random.rand(nr_experiments)

        outcome_a = np.zeros((nr_experiments, nr_timesteps, nr_replications))

        results = (experiments, {'a': outcome_a})
        save_results(results, '../data/test.tar.gz')
        loaded_experiments, outcomes = load_results('../data/test.tar.gz')

        os.remove('../data/test.tar.gz')

        self.assertTrue(np.all(np.allclose(outcomes['a'], outcome_a)))
        self.assertTrue(
            np.all(np.allclose(experiments['x'], loaded_experiments['x'])))
        self.assertTrue(
            np.all(np.allclose(experiments['y'], loaded_experiments['y'])))
Esempio n. 2
0
    def test_load_results(self):
        # test for 1d
        # test for 2d
        # test for 3d

        nr_experiments = 10000

        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', np.float), ('y', np.float)])

        experiments['x'] = np.random.rand(nr_experiments)
        experiments['y'] = np.random.rand(nr_experiments)

        outcome_a = np.zeros((nr_experiments, 1))
        results = (experiments, {'a': outcome_a})

        save_results(results, '../data/test.tar.gz')
        loaded_experiments, outcomes = load_results('../data/test.tar.gz')

        self.assertTrue(np.all(np.allclose(outcomes['a'], outcome_a)))
        self.assertTrue(
            np.all(np.allclose(experiments['x'], loaded_experiments['x'])))
        self.assertTrue(
            np.all(np.allclose(experiments['y'], loaded_experiments['y'])))

        os.remove('../data/test.tar.gz')

        nr_experiments = 1000
        nr_timesteps = 100
        nr_replications = 10
        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', np.float), ('y', np.float)])
        experiments['x'] = np.random.rand(nr_experiments)
        experiments['y'] = np.random.rand(nr_experiments)

        outcome_a = np.zeros((nr_experiments, nr_timesteps, nr_replications))

        results = (experiments, {'a': outcome_a})
        save_results(results, '../data/test.tar.gz')
        loaded_experiments, outcomes = load_results('../data/test.tar.gz')

        os.remove('../data/test.tar.gz')

        self.assertTrue(np.all(np.allclose(outcomes['a'], outcome_a)))
        self.assertTrue(
            np.all(np.allclose(experiments['x'], loaded_experiments['x'])))
        self.assertTrue(
            np.all(np.allclose(experiments['y'], loaded_experiments['y'])))
Esempio n. 3
0
 def test_load_results(self):
     # test for 1d
     # test for 2d
     # test for 3d
 
     nr_experiments = 10000
     
     experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                columns={'x':np.float, 
                                         'y': np.float})
         
     experiments['x'] = np.random.rand(nr_experiments)
     experiments['y'] = np.random.rand(nr_experiments)
     
     outcome_a = np.zeros((nr_experiments,1))
     results = (experiments, {'a': outcome_a})
     
     save_results(results, '../data/test.tar.gz')
     loaded_experiments, outcomes  = load_results('../data/test.tar.gz')
     
     self.assertTrue(np.all(np.allclose(outcomes['a'],outcome_a)))
     self.assertTrue(np.all(np.allclose(experiments['x'],loaded_experiments['x'])))
     self.assertTrue(np.all(np.allclose(experiments['y'],loaded_experiments['y'])))        
     
     os.remove('../data/test.tar.gz')
     
     
     nr_experiments = 1000
     nr_timesteps = 100
     nr_replications = 10
     experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                columns={'x':np.float, 
                                         'y': np.float})
     experiments['x'] = np.random.rand(nr_experiments)
     experiments['y'] = np.random.rand(nr_experiments)
     
     outcome_a = np.zeros((nr_experiments,nr_timesteps,nr_replications))
      
     results = (experiments, {'a': outcome_a})
     save_results(results, '../data/test.tar.gz')
     loaded_experiments, outcomes = load_results('../data/test.tar.gz')
     
     os.remove('../data/test.tar.gz')
     
     self.assertTrue(np.all(np.allclose(outcomes['a'],outcome_a)))
     self.assertTrue(np.all(np.allclose(experiments['x'],loaded_experiments['x'])))
     self.assertTrue(np.all(np.allclose(experiments['y'],loaded_experiments['y'])))        
    def test_save_results(self):
        # test for 1d
        # test for 2d
        # test for 3d
        # test for very large
        
        nr_experiments = 10000
        experiments = np.recarray((nr_experiments,),
                               dtype=[('x', float), ('y', float)])
        outcome_a = np.random.rand(nr_experiments,1)
        
        results = (experiments, {'a': outcome_a})
    
        fn = u'../data/test.tar.gz'
        
        save_results(results, fn)
        os.remove(fn)
#         ema_logging.info('1d saved successfully')
        
        nr_experiments = 10000
        nr_timesteps = 100
        experiments = np.recarray((nr_experiments,),
                               dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments,nr_timesteps))
        
        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
#         ema_logging.info('2d saved successfully')
     
     
        nr_experiments = 10000
        nr_timesteps = 100
        nr_replications = 10
        experiments = np.recarray((nr_experiments,),
                               dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments,nr_timesteps,nr_replications))
         
        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
#         ema_logging.info('3d saved successfully')
        
        nr_experiments = 500000
        nr_timesteps = 100
        experiments = np.recarray((nr_experiments,),
                               dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments,nr_timesteps))
        
        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
Esempio n. 5
0
    def test_load_results(self):
        # test for 1d
        # test for 2d
        # test for 3d

        nr_experiments = 10000
        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments, 1))

        results = (experiments, {'a': outcome_a})

        save_results(results, u'../data/test.tar.gz')
        experiments, outcomes = load_results(u'../data/test.tar.gz')

        logical = np.allclose(outcomes['a'], outcome_a)

        os.remove('../data/test.tar.gz')

        #         if logical:
        #             ema_logging.info('1d loaded successfully')

        nr_experiments = 1000
        nr_timesteps = 100
        nr_replications = 10
        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments, nr_timesteps, nr_replications))

        results = (experiments, {'a': outcome_a})
        save_results(results, '../data/test.tar.gz')
        experiments, outcomes = load_results('../data/test.tar.gz')

        logical = np.allclose(outcomes['a'], outcome_a)

        os.remove('../data/test.tar.gz')
    def test_load_results(self):
        # test for 1d
        # test for 2d
        # test for 3d
    
        nr_experiments = 10000
        experiments = np.recarray((nr_experiments,),
                               dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments,1))
        
        results = (experiments, {'a': outcome_a})
        
        save_results(results, u'../data/test.tar.gz')
        experiments, outcomes  = load_results(u'../data/test.tar.gz')
        
        logical = np.allclose(outcomes['a'],outcome_a)
        
        os.remove('../data/test.tar.gz')
        
#         if logical:
#             ema_logging.info('1d loaded successfully')
        
        nr_experiments = 1000
        nr_timesteps = 100
        nr_replications = 10
        experiments = np.recarray((nr_experiments,),
                               dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments,nr_timesteps,nr_replications))
         
        results = (experiments, {'a': outcome_a})
        save_results(results, u'../data/test.tar.gz')
        experiments, outcomes = load_results(u'../data/test.tar.gz')
        
        logical = np.allclose(outcomes['a'],outcome_a)
        
        os.remove('../data/test.tar.gz')
Esempio n. 7
0
    def test_save_results(self):
        # test for 1d
        # test for 2d
        # test for 3d
        # test for very large

        nr_experiments = 10000
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={
                                       'x': np.float,
                                       'y': np.float
                                   })
        outcome_a = np.random.rand(nr_experiments, 1)

        results = (experiments, {'a': outcome_a})

        fn = u'../data/test.tar.gz'

        save_results(results, fn)
        os.remove(fn)
        #         ema_logging.info('1d saved successfully')

        nr_experiments = 10000
        nr_timesteps = 100
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={
                                       'x': np.float,
                                       'y': np.float
                                   })
        outcome_a = np.zeros((nr_experiments, nr_timesteps))

        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
        #         ema_logging.info('2d saved successfully')

        nr_experiments = 10000
        nr_timesteps = 100
        nr_replications = 10
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={
                                       'x': np.float,
                                       'y': np.float
                                   })
        outcome_a = np.zeros((nr_experiments, nr_timesteps, nr_replications))

        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
Esempio n. 8
0
    def test_save_results(self):
        # test for 1d
        # test for 2d
        # test for 3d
        # test for very large
        
        nr_experiments = 10000
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={'x':np.float, 
                                            'y': np.float})
        outcome_a = np.random.rand(nr_experiments,1)
        
        results = (experiments, {'a': outcome_a})
    
        fn = u'../data/test.tar.gz'
        
        save_results(results, fn)
        os.remove(fn)
#         ema_logging.info('1d saved successfully')
        
        nr_experiments = 10000
        nr_timesteps = 100
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={'x':np.float, 
                                            'y': np.float})
        outcome_a = np.zeros((nr_experiments,nr_timesteps))
        
        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
#         ema_logging.info('2d saved successfully')
     
        nr_experiments = 10000
        nr_timesteps = 100
        nr_replications = 10
        experiments = pd.DataFrame(index=np.arange(nr_experiments),
                                   columns={'x':np.float, 
                                            'y': np.float})
        outcome_a = np.zeros((nr_experiments,nr_timesteps,nr_replications))
         
        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
Esempio n. 9
0
    def test_save_results(self):
        # test for 1d
        # test for 2d
        # test for 3d
        # test for very large

        nr_experiments = 10000
        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', float), ('y', float)])
        outcome_a = np.random.rand(nr_experiments, 1)

        results = (experiments, {'a': outcome_a})

        fn = u'../data/test.tar.gz'

        save_results(results, fn)
        os.remove(fn)
        #         ema_logging.info('1d saved successfully')

        nr_experiments = 10000
        nr_timesteps = 100
        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments, nr_timesteps))

        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
        #         ema_logging.info('2d saved successfully')

        nr_experiments = 10000
        nr_timesteps = 100
        nr_replications = 10
        experiments = np.recarray((nr_experiments, ),
                                  dtype=[('x', float), ('y', float)])
        outcome_a = np.zeros((nr_experiments, nr_timesteps, nr_replications))

        results = (experiments, {'a': outcome_a})
        save_results(results, fn)
        os.remove(fn)
Esempio n. 10
0
    model.uncertainties = uncertainties

    model.outcomes = [ArrayOutcome('stedin_capacity'),
                      ArrayOutcome('stedin_load'),
                      ArrayOutcome('tennet_capacity'),
                      ArrayOutcome('tennet_load'),
                      ArrayOutcome('gasunie_capacity'),
                      ArrayOutcome('investments'),
                      ArrayOutcome('stedin capex'),
                      ArrayOutcome('tennet capex'),
                      ArrayOutcome('gasunie capex'),
                      ArrayOutcome('collaborative capex'),
                      ArrayOutcome('h2_import'),
                      ArrayOutcome('stedin_lost'),
                      ArrayOutcome('first_failure'),
                      ArrayOutcome('missed_over_time')
                      ]

    _logger.info(f"{len(uncertainties)} uncertainties defined")
    _logger.info(f"{len(model.replications)} replications defined")


    n_scenarios = 2500
    print(datetime.datetime.now())
    # with SequentialEvaluator(model) as evaluator:
    with MultiprocessingEvaluator(model, n_processes=56) as evaluator:
        results = evaluator.perform_experiments(n_scenarios, uncertainty_sampling=MC)

    save_results(results, f'./results/{n_scenarios}_scenarios_{len(model.replications)} replications_{datetime.datetime.now()}_MC.tar.gz')
    print(datetime.datetime.now())
Esempio n. 11
0
        RealParameter("ShipTbl3", -0.1, 0.1),
        RealParameter("collaboration", 1, 1.6),
        CategoricalParameter("land use scenarios", [
            "NoChange", "moreNature", "Deurbanization", "sustainableGrowth",
            "urbanizationDeurbanization", "urbanizationLargeAndFast",
            "urbanizationLargeSteady"
        ],
                             pff=True)
    ]

    waas_model.outcomes = [
        ScalarOutcome("Flood damage (Milj. Euro)"),
        ScalarOutcome("Number of casualties"),
        ScalarOutcome("Costs"),
        ScalarOutcome("Timing")
    ]

    n_scenarios = 500
    policies = [
        Policy(kwargs['name'], **kwargs['params']) for kwargs in policies
    ]

    with MultiprocessingEvaluator(waas_model) as evaluator:
        # with SequentialEvaluator(waas_model) as evaluator:
        results = perform_experiments(waas_model,
                                      n_scenarios,
                                      policies,
                                      evaluator=evaluator)

    save_results(results, './data/partial factorial over pathways.tar.gz')
Esempio n. 12
0
                             variable_name='A.5_Expected Annual Damage', function=A5_Total_Costs),
                        ScalarOutcome('RfR total costs', kind=MINIMIZE, variable_name='RfR Total Costs', function=RfR_Total_Costs),
                        ScalarOutcome('Evacuation costs', kind=MINIMIZE, variable_name='Expected Evacuation Costs', function=Expected_Evacuation_Costs)
                       ]

constraints = [Constraint("ConstrA.1_Expected Annual Damage", outcome_names="A.1_Expected Annual Damage",
                           function=lambda x:max(0, x-40000000)),
               Constraint("ConstrA.1_Expected Number of Deaths", outcome_names="A.1_Expected Number of Deaths",
                          function=lambda x:max(0, x-1))
               ]
                                              
# Record the run time
start = time.time()

# We assume we needed to put 17x 0 and 17x 1 for convergence, because we have 17 outcomes in Robustness_functions?
# In assignment 10, there were 4 outcomes, and also 4x 0 and 4x 1 here in the convergence part
convergence = [HyperVolume(minimum=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], maximum=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]),
               EpsilonProgress()]
nfe = 200 # int(1e4)

# Run it                                              
if __name__ == '__main__':                                            
    with MultiprocessingEvaluator(dike_model, n_processes=7) as evaluator:
        results = evaluator.robust_optimize(robustness_functions, scenarios, 
                                                   nfe=nfe, convergence=convergence, constraints=constraints,
                                                   epsilons=[0.05,]*len(robustness_functions))

    utilities.save_results(results, 'Outcomes/MOROrijkswaterstaatConstraints.tar.gz')

end = time.time()
print('Total run time:{} min'.format((end - start)/60))