这个你最好先把两两点间的最短路算出来 并用一组0-1变量来表示某个点能不能覆盖到另一个点 比如说是c
那么下面就用这个模型求解 不过这个问题很难写出线性的模型 求解以后自己注意检查一下 一般只能作为参考
sets:
p/1..8/:demand,x;
pp(p,p):c,supply;
endsets
min=@sum(p:x);
@for(p(j):@sum(p(i):x(i)*c(i,j))>=1);
@for(p(j):@sum(p(i):supply(i,j))=demand(j));
@for(p(i):@sum(p(j):supply(i,j))>=100;@sum(p(j):supply(i,j))<=300);
@for(pp:c>=@if(supply#gt#0,1,0));
@for(p:@bin(x));