我正在尝试模拟一个共享单车系统,在该系统中,自行车是客户可以获取和使用的资源,使用后可以放置在几个站点中的任何一个站点。我希望客户从他们所在的车站取自行车,然后前往其他几个车站中的一个。我曾尝试使用可移植资源来实现这一点(我认为这意味着资源只能由代理移动(。
当我这样做的时候,我发现顾客可以从他们所在的车站以外的车站取自行车。例如,到达1号车站的顾客可以在2号车站取一辆自行车。
我使用一个单独的资源库,并为不同站点的自行车定义地理信息系统位置。有没有办法限制代理商从他们的位置获取资源,并确保自行车不会自行从一个站点移动到另一个站点,或者我应该考虑一种不同于使用一个资源池的方法?此外,如何在模拟开始时定义自行车的位置?
非常感谢您的帮助,谢谢!
/Hal
2个站点的小示例,概述
你在1…中有太多问题,所以我给你一些提示
- 每辆自行车都应该是一个资源代理,您可以在其中保存它的当前位置,它将由一个名为station的变量保存,该变量将定义位置
- 对于一个人从其当前位置获取自行车,您需要获取一个自定义代理(服务块属性中的自定义资源代理(,其中
unit.station.equals(agent.station)
。。。假设你的代理中也有一个车站变量,定义他所在的车站……否则你需要找到最近的车站或类似的地方 - 你必须确保资源在释放后不会回家。。。我认为必须取消检查出口上的还原代理位置
- 要使所有资源都从您想要的位置开始,您可以选择主位置节点,并根据其主位置定义资源数量。。。有很多方法可以做到这一点,你必须添加更多的细节
尝试所有这些开始。。。