0

我有一个变量 u[i,j,p] 其中 i 和 j 是有序集。具体来说,我已经定义了变量和集合

  set I;
  set J;
  set P;
  set LINKS within {I,J};
  param u{LINKS,P}

在 .mod 文件中。在我的 .dat 中,我写道:

set I := 1 2 3 4;
set J := Factory1 Factory2 Factory3 Factory4
set LINKS := (1,Factory1) (2,Factory1) (3,Factory2) (4,Factory2);
set P:= prod1 prod2 prod3;

param u default 0:=
     [1,Factory1,*] prod1 0.5251 prod2 0.3738
     [2,Factory1,*] prod1 0.5052 prod2 0.3311
     [3,Factory2,*] prod1 0.5555 prod3 0.6666
     [4,Factory2,*] prod3 0.6156 prod4 0.3353;

但这给了我关于如何声明 u 的错误。尝试遵循我尝试执行的 AMPL 文档时

param LINKS: u:=
     [1,Factory1,*] prod1 0.5251 prod2 0.3738
     [2,Factory1,*] prod1 0.5052 prod2 0.3311
     [3,Factory2,*] prod1 0.5555 prod3 0.6666
     [4,Factory2,*] prod3 0.6156 prod4 0.3353;

但它也给出了错误。

4

1 回答 1

1

您的代码中有两个问题:

  1. 中缺少分号

    param u{LINKS,P}
    

    set J := Factory1 Factory2 Factory3 Factory4
    
  2. 使用的prod4不是P.

否则它看起来是正确的。

于 2015-12-11T23:41:20.187 回答