发布网友 发布时间:2022-04-30 13:37
共1个回答
热心网友 时间:2022-05-07 13:37
按照你的要求的话,因为你设定了一个目标函数,所以可以预计得到的矩阵fenzu是一个每行每列只有1个不为0的元素,且这个不为0的元素是1(因为1让目标函数取到最小值)。我在LINGO里面运行的结果,确实跟预计的一样。
SETS:
ROW/1..30/;
COL/1..30/;
MATRIX(ROW,COL):FENZU,TAG;
ENDSETS
@FOR(MATRIX(I,J):FENZU(I,J)<4);
@FOR(MATRIX(I,J):@GIN(FENZU(I,J)));
@FOR(MATRIX(I,J)|I#EQ#J:FENZU(I,J)=0);
@FOR(MATRIX(I,J):TAG(I,J)=@IF(FENZU(I,J)#GT#0,1,0));
@FOR(ROW(I):@SUM(COL(J):TAG(I,J))=1);
@FOR(COL(J):@SUM(ROW(I):TAG(I,J))=1);
MIN=@SUM(MATRIX(I,J):FENZU(I,J));
CALC:
@SET('GLOBAL',1);
ENDCALC