繁体   English   中英

SCIP中的一般参数表(.zpl格式)

[英]General parameter table in SCIP in .zpl-format

我正尝试使用SCIP和.zpl格式解决以下线性程序:

在此处输入图片说明

其中c,p和A的定义如下:

在此处输入图片说明

我已经想出了一种解决方法:

param n := 1000;
set N := {1 .. n};
param c[<i> in N] := i/n ;



var p[<i> in N] real >= 0; 
set A := N * N;

set O := {<i,j> in A with i < j};
set D := {<i,j> in A with i == j};
set U := {<i,j> in A with i > j};

param a[<i,j> in O] := 0;
param b[<i,j> in D] := i;
param g[<i,j> in U] := 1;

maximize prob: sum <i> in N : c[i] * p[i];

subto cond2:
     forall <i> in N do
        sum <j> in N with i>= j do 
            if(i ==j) then b[i,j] * p[j] 
                      else g[i,j] * p[j] end <= 1 ;

对于矩阵AI,将三个情况(参数a,b和g)细分为3种情况(上三角为0,对角线为i,下三角为1)。

我想知道是否只有一个参数同时包含这三种情况,是否有一种更优雅的解决方案,因此对于最后的条件,我基本上只能对一个参数求和。

您可以定义如下函数:

defnumb v(i,j) := if i < j then 0 else if i == j then i else 1 end end;

之后,您可以重写约束:

subto cond2:
 forall <i> in N do
    sum <j> in N with i>= j do v(i,j) * p[j] <= 1;

我希望这足够优雅。

最好,雅各布

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM