| rev | 
   line source | 
| 
alpar@9
 | 
     1 GLPK 4.47 (release date: Sep 09, 2011)
 | 
| 
alpar@9
 | 
     2 
 | 
| 
alpar@9
 | 
     3         The new API routine glp_intfeas1 was added to the package.
 | 
| 
alpar@9
 | 
     4         This routine is a tentative implementation of the integer (0-1)
 | 
| 
alpar@9
 | 
     5         feasibility solver based on the CNF-SAT solver (which currently
 | 
| 
alpar@9
 | 
     6         is MiniSat). It may be used in the same way as glp_intopt to
 | 
| 
alpar@9
 | 
     7         find either any integer feasible solution or a solution, for
 | 
| 
alpar@9
 | 
     8         which the objective function is not worse than the specified
 | 
| 
alpar@9
 | 
     9         value. Detailed description of this routine can be found in the
 | 
| 
alpar@9
 | 
    10         document "CNF Satisfiability Problem", which is included in the
 | 
| 
alpar@9
 | 
    11         distribution (see doc/cnfsat.pdf).
 | 
| 
alpar@9
 | 
    12 
 | 
| 
alpar@9
 | 
    13         The following two options were added to glpsol:
 | 
| 
alpar@9
 | 
    14 
 | 
| 
alpar@9
 | 
    15         --minisat       translate 0-1 feasibility problem to CNF-SAT
 | 
| 
alpar@9
 | 
    16                         problem and solve it with glp_intfeas1/MiniSat
 | 
| 
alpar@9
 | 
    17                         (if the problem instance is already in CNF-SAT
 | 
| 
alpar@9
 | 
    18                         format, no translation is performed)
 | 
| 
alpar@9
 | 
    19 
 | 
| 
alpar@9
 | 
    20         --objbnd bound  add inequality obj <= bound (minimization) or
 | 
| 
alpar@9
 | 
    21                         obj >= bound (maximization) to 0-1 feasibility
 | 
| 
alpar@9
 | 
    22                         problem (this option assumes --minisat)
 | 
| 
alpar@9
 | 
    23 
 | 
| 
alpar@9
 | 
    24         The paint-by-numbers puzzle model (pbn.mod) included in the
 | 
| 
alpar@9
 | 
    25         distribution is a nice example of the 0-1 feasibility problem,
 | 
| 
alpar@9
 | 
    26         which can be efficiently solved with glp_intfeas1/MiniSat. This
 | 
| 
alpar@9
 | 
    27         model along with a brief instruction (pbn.pdf) and benchmark
 | 
| 
alpar@9
 | 
    28         examples from <webpbn.com> encoded in GNU MathProg (*.dat) can
 | 
| 
alpar@9
 | 
    29         be found in subdirectory examples/pbn/.
 | 
| 
alpar@9
 | 
    30 
 | 
| 
alpar@9
 | 
    31         The glpsol lp/mip solver was modified to bypass postprocessing
 | 
| 
alpar@9
 | 
    32         of MathProg models if the solution reported is neither optimal
 | 
| 
alpar@9
 | 
    33         nor feasible.
 | 
| 
alpar@9
 | 
    34 
 | 
| 
alpar@9
 | 
    35         A minor bug in examples/Makefile.am was fixed to correctly
 | 
| 
alpar@9
 | 
    36         build glpk in a separate directory. Thanks to Marco Atzeri
 | 
| 
alpar@9
 | 
    37         <marco.atzeri@gmail.com> for bug report and patch.
 | 
| 
alpar@9
 | 
    38 
 | 
| 
alpar@9
 | 
    39 GLPK 4.46 (release date: Aug 09, 2011)
 | 
| 
alpar@9
 | 
    40 
 | 
| 
alpar@9
 | 
    41         The following new API routines were added:
 | 
| 
alpar@9
 | 
    42 
 | 
| 
alpar@9
 | 
    43         glp_read_cnfsat    read CNF-SAT problem data in DIMACS format
 | 
| 
alpar@9
 | 
    44         glp_check_cnfsat   check for CNF-SAT problem instance
 | 
| 
alpar@9
 | 
    45         glp_write_cnfsat   write CNF-SAT problem data in DIMACS format
 | 
| 
alpar@9
 | 
    46         glp_minisat1       solve CNF-SAT problem instance with MiniSat
 | 
| 
alpar@9
 | 
    47 
 | 
| 
alpar@9
 | 
    48         The routine glp_minisat1 is a driver to MiniSat, a CNF-SAT
 | 
| 
alpar@9
 | 
    49         solver developed by Niklas Een and Niklas Sorensson, Chalmers
 | 
| 
alpar@9
 | 
    50         University of Technology, Sweden. This routine is similar to
 | 
| 
alpar@9
 | 
    51         the routine glp_intopt, however, it is intended to solve a 0-1
 | 
| 
alpar@9
 | 
    52         programming problem instance, which is the MIP translation of
 | 
| 
alpar@9
 | 
    53         a CNF-SAT problem instance.
 | 
| 
alpar@9
 | 
    54 
 | 
| 
alpar@9
 | 
    55         Detailed description of these new API routines can be found in
 | 
| 
alpar@9
 | 
    56         the document "CNF Satisfiability Problem", which is included in
 | 
| 
alpar@9
 | 
    57         the distribution (see files doc/cnfsat.tex and doc/cnfsat.pdf).
 | 
| 
alpar@9
 | 
    58 
 | 
| 
alpar@9
 | 
    59         The following new glpsol command-line options were added:
 | 
| 
alpar@9
 | 
    60 
 | 
| 
alpar@9
 | 
    61         --cnf filename     read CNF-SAT problem instance in DIMACS
 | 
| 
alpar@9
 | 
    62                            format from filename and translate it to MIP
 | 
| 
alpar@9
 | 
    63         --wcnf filename    write CNF-SAT problem instance in DIMACS
 | 
| 
alpar@9
 | 
    64                            format to filename
 | 
| 
alpar@9
 | 
    65         --minisat          solve CNF-SAT problem instance with MiniSat
 | 
| 
alpar@9
 | 
    66                            solver
 | 
| 
alpar@9
 | 
    67 
 | 
| 
alpar@9
 | 
    68         The zlib compression library (version 1.2.5) was ANSIfied,
 | 
| 
alpar@9
 | 
    69         modified according to GLPK requirements and included in the
 | 
| 
alpar@9
 | 
    70         distribution as an external software module. Thus, now this
 | 
| 
alpar@9
 | 
    71         feature is platform independent.
 | 
| 
alpar@9
 | 
    72 
 | 
| 
alpar@9
 | 
    73         Some bugs were fixed in the SQL table driver. Thanks to Xypron
 | 
| 
alpar@9
 | 
    74         <xypron.glpk@gmx.de>.
 | 
| 
alpar@9
 | 
    75 
 | 
| 
alpar@9
 | 
    76 GLPK 4.45 (release date: Dec 05, 2010)
 | 
| 
alpar@9
 | 
    77 
 | 
| 
alpar@9
 | 
    78         This is a bug-fix release.
 | 
| 
alpar@9
 | 
    79 
 | 
| 
alpar@9
 | 
    80         Several bugs/typos were fixed. Thanks to
 | 
| 
alpar@9
 | 
    81         Xypron <xypron.glpk@gmx.de>,
 | 
| 
alpar@9
 | 
    82         Robbie Morrison <robbie@actrix.co.nz>, and
 | 
| 
alpar@9
 | 
    83         Ali Baharev <ali.baharev@gmail.com> for reports.
 | 
| 
alpar@9
 | 
    84 
 | 
| 
alpar@9
 | 
    85         Some glpk documents was re-formatted and merged into a single
 | 
| 
alpar@9
 | 
    86         document. Now the glpk documentation consists of the following
 | 
| 
alpar@9
 | 
    87         three main documents (all included in the distribution):
 | 
| 
alpar@9
 | 
    88 
 | 
| 
alpar@9
 | 
    89         GLPK: Reference Manual
 | 
| 
alpar@9
 | 
    90 
 | 
| 
alpar@9
 | 
    91         GLPK: Graph and Network Routines
 | 
| 
alpar@9
 | 
    92 
 | 
| 
alpar@9
 | 
    93         Modeling Language GNU MathProg: Language Reference
 | 
| 
alpar@9
 | 
    94 
 | 
| 
alpar@9
 | 
    95 GLPK 4.44 (release date: Jun 03, 2010)
 | 
| 
alpar@9
 | 
    96 
 | 
| 
alpar@9
 | 
    97         The following suffixes for variables and constraints were
 | 
| 
alpar@9
 | 
    98         implemented in the MathProg language:
 | 
| 
alpar@9
 | 
    99 
 | 
| 
alpar@9
 | 
   100         .lb     (lower bound),
 | 
| 
alpar@9
 | 
   101         .ub     (upper bound),
 | 
| 
alpar@9
 | 
   102         .status (status in the solution),
 | 
| 
alpar@9
 | 
   103         .val    (primal value), and
 | 
| 
alpar@9
 | 
   104         .dual   (dual value).
 | 
| 
alpar@9
 | 
   105 
 | 
| 
alpar@9
 | 
   106         Thanks to Xypron <xypron.glpk@gmx.de> for draft implementation
 | 
| 
alpar@9
 | 
   107         and testing.
 | 
| 
alpar@9
 | 
   108 
 | 
| 
alpar@9
 | 
   109         Now the MathProg language allows comment records (marked by
 | 
| 
alpar@9
 | 
   110         '#' in the very first position) in CSV data files read with the
 | 
| 
alpar@9
 | 
   111         table statements. Note that the comment records may appear only
 | 
| 
alpar@9
 | 
   112         in the beginning of a CSV data file.
 | 
| 
alpar@9
 | 
   113 
 | 
| 
alpar@9
 | 
   114         The API routine glp_cpp to solve the Critical Path Problem was
 | 
| 
alpar@9
 | 
   115         added and documented.
 | 
| 
alpar@9
 | 
   116 
 | 
| 
alpar@9
 | 
   117 GLPK 4.43 (release date: Feb 20, 2010)
 | 
| 
alpar@9
 | 
   118 
 | 
| 
alpar@9
 | 
   119         This is a maintainer release.
 | 
| 
alpar@9
 | 
   120 
 | 
| 
alpar@9
 | 
   121         `configure.ac' was changed to allow building the package under
 | 
| 
alpar@9
 | 
   122         Mac OS and Darwin with ODBC support.
 | 
| 
alpar@9
 | 
   123         Thanks to Xypron <xypron.glpk@gmx.de> for suggestions and Noli
 | 
| 
alpar@9
 | 
   124         Sicad <nsicad@gmail.com> for testing.
 | 
| 
alpar@9
 | 
   125 
 | 
| 
alpar@9
 | 
   126         The SQL table driver was improved to process NULL data. Thanks
 | 
| 
alpar@9
 | 
   127         to Xypron <xypron.glpk@gmx.de>.
 | 
| 
alpar@9
 | 
   128 
 | 
| 
alpar@9
 | 
   129         Some bugs were fixed in the LP/MIP preprocessor.
 | 
| 
alpar@9
 | 
   130 
 | 
| 
alpar@9
 | 
   131 GLPK 4.42 (release date: Jan 13, 2010)
 | 
| 
alpar@9
 | 
   132 
 | 
| 
alpar@9
 | 
   133         The following new API routines were added:
 | 
| 
alpar@9
 | 
   134 
 | 
| 
alpar@9
 | 
   135         glp_check_dup         check for duplicate elements in sparse
 | 
| 
alpar@9
 | 
   136                               matrix
 | 
| 
alpar@9
 | 
   137         glp_sort_matrix       sort elements of the constraint matrix
 | 
| 
alpar@9
 | 
   138         glp_read_prob         read problem data in GLPK format
 | 
| 
alpar@9
 | 
   139         glp_write_prob        write problem data in GLPK format
 | 
| 
alpar@9
 | 
   140         glp_analyze_bound     analyze active bound of non-basic variable
 | 
| 
alpar@9
 | 
   141         glp_analyze_coef      analyze objective coefficient at basic
 | 
| 
alpar@9
 | 
   142                               variable
 | 
| 
alpar@9
 | 
   143         glp_print_ranges      print sensitivity analysis report (this
 | 
| 
alpar@9
 | 
   144                               routine replaces lpx_print_sens_bnds and
 | 
| 
alpar@9
 | 
   145                               makes it deprecated)
 | 
| 
alpar@9
 | 
   146 
 | 
| 
alpar@9
 | 
   147         For description of these new routines and the GLPK LP/MIP
 | 
| 
alpar@9
 | 
   148         format see a new edition of the reference manual included in
 | 
| 
alpar@9
 | 
   149         the distribution. (Chapter "Graph and network API routines" was
 | 
| 
alpar@9
 | 
   150         carried out from the main reference manual and included in the
 | 
| 
alpar@9
 | 
   151         distribution as a separate document.)
 | 
| 
alpar@9
 | 
   152 
 | 
| 
alpar@9
 | 
   153         The following new command-line options were added to the stand-
 | 
| 
alpar@9
 | 
   154         alone solver glpsol:
 | 
| 
alpar@9
 | 
   155         --glp filename        read problem data in GLPK format
 | 
| 
alpar@9
 | 
   156         --wglp filename       write problem data in GLPK format
 | 
| 
alpar@9
 | 
   157         --ranges filename     print sensitivity analysis report (this
 | 
| 
alpar@9
 | 
   158                               option replaces --bounds)
 | 
| 
alpar@9
 | 
   159 
 | 
| 
alpar@9
 | 
   160         Now all GLPK routines performing file I/O support special
 | 
| 
alpar@9
 | 
   161         filenames "/dev/stdin", "/dev/stdout", and "/dev/stderr", which
 | 
| 
alpar@9
 | 
   162         can be specified in the same way as regular filenames. This
 | 
| 
alpar@9
 | 
   163         feature is plaform-independent.
 | 
| 
alpar@9
 | 
   164 
 | 
| 
alpar@9
 | 
   165 GLPK 4.41 (release date: Dec 21, 2009)
 | 
| 
alpar@9
 | 
   166 
 | 
| 
alpar@9
 | 
   167         The following new API routies were added:
 | 
| 
alpar@9
 | 
   168 
 | 
| 
alpar@9
 | 
   169         glp_transform_row     transform explicitly specified row
 | 
| 
alpar@9
 | 
   170         glp_transform_col     transform explicitly specified column
 | 
| 
alpar@9
 | 
   171         glp_prim_rtest        perform primal ratio test
 | 
| 
alpar@9
 | 
   172         glp_dual_rtest        perform dual ratio test
 | 
| 
alpar@9
 | 
   173 
 | 
| 
alpar@9
 | 
   174         For description of these new routines see a new edition of the
 | 
| 
alpar@9
 | 
   175         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   176 
 | 
| 
alpar@9
 | 
   177         The following API routines are deprecated: lpx_transform_row,
 | 
| 
alpar@9
 | 
   178         lpx_transform_col, lpx_prim_ratio_test, lpx_dual_ratio_test.
 | 
| 
alpar@9
 | 
   179 
 | 
| 
alpar@9
 | 
   180         Some improvements were made in the MIP solver (glp_intopt).
 | 
| 
alpar@9
 | 
   181 
 | 
| 
alpar@9
 | 
   182         The SQL table driver used to read/write data in MathProg models
 | 
| 
alpar@9
 | 
   183         was changed to allow multiple arguments separated by semicolon
 | 
| 
alpar@9
 | 
   184         in SQL statements. Thanks to Xypron <xypron.glpk@gmx.de>.
 | 
| 
alpar@9
 | 
   185 
 | 
| 
alpar@9
 | 
   186         Two new options were added to the glpsol stand-alone solver:
 | 
| 
alpar@9
 | 
   187         --seed value (to initialize the pseudo-random number generator
 | 
| 
alpar@9
 | 
   188         used in MathProg models with specified value), and
 | 
| 
alpar@9
 | 
   189         --ini filename (to use a basis previously saved with -w option
 | 
| 
alpar@9
 | 
   190         as an initial basis on solving similar LP's).
 | 
| 
alpar@9
 | 
   191 
 | 
| 
alpar@9
 | 
   192         Two new MathProg example models were included. Thanks to
 | 
| 
alpar@9
 | 
   193         Nigel Galloway <nigel_galloway@operamail.com> and Noli Sicad
 | 
| 
alpar@9
 | 
   194         <nsicad@gmail.com> for contribution.
 | 
| 
alpar@9
 | 
   195 
 | 
| 
alpar@9
 | 
   196         Scripts to build GLPK with Microsoft Visual Studio 2010 for
 | 
| 
alpar@9
 | 
   197         both 32-bit and 64-bit Windows were included. Thanks to Xypron
 | 
| 
alpar@9
 | 
   198         <xypron.glpk@gmx.de> for contribution and testing.
 | 
| 
alpar@9
 | 
   199 
 | 
| 
alpar@9
 | 
   200 GLPK 4.40 (release date: Nov 03, 2009)
 | 
| 
alpar@9
 | 
   201 
 | 
| 
alpar@9
 | 
   202         The following new API routines were added:
 | 
| 
alpar@9
 | 
   203 
 | 
| 
alpar@9
 | 
   204         glp_del_vertices      remove vertices from graph
 | 
| 
alpar@9
 | 
   205         glp_del_arc           remove arc from graph
 | 
| 
alpar@9
 | 
   206         glp_wclique_exact     find maximum weight clique with the exact
 | 
| 
alpar@9
 | 
   207                               algorithm developed by Prof. P. Ostergard
 | 
| 
alpar@9
 | 
   208         glp_read_ccdata       read graph in DIMACS clique/coloring
 | 
| 
alpar@9
 | 
   209                               format
 | 
| 
alpar@9
 | 
   210         glp_write_ccdata      write graph in DIMACS clique/coloring
 | 
| 
alpar@9
 | 
   211                               format
 | 
| 
alpar@9
 | 
   212 
 | 
| 
alpar@9
 | 
   213         For description of these new routines see a new edition of the
 | 
| 
alpar@9
 | 
   214         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   215 
 | 
| 
alpar@9
 | 
   216         The hybrid pseudocost branching heuristic was included in the
 | 
| 
alpar@9
 | 
   217         MIP solver. It is available on API level (iocp.br_tech should
 | 
| 
alpar@9
 | 
   218         be set to GLP_BR_PCH) and in the stand-alone solver glpsol
 | 
| 
alpar@9
 | 
   219         (via the command-line option --pcost). This heuristic may be
 | 
| 
alpar@9
 | 
   220         useful on solving hard MIP instances.
 | 
| 
alpar@9
 | 
   221 
 | 
| 
alpar@9
 | 
   222         The branching heuristic by Driebeck and Tomlin (used in the
 | 
| 
alpar@9
 | 
   223         MIP solver by default) was changed to switch to branching on
 | 
| 
alpar@9
 | 
   224         most fractional variable if an lower bound of degradation of
 | 
| 
alpar@9
 | 
   225         the objective is close to zero for all branching candidates.
 | 
| 
alpar@9
 | 
   226 
 | 
| 
alpar@9
 | 
   227         A bug was fixed in the LP preprocessor (routine npp_empty_col).
 | 
| 
alpar@9
 | 
   228         Thanks to Stefan Vigerske <stefan@math.hu-berlin.de> for the
 | 
| 
alpar@9
 | 
   229         bug report.
 | 
| 
alpar@9
 | 
   230 
 | 
| 
alpar@9
 | 
   231         A bug was fixed and some improvements were made in the FPUMP
 | 
| 
alpar@9
 | 
   232         heuristic module. Thanks to Xypron <xypron.glpk@gmx.de>.
 | 
| 
alpar@9
 | 
   233 
 | 
| 
alpar@9
 | 
   234         A bug was fixed in the API routine glp_warm_up (dual
 | 
| 
alpar@9
 | 
   235         feasibility test was incorrect in maximization case). Thanks to
 | 
| 
alpar@9
 | 
   236         Uday Venkatadri <Uday.Venkatadri@dal.ca> for the bug report.
 | 
| 
alpar@9
 | 
   237 
 | 
| 
alpar@9
 | 
   238 GLPK 4.39 (release date: Jul 26, 2009)
 | 
| 
alpar@9
 | 
   239 
 | 
| 
alpar@9
 | 
   240         The following new API routines were added:
 | 
| 
alpar@9
 | 
   241 
 | 
| 
alpar@9
 | 
   242         glp_warm_up           "warm up" LP basis
 | 
| 
alpar@9
 | 
   243         glp_set_vertex_name   assign (change) vertex name
 | 
| 
alpar@9
 | 
   244         glp_create_v_index    create vertex name index
 | 
| 
alpar@9
 | 
   245         glp_find_vertex       find vertex by its name
 | 
| 
alpar@9
 | 
   246         glp_delete_v_index    delete vertex name index
 | 
| 
alpar@9
 | 
   247         glp_read_asnprob      read assignment problem data in DIMACS
 | 
| 
alpar@9
 | 
   248                               format
 | 
| 
alpar@9
 | 
   249         glp_write_asnprob     write assignment problem data in DIMACS
 | 
| 
alpar@9
 | 
   250                               format
 | 
| 
alpar@9
 | 
   251         glp_check_asnprob     check correctness of assignment problem
 | 
| 
alpar@9
 | 
   252                               data
 | 
| 
alpar@9
 | 
   253         glp_asnprob_lp        convert assignment problem to LP
 | 
| 
alpar@9
 | 
   254         glp_asnprob_okalg     solve assignment problem with the
 | 
| 
alpar@9
 | 
   255                               out-of-kilter algorithm
 | 
| 
alpar@9
 | 
   256         glp_asnprob_hall      find bipartite matching of maxumum
 | 
| 
alpar@9
 | 
   257                               cardinality with Hall's algorithm
 | 
| 
alpar@9
 | 
   258 
 | 
| 
alpar@9
 | 
   259         Also were added some API routines to read plain data files.
 | 
| 
alpar@9
 | 
   260 
 | 
| 
alpar@9
 | 
   261         The API routines glp_read_lp and glp_write_lp to read/write
 | 
| 
alpar@9
 | 
   262         files in CPLEX LP format were re-implemented. Now glp_write_lp
 | 
| 
alpar@9
 | 
   263         correctly writes double-bounded (ranged) rows by introducing
 | 
| 
alpar@9
 | 
   264         slack variables rather than by duplicating the rows.
 | 
| 
alpar@9
 | 
   265 
 | 
| 
alpar@9
 | 
   266         For description of these new routines see a new edition of the
 | 
| 
alpar@9
 | 
   267         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   268 
 | 
| 
alpar@9
 | 
   269         The 'xfree(NULL)' bug was fixed in the AMD routines. Thanks to
 | 
| 
alpar@9
 | 
   270         Niels Klitgord <niels@bu.edu> for bug report.
 | 
| 
alpar@9
 | 
   271 
 | 
| 
alpar@9
 | 
   272         The message "Crashing..." was changed to "Constructing initial
 | 
| 
alpar@9
 | 
   273         basis..." due to suggestion by Thomas Kahle <tom111@gmx.de>.
 | 
| 
alpar@9
 | 
   274 
 | 
| 
alpar@9
 | 
   275         Some typos were corrected in glpsol output messages. Thanks to
 | 
| 
alpar@9
 | 
   276         Xypron <xypron.glpk@gmx.de> for patch.
 | 
| 
alpar@9
 | 
   277 
 | 
| 
alpar@9
 | 
   278 GLPK 4.38 (release date: May 02, 2009)
 | 
| 
alpar@9
 | 
   279 
 | 
| 
alpar@9
 | 
   280         API routines glp_read_mps and glp_write_mps were improved.
 | 
| 
alpar@9
 | 
   281 
 | 
| 
alpar@9
 | 
   282         Some improvements were made in the dual simplex routines.
 | 
| 
alpar@9
 | 
   283 
 | 
| 
alpar@9
 | 
   284         Two external software modules AMD and COLAMD were included in
 | 
| 
alpar@9
 | 
   285         the distribution (for more details please see src/amd/README
 | 
| 
alpar@9
 | 
   286         and src/colamd/README). Now they are used in the interior-point
 | 
| 
alpar@9
 | 
   287         solver to reorder the matrix prior to Cholesky factorization.
 | 
| 
alpar@9
 | 
   288 
 | 
| 
alpar@9
 | 
   289         API routine glp_ipt_status may return two new statuses due to
 | 
| 
alpar@9
 | 
   290         changes in the routine glp_interior. For details please see the
 | 
| 
alpar@9
 | 
   291         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   292 
 | 
| 
alpar@9
 | 
   293         A minor bug was fixed in the graph/network routines. Thanks to
 | 
| 
alpar@9
 | 
   294         Nelson H. F. Beebe <beebe@math.utah.edu> for bug report.
 | 
| 
alpar@9
 | 
   295 
 | 
| 
alpar@9
 | 
   296 GLPK 4.37 (release date: Mar 29, 2009)
 | 
| 
alpar@9
 | 
   297 
 | 
| 
alpar@9
 | 
   298         The 0-1 Feasibility Pump heuristic was included in the GLPK
 | 
| 
alpar@9
 | 
   299         integer optimizer glp_intopt. On API level the heuristic can be
 | 
| 
alpar@9
 | 
   300         enabled by setting the parameter fp_heur in glp_iocp to GLP_ON.
 | 
| 
alpar@9
 | 
   301         This feature is also available in the solver glpsol through
 | 
| 
alpar@9
 | 
   302         command-line option '--fpump'. For more details please see the
 | 
| 
alpar@9
 | 
   303         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   304 
 | 
| 
alpar@9
 | 
   305         The following new API routines were added:
 | 
| 
alpar@9
 | 
   306 
 | 
| 
alpar@9
 | 
   307         glp_print_sol         write basic solution in printable format
 | 
| 
alpar@9
 | 
   308         glp_print_ipt         write interior-point solution in printable
 | 
| 
alpar@9
 | 
   309                               format
 | 
| 
alpar@9
 | 
   310         glp_print_mip         write MIP solution in printable format
 | 
| 
alpar@9
 | 
   311         glp_read_graph        read (di)graph from plain text file
 | 
| 
alpar@9
 | 
   312         glp_write_graph       write (di)graph to plain text file
 | 
| 
alpar@9
 | 
   313         glp_weak_comp         find all weakly connected components
 | 
| 
alpar@9
 | 
   314         glp_strong_comp       find all strongly connected components
 | 
| 
alpar@9
 | 
   315 
 | 
| 
alpar@9
 | 
   316         The following API routines are deprecated: lpx_print_sol,
 | 
| 
alpar@9
 | 
   317         lpx_print_ips, lpx_print_mip, lpx_print_prob (the latter is
 | 
| 
alpar@9
 | 
   318         equivalent to glp_write_lp).
 | 
| 
alpar@9
 | 
   319 
 | 
| 
alpar@9
 | 
   320         A bug was fixed in the interior-point solver (glp_interior) to
 | 
| 
alpar@9
 | 
   321         correctly compute dual solution components when the problem is
 | 
| 
alpar@9
 | 
   322         scaled.
 | 
| 
alpar@9
 | 
   323 
 | 
| 
alpar@9
 | 
   324         The files configure.ac and Makefile.am were changed:
 | 
| 
alpar@9
 | 
   325         (a) to allow using autoreconf/autoheader;
 | 
| 
alpar@9
 | 
   326         (b) to allow building the package in a directory other than its
 | 
| 
alpar@9
 | 
   327             source directory.
 | 
| 
alpar@9
 | 
   328         Thanks to Marco Atzeri <marco_atzeri@yahoo.it> for bug report.
 | 
| 
alpar@9
 | 
   329 
 | 
| 
alpar@9
 | 
   330         An example model in the GNU MathProg language was added.
 | 
| 
alpar@9
 | 
   331         Thanks to Larry D'Agostino <Larry.D'Agostino@gmacrescap.com> for
 | 
| 
alpar@9
 | 
   332         contribution.
 | 
| 
alpar@9
 | 
   333 
 | 
| 
alpar@9
 | 
   334 GLPK 4.36 (release date: Feb 06, 2009)
 | 
| 
alpar@9
 | 
   335 
 | 
| 
alpar@9
 | 
   336         The following new API routines were added to the package:
 | 
| 
alpar@9
 | 
   337 
 | 
| 
alpar@9
 | 
   338         glp_mincost_okalg     find minimum-cost flow with out-of-kilter
 | 
| 
alpar@9
 | 
   339                               algorithm
 | 
| 
alpar@9
 | 
   340         glp_maxflow_ffalg     find maximal flow with Ford-Fulkerson
 | 
| 
alpar@9
 | 
   341                               algorithm
 | 
| 
alpar@9
 | 
   342 
 | 
| 
alpar@9
 | 
   343         For detailed description of these new routines and related data
 | 
| 
alpar@9
 | 
   344         structures see chapter "Graph and Network API Routines" in a new
 | 
| 
alpar@9
 | 
   345         edition of the reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   346 
 | 
| 
alpar@9
 | 
   347         The following two new command-line options were added to the
 | 
| 
alpar@9
 | 
   348         solver glpsol:
 | 
| 
alpar@9
 | 
   349 
 | 
| 
alpar@9
 | 
   350         --mincost             read min-cost flow data in DIMACS format
 | 
| 
alpar@9
 | 
   351         --maxflow             read maximum flow data in DIMACS format
 | 
| 
alpar@9
 | 
   352 
 | 
| 
alpar@9
 | 
   353         Duplicate symbols in the header glpk.h were removed to allow
 | 
| 
alpar@9
 | 
   354         using swig.
 | 
| 
alpar@9
 | 
   355         Thanks to Kelly Westbrooks <kellywestbrooks@yahoo.com> and
 | 
| 
alpar@9
 | 
   356         Nigel Galloway <nigel_galloway@operamail.com> for suggestion.
 | 
| 
alpar@9
 | 
   357 
 | 
| 
alpar@9
 | 
   358         A minor defect was fixed in the routine glp_write_lp.
 | 
| 
alpar@9
 | 
   359         Thanks to Sebastien Briais <sbriais@free.fr> for bug report.
 | 
| 
alpar@9
 | 
   360 
 | 
| 
alpar@9
 | 
   361         A minor bug was fixed in the SQL module.
 | 
| 
alpar@9
 | 
   362         Thanks to Xypron <xypron.glpk@gmx.de> for patch.
 | 
| 
alpar@9
 | 
   363 
 | 
| 
alpar@9
 | 
   364         Some new example models in the GNU MathProg modeling language
 | 
| 
alpar@9
 | 
   365         were added. Thanks to Sebastian Nowozin <nowozin@gmail.com> and
 | 
| 
alpar@9
 | 
   366         Nigel Galloway <nigel_galloway@operamail.com> for contribution.
 | 
| 
alpar@9
 | 
   367 
 | 
| 
alpar@9
 | 
   368 GLPK 4.35 (release date: Jan 09, 2009)
 | 
| 
alpar@9
 | 
   369 
 | 
| 
alpar@9
 | 
   370         The following new API routines were added to the package:
 | 
| 
alpar@9
 | 
   371 
 | 
| 
alpar@9
 | 
   372         glp_create_graph      create graph
 | 
| 
alpar@9
 | 
   373         glp_set_graph_name    assign (change) graph name
 | 
| 
alpar@9
 | 
   374         glp_add_vertices      add new vertices to graph
 | 
| 
alpar@9
 | 
   375         glp_add_arc           add new arc to graph
 | 
| 
alpar@9
 | 
   376         glp_erase_graph       erase graph content
 | 
| 
alpar@9
 | 
   377         glp_delete_graph      delete graph
 | 
| 
alpar@9
 | 
   378         glp_read_mincost      read minimum cost flow problem data in
 | 
| 
alpar@9
 | 
   379                               DIMACS format
 | 
| 
alpar@9
 | 
   380         glp_write_mincost     write minimum cost flow problem data in
 | 
| 
alpar@9
 | 
   381                               DIMACS format
 | 
| 
alpar@9
 | 
   382         glp_mincost_lp        convert minimum cost flow problem to LP
 | 
| 
alpar@9
 | 
   383         glp_netgen            Klingman's network problem generator
 | 
| 
alpar@9
 | 
   384         glp_gridgen           grid-like network problem generator
 | 
| 
alpar@9
 | 
   385         glp_read_maxflow      read maximum flow problem data in DIMACS
 | 
| 
alpar@9
 | 
   386                               format
 | 
| 
alpar@9
 | 
   387         glp_write_maxflow     write maximum flow problem data in DIMACS
 | 
| 
alpar@9
 | 
   388                               format
 | 
| 
alpar@9
 | 
   389         glp_maxflow_lp        convert maximum flow problem to LP
 | 
| 
alpar@9
 | 
   390         glp_rmfgen            Goldfarb's maximum flow problem generator
 | 
| 
alpar@9
 | 
   391 
 | 
| 
alpar@9
 | 
   392         For detailed description of these new routines and related data
 | 
| 
alpar@9
 | 
   393         structures see chapter "Graph and Network API Routines" in a new
 | 
| 
alpar@9
 | 
   394         edition of the reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   395 
 | 
| 
alpar@9
 | 
   396         A minor change were made in the internal routine xputc. Thanks
 | 
| 
alpar@9
 | 
   397         to Luiz Bettoni <bettoni@cpgei.ct.utfpr.edu.br> for suggestion.
 | 
| 
alpar@9
 | 
   398 
 | 
| 
alpar@9
 | 
   399         A minor bug was fixed in the internal routine mpl_fn_time2str.
 | 
| 
alpar@9
 | 
   400         Thanks to Stefan Vigerske <stefan@vigerske.de> for bug report.
 | 
| 
alpar@9
 | 
   401 
 | 
| 
alpar@9
 | 
   402 GLPK 4.34 (release date: Dec 04, 2008)
 | 
| 
alpar@9
 | 
   403 
 | 
| 
alpar@9
 | 
   404         The GNU MathProg modeling language was supplemented with three
 | 
| 
alpar@9
 | 
   405         new built-in functions:
 | 
| 
alpar@9
 | 
   406 
 | 
| 
alpar@9
 | 
   407         gmtime    obtaining current calendar time
 | 
| 
alpar@9
 | 
   408         str2time  converting character string to calendar time
 | 
| 
alpar@9
 | 
   409         time2str  converting calendar time to character string
 | 
| 
alpar@9
 | 
   410 
 | 
| 
alpar@9
 | 
   411         (Thanks to Xypron <xypron.glpk@gmx.de>.)
 | 
| 
alpar@9
 | 
   412 
 | 
| 
alpar@9
 | 
   413         For detailed description of these functions see Appendix A in
 | 
| 
alpar@9
 | 
   414         the document "Modeling Language GNU MathProg", a new edition of
 | 
| 
alpar@9
 | 
   415         which was included in the distribution.
 | 
| 
alpar@9
 | 
   416 
 | 
| 
alpar@9
 | 
   417         A bug was fixed in the MIP solver. Thanks to Nigel Galloway
 | 
| 
alpar@9
 | 
   418         <nigel_galloway@operamail.com> for bug report.
 | 
| 
alpar@9
 | 
   419 
 | 
| 
alpar@9
 | 
   420         A new makefile was added to build the GLPK DLL with Microsoft
 | 
| 
alpar@9
 | 
   421         Visual Studio Express 2008 for 64-bit Windows. Thanks to Xypron
 | 
| 
alpar@9
 | 
   422         <xypron.glpk@gmx.de> for contribution and testing.
 | 
| 
alpar@9
 | 
   423 
 | 
| 
alpar@9
 | 
   424 GLPK 4.33 (release date: Oct 30, 2008)
 | 
| 
alpar@9
 | 
   425 
 | 
| 
alpar@9
 | 
   426         The following new API routines were added to the package:
 | 
| 
alpar@9
 | 
   427         glp_copy_prob         copy problem object content
 | 
| 
alpar@9
 | 
   428         glp_exact             solve LP in exact arithmetic
 | 
| 
alpar@9
 | 
   429                               (makes lpx_exact deprecated)
 | 
| 
alpar@9
 | 
   430         glp_get_unbnd_ray     determine variable causing unboundedness
 | 
| 
alpar@9
 | 
   431                               (makes lpx_get_ray_info deprecated)
 | 
| 
alpar@9
 | 
   432         glp_interior          solve LP with interior-point method
 | 
| 
alpar@9
 | 
   433                               (makes lpx_interior deprecated)
 | 
| 
alpar@9
 | 
   434 
 | 
| 
alpar@9
 | 
   435         The following new API routines for processing models written in
 | 
| 
alpar@9
 | 
   436         the GNU Mathprog language were added to the package:
 | 
| 
alpar@9
 | 
   437         glp_mpl_alloc_wksp    allocate the translator workspace
 | 
| 
alpar@9
 | 
   438         glp_mpl_read_model    read and translate model section
 | 
| 
alpar@9
 | 
   439         glp_mpl_read_data     read and translate data section
 | 
| 
alpar@9
 | 
   440         glp_mpl_generate      generate the model
 | 
| 
alpar@9
 | 
   441         glp_mpl_build_prob    build LP/MIP instance from the model
 | 
| 
alpar@9
 | 
   442         glp_mpl_postsolve     postsolve the model
 | 
| 
alpar@9
 | 
   443         glp_mpl_free_wksp     deallocate the translator workspace
 | 
| 
alpar@9
 | 
   444         (These routines make lpx_read_model deprecated.)
 | 
| 
alpar@9
 | 
   445 
 | 
| 
alpar@9
 | 
   446         For description of all these new API routines see the reference
 | 
| 
alpar@9
 | 
   447         manual included in the distribution.
 | 
| 
alpar@9
 | 
   448 
 | 
| 
alpar@9
 | 
   449         A crude implementation of CPLEX-like interface to GLPK API was
 | 
| 
alpar@9
 | 
   450         added to the package. Currently it allows using GLPK as a core
 | 
| 
alpar@9
 | 
   451         LP solver for Concorde, a well known computer code for solving
 | 
| 
alpar@9
 | 
   452         the symmetric TSP. For details see examples/cplex/README.
 | 
| 
alpar@9
 | 
   453 
 | 
| 
alpar@9
 | 
   454         Some bugs were fixed in the SQL table driver. Thanks to Xypron
 | 
| 
alpar@9
 | 
   455         <xypron.glpk@gmx.de>.
 | 
| 
alpar@9
 | 
   456 
 | 
| 
alpar@9
 | 
   457 GLPK 4.32 (release date: Oct 03, 2008)
 | 
| 
alpar@9
 | 
   458 
 | 
| 
alpar@9
 | 
   459         The following new features were included in the MIP solver
 | 
| 
alpar@9
 | 
   460         (the API routine glp_intopt):
 | 
| 
alpar@9
 | 
   461 
 | 
| 
alpar@9
 | 
   462         *  MIP presolver
 | 
| 
alpar@9
 | 
   463         *  mixed cover cut generator
 | 
| 
alpar@9
 | 
   464         *  clique cut generator
 | 
| 
alpar@9
 | 
   465         *  Euclidean reduction of the objective value
 | 
| 
alpar@9
 | 
   466 
 | 
| 
alpar@9
 | 
   467         Due to changes the routine glp_intopt may additionally return
 | 
| 
alpar@9
 | 
   468         GLP_ENOPFS, GLP_ENODFS, and GLP_EMIPGAP.
 | 
| 
alpar@9
 | 
   469 
 | 
| 
alpar@9
 | 
   470         The API routines lpx_integer are lpx_intopt are deprecated,
 | 
| 
alpar@9
 | 
   471         since they are completely superseded by glp_intopt.
 | 
| 
alpar@9
 | 
   472 
 | 
| 
alpar@9
 | 
   473         The following new branch-and-cut API routines were added:
 | 
| 
alpar@9
 | 
   474         glp_ios_row_attr      determine additional row attributes
 | 
| 
alpar@9
 | 
   475         glp_ios_pool_size     determine current size of the cut pool
 | 
| 
alpar@9
 | 
   476         glp_ios_add_row       add constraint to the cut pool
 | 
| 
alpar@9
 | 
   477         glp_ios_del_row       delete constraint from the cut pool
 | 
| 
alpar@9
 | 
   478         glp_ios_clear_pool    delete all constraints from the cut pool
 | 
| 
alpar@9
 | 
   479 
 | 
| 
alpar@9
 | 
   480         For description of these new routines see the reference manual
 | 
| 
alpar@9
 | 
   481         included in the distribution.
 | 
| 
alpar@9
 | 
   482 
 | 
| 
alpar@9
 | 
   483         The stand-alone solver glpsol was changed to allow multiple
 | 
| 
alpar@9
 | 
   484         data files.
 | 
| 
alpar@9
 | 
   485 
 | 
| 
alpar@9
 | 
   486         A new edition of the supplement "Using Data Tables in the GNU
 | 
| 
alpar@9
 | 
   487         MathProg Modeling Language" was included.
 | 
| 
alpar@9
 | 
   488 
 | 
| 
alpar@9
 | 
   489         As usual, some bugs were fixed (in the MathProg translator).
 | 
| 
alpar@9
 | 
   490         Thanks to Xypron <xypron.glpk@gmx.de>.
 | 
| 
alpar@9
 | 
   491 
 | 
| 
alpar@9
 | 
   492 GLPK 4.31 (release date: Sep 02, 2008)
 | 
| 
alpar@9
 | 
   493 
 | 
| 
alpar@9
 | 
   494         The core LP solver based on the dual simplex method was
 | 
| 
alpar@9
 | 
   495         re-implemented and now it provides both phases I and II.
 | 
| 
alpar@9
 | 
   496 
 | 
| 
alpar@9
 | 
   497         The following new API routines were added:
 | 
| 
alpar@9
 | 
   498         glp_scale_prob  automatic scaling of problem data
 | 
| 
alpar@9
 | 
   499         glp_std_basis   construct standard initial LP basis
 | 
| 
alpar@9
 | 
   500         glp_adv_basis   construct advanced initial LP basis
 | 
| 
alpar@9
 | 
   501         glp_cpx_basis   construct Bixby's initial LP basis
 | 
| 
alpar@9
 | 
   502 
 | 
| 
alpar@9
 | 
   503         For description of these new routines see the reference manual
 | 
| 
alpar@9
 | 
   504         included in the distribution.
 | 
| 
alpar@9
 | 
   505 
 | 
| 
alpar@9
 | 
   506         The following API routines are deprecated:
 | 
| 
alpar@9
 | 
   507         lpx_scale_prob, lpx_std_basis, lpx_adv_basis, lpx_cpx_basis.
 | 
| 
alpar@9
 | 
   508 
 | 
| 
alpar@9
 | 
   509         Necessary changes were made in memory allocation routines to
 | 
| 
alpar@9
 | 
   510         resolve portability issues for 64-bit platforms.
 | 
| 
alpar@9
 | 
   511 
 | 
| 
alpar@9
 | 
   512         New version of the routine lpx_write_pb to write problem data
 | 
| 
alpar@9
 | 
   513         in OPB (pseudo boolean format) was added to the package. Thanks
 | 
| 
alpar@9
 | 
   514         to Oscar Gustafsson <oscarg@isy.liu.se> for the contribution.
 | 
| 
alpar@9
 | 
   515 
 | 
| 
alpar@9
 | 
   516         Two new makefiles were added to build the package for 32- and
 | 
| 
alpar@9
 | 
   517         64-bit Windows with Microsoft Visual Studio Express 2008.
 | 
| 
alpar@9
 | 
   518         Thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de> (aka
 | 
| 
alpar@9
 | 
   519         Xypron) for the contribution and testing.
 | 
| 
alpar@9
 | 
   520 
 | 
| 
alpar@9
 | 
   521         Two new makefiles were added to build the package with Digital
 | 
| 
alpar@9
 | 
   522         Mars C/C++ 8.50 and Open Watcom C/C++ 1.6 (for 32-bit Windows).
 | 
| 
alpar@9
 | 
   523 
 | 
| 
alpar@9
 | 
   524 GLPK 4.30 (release date: Aug 13, 2008)
 | 
| 
alpar@9
 | 
   525 
 | 
| 
alpar@9
 | 
   526         The core LP solver based on the primal simplex method was
 | 
| 
alpar@9
 | 
   527         re-implemented to allow its further improvements. Currently the
 | 
| 
alpar@9
 | 
   528         new version provides the same features as the old one, however,
 | 
| 
alpar@9
 | 
   529         it is a bit faster and more numerically stable.
 | 
| 
alpar@9
 | 
   530 
 | 
| 
alpar@9
 | 
   531         Some changes were made in the MathProg translator to allow <,
 | 
| 
alpar@9
 | 
   532         <=, >=, and > on comparing symbolic values. Thanks to Heinrich
 | 
| 
alpar@9
 | 
   533         Schuchardt <heinrich.schuchardt@gmx.de> for patches.
 | 
| 
alpar@9
 | 
   534 
 | 
| 
alpar@9
 | 
   535         Internal routine set_d_eps in the exact LP solver was changed
 | 
| 
alpar@9
 | 
   536         to prevent approximation errors in case of integral data.
 | 
| 
alpar@9
 | 
   537         Thanks to Markus Pilz <pilz@cs.uni-bonn.de> for bug report.
 | 
| 
alpar@9
 | 
   538 
 | 
| 
alpar@9
 | 
   539 GLPK 4.29 (release date: Jul 06, 2008)
 | 
| 
alpar@9
 | 
   540 
 | 
| 
alpar@9
 | 
   541         The configure script was changed to disable all optional
 | 
| 
alpar@9
 | 
   542         features by default. For details please see file INSTALL.
 | 
| 
alpar@9
 | 
   543 
 | 
| 
alpar@9
 | 
   544         The following new API routines were added:
 | 
| 
alpar@9
 | 
   545         glp_erase_prob  erase problem object content
 | 
| 
alpar@9
 | 
   546         glp_read_mps    read problem data in MPS format
 | 
| 
alpar@9
 | 
   547         glp_write_mps   write problem data in MPS format
 | 
| 
alpar@9
 | 
   548         glp_read_lp     read problem data in CPLEX LP format
 | 
| 
alpar@9
 | 
   549         glp_write_lp    write problem data in CPLEX LP format
 | 
| 
alpar@9
 | 
   550 
 | 
| 
alpar@9
 | 
   551         For description of these new routines see the reference manual
 | 
| 
alpar@9
 | 
   552         included in the distribution.
 | 
| 
alpar@9
 | 
   553 
 | 
| 
alpar@9
 | 
   554         The following API routines are deprecated:
 | 
| 
alpar@9
 | 
   555         lpx_read_mps, lpx_read_freemps, lpx_write_mps,
 | 
| 
alpar@9
 | 
   556         lpx_write_freemps, lpx_read_cpxlp, and lpx_write_cpxlp.
 | 
| 
alpar@9
 | 
   557 
 | 
| 
alpar@9
 | 
   558         Two bugs were fixed. Thanks to
 | 
| 
alpar@9
 | 
   559         Anne-Laurence Putz <anne-laurence.putz@eurodecision.com> and
 | 
| 
alpar@9
 | 
   560         Xypron <xypron.glpk@gmx.de> for bug report.
 | 
| 
alpar@9
 | 
   561 
 | 
| 
alpar@9
 | 
   562 GLPK 4.28 (release date: Mar 25, 2008)
 | 
| 
alpar@9
 | 
   563 
 | 
| 
alpar@9
 | 
   564         The iODBC and MySQL table drivers, which allows transmitting
 | 
| 
alpar@9
 | 
   565         data between MathProg model objects and relational databases,
 | 
| 
alpar@9
 | 
   566         were re-implemented to replace a static linking by a dynamic
 | 
| 
alpar@9
 | 
   567         linking to corresponding shared libraries.
 | 
| 
alpar@9
 | 
   568         Many thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de>
 | 
| 
alpar@9
 | 
   569         for the contribution, Rafael Laboissiere <rafael@debian.org>
 | 
| 
alpar@9
 | 
   570         for useful advices concerning the shared library support under
 | 
| 
alpar@9
 | 
   571         GNU/Linux, and Vijay Patil <vijay.patil@gmail.com> for testing
 | 
| 
alpar@9
 | 
   572         this feature under Windows XP.
 | 
| 
alpar@9
 | 
   573 
 | 
| 
alpar@9
 | 
   574         A new optional feature was added to the package. This feature
 | 
| 
alpar@9
 | 
   575         is based on the zlib data compression library and allows GLPK
 | 
| 
alpar@9
 | 
   576         API routines and the stand-alone solver to read and write
 | 
| 
alpar@9
 | 
   577         compressed data files performing compression/decompression "on
 | 
| 
alpar@9
 | 
   578         the fly" (compressed data files are recognized by suffix `.gz'
 | 
| 
alpar@9
 | 
   579         in the file name). It may be useful in case of large MPS files
 | 
| 
alpar@9
 | 
   580         to save the disk space (up to ten times).
 | 
| 
alpar@9
 | 
   581 
 | 
| 
alpar@9
 | 
   582         The `configure' script was re-implemented. Now it supports the
 | 
| 
alpar@9
 | 
   583         following specific options:
 | 
| 
alpar@9
 | 
   584 
 | 
| 
alpar@9
 | 
   585         --with-gmp           Enable using the GNU MP bignum library
 | 
| 
alpar@9
 | 
   586         --without-gmp        Disable using the GNU MP bignum library
 | 
| 
alpar@9
 | 
   587         --with-zlib          Enable using the zlib data compression
 | 
| 
alpar@9
 | 
   588                              library
 | 
| 
alpar@9
 | 
   589         --without-zlib       Disable using the zlib data compression
 | 
| 
alpar@9
 | 
   590                              library
 | 
| 
alpar@9
 | 
   591         --enable-dl          Enable shared library support (auto check)
 | 
| 
alpar@9
 | 
   592         --enable-dl=ltdl     Enable shared library support (GNU)
 | 
| 
alpar@9
 | 
   593         --enable-dl=dlfcn    Enable shared library support (POSIX)
 | 
| 
alpar@9
 | 
   594         --disable-dl         Disable shared library support
 | 
| 
alpar@9
 | 
   595         --enable-odbc        Enable using ODBC table driver
 | 
| 
alpar@9
 | 
   596         --disable-odbc       Disable using ODBC table driver
 | 
| 
alpar@9
 | 
   597         --enable-mysql       Enable using MySQL table driver
 | 
| 
alpar@9
 | 
   598         --disable-mysql      Disable using MySQL table driver
 | 
| 
alpar@9
 | 
   599 
 | 
| 
alpar@9
 | 
   600         For more details please see file INSTALL.
 | 
| 
alpar@9
 | 
   601 
 | 
| 
alpar@9
 | 
   602 GLPK 4.27 (release date: Mar 02, 2008)
 | 
| 
alpar@9
 | 
   603 
 | 
| 
alpar@9
 | 
   604         Three new table drivers were added to the MathProg translator:
 | 
| 
alpar@9
 | 
   605 
 | 
| 
alpar@9
 | 
   606         xBASE built-in table driver, which allows reading and writing
 | 
| 
alpar@9
 | 
   607         data in .dbf format (only C and N fields are supported);
 | 
| 
alpar@9
 | 
   608 
 | 
| 
alpar@9
 | 
   609         MySQL table driver, which provides connection to a MySQL
 | 
| 
alpar@9
 | 
   610         database;
 | 
| 
alpar@9
 | 
   611 
 | 
| 
alpar@9
 | 
   612         iODBC table driver, which provides connection to a database
 | 
| 
alpar@9
 | 
   613         through ODBC.
 | 
| 
alpar@9
 | 
   614 
 | 
| 
alpar@9
 | 
   615         The MySQL and iODBC table drivers were contributed to GLPK by
 | 
| 
alpar@9
 | 
   616         Heinrich Schuchardt <heinrich.schuchardt@gmx.de>.
 | 
| 
alpar@9
 | 
   617 
 | 
| 
alpar@9
 | 
   618         The table driver is a program module which allows transmitting
 | 
| 
alpar@9
 | 
   619         data between MathProg model objects and external data tables.
 | 
| 
alpar@9
 | 
   620 
 | 
| 
alpar@9
 | 
   621         For detailed description of the table statement and table
 | 
| 
alpar@9
 | 
   622         drivers see the document "Using Data Tables in the GNU MathProg
 | 
| 
alpar@9
 | 
   623         Modeling Language" (file doc/tables.txt) included in the
 | 
| 
alpar@9
 | 
   624         distribution. Some examples which demonstrate using MySQL and
 | 
| 
alpar@9
 | 
   625         iODBC table drivers can be found in subdirectory examples/sql.
 | 
| 
alpar@9
 | 
   626 
 | 
| 
alpar@9
 | 
   627 GLPK 4.26 (release date: Feb 17, 2008)
 | 
| 
alpar@9
 | 
   628 
 | 
| 
alpar@9
 | 
   629         The table statement was implemented in the GNU MathProg
 | 
| 
alpar@9
 | 
   630         modeling language. This new feature allows reading data from
 | 
| 
alpar@9
 | 
   631         external tables into model objects such as sets and parameters
 | 
| 
alpar@9
 | 
   632         as well as writing results of computations to external tables.
 | 
| 
alpar@9
 | 
   633 
 | 
| 
alpar@9
 | 
   634         A table is a (unordered) set of records, where each record
 | 
| 
alpar@9
 | 
   635         consists of the same number of fields, and each field is
 | 
| 
alpar@9
 | 
   636         provided with a unique symbolic name called the field name.
 | 
| 
alpar@9
 | 
   637 
 | 
| 
alpar@9
 | 
   638         Currently the GLPK package has the only built-in table driver,
 | 
| 
alpar@9
 | 
   639         which supports tables in the CSV (comma-separated values) file
 | 
| 
alpar@9
 | 
   640         format. This format is very simple and supported by almost all
 | 
| 
alpar@9
 | 
   641         spreadsheets and database management systems.
 | 
| 
alpar@9
 | 
   642 
 | 
| 
alpar@9
 | 
   643         Detailed description of the table statement and CSV format can
 | 
| 
alpar@9
 | 
   644         be found in file doc/tables.txt, included in the distribution.
 | 
| 
alpar@9
 | 
   645 
 | 
| 
alpar@9
 | 
   646 GLPK 4.25 (release date: Dec 19, 2007)
 | 
| 
alpar@9
 | 
   647 
 | 
| 
alpar@9
 | 
   648         A tentative implementation of Gomory's mixed integer cuts was
 | 
| 
alpar@9
 | 
   649         included in the branch-and-cut solver. To enable generating
 | 
| 
alpar@9
 | 
   650         Gomory's cuts the control parameter gmi_cuts passed to the
 | 
| 
alpar@9
 | 
   651         routine glp_intopt should be set to GLP_ON. This feature is
 | 
| 
alpar@9
 | 
   652         also available in the solver glpsol through command-line option
 | 
| 
alpar@9
 | 
   653         '--gomory'. For more details please see the reference manual
 | 
| 
alpar@9
 | 
   654         included in the distribution.
 | 
| 
alpar@9
 | 
   655 
 | 
| 
alpar@9
 | 
   656 GLPK 4.24 (release date: Nov 21, 2007)
 | 
| 
alpar@9
 | 
   657 
 | 
| 
alpar@9
 | 
   658         A tentative implementation of MIR (mixed integer rounding) cuts
 | 
| 
alpar@9
 | 
   659         was included in the MIP solver. To enable generating MIR cuts
 | 
| 
alpar@9
 | 
   660         the control parameter mir_cuts passed to the routine glp_intopt
 | 
| 
alpar@9
 | 
   661         should be set to GLP_ON. This feature is also available in the
 | 
| 
alpar@9
 | 
   662         stand-alone solver glpsol via command-line option '--mir'. For
 | 
| 
alpar@9
 | 
   663         more details please see the reference manual included in the
 | 
| 
alpar@9
 | 
   664         distribution.
 | 
| 
alpar@9
 | 
   665 
 | 
| 
alpar@9
 | 
   666         The implementation is mainly based on the following two papers:
 | 
| 
alpar@9
 | 
   667 
 | 
| 
alpar@9
 | 
   668         1. H. Marchand and L. A. Wolsey. Aggregation and mixed integer
 | 
| 
alpar@9
 | 
   669            rounding to solve MIPs. CORE discussion paper 9839, CORE,
 | 
| 
alpar@9
 | 
   670            Universite catholique de Louvain, June 1998.
 | 
| 
alpar@9
 | 
   671 
 | 
| 
alpar@9
 | 
   672         2. G. Andreello, A. Caprara, and M. Fischetti. Embedding cuts
 | 
| 
alpar@9
 | 
   673            in a Branch&Cut framework. Preliminary draft, October 2003.
 | 
| 
alpar@9
 | 
   674 
 | 
| 
alpar@9
 | 
   675         MIR cuts can be generated on any level of the search tree that
 | 
| 
alpar@9
 | 
   676         makes the GLPK MIP solver to be a real branch-and-cut solver.
 | 
| 
alpar@9
 | 
   677 
 | 
| 
alpar@9
 | 
   678         A bug was fixed in the routine lpx_write_cpxlp. If a variable
 | 
| 
alpar@9
 | 
   679         x has upper bound and no lower bound, it should appear in the
 | 
| 
alpar@9
 | 
   680         bounds section as "-inf <= x <= u", not as "x <= u". Thanks to
 | 
| 
alpar@9
 | 
   681         Enric Rodriguez <erodri@lsi.upc.edu> for the bug report.
 | 
| 
alpar@9
 | 
   682 
 | 
| 
alpar@9
 | 
   683 GLPK 4.23 (release date: Oct 28, 2007)
 | 
| 
alpar@9
 | 
   684 
 | 
| 
alpar@9
 | 
   685         The following new API routines were added:
 | 
| 
alpar@9
 | 
   686 
 | 
| 
alpar@9
 | 
   687         glp_read_sol    read basic solution from text file
 | 
| 
alpar@9
 | 
   688         glp_write_sol   write basic solution to text file
 | 
| 
alpar@9
 | 
   689         glp_read_ipt    read interior-point solution from text file
 | 
| 
alpar@9
 | 
   690         glp_write_ipt   write interior-point solution to text file
 | 
| 
alpar@9
 | 
   691         glp_read_mip    read MIP solution from text file
 | 
| 
alpar@9
 | 
   692         glp_write_mip   write MIP solution to text file
 | 
| 
alpar@9
 | 
   693 
 | 
| 
alpar@9
 | 
   694         For description of these routines and corresponding file
 | 
| 
alpar@9
 | 
   695         formats see Chapter "API Routines", Section "Utility routines"
 | 
| 
alpar@9
 | 
   696         in the reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   697 
 | 
| 
alpar@9
 | 
   698         Advanced API routine glp_free_env was added. It may be used by
 | 
| 
alpar@9
 | 
   699         the application program to free all resources allocated by GLPK
 | 
| 
alpar@9
 | 
   700         routines.
 | 
| 
alpar@9
 | 
   701 
 | 
| 
alpar@9
 | 
   702         The following three new command-line options were added to the
 | 
| 
alpar@9
 | 
   703         solver glpsol:
 | 
| 
alpar@9
 | 
   704 
 | 
| 
alpar@9
 | 
   705         --mipgap tol    set relative MIP gap tolerance
 | 
| 
alpar@9
 | 
   706         -r filename     read solution from filename
 | 
| 
alpar@9
 | 
   707         -w filename     write solution to filename
 | 
| 
alpar@9
 | 
   708 
 | 
| 
alpar@9
 | 
   709 GLPK 4.22 (release date: Sep 19, 2007)
 | 
| 
alpar@9
 | 
   710 
 | 
| 
alpar@9
 | 
   711         This is a maintainer release.
 | 
| 
alpar@9
 | 
   712 
 | 
| 
alpar@9
 | 
   713         A bug was fixed in the MIP preprocessor (ios_preprocess_node).
 | 
| 
alpar@9
 | 
   714         Thanks to Roberto Bagnara <bagnara@cs.unipr.it> (Department of
 | 
| 
alpar@9
 | 
   715         Mathematics, University of Parma, Italy) for the bug report.
 | 
| 
alpar@9
 | 
   716 
 | 
| 
alpar@9
 | 
   717         A bug was fixed in the MIP preprocessor (col_implied_bounds),
 | 
| 
alpar@9
 | 
   718         due to which constraint coefficients with small magnitude could
 | 
| 
alpar@9
 | 
   719         lead to wrong implied bounds of structural variables.
 | 
| 
alpar@9
 | 
   720 
 | 
| 
alpar@9
 | 
   721         A similar bug was fixed in the routine reduce_bounds.
 | 
| 
alpar@9
 | 
   722 
 | 
| 
alpar@9
 | 
   723         A bug was fixed in the routines glp_set_mat_row and
 | 
| 
alpar@9
 | 
   724         glp_set_mat_col. (The bug appeared due to incorrect removing
 | 
| 
alpar@9
 | 
   725         zero elements from the row/column lists.)
 | 
| 
alpar@9
 | 
   726 
 | 
| 
alpar@9
 | 
   727         A bug was fixed in the API routines lpx_read_mps and
 | 
| 
alpar@9
 | 
   728         lpx_read_freemps, due to which bounds of type LI specified in
 | 
| 
alpar@9
 | 
   729         BOUNDS section were incorrectly processed.
 | 
| 
alpar@9
 | 
   730 
 | 
| 
alpar@9
 | 
   731         A call to standard function vsprintf was replaced by a call to
 | 
| 
alpar@9
 | 
   732         vsnprintf for security reasons. Many thanks to Peter T. Breuer
 | 
| 
alpar@9
 | 
   733         <ptb@inv.it.uc3m.es> and Rafael Laboissiere <rafael@debian.org>.
 | 
| 
alpar@9
 | 
   734 
 | 
| 
alpar@9
 | 
   735 GLPK 4.21 (release date: Aug 28, 2007)
 | 
| 
alpar@9
 | 
   736 
 | 
| 
alpar@9
 | 
   737         Additional reasons for calling the callback routine used in the
 | 
| 
alpar@9
 | 
   738         MIP solver (glp_intopt) were introduced. Currently the following
 | 
| 
alpar@9
 | 
   739         reasons are supported:
 | 
| 
alpar@9
 | 
   740 
 | 
| 
alpar@9
 | 
   741         * request for subproblem selection
 | 
| 
alpar@9
 | 
   742         * request for preprocessing
 | 
| 
alpar@9
 | 
   743         * request for row generation
 | 
| 
alpar@9
 | 
   744         * request for heuristic solution
 | 
| 
alpar@9
 | 
   745         * request for cut generation
 | 
| 
alpar@9
 | 
   746         * request for branching
 | 
| 
alpar@9
 | 
   747         * better integer solution found
 | 
| 
alpar@9
 | 
   748 
 | 
| 
alpar@9
 | 
   749         A basic preprocessing component used to improve subproblem
 | 
| 
alpar@9
 | 
   750         formulations by tightening bounds of variables was included in
 | 
| 
alpar@9
 | 
   751         the MIP solver. Depending on the control parameter pp_tech
 | 
| 
alpar@9
 | 
   752         passed to the routine glp_intopt the preprocessing can be
 | 
| 
alpar@9
 | 
   753         performed either on the root level or on all levels (default)
 | 
| 
alpar@9
 | 
   754         or can be disabled.
 | 
| 
alpar@9
 | 
   755 
 | 
| 
alpar@9
 | 
   756         Backtracking heuristic used by default in the MIP solver was
 | 
| 
alpar@9
 | 
   757         changed to the "best local bound".
 | 
| 
alpar@9
 | 
   758 
 | 
| 
alpar@9
 | 
   759         For more details see Chapter "Advanced API routines", Section
 | 
| 
alpar@9
 | 
   760         "Branch-and-bound interface routines" in a new edition of the
 | 
| 
alpar@9
 | 
   761         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   762 
 | 
| 
alpar@9
 | 
   763 GLPK 4.20 (release date: Jul 26, 2007)
 | 
| 
alpar@9
 | 
   764 
 | 
| 
alpar@9
 | 
   765         API routine lpx_integer was replaced by API routine glp_intopt,
 | 
| 
alpar@9
 | 
   766         which provides equivalent functionality and additionally allows
 | 
| 
alpar@9
 | 
   767         the application to control the solution process by means of the
 | 
| 
alpar@9
 | 
   768         user-written callback routine, which is called by the solver at
 | 
| 
alpar@9
 | 
   769         various points of the branch-and-bound algorithm. Besides, the
 | 
| 
alpar@9
 | 
   770         new MIP solver allows generating "lazy" constraints and cutting
 | 
| 
alpar@9
 | 
   771         planes on all levels of the branch-and-bound tree, not only on
 | 
| 
alpar@9
 | 
   772         the root level. The routine lpx_integer is also still available
 | 
| 
alpar@9
 | 
   773         for the backward compatibility.
 | 
| 
alpar@9
 | 
   774 
 | 
| 
alpar@9
 | 
   775         The following new advanced API routines, which may be called
 | 
| 
alpar@9
 | 
   776         from the B&B callback routine, were included in the package:
 | 
| 
alpar@9
 | 
   777 
 | 
| 
alpar@9
 | 
   778         glp_ios_reason     determine reason for calling callback
 | 
| 
alpar@9
 | 
   779                            routine
 | 
| 
alpar@9
 | 
   780         glp_ios_get_prob   access the problem object
 | 
| 
alpar@9
 | 
   781         glp_ios_tree_size  determine size of the branch-and-bound tree
 | 
| 
alpar@9
 | 
   782         glp_ios_curr_node  determine current active subproblem
 | 
| 
alpar@9
 | 
   783         glp_ios_next_node  determine next active subproblem
 | 
| 
alpar@9
 | 
   784         glp_ios_prev_node  determine previous active subproblem
 | 
| 
alpar@9
 | 
   785         glp_ios_up_node    determine parent subproblem
 | 
| 
alpar@9
 | 
   786         glp_ios_node_level determine subproblem level
 | 
| 
alpar@9
 | 
   787         glp_ios_node_bound determine subproblem local bound
 | 
| 
alpar@9
 | 
   788         glp_ios_mip_gap    compute relative MIP gap
 | 
| 
alpar@9
 | 
   789         glp_ios_heur_sol   provide solution found by heuristic
 | 
| 
alpar@9
 | 
   790         glp_ios_terminate  terminate the solution process
 | 
| 
alpar@9
 | 
   791 
 | 
| 
alpar@9
 | 
   792         For description of these routines see Chapter "Advanced API
 | 
| 
alpar@9
 | 
   793         routines", Section "Branch-and-bound interface routines" in a
 | 
| 
alpar@9
 | 
   794         new edition of the reference manual, which was included in the
 | 
| 
alpar@9
 | 
   795         distribution.
 | 
| 
alpar@9
 | 
   796 
 | 
| 
alpar@9
 | 
   797         Old version of the integer optimization suite (IOS) as well as
 | 
| 
alpar@9
 | 
   798         TSP solver tspsol based on it are no longer supported and were
 | 
| 
alpar@9
 | 
   799         removed from the package.
 | 
| 
alpar@9
 | 
   800 
 | 
| 
alpar@9
 | 
   801         A minor error in the MIP presolver was fixed; thanks to Graham
 | 
| 
alpar@9
 | 
   802         Rockwell <bionomicron@gmail.com> for the bug report.
 | 
| 
alpar@9
 | 
   803 
 | 
| 
alpar@9
 | 
   804 GLPK 4.19 (release date: Jul 05, 2007)
 | 
| 
alpar@9
 | 
   805 
 | 
| 
alpar@9
 | 
   806         The principal change is upgrading to GPLv3.
 | 
| 
alpar@9
 | 
   807 
 | 
| 
alpar@9
 | 
   808         A serious bug in the routine glp_del_cols was fixed; thanks to
 | 
| 
alpar@9
 | 
   809         Cedric[FR] <fox2113@wanadoo.fr> for the bug report. The bug
 | 
| 
alpar@9
 | 
   810         appeared because on deleting non-basic columns the basis header
 | 
| 
alpar@9
 | 
   811         remained valid, however, contained invalid (old) column ordinal
 | 
| 
alpar@9
 | 
   812         numbers.
 | 
| 
alpar@9
 | 
   813 
 | 
| 
alpar@9
 | 
   814         A new advanced API routine glp_mem_limit was added.
 | 
| 
alpar@9
 | 
   815 
 | 
| 
alpar@9
 | 
   816         The case GLP_EBOUND was added to the routine lpx_simplex.
 | 
| 
alpar@9
 | 
   817         Thanks to Cameron Kellough <Cameron.Kellough@sri.com> for the
 | 
| 
alpar@9
 | 
   818         bug report.
 | 
| 
alpar@9
 | 
   819 
 | 
| 
alpar@9
 | 
   820         An API routine lpx_write_pb to write the problem instance in
 | 
| 
alpar@9
 | 
   821         OPB (pseudo boolean) format format was added. Thanks to Oscar
 | 
| 
alpar@9
 | 
   822         Gustafsson <oscarg@isy.liu.se> for the contribution.
 | 
| 
alpar@9
 | 
   823 
 | 
| 
alpar@9
 | 
   824         Two new options --wpb and --wnpb were added to glpsol to write
 | 
| 
alpar@9
 | 
   825         the problem instance in OPB format.
 | 
| 
alpar@9
 | 
   826 
 | 
| 
alpar@9
 | 
   827 GLPK 4.18 (release date: Jun 25, 2007)
 | 
| 
alpar@9
 | 
   828 
 | 
| 
alpar@9
 | 
   829         The following new API routines were added:
 | 
| 
alpar@9
 | 
   830 
 | 
| 
alpar@9
 | 
   831         glp_set_rii        set (change) row scale factor
 | 
| 
alpar@9
 | 
   832         glp_set_sjj        set (change) column scale factor
 | 
| 
alpar@9
 | 
   833         glp_get_rii        retrieve row scale factor
 | 
| 
alpar@9
 | 
   834         glp_get_sjj        retrieve column scale factor
 | 
| 
alpar@9
 | 
   835         glp_simplex        solve LP problem with the simplex method
 | 
| 
alpar@9
 | 
   836                            (this routine replaces lpx_simplex, which is
 | 
| 
alpar@9
 | 
   837                            also available for backward compatibility)
 | 
| 
alpar@9
 | 
   838         glp_init_smcp      initialize simplex method control params
 | 
| 
alpar@9
 | 
   839         glp_bf_exists      check if the basis factorization exists
 | 
| 
alpar@9
 | 
   840         glp_factorize      compute the basis factorization
 | 
| 
alpar@9
 | 
   841         glp_bf_updated     check if the basis factorization has been
 | 
| 
alpar@9
 | 
   842                            updated
 | 
| 
alpar@9
 | 
   843         glp_get_bfcp       retrieve basis factorization control params
 | 
| 
alpar@9
 | 
   844         glp_set_bfcp       change basis factorization control params
 | 
| 
alpar@9
 | 
   845         glp_get_bhead      retrieve the basis header information
 | 
| 
alpar@9
 | 
   846         glp_get_row_bind   retrieve row index in the basis header
 | 
| 
alpar@9
 | 
   847         glp_get_col_bind   retrieve column index in the basis header
 | 
| 
alpar@9
 | 
   848         glp_ftran          perform forward transformation
 | 
| 
alpar@9
 | 
   849         glp_btran          perform backward transformation
 | 
| 
alpar@9
 | 
   850 
 | 
| 
alpar@9
 | 
   851         For description of all these routines see a new edition of the
 | 
| 
alpar@9
 | 
   852         reference manual included in the distribution.
 | 
| 
alpar@9
 | 
   853 
 | 
| 
alpar@9
 | 
   854         Type names ulong_t and uldiv_t were changed to glp_ulong and
 | 
| 
alpar@9
 | 
   855         glp_uldiv to avoid conflicts with standard type names on some
 | 
| 
alpar@9
 | 
   856         platforms. Thanks to Boris Wirtz <Boris.Wirtz@uni-oldenburg.de>
 | 
| 
alpar@9
 | 
   857         for the bug report.
 | 
| 
alpar@9
 | 
   858 
 | 
| 
alpar@9
 | 
   859         Some new examples in the MathProg language were added. Thanks
 | 
| 
alpar@9
 | 
   860         to Sebastian Nowozin <nowozin@gmail.com>.
 | 
| 
alpar@9
 | 
   861 
 | 
| 
alpar@9
 | 
   862 GLPK 4.17 (release date: May 26, 2007)
 | 
| 
alpar@9
 | 
   863 
 | 
| 
alpar@9
 | 
   864         API routines glp_set_mat_row, glp_set_mat_col, and glp_load_mat
 | 
| 
alpar@9
 | 
   865         were modified to allow zero constraint coefficients (which are
 | 
| 
alpar@9
 | 
   866         not stored in the constraint matrix). Note that constraint
 | 
| 
alpar@9
 | 
   867         coefficients with duplicate row/column indices are not allowed.
 | 
| 
alpar@9
 | 
   868 
 | 
| 
alpar@9
 | 
   869         Another form of LP basis factorization was implemented in the
 | 
| 
alpar@9
 | 
   870         package. It is based on LU-factorization of an initial basis
 | 
| 
alpar@9
 | 
   871         and Schur complement to reflect changes in the basis. Currently
 | 
| 
alpar@9
 | 
   872         the implementation is incomplete and provides only updating the
 | 
| 
alpar@9
 | 
   873         factorization on replacing a column of the basis matrix. On API
 | 
| 
alpar@9
 | 
   874         level the user can set the control parameter LPX_K_BFTYPE to
 | 
| 
alpar@9
 | 
   875         choose between the folloiwng forms of LP basis factorization to
 | 
| 
alpar@9
 | 
   876         be used in the simplex method routines:
 | 
| 
alpar@9
 | 
   877         1) LU + Forrest-Tomlin update;
 | 
| 
alpar@9
 | 
   878         2) LU + Schur complement + Bartels-Golub update;
 | 
| 
alpar@9
 | 
   879         3) LU + Schur complement + Givens rotation update.
 | 
| 
alpar@9
 | 
   880         The GLPK implementation is similar to LUSOL/LUMOD developed by
 | 
| 
alpar@9
 | 
   881         Michael A. Saunders.
 | 
| 
alpar@9
 | 
   882 
 | 
| 
alpar@9
 | 
   883         The user can choose the form of LP basis factorzation used by
 | 
| 
alpar@9
 | 
   884         the simplex method routines by specifying the folloiwng options
 | 
| 
alpar@9
 | 
   885         of glpsol: --luf, --cbg, --cgr.
 | 
| 
alpar@9
 | 
   886 
 | 
| 
alpar@9
 | 
   887 GLPK 4.16 (release date: May 05, 2007)
 | 
| 
alpar@9
 | 
   888 
 | 
| 
alpar@9
 | 
   889         A number of basic GLPK API routines, which now are in the
 | 
| 
alpar@9
 | 
   890         stable stable, were renamed to be prefixed with 'glp_'. Note
 | 
| 
alpar@9
 | 
   891         that all these routines are available via their old names
 | 
| 
alpar@9
 | 
   892         prefixed with 'lpx_' that keeps the downward compatibility with
 | 
| 
alpar@9
 | 
   893         older versions of the package.
 | 
| 
alpar@9
 | 
   894 
 | 
| 
alpar@9
 | 
   895         Three new GLPK API routines were added to the package:
 | 
| 
alpar@9
 | 
   896         glp_version, glp_term_hook, and glp_mem_usage; for more details
 | 
| 
alpar@9
 | 
   897         see a new edition of the GLPK reference manual included in the
 | 
| 
alpar@9
 | 
   898         distribution. The routine glp_version reports the actual version
 | 
| 
alpar@9
 | 
   899         of the GLPK library and also can be used (along with the header
 | 
| 
alpar@9
 | 
   900         glpk.h) in Autotools specification files to check if the GLPK
 | 
| 
alpar@9
 | 
   901         library has been installed.
 | 
| 
alpar@9
 | 
   902 
 | 
| 
alpar@9
 | 
   903         The header glpk.h was changed to conform to C++ environment.
 | 
| 
alpar@9
 | 
   904 
 | 
| 
alpar@9
 | 
   905 GLPK 4.15 (release date: Feb 18, 2007)
 | 
| 
alpar@9
 | 
   906 
 | 
| 
alpar@9
 | 
   907         Autotools specification files (configure.ac, Makefile.am) were
 | 
| 
alpar@9
 | 
   908         changed to use GNU Libtool. This allows building the static as
 | 
| 
alpar@9
 | 
   909         well as shared GLPK library.
 | 
| 
alpar@9
 | 
   910 
 | 
| 
alpar@9
 | 
   911 GLPK 4.14 (release date: Feb 05, 2007)
 | 
| 
alpar@9
 | 
   912 
 | 
| 
alpar@9
 | 
   913         Now GLPK conforms to ILP32, LLP64, and LP64 programming models
 | 
| 
alpar@9
 | 
   914         (the latter seems to be the ultimate choice regarding 64-bit
 | 
| 
alpar@9
 | 
   915         architectures). Note that GLPK itself is a 32-bit application,
 | 
| 
alpar@9
 | 
   916         and the conformity only means that the package works correctly
 | 
| 
alpar@9
 | 
   917         on all these arenae. Nevertheless, on 64-bit platforms it is
 | 
| 
alpar@9
 | 
   918         possible to use more than 4GB of memory, if necessary.
 | 
| 
alpar@9
 | 
   919 
 | 
| 
alpar@9
 | 
   920 GLPK 4.13 (release date: Nov 13, 2006)
 | 
| 
alpar@9
 | 
   921 
 | 
| 
alpar@9
 | 
   922         A tentative implementation of the "exact" simplex method based
 | 
| 
alpar@9
 | 
   923         on bignum (rational) arithmetic was included in the package.
 | 
| 
alpar@9
 | 
   924 
 | 
| 
alpar@9
 | 
   925         On API level this new feature is available through the routine
 | 
| 
alpar@9
 | 
   926         lpx_exact, which is similar to the routine lpx_simplex.
 | 
| 
alpar@9
 | 
   927 
 | 
| 
alpar@9
 | 
   928         In the solver glpsol this feature is available through two new
 | 
| 
alpar@9
 | 
   929         command-line options: --exact and --xcheck. If the '--exact'
 | 
| 
alpar@9
 | 
   930         option is specified, glpsol solves LP instance using the exact
 | 
| 
alpar@9
 | 
   931         simplex method; in case of MIP it is used to obtain optimal
 | 
| 
alpar@9
 | 
   932         solution of LP relaxation. If the --xcheck option is specified,
 | 
| 
alpar@9
 | 
   933         LP instance (or LP relaxation) is solved using the standard
 | 
| 
alpar@9
 | 
   934         (floating-point) simplex method, however, then glpsol calls the
 | 
| 
alpar@9
 | 
   935         exact simplex routine to make sure that the final LP basis is
 | 
| 
alpar@9
 | 
   936         exactly optimal, and if it is not, to perform some additional
 | 
| 
alpar@9
 | 
   937         simplex iterations in exact arithmetic.
 | 
| 
alpar@9
 | 
   938 
 | 
| 
alpar@9
 | 
   939 GLPK 4.12 (release date: Nov 08, 2006)
 | 
| 
alpar@9
 | 
   940 
 | 
| 
alpar@9
 | 
   941         A tentative implementation of some simplex method routines
 | 
| 
alpar@9
 | 
   942         based on exact (bignum) arithmetic was included in the package.
 | 
| 
alpar@9
 | 
   943         Currently these routines provide computing LU-factorization of
 | 
| 
alpar@9
 | 
   944         the basis matrix and computing components of basic solution.
 | 
| 
alpar@9
 | 
   945 
 | 
| 
alpar@9
 | 
   946         These routines were used to implement a routine, which checks
 | 
| 
alpar@9
 | 
   947         primal and dual feasibility of basic solution exactly, i.e. in
 | 
| 
alpar@9
 | 
   948         rational numbers, without round-off errors. In glpsol this
 | 
| 
alpar@9
 | 
   949         feature is available through the command-line option --xcheck.
 | 
| 
alpar@9
 | 
   950 
 | 
| 
alpar@9
 | 
   951         GLPK has its own low-level routines implementing operations on
 | 
| 
alpar@9
 | 
   952         integer and rational numbers that makes it independent on other
 | 
| 
alpar@9
 | 
   953         software packages. However, to attain a much better performance
 | 
| 
alpar@9
 | 
   954         it is highly recommended to install (before configuring GLPK)
 | 
| 
alpar@9
 | 
   955         the GNU Multiple Precision Arithmetic Library (GMP). Using GMP
 | 
| 
alpar@9
 | 
   956         makes computations 100-200 times faster.
 | 
| 
alpar@9
 | 
   957 
 | 
| 
alpar@9
 | 
   958 GLPK 4.11 (release date: Jul 25, 2006)
 | 
| 
alpar@9
 | 
   959 
 | 
| 
alpar@9
 | 
   960         Three new built-in functions in the modeling language were
 | 
| 
alpar@9
 | 
   961         implemented: card (cardinality of set), length (length of
 | 
| 
alpar@9
 | 
   962         character string), and substr (substring of character string).
 | 
| 
alpar@9
 | 
   963         Another improvement concerns the printf statement which now
 | 
| 
alpar@9
 | 
   964         allows redirecting its output to a specified file. These new
 | 
| 
alpar@9
 | 
   965         features are illustrated in example models crypto.mod and
 | 
| 
alpar@9
 | 
   966         graph.mod included in the distribution. For more details see
 | 
| 
alpar@9
 | 
   967         the document "Modeling Language GNU MathProg".
 | 
| 
alpar@9
 | 
   968 
 | 
| 
alpar@9
 | 
   969         Four batch files (along with corresponding makefiles) were
 | 
| 
alpar@9
 | 
   970         included in the distribution to simplify building GLPK under
 | 
| 
alpar@9
 | 
   971         MS Windows; see them in subdirectory 'w32'.
 | 
| 
alpar@9
 | 
   972 
 | 
| 
alpar@9
 | 
   973 GLPK 4.10 (release date: May 11, 2006)
 | 
| 
alpar@9
 | 
   974 
 | 
| 
alpar@9
 | 
   975         Cutting planes of two new classes were implemented: mixed cover
 | 
| 
alpar@9
 | 
   976         cuts and clique cuts. On API level this feature can be enabled
 | 
| 
alpar@9
 | 
   977         by setting control parameter LPX_K_USECUTS passed to the routine
 | 
| 
alpar@9
 | 
   978         lpx_intopt. In glpsol this feature is available through the
 | 
| 
alpar@9
 | 
   979         command-line options --cover and --clique. For more details see
 | 
| 
alpar@9
 | 
   980         the reference manual.
 | 
| 
alpar@9
 | 
   981 
 | 
| 
alpar@9
 | 
   982         Now the routines lpx_read_mps and lpx_read_freemps support LI
 | 
| 
alpar@9
 | 
   983         bound type. It is similar to LO, however, indicates the column
 | 
| 
alpar@9
 | 
   984         as of integer kind.
 | 
| 
alpar@9
 | 
   985 
 | 
| 
alpar@9
 | 
   986 GLPK 4.9 (release date: Jan 17, 2006)
 | 
| 
alpar@9
 | 
   987 
 | 
| 
alpar@9
 | 
   988         An advanced MIP solver was implemented. It includes:
 | 
| 
alpar@9
 | 
   989 
 | 
| 
alpar@9
 | 
   990         - basic presolving technique (removing free, singleton and
 | 
| 
alpar@9
 | 
   991           redundant rows, improving bounds of columns, removing fixed
 | 
| 
alpar@9
 | 
   992           columns, reducing constraint coefficents);
 | 
| 
alpar@9
 | 
   993 
 | 
| 
alpar@9
 | 
   994         - generating cutting planes to improve LP relaxation (currently
 | 
| 
alpar@9
 | 
   995           only Gomory's mixed integer cuts are implemented);
 | 
| 
alpar@9
 | 
   996 
 | 
| 
alpar@9
 | 
   997         - using the branch-and-bound method to solve resultant MIP;
 | 
| 
alpar@9
 | 
   998 
 | 
| 
alpar@9
 | 
   999         - recovering solution of the original MIP.
 | 
| 
alpar@9
 | 
  1000 
 | 
| 
alpar@9
 | 
  1001         The solver is available on API level via the routine lpx_intopt
 | 
| 
alpar@9
 | 
  1002         (see the reference manual). It is similar to the routine
 | 
| 
alpar@9
 | 
  1003         lpx_integer, however, does not require initial solution of LP
 | 
| 
alpar@9
 | 
  1004         relaxation.
 | 
| 
alpar@9
 | 
  1005 
 | 
| 
alpar@9
 | 
  1006         The solver is also available in the command-line utility glpsol
 | 
| 
alpar@9
 | 
  1007         via two options: --intopt (only presolving) and --cuts (assumes
 | 
| 
alpar@9
 | 
  1008         --intopt plus generating cuts).
 | 
| 
alpar@9
 | 
  1009 
 | 
| 
alpar@9
 | 
  1010         Note that efficiency of the MIP solver strongly depends on the
 | 
| 
alpar@9
 | 
  1011         internal structure of the problem to be solved. For some hard
 | 
| 
alpar@9
 | 
  1012         instances it is very efficient, but for other instances it may
 | 
| 
alpar@9
 | 
  1013         be significantly worse than the standard branch-and-bound.
 | 
| 
alpar@9
 | 
  1014 
 | 
| 
alpar@9
 | 
  1015         For some comparative benchmarks see doc/bench1.txt.
 | 
| 
alpar@9
 | 
  1016 
 | 
| 
alpar@9
 | 
  1017         Well, what else...
 | 
| 
alpar@9
 | 
  1018 
 | 
| 
alpar@9
 | 
  1019         Three built-in functions were added to MathProg: sin, cos, and
 | 
| 
alpar@9
 | 
  1020         atan (the latter allows one or two arguments).
 | 
| 
alpar@9
 | 
  1021 
 | 
| 
alpar@9
 | 
  1022         Some bugs were fixed.
 | 
| 
alpar@9
 | 
  1023 
 | 
| 
alpar@9
 | 
  1024         Several new examples in MathProg were included: color.mod
 | 
| 
alpar@9
 | 
  1025         (graph coloring problem), tsp.mod (traveling salesman problem),
 | 
| 
alpar@9
 | 
  1026         and pbn.mod (paint-by-numbers puzzle).
 | 
| 
alpar@9
 | 
  1027 
 | 
| 
alpar@9
 | 
  1028 GLPK 4.8 (release date: Jan 12, 2005)
 | 
| 
alpar@9
 | 
  1029 
 | 
| 
alpar@9
 | 
  1030         Core simplex method and interior-point method routines were
 | 
| 
alpar@9
 | 
  1031         re-implemented and now they use a new, "storage-by-rows" sparse
 | 
| 
alpar@9
 | 
  1032         matrix format (unlike previous versions where linked lists were
 | 
| 
alpar@9
 | 
  1033         used to represent sparse matrices). For details see ChangeLog.
 | 
| 
alpar@9
 | 
  1034 
 | 
| 
alpar@9
 | 
  1035         Also a minor bug was fixed in API routine lpx_read_cpxlp.
 | 
| 
alpar@9
 | 
  1036 
 | 
| 
alpar@9
 | 
  1037 GLPK 4.7 (release date: Aug 23, 2004)
 | 
| 
alpar@9
 | 
  1038 
 | 
| 
alpar@9
 | 
  1039         Now GLPK supports free MPS format. Two new API routines
 | 
| 
alpar@9
 | 
  1040         lpx_read_freemps (to read problem data in free MPS format) and
 | 
| 
alpar@9
 | 
  1041         lpx_write_freemps (to write problem data in free MPS format)
 | 
| 
alpar@9
 | 
  1042         were added. This feature is also available in the solver glpsol
 | 
| 
alpar@9
 | 
  1043         via new command-line options --freemps and --wfreemps. For more
 | 
| 
alpar@9
 | 
  1044         details see the GLPK reference manual.
 | 
| 
alpar@9
 | 
  1045 
 | 
| 
alpar@9
 | 
  1046         API routines lpx_read_cpxlp and lpx_write_cpxlp for reading and
 | 
| 
alpar@9
 | 
  1047         writing problem data in CPLEX LP format were re-implemented to
 | 
| 
alpar@9
 | 
  1048         allow long symbolic names (up to 255 characters).
 | 
| 
alpar@9
 | 
  1049 
 | 
| 
alpar@9
 | 
  1050         The following three modules were temporarily removed from the
 | 
| 
alpar@9
 | 
  1051         GLPK distribution due to licensing problems: DELI (an interface
 | 
| 
alpar@9
 | 
  1052         module to Delphi), GLPKMEX (an interface module to Matlab), and
 | 
| 
alpar@9
 | 
  1053         JNI (an interface module to Java).
 | 
| 
alpar@9
 | 
  1054 
 | 
| 
alpar@9
 | 
  1055 GLPK 4.6 (release date: Aug 04, 2004)
 | 
| 
alpar@9
 | 
  1056 
 | 
| 
alpar@9
 | 
  1057         Three new statements were implemented in the GNU MathProg
 | 
| 
alpar@9
 | 
  1058         language: solve, printf, and for. Their detailed description can
 | 
| 
alpar@9
 | 
  1059         be found in the GLPK documentation included in the distribution.
 | 
| 
alpar@9
 | 
  1060         (See also a sample model, examples/queens.mod, which illustrates
 | 
| 
alpar@9
 | 
  1061         using these new statements.)
 | 
| 
alpar@9
 | 
  1062 
 | 
| 
alpar@9
 | 
  1063         Two new API routines were added to the package: lpx_read_prob
 | 
| 
alpar@9
 | 
  1064         and lpx_write_prob. They allow reading/writing problem data in
 | 
| 
alpar@9
 | 
  1065         GNU LP low-level text format.
 | 
| 
alpar@9
 | 
  1066 
 | 
| 
alpar@9
 | 
  1067         Three new command-line options were implemented in the LP/MIP
 | 
| 
alpar@9
 | 
  1068         solver glpsol: --glp (to read problem data in GNU LP format),
 | 
| 
alpar@9
 | 
  1069         --wglp (to write problem data in GNU LP format), and --name (to
 | 
| 
alpar@9
 | 
  1070         change problem name). Now glpsol also supports processing models
 | 
| 
alpar@9
 | 
  1071         where the new statements (see above) are used.
 | 
| 
alpar@9
 | 
  1072 
 | 
| 
alpar@9
 | 
  1073         A new version of GLPKMEX, a Matlab MEX interface to GLPK, was
 | 
| 
alpar@9
 | 
  1074         included. For more details see contrib/glpkmex/ChangeLog.
 | 
| 
alpar@9
 | 
  1075 
 | 
| 
alpar@9
 | 
  1076 GLPK 4.5 (release date: Jul 19, 2004)
 | 
| 
alpar@9
 | 
  1077 
 | 
| 
alpar@9
 | 
  1078         The branch-and-bound solver was completely re-implemented.
 | 
| 
alpar@9
 | 
  1079 
 | 
| 
alpar@9
 | 
  1080         Some modifications were made in memory allocation routines that
 | 
| 
alpar@9
 | 
  1081         allows using the package on 64-bit platforms.
 | 
| 
alpar@9
 | 
  1082 
 | 
| 
alpar@9
 | 
  1083         For more details see ChangeLog.
 | 
| 
alpar@9
 | 
  1084 
 | 
| 
alpar@9
 | 
  1085 GLPK 4.4 (release date: Jan 17, 2004)
 | 
| 
alpar@9
 | 
  1086 
 | 
| 
alpar@9
 | 
  1087         All API routines were re-implemented using new data structures.
 | 
| 
alpar@9
 | 
  1088         The new implementation provides the same specifications and
 | 
| 
alpar@9
 | 
  1089         functionality of API routines as the old one, however, it has
 | 
| 
alpar@9
 | 
  1090         some important advantages, in particular:
 | 
| 
alpar@9
 | 
  1091         * linked lists are used everywhere that allows creating and
 | 
| 
alpar@9
 | 
  1092           modifying the problem object as efficiently as possible
 | 
| 
alpar@9
 | 
  1093         * all data stored in the problem object are non-scaled (even if
 | 
| 
alpar@9
 | 
  1094           the internal scaling is used) that prevents distortion of the
 | 
| 
alpar@9
 | 
  1095           original problem data
 | 
| 
alpar@9
 | 
  1096         * solution components obtained by the solver remain available
 | 
| 
alpar@9
 | 
  1097           even if the problem object has been modified
 | 
| 
alpar@9
 | 
  1098         * no solver-specific data are used in the new data structures
 | 
| 
alpar@9
 | 
  1099           that allows attaching any external lp/mip solver using GLPK
 | 
| 
alpar@9
 | 
  1100           API as an uniform interface
 | 
| 
alpar@9
 | 
  1101         Note that some API routines became obsolete being replaced by
 | 
| 
alpar@9
 | 
  1102         new, more convenient routines. These obsolete routines are kept
 | 
| 
alpar@9
 | 
  1103         for backward compatibility, however, they will be removed in
 | 
| 
alpar@9
 | 
  1104         the future. For more details please see ChangeLog and the GLPK
 | 
| 
alpar@9
 | 
  1105         Reference Manual.
 | 
| 
alpar@9
 | 
  1106 
 | 
| 
alpar@9
 | 
  1107         New edition of the GLPK Reference Manual was included in the
 | 
| 
alpar@9
 | 
  1108         distribution.
 | 
| 
alpar@9
 | 
  1109 
 | 
| 
alpar@9
 | 
  1110         GLPKMEX, a Matlab MEX interface to GLPK package, contributed by
 | 
| 
alpar@9
 | 
  1111         Nicolo Giorgetti <giorgetti@dii.unisi.it> was included in the
 | 
| 
alpar@9
 | 
  1112         distribution.
 | 
| 
alpar@9
 | 
  1113 
 | 
| 
alpar@9
 | 
  1114         GLPK FAQ contributed by Harley Mackenzie <hjm@bigpond.com> was
 | 
| 
alpar@9
 | 
  1115         included in the distribution.
 | 
| 
alpar@9
 | 
  1116 
 | 
| 
alpar@9
 | 
  1117 GLPK 4.3 (release date: Dec 12, 2003)
 | 
| 
alpar@9
 | 
  1118 
 | 
| 
alpar@9
 | 
  1119         The bug, due to which the standard math library is not linked
 | 
| 
alpar@9
 | 
  1120         on building the package on some platforms, was fixed.
 | 
| 
alpar@9
 | 
  1121 
 | 
| 
alpar@9
 | 
  1122         The following new built-in functions were added to the MathProg
 | 
| 
alpar@9
 | 
  1123         language: round, trunc, Irand224, Uniform01, Uniform, Normal01,
 | 
| 
alpar@9
 | 
  1124         Normal. For details see the language description.
 | 
| 
alpar@9
 | 
  1125 
 | 
| 
alpar@9
 | 
  1126         The MathProg syntax was changed to allow writing 'subj to' that
 | 
| 
alpar@9
 | 
  1127         means 'subject to'.
 | 
| 
alpar@9
 | 
  1128 
 | 
| 
alpar@9
 | 
  1129         The new api routine lpx_get_ray_info was added. It is intended
 | 
| 
alpar@9
 | 
  1130         to determine which (non-basic) variable causes unboundness. For
 | 
| 
alpar@9
 | 
  1131         details see the reference manual.
 | 
| 
alpar@9
 | 
  1132 
 | 
| 
alpar@9
 | 
  1133         The module glpmps.c was changed to avoid compilation errors on
 | 
| 
alpar@9
 | 
  1134         building the package on Mac OS X.
 | 
| 
alpar@9
 | 
  1135 
 | 
| 
alpar@9
 | 
  1136         Several typos was fixed and some new material was added to the
 | 
| 
alpar@9
 | 
  1137         GLPK documentation.
 | 
| 
alpar@9
 | 
  1138 
 | 
| 
alpar@9
 | 
  1139 GLPK 4.2 (release date: Nov 14, 2003)
 | 
| 
alpar@9
 | 
  1140 
 | 
| 
alpar@9
 | 
  1141         A preliminary implementation of the Integer Optimization Suite
 | 
| 
alpar@9
 | 
  1142         (IOS) was included in the package. The Branch-and-Cut Framework
 | 
| 
alpar@9
 | 
  1143         being completely superseded by IOS was removed from the package.
 | 
| 
alpar@9
 | 
  1144 
 | 
| 
alpar@9
 | 
  1145         New API routine lpx_print_sens_bnds intended for bounds
 | 
| 
alpar@9
 | 
  1146         sensitivity analysis was contributed to GLPK by Brady Hunsaker
 | 
| 
alpar@9
 | 
  1147         <hunsaker@engr.pitt.edu>. This function is also available in
 | 
| 
alpar@9
 | 
  1148         the solver glpsol (via command-line option --bounds).
 | 
| 
alpar@9
 | 
  1149 
 | 
| 
alpar@9
 | 
  1150         An improved version of GLPK JNI (Java Native Interface) was
 | 
| 
alpar@9
 | 
  1151         contributed by Chris Rosebrugh <cpr@pobox.com>.
 | 
| 
alpar@9
 | 
  1152 
 | 
| 
alpar@9
 | 
  1153         GLPK DELI (Delphi Interface) was contributed by Ivo van Baren
 | 
| 
alpar@9
 | 
  1154         <i.van.baren@freeler.nl>.
 | 
| 
alpar@9
 | 
  1155 
 | 
| 
alpar@9
 | 
  1156         Several makefiles were added to allow compiling GLPK on some
 | 
| 
alpar@9
 | 
  1157         non-GNU 32-bit platforms:
 | 
| 
alpar@9
 | 
  1158         * Windows single-threaded static library, Visual C++ 6.0
 | 
| 
alpar@9
 | 
  1159         * Windows multi-threaded dynamic library, Visual C++ 6.0
 | 
| 
alpar@9
 | 
  1160         * Windows single-threaded static library, Borland C++ 5.2
 | 
| 
alpar@9
 | 
  1161         * DOS single-threaded static library, Digital Mars C++ 7.50
 | 
| 
alpar@9
 | 
  1162 
 | 
| 
alpar@9
 | 
  1163         And, of course, some bugs were fixed.
 | 
| 
alpar@9
 | 
  1164 
 | 
| 
alpar@9
 | 
  1165         For more details see ChangeLog.
 | 
| 
alpar@9
 | 
  1166 
 | 
| 
alpar@9
 | 
  1167 GLPK 4.1 (release date: Aug 23, 2003)
 | 
| 
alpar@9
 | 
  1168 
 | 
| 
alpar@9
 | 
  1169         Some improvements were made in the lp/mip solver routines and
 | 
| 
alpar@9
 | 
  1170         several bugs were fixed in the model translator.
 | 
| 
alpar@9
 | 
  1171 
 | 
| 
alpar@9
 | 
  1172         For more details see ChangeLog.
 | 
| 
alpar@9
 | 
  1173 
 | 
| 
alpar@9
 | 
  1174 GLPK 4.0 (release date: May 06, 2003)
 | 
| 
alpar@9
 | 
  1175 
 | 
| 
alpar@9
 | 
  1176         Now GLPK supports the GNU MathProg modeling language, which is
 | 
| 
alpar@9
 | 
  1177         a subset of the AMPL modeling language.
 | 
| 
alpar@9
 | 
  1178 
 | 
| 
alpar@9
 | 
  1179         The document "GLPK: Modeling Language GNU MathProg" included in
 | 
| 
alpar@9
 | 
  1180         the distribution is a complete description of GNU MathProg. (See
 | 
| 
alpar@9
 | 
  1181         the files lang.latex, lang.dvi, and lang.ps in the subdirectory
 | 
| 
alpar@9
 | 
  1182         'doc'. See also some examples in the subdirectory 'sample'.)
 | 
| 
alpar@9
 | 
  1183 
 | 
| 
alpar@9
 | 
  1184         New version of the solver glpsol, which supports models written
 | 
| 
alpar@9
 | 
  1185         in GNU MathProg, was implemented. (Brief instructions how to use
 | 
| 
alpar@9
 | 
  1186         glpsol can be found in the GNU MathProg documentation.)
 | 
| 
alpar@9
 | 
  1187 
 | 
| 
alpar@9
 | 
  1188         The GLPK/L modeling language is no more supported. The reason is
 | 
| 
alpar@9
 | 
  1189         that GNU MathProg being much more powerful completely supersedes
 | 
| 
alpar@9
 | 
  1190         all features of GLPK/L.
 | 
| 
alpar@9
 | 
  1191 
 | 
| 
alpar@9
 | 
  1192 GLPK 3.3 (release date: Mar 25, 2003)
 | 
| 
alpar@9
 | 
  1193 
 | 
| 
alpar@9
 | 
  1194         LP PRESOLVER
 | 
| 
alpar@9
 | 
  1195         ------------
 | 
| 
alpar@9
 | 
  1196 
 | 
| 
alpar@9
 | 
  1197         Now the routine lpx_simplex (which is a driver to the simplex
 | 
| 
alpar@9
 | 
  1198         method for solving LP) is provided with the built-in LP
 | 
| 
alpar@9
 | 
  1199         presolver, which is a program that transforms the original LP
 | 
| 
alpar@9
 | 
  1200         problem to an equivalent LP problem, which may be easier for
 | 
| 
alpar@9
 | 
  1201         solving with the simplex method than the original one. Once the
 | 
| 
alpar@9
 | 
  1202         transformed LP has been solver, the presolver transforms its
 | 
| 
alpar@9
 | 
  1203         basic solution back to a corresponding basic solution of the
 | 
| 
alpar@9
 | 
  1204         original problem. For details about this feature please see the
 | 
| 
alpar@9
 | 
  1205         GLPK reference manual.
 | 
| 
alpar@9
 | 
  1206 
 | 
| 
alpar@9
 | 
  1207         Currently the LP presolver implements the following features:
 | 
| 
alpar@9
 | 
  1208         * removing empty rows;
 | 
| 
alpar@9
 | 
  1209         * removing empty columns;
 | 
| 
alpar@9
 | 
  1210         * removing free rows;
 | 
| 
alpar@9
 | 
  1211         * removing fixed columns;
 | 
| 
alpar@9
 | 
  1212         * removing row singletons, which have the form of equations;
 | 
| 
alpar@9
 | 
  1213         * removing row singletons, which have the form of inequalities;
 | 
| 
alpar@9
 | 
  1214         * removing column singletons, which are implied slack variables;
 | 
| 
alpar@9
 | 
  1215         * fixing and removing column singletons, which are implied free
 | 
| 
alpar@9
 | 
  1216           variables;
 | 
| 
alpar@9
 | 
  1217         * removing forcing rows that involves fixing and removing the
 | 
| 
alpar@9
 | 
  1218           corresponding columns;
 | 
| 
alpar@9
 | 
  1219         * checking for primal and dual infeasibilities.
 | 
| 
alpar@9
 | 
  1220 
 | 
| 
alpar@9
 | 
  1221         The LP presolver is also used by default in the stand-alone
 | 
| 
alpar@9
 | 
  1222         program glpsol. In order *not* to use it, the option --nopresol
 | 
| 
alpar@9
 | 
  1223         should be specified in the command-line.
 | 
| 
alpar@9
 | 
  1224 
 | 
| 
alpar@9
 | 
  1225         CHANGES IN GLPK/L
 | 
| 
alpar@9
 | 
  1226         -----------------
 | 
| 
alpar@9
 | 
  1227 
 | 
| 
alpar@9
 | 
  1228         The syntax and semantics of the GLPK/L modeling language was
 | 
| 
alpar@9
 | 
  1229         changed to allow declaration of "interval" sets. This means that
 | 
| 
alpar@9
 | 
  1230         now the user can declare a set, for example, as:
 | 
| 
alpar@9
 | 
  1231 
 | 
| 
alpar@9
 | 
  1232            set task = [8:11];
 | 
| 
alpar@9
 | 
  1233 
 | 
| 
alpar@9
 | 
  1234         that is exactly equivalent to the following declaration:
 | 
| 
alpar@9
 | 
  1235 
 | 
| 
alpar@9
 | 
  1236            set task = (task_8, task_9, task_10, task_11);
 | 
| 
alpar@9
 | 
  1237 
 | 
| 
alpar@9
 | 
  1238         For details see the language description.
 | 
| 
alpar@9
 | 
  1239 
 | 
| 
alpar@9
 | 
  1240         JAVA INTERFACE
 | 
| 
alpar@9
 | 
  1241         --------------
 | 
| 
alpar@9
 | 
  1242 
 | 
| 
alpar@9
 | 
  1243         Now GLPK includes the package GLPK JNI (Java Native Interface)
 | 
| 
alpar@9
 | 
  1244         that implements Java binding for GLPK. It allows Java programs
 | 
| 
alpar@9
 | 
  1245         to utilize GLPK in solving LP and MIP problems. For details see
 | 
| 
alpar@9
 | 
  1246         a brief user's guide in the subdirectory contrib/java-binding.
 | 
| 
alpar@9
 | 
  1247         This package was developed and programmed by Yuri Victorovich
 | 
| 
alpar@9
 | 
  1248         <yuri@gjt.org>, who contributed it to GLPK.
 | 
| 
alpar@9
 | 
  1249 
 | 
| 
alpar@9
 | 
  1250 GLPK 3.2.4 (release date: Feb 18, 2003)
 | 
| 
alpar@9
 | 
  1251 
 | 
| 
alpar@9
 | 
  1252         This is a bug-fix release. For details see ChangeLog.
 | 
| 
alpar@9
 | 
  1253 
 | 
| 
alpar@9
 | 
  1254 GLPK 3.2.3 (release date: Nov 11, 2002)
 | 
| 
alpar@9
 | 
  1255 
 | 
| 
alpar@9
 | 
  1256         A new implementation of the api routine lpx_integer which now
 | 
| 
alpar@9
 | 
  1257         is based on the b&b driver (which is based on the implicit
 | 
| 
alpar@9
 | 
  1258         enumeration suite) was included in the package. This new
 | 
| 
alpar@9
 | 
  1259         implementation has exactly the same functionality as the old
 | 
| 
alpar@9
 | 
  1260         version, so all changes are transparent to the api user.
 | 
| 
alpar@9
 | 
  1261 
 | 
| 
alpar@9
 | 
  1262         Four new api routines were included in the package:
 | 
| 
alpar@9
 | 
  1263         lpx_check_kkt checks Karush-Kuhn-Tucker optmality conditions;
 | 
| 
alpar@9
 | 
  1264         lpx_read_bas reads predifined basis in MPS format;
 | 
| 
alpar@9
 | 
  1265         lpx_write_bas writes current basis in MPS format;
 | 
| 
alpar@9
 | 
  1266         lpx_write_lpt writes problem data in CPLEX LP format.
 | 
| 
alpar@9
 | 
  1267 
 | 
| 
alpar@9
 | 
  1268         Also other minor improvements were made (for details see the
 | 
| 
alpar@9
 | 
  1269         file 'ChangeLog').
 | 
| 
alpar@9
 | 
  1270 
 | 
| 
alpar@9
 | 
  1271 GLPK 3.2.2 (release date: Oct 14, 2002)
 | 
| 
alpar@9
 | 
  1272 
 | 
| 
alpar@9
 | 
  1273         The api routine lpx_read_lpt was included in the package. It
 | 
| 
alpar@9
 | 
  1274         is similar to the routine lpx_read_mps and intended to read
 | 
| 
alpar@9
 | 
  1275         LP/MIP data prepared in CPLEX LP format. Description of this
 | 
| 
alpar@9
 | 
  1276         format is given in the GLPK reference manual, a new edition of
 | 
| 
alpar@9
 | 
  1277         which was also included in the distribution (see the files
 | 
| 
alpar@9
 | 
  1278         'refman.latex', 'refman.dvi', 'refman.ps' in the subdirectory
 | 
| 
alpar@9
 | 
  1279         'doc'). In order to use data files in CPLEX LP format with the
 | 
| 
alpar@9
 | 
  1280         solver glpsol the option '--lpt' should be specified in the
 | 
| 
alpar@9
 | 
  1281         command line.
 | 
| 
alpar@9
 | 
  1282 
 | 
| 
alpar@9
 | 
  1283         Several bugs were fixed and some minor improvements were made
 | 
| 
alpar@9
 | 
  1284         (for details see the file 'ChangeLog').
 | 
| 
alpar@9
 | 
  1285 
 | 
| 
alpar@9
 | 
  1286 GLPK 3.2.1 (release date: Aug 12, 2002)
 | 
| 
alpar@9
 | 
  1287 
 | 
| 
alpar@9
 | 
  1288         Now GLPK includes a preliminary implementation of the
 | 
| 
alpar@9
 | 
  1289         branch-and-cut framework, which is a set of data structures and
 | 
| 
alpar@9
 | 
  1290         routines intended for developing branch-and-cut methods for
 | 
| 
alpar@9
 | 
  1291         solving mixed-integer and combinatorial optimization problems.
 | 
| 
alpar@9
 | 
  1292 
 | 
| 
alpar@9
 | 
  1293         Detailed decsription of the branch-and-cut framework is given in
 | 
| 
alpar@9
 | 
  1294         the document "GLPK: A Preliminary Implementation of the
 | 
| 
alpar@9
 | 
  1295         Branch-And-Cut Framework" included in the distribution (see the
 | 
| 
alpar@9
 | 
  1296         file 'brcut.txt' in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1297 
 | 
| 
alpar@9
 | 
  1298         In order to illustrate how the GLPK branch-and-cut framework
 | 
| 
alpar@9
 | 
  1299         can be used for solving a particular optimization problem there
 | 
| 
alpar@9
 | 
  1300         is an example included in the package. This is a stand-alone
 | 
| 
alpar@9
 | 
  1301         program, TSPSOL, which is intended for solving to optimality the
 | 
| 
alpar@9
 | 
  1302         symmetric Traveling Salesman Problem (TSP), a classical problem
 | 
| 
alpar@9
 | 
  1303         of the combinatorial optimization (see the file 'tspsol.c' in
 | 
| 
alpar@9
 | 
  1304         the subdirectory 'sample').
 | 
| 
alpar@9
 | 
  1305 
 | 
| 
alpar@9
 | 
  1306 GLPK 3.2 (release date: Jul 15, 2002)
 | 
| 
alpar@9
 | 
  1307 
 | 
| 
alpar@9
 | 
  1308         New edition of the document "GLPK: Reference Manual" was
 | 
| 
alpar@9
 | 
  1309         included (see the files 'refman.latex', 'refman.dvi', and
 | 
| 
alpar@9
 | 
  1310         'refman.ps' in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1311 
 | 
| 
alpar@9
 | 
  1312         New edition of the document "GLPK: Modeling Language GLPK/L" was
 | 
| 
alpar@9
 | 
  1313         included (see the files 'lang.latex', 'lang.dvi', and 'lang.ps'
 | 
| 
alpar@9
 | 
  1314         in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1315 
 | 
| 
alpar@9
 | 
  1316         The following new API routines were added to the package:
 | 
| 
alpar@9
 | 
  1317 
 | 
| 
alpar@9
 | 
  1318         lpx_transform_row (transform explicitly specified row);
 | 
| 
alpar@9
 | 
  1319         lpx_transform_col (transform explicitly specified column);
 | 
| 
alpar@9
 | 
  1320         lpx_prim_ratio_test (perform primal ratio test);
 | 
| 
alpar@9
 | 
  1321         lpx_dual_ratio_test (perform dual ratio test);
 | 
| 
alpar@9
 | 
  1322         lpx_interior (solve LP problem using interior point method);
 | 
| 
alpar@9
 | 
  1323         lpx_get_ips_stat (query status of interior point solution);
 | 
| 
alpar@9
 | 
  1324         lpx_get_ips_row (obtain row interior point solution);
 | 
| 
alpar@9
 | 
  1325         lpx_get_ips_col (obtain column interior point solution);
 | 
| 
alpar@9
 | 
  1326         lpx_get_ips_obj (obtain interior point value of obj.func.);
 | 
| 
alpar@9
 | 
  1327         lpx_read_lpm (read LP/MIP model written in GLPK/L);
 | 
| 
alpar@9
 | 
  1328         lpx_write_mps (write problem data using MPS format);
 | 
| 
alpar@9
 | 
  1329         lpx_print_ips (print interior point solution).
 | 
| 
alpar@9
 | 
  1330 
 | 
| 
alpar@9
 | 
  1331         Detailed description of all these new API routines are given in
 | 
| 
alpar@9
 | 
  1332         the new edition of the reference manual.
 | 
| 
alpar@9
 | 
  1333 
 | 
| 
alpar@9
 | 
  1334         New version of the stand-alone solver glpsol (which is based on
 | 
| 
alpar@9
 | 
  1335         the new API) was implemented.
 | 
| 
alpar@9
 | 
  1336 
 | 
| 
alpar@9
 | 
  1337         So long as the new API (introduced in glpk 3.0) now provides
 | 
| 
alpar@9
 | 
  1338         all the functions, which were provided by the old API, the old
 | 
| 
alpar@9
 | 
  1339         API routines were removed from the package at all.
 | 
| 
alpar@9
 | 
  1340 
 | 
| 
alpar@9
 | 
  1341 GLPK 3.1 (release date: May 27, 2002)
 | 
| 
alpar@9
 | 
  1342 
 | 
| 
alpar@9
 | 
  1343         A preliminary implementation of new API routines was completed
 | 
| 
alpar@9
 | 
  1344         and included in the package.
 | 
| 
alpar@9
 | 
  1345 
 | 
| 
alpar@9
 | 
  1346         These new API routines provide much more flexible interaction
 | 
| 
alpar@9
 | 
  1347         between the application program, LP/MIP problem instances, and
 | 
| 
alpar@9
 | 
  1348         solver routines. Based on completely changed data structures
 | 
| 
alpar@9
 | 
  1349         they are, however, similar to the API routines and provide the
 | 
| 
alpar@9
 | 
  1350         same functionality. Please note that three routines, namely,
 | 
| 
alpar@9
 | 
  1351         solving LPs using interior point method, reading model written
 | 
| 
alpar@9
 | 
  1352         in the GLPK/L modeling language, and writing problem data in
 | 
| 
alpar@9
 | 
  1353         the MPS format, are not implemented in the new API, however,
 | 
| 
alpar@9
 | 
  1354         these routines are planned to be implemented in the next version
 | 
| 
alpar@9
 | 
  1355         of the package.
 | 
| 
alpar@9
 | 
  1356 
 | 
| 
alpar@9
 | 
  1357         A description of the new API routines is given in the document
 | 
| 
alpar@9
 | 
  1358         "GLPK Reference Manual", a draft edition of which is included
 | 
| 
alpar@9
 | 
  1359         in the package (see the files 'refman.latex', 'refman.dvi', and
 | 
| 
alpar@9
 | 
  1360         'refman.ps' in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1361 
 | 
| 
alpar@9
 | 
  1362         Although the old API routines are kept in the package, they are
 | 
| 
alpar@9
 | 
  1363         no longer supported and will be removed in the future.
 | 
| 
alpar@9
 | 
  1364 
 | 
| 
alpar@9
 | 
  1365 GLPK 3.0.8 (release date: May 13, 2002)
 | 
| 
alpar@9
 | 
  1366 
 | 
| 
alpar@9
 | 
  1367         A preliminary implementation of new API routines was included
 | 
| 
alpar@9
 | 
  1368         in the package. These new API routines are intended to provide
 | 
| 
alpar@9
 | 
  1369         much more flexible interaction between the application program,
 | 
| 
alpar@9
 | 
  1370         LP/MIP problem and solver routines. See the document "New GLPK
 | 
| 
alpar@9
 | 
  1371         API Routines" (the file 'newapi.txt' in the subdirectory 'doc')
 | 
| 
alpar@9
 | 
  1372         also included in the package.
 | 
| 
alpar@9
 | 
  1373 
 | 
| 
alpar@9
 | 
  1374         The api routines glp_simplex2, glp_call_ipm1, glp_call_bbm1 were
 | 
| 
alpar@9
 | 
  1375         renamed, respectively, to glp_simplex, glp_interior, glp_integer
 | 
| 
alpar@9
 | 
  1376         in order to reflect changes in implementation. The api routines
 | 
| 
alpar@9
 | 
  1377         glp_call_rsm1, glp_simplex1, glp_pivot_in, glp_pivout_out were
 | 
| 
alpar@9
 | 
  1378         removed from the package since they are completely supreseded by
 | 
| 
alpar@9
 | 
  1379         the new API routines (however, these routines still can be found
 | 
| 
alpar@9
 | 
  1380         in the subdirectory 'oldsrc'). Please consult a new edition of
 | 
| 
alpar@9
 | 
  1381         the document "GLPK User's Guide" about all these changes in the
 | 
| 
alpar@9
 | 
  1382         existing api routines.
 | 
| 
alpar@9
 | 
  1383 
 | 
| 
alpar@9
 | 
  1384         The document "GLPK Library Reference" was removed from the
 | 
| 
alpar@9
 | 
  1385         package (into the subdirectory 'oldsrc') since it describes the
 | 
| 
alpar@9
 | 
  1386         obsolete library routines, most of which are no longer used.
 | 
| 
alpar@9
 | 
  1387 
 | 
| 
alpar@9
 | 
  1388 GLPK 3.0.7 (release date: Apr 22, 2002)
 | 
| 
alpar@9
 | 
  1389 
 | 
| 
alpar@9
 | 
  1390         A new, more efficient implementation of the primal/dual simplex
 | 
| 
alpar@9
 | 
  1391         method was included in the package. Due to some improvements the
 | 
| 
alpar@9
 | 
  1392         simplex-based solver allows solving many LP problems faster and
 | 
| 
alpar@9
 | 
  1393         provides more reliable results. Note that the new implementation
 | 
| 
alpar@9
 | 
  1394         is currently incomplete and available only via the api routine
 | 
| 
alpar@9
 | 
  1395         glp_simplex2.
 | 
| 
alpar@9
 | 
  1396 
 | 
| 
alpar@9
 | 
  1397         All the changes are transparent on API level.
 | 
| 
alpar@9
 | 
  1398 
 | 
| 
alpar@9
 | 
  1399 GLPK 3.0.6 (release date: Mar 28, 2002)
 | 
| 
alpar@9
 | 
  1400 
 | 
| 
alpar@9
 | 
  1401         New version of LU-factorization and basis maintenance routines
 | 
| 
alpar@9
 | 
  1402         (based on Forrest-Tomlin updating technique) was implemented.
 | 
| 
alpar@9
 | 
  1403         Since these new routines functionally supersede some routines
 | 
| 
alpar@9
 | 
  1404         (which implement other forms of the basis matrix) and make them
 | 
| 
alpar@9
 | 
  1405         obsolete, the latter were removed from the package (they still
 | 
| 
alpar@9
 | 
  1406         can be found in the subdirectory 'oldsrc').
 | 
| 
alpar@9
 | 
  1407 
 | 
| 
alpar@9
 | 
  1408         All the changes are transparent on API level.
 | 
| 
alpar@9
 | 
  1409 
 | 
| 
alpar@9
 | 
  1410 GLPK 3.0.5 (release date: Jan 29, 2002)
 | 
| 
alpar@9
 | 
  1411 
 | 
| 
alpar@9
 | 
  1412         New edition of the document "GLPK User's Guide" was included in
 | 
| 
alpar@9
 | 
  1413         the distribution. Now it describes all additional API routines,
 | 
| 
alpar@9
 | 
  1414         which were recently added to the package.
 | 
| 
alpar@9
 | 
  1415 
 | 
| 
alpar@9
 | 
  1416         Structure of the package was re-organized in order to make its
 | 
| 
alpar@9
 | 
  1417         maintenance easier (all small files in the subdurectory 'source'
 | 
| 
alpar@9
 | 
  1418         were merged in bigger units). These changes are transparent for
 | 
| 
alpar@9
 | 
  1419         the user.
 | 
| 
alpar@9
 | 
  1420 
 | 
| 
alpar@9
 | 
  1421 GLPK 3.0.4 (release date: Dec 10, 2001)
 | 
| 
alpar@9
 | 
  1422 
 | 
| 
alpar@9
 | 
  1423         A new, more efficient implementation of the two-phase primal
 | 
| 
alpar@9
 | 
  1424         simplex method was included in the package. Due to some new
 | 
| 
alpar@9
 | 
  1425         features (an advanced initial basis, projected steepest edge,
 | 
| 
alpar@9
 | 
  1426         recursive updating values and reduced costs) the new LP solver
 | 
| 
alpar@9
 | 
  1427         is faster and numerically more stable than the old one.
 | 
| 
alpar@9
 | 
  1428 
 | 
| 
alpar@9
 | 
  1429         The new LP solver is available as API routine glp_simplex2 and
 | 
| 
alpar@9
 | 
  1430         has the same purpose as API routine glp_call_rsm1. For detailed
 | 
| 
alpar@9
 | 
  1431         specification see the file 'newapi.txt' in the directory 'doc'.
 | 
| 
alpar@9
 | 
  1432 
 | 
| 
alpar@9
 | 
  1433         Now the new LP solver is also used by default to solve an
 | 
| 
alpar@9
 | 
  1434         initial LP problem in the branch-and-bound routine glp_call_bbm1
 | 
| 
alpar@9
 | 
  1435         instead the routine rsm1_driver. Note that the branch-and-bound
 | 
| 
alpar@9
 | 
  1436         procedure itself is still based on rsm1_driver.
 | 
| 
alpar@9
 | 
  1437 
 | 
| 
alpar@9
 | 
  1438         The new LP solver is also used as default solver in GLPSOL for
 | 
| 
alpar@9
 | 
  1439         solving LP and MIP problems. In order to choose the old solver
 | 
| 
alpar@9
 | 
  1440         the option '--old-sim' can be specified in the command line.
 | 
| 
alpar@9
 | 
  1441 
 | 
| 
alpar@9
 | 
  1442 GLPK 3.0.3 (release date: Oct 03, 2001)
 | 
| 
alpar@9
 | 
  1443 
 | 
| 
alpar@9
 | 
  1444         Some minor changes were made in the simplex method routines in
 | 
| 
alpar@9
 | 
  1445         order to improve numerical stability of the method.
 | 
| 
alpar@9
 | 
  1446 
 | 
| 
alpar@9
 | 
  1447 GLPK 3.0.2 (release date: Sep 24, 2001)
 | 
| 
alpar@9
 | 
  1448 
 | 
| 
alpar@9
 | 
  1449         A new implementation of the basis maintaining routines was
 | 
| 
alpar@9
 | 
  1450         included in the package. These routines, which are based on so
 | 
| 
alpar@9
 | 
  1451         called FHV-factorization (a variety of LU-factorization) of the
 | 
| 
alpar@9
 | 
  1452         basis matrix and Gustavson's data structures, allows performing
 | 
| 
alpar@9
 | 
  1453         the main operations faster at the expense of some worsening
 | 
| 
alpar@9
 | 
  1454         numerical accuracy.
 | 
| 
alpar@9
 | 
  1455 
 | 
| 
alpar@9
 | 
  1456         AFI (Advanced Form of the Inverse), which is the form of the
 | 
| 
alpar@9
 | 
  1457         basis matrix based on FHV-factorization, is available via the
 | 
| 
alpar@9
 | 
  1458         parameter form = 3 (on API level) or via the option --afi (in
 | 
| 
alpar@9
 | 
  1459         GLPSOL solver).
 | 
| 
alpar@9
 | 
  1460 
 | 
| 
alpar@9
 | 
  1461 GLPK 3.0.1 (release date: Aug 01, 2001)
 | 
| 
alpar@9
 | 
  1462 
 | 
| 
alpar@9
 | 
  1463         Old GLPK API routines have been removed from the package.
 | 
| 
alpar@9
 | 
  1464 
 | 
| 
alpar@9
 | 
  1465         New GLPK API routines were added:
 | 
| 
alpar@9
 | 
  1466 
 | 
| 
alpar@9
 | 
  1467         - scaling routines;
 | 
| 
alpar@9
 | 
  1468 
 | 
| 
alpar@9
 | 
  1469         - a routine for writing problem data in MPS format;
 | 
| 
alpar@9
 | 
  1470 
 | 
| 
alpar@9
 | 
  1471         - a comprehensive driver to the simplex method;
 | 
| 
alpar@9
 | 
  1472 
 | 
| 
alpar@9
 | 
  1473         - basis maintaining routines.
 | 
| 
alpar@9
 | 
  1474 
 | 
| 
alpar@9
 | 
  1475         A description of the new API routines is given in the document
 | 
| 
alpar@9
 | 
  1476         "Additional GLPK API Routines". This document is included into
 | 
| 
alpar@9
 | 
  1477         the distribution in plain text format (see the file 'newapi.txt'
 | 
| 
alpar@9
 | 
  1478         in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1479 
 | 
| 
alpar@9
 | 
  1480         Now the distribution includes a non-trivial example of using
 | 
| 
alpar@9
 | 
  1481         GLPK as a base LP solver for Concorde, a well known program that
 | 
| 
alpar@9
 | 
  1482         solves Traveling Salesman Problem (TSP). For further details see
 | 
| 
alpar@9
 | 
  1483         comments in the file 'sample/lpglpk30.c'.
 | 
| 
alpar@9
 | 
  1484 
 | 
| 
alpar@9
 | 
  1485 GLPK 3.0 (release date: Jul 19, 2001)
 | 
| 
alpar@9
 | 
  1486 
 | 
| 
alpar@9
 | 
  1487         Now GLPK is provided with new API, which being more flexible
 | 
| 
alpar@9
 | 
  1488         can be used in more complex algorithmic schemes.
 | 
| 
alpar@9
 | 
  1489 
 | 
| 
alpar@9
 | 
  1490         New edition of the document "GLPK User's Guide" is included in
 | 
| 
alpar@9
 | 
  1491         the distribution. Now it completely corresponds to the new GLPK
 | 
| 
alpar@9
 | 
  1492         API routines.
 | 
| 
alpar@9
 | 
  1493 
 | 
| 
alpar@9
 | 
  1494         Old API routines are not removed yet from the package, however
 | 
| 
alpar@9
 | 
  1495         they became obsolete and therefore should not be used. Since now
 | 
| 
alpar@9
 | 
  1496         the header glpk.h corresponds to new API, in order to compile
 | 
| 
alpar@9
 | 
  1497         existing programs that use old GLPK API routines the statement
 | 
| 
alpar@9
 | 
  1498 
 | 
| 
alpar@9
 | 
  1499         #define GLP_OLD_API
 | 
| 
alpar@9
 | 
  1500 
 | 
| 
alpar@9
 | 
  1501         should be inserted before the statement
 | 
| 
alpar@9
 | 
  1502 
 | 
| 
alpar@9
 | 
  1503         #include "glpk.h"
 | 
| 
alpar@9
 | 
  1504 
 | 
| 
alpar@9
 | 
  1505 GLPK 2.4.1 (release date: Jun 14, 2001)
 | 
| 
alpar@9
 | 
  1506 
 | 
| 
alpar@9
 | 
  1507         The document "Modeling language GLPK/L" is included into the
 | 
| 
alpar@9
 | 
  1508         distribution in texinfo format.
 | 
| 
alpar@9
 | 
  1509 
 | 
| 
alpar@9
 | 
  1510         New edition of the document "GLPK User's Guide" is included in
 | 
| 
alpar@9
 | 
  1511         the distribution. Now it describes all additional API routines
 | 
| 
alpar@9
 | 
  1512         which were recently added to the package.
 | 
| 
alpar@9
 | 
  1513 
 | 
| 
alpar@9
 | 
  1514 GLPK 2.4 (release date: May 10, 2001)
 | 
| 
alpar@9
 | 
  1515 
 | 
| 
alpar@9
 | 
  1516         Now GLPK includes an implementation of a preliminary version
 | 
| 
alpar@9
 | 
  1517         of the GLPK/L modeling language. This language is intended for
 | 
| 
alpar@9
 | 
  1518         writing mathematcal programming models. The name GLPK/L is
 | 
| 
alpar@9
 | 
  1519         derived from GNU Linear Programming Kit Language.
 | 
| 
alpar@9
 | 
  1520 
 | 
| 
alpar@9
 | 
  1521         A brief description of the GLPK/L language is given in the
 | 
| 
alpar@9
 | 
  1522         document "GLPK/L Modeling Language: A Brief Description". This
 | 
| 
alpar@9
 | 
  1523         document is included into the distribution in plain text format
 | 
| 
alpar@9
 | 
  1524         (see the file 'language.txt' in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1525 
 | 
| 
alpar@9
 | 
  1526         The language processor (which is a program that analyzes model
 | 
| 
alpar@9
 | 
  1527         description written in GLPK/L and translates it to internal data
 | 
| 
alpar@9
 | 
  1528         structures) is available as the GLPK API routine.
 | 
| 
alpar@9
 | 
  1529 
 | 
| 
alpar@9
 | 
  1530         The stand-alone solver GLPSOL now is able: a) to process model
 | 
| 
alpar@9
 | 
  1531         descriptions written in the GLPK/L language; b) to solve pure LP
 | 
| 
alpar@9
 | 
  1532         problems using the interior point method (therefore the program
 | 
| 
alpar@9
 | 
  1533         GLPIPM was removed from the package).
 | 
| 
alpar@9
 | 
  1534 
 | 
| 
alpar@9
 | 
  1535 GLPK 2.3 (release date: Apr 09, 2001)
 | 
| 
alpar@9
 | 
  1536 
 | 
| 
alpar@9
 | 
  1537         New edition of the document "GLPK User's Guide" is included in
 | 
| 
alpar@9
 | 
  1538         the distribution. Now it describes all additional API routines
 | 
| 
alpar@9
 | 
  1539         which were recently added to the package.
 | 
| 
alpar@9
 | 
  1540 
 | 
| 
alpar@9
 | 
  1541         The MIP solver was fully re-programmed in order to improve its
 | 
| 
alpar@9
 | 
  1542         robustness and performance. In particular, a basis recovering
 | 
| 
alpar@9
 | 
  1543         procedure was implemented (this procedure allows switching to
 | 
| 
alpar@9
 | 
  1544         the primal simplex method in case when the dual simplex method
 | 
| 
alpar@9
 | 
  1545         fails).
 | 
| 
alpar@9
 | 
  1546 
 | 
| 
alpar@9
 | 
  1547 GLPK 2.2 (release date: Mar 15, 2001)
 | 
| 
alpar@9
 | 
  1548 
 | 
| 
alpar@9
 | 
  1549         Now GLPK includes a tentative implementation of the
 | 
| 
alpar@9
 | 
  1550         branch-and-bound procedure based on the dual simplex method for
 | 
| 
alpar@9
 | 
  1551         mixed integer linear programming (MIP).
 | 
| 
alpar@9
 | 
  1552 
 | 
| 
alpar@9
 | 
  1553         Complete description of this new feature of the package is given
 | 
| 
alpar@9
 | 
  1554         in the preliminary document "Mixed Integer Linear Programming
 | 
| 
alpar@9
 | 
  1555         Using GLPK Version 2.2 (Supplement to GLPK User's Guide)". This
 | 
| 
alpar@9
 | 
  1556         document is included into the distribution in plain text format
 | 
| 
alpar@9
 | 
  1557         (see the file 'mip.txt' in the subdirectory 'doc').
 | 
| 
alpar@9
 | 
  1558 
 | 
| 
alpar@9
 | 
  1559         The MIP solver (glp_integer) can be used as GLPK API routine in
 | 
| 
alpar@9
 | 
  1560         the same way as the pure LP solver (glp_simplex).
 | 
| 
alpar@9
 | 
  1561 
 | 
| 
alpar@9
 | 
  1562         The stand-alone program 'glpsol' is now able to solve LP as well
 | 
| 
alpar@9
 | 
  1563         as MIP problems.
 | 
| 
alpar@9
 | 
  1564 
 | 
| 
alpar@9
 | 
  1565         Note that the current version of GLPK MIP solver is based on
 | 
| 
alpar@9
 | 
  1566         easiest heuristics for branching and backtrackng. Therefore the
 | 
| 
alpar@9
 | 
  1567         solver is fit mainly for MIP problems which are not very hard
 | 
| 
alpar@9
 | 
  1568         and have few integer variables.
 | 
| 
alpar@9
 | 
  1569 
 | 
| 
alpar@9
 | 
  1570 GLPK 2.1 (release date: Feb 19, 2001)
 | 
| 
alpar@9
 | 
  1571 
 | 
| 
alpar@9
 | 
  1572         The document "GLPK Implementation of the Revised Simplex Method"
 | 
| 
alpar@9
 | 
  1573         is included into the distribution. This document describes most
 | 
| 
alpar@9
 | 
  1574         of routines related to the revised simplex method.
 | 
| 
alpar@9
 | 
  1575 
 | 
| 
alpar@9
 | 
  1576 GLPK 2.0 (release date: Jan 25, 2001)
 | 
| 
alpar@9
 | 
  1577 
 | 
| 
alpar@9
 | 
  1578         Now GLPK includes a tentative implementation of the primal-dual
 | 
| 
alpar@9
 | 
  1579         interior point method for large-scale linear programming.
 | 
| 
alpar@9
 | 
  1580 
 | 
| 
alpar@9
 | 
  1581         The interior point solver can be used as GLPK API routine in the
 | 
| 
alpar@9
 | 
  1582         same manner as the simplex method solver (glp_simplex):
 | 
| 
alpar@9
 | 
  1583 
 | 
| 
alpar@9
 | 
  1584         ret = glp_interior();
 | 
| 
alpar@9
 | 
  1585 
 | 
| 
alpar@9
 | 
  1586         Note that currently the interior point solver implemented in
 | 
| 
alpar@9
 | 
  1587         GLPK doesn't include many important features, in particular:
 | 
| 
alpar@9
 | 
  1588 
 | 
| 
alpar@9
 | 
  1589         * it can't process dense columns; therefore if the problem has
 | 
| 
alpar@9
 | 
  1590           dense columns, the solving will be extremely inefficient;
 | 
| 
alpar@9
 | 
  1591 
 | 
| 
alpar@9
 | 
  1592         * it has no special features against numerical unstability;
 | 
| 
alpar@9
 | 
  1593           some problems may cause premature termination of the solving
 | 
| 
alpar@9
 | 
  1594           when the matrix A*D*A' becomes ill-conditioned;
 | 
| 
alpar@9
 | 
  1595 
 | 
| 
alpar@9
 | 
  1596         * it computes only values of primal (auxiliary and structural)
 | 
| 
alpar@9
 | 
  1597           variables and doesn't compute values of dual variables (i.e.
 | 
| 
alpar@9
 | 
  1598           reduced costs) which are just set to zero;
 | 
| 
alpar@9
 | 
  1599 
 | 
| 
alpar@9
 | 
  1600         * it doesn't identify optimal basis corresponding to the found
 | 
| 
alpar@9
 | 
  1601           interior point solution; all variables in the found solution
 | 
| 
alpar@9
 | 
  1602           are just marked as basic variables.
 | 
| 
alpar@9
 | 
  1603 
 | 
| 
alpar@9
 | 
  1604         GLPK also includes a stand-alone program 'glpipm' which is a
 | 
| 
alpar@9
 | 
  1605         demo based on the interior point method. It may be used in the
 | 
| 
alpar@9
 | 
  1606         same way as the program 'glpsol' that is based on the simplex
 | 
| 
alpar@9
 | 
  1607         method.
 |