Python 优化问题中的多目标
在一个典型的线性优化问题中,我的目标如下:Python 优化问题中的多目标,python,optimization,or-tools,Python,Optimization,Or Tools,在一个典型的线性优化问题中,我的目标如下: Example of a Linear Program maximize: 3x + y subject to: 1.5 x + 2 y <= 12 0 <= x <= 3 0 <= y <= 5 线性程序示例 最大化: 3x+y 从属于: 1.5 x+2 y当你有多个目标时,通常你没有一个目标,而是一组最佳解决方案,因为你通常在目标之间进行权衡。 这意味着,如果你选择
Example of a Linear Program
maximize:
3x + y
subject to:
1.5 x + 2 y <= 12
0 <= x <= 3
0 <= y <= 5
线性程序示例
最大化:
3x+y
从属于:
1.5 x+2 y当你有多个目标时,通常你没有一个目标,而是一组最佳解决方案,因为你通常在目标之间进行权衡。
这意味着,如果你选择了一个最优的解决方案,你可能会进一步提高其中一个目标,而牺牲其他目标,同时保持最优
为了解决您的问题,您可以为每个目标分配一个权重,并将它们组合成一个目标,例如:
maximize:
5(3x + y) + 2(3x)
subject to:
1.5 x + 2 y <= 12
0 <= x <= 3
0 <= y <= 5
这表明问题又是一个单目标优化。如果@guissoares答案中的权重不够好,那么您的最佳选择是:
1.尝试许多不同的权重,保留所有的解决方案,并观察帕累托前沿(即权衡)
2.使用多目标算法,如NSGA2
maximize:
5(3x + y) + 2(3x)
subject to:
1.5 x + 2 y <= 12
0 <= x <= 3
0 <= y <= 5
maximize:
21x + 5y
subject to:
1.5 x + 2 y <= 12
0 <= x <= 3
0 <= y <= 5