【问题标题】:Algorithm: optimize production schedule with GA算法:利用遗传算法优化生产计划
【发布时间】:2017-03-21 11:09:43
【问题描述】:

我陷入了一个超出我的智商能力的问题,因此我在这里写信寻求一些建议。基本上这似乎是一个很简单的案例。

我有一系列产品:

我有4台并行机可以制作每个产品(产品之间没有依赖关系):

M1
M2
M3
M4

每台机器都可以 24/7 全天候运行他们需要员工在场才能启动每个新产品的生产。

一个简单的问题是,例如避免启动将在晚上(没有员工重新启动生产)或周末停止的生产。

如果产品C的生产周期为2天,我不应该在周四下午开始生产,因为生产将在周六早上结束,并且机器不会在周一早上员工返回之前开始新的生产。

我首先尝试了一种蛮力方法(不是很微妙)尝试所有可能的组合,但我很快发现处理时间正在爆炸式增长:)

然后我决定做一个线性规划求解,把最紧迫的工作放在最前面,每次都选择最好的机器,然后为每个产品先这样。

我得到了一些结果,但显然不是最好的。因此,我为我的研究寻找好的建议。我试图研究“蚁群”优化或“遗传算法”,但我遇到的问题是我的空闲时间取决于我的任务的结束时间。

【问题讨论】:

  • 遗传算法或进化策略应该更有效。部分解决方案将是每个产品的开始时间向量(不得在周末或晚上),并且突变将开始时间来回移动几分钟或几小时。
  • 只是想知道:您是否真的必须将任务分配给机器,或者检查是否没有时间并行执行四个以上的任务就足够了?
  • 感谢托比亚斯的回答。我的目标是制作甘特图(因此是产品/时间/机器的最佳分配)。是你的问题吗?
  • 我的问题是:有没有任何情况下,并行任务不超过四个,但任务不能分配给四台机器(不中断和重新定位任务)?我会说“不”,这会大大简化优化问题(之后您可以将任务分配给机器),但我不确定。
  • 好吧,同时所有 4 台机器都应该配备人员 --> 4 个并行任务。一旦任务启动,它们就不应被中断(每个任务之前都有设置时间)。

标签: algorithm optimization artificial-intelligence genetic-algorithm


【解决方案1】:

感谢@tobias_k,我一直在探索遗传算法来解决我的调度问题。

我认为他们很有前途,并开始编写我的染色体测序: 给定产品 (A,B,C,D,E,F,G,H,I,J,K,M) 和机器 (M1,M2,M3,M4),可能的编码可能是 ['EKM', 'IFB', 'GLD', 'HAJC'] (按此顺序在机器 1 上的 EKM,在机器 2 上的 IFB 等..)

我可以毫不费力地测量适应度(我的目标是最小化制造跨度),但是当涉及到交叉时,这要复杂得多(看起来这是遗传算法的难点)。

如果我有两个父母:['EKM', 'IFB', 'GLD', 'HAJC'] 和 ['ICFM', 'HLK', 'DJE', 'BGA'] 我实际上在看制造产品的机器(例如 A,两者都是 M3)并随机选择要选择的机器。我做同样的事情来选择它的制作顺序(对于 A,它将是父 1 上的位置 2 和父 2 上的位置 3)并随机选择。

我几乎确信我在这里犯了一个错误,但找不到一种方法来找到一个好的染色体编码/交叉策略(我的糟糕结果表明了这一点)。

有比我更了解 GA 知识的人可以提供建议吗?

非常感谢!

【讨论】:

    猜你喜欢
    • 2015-06-04
    • 2015-02-18
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多