使用泊松分布绘制需求模式

问题描述 投票:0回答:1

我目前正在尝试创建一个执行以下操作的函数。

我想生成控制参数 1) 天 2) 班次和 3) 需求的需求模式。由于需求当然只能以离散值出现,因此我将使用泊松分布。然后将之前定义的班次数量添加到每天,然后将需求分配给这些班次。第一个值(层 1)取自泊松分布,第二个值也取自泊松分布(由此只能接收需求值的最大值 - 层 1 的值)。然后为最后一个班次分配缺失的差异。

此示例现在适用于 shift = 3。如果有更多的班次,则应动态调整。由于这种方法意味着最后一个班次只能具有较低的值,因此每天应始终选择随机的新开始班次。每天,需求都应该准确地分配给所有可用的班次。

如果我想将值保存在 .csv 文件中,这样的代码会是什么样子?这是我到目前为止的代码。

import csv
import random
from scipy.stats import poisson

def simulate_demand(num_days, num_shifts, demand):
    with open(r'...\nachfrage.csv', 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(['Day', 'Shift', 'Demand'])

        for day in range(1, num_days + 1):
python poisson
1个回答
0
投票

请检查一下:

import csv
import random
from scipy.stats import poisson

def simulate_demand(num_days, num_shifts, demand_mean):
    with open(r'...\nachfrage.csv', 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(['Day', 'Shift', 'Demand'])
    for day in range(1, num_days + 1):
        for shift in range(1, num_shifts + 1):
            demand_value = poisson.rvs(demand_mean)

            writer.writerow([day, shift, demand_value])

#adjust below values as per requirement

num_days = 30
num_shifts = 3
demand_mean = 10  

simulate_demand(num_days, num_shifts, demand_mean)
© www.soinside.com 2019 - 2024. All rights reserved.