python建模仿真报告_Python|数学建模|排队论仿真

数模准备过程中,写了这种运筹学仿真的代码,虽然自己选了C题没有用到,但考虑到市面上存在的仿真代码较少,聊以为分享。

文档介绍

本文档使用了Python的离散事件仿真库对于排队论模型进行了仿真

仿真的主要目的是提供个性化定制,如对分布的设定,对排队规则的设定等。通过蒙特卡洛模拟得到复杂规则下难以得到的数值解。

本文档提供了:

基础排队模型仿真

Erlang分布实现

通用分布函数适配器

工具库

库依赖

from numpy.random import *

from simpy import *

高阶函数随机数生成器

输入:分布函数,单一参数(多参数请柯里化)

输出:随机数

def rng(dis,param):

"""random number generator"""

def generate():

return dis(lam=param,size=1)[0]

return generate

Erlang分布函数:

输入:阶数

输出:k阶erlang分布函数

def erlang(k):

"""由k个指数分布拟合"""

def exp2erlang(lam,size):

res=[]

for n in range(size):

k_poisson= exponential(lam/k,size=k)

sum=0

for x in k_poisson:

sum = sum + x

res.append(sum)

return res

return exp2erlang

测试,计算分布期望

x=rng(erlang(10),10)

sum=0

for i in range(10000):

sum= sum+x()

print(sum/10000)

结果为9.99565983119657,说明函数正确

FIFO队列模型

#典型银行模型:FIFO

def bankSample(X,Y,Z,A,B,EX):

"""

银行排队服务例子

情景:

一个柜台对客户进行服务, 服

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值