Setting presolve_eps

208 views
Skip to first unread message

Ellen

unread,
Jan 17, 2017, 5:46:57 PM1/17/17
to AMPL Modeling Language
I have a binary linear model that I am using CPLEX to solve. I want to have the AMPL presolve on, but when I do, this sort of thing happens:

My first try returns . . .

impossible deduced bounds on one or more variables: lower = tiny number, upper = smaller tiny number
setting $presolve_eps >= .000002 might help


I change the presolve_eps to .000002 and "solve" again only to get . . .

impossible deduced bounds on one or more variables: lower = tiny number, upper = smaller tiny number (again, but with different variables, probably, and tiny numbers)
setting $presolve_eps <= .000001 might help


. . . and it continues on, solve attempt after solve attempt. After each solve attempt, it suggests changing the presolve_eps value to something else, usually inconsistent with the previous suggestion. In any case, it's a bit like a cat chasing its tail.


Any thoughts anyone?

Many thanks,
Ellen



Robert Fourer

unread,
Jan 17, 2017, 8:22:46 PM1/17/17
to am...@googlegroups.com
Can you post the exact error messages from a representative example? This mean reveal some details that will help in explaining the situation.

Meanwhile you can set "option infeas_clear 3;" to specify that "solve;" should proceed even when AMPL's presolve deduces infeasibility. Of course the solver will detect the same infeasibility, but it will apply its usual feasibility tolerances and may decide to accept a solution that is slightly outside the variable or constraint bounds.

(The complete list of settings for option infeas_clear is copied below.)

Bob Fourer
am...@googlegroups.com

///////////

infeas_clear: Determines when an AMPL "solve" or "write" command may proceed to send the solver a problem, after the problem has been found infeasible by presolve:

0 ==> never allow a "solve" or "write" to proceed
1 ==> allow a second "solve" or "write" to proceed when reading
stdin in interactive mode (default)
2 ==> always allow a second "solve" or "write" to proceed
3 ==> always allow "solve" or "write" to proceed


From: am...@googlegroups.com [mailto:am...@googlegroups.com] On Behalf Of Ellen
Sent: Tuesday, January 17, 2017 4:47 PM
To: AMPL Modeling Language
Subject: [AMPL 13382] Setting presolve_eps

I have a binary linear model that I am using CPLEX to solve. I want to have the AMPL presolve on, but when I do, this sort of thing happens:

My first try returns . . .

impossible deduced bounds on one or more variables: lower = tiny number, upper = smaller tiny number
setting $presolve_eps >= .000002 might help

I change the presolve_eps to .000002 and "solve" again only to get . . .

impossible deduced bounds on one or more variables: lower = tiny number, upper = smaller tiny number (again, but with different variables, probably, and tiny numbers)
setting $presolve_eps <= .000001 might help

... and it continues on, solve attempt after solve attempt. After each solve attempt, it suggests changing the presolve_eps value to something else, usually inconsistent with the previous suggestion. In any case, it's a bit like a cat chasing its tail.

Any thoughts anyone?


Reply all
Reply to author
Forward
0 new messages