我是遗传算法的新手,我被指派实施遗传算法,以优化药房每周的请求顺序。首先,让我解释一下问题:

有9个家庭在工作周的任何一天(星期一至周五)发出要求。该药房每天只能参加1至3个家庭,不少于他们在同一周无法重复任何家庭。主要目标是优化每个家庭的最佳日子,以这种方式,药房每周都会出现最大的要求,并对问题施加的限制。优化算法的输入是每个家庭发出的每个请求数量的年平均值。例如:

(让我们与3个家庭一起工作,以简化示例):

输入:

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

可能的解决方案:

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

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

有帮助吗?

解决方案

我以什么方式提出潜在的解决方案?

每个家庭都应在一天安排。因此,您可以在每个家庭计划的哪一天存储。一个基因将是5天之一,铬有9个,每个家族都有一个

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

所以家庭1在星期一,家庭2和3周二等等。您应该施加所有其他约束(The pharmacy can only attend 1 to 3 families per day)健身功能。

另一个编码可能是

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

因此,您将接受所有可能的约会并填补家庭,或者将其空虚。在这种情况下,健身功能应确保每个家庭都有一个预约。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top