【发布时间】:2014-04-28 01:48:56
【问题描述】:
有人可以让我开始一个简单的模拟吗?我是 simpy 新手,发现编码非常困难。场景如下:
作业在工厂中以不同的工作流程运行。 工作流程定义了使用哪些机器。机器不一样。 操作员需要运行多台机器——只要有作业,就让机器保持忙碌。
感谢任何帮助。
【问题讨论】:
有人可以让我开始一个简单的模拟吗?我是 simpy 新手,发现编码非常困难。场景如下:
作业在工厂中以不同的工作流程运行。 工作流程定义了使用哪些机器。机器不一样。 操作员需要运行多台机器——只要有作业,就让机器保持忙碌。
感谢任何帮助。
【问题讨论】:
您应该从处理tutorial 开始,然后使用examples。
接下来,开始建模并实现一个最小示例。如果一切正常,请逐渐扩展您的代码或将其丢弃并重新启动,如果您走错了方向。
查看topical guides(仍有一些指南缺失,但很快就会出现)并使用API reference。
如果文档对您没有帮助,请通过 mailing list 与社区联系。
【讨论】:
我会先阅读文档和一些examples。但是,您可能需要在文档中考虑的一些关键功能是:
class Machine(env):
products = simpy.resouce(env, capacity=10) // 10 products for Machine1
# any other properties and functions you want a machine to have
class Consumer(env, machine1):
simpy.process(ConsumeProduct(env, machine1.products))
def ConsumeProduct(env, machine1):
#yield machine1.request() #waits for the resource to free up
以上内容应该可以帮助您入门。您应该能够使用一定数量的类似资源制造许多不同的机器。然后你将在一个循环中创建一堆消费者,这些消费者将从机器资源中请求,Simpy 将为你管理排队。这可以让您在引入OOP 和Simpy 时稍微控制一下疯狂。
【讨论】: