Декларация заказанных комплектов пар в AMPL

У меня есть переменная 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;

Но это тоже дает ошибку.


person Cenderze    schedule 22.01.2015    source источник


Ответы (1)


В вашем коде есть две проблемы:

  1. Отсутствие точки с запятой в

    param u{LINKS,P}
    

    и

    set J := Factory1 Factory2 Factory3 Factory4
    
  2. Использование prod4, не являющегося членом P.

В остальном это выглядит правильно.

person vitaut    schedule 11.12.2015