Как кодировать эту линейную программу в IBM CPLEX? - PullRequest
0 голосов
/ 27 июня 2019

Как я могу кодировать линейную программу с использованием IBM CPLEX?

In this picture u,v represent the edge of the graph.

1 Ответ

1 голос
/ 27 июня 2019

Я бы использовал троичный оператор.

Позвольте мне дать вам отправную точку:

{int} E=asSet(1..10);

int V[u in E,v in E]=u+v;

int nbK=2;
int nbN=4;

range N=1..nbN;
range K=1..nbK;

int U[k in K]=2*k;
int C0=1;

dvar boolean y[E][E];
dvar boolean x[E][E][K];

minimize sum(u,v in E) y[u][v]*V[u][v];

subject to
{

forall(u,v in E,k in K) 
{
forall(k in K) sum(w in N) x[u][w][k]-sum(v in N) x[v][u][k]==  
( (u==C0)?1:(u==U[k]?-1:0) );

forall(u,v in E,k in K) x[u][v][k]<=y[u][v];
}
}
...