如何在Python中使用DEAP绘制多目标帕累托边界

时间:2016-05-03 09:31:30

标签: python matplotlib visualization genetic-programming deap

对于我正在研究的项目,我在 DEAP (这是一个基于Python的演化框架)中设置了3个不同的目标作为优化目标。

使用 NSGA-II 等算法可以解决多目标问题。无论如何都要生成帕累托前沿曲面以显示结果。

2 个答案:

答案 0 :(得分:5)

按照此link(非我自己)中的食谱来计算 Pareto积分,您可以这样做:

select * from orders o
where enabled = 1
  and not exists (select 1 from updates u
                  where u.order_id = o.id
                    and u.created_at >= NOW() - INTERVAL 1 DAY)

,您会注意到最后一部分是对Pareto点应用三角剖分并将其绘制为三角形曲面。结果就是这样(红色形状是帕累托前线):

Pareto front in matplotlib

编辑:此外,您可能需要查看this(尽管它似乎适用于2D空间)。

答案 1 :(得分:0)

此外,您可能还想看看这个Link,它通过块嵌套循环(BNL)实现了一种更有效的方法来求解2D pareto边界。这比上面的蛮力方法快30倍。

相关问题