线性规划或运筹学的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 15:14:40
有四组正数,各组中正数个数分别为A,B,C,D。现要从各组分别取出a,b,c,d个数据,使得这a+b+c+d个数据之和最接近正数X。如何选取?
A,B,C,D,a,b,c,d为常数
a<=A,b<=B,c<=C,d<=D

能不能给个基本思路。谢谢

做个0—1规划:
假设A,B,C,D的第i个元素分别是a(i),b(i),c(i),d(i)
令aa(i),bb(i),cc(i),dd(i)分别表示A,B,C,D中第i个元素是否被选取,0—不选,1—选取。
min abs(x-∑(a(i)*aa(i)+b(i)*bb(i)+c(i)*cc(i)+d(i)*dd(i)))
s.t.
∑aa(i)<=root(A),A中元素个数
∑bb(i)<=root(B),B中元素个数
∑cc(i)<=root(C),C中元素个数
∑dd(i)<=root(D),D中元素个数
利用lingo求解即可,但问题规模不要太大,一般如果变量不超过200个,应该很快就能求解。