由定时器控制的离散事件模型分析。
oris的Python项目详细描述
python的oris
这是一个用于分析受控制的离散事件模型的库 通过整数变量和连续计时器:
变量包含正整数或负整数。它们代表 系统的可观察状态。例如,变量
queue
可以存储当前的客户数。timers跟踪更改状态的事件的连续时间 变量:
如果满足其guard的条件,则会启用计时器。在队列中 例如,
service
计时器在queue > 0
时启用。计时器的值是根据概率抽样的 分布;例如,
Unif(1, 2)
抽样一个随机值 介于1和2之间。当计时器超时时,它可以触发状态的变化 变量,例如,
queue = queue-1
在service
之后。这个 改变可以启动其他计时器(因为他们的警卫现在 满意)或使其失效(警卫不满意 再也没有了)。
单服务器队列容量为200,poisson的例子 到达(指数间隔时间)和统一服务时间 看起来像这样:
fromorisimport*b=ModelBuilder()# for each variable: name, initial value, min, max (defaults: 0, 0, 'inf')b.var('queue',1,0,200)# for each timer: name, guard, distribution, state updateb.timer('arrival','True',Exp(0.5),'queue=min(queue+1, max_value(queue))')b.timer('service','queue>0',Unif(1,2),'queue-=1')m=b.build()
一旦有了模型,就可以
- 分析它的状态空间(例如,你能在10分钟内达到目标状态吗?)
- 使用模拟来评估奖励(例如,队列中的平均客户数)
在manual中了解更多信息。
如何安装
要安装oris:pip3.7 install oris --user --upgrade
(您需要python 3.7)
要在Linux、MacOS或Windows上运行Python3.7环境, 我们建议使用miniconda和jupyter笔记本:
Linux和MacOS
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/.miniconda $HOME/.miniconda/condabin/conda init bash bash
对于macos,在前两个命令中将
Linux
替换为MacOSX
。 如果您使用的是MacOS Catalina,请将bash
替换为zsh
。windows:运行miniconda installer选择“add anaconda to” 我的道路”。
现在您可以为ORIS创建一个环境:
conda config --set auto_activate_base false
conda create -y -n oris python=3.7 scipy matplotlib numba jupyter
conda activate oris
pip install oris
每次您想使用ORIS时,都可以运行:
conda activate oris
jupyter notebook
如果您不想安装任何东西:只需使用ORIS 在Google Colaboratory内部。您唯一需要的是:
!pip3installoris
在你笔记本的开头。