我有一个问题,我想解决使用遗传算法(GA)。您可以将其简化为以下问题:
我想优化一家公司的汽车池,这意味着的汽车数量和的汽车模型。我已经有了一个健身功能calcFitness(carList),它评估给定的设置,如“商务车,运输车”或“商务车,商务车,运输车”。现在的问题是,如何用遗传算法解决这个可变长度的问题。
我有四个想法,你一般可以解决这些问题:
你对这些一般方法有什么看法?对于这些变长的情况,还有其他的想法或者遗传算法的替代方案吗?
发布于 2016-12-04 23:24:42
变长当然是可能的,这似乎是这个问题最自然的表现形式。为什么会是个问题?唯一的实质区别将是交叉操作。虽然一个点是微不足道的(你只需在a中选择一个点,在b中选择一个点,并自动得到一个可变长度的后代),但通常最好是连续交叉,这需要更多的直觉和可变的长度。但是,这可以在经过彻底的单独测试之后实现。
做好准备,你的算法可能会发现,染色体越好,它就能产生更好的结果(在某种组合的情况下)。你不会像遗传规划那样出现指数膨胀(那里的基因型是树木而不是线性序列),但染色体长度可能会开始不舒服地增长。您可能需要在适应度函数中说明这一点,或者您可以通过拒绝超过某些限制的候选人来建立类似于#2的解决方案。
https://stackoverflow.com/questions/40956703
复制相似问题