加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 遗传算法:请求优化

发布时间:2020-12-15 02:23:15 所属栏目:Java 来源:网络整理
导读:我是遗传算法的新手,我被指派实施遗传算法来优化药房每个工作日的请求顺序.首先,让我解释一下这个问题: 有9个家庭在工作周的任何一天(星期一至星期五)发出请求.药房每天只能照顾1至3个家庭,不能再少,并且不能在同一周内重复任何家庭.主要目标是优化每个家庭
我是遗传算法的新手,我被指派实施遗传算法来优化药房每个工作日的请求顺序.首先,让我解释一下这个问题:

有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  -

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读