Shu*_*pta 7 arrays algorithm mathematical-optimization selection data-structures
假设我有一个M元素数组,所有数字,负数或正数或零.
任何人都可以建议一种算法N从数组中选择元素,这样这些N元素的总和是最小的正数吗?
以此数组为例:
-1000,-700,-400,-200,-100,-50,10,100,300,600,800,1200
Run Code Online (Sandbox Code Playgroud)
现在我必须选择任何5个元素,使得它们的总和是可能的最小正数.
用于i = 1, ..., M:
a_i成为i候选人名单中的第三个号码x_i表示这个i数字是否包含在您N选择的数字集中然后你想解决以下整数编程问题.
minimize: sum(a_i * x_i)
with respect to: x_i
subject to:
(1) sum(a_i * x_i) >= 0
(2) sum(x_i) = N
(3) x_i in {0, 1}
Run Code Online (Sandbox Code Playgroud)
您可以将"开箱即用"的整数程序求解器应用于此问题,以找到最佳解决方案或具有可控精度的次优解决方案.