首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遗传Algortihm -变长优化策略

遗传Algortihm -变长优化策略
EN

Stack Overflow用户
提问于 2016-12-04 08:11:30
回答 1查看 250关注 0票数 0

我有一个问题,我想解决使用遗传算法(GA)。您可以将其简化为以下问题:

我想优化一家公司的汽车池,这意味着的汽车数量的汽车模型。我已经有了一个健身功能calcFitness(carList),它评估给定的设置,如“商务车,运输车”或“商务车,商务车,运输车”。现在的问题是,如何用遗传算法解决这个可变长度的问题。

我有四个想法,你一般可以解决这些问题:

  1. 也许以某种方式实现了允许可变长度染色体的遗传算法,并在一次运行中解决了这个问题(如果可能的话不确定?)
  2. 估计汽车的最大可行数目(例如20辆),并对每辆1到20车位数运行一个固定长度的遗传算法,并对20个结果进行比较。
  3. 类似于#2,但没有固定的上限:从一辆车开始,增加插槽的数量,直到增量数的最佳解比前面的解更糟(基于梯度的方法)。
  4. 两个堆叠的固定长度气体:一个父遗传算法单独负责优化汽车插槽的数量,在它的适应度函数中,另一个优化这些车位分配的GA称为

你对这些一般方法有什么看法?对于这些变长的情况,还有其他的想法或者遗传算法的替代方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-04 23:24:42

变长当然是可能的,这似乎是这个问题最自然的表现形式。为什么会是个问题?唯一的实质区别将是交叉操作。虽然一个点是微不足道的(你只需在a中选择一个点,在b中选择一个点,并自动得到一个可变长度的后代),但通常最好是连续交叉,这需要更多的直觉和可变的长度。但是,这可以在经过彻底的单独测试之后实现。

做好准备,你的算法可能会发现,染色体越好,它就能产生更好的结果(在某种组合的情况下)。你不会像遗传规划那样出现指数膨胀(那里的基因型是树木而不是线性序列),但染色体长度可能会开始不舒服地增长。您可能需要在适应度函数中说明这一点,或者您可以通过拒绝超过某些限制的候选人来建立类似于#2的解决方案。

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

https://stackoverflow.com/questions/40956703

复制
相关文章

相似问题

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