Как я могу выполнять функции в CPLEX?

Я пытаюсь найти небольшой рабочий пример CPLEX с функциями. Плохой пример здесь, как что-то не делать. Как определяются функции в CPLEX?

П.с. Я выполняю уже представленные работы для курса 2.3140 linear-optimisation здесь в университете Аалто.


person hhh    schedule 05.11.2012    source источник
comment
На самом деле нет тега linear-optimisation, если бы вы его не использовали, по нему не было бы вопросов   -  person mmmmmm    schedule 08.11.2012


Ответы (1)


Вы пишете это как математическую задачу, у вас произошла ошибка с выходом за границу индекса.

// Decision variables
 dvar float+ z[0..4];
 dvar float a[0..4];
 dvar float+ x[0..5];
 dvar float+ v[0..5];


minimize sum(myZ in 0..4) z[myZ]; 

 subject to {

   startX: x[0]==0;
   startV: v[0]==0;
   endX: x[4]==1;
   x[5]==1;
   endV: v[4]==0;
   v[5]==0;


   forall(t in 0..4){
    a[t]<=z[t];
    -a[t]<=z[t];
    x[t+1]==x[t]+v[t];
    v[t+1]==v[t]+a[t];
   }
 }

И вот решение:

// solution (optimal) with objective 0.666666666666667
// Quality There are no bound infeasibilities.
// There are no reduced-cost infeasibilities.
// Maximum Ax-b  residual             = 1.11022e-016
// Maximum c-B'pi residual            = 1.11022e-016
// Maximum |x|                        = 1
// Maximum |slack|                    = 0.666667
// Maximum |pi|                       = 1.66667
// Maximum |red-cost|                 = 1
// Condition number of unscaled basis = 2.1e+001
// 

z = [0.33333
         0 0 0.33333 0];
x = [0 0 0.33333 0.66667 1 1];
v = [0 0.33333 0.33333 0.33333 0 0];
a = [0.33333 0 0 -0.33333 0];

Похожие

  1. Что не так с этим общим заявлением в CPLEX?

  2. У IBM есть помощь здесь.

person hhh    schedule 08.11.2012