Spaces:
Runtime error
Runtime error
| import montecarlo_simulator | |
| from agent_environment import MonteCarloAgent, SafetyStockAgent, ForecastAgent, BaseAgent | |
| from demand_environment import GammaPoisson, GammaGammaHighVariance, SingleGammaLowVariance, SpikingDemand | |
| from demand_calculator import DemandCalculator | |
| from config import SIM_DAYS, N_SIMULATIONS | |
| import ciw | |
| ciw.seed(11) | |
| #Main | |
| simulation_version = input("Choose a simulation version (0-3):\n" | |
| "0: Historical Demand Agent\n" | |
| "1: Safety Stock Agent\n" | |
| "2: Forecast Agent\n" | |
| "3: Monte Carlo Agent\n") | |
| print(f"Running simulation version: {simulation_version}") | |
| simulation_version = int(simulation_version) | |
| # Create environment first | |
| environment_version = input("Choose demand distribution (0-3):\n" | |
| "0: 90/10 Gamma/Poisson\n" | |
| "1: 50/50 Gamma(mu=20)/Gamma(mu=200)\n" | |
| "2: Spiking High Demand\n" | |
| "3: Gamma\n") | |
| print(f"Running demand distribution: {environment_version}") | |
| environment_version = int(environment_version) | |
| environment_versions = { | |
| 0: GammaPoisson(SIM_DAYS), | |
| 1: GammaGammaHighVariance(SIM_DAYS), | |
| 2: SpikingDemand(SIM_DAYS), | |
| 3: SingleGammaLowVariance(SIM_DAYS), | |
| } | |
| try: | |
| selected_environment = environment_versions[environment_version] | |
| except: | |
| raise ValueError("Invalid demand distribution version") | |
| demand_calculator = DemandCalculator(SIM_DAYS) | |
| demand_calculator.set_environment(selected_environment) | |
| daily_demand_distribution = demand_calculator | |
| demand_mean = [d.demand_mean for d in daily_demand_distribution.daily_demand_distribution] | |
| demand_std = [d.demand_std for d in daily_demand_distribution.daily_demand_distribution] | |
| agent_versions = { | |
| 0: BaseAgent(daily_demand_distribution), | |
| 1: SafetyStockAgent(daily_demand_distribution), | |
| 2: ForecastAgent(daily_demand_distribution, demand_mean, demand_std), | |
| 3: MonteCarloAgent(daily_demand_distribution) | |
| } | |
| try: | |
| selected_agent = agent_versions[simulation_version] | |
| except: | |
| raise ValueError("Invalid simulation version") | |
| sim = montecarlo_simulator.MonteCarloSimulator(selected_agent, selected_environment) | |
| sim.run_simulation(N_SIMULATIONS, SIM_DAYS) | |