2016-04-29 14 views
1

ich habe folgendes MILP Problem, relevanter Teil des Codes:GLPK MathProg - bedingte Einschränkung

param n, integer, >= 0; 
set jobs := 1..n; 
param P{i in jobs, j in jobs}, binary; 

var s{i in jobs}, integer, >=0; 
var e{i in jobs}, integer, >=0; 

var Cmax, integer, >=0; 

minimize total: Cmax; 

s.t. crit_3{i in jobs,j in jobs}: s[i] >= e[j]; 

Ich mag das Kriterium crit_3 die folgende Gleichung darstellen:

Grundsätzlich ist wollen, dass die Beschränkungen nur für eine gegebene Kombination von i und j aktiviert werden, wenn die Matrix P [i, j] = 1 ist. Wie kann ich dies erreichen?

Antwort

1

Etwas wie s.t. crit_3{i in jobs,j in jobs: P[i,j]=1}: s[i] >= e[j]; sollte den Job erledigen.