Beispiel #1
0
    def __init__(self, people, conf):
        super().__init__(people)

        config = default_conf.copy()
        config.update(conf)
        self.config = config

        Firm.config = config
        Person.base_min_consumption = config['base_min_consumption']
        Person.wage_under_market_multiplier = config[
            'wage_under_market_multiplier']
        Person.min_business_capital = config['min_business_capital']

        self.government = Government(config['tax_rate'], config['welfare'],
                                     config['tax_rate_increment'],
                                     config['welfare_increment'],
                                     config['starting_welfare_req'])

        self.buildings = [
            Building(config['max_tenants'], config['rent'])
            for _ in range(config['n_buildings'])
        ]

        # the world state
        self.date = START_DATE
        self.state = {
            'month': self.date.month,
            'year': self.date.year,

            # contagion model
            'patient_zero_prob': config['patient_zero_prob'],
            'contact_rate': config['contact_rate'],
            'transmission_rate': config['transmission_rate'],
            'sickness_severity': config['sickness_severity'],
            'recovery_prob': config['recovery_prob'],
            'mean_wage': config['starting_wage'],
            'available_space': len(self.buildings) * config['max_tenants'],

            # just initialize to some values
            'mean_equip_price': 1,
            'mean_consumer_good_price': 1,
            'mean_equip_profit': 1,
            'mean_material_profit': 1,
            'mean_consumer_good_profit': 1,
            'mean_healthcare_profit': 1,
        }

        self.people = people

        # TODO create "real" households
        self.households = [
            Household([p], config['consumer_good_utility']) for p in people
        ]

        self.firms = []
        self.consumer_good_firms = []
        self.raw_material_firms = []
        self.capital_equipment_firms = []
        self.hospitals = []

        self.initialized = False