示例#1
0
        latency_period_mean=latency_period_mean,
        latency_period_stdev=latency_period_stdev,
        incubation_period_mean=incubation_period_mean,
        incubation_period_stdev=incubation_period_stdev,
        disease_period_mean=disease_period_mean,
        disease_period_stdev=disease_period_stdev,
        asymptomatic_isolation_rate=asymptomatic_isolation_rate,
        symptomatic_isolation_rate=symptomatic_isolation_rate,
        daily_interaction_count=daily_interaction_count,
        contagion_probability=contagion_probability))

sum = 0.0
for k in range(epochs):
    model = CovidModel()
    location = SimpleLocation(0, model, population_size)
    statistics = BasicStatistics(model)
    model.add_location(location)
    model.add_listener(statistics)
    for i in range(simulation_cycles):
        model.step()
    sum += statistics.death[-1]
baseline_deaths = sum / epochs

# Parameter variation

ME = float(sys.argv[1])
difference = [None] * len(ICR)
for i in range(len(ICR)):
    difference[i] = [None] * len(ICS)
    for j in range(len(ICS)):
        sum = 0.0
sc7_model = CovidModel()
np.random.seed(seed)
setup_city_layout(sc7_model, population_size)
sc7_model.add_listener(Propaganda(sc7_model, 1))
sc7_model.add_listener(RemovePolicy(sc7_model, SocialPolicy.LOCKDOWN_RETAIL, 30))
sc7_model.add_listener(RemovePolicy(sc7_model, SocialPolicy.LOCKDOWN_FACTORY, 60))
sc7_model.add_listener(RemovePolicy(sc7_model, SocialPolicy.LOCKDOWN_OFFICE, 90))
sc7_model.add_listener(RemovePolicy(sc7_model, SocialPolicy.LOCKDOWN_ELEMENTARY_SCHOOL, 90))
sc7_model.add_listener(RemovePolicy(sc7_model, SocialPolicy.LOCKDOWN_MIDDLE_SCHOOL, 90))
sc7_model.add_listener(RemovePolicy(sc7_model, SocialPolicy.LOCKDOWN_HIGH_SCHOOL, 120))
scenario[sc]['parameters'] = sc7_parameters
scenario[sc]['model'] = sc7_model


################################################################################
# Simulation of all scenarios

for sc in scenario:
#for sc in [1, 2, 3, 4, 5, 6, 7, 8]:
    #print("--------------------------------------------------------------------------------")
    print(f"Running scenario {sc}")
    set_parameters(scenario[sc]['parameters'])
    model = scenario[sc]['model']
    model.reset_randomizer(seed)
    statistics = BasicStatistics(model)
    model.add_listener(statistics)
    for i in range(simulation_cycles):
        model.step()
    statistics.export_chart("scenario" + str(sc) + ".png")
    statistics.export_csv("scenario" + str(sc) + ".csv")
for value in var_values:

    infections_in_restaurants[value] = []

    for k in range(multiple_runs):
        params = copy.deepcopy(basic_parameters)
        params.params[var_name] = value
        set_parameters(params)
        model = CovidModel()
        setup_city_layout(model, population_size)
        model.add_listener(Propaganda(model, 30))
        model.add_listener(
            RemovePolicy(model, SocialPolicy.LOCKDOWN_ELEMENTARY_SCHOOL, 30))
        model.add_listener(
            RemovePolicy(model, SocialPolicy.LOCKDOWN_MIDDLE_SCHOOL, 60))
        model.add_listener(
            RemovePolicy(model, SocialPolicy.LOCKDOWN_HIGH_SCHOOL, 90))
        statistics = BasicStatistics(model)
        model.add_listener(statistics)
        debug = DebugUtils(model)
        logger().model = model
        for i in range(simulation_cycles):
            model.step()
        statistics.export_chart(f'scenario_{var_name}_{value}_{k}.png')
        statistics.export_csv(f'scenario_{var_name}_{value}_{k}.csv')
        debug.update_infection_status()

        infections_in_restaurants[value].append(debug.count_restaurant)

print(infections_in_restaurants)