Changing feasibility

Problems with modeling
Post Reply
Arkandior
User
User
Posts: 1
Joined: 1 year ago

Changing feasibility

Post by Arkandior »

Hey everyone,

I have written a greenfield/dispatch/transportation MIP model and it has weird problems staying feasible.
If I let it run for shorter periods of time like 3 or 5 month, it works most of the time. It doesnt matter which month of the year I use, already tested that. But when I let it compute the whole year, it gets infeasible.


Even weirder for 5 month I have the case that in scenario 1 to 3 it is infeasible, but starting with scenario 4 till 6 it was feasible. That's weird because the scenarios are made like that:
grafik.png
grafik.png (8.08 KiB) Viewed 6583 times
So the changing thing is the supply security, which is used in an equation as ..... =g= supply_security. So by definition every result in scenario 4 (5/6) is a result for scenario 1 (2/3), but I get infeasible for scenario 1-3.


I already included: epmrk = 0.9 ; mipemphasis = 1 ; fpheur = 2 ; datacheck = 2 ; ModelName.scaleopt = 1 as well as manual scaling as far as possible and the datacheck does only result in one kind of error, where I divide monthly production by the number of days in that month to get daily production. So nothing too serious.
Additionally I now try scaind = 1 ; numericalemphasis = 1 and mipkappastats = 1 to to see, if it helps (waiting for the results).

The only warnings I get, when receiving a result are the following:
grafik.png
And after the automatic fixing of the integer variables and the final LP solve: CPLEX Warning 1033: Detected 100.00% (1) suspicious condition number(s) >= 1e+07.

When infeasible, he has problems with occuring singularities and it looks like this:
grafik.png
My coefficient ranges are like that:
--- Range statistics (absolute non-zero finite values)
--- RHS [min, max] : [ 2.934E-02, 2.030E+01] - Zero values observed as well
--- Bound [min, max] : [ NA, NA] - Zero values observed as well
--- Matrix [min, max] : [ 9.468E-06, 8.537E+02] - Zero values observed as well



So to conclude, I'm getting out of ideas, what I can do to make the model consistently work. Especially as I sometimes get solutions and sometimes I don't, it feels totally random. It seems like numerical issues, especially with the CPLEX Warnings before final LP, so I tried a lot of manual scaling variations and increased the processing time already, but yeah..
Has anyone further ideas what to try?
Is there a way to identifiy the concrede variables I get the warnings for?

I appreciate your help :)
Fred
Posts: 372
Joined: 7 years ago

Re: Changing feasibility

Post by Fred »

Hi,

Hard to say what is causing the issues without being able to reproduce the. The matrix coefficient range is certainly not nice and could be one source of numerical issues.

The inconsistency of scenario 4 (5/6) being feasible but scenario 1 (2/3) being infeasible could also be a modelling issue. I would suggest to capture the solution of scenario 4 by setting the savepoint option and then load it into scenario 1 via execute_loadpoint right before the solve statement. Then turn on the full equation listing by setting limrow to a large number. If the solution of scenario 4 violates any constraints of scenario 1, those constraints will then be flagged with the INFES marker in the equatioepintn listing. So if there are such INFES flags, you may find modeling mistakes this way. If there are none, you know that numerical issues are most likely the culprit.

For the infeasible case, it also seems that the underlying LP is feasible but infeasibility is caused by the integrality requirement of discrete variables. You can play with the corresponding integrality tolerance via Cplex option epint.

If you could share the model/data such that other forum users can reproduce your findings (or share at least full log files), this may increase the chance of getting useful hints.

I hope this helps!

Fred
Post Reply