Re: Solving a sequence of problems with initial values

88 views
Skip to first unread message

Paul

unread,
Apr 11, 2013, 6:30:17 PM4/11/13
to am...@googlegroups.com
You can try 'let x[1,1] :=1;' rather than 'var ...', write it to a script file rather than a data file, and load the script with the 'commands' directive.

Alternatively, you could selectively 'delete' or 'redeclare' the parts of the model that will change, rather than reseting. This keeps the variables alive and well from one instance to the next.

Paul

Robert Fourer

unread,
Apr 12, 2013, 6:26:41 PM4/12/13
to am...@googlegroups.com

If the solution from your first solve is intended to be the starting point for your second solve, then there's no need for "warm_start.run".  AMPL automatically makes the solution from any solve available to the next solve.

 

However for the algorithms implemented in Bonmin -- based mostly on the branch-and-bound principle -- a starting point is not likely to be of much value.  These algorithms are not local-search methods that can "start from" a point and iterate to nearby better points.  The only usefulness of an initial point may be to give an initial bound (upper for minimization, lower for maximization) on the optimum, which may result in a smaller search tree.

                  

You may want to contact the Bonmin developers directly to ask how initial points are used in the AMPL interface to Bonmin.  Contact information is given at https://projects.coin-or.org/Bonmin.

 

Bob Fourer

4...@ampl.com

 

 

From: am...@googlegroups.com [mailto:am...@googlegroups.com]

On Behalf Of shau...@gmail.com
Sent: Friday, April 12, 2013 3:09 AM
To: am...@googlegroups.com
Subject: [AMPL 6895] Re: Solving a sequence of problems with initial values

 

Thank you for your reply.

I thought it would be good if I gave some background as to what I am trying to do. The first problem I am solving is a MINLP, I use Bonmin to solve this to get a solution which satisfies integer conditions. In this MINLP model I have a constraint on the integer variables to avoid certain trivial solutions. As soon as I have a feasible solution to this problem, I want to drop this constraint and proceed with solving the MINLP by using the feasible solution as an initial point. I am fairly confident that the feasible solution to the first problem is also feasible for the second problem.

I tried doing this: Created a script file called warm_start.run, with contents 'let x[1,1] :=1...let x[6,30] := 5.3' and then I let my .run file look something like
---------------------------------------------------------------
reset;
option solver '...';
option 'time_limit 60 ...'

model modelfile.mod;
data datafile.dat;
solve;

option solver '...';
option ...

include warm_start.run;
drop CONSTRAINT1;
solve;
------------------------------------------------------------------
I am changing the options from one solve to the next, and i am dropping a single constraint. Regardless of whether the "include warm_start.run;" is in the definition, the second solve call does not seem to start from the solution found in the previous solve.

Reply all
Reply to author
Forward
0 new messages