使用DEAP进行遗传算法的多目标优化

时间:2018-01-16 19:12:02

标签: python genetic-algorithm deap

我正在努力解决物流配送路线问题。例如,有x辆卡车需要将y产品从各自的起点分配到各自的目的地。

要解决的问题:

  1. 哪个产品由哪辆卡车交付;
  2. 产品以什么顺序被拾取和丢弃。
  3. 实现目标:(具有不同的权重)

    • 一件产品的最短等待时间;
    • 每种产品的最短交货时间。

    在阅读了DEAP文档及其示例后,我仍然不确定实现此目的的好方法。因为对于上面的问题1和2,我有不同的选择,交叉和变异函数但是在DEAP中你似乎只能在工具箱中为每个函数注册一个函数吗?

    其次,如何在此实施评估功能? 我定义的个人是一个类实例,包括卡车类实例的字典,产品类实例的字典,卡车ID列表,产品ID列表以及产品 - 卡车组合选项的字典。个人和评估值之间的联系并不是那么简单,只有一个单一的评估函数有点困难(至少对我来说是新手)。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以实现一个评估函数,该函数返回两个值,一个用于等待时间,一个用于交付时间。

IMPORT_BEAN_NAME_GENERATOR

然后只需在您的工具箱中注册此评估函数,并在适应性定义中将def waiting(individual): # do some calculation def delivery(individual): # do some other calculation def evaluate(individual): return waiting(individual), delivery(individual) 向量设置为包含两个数字

weights