算法:使用GA优化生产计划

时间:2017-03-21 11:09:43

标签: algorithm optimization artificial-intelligence genetic-algorithm

我有点陷入一个超越我智商的问题,所以我在这里写信要求一些建议。基本上这似乎是一个非常简单的案例。

我有一系列产品:

Orders Table

我有4台并行机器可以生产每种产品(产品之间没有依赖关系):

M1
M2
M3
M4

每台机器都可以全天候运行他们需要员工在场,以便推出每个新产品。

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

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

我开始尝试使用蛮力方法(不是非常微妙)尝试所有可能的组合,但我很快发现处理时间正在爆炸:)

然后我决定进行线性编程解决,首先放置最紧急的工作,每次都选择最好的机器并以此方式为每种产品选择。

我得到了一些结果,但显然不是最好的。因此,我为我的研究寻找好的建议。我试着看“蚁群”优化或“遗传算法”,但是我遇到了一个问题,即根据我任务的结束时间,我有可变的空闲时间。

1 个答案:

答案 0 :(得分:0)

感谢@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知识的人都可以提供建议吗?

非常感谢!