4

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

有 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,但我的主要问题是我如何提出潜在的解决方案?我的意思是,我应该如何组织染色体上用于交配、繁殖等的基因……?我已经开发了一个适应度函数,但我无法按照我想要的方式对基因进行编码。有什么建议么?

4

1 回答 1

1

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

每个家庭都应该安排一天。因此,您可以存储每个家庭的预定日期。基因将是 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  -

所以你会接受所有可能的约会并填写家庭,或者让他们空着。在这种情况下,健身功能应确保每个家庭都有一个约会。

于 2011-01-13T12:39:18.717 回答