I'm sorry, you're right, I modify the model as following without any result:
s.t. k2 {(m,k) in FERMI, (j,p,m) in V_TECNOLOGICI}:
start[j,p,m] <= inizio_fermo[m,k]+ BigP * check_t1[m,k,j,p];
s.t. k3 {(m,k) in FERMI, (j,p,m) in V_TECNOLOGICI}:
inizio_fermo[m,k] - BigP * (1 - check_t1[m,k,j,p]) <= (start[j,p,m] +
lt[j,p,m]);
it should work like:
if start < inizio < start +lt
then check_t1 = 0 else check_t1 = 1;
I'm becoming crazy!!! Thanks in advance for youre help.
2012/8/9 Andrew Makhorin <[email protected]>
>
> > I follow your suggestions and I considered the following situation:
> >
> >
> > var check_t1 {(m,k) in FERMI, (j,p,m) in V_TECNOLOGICI } binary;
> > param BigP := max {(j,p) in FERMI} fine_fermo[j,p];
> >
> >
> > s.t. k2 {(m,k) in FERMI, (j,p,m) in V_TECNOLOGICI}:
> > inizio_fermo[m,k] <= start[j,p,m] + BigP * check_t1[m,k,j,p];
> >
> > s.t. k3 {(m,k) in FERMI, (j,p,m) in V_TECNOLOGICI}:
> > (start[j,p,m] + lt[j,p,m]) - BigP * check_t1[m,k,j,p]<=
> > inizio_fermo[m,k];
> >
> > where
> >
> > start[j,p,m], lt[j,p,m]) are vars and inizio_fermo[m,k] are parmas.
> >
> > I always obtain all vars set to 0 and the reponse:
> >
> > OPTIMAL SOLUTION FOUND
> > Integer optimization begins...
> > Gomory's cuts enabled
> > MIR cuts enabled
> > Cover cuts enabled
> > Clique cuts enabled
> > Creating the conflict graph...
> > The conflict graph has 2*5 vertices and 9 edges
> > + 445: mip = not found yet >= -inf
> > (1; 0)
> > Warning: numerical instability (dual simplex, phase II)
> > Warning: numerical instability (dual simplex, phase II)
> > Cuts on level 0: gmi = 1; mir = 36; cov = 2;
> > Cuts on level 0: mir = 36; cov = 2;
> > Cuts on level 0: mir = 36; cov = 2;
> > + 620: mip = not found yet >= tree is empty
> > (0; 1)
> > PROBLEM HAS NO INTEGER FEASIBLE SOLUTION
> >
> > but it's not the best solution ... what can I do to solve the issue?
>
> The message 'PROBLEM HAS NO INTEGER FEASIBLE SOLUTION' means that your
> mip has no solution which satisfies to all constraints.
>
> Check constraints in your model, because if check_t1 = 0, you have
>
> k2: start >= inizio_fermo
> k3: start <= inizio_fermo - lt
>
> that is obviously wrong.
>
>
>
_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk