异星工厂1.0版本模拟退火算法优化工厂教程 模拟退火算法使用攻略

时间:2022-11-15 18:51

模拟经营沙盒建造游戏异星工厂目前已经推出1.0正式版,游戏中玩家可以使用模拟退火算法优化工厂,下面给大家分享一个模拟退火算法使用攻略

网格设计

网格设计在异星工厂与现实中的工厂中都有应用。芯片设计中也有网格设计。问题在于“如何放置网格内的不同组件才能获得工厂/芯片的最优化设计?”

模拟退火

网格设计问题是一个NP-Hard问题。在[本文所述的]这种情况下,找到最优解所需要的时间将以 200! 单位时间而计。就算单位计算时间只有一纳秒,所需的总时间也已超过宇宙年龄。事实上,这个数足足有370位长。

模拟退火是解决这类问题的一个好的替代方法。它虽然不能找到最优解,但它能找到足够好的解。

模拟退火是一种随机搜索算法,它能概率性地跳出局部最优解,用一个损失函数来“度量”一个解的品质,并随机地找到与它相临的更好的解,直到它无法找到更好的解为止。

损失函数

[模拟退火]算法本身并不复杂;它纯粹是一个帮助我们[找解]的工具。我们需要解决的问题在于如何设计损失函数。利用损失函数,我们可以决定有哪些东西需要优化。这是个困难而有趣的问题,就像试图用一张小被单完整的盖住自己一样。要是遮住脸,脚就会漏出来。

对于这个[本文所述的]问题,我选择的优化目标如下:

物流机器人的总飞行距离:组装机与化工厂的位置是离散的。假设物流箱的位置和组装机的位置一样,我们通过交换两个组装机的位置就可以知道一种布局是否比另一种更能减少物流机器人的飞行距离。损失函数利用配方信息和组装机的位置信息来确定物流机器人的运动距离以及物流机器人需求的多寡。

直连*:实验表明,在特定条件下,储物箱-机械臂链条的设计模式比机器人和传送带都更高效。在可能的情况下我们会取消掉机器人的使用,转而使用横向(1链条)或竖向(3链条)的直连设计。

管道使用:这个设计用的管道很多,我们不希望太浪费。

共享物流箱:输出速度较低的组装机应当共用物流箱以减少物流机器人的浪费。单个机器人可以运输4块材料,但[假如物流箱内的材料不够]机器人也可能只运输1或2块材料。

注:作者这里说的直连具体指的是用“机械臂-箱子-机械臂”组合将一个单元格内的产物作为原料送到相邻的单元格内的设计模式。更一般地说,直连指的是一个组装机的产物不经过传送带或机器人直接作为原料送到另一个组装机中的设计模式。由于减少了中间的物流消耗,直连可以提高UPS。

实验结果

经过反复的尝试和等待我获得了不错的结果。新的布局将机器人用量降低了37%,将电力使用降低了35%并将物流网络的UPS改善了16%。

由于由于机器人总功率正比于机器人行进距离,电力消耗在这个设计中是不可忽视的要素。机器人的速度则并不影响总功率。将UPS改善16%或许听起来不是很厉害,但这16%的优化并非人力可为。

结论

成功!结果如图所示。

异星工厂1.0版本模拟退火算法优化工厂教程 模拟退火算法使用攻略

未经优化的设计:机器人速度级别为18,平均机器人用量为505

异星工厂1.0版本模拟退火算法优化工厂教程 模拟退火算法使用攻略

优化后的设计:平均机器人用量为368,效率提升了37%

标签:
随便看看
本类推荐
本类排行
热门标签

我国国家通讯社行不行啊细狗新年贺词祝福语2023年祝福语新年新年贺词新年贺词祝福语居家抗病毒小药箱除夕高速免费吗2022年除夕高速免费吗春联春联句子大全春联句子大全七字年夜饭十二道菜年夜饭十二道菜单年夜饭吃什么年夜饭吃什么菜吃年夜饭的寓意年夜饭黑芝麻菊花茶晒菊花茶腌腊肉送妈妈生日礼物汉白玉送闺蜜水钻送女人礼物爸爸生日送礼物送老公