Merged revisions 5282-5995 via svnmerge from
https://software.sandia.gov/svn/public/acro/pico/trunk
……..
r5295 | jdsiiro | 2007-12-17 17:48:22 -0700 (Mon, 17 Dec 2007) | 4 lines
Propagating utilib::exception_mngr::exit_fn API change.
See log message for utilib r1429.
……..
r5298 | jberry | 2008-02-15 12:49:25 -0700 (Fri, 15 Feb 2008) | 3 lines
Prettified some of the debug output.
……..
r5311 | wehart | 2008-02-17 22:30:53 -0700 (Sun, 17 Feb 2008) | 2 lines
Misc change to account for the setup of pyacro.
……..
r5332 | wehart | 2008-03-02 13:10:17 -0700 (Sun, 02 Mar 2008) | 2 lines
Update given reor of Python.
……..
r5344 | wehart | 2008-03-26 20:32:45 -0700 (Wed, 26 Mar 2008) | 3 lines
Creating the 'ipconvert' command, which doesn't rely on
the PICO MIP solvers.
……..
r5345 | wehart | 2008-03-27 09:09:21 -0700 (Thu, 27 Mar 2008) | 3 lines
Rework of ipconvert command line to support —output option
and to enable the specification of multi-file inputs.
……..
r5375 | lafisk | 2008-05-23 13:52:36 -0600 (Fri, 23 May 2008) | 2 lines
Add link flags needed when —enable-static-executables
……..
r5429 | jeckstei | 2008-06-13 15:09:14 -0600 (Fri, 13 Jun 2008) | 10 lines
Fixed some bugs in paralllel MIP heuristic invocation, although one
big one remains — parBCMipNode::boundComputationGuts is not getting
called.
In parallel runs, the output summary information about MIP heuristics
is now clean and informative, instead a mishmosh of interleaved
printouts from each individual processor.
……..
r5448 | caphill | 2008-06-22 09:08:09 -0600 (Sun, 22 Jun 2008) | 8 lines
Fixing a problem in reading val files in an application created by
gen_milp_app. This code infers the data type. If the first values
for a parameter are integer, and then there are doubles, subsequent
reads of the first "integer" variables fail. This fix stores data
as both integer and double during read-in. There may be a more
elegant solution, but this works.
……..
r5458 | caphill | 2008-07-01 08:44:15 -0600 (Tue, 01 Jul 2008) | 4 lines
Fixing a bug in generation of dense solutions. It was causing bombs when running
PICO from ampl.
……..
r5459 | caphill | 2008-07-02 05:08:29 -0600 (Wed, 02 Jul 2008) | 8 lines
Bug fix for SOS. When SOS overlap, we should not generally fix them
when we discover a half-infeasible problem during pseudocost
initialization. This will generally affect the sets it overlaps,
especially if it fully determines the set (fixes a 1). If PICO
chooses to (or must) then branch on a collaterally-modified SOS, this
creates chaos.
……..
r5471 | caphill | 2008-07-16 15:32:16 -0600 (Wed, 16 Jul 2008) | 8 lines
Fix to reading in .val files for gen_milp_app-generated derivative
applications. The mechanism for splitting pieces from a line
(index tuples and value) was dropping the negative sign from
exponents of numbers input in scientific notation. So every
number that looked like 123e-45 became 123e45, which can be
quite different from the original.
……..
r5493 | wehart | 2008-08-04 16:03:30 -0600 (Mon, 04 Aug 2008) | 2 lines
Changes due to reorg of coopr.
……..
r5512 | wehart | 2008-08-17 14:53:48 -0600 (Sun, 17 Aug 2008) | 8 lines
A complete reimplementation of the classes used to support PICO
customization in SUCASA. The biggest change is that setupMappedMILP is
no longer supported! Now, the SUCASA script in Coopr is responsible for
managing the creating and reading of the *.map file!
These changes touched some of the core PICO files only to remove
the functionality that was needed for setupMappedMILP.
……..
r5513 | wehart | 2008-08-17 21:13:27 -0600 (Sun, 17 Aug 2008) | 2 lines
Fixing various bugs in the sucasa customization classes.
……..
r5518 | jwatson | 2008-08-22 14:12:10 -0600 (Fri, 22 Aug 2008) | 2 lines
Some minor structural changes and cleanup to the feasibility pump code base.
……..
r5519 | jwatson | 2008-08-22 15:24:45 -0600 (Fri, 22 Aug 2008) | 1 line
Fixed some reporting output in the feasibility pump, and added cycle checking (via hash vectors) for iteration solutions to the core algorithm.
……..
r5520 | jwatson | 2008-08-22 23:43:45 -0600 (Fri, 22 Aug 2008) | 1 line
Enhanced cycle detection code in feasibility pump.
……..
r5522 | wehart | 2008-08-25 14:29:26 -0600 (Mon, 25 Aug 2008) | 2 lines
Misc fix.
……..
r5523 | wehart | 2008-08-25 15:32:43 -0600 (Mon, 25 Aug 2008) | 3 lines
Misc changes to optimize the insertion process when initially building
the maps used for symbols.
……..
r5525 | wehart | 2008-08-26 17:27:22 -0600 (Tue, 26 Aug 2008) | 4 lines
Initial rework of SUCASA objects to support initialization from *.val files.
This may change substantially…
……..
r5531 | wehart | 2008-08-30 08:03:07 -0600 (Sat, 30 Aug 2008) | 6 lines
An initial rework of the MILPSymbol concept to unify the MILPSymbol and MILPSet logic. This change is needed to support sets of sets.
I'm going to rework this further, but I thought I'd archive this version for
future reference. My next revision of this is going to involve UTILIB Any
objects, which will enable a much more dynamic syntax for set-of-sets.
……..
r5553 | wehart | 2008-09-08 00:05:27 -0600 (Mon, 08 Sep 2008) | 7 lines
A major rework of the MILPSymbol functionality. This rework
combines the MILPSymbol and MILPSet classes, and the MILPSet class
has been deleted.
This functionality does not impact core PICO builds, but it is used in
the SUCASA customized PICO solvers.
……..
r5568 | wehart | 2008-09-15 14:20:02 -0600 (Mon, 15 Sep 2008) | 2 lines
Hacking out a build problem. For some reason, this builds find with g++ on tofu…?
……..
r5572 | jberry | 2008-09-17 11:19:29 -0600 (Wed, 17 Sep 2008) | 3 lines
Fixes relating to the use of initialSolve() versus resolve() in the OsiSolverInterface?; the latter was not behaving correctly on a good number of benchmarks in FP iterations ≥ 2, so I changed it to always call "initialSolve()" and added in warm-start behaviors.
……..
r5583 | wehart | 2008-09-18 13:51:27 -0600 (Thu, 18 Sep 2008) | 4 lines
Adding pack/unpack capabilities to MILPSymbol objects.
Deleting old development directories.
……..
r5588 | jwatson | 2008-09-20 13:38:04 -0600 (Sat, 20 Sep 2008) | 7 lines
Minor fix involving issues relating to run-time-limit termination. For NSR8K,
the root solve takes longer than an allocated run-time of 10 minutes ⇒ negative
run-time limits were showing up in the output of the core FP procedure. I now check
for a positive time limit prior to calling the core procedure, and bail with
a message if it is negative. No functional change - just reporting.
……..
r5589 | jwatson | 2008-09-20 21:39:44 -0600 (Sat, 20 Sep 2008) | 5 lines
Added a simple randomized rounding component to FP, which rounds - in the process of forming the x-tilde vector - any
integer variable with a fractional component on [0.33,0.67] to 0 or 1 with equal probability. Eventually will promote
the 0.33/0.67 parameters to FP command-line parameters, but only once I flush out issues with the new scheme.
……..
r5590 | jwatson | 2008-09-22 10:13:22 -0600 (Mon, 22 Sep 2008) | 3 lines
Promoted the perturbation interval in FP to a full parameter.
……..
r5595 | jwatson | 2008-09-28 21:53:12 -0600 (Sun, 28 Sep 2008) | 3 lines
Commit of Eckstein-Nediak implementation in the new heuristics framework. The version is stripped-down, in particular no parallel and only deals with binary variables. The purpose of this check-in is to assist debug of the generalized FP code. Let's not delete the bbhConfig and mipHeuristic files quite yet.
……..
r5597 | jwatson | 2008-09-29 14:37:46 -0600 (Mon, 29 Sep 2008) | 3 lines
Changed the "solve()" invocation in ENHeuristic.cpp to be "resolve()"; this seems to correct much of the weird behavior in the E-N heuristic that I was observing (both here and in the generalized feasibility pump). I haven't a clue why this works, but I'll take it.
……..
r5599 | jwatson | 2008-09-29 20:34:30 -0600 (Mon, 29 Sep 2008) | 3 lines
Added run-time bound on Eckstein-Nediak heuristic; parameter is ENHRunTime, quantified in seconds.
……..
r5600 | jwatson | 2008-09-29 21:15:25 -0600 (Mon, 29 Sep 2008) | 3 lines
In the Eckstein-Nediak heuristic, fixed problem with imposing a limit on the aggregate number of Gomory cuts.
……..
r5602 | jwatson | 2008-10-02 15:37:52 -0600 (Thu, 02 Oct 2008) | 7 lines
Various enhancements of FP output, in an effort to debug the EN heuristic. Some minor fixes to boundary-condition input cases as well.
Complete re-work of the randomization scheme for EN, including reflection of the merit function. It now behaves in that mode as a generalized FP.
I turned off any influence of the objective weight in EN for now, as it is causing serious issues with cycling and the like. The relative scaling with the current rule is way off, leading to this and other weird behaviors that I just killed a day mucking with.
……..
r5603 | jwatson | 2008-10-03 14:37:36 -0600 (Fri, 03 Oct 2008) | 5 lines
Numerous changes/improvements related to cycle detection and escape from local minima.
Configured the current EH variant to use triangular merit functions, to verify FP-equivalence.
When verified, I will be making the merit function type a command-line argument.
……..
r5604 | jwatson | 2008-10-04 16:23:25 -0600 (Sat, 04 Oct 2008) | 4 lines
Added randomized visitation sequence to FP to randomly tie-break among flip candidates whose distances are identical.
Mainly, no reason to do so deterministically, and I have seem cases where the deterministic order leads to artificial cycles.
……..
r5605 | jwatson | 2008-10-04 20:08:52 -0600 (Sat, 04 Oct 2008) | 3 lines
When randomized rounding is enabled in FP, apply to construction of initial solution (i.e., the gradient) vector.
……..
r5606 | jwatson | 2008-10-05 09:58:36 -0600 (Sun, 05 Oct 2008) | 3 lines
Changed FP randomization behavior to escape local minima. If fractional components are on the interval [0.33, 0.67], always flip - there isn't good gradient information anyway. In all other cases, there is less of an argument to flip, so do so with probability 0.5.
……..
r5612 | jwatson | 2008-10-06 14:55:22 -0600 (Mon, 06 Oct 2008) | 3 lines
Minor updates to ENHeuristic to (1) output cumulative # of iterations for statistics gathering and (2) flip integers in the FP-fashion.
……..
r5613 | jwatson | 2008-10-07 19:29:43 -0600 (Tue, 07 Oct 2008) | 3 lines
Removed LP relaxation randomization from the FP code, as the performance is rather erratic.
……..
r5614 | jwatson | 2008-10-08 09:51:47 -0600 (Wed, 08 Oct 2008) | 3 lines
Added random flip option (FPRandomFlip) to test hypothesis that flipping fractionals doesn't seem to matter all that much… (?!).
……..
r5616 | jwatson | 2008-10-08 13:43:10 -0600 (Wed, 08 Oct 2008) | 3 lines
Modification of perturbation mechanism in EN heuristic to break cycling.
……..
r5772 | jeckstei | 2008-11-10 15:08:27 -0700 (Mon, 10 Nov 2008) | 4 lines
Changed "lp" to "sol" in various EN-Heuristic debugging statements, so
that PICO will compile with validating and MPI enabled.
……..
r5779 | wehart | 2008-11-11 01:13:22 -0700 (Tue, 11 Nov 2008) | 2 lines
Update due to rename of stl_auxillary.h
……..
r5789 | wehart | 2008-11-12 15:40:21 -0700 (Wed, 12 Nov 2008) | 4 lines
Adding hook for generating *.i files.
Misc fix to get the pico_test code working.
……..
r5831 | wehart | 2008-11-19 19:45:31 -0700 (Wed, 19 Nov 2008) | 2 lines
Fixing bug with parallel build.
……..
r5835 | wehart | 2008-11-23 20:02:08 -0700 (Sun, 23 Nov 2008) | 2 lines
Update of copyright assertions.
……..
r5878 | wehart | 2008-11-24 20:16:34 -0700 (Mon, 24 Nov 2008) | 2 lines
Updates to use new GLPK release.
……..
r5884 | wehart | 2008-11-25 23:39:02 -0700 (Tue, 25 Nov 2008) | 4 lines
Adding a test directory of PICO command line drivers.
This uses PyUnit? test mechanisms, leveragin the capabilites
of PyUtilib?.
……..
r5885 | wehart | 2008-11-25 23:39:36 -0700 (Tue, 25 Nov 2008) | 2 lines
Adding an NL file used for testing ipconvert.
……..
r5886 | wehart | 2008-11-26 13:44:49 -0700 (Wed, 26 Nov 2008) | 6 lines
Update of ipconvert to recognize integer variables.
NOTE: when converting to an MPS file, this conversion
translates the problem into a minimization problem. Many MILP solvers
cannot understand the OBJSENSE field in MPS files…
……..
r5887 | wehart | 2008-11-26 14:51:32 -0700 (Wed, 26 Nov 2008) | 5 lines
Renaming ipconvert to pico_convert. Cindy and I realized that we
would also like to leverage glpsol and/or ampl to do conversions, but
that's not directly possible. I'm going to create an ipconvert script
in Coopr to support that more general functionality.
……..
r5902 | wehart | 2008-12-01 21:14:01 -0700 (Mon, 01 Dec 2008) | 3 lines
Updates for UTILIB commit for enum labels.
Portability fix for gcc 4.3.1
……..
r5920 | caphill | 2008-12-03 00:57:23 -0700 (Wed, 03 Dec 2008) | 5 lines
Outputs a solution file problem.sol.txt when we are solving only the
root LP. It prints the objective value, the (non-zero, within a hard-coded
tolerance of 1e-16) primal solution and dual solution in the form
name = value
……..
r5931 | wehart | 2008-12-03 22:01:19 -0700 (Wed, 03 Dec 2008) | 2 lines
Adding diagnostic output when debug=1
……..
r5932 | wehart | 2008-12-03 22:18:21 -0700 (Wed, 03 Dec 2008) | 2 lines
Printing out the optimization sense.
……..
r5936 | wehart | 2008-12-04 10:59:07 -0700 (Thu, 04 Dec 2008) | 3 lines
If the IP file defines the name of the problem, then
override the default name, which is derived from the filename.
……..
r5938 | wehart | 2008-12-04 15:30:27 -0700 (Thu, 04 Dec 2008) | 5 lines
When reading a *.nl file, initialize the problem name with
the filename.
Fix to milp.cpp to strip off *.nl or *.lp file suffixes.
……..
r5955 | wehart | 2008-12-05 12:19:53 -0700 (Fri, 05 Dec 2008) | 2 lines
Fixes for building with validation.
……..
r5981 | wehart | 2008-12-06 18:39:42 -0700 (Sat, 06 Dec 2008) | 8 lines
Setting the sense of optimization after loading the LP.
When an LP maximization problem is loaded, the sense was not being set
here.
NOTE: this may not be the right place to set the sense, but I don't
see a better place in the MILP object.
……..
r5982 | wehart | 2008-12-06 19:24:45 -0700 (Sat, 06 Dec 2008) | 5 lines
Rework of pico_convert to use the utilib::OptionParser?.
Misc update of Makefile to link with tinyxml (which this
OptionParser? needs).
……..
|