New model(11/30/07)
int nbFlt = …;
int nbGate = …;
range Gate 1 .. nbGate;
range Flt 1 .. nbFlt;
var
int assign[Flt,Gate] in 0..1,
int y[Flt,Flt] in 0..1;
float+ arrtm[Flt] = …;
float+ dptm[Flt] = …;
//var float+ interval[Flt, Flt];
minimize
sum (i in Flt, j in Flt : arrtm[j] - dptm[i] >0 & (j-i<=70 \/ i-j<=70) ) y[i,j] / (arrtm[j] - dptm[i])
//sum (i in Flt, j in Flt : arrtm[j] - dptm[i] >0 /\ (j-i<=70 \/ i-j<=70 ) y[i,j] *(-1)* (arrtm[j] - dptm[i])
subject to {
//forall(i in Flt, j in Flt : ij )
//– forall(i in Flt, j in Flt : j-i<=70 \/ i-j<=70 )
forall(i in Flt, j in Flt : arrtm[j] - dptm[i] >0 => j-i<=70 \/ i-j<=70 )
{
//i j;
sum(k in Gate)assign[i,k] * assign[j,k] = y[i,j];
};
forall(i in Flt)
sum(k in Gate) assign[i,k] = 1;
//forall(i in Flt, j in Flt)
// i j;
};
