微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 遗传算法:请求优化

我是遗传算法的新手,我被指派实施遗传算法来优化药房每个工作日的请求顺序.首先,让我解释一下这个问题:

有9个家庭在工作周的任何一天(星期一至星期五)发出请求.药房每天只能照顾1至3个家庭,不能再少,并且不能在同一周内重复任何家庭.主要目标是优化每个家庭参加的最佳日期,这样,药房每周就会出现最大的请求,并对问题施加约束.优化算法的输入是每个家庭发出的每个请求数的年平均值.例如:

(让我们只与3个家庭合作,以简化示例):

输入:

|周一|星期二|周三|星期四|周五
F1 | 10 | 20 | 2 | 0 | 7
F2 | 20 | 12 | 0 | 1 | 2
F3 | 2 | 0 | 0 | 19 | 3

可能的方法

|周一|星期二|周三|周四|周五
| | F2 | F1 | F3 |

到目前为止,我一直在研究遗传学和遗传算法的整个概念.我研究过粒子群优化,但由于我的时间很短,我决定使用一个框架.我正在使用JGAP,但我的主要问题是我提供了一个潜在的解决方案?我的意思是,我应该如何组织用于交配,繁殖等的染色体上的基因……?我已经开发了健身功能,但我不能按照我想要的方式对基因进行编码.有什么建议?

解决方法

in what way do I present a potential
solution?

每个家庭都应安排在一天.因此,您可以存储每个家庭的安排日期.一个基因将是5天中的一个,铬将有9个,每个家庭一个

1 2 3 4 5 6 7 8 9
Chrome   M T T F W H T M T

所以星期一的家庭1,星期二的家庭2和3,等等.你应该在健身功能中强加所有其他限制(药房每天只能参加1至3个家庭).

另一种编码可能是

M1 M2 M3 T1 T2 T3 W1 W2 W3 ... F2 F3
 1  2  -  -  5  -  9  -  3  ... 4  -

因此,您可以采取所有可能的约会并填写家庭,或保持空白.在这种情况下,健身功能应该确保每个家庭只有一个约会.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐