Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 优化问题中的多目标_Python_Optimization_Or Tools - Fatal编程技术网

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