Advertisement

最大流模型、最小费用最大流模型、最小生成树(lingo)

阅读量:

最小生成树

复制代码
    model:
    sets:
    city/1..7/:u;
    links(city,city):dist,x;
    endsets
    data:
    !dist是距离矩阵;
    dist=0 3 4 7 100 100 100
     3 0 3 2 4 100 100
     4 3 0 100 5 7 100
     7 2 100 0 2 100 6
     100 4 5 2 0 1 4
     100 100 7 100 1 0 2
     100 100 100 6 4 2 0; 
    enddata
    !目标函数最小生成树;
    min=@sum(links:dist*x);
    @for(links:@bin(x));
    n=@size(city);
    @for(links(i,j)|i#eq#j:x(i,j)=0);
    !生成树的必要条件;
    @sum(links(i,j):x(i,j))=n-1;
    !必有一条路径从根结点引出;
    @sum(city(i):x(1,i))>=1;
    !所有的路径只能用一次(不可能在一条路上来回走);
    @for(links(i,j):x(i,j)+x(j,i)<=1);

全部评论 (0)

还没有任何评论哟~