基于DEAP的遗传算法多目标优化

2024-06-25 06:48:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

需要解决的问题:

  1. 哪个产品由哪辆卡车运送
  2. 这些产品是按什么顺序被取下来的。在

实现目标:(不同权重)

  • 一个产品被取走的最小等待时间
  • 每种产品的最短交货时间。在

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

其次,如何在这里实现评估功能? 我定义的个体是一个类实例,由卡车类实例的dict、产品类实例的dict、卡车id的列表、产品id的列表和产品truck组合选项的dict组成。个人和评估值之间的联系不是那么简单,只有一个评估函数就有点困难(至少对我这个新手来说)。谢谢!在


Tags: 实例函数功能id列表顺序产品路线
1条回答
网友
1楼 · 发布于 2024-06-25 06:48:58

您可以实现一个求值函数,返回两个值,一个用于等待时间,一个用于传递时间。在

def waiting(individual):
    # do some calculation

def delivery(individual):
    # do some other calculation

def evaluate(individual):
    return waiting(individual), delivery(individual)

然后,只需在工具箱中注册这个求值函数,并将适合度定义中的weights向量设置为包含两个数字

^{pr2}$

相关问题 更多 >