首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python编写模拟程序

用Python编写模拟程序
EN

Stack Overflow用户
提问于 2015-06-08 17:31:52
回答 1查看 698关注 0票数 1

我现在正忙着用Python写一个模拟程序。我正在模拟改变仓库中叉车存储托盘的逻辑对旅行距离的影响。我正在查看5台叉车,每个叉车都被分配到一个作业列表中,并使用数学模型来分配存储托盘的位置。托盘存放的区域被分成更小的部分。所有5台叉车使用相同的存储区域,但一次只能在一个分区中使用一台叉车。

我目前面临的问题是什么是编写代码的最佳方式,以便这5个叉车同时完成它们的工作,同时跟踪每个叉车在存储区中的位置以及可用的托盘位置。

到目前为止,我已经编写了执行数学模型和单个叉车运动的代码。我目前正在试验多处理,以允许所有5个叉车并行移动。因此,我创建了5个进程,每个进程对应一个叉车,然后在每个进程中运行我的数学模型以找到最佳的托盘放置位置。然而,要进行移动,我需要有一个全局列表,其中包含所有其他叉车的位置和可用的存储位置的信息。

那么,你们认为如何最简单地跟踪有关叉车位置和存储位置的信息?多处理也是我解决这个问题的方向吗?

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2015-06-08 19:31:26

你的问题很笼统,所以我充其量只能给你一个大概的答案。

kleptojoblib这样的代码提供了函数调用的动态缓存,所以你可以将一个函数声明为"cached",它将存储结果(这样你就不必在给定相同的输入的情况下重新计算)。之所以提到这一点,是因为klepto为内存、磁盘或数据库…提供了一种存储抽象因此,您可以将结果缓存/存档到磁盘上的文件或数据库后端--这两个后端都可以由并行进程访问(对于数据库,则是分布式计算资源上的进程)。joblib只适用于文件后端,并且在选项上有一点限制,但它是一个更成熟的代码。

kleptojoblib都非常常用于进程之间的存储和通信,以某种形式的优化或预测科学类型的问题--这似乎就是您正在做的事情。

还有一些较低级的“自定义”解决方案,比如选择一个数据库模块并使用它,或者写入文件,或者使用pickle…将对象转储到磁盘但joblibklepto旨在简化这一过程。

https://github.com/uqfoundation/klepto

https://github.com/joblib/joblib

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30705594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档