lemon-project-template-glpk

view deps/glpk/ChangeLog @ 11:4fc6ad2fb8a6

Test GLPK in src/main.cc
author Alpar Juttner <alpar@cs.elte.hu>
date Sun, 06 Nov 2011 21:43:29 +0100
parents
children
line source
1 Fri Sep 09 12:00:00 2011 Andrew Makhorin <mao@gnu.org>
3 * GLPK 4.47 (32:0:32) has been released
5 * src/glpapi20.c
6 New API routine glp_infeas1 to solve 0-1 feasibility problem
7 was added and documented (see doc/cnfsat.pdf).
9 * src/glpnpp06.c
10 Some new preprocessor routines for SAT-CNF encoding, which are
11 used by the routine glp_intfeas1, were added.
13 * src/glpnpp.h
14 The header was modified due to additions.
16 * src/glpapi21.c
17 The glpsol solver was modified to bypass model postprocessing
18 if the solution reported is neither optimal nor feasible.
20 * src/glpapi21.c
21 New glpsol options (--minisat and --objbnd) were added.
23 * examples/pbn/*.*
24 The paint-by-numbers puzzle model (pbn.mod) was modified to
25 print solution in PostScript format and to check for multiple
26 solutions. Some benchmark examples from <webpbn.com> encoded
27 in MathProg were included in the distribution. For more details
28 see examples/pbn/README and examples/pbn/pbn.pdf.
30 * examples/Makefile.am
31 A minor bug was fixed to correctly build glpk in a separate
32 directory. Thanks to Marco Atzeri <marco.atzeri@gmail.com> for
33 bug report.
35 Tue Aug 09 12:00:00 2011 Andrew Makhorin <mao@gnu.org>
37 * GLPK 4.46 (31:0:31) has been released
39 * src/glpk.h, src/Makefile
40 glpk.h was relocated from 'include' to 'src', and 'include'
41 subdir was removed; src/Makefile.am was changed appropriately.
43 * src/zlib/*.*
44 zlib general purpose compression library, version 1.2.5,
45 was ANSIfied and modified according to GLPK requirements and
46 included in the distribution as an external software module.
48 For details see src/zlib/README.
50 * src/glpdmx.c
51 The following new API routines were added:
52 glp_read_cnfsat - read CNF-SAT problem data in DIMACS format
53 glp_check_cnfsat - check for CNF-SAT problem instance
54 glp_write_cnfsat - write CNF-SAT problem data in DIMACS format
56 * src/minisat/*.*
57 MiniSat, a CNF-SAT solver, version 1.14.1, was ANSIfied and
58 modified according to GLPK requirements and included in the
59 distribution as an external software module.
61 For details see minisat/README and minisat/LICENSE.
63 * src/glpapi19.c
64 The API routine glp_minisat1, which is a driver to the MiniSat
65 solver, was included in the package.
67 * doc/satcnf.*
68 The document "CNF Satisfiability Problem" was included in the
69 package. It is a supplement to the GLPK Reference Manual.
71 * src/glpapi20.c
72 New glpsol options (--cnf, --wcnf, and --minisat) was added.
74 * glpsql.c
75 Some bugs were fixed. Thanks to Xypron <xypron.glpk@gmx.de>.
77 Sun Dec 05 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
79 * GLPK 4.45 (30:0:30) has been released
81 * glplpx01.c
82 A bug (it_cnt) in routine reset_parms was fixed.
83 Thanks to Ali Baharev <ali.baharev@gmail.com> for report.
85 * glpmpl03.c
86 A bug (print "text\") was fixed.
87 Thanks to Xypron <xypron.glpk@gmx.de> for report.
89 * glpsql.c
90 A precision bug was fixed.
91 Thanks to Xypron <xypron.glpk@gmx.de>.
93 * glpk.tex
94 Some typos were corrected.
95 Thanks to Robbie Morrison <robbie@actrix.co.nz>.
97 Thu Jun 03 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
99 * GLPK 4.44 (29:0:29) has been released
101 * glpapi14.c glpmpl.h glpmpl01.c glpmpl03.c glpmpl04.c
102 Implemented suffixes for variables and constraints.
104 * glpmpl06.c
105 Made changes to allow comment records in CSV files.
107 * glpapi17.c
108 Added and documented new API routine glp_cpp to solve Critical
109 Path Problem.
111 Sat Feb 20 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
113 * GLPK 4.43 (28:0:28) has been released
115 * glplib.h, glplib.c, glpenv.h, glpenv.c
116 The module glpenv was split into two modules glpenv and glplib.
118 * glpenv01.c, glpenv03.c, glpenv04.c, glpenv06.c
119 The following new API routines were added and documented:
120 glp_init_env, glp_free_env, glp_open_tee, glp_close_tee,
121 glp_error (macro), glp_difftime.
123 * glpapi16.c
124 New API routine glp_top_sort (topological sorting of ayclic
125 digraph) was added and documented.
127 * glpapi17.c
128 A serious bug was fixed in the routine glp_asn_prob_hall.
130 * glpnpp05.c
131 A bug was fixed in the LP/MIP preprocessor (hidden covering
132 inequalities).
134 * glpsql.c
135 Some improvements were made in the table driver (NULL data).
136 Thanks to Xypron <xypron.glpk@gmx.de> for contribution.
138 * configure.ac
139 Changes were made to use .dylib rather than .so under Mac OS.
140 Thanks to Noli Sicad <nsicad@gmail.com> for testing
142 Wed Jan 13 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
144 * GLPK 4.42 (27:0:27) has been released
146 * glpapi01.c, glpapi11.c, glpapi12.c, glpdmx.c
147 The following new API routines were added and documented:
148 glp_check_dup (check for duplicate elements in sparse matrix);
149 glp_sort_matrix (sort elements of the constraint matrix);
150 glp_read_prob (read problem data in GLPK format);
151 glp_write_prob (write problem data in GLPK format);
152 glp_analyze_bound (analyze active bound of non-basic variable);
153 glp_analyze_coef (analyze obj. coefficient at basic variable);
154 glp_print_ranges (print sensitivity analysis report; replaces
155 lpx_print_sens_bnds).
157 * glpapi20.c
158 New command-line options were added to glpsol:
159 --glp (read problem data in GLPK format);
160 --wglp (write problem data in GLPK format);
161 --lp (replaces --cpxlp);
162 --wlp (replaces --wcpxlp);
163 --ranges (print sensitivity analysis report).
165 * glpapi06.c
166 In the routine glp_init_smcp default value of the parameter
167 out_frq was changed to 500 (it was 200).
169 * glpipp.h, glpipp01.c, glpipp02.c
170 The old MIP preprocessor module was removed.
172 * glpapi09.c
173 Now the MIP solver uses the new MIP preprocessor (NPP).
175 * glplpx03.c
176 lpx_write_opb was disabled due to replacing IPP with NPP.
178 * glpnet09.c
179 Kellerman's heuristic to cover edges by cliques was added.
181 * glplib08.c
182 Recognition of special filenames "/dev/stdin", "/dev/stdout",
183 and "/dev/stderr" was added.
185 * glpk.tex
186 Chapter "Graph and network routines" was carried out from the
187 reference manual as a separate document.
189 Mon Dec 21 12:00:00 2009 Andrew Makhorin <mao@gnu.org>
191 * GLPK 4.41 (26:0:26) has been released
193 * glpapi12.c
194 The following new API routines were added:
195 glp_transform_row (replaces lpx_transform_row);
196 glp_transform_col (replaces lpx_transform_col);
197 glp_prim_rtest (replaces lpx_prim_ratio_test);
198 glp_dual_rtest (replaces lpx_dual_ratio_test).
199 Note that values returned by glp_prim_rtest and glp_dual_rtest
200 differ from the ones retutned by the deprecated routines.
202 * glpnpp*.*
203 The LP/MIP preprocessor was essentially re-implemented.
205 * glpios03.c
206 The feature to remove inactive cuts from the active subproblem
207 was implemented.
209 * glpios11.c
210 The feature processing cuts stored in the cut pool was improved
211 (now it uses estimation of objective degradation).
213 * glpscg.*
214 Obsolete implemetation of the conflict graph was removed.
216 * glpmpl.h, glpmpl03.c, glpmpl04.c
217 FILE was replaced by XFILE to allow using GLPK I/O routines.
219 * glpsql.c, examples/sql, doc/tables.tex
220 The SQL table driver was changed to allow multiple arguments
221 separated by semicolon in SQL statements. Thanks to Xypron
222 <xypron.glpk@gmx.de>.
224 * glpk.h, glpapi14.c
225 New API routine glp_time was added (not documented yet).
227 * glpapi20.c
228 Two new options were added to glpsol: --seed value (initialize
229 pseudo-random number generator used in MathProg model with
230 specified seed value), and --ini filename (use as initial basis
231 previously saved with -w option).
233 * examples/xyacfs.mod
234 Thanks to Nigel Galloway <nigel_galloway@operamail.com> for
235 contribution.
237 * examples/dbf/*.*
238 Thanks to Noli Sicad <nsicad@gmail.com> for contribution.
240 * w32/*.*, w64/*.*
241 Scripts to build GLPK with Microsoft Visual Studio 2010 were
242 added. Thanks to Xypron <xypron.glpk@gmx.de> for contribution
243 and testing.
245 Tue Nov 03 12:00:00 2009 Andrew Makhorin <mao@gnu.org>
247 * GLPK 4.40 (25:0:25) has been released
249 * glpdmx.c
250 Two new API routines were added:
251 glp_read_ccdata (read graph in DIMACS clique/coloring format);
252 glp_write_ccdata (write graph in DIMACS clique/coloring format).
253 Also an example file examples/sample.col was added.
255 * glpapi19.c, glpnet08.c
256 New API routine glp_wclique_exact was added. It is intended to
257 find a maximum weight clique with the exact algorithm developed
258 by Prof. P. Ostergard.
260 * glpnpp02.c
261 A bug was fixed in the LP preprocessor (routine npp_empty_col).
262 Thanks to Stefan Vigerske <stefan@math.hu-berlin.de> for the
263 bug report.
265 * glpios10.c
266 A bug was fixed and some improvements were made in the FPUMP
267 heuristic module. Thanks to Xypron <xypron.glpk@gmx.de>.
269 * glpapi12.c
270 A bug was fixed in the API routine glp_warm_up (dual
271 feasibility test was incorrect in maximization case). Thanks to
272 Uday Venkatadri <Uday.Venkatadri@dal.ca> for the bug report.
274 * glpapi16.c
275 Two new API routines were added:
276 glp_del_vertices (remove vertices from graph);
277 glp_del_arc (remove arc from graph).
279 * glpios09.c
280 The hybrid pseudocost branching heuristic was included in the
281 MIP solver. It is available on API level (iocp.br_tech should
282 be set to GLP_BR_PCH) and in the stand-alone solver glpsol
283 (via the command-line option --pcost). This heuristic may be
284 useful on solving hard MIP instances.
286 * glpios03.c
287 The branching heuristic by Driebeck and Tomlin (used in the
288 MIP solver by default) was changed to switch to branching on
289 most fractional variable if an lower bound of degradation of
290 the objective is close to zero for all branching candidates.
292 Sun Jul 26 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
294 * GLPK 4.39 (24:0:24) has been released
296 * glpsdf.c
297 New API routines to read plain data files were added.
299 * glpcpx.h, glpini.h, glpscl.h
300 These headers were removed.
302 * glpcpx.c
303 API routines glp_read_lp and glp_write_lp to read/write files
304 in CPLEX LP format were re-implemented. Now glp_write_lp
305 correctly writes double-bounded (ranged) rows by introducing
306 slack variables rather than by duplicating the rows. The data
307 structure glp_cpxcp and routine glp_init_cpxcp were added.
309 * amd/*
310 The 'xfree(NULL)' bug was fixed in the AMD routines. Thanks to
311 Niels Klitgord <niels@bu.edu> for the bug report.
313 * glpapi16.c
314 New API routines glp_set_vertex_name, glp_create_v_index,
315 glp_find_vertex, and glp_delete_v_index were added.
317 * glpdmx.c
318 New API routines glp_read_asnprob, glp_write_asnprob,
319 glp_read_ccformat, and glp_write_ccformat were added (the two
320 latter routines are not documented yet).
322 * glpapi18.c
323 New API routines glp_check_asnprob, glp_asnprob_lp,
324 glp_asnprob_okalg, and glp_asnprob_hall were added.
326 * glpini01.c, glpini02.c
327 The message "Crashing..." was changed to "Constructing initial
328 basis..." due to suggestion by Thomas Kahle <tom111@gmx.de>.
330 * glpapi14.c
331 New API routines glp_printf, glp_vprintf, glp_malloc,
332 glp_calloc, glp_free, and glp_assert were added.
334 * glplpp.h, glplpp01.c, glplpp02.c
335 Old LP presolver routines were removed. Now glp_simplex uses
336 new preprocessing routines (see glpnpp).
338 * glpapi12.c
339 New API routine glp_warm_up was added; it replaces the routine
340 lpx_warm_up.
342 Sat May 02 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
344 * GLPK 4.38 (23:0:23) has been released
346 * glpmps.c
347 API routines to read/write MPS files were re-implemented.
349 * glpspx02.c
350 Some improvements were made in the dual simplex routine.
352 * glpk.h
353 New structure glp_iptcp was added.
355 * glpnpp.h, glpnpp01.c, glpnpp02.c
356 New LP/MIP preprocessor. Currently it includes only some basic
357 routines and used only in the interior-point solver.
359 * glpapi08.c
360 API routine glp_interior was replaced by an improved version
361 (new LP/MIP preprocessor, new ordering algorithms).
363 New API routine glp_init_iptcp was added.
365 API routine glp_ipt_status may return two new statuses due to
366 changes in glp_interior.
368 * glpsol.c
369 New command-line options were added (ordering algorithm used in
370 the interior-point solver).
372 * amd/*.*, colamd/*.*
373 Two external software modules AMD and COLAMD/SYMAMD used in the
374 interior-point solver were included in the distribution.
376 For details see amd/README and colamd/README.
378 * glpnet03.c, glpnet04.c, glpnet05.c
379 A minor bug was fixed (_G => G_). Thanks to Nelson H. F. Beebe
380 <beebe@math.utah.edu> for bug report.
382 Sun Mar 29 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
384 * GLPK 4.37 (22:0:22) has been released
386 * glpk.h
387 iocp.fp_heur was added to enable/disable fpump heuristic.
389 * glpios10.c
390 ios_feas_pump was added (feasibility pump heuristic).
392 * glpsol.c
393 --fpump command-line option was added.
395 * glpsds.c
396 Plain data set routines were added to facilitate reading plain
397 data in application programs. Currently these routines are not
398 in API, though declared in glpk.h.
400 * glpapi08.c
401 A bug was fixed in the internal routine restore. (Due to this
402 bug dual solution components were computed incorrectly if the
403 problem was scaled.)
405 * glpapi10.c, glpapi11.c
406 The following new API routines were added:
407 glp_print_sol (replaces lpx_print_sol);
408 glp_print_ipt (replaces lpx_print_ips);
409 glp_print_mip (replaces lpx_print_mip);
410 _glp_check_kkt (replaces lpx_check_kkt, lpx_check_int).
411 Now the routine lpx_print_prob (deprecated) is equivalent to
412 the routine glp_write_lp.
414 * glpapi18.c, glpapi19.c
415 The following new API routines were added:
416 glp_read_graph (read graph from plain text file);
417 glp_write_graph (write graph to plain text file);
418 glp_weak_comp (find all weakly connected components);
419 glp_strong_comp (find all strongly connected components).
421 * configure.ac, Makefile.am
422 Changes were made: (a) to allow using autoreconf/autoheader;
423 (b) to allow building glpk in a directory other than its source
424 directory. Thanks to Marco Atzeri <marco_atzeri@yahoo.it> for
425 bug report.
427 * examples/shiftcover.mod
428 An example model in MathProg was added.
429 Thanks to Larry D'Agostino <Larry.D'Agostino@gmacrescap.com>
430 for contribution.
432 Fri Feb 06 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
434 * GLPK 4.36 (21:0:21) has been released
436 * glpnet06.c, glpnet07.c, glpapi19.c
437 The following new API routines were added:
438 glp_mincost_okalg find minimum-cost flow with out-of-kilter
439 algorithm
440 glp_maxflow_ffalg find maximal flow with Ford-Fulkerson
441 algorithm
443 * glpsol.c
444 Two new command-line options were added:
445 --mincost read min-cost flow data in DIMACS format
446 --maxflow read maximum flow data in DIMACS format
448 * doc/glpk.*
449 New edition of the reference manual was included.
451 * glpk.h
452 Duplicate symbols were removed to allow using swig.
453 Thanks to Kelly Westbrooks <kellywestbrooks@yahoo.com> and
454 Nigel Galloway <nigel_galloway@operamail.com> for suggestion.
456 * glpcpx.c
457 A minor defect was fixed in the routine glp_write_lp.
458 Thanks to Sebastien Briais <sbriais@free.fr> for bug report.
460 * glpsql.c
461 A minor bug was fixed. Thanks to Xypron <xypron.glpk@gmx.de>
462 for patch.
464 * examples/hashi.mod, examples/shikaku.mod
465 Two example models in MathProg were added. Thanks to Sebastian
466 Nowozin <nowozin@gmail.com> for contribution.
468 * examples/qfit.mod, examples/yacfs.mod
469 Two example models in MathProg were added. Thanks to Nigel
470 Galloway <nigel_galloway@operamail.com> for contribution.
472 Fri Jan 09 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
474 * GLPK 4.35 (20:0:20) has been released
476 * glpk.h, glpapi.c, glpnet.c
477 The following new API routines were added:
478 glp_create_graph create graph
479 glp_set_graph_name assign (change) graph name
480 glp_add_vertices add new vertices to graph
481 glp_add_arc add new arc to graph
482 glp_erase_graph erase graph content
483 glp_delete_graph delete graph
484 glp_read_mincost read minimum cost flow problem data in
485 DIMACS format
486 glp_write_mincost write minimum cost flow problem data in
487 DIMACS format
488 glp_mincost_lp convert minimum cost flow problem to LP
489 glp_netgen Klingman's network problem generator
490 glp_gridgen grid-like network problem generator
491 glp_read_maxflow read maximum flow problem data in DIMACS
492 format
493 glp_write_maxflow write maximum flow problem data in DIMACS
494 format
495 glp_maxflow_lp convert maximum flow problem to LP
496 glp_rmfgen Goldfarb's maximum flow problem generator
498 * doc/glpk.*
499 New edition of the reference manual was included.
501 * examples/sample.min, examples/sample.max
502 Two example data files in DIMACS format were added.
504 * glplib04.c
505 The statement "if (c = '\n') fflush(stdout)" was added to the
506 internal routine xputc to provide "real-time" terminal output.
507 Thanks to Luiz Bettoni <bettoni@cpgei.ct.utfpr.edu.br> for
508 suggestion.
510 * glpmpl05.c
511 A minor bug was fixed in the internal routine mpl_fn_time2str.
512 Thanks to Stefan Vigerske <stefan@vigerske.de> for bug report.
514 * w32/makefile, w64/makefile
515 The flag -O2 (/O2) was added to some makefiles.
517 Thu Dec 04 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
519 * GLPK 4.34 (19:0:19) has been released
521 * src/glpios03.c
522 A bug was fixed in the internal routine branch_on. Thanks to
523 Nigel Galloway <nigel_galloway@operamail.com> for bug report.
525 * src/glpmpl05.c
526 Three new MathProg functions were included:
527 gmtime obtaining current calendar time
528 str2time converting character string to calendar time
529 time2str converting calendar time to character string
530 Thanks to Xypron <xypron.glpk@gmx.de>.
532 * doc/glpk.*, doc/gmpl.*
533 A new edition of the GLPK reference manual and GNU MathProg
534 language description were included.
536 Thu Oct 30 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
538 * GLPK 4.33 (18:0:18) has been released
540 * glpapi*.*
541 The following new API routines were added:
542 glp_copy_prob copy problem object content
543 glp_exact solve LP in exact arithmetic
544 (makes lpx_exact deprecated)
545 glp_get_unbnd_ray determine variable causing unboundedness
546 (makes lpx_get_ray_info deprecated)
547 glp_interior solve LP with interior-point method
548 (makes lpx_interior deprecated)
550 * glpapi*.*
551 The following new API routines for processing models written in
552 the GNU Mathprog language were added to the package:
553 glp_mpl_alloc_wksp allocate the translator workspace
554 glp_mpl_read_model read and translate model section
555 glp_mpl_read_data read and translate data section
556 glp_mpl_generate generate the model
557 glp_mpl_build_prob build LP/MIP instance from the model
558 glp_mpl_postsolve postsolve the model
559 glp_mpl_free_wksp deallocate the translator workspace
560 (These routines make lpx_read_model deprecated.)
562 * src/glpapi17.c, examples/glpsol.c
563 The stand-alone solver glpsol was re-implemented with new API
564 routines.
566 * src/glpsql.c
567 Some bugs were fixed in the SQL table driver. Thanks to Xypron
568 <xypron.glpk@gmx.de>.
570 * examples/cplex/*.*
571 A crude implementation of CPLEX-like interface to GLPK API was
572 added to the package. See examples/cplex/README.
574 Fri Oct 03 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
576 * GLPK 4.32 (17:0:17) has been released
578 * glpmpl01.c
579 A bug was fixed. Due to this bug iterated expressions having
580 an indexing expression whose dummy indices are bound to some
581 values, i.e. like sum{(i+1,j,k-1) in E} x[i,j,k] are evaluated
582 incorrectly. Namely, current value of such expressions is not
583 invalidated when corresponding dummy indices (like i and k in
584 the example above) are changed, that erroneously results in the
585 same value evaluated for the first time.
587 * glpios03.c
588 Euclidean reduction of the local objective bound was added in
589 the routine glpios03.c.
591 * glpapi11.c
592 The following new branch-and-cut API routines were added:
593 glp_ios_row_attr determine additional row attributes;
594 glp_ios_pool_size determine current size of the cut pool;
595 glp_ios_add_row add constraint to the cut pool;
596 glp_ios_del_row delete constraint from the cut pool;
597 glp_ios_clear_pool delete all constraints from the cut pool.
599 * glpapi08.c
600 The following new features were included in the branch-and-cut
601 solver (the API routine glp_intopt):
602 MIP presolver;
603 mixed cover cut generator;
604 clique cut generator.
605 Due to the MIP presolver glp_intopt may additionally return
606 GLP_ENOPFS and GLP_ENODFS, if primal or dual infeasibility of
607 LP relaxation is detected by the presolver. Also the return
608 code GLP_EMIPGAP was introduced to correctly indicate that the
609 mip gap tolerance is reached.
611 * glplpx01.c
612 Now the obsolete API routines lpx_integer and lpx_intopt are
613 completely superseded by the API routine glp_intopt that makes
614 them deprecated.
616 * glpmpl05.c
617 Now the table driver name "iODBC" can be specified as "ODBC".
619 * glpmpl03.c
620 A bug fixed in the routine free_dca.
621 Thanks to Xypron <xypron.glpk@gmx.de>.
623 * glpsql.c
624 A bug was fixed in the SQL table driver.
625 Thanks to Xypron <xypron.glpk@gmx.de>.
627 * examples/glpsol.c
628 Changes were made to allow multiple MathProg data files.
630 * doc/glpk.*
631 A new edition of the GLPK reference manual was included.
633 * doc/tables.*
634 A new edition of the supplement "Using data tables in the GNU
635 MathProg language" was included.
637 Tue Sep 02 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
639 * GLPK 4.31 (16:0:16) has been released
641 * glpspx.h, glpspx01.c, glpspx02.c, glpapi06.c
642 The dual simplex solver (spx_dual_opt) was replaced by a new
643 implementation of the two-phase dual simplex method (spx_dual).
644 Old simplex method routines (spx_prim_opt, spx_prim_feas, and
645 spx_dual_opt) were removed from the package.
647 * glpk.h, glpscl.h, glpscl.c, glpapi04.c
648 New API routine glp_scale_prob was added. It replaces routine
649 lpx_scale_prob which is deprecated.
651 * glpk.h, glpini.h, glpini01.c, glpini02.c, glpapi05.c
652 New API routines glp_std_basis, glp_adv_basis, glp_cpx_basis
653 were added. They replace routines lpx_std_basis, lpx_adv_basis,
654 lpx_cpx_basis which are deprecated.
656 * glpdmp.c
657 8-byte data alignment was added to the module (sufficient for
658 both ILP32 and LP64 environments).
660 * glplib07.c
661 16-byte data alignment was added to the module to provide
662 compatibility with LP64 environment (8-byte is not sufficient
663 due to jmp_buf; thanks to Xypron for investigation).
665 * glplpx16.c
666 New version of the routine lpx_write_pb was added. Thanks to
667 Oscar Gustafsson <oscarg@isy.liu.se> for the contribution.
669 * w32/VC9, w64/VC9
670 Makefiles and batch files were added to build GLPK under 32-
671 and 64-bit Windows with Microsoft Visual Studio Express 2008.
672 Thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de> for
673 the contribution and testing.
675 * w32/DM, w32/OWC
676 Makefiles and batch files were added to build GLPK with Digital
677 Mars C/C++ 8.50 and Open Watcom C/C++ 1.6 (32-bit Windows).
679 Wed Aug 13 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
681 * GLPK 4.30 (15:0:15) has been released
683 * glpspx.h, glpspx03.c, glpapi06.c
684 The primal simplex solver (spx_prim_opt, spx_prim_feas) was
685 replaced by a new implementation (spx_primal), which currently
686 provides the same features as the old version.
688 * glpmpl01.c, glpmpl03.c
689 Some changes were made in the MathProg translator to allow <,
690 <=, >=, and > on comparing symbolic values. Thanks to Heinrich
691 Schuchardt <heinrich.schuchardt@gmx.de> for patches.
693 * glplpx10.c
694 Internal routine set_d_eps in the exact LP solver was changed
695 to prevent approximation errors in case of integral data.
696 Thanks to Markus Pilz <pilz@cs.uni-bonn.de> for bug report.
698 XXX XXX XX 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
700 * GLPK 4.29 (14:0:14) has been released
702 * configure.ac
703 The configure script was changed to disable optional features
704 by default. For details see file INSTALL.
706 * glpipp02.c
707 A bug was fixed in the internal routine reduce_bounds. Thanks
708 to Anne-Laurence Putz <anne-laurence.putz@eurodecision.com> for
709 the bug report.
711 * glpapi01.c
712 New API routine glp_erase_prob was added.
714 * glpapi13.c
715 New API routines glp_read_mps and glp_write_mps were added.
716 They replace API routines lpx_read_mps, lpx_read_freemps,
717 lpx_write_mps, and lpx_write_freemps, which are deprecated.
719 * glpapi14.c
720 New API routines glp_read_lp and glp_write_lp were added. They
721 replace API routines lpx_read_cpxlp and lpx_write_cpxlp, which
722 are deprecated.
724 * glpsql.c
725 Minor bug was fixed. Thanks to Xypron <xypron.glpk@gmx.de> for
726 the bug report.
728 Tue Mar 25 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
730 * GLPK 4.28 (13:0:13) has been released
732 * glplib.h, glplib.c
733 Three wrapper routines xdlopen, xdlsym, and xdlclose, which
734 provide the shared library support, were added. A particular
735 version of these routines depends on the option --enable-dl
736 passed to the configure script (see file INSTALL for details).
737 Thanks to Rafael Laboissiere <rafael@debian.org> for useful
738 advices concerning the shared library support.
740 * glpsql.c
741 A static linking to iODBC and MySQL libraries used in the
742 MathProg table drivers was replaced by a dynamic linking to
743 corresponding shared libraries.
744 Many thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de>
745 for the contribution and to Vijay Patil <vijay.patil@gmail.com>
746 for testing this feature under Windows XP.
748 * glpgmp.h, glpgmp.c
749 A bug (which appeared only on 64-bit platforms) was fixed.
750 Thanks to Axel Simon <Axel.Simon@ens.fr> for the bug report.
752 * glpapi.c
753 A bug was fixed in the api routine glp_add_cols. (If the basis
754 is valid, adding column keeps it valid, however, col->bind was
755 set to -1 rather to 0.)
756 Thanks to Cedric[FR] <fox2113@wanadoo.fr> for the bug report.
758 * glplib.c
759 64-bit unsigned int type glp_ulong and corresponding routines
760 were replaced by 64-bit signed int type xlong_t.
762 * glpk.h, glpapi.c
763 The type glp_ulong was replaced by glp_long. This affects only
764 the api routine glp_mem_usage.
766 * glplib.c
767 Compressed data file support was added. This feature requires
768 the zlib data compression libraries and allows compressing and
769 decompressing .gz files "on the fly".
771 * glpcli.h, glpcli.c
772 Command-line interface routines were added. (This feature is
773 incomplete so far.)
775 Sun Mar 02 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
777 * GLPK 4.27 (12:0:12) has been released
779 * glpsql.h, glpsql.c
780 Two MathProg table drivers for iODBC and MySQL contributed by
781 Heinrich Schuchardt <heinrich.schuchardt@gmx.de> were added to
782 the package.
784 * glpmpl05.c
785 Mathprog table driver for xBASE was added to the package.
787 * glpmpl03.c
788 A minor was fixed in the MathProg translator (if some field
789 specified in the table statement is missing in corresponding
790 input table, the bug causes abnormal termination). Thanks to
791 Heinrich Schuchardt <heinrich.schuchardt@gmx.de> for the bug
792 report.
794 * glpmpl.h, glpmpl.c
795 STRING data type was replaced by plain character strings.
797 Sun Feb 17 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
799 * GLPK 4.26 (11:0:11) has been released
801 * glpmpl.h, glpmpl01.c, glpmpl03.c, glpmpl05.c
802 The table statement was implemented. Description of this new
803 feature is given in file doc/tables.txt.
805 * glpios03.c
806 A bug causing zero divide error on computing euclidean norm of
807 the cut coefficient vector was fixed.
809 Wed Dec 19 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
811 * GLPK 4.25 (10:0:10) has been released
813 * glpapi10.c
814 Routines lpx_eval_tab_row and lpx_eval_tab_col were replaced by
815 glp_eval_tab_row and glp_eval_tab_col.
817 * glpios03.c, glpios05.c
818 Gomory's mixed integer cuts were implemented.
820 * glpscs.h, glpscs.c
821 Segmented character string routines are no longer used and were
822 removed from the package.
824 Wed Nov 21 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
826 * GLPK 4.24 (9:0:9) has been released
828 * src/glplpx16.c
829 A bug was fixed in the routine lpx_write_cpxlp. If a variable
830 x has upper bound and no lower bound, it should appear in the
831 bounds section as "-inf <= x <= u", not as "x <= u". Thanks to
832 Enric Rodriguez <erodri@lsi.upc.edu> for the bug report.
834 * src/glpios03.c, src/glpios04.c, src/glpios05.c
835 MIR (mixed integer rounding) cuts were implemented.
837 Sun Oct 28 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
839 * GLPK 4.23 (8:0:8) has been released
841 * src/glplib05.c, configure.ac
842 Check for vsnprintf was added.
844 * include/glppds.h, src/glppds.c
845 A module to scan plain data was added.
847 * src/glpapi09.c
848 The following new API routines were added:
849 glp_read_sol read basic solution from text file;
850 glp_write_sol write basic solution to text file;
851 glp_read_ipt read interior-point solution from text file;
852 glp_write_ipt write interior-point solution to text file;
853 glp_read_mip read MIP solution from text file;
854 glp_write_mip write MIP solution to text file.
856 * src/glpapi12.c
857 Advanced API routine glp_free_env was added.
859 * examples/glpsol.c
860 The following three command-line options were added:
861 --mipgap tol set relative MIP gap tolerance
862 -r filename read solution from filename
863 -w filename write solution to filename
865 Wed Sep 19 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
867 * GLPK 4.22 (7:0:7) has been released
869 * src/glpios02.c
870 A bug was fixed in the MIP preprocessor (ios_preprocess_node).
871 Thanks to Roberto Bagnara <bagnara@cs.unipr.it> (Department of
872 Mathematics, University of Parma, Italy) for the bug report.
874 * src/glpios02.c
875 A bug was fixed in the MIP preprocessor (col_implied_bounds),
876 due to which constraint coefficients with small magnitude could
877 lead to wrong implied bounds of structural variables.
879 * src/glpipp02.c
880 A similar bug was fixed in the routine reduce_bounds.
882 * src/glpapi01.c
883 A bug was fixed in the routines glp_set_mat_row and
884 glp_set_mat_col. (The bug appeared due to incorrect removing
885 zero elements from the row/column lists.)
887 * src/glplpx14.c
888 A bug was fixed in the API routines lpx_read_mps and
889 lpx_read_freemps, due to which bounds of type LI specified in
890 BOUNDS section were incorrectly processed.
892 * src/glplib05.c
893 A call to standard function vsprintf was replaced by a call to
894 vsnprintf for security reasons. Many thanks to Peter T. Breuer
895 <ptb@inv.it.uc3m.es> and Rafael Laboissiere <rafael@debian.org>.
897 Tue Aug 28 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
899 * GLPK 4.21 (6:0:6) has been released
901 * glpscg.h, glpscg.c
902 Routines to maintain sparse cliqued graph were added.
904 * glpios02.c
905 MIP preprocessing routines were added.
907 * glpk.h, glpios.h, glpios03.c
908 New reasons for calling the callback routine were introduced
909 in the MIP solver.
911 * glpapi08.c
912 Default backtracking strategy was changed to best local bound.
914 * glpapi11.c
915 New API routine glp_term_out to enable/disable terminal output
916 was added.
918 * glprng.h, glprng02.c
919 Two routines to generate uniformly distributed pseudo-random
920 floating-point numbers were added.
922 Thu Jul 26 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
924 * GLPK 4.20 (5:0:5) has been released
926 * glpk.h, glpapi08.c
927 The routine lpx_integer was replaced by an equivalent routine
928 glp_intopt. Also new API routine glp_init_iocp was added.
930 * glpiet.h, glpiet.c
931 Routines implementing the implicit enumeration tree are
932 no longer used and therefore were removed from the package.
934 * glpios.h, glpios01.c, glpios02, glpios03
935 Routines implementing the integer optimization suite being
936 replaced by a new version were removed from the package.
938 * glpmip.h, glpmip01.c, glpmip02.c
940 Routines implementing the B&B method being replaced by a new
941 version were removed from the package.
943 * glpios.h, glpios01.c, glpios02.c
945 Routines implementing a new version of the integer optimization
946 suite (IOS) based on the B&B method were added to the package.
948 * glpk.h, glpapi10.c
949 Branch-and-bound interface routines were added to the package.
951 * examples/tspsol.c
952 The TSP solver based on old version of the integer optimization
953 suite is no more supported and was removed from the package.
955 * glpipp02.c
956 An error in the routine reduce_bounds was fixed; thanks to
957 Graham Rockwell <bionomicron@gmail.com> for the bug report.
959 * glpk.latex
960 A new edition of the reference manual was included.
962 Thu Jul 05 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
964 * GLPK 4.19 (4:0:4) has been released
966 The principal change is upgrading to GPLv3.
968 * glpapi01.c
969 A serious bug in the routine glp_del_cols was fixed; thanks to
970 Cedric[FR] <fox2113@wanadoo.fr> for the bug report. The bug
971 appeared because on deleting non-basic columns the basis header
972 remained valid, however, contained invalid (old) column ordinal
973 numbers.
975 * glpapi10.c
976 A new advanced API routine glp_mem_limit was added.
978 * glplpx01.c
979 The case GLP_EBOUND was added to the routine lpx_simplex.
980 Thanks to Cameron Kellough <Cameron.Kellough@sri.com> for the
981 bug report.
983 * glplpx19.c
984 An API routine lpx_write_pb to write the problem instance in
985 OPB (pseudo boolean) format format was added. Thanks to Oscar
986 Gustafsson <oscarg@isy.liu.se> for the contribution.
988 * glpsol.c
989 Two new options --wpb and --wnpb were added to glpsol to write
990 the problem instance in OPB format.
992 Mon Jun 25 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
994 * GLPK 4.18 (3:0:3) has been released
996 * glplib.h
997 Type names ulong_t and uldiv_t were changed to glp_ulong and
998 glp_uldiv to avoid conflicts with standard type names on some
999 platforms. Thanks to Boris Wirtz <Boris.Wirtz@uni-oldenburg.de>
1000 for the bug report.
1002 * glpbfd.*, glpfhv.*, glplpf.*
1003 LP basis factorization routines were made tidy.
1005 * glpk.h, glpapi04.c
1006 The following API routines were added:
1007 glp_set_rii, glp_set_sjj, glp_get_rii, glp_get_sjj.
1009 * glpk.h, glpapi06.c
1010 The routine lpx_simplex was replaced by an equivalent routine
1011 glp_simplex. Also new API routine glp_init_smcp was added.
1013 * glpk.h, glpapi09.c
1014 The following advanced API routines were added:
1015 glp_bf_exists, glp_factorize, glp_bf_updated, glp_get_bfcp,
1016 glp_set_bfcp, glp_get_bhead, glp_get_row_bind, glp_get_col_bind,
1017 glp_ftran, glp_btran.
1019 * glpk.latex
1020 A new edition of the reference manual was included.
1022 * examples/dea.mod, examples/food.mod, examples/food2.mod
1023 Three examples in the MathProg language were added.
1024 Thanks to Sebastian Nowozin <nowozin@gmail.com>.
1026 Sat May 26 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
1028 * GLPK 4.17 (2:0:2) has been released
1030 * glpdmp.h, glpdmp.c
1031 Memory pool routines were replaced by a new version.
1033 * glpscs.h, glpscs.c
1034 Segmented string routines were replaced by a new version.
1036 * glplpx08.c, glplpx09.c
1037 Now the MIP problem may have no integer columns.
1039 * glpapi01.c
1040 The routines glp_set_mat_row, glp_set_mat_col, and glp_load_mat
1041 were modified to allow zero elements (which are not stored in
1042 the constraint matrix).
1044 * glpscf.h, glpscf.c
1045 Schur complement factorization routines were implemented.
1047 * glplpf.h, glplpf.c
1048 LP basis factorization routines based on LU-factorization and
1049 Schur complement were implemented.
1051 * glplpx02.c, glplpx03.c
1052 New control parameter LPX_K_BFTYPE was introduced to choose the
1053 basis factorization type used by the simplex method routines.
1055 * glpsol.c
1056 Three new command-line options were added to choose the basis
1057 factorization type used by the simplex method routines: --luf,
1058 --cbg, and --cgr.
1060 * glpk.latex
1061 A new edition of the reference manual was included.
1063 Sat May 05 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
1065 * GLPK 4.16 (1:0:1) has been released
1067 * glpk.h, glpapi.c, glplpx01.c, glplpx02.c
1068 Names of a number basic api routines were changed and now have
1069 the prefix 'glp_'. To keep backward compatibility these routines
1070 are also available via their old names prefixed with 'lpx_'.
1072 * glplpx19.c
1073 Three new api routines were added: glp_version, glp_term_hook,
1074 and glp_mem_usage.
1076 * glpk.latex, gmpl.texi
1077 A new edition of the reference manuals was included.
1079 * lpglpk40.c
1080 This example program is no longer supported and therefore was
1081 removed from the package.
1083 Sun Feb 18 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
1085 * GLPK 4.15 (0:0:0) has been released
1087 * configure.ac, Makefile.am
1088 Autotools specification files were changed to use GNU Libtool
1089 that allows building the static as well as shared GLPK library.
1090 Thanks to Rafael Laboissiere <rafael@debian.org>.
1092 Mon Feb 05 08:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
1094 * GLPK 4.14 has been released
1095 Now GLPK conforms to ILP32, LLP64, and LP64 programming models
1096 (the latter seems to be the ultimate choice regarding 64-bit
1097 architectures). Note that GLPK itself is a 32-bit application,
1098 and the conformity only means that the package works correctly
1099 on all these arenae. Nevertheless, on 64-bit platforms it is
1100 possible to use more than 4GB of memory, if necessary.
1102 * Makefile
1103 Starting from this release only the header glpk.h is needed to
1104 be installed.
1106 * glplib01.c
1107 Two routines bigmul and bigdiv which performs multiplication
1108 and division of unsigned integers of arbitrary precision were
1109 added.
1111 * glplib02.c
1112 A set of 64-bit arithmetic routines were added.
1114 * glplib04.c
1115 Some low-level library routines were improved and renamed.
1117 * glpcfg.h
1118 The macro GLP_TM_SPEC were introduced to specify a version of
1119 the time routine depending on the host environment.
1121 Mon Nov 13 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1123 * GLPK 4.13 has been released
1125 * configure.in
1126 '-lm' bug was fixed.
1128 * glpbfx.h, glpbfx.c
1129 Basis factorization interface routines based on exact (bignum)
1130 arithmetic were implemented.
1132 * glpssx.h, glpssx1.c, glpssx2.c
1133 Simplex method routines based on exact (bignum) arithmetic were
1134 implemented.
1136 * glplpx6e.c
1137 The routine lpx_exact, which is an easy-to-use driver to the
1138 exact simplex method, was added.
1140 * glpsol.c
1141 Two command-line options were added: '--exact' and '--xcheck'.
1143 Wed Nov 08 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1145 * GLPK 4.12 has been released
1147 * glpcfg.h
1148 The package configuration file was added.
1150 * glplib2.c
1151 Alternative version of the routines umalloc, ucalloc, and ufree
1152 was provided. It does not limit the amount of allocated memory
1153 to INT_MAX bytes and therefore can be used on platforms where
1154 sizeof(void *) > sizeof(int). To enable this version one should
1155 define the preprocessor variable GLP_HUGE_MEM.
1157 * glprng.c
1158 The routine rng_create_rand was changed to initialize the
1159 generator using seed = 1, not 0, to conform ISO C requirements.
1161 * glpgmp.h, glpgmp.c
1162 A set of bignum arithmetic routines implementing operations on
1163 integers and rationals was added. These routines are compatible
1164 with the GNU MP library.
1166 NOTE: To attain a much better performance it is recommended to
1167 use, if possible, the original GNU MP library rather than the
1168 GLPK version, by defining the preprocessor variable GLP_USE_GMP.
1170 * glplux.h, glplux.c
1171 A tentative implementation of sparse LU-factorization based on
1172 exact (bignum) arithmetic was added.
1174 * glpssx.h, glpssx.c
1175 A tentative implementation of some simplex method routines based
1176 on exact (bignum) arithmetic was added.
1178 * glplpx6f.c
1179 A preliminary implementation of the routine lpx_exact_check was
1180 added. This routine checks the current basis for primal and dual
1181 feasibility using exact (bignum) arithmetic.
1183 * examples/glpsol.c
1184 The command-line option '--xcheck' was introduced to check the
1185 current basis for feasibility using exact (bignum) arithmetic.
1187 Tue Jul 25 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1189 * GLPK 4.11 has been released.
1191 * include/glpbfi.h, src/glpbfi.c
1192 Basis factorization interface routines were added.
1194 * include/glpluf.h, src/glpluf1.c
1195 Hypersparse solution routines were added.
1197 * include/glpinv.h, src/glpinv1.c
1198 Hypersparse solution routines (fake version) were added.
1200 * include/glpmpl.h, src/glpmpl.c
1201 Built-in functions card, length, and substr were implemented.
1202 Output redirection in the printf statement was implemented.
1204 * examples/graph.mod, examples/crypto.mod
1205 Two example models illustrating new features of the modeling
1206 language were included.
1208 Thu May 11 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1210 * GLPK 4.10 has been released.
1212 * src/glplpx8a.c
1213 A fragment was added to the routines lpx_read_mps and
1214 lpx_read_freemps to accept LI bound type (it is similar to LO,
1215 however, additionally marks the column as integer).
1217 * include/glpbfi.h, src/glpbfi.c
1218 The module glpbfi which implements the basis factorization
1219 interface (BFI) was added.
1221 * src/glplpx7a.c
1222 The routine lpx_cover_cut to generate mixed cover cuts was
1223 added.
1225 * src/glplpx7b.c
1226 The routine lpx_clique_cut to generate clique cuts and related
1227 routines to maintain the conflict graph were added.
1229 * include/glplpx.h, src/glplpx5.c
1230 The routine lpx_cpx_basis implementing Bixby's algorithm to
1231 construct an initial LP basis was added.
1233 * examples/glpsol.c
1234 Command-line option '--bib' was added which allows building
1235 an initial LP basis using Bixby's algorithm.
1236 Default command-line option '--mps' was changed to '--freemps'.
1238 * examples/cf12a.mod, examples/cf12b.mod
1239 Two examples in MathProg (curve fitting problem) were added.
1240 Thanks to Dr. Harley Mackenzie <hjm@hardsoftware.com>.
1242 Tue Jan 17 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1244 * GLPK 4.9 has been released.
1246 * glpipp.h, glpipp1.c, glpipp2.c
1247 A MIP presolver were implemented (currently incomplete). It is
1248 used internally in the routine lpx_intopt (see below).
1250 * glplpx6d.c, glplpx7a.c
1251 An advanced branch-and-bound solver (the routine lpx_intopt)
1252 were implemented.
1254 * glplpx6c.c
1255 The routine lpx_check_int to check MIP feasibility conditions
1256 was added.
1258 * glplpx8a.c
1259 The routine lpx_print_mip was changed to print MIP feasibility
1260 conditions.
1262 * glpmpl.h, glpmpl1.c, glpmpl3.c
1263 The built-in functions sin, cos, atan, and atan2 were added to
1264 the MathProg language.
1266 * doc/lang.*
1267 Some typos were fixed.
1268 Thanks to Minh Ha Duong <haduong@centre-cired.fr> (CIRED, CNRS).
1270 Wed Jan 12 12:00:00 2005 Andrew Makhorin <mao@mai2.rcnet.ru>
1272 * GLPK 4.8 has been released.
1274 * glpspx.h, glpspx1.c, glpspx2.c, glplpx6a.c
1275 Simplex method routines were changed due to a new format of the
1276 constraint matrix.
1278 * glpmat.h, glpmat.c
1279 Sparse matrix routines were re-implemented using storage-by-rows
1280 format.
1282 * glpipm.h, glpipm.c, glplpx6b.c
1283 Interior-point method routines were changed due to a new format
1284 of sparse matrices.
1286 * glpchol.h, glpchol.c
1287 Old version of Cholesky factorization routines being replaced by
1288 a new one (see glpmat.c) was removed from the package.
1290 * glplpx8c.c
1291 Minor bug was fixed in api routine lpx_read_cpxlp.
1293 Mon Aug 23 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1295 * GLPK 4.7 has been released.
1297 * glplpx.h, glplpx1.c
1298 New core API routines were added (but not documented yet):
1299 lpx_order_matrix, lpx_create_index, lpx_find_row, lpx_find_col,
1300 lpx_delete_index.
1302 * glplpx8a.c
1303 API routine lpx_read_mps was re-implemented, and two new API
1304 routines lpx_read_freemps and lpx_write_freemps were added to
1305 support free MPS format.
1307 * glplpx8c.c
1308 Two API routines lpx_read_cpxlp and lpx_write_cpxlp (formerly
1309 named lpx_read_lpt and lpx_write_lpt) were re-implemented.
1311 * glpmps.h, glpmps.c
1312 This module formerly used in lpx_read_mps was removed from the
1313 package.
1315 * glplpt.h, glplpt.c
1316 This module formerly used in lpx_read_lpt was removed from the
1317 package.
1319 * glpmip.h, glpmip1.h, glpmip2.h
1320 New MIP routines mip_best_node and mip_relative_gap were added
1321 due to suggestion of Brady Hunsaker <hunsaker@engr.pitt.edu>.
1323 * glpsol.c
1324 The following new command-options were added:
1325 --freemps to read problem data in free MPS format
1326 --wfreemps to write problem data in free MPS format
1327 --cpxlp to read problem data in CPLEX LP format
1328 --wcpxlp to write problem data in CPLEX LP format
1329 --bas to read LP basis from a text file in MPS format
1330 --wbas to write LP basis to a text file in MPS format
1331 --mostf to use "most fractional" branching heuristic
1332 --bestb to use "best bound" backtracking heuristic
1334 * contrib/deli/*.*
1335 GLPK Delphi interface module was temporarily removed from the
1336 distribution due to licensing problems.
1338 * contrib/glpkmex/*.*
1339 GLPK Matlab interface module was temporarily removed from the
1340 distribution due to licensing problems.
1342 * contrib/jni/*.*
1343 GLPK Java interface module was temporarily removed from the
1344 distribution due to licensing problems.
1346 Wed Aug 04 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1348 * GLPK 4.6 has been released.
1350 * glpmpl.h, glpmpl1.c, glpmpl2.c, glpmpl3.c, glpmpl4.c
1351 Three new statements were implemented in the GNU MathProg
1352 language: solve, printf, and for. Also some bugs were fixed.
1354 * glplpx.h, glplpx8e.c
1355 Two API routines were added: lpx_read_prob and lpx_write_prob,
1356 which allow reading and writing problem data in GNU LP format.
1358 * glpsol.c
1359 Three new command-line options were added: --glp (to read
1360 problem data in GNU LP format), --wglp (to write problem data
1361 in GNU LP format), and --name (to change problem name).
1363 * glprng.h, glprng.c
1364 A portable pseudo-random number generator was implemented as a
1365 separate module.
1367 * glplib4.c
1368 The old implementation of a pseudo-random number generator was
1369 removed from the package.
1371 * doc/lang.*, doc/refman.*
1372 New edition of the GLPK documentation was included.
1374 * contrib/glpkmex/*.*
1375 A new version of GLPKMEX was included in the distribution. For
1376 more details see contrib/glpkmex/ChangeLog.
1378 Mon Jul 19 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1380 * GLPK 4.5 has been released.
1382 * glpmip.h, glpmip1.c, glpmip2.c, glplpx6c.c
1383 New implementation of the branch-and-bound method was added.
1384 It replaces the old implementation, which was removed from the
1385 package.
1387 * glpies.h, glpies1.c, glpies2.c, glpies3.c
1388 Modules used in the old implementation of the branch-and-bound
1389 method were removed from the package.
1391 * glplib2.c
1392 Now if the preprocessor variable GLPHUGEMEM is defined, other
1393 version of the routines umalloc, ucalloc, and ufree is used on
1394 compiling the package. This allows avoiding memory allocation
1395 problems on platforms where sizeof(void *) > sizeof(int), for
1396 example, where addresses are 64-bit while integers are 32-bit.
1397 The modification was made due to a bug report provided by Karel
1398 Zimmermann <kzimm@diamant.jouy.inra.fr> and Christophe Caron
1399 <caron@diamant.jouy.inra.fr>.
1401 Sat Jan 17 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1403 * GLPK 4.4 has been released.
1405 * glplpx.h, glplpx*.c
1406 All API routines were re-implemented using new data structures.
1407 Some new API routines were added and some existing API routines
1408 became obsolete as shown below:
1410 Obsolete API routine Equivalent new API routine
1411 lpx_check_name (no more supported)
1412 lpx_set_obj_c0 lpx_set_obj_coef
1413 lpx_set_row_coef (no more supported)
1414 lpx_set_col_coef lpx_set_obj_coef
1415 lpx_load_mat (no more supported)
1416 lpx_load_mat3 lpx_load_matrix
1417 lpx_unmark_all (no more supported)
1418 lpx_mark_row (no more supported)
1419 lpx_mark_col (no more supported)
1420 lpx_clear_mat (no more supported)
1421 lpx_del_items lpx_del_rows, lpx_del_cols
1422 lpx_get_row_bnds lpx_get_row_type, lpx_get_row_lb,
1423 lpx_get_row_ub
1424 lpx_get_col_bnds lpx_get_col_type, lpx_get_col_lb,
1425 lpx_get_col_ub
1426 lpx_get_obj_c0 lpx_get_obj_coef
1427 lpx_get_row_coef (no more supported)
1428 lpx_get_col_coef lpx_get_obj_coef
1429 lpx_get_row_mark (no more supported)
1430 lpx_get_col_mark (no more supported)
1431 lpx_get_row_info lpx_get_row_stat, lpx_get_row_prim,
1432 lpx_get_row_dual
1433 lpx_get_col_info lpx_get_col_stat, lpx_get_col_prim,
1434 lpx_get_col_dual
1435 lpx_get_ips_stat lpx_ipt_status
1436 lpx_get_ips_row lpx_ipt_row_prim, lpx_ipt_row_dual
1437 lpx_get_ips_col lpx_ipt_col_prim, lpx_ipt_col_dual
1438 lpx_get_ips_obj lpx_ipt_obj_val
1439 lpx_get_mip_stat lpx_mip_status
1440 lpx_get_mip_row lpx_mip_row_val
1441 lpx_get_mip_col lpx_mip_col_val
1442 lpx_get_mip_obj lpx_mip_obj_val
1444 Obsolete API routines were kept for backward compatibility,
1445 however, they will be removed in the future.
1447 * doc/refman.*
1448 New edition of the GLPK reference manual containing description
1449 of all new API routines was included.
1451 * contrib/glpkmex/*.*
1452 GLPKMEX, a Matlab MEX interface to GLPK package, contributed by
1453 Nicolo Giorgetti <giorgetti@dii.unisi.it> was included.
1455 * doc/GLPK_FAQ.txt
1456 GLPK FAQ contributed by Harley Mackenzie <hjm@bigpond.com> was
1457 included.
1459 Fri Dec 12 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1461 * GLPK 4.3 has been released.
1463 * configure.in
1464 The bug, due to which the standard math library is not linked on
1465 some platforms, was fixed.
1467 * glpmpl3.c
1468 The bug (0 ** y) was fixed in the routine fp_power.
1470 * glpmpl.h, glpmpl1.c, glpmpl3.c
1471 Some new built-in functions (round, trunc, Irand224, Uniform01,
1472 Uniform, Normal01, Normal) were added to the MathProg language.
1474 * glpmpl1.c
1475 The MathProg syntax was changed to allow writing 'subj to'.
1477 * glplpx.h, glplpx1.c, glplpx2.c
1478 The new api routine lpx_get_ray_info was added.
1480 * glplpx8a.c
1481 The api routine lpx_print_sol was changed to print the number of
1482 non-basic variable, which causes primal unboundness.
1484 * glpmps.c
1485 The code was changed to avoid errors on compiling the package on
1486 Mac OS X. Thanks to Andre Girard <andre@inrs-emt.uquebec.ca> for
1487 the bug report.
1489 * doc/lang.*, doc/refman.*
1490 Several typos were fixed and some new material was added in the
1491 glpk documentation.
1493 Fri Nov 14 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1495 * GLPK 4.2 has been released.
1497 * glpiet.h, glpiet.c, glpios.h, glpios1.c, glpios2.c, glpios3.c
1498 A preliminary implementation of the Integer Optimization Suite
1499 (IOS) was included in the package. Eventually IOS will replace
1500 the Implicit Enumeration Suite (IES).
1502 * glplpx.h, glplpx6d.c
1503 A dummy version of the integer optimization routine lpx_intopt
1504 was included in the package. Later this routine will replace the
1505 routine lpx_integer.
1507 * examples/glpsol.c
1508 A new command-line option --int-opt was added to the solver to
1509 call lpx_intopt rather than lpx_integer.
1511 * glpbcs.h, glpbcs1.c, glpbcs2.c
1512 Being replaced by IOS routines (see above) the Branch-and-Cut
1513 Framework (BCS) routines were removed from the package.
1515 * examples/tspsol.c
1516 Stand-alone Symmetric TSP solver was completely re-programmed
1517 using IOS routines.
1519 * glplib.h, glplib2.c, glplib4.c
1520 The random-number generator was implemented. It is based on the
1521 module GB_FLIB from the Stanford GraphBase originally developed
1522 by Donald Knuth.
1524 * glphbsm.c, glplpx8a.c, glpmps.c
1525 All calls to fopen/fclose were replaced by corresponding calls
1526 to ufopen/ufclose due to bug reports provided by Morten Welinder
1527 <terra@gnu.org> and <jpark@sfwmd.gov>.
1529 * glpmps.c
1530 The code was made re-entrant.
1532 * glplpx8b.c
1533 API routine lpx_print_sens_bnds for bounds sensitivity analysis
1534 contributed by Brady Hunsaker <hunsaker@engr.pitt.edu> was added
1535 to the package. This feature is also available in glpsol via the
1536 command-line option --bounds.
1538 * contrib/jni/*.*
1539 New version of GLPK JNI (Java Native Interface) contributed by
1540 Chris Rosebrugh <cpr@pobox.com> was added to the package.
1542 * contrib/deli/*.*
1543 GLPK DELI (Delphi Interface) contributed by Ivo van Baren
1544 <i.van.baren@freeler.nl> was added to the package.
1546 * glplpx3.c
1547 Default method to scale the problem was changed to equilibration
1548 scaling (lp->scale = 1 in lpx_reset_parms).
1550 * glplpx6a.c
1551 Two minor (non-critical) typos were fixed due to report provided
1552 by Andrew Hamilton-Wright <andrewhw@ieee.org>.
1554 * glplpp2.c
1555 An untested case (line 941) had been tested due to bug report
1556 provided by Jiri Spitz <jiri.spitz@telecom.cz>.
1558 * w32bc5.mak, w32vc6.mak, w32vc6d.mak, d32dmc.mak
1559 Several makefiles were added to allow building GLPK library for
1560 some non-GNU 32-bit platforms.
1562 Sat Aug 23 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1564 * GLPK 4.1 has been released.
1566 * glpmpl1.c, glpmpl3.c
1567 Some bugs were fixed in the MathProg translator due to the bug
1568 reports provided by Giles Thompson <gwpt1@cus.cam.ac.uk>:
1569 conditional set expressions were incorrectly parsed;
1570 dimen attribute was not set by default when a set was used
1571 recursively in its own declaration;
1572 logical expressions ... in if ... then ... else ... did not
1573 work;
1574 displaying set expressions did not free memory allocated for
1575 temporary results.
1577 * glpmpl3.c (reduce_terms)
1578 Implementation of summation of linear forms over domain was
1579 improved to reduce complexity of that operation from O(n*n) to
1580 O(n*log n). The improvement was made due to a report provided
1581 by Sebastien de Menten <sdementen@hotmail.com>.
1583 * glplpx6a.c (line 1056), glpmip1.c (line 641)
1584 Two minor bugs were fixed due to the bug report provided by
1585 Kendall Demaree <kendal.demaree@verizon.net>.
1587 * glplpx.h, glplpx6a.c
1588 The method of one artificial variable implemented in the routine
1589 lpx_prim_art and used on the phase I in the glpk simplex solver
1590 has a serious defect: for some lp instances it erroneously
1591 reports that the problem has no primal feasible solution. This
1592 error appears when the column of the artificial variable, which
1593 enters the basis to make it primal feasible, has large
1594 constraint coefficients, that leads to small reduced costs of
1595 non-basic variables and premature termination of the search,
1596 i.e. to wrong conclusion that the problem has no primal feasible
1597 solution. To avoid this defect the routine lpx_prim_feas was
1598 included. It implements the method of implicit artifical
1599 variables (based on minimization of the sum of infeasibilities),
1600 which is a bit slower but much more robust. The routine
1601 lpx_prim_feas having the same functionality now is used instead
1602 the routine lpx_prim_art.
1604 * glpinv.h, glpinv.c
1605 The test used in the routine inv_update to detect low accuracy
1606 after updating LU-factorization of the basis matrix was replaced
1607 by a new, more robust test.
1609 * glplpx6c.c
1610 Selecting an active node to be solved next in the routine
1611 btrack_bestp was changed. Now, if any integer feasible solution
1612 has not been found yet, the routine chooses an active node which
1613 has the minimal sum of integer infeasibilities.
1615 * glpmip.h, glpmip1.c
1616 The additional flag int_obj was included in the structure
1617 MIPTREE used by the branch-and-bound. This flag is set in the
1618 routine mip_create_tree and used in the routine is_better. It
1619 means that the objective is integral, i.e. depends only on
1620 integer variables with integer objective coefficients. The test
1621 used in the routine check_integrality was also replaced by a
1622 new, more reasonable one.
1624 * glplpx1.c
1625 A minor bug was fixed in the routine lpx_check_name.
1627 * glpmpl.h, glpmpl4.c, glplpx8d.c
1628 The flag skip_data was added to the parameter list of the
1629 routine mpl_read_model. If this flag is set, the data section
1630 in the model file is ignored. Corresponding change was made in
1631 the routine lpx_read_model. Now, if both model and data files
1632 are specified, the data section in the model file is ignored.
1634 * glplpx8c.c
1635 A minor bug (wrong format used for writing free columns) in the
1636 routine lpx_write_lpt was fixed due to the bug report provided
1637 by Bernhard Schmidt <schmidt@math.uni-augsburg.de>
1639 * sample/glpsol.c
1640 The command-line parameter --tmlim, which allows limiting the
1641 solution time, was added.
1643 * doc/lang.*, doc/refman.*
1644 New edition of the GLPK documentation was included.
1646 * java-binding/*.*
1647 New version of the GLPK JNI (Java Native Interface) package was
1648 included in the distribution.
1650 * sample/lpglpk40.c
1651 A non-trivial example was added. It allows using GLPK as a base
1652 LP solver for Concorde, a program for solving Traveling Salesman
1653 Problem (TSP). For details see comments in lpglpk40.c.
1655 * sample/*.mod
1656 Some examples of LP and MIP models written in GNU MathProg were
1657 added.
1659 Tue May 06 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1661 * GLPK 4.0 has been released.
1663 * glpmpl.h, glpmpl1.c, glpmpl2.c, glpmpl3.c, glpmpl4.c
1664 The model translator for the GNU MathProg modeling language was
1665 implemented and included in the package.
1667 * glplpx.h, glplpx8d.c
1668 The api routine lpx_read_model, which is an interface to the
1669 MathProg translator, was included in the package.
1671 * glplpx.h, glplpx8a.c
1672 The api routine lpx_print_prob for writing LP/MIP problem data
1673 in plain text format was included in the package.
1675 * sample/glpsol.c
1676 New version of the GLPK stand-alone LP/MIP solver that supports
1677 the GNU MathProg modeling language was implemented.
1679 * doc/lang.latex, doc/lang.dvi, doc/lang.ps
1680 The document "GLPK: Modeling Language GNU MathProg" was included
1681 in the package.
1683 * doc/refman.latex, doc/refman.dvi, doc/refman.ps
1684 New edition of the GLPK Reference Manual was included in the
1685 package.
1687 * glplpx8c.c
1688 A bug in the api routine lpx_write_lpt was fixed. Due to that
1689 bug an addressing error occured in the routine if the objective
1690 function has the non-zero constant term.
1692 * glplan.h, glplan1.c, glplan2.c, glplan3.c, glplan4.c,
1693 * glplan5.c, glplan6.c, glplan7.c, glplan8.c, glplpx8b.c
1694 All modules of the translator for the GLPK/L modeling language
1695 were removed from the package, because GLPK/L being completely
1696 superseded by GNU MathProg is no more supported.
1698 Tue Mar 25 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1700 * GLPK 3.3 has been released.
1702 * glplpp.h, glplpp1.c, glplpp2.c
1703 An implementation of the built-in LP presolver was added to the
1704 package.
1706 * glplpx.h
1707 The flag presol was added to the structure LPX. This flag tells
1708 the lpx_simplex whether the built-in LP presolver should be used
1709 or not. By default this flag is off. Also three macros (namely
1710 LPX_E_NOPFS, LPX_E_NODFS, and LPX_K_PRESOL) that concern using
1711 the LP presolver were introduced.
1713 * glplpx3.c, glplpx6a.c
1714 These modules was changed to use the built-in LP presolver.
1716 * sample/glpsol.c
1717 Command line options --presol and --nopresol that concern using
1718 the LP presolver were added to the stand-alone LP/MIP solver.
1720 * glplan1.c
1721 This module was changed to allow declaring sets like A[1:10] in
1722 the models written in the GLPK/L modeling language.
1724 * doc/refman.latex, doc/lang.latex
1725 New editions of the documents "GLPK User's Guide" and "GLPK/L
1726 Modeling Language" were included in the distribution.
1728 * java-binding/*.*
1729 The package GLPK JNI (Java Native Interface) implementing Java
1730 binding for GLPK was included in the distribution. This package
1731 was developed and programmed by Yuri Victorovich <yuri@gjt.org>.
1733 Tue Feb 18 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1735 * GLPK 3.2.4 has been released.
1737 * glplpx6b.c
1738 The code was changed to allow auxiliary variables have non-zero
1739 objective coefficients.
1741 Also a minor bug was fixed (the constant term was not considered
1742 on displaying the objective function value).
1744 * sample/glpsol.c
1745 The code was changed to fix a bug (the command-line option 'bfs'
1746 was not recognized). The bug was fixed due to report provided by
1747 Olivier <odwl@skynet.be>.
1749 * glplpt.c
1750 The code was changed to fix a bug (binary variables were treated
1751 erroneously as integer ones).
1753 * glplpx6b.c
1754 The code was changed to fix a bug (variables that have no lower
1755 bounds were incorrectly processed on converting to the standard
1756 formulation). The bug was fixed due to report kindly provided by
1757 Kjell Eikland <kjell.eikland@broadpark.no>.
1759 Mon Nov 11 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1761 * GLPK 3.2.3 has been released.
1763 * glpmip.h, glpmip1.c
1764 A preliminary implementation of the branch-and-bound driver
1765 based on the implicit enumeration suite (glpies) was added to
1766 the package. This module is not documented yet.
1768 * glplpx6c.c
1769 A new implementation of the api routine lpx_integer which now
1770 is based on the b&b driver (see glpmip above) was included in
1771 the package. This new implementation has exactly the same
1772 functionality as the old version and therefore all changes are
1773 transparent to the api user.
1775 * glpbbm.h, glpbbm.c
1776 * glprsm.h, glprsm1.c, glprsm2.c
1777 * glplp.h, glplp.c
1778 These modules were removed from the package, because they were
1779 used only in the old version of the routine lpx_integer, which
1780 was replaced by the new version (see glplpx6c above).
1782 * glplpx.h, glplpx6a.c
1783 The api routine lpx_check_kkt was included in the package and
1784 its description was added in the reference manual. This routine
1785 allows checking Karush-Kuhn-Tucker optimality conditions for an
1786 LP solution.
1788 * glplpx.h, glplpx8a.c
1789 Now the api routine lpx_print_sol also prints information about
1790 "solution quality" obtained via the api routine lpx_check_kkt.
1792 * glplpx.h, glplpx8a.c
1793 New api routines lpx_read_bas and lpx_write_bas were included
1794 in the package and documented. The routine lpx_write_bas allows
1795 writing a current basis from an LP object to a text file in the
1796 MPS format. The routine lpx_read_bas allows reading a basis
1797 prepared in the MPS format from a text file into an LP object.
1799 * glplpt.c
1800 The parsing routine which reads LP problem data prepared in the
1801 CPLEX LP format was modified to allow specifying lower bounds
1802 of variables also in the form 'variable >= lower bound' (in the
1803 bounds section). This modification was made due to a notice
1804 provided by Ivan Luzzi <iluzzi@libero.it>.
1806 * glplpx.h, glplpx8c.c
1807 The api routine lpx_write_lpt which allows writing LP problem
1808 data from an LP object to a text file using the CPLEX LP format
1809 was included in the package and documented.
1811 * glplpx.h, glplpx3.c
1812 The control parameter LPX_K_LPTORIG that affects the behavior
1813 of the api routine lpx_write_lpt was introduced.
1815 * glplan6.c
1816 The semantics of the language GLPK/L was changed to allow
1817 selection in case when not all mute letters of a predicate (the
1818 operand that follows the keyword 'where') are presented in a
1819 parameter (the operand that precedes the keyword 'where'), i.e.
1820 to allow writing something like this:
1821 y[j] := sum(i, x[i] where p[i,j]);
1822 The paragraph "Selection" in the langauge description (page 25)
1823 was also correspondingly changed. This change of the language
1824 semantics was undertaken due to a notice provided by Peter Lee
1825 <plee@kinggee.com.au>.
1827 * sample/hwd.lpm
1828 A nice example of LP model written in GLPK/L and contributed by
1829 Peter Lee <plee@kinggee.com.au> was included in the package.
1831 * glplpx6b.c
1832 The api routine lpx_interior was modified: a) to compute dual
1833 values for all structural as well as auxiliary variables; b) to
1834 allow specifying non-zero objective coefficients at auxiliary
1835 variables.
1837 * sample/glpsol.c
1838 Three new command-line options were added to the solver, which
1839 are: --plain, --orig, and --wrlpt.
1841 Mon Oct 14 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1843 * GLPK 3.2.2 has been released.
1845 * glplpt.h, glplpt.c
1846 A module that reads LP/MIP problem data in CPLEX LP format was
1847 implemented.
1849 * glplpx8c.c
1850 An api routine lpx_read_lpt that reads LP/MIP problem data in
1851 CPLEX LP format was implemented.
1853 * sample/glpsol.c, sample/plan.lpt
1854 A new command-line option '--lpt' that allows reading LP/MIP
1855 problem data in CPLEX LP format was added to the solver.
1857 * doc/refman.latex, doc/refman.dvi, doc/refman.ps
1858 A new edition of the Reference Manual was included.
1860 * source/*.c
1861 Casting to (unsigned char) was added in some calls to the
1862 classification functions (isalpha, etc.). The bug was fixed due
1863 to report provided by Morten Welinder <terra@diku.dk>.
1865 * glplpx8a.c
1866 The local routine mps_numb used in the routine lpx_write_mps
1867 was modified to correctly format floating-point numbers that
1868 have two digits in the decimal exponent. The bug was fixed due
1869 to report provided by Vlahos Kiriakos <Kiriakos.Vlahos@gs.com>.
1871 * glplan.h, glplan1.c, ..., glplan8.c
1872 Several serious bugs were fixed in the language processor due
1873 to reports provided by <NORBERT.PIOTROWSKI@LHSYSTEMS.COM>:
1874 (a) a static search tree used to find sparse array elements was
1875 sometimes overwritten that caused the message 'assertion failed'
1876 to appear; the bug was fixed by creating separate search trees
1877 in parsing routines; (b) a variable declared using the
1878 predicate-controlled variable declaration statement had wrong
1879 order of domain sets, because the variable array was built as
1880 a copy of the predicate array; the bug was fixed by using the
1881 internal routine transpose that coordinates mute letters (and
1882 therefore domain sets) on copying sparse arrays; (c) sometimes
1883 assignment statements like x[#a,#b,#c] := ... was incorrectly
1884 processed; the bug was fixed by including an appropriate check
1885 into the internal routine assign_stmt.
1887 * glp_simplex.c
1888 An additional check to see if all lower bounds are not greater
1889 than corresponding upper bounds was included in the routine to
1890 prevent wrong results to appear. Such incorrectness sometimes
1891 was not detected, namely, when variables with such bounds were
1892 non-basic and never entered the basis.
1894 * glpspx1.c
1895 Maximal number of simplex iterations before reinversion was
1896 decreased from 100 to 50. This allowed to improve accuracy and,
1897 that is more important, to reduce the solution time for many
1898 serial lp problems approximately 1.5--2 times.
1900 * glpspx2.c
1901 A check to see if all elements in the column chosen to enter
1902 the basis are close to zero in the routine spx_prim_chuzr was
1903 temporarily removed because this check gave wrong conclusion in
1904 case when the corresponding non-basic variable had zero column
1905 in the constraint matrix. An analogous check to see if all
1906 elements in the row chosen to leave the basis are close to zero
1907 in the routine spx_dual_chuzc was also temporarily removed on
1908 the same reason. The bug was fixed due to reports provided by
1909 Flavio Keidi Miyazawa <fkm@ic.unicamp.br> and Vlahos Kiriakos
1910 <Kiriakos.Vlahos@gs.com>.
1912 Mon Aug 12 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1914 * GLPK 3.2.1 has been released.
1916 * glpbcs.h, glpbcs1.c, glpbcs2.c
1917 * glpies.h, glpies1.c, glpies2.c, glpies3.c
1918 A preliminary implementation of the branch-and-cut framework
1919 was included in the package.
1921 * doc/brcut.txt
1922 The document "GLPK: A Preliminary Implementation of the
1923 Branch-And-Cut Framework" was included in the distribution.
1925 * sample/tspsol.c
1926 An illustrative program for solving symmetric TSP based on the
1927 branch-and-cut method was included in the package.
1929 * glpdmp.h, glpdmp.c
1930 A new, re-enterable version of routines for managing dynamic
1931 memory pools was included in the package.
1933 * glpavl.h, glpavl.c
1934 A new, re-enterable version of routines for managing AVL search
1935 trees was included in the package.
1937 * glplib.h, glplib2.c
1938 Two new low-level routines ufopen and ufclose were included in
1939 the package.
1941 * glplpx.h, glplpx7.c
1942 The following new api routines were added: lpx_eval_activity,
1943 lpx_eval_red_cost, lpx_reduce_form, lpx_mixed_gomory.
1945 * glptsp.h, glptsp.c
1946 A module for reading TSP data using TSPLIB format was included
1947 in the package.
1949 Mon Jul 15 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1951 * GLPK 3.2 has been released.
1953 * glplpx.h, glplpx1.c, glplpx2.c
1954 The identifier 'class' (used as a member name in the structure
1955 LPX and as an argument name in the routine lpx_set_class) was
1956 changed to 'clss' in order to avoid conflicts with C++ reserved
1957 words.
1959 * glpk.h, glplpx.h, glplpx1.c, glplpx2.c, glplpx6a.c,
1960 * glplpx6b.c, glplpx6c.c, glplpx7.c, glplpx8.c
1961 The following new api routines were added: lpx_set_obj_name,
1962 lpx_get_obj_name, lpx_get_row_mark, lpx_get_col_mark,
1963 lpx_transform_row, lpx_transform_col, lpx_prim_ratio_test,
1964 lpx_dual_ratio_test, lpx_interior, lpx_get_ips_stat,
1965 lpx_get_ips_row, lpx_get_ips_col, lpx_get_ips_obj, lpx_read_lpm,
1966 lpx_write_mps, lpx_print_ips.
1968 * glpsol.c
1969 The solver was completely re-programmed using new api routines.
1971 * lang.latex, lang.dvi, lang.ps
1972 New edition of the document "GLPK: Modeling Language GLPK/L"
1973 was included in the distribution.
1975 * refman.latex, refman.dvi, refman.ps
1976 New edition of the document "GLPK: Reference Manual" (which
1977 contains descriptions of all new api routines) was included in
1978 the distribution.
1980 * glpapi.h, glpapi1.c, glpapi2.c, glpapi3.c, glpapi4.c
1981 These files (which contain old api routines) were removed from
1982 the package.
1984 * glpipm1.c, glpipm2.c
1985 The file glpipm1.c was renamed to glpipm.c. The file glpipm2.c
1986 was used only by old api routines and therefore was removed from
1987 the package.
1989 * language.texinfo
1990 Old version of the document "GLPK: Modeling Language GLPK/L" was
1991 removed from the distribution.
1993 Mon May 27 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1995 * GLPK 3.1 has been released.
1997 * glplpx.h, glplpx1.c, glplpx2.c, glplpx3.c, glplpx4.c,
1998 * glplpx5.c, glplpx6.c, glplpx7.c, glplpx8.c
1999 A preliminary implementation of new API routines was completed.
2001 * refman.latex, refman.dvi, refman.ps
2002 A draft edition of the document "GLPK Reference Manual", which
2003 describes new API routines, was included.
2005 * glplib3.c
2006 A bug in measuring long time intervals was fixed up.
2008 * glprsm3.c
2009 This module contains some obsolete routines not longer used and
2010 therefore it was removed from the package (into the subdirectory
2011 'oldsrc').
2013 * glprsm.h
2014 Some declarations related to the module 'glprsm3.c' (see above)
2015 were removed.
2017 * guide.texinfo
2018 The document "GLPK User's Guide" describing old API routines was
2019 removed from the package (into the subdirectory 'oldsrc').
2021 * newapi.txt
2022 The document "New GLPK API Routines" was removed at all, because
2023 it is superseded by the new reference manual (see above).
2025 Mon May 13 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
2027 * GLPK 3.0.8 has been released.
2029 * glplpx.h, glplpx1.c, glplpx2.c, glplpx3.c, glplpx4.c,
2030 * glplpx5.c, glplpx6.c, glplpx7.c
2031 A preliminary (currently incomplete) implementation of new api
2032 routines was included.
2034 * sample/newsamp.c
2035 A sample program for the new api routines was included.
2037 * newapi.txt
2038 A draft of the document "New GLPK API Routines" was included.
2040 * glpapi2.c, glpapi5.c, glpapi6.c
2041 These modules (which contain the api routines glp_call_rsm1,
2042 glp_simplex1, glp_pivot_in, glp_pivot_out) were removed from the
2043 package (to the subdirectory 'oldsrc') since these routines are
2044 functionally superseded by the new api routines.
2046 * glpk.h, glpapi2.c, glpapi3.c, glpapi4.c
2047 The api routines glp_simplex2, glp_call_ipm1, glp_call_bbm1 were
2048 renamed to glp_simplex, glp_interior, glp_integer, respectively.
2050 * sample/glpsol.c
2051 Some command-line options (which got obsolete due to the recent
2052 changes in api) were excluded.
2054 * doc/guide.texinfo
2055 New edition of the document "GLPK User's Guide" was included in
2056 the distribution to reflect the changes in some api routines.
2058 * doc/libref.texinfo
2059 This document was removed from the package (to the subdirectory
2060 'oldsrc') since it describes the library routines, most of which
2061 got obsolete and no longer used.
2063 * Makefile.in
2064 A minor bug was fixed up due to bug report from Hans Schwengeler
2065 <Hans.Schwengeler@unibas.ch>.
2067 Mon Apr 22 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
2069 * GLPK 3.0.7 has been released.
2071 * glpduff.h, glpduff.c, glpspx.h, glpspx1.c, glpspx2.c,
2072 * glpapi7.c
2073 These modules were replaced by a new implementation of the
2074 simplex method and therefore they were removed from the package
2075 (however they still can be found in the subdirectory 'oldsrc').
2077 * glprsm1.c
2078 The routine crash_aa was replaced by a new implementation and
2079 therefore it was removed from the file 'glprsm1.c'.
2081 * glplpx.h, glplpx.c, glpspx.h, glpspx1.c, glpspx2.c, glpspx3.c,
2082 * glpspx4.c, glpapi7.c
2083 New (currently incomplete) implementation of the simplex method
2084 components was included in the package.
2086 Thu Mar 28 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
2088 * GLPK 3.0.6 has been released.
2090 * glpluf.h, glpluf.c, glpinv.h, glpinv.c
2091 New version of LU-factorization and basis maintenance routines
2092 (based on Forrest-Tomlin updating technique) was implemented.
2094 * glpeta.h, glpeta.c, glpfhv.h, glpfhv.c, glpgel.h, glpgel.c,
2095 * glppfi.h, glppfi.c, glprfi.h, glprfi.c
2096 These routines implement some other forms of the basis matrix.
2097 Now they became obsolete being functionally superseded by the
2098 new version of basis maintenance routines (see above) and were
2099 removed from the package (however they still can be found in the
2100 subdirectory 'oldsrc').
2102 * glpbbm.c, glprsm.h, glprsm1.h, glprsm2.h, glpspx.h, glpspx2.c,
2103 * glprsm2.c, glpsol.c
2104 Necessary changes were made in order to use the new version of
2105 basis maintenance routines.
2107 Tue Jan 29 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
2109 * GLPK 3.0.5 has been released.
2110 Structure of the package was re-organized in order to simplify
2111 its maintenance.
2113 * doc/guide.texinfo
2114 New edition of the document "GLPK User's Guide" was included in
2115 the distribution. Now the document includes descriptions of some
2116 additional API routines recently added to the package.
2118 * doc/newapi.txt
2119 The document "Additional GLPK API Routines" was removed from the
2120 distribution, because the corresponding material was included in
2121 the user's guide (see above).
2123 Mon Dec 10 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2125 * GLPK 3.0.4 has been released.
2127 * glpspx.h, glpspx1.c, glpspx2.c, glpapi/glp_simplex2.h
2128 A new, more efficient version of the two-phase primal simplex
2129 method was implemented (advanced initial basis, projected
2130 steepest edge, recursive computations of solution components).
2132 * glpapi/glp_call_bbm1.c
2133 Now LP relaxation can be solved either using rsm1_driver(), or
2134 using glp_simplex2(). The choice is controlled by the parameter
2135 'meth' (a member of struct bbm1).
2137 * sample/glpsol.c
2138 The new implementation of the simplex method is now used by
2139 default. The old version is available via --old-sim option.
2141 * glpmat/gm_scaling.c
2142 Now this routine displays only two lines: an initial "quality"
2143 and a final "quality".
2145 * glplp/prepro_lp.c
2146 Identifiers 'fmin' and 'fmax' renamed to 'f_min' and 'f_max' in
2147 order to avoid conflict with <math.h>. The bug was fixed due to
2148 report provided by Sami Farin <sfarin@ratol.fi>.
2150 Wed Oct 03 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2152 * GLPK 3.0.3 has been released.
2154 * glprsm/harris_row.c, glprsm/harris_col.c
2155 The relative tolerance used on the first pass of the two-pass
2156 ratio test was replaced by the absolute tolerance.
2158 * glprsm/rsm_primal.c, glprsm/rsm_feas.c, glprsm/rsm_dual.c
2159 The absolute tolerance passed to the two-pass ratio test routine
2160 was decaresed (for both primal and dual simplex).
2162 These changes were made in order to improve numerical stability
2163 of the simplex method.
2165 * glprsm/glp_call_rsm1.c, glprsm/glp_call_bbm1.c,
2166 * glprsm/glp_simplex1, glprsm/glp_pivoting.c
2167 Default form of the inverse was changed from RFI to AFI.
2169 Mon Sep 24 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2171 * GLPK 3.0.2 has been released.
2173 * glpfhv.h, glpfhv.c
2174 New version of the basis maintaining routines was implemented.
2175 These routines, which are based on so called FHV-factorization
2176 (a variety of LU-factorization) and Gustavson's data structures,
2177 perform the main operations on the basis matrix faster at the
2178 expense of some worsening numerical accuracy.
2180 * glprsm.h, glprsm/afi.c
2181 The routines, which implement AFI (Advanced Form of the
2182 Inverse) based on FHV-factorization, were added to the package.
2183 This new form is available via the parameter form = 3 (on API
2184 level) or via the option --afi (in GLPSOL solver).
2186 * EFI was renamed to PFI
2187 In order to correct terminology the acronym EFI (Elimination
2188 Form of the Inverse) was replaced by PFI (Product Form of the
2189 Inverse) everywhere in the source code and the documentation.
2191 * glpset/umalloc.c, glpset/ucalloc.c
2192 * glpset/get_atom.c, glpset/get_atomv.c
2193 These memory management routines were changed in order *not* to
2194 clear allocated memory blocks by binary zeros.
2196 Wed Aug 01 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2198 * GLPK 3.0.1 has been released.
2200 * glpapi/old_api.c, glplp/extract_lp.c, store_lpsol.c
2201 Old API routines were deleted from the package.
2203 * include/glpk.h, include/glpapi.h, include/glplp.h
2204 Specifications of old API routines and data structures were
2205 removed from the headers.
2207 * sample/glpsol.c
2208 New version of the stand-alone solver GLPSOL that now uses new
2209 API routines was implemented.
2211 * glpapi/glp_set_row_fctr.c, glpapi/glp_set_col_fctr.c,
2212 * glpapi/glp_get_row_fctr.c, glpapi/glp_get_col_fctr.c,
2213 * glpapi/glp_scale_prob.c
2214 Scaling routines were added.
2216 * glpapi/glp_write_mps.c
2217 The routine for writing problem data in MPS format was added.
2219 * glpapi/glp_simplex1.c
2220 Comprehensive driver to the simplex method was added.
2222 * glpapi/glp_pivoting.c
2223 The routines glp_pivot_in() and glp_pivot_out() intended for
2224 basis maintaining were added.
2226 * glprsm/create_rsm.c, glprsm/delete_rsm.c, glprsm/scale_rsm.c,
2227 * glprsm/build_basis.c
2228 Additional low level routines related to the simplex method
2229 were added.
2231 * glpk.h, glpapi.h, glprsm.h
2232 Additional specifications for new routines and data structures
2233 were added.
2235 * sample/lpglpk30.c
2236 A non-trivial example was added. It allows using GLPK as a base
2237 LP solver for Concorde, a program for solving Traveling Salesman
2238 Problem (TSP). For details see comments in 'lpglpk30.c'.
2240 * doc/newapi.txt
2241 The document "Additional GLPK API Routines" that describes some
2242 new API routines was included.
2244 Thu Jul 19 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2246 * GLPK 3.0 has been released.
2248 Now GLPK is provided with new API, which is intended for using
2249 the package in more complex algorithmic schemes.
2251 * glpapi/old_api.c
2252 All routines related to old API were gathered in one file named
2253 'old_api.c'.
2255 * glpapi/*.c
2256 These routines that implement new API were added to the package.
2258 * include/glpk.h, include/glpapi.h
2259 Specifications of new API routines and data structures were
2260 added to these headers. Specifications of old API routines and
2261 data structures were locked by #ifdef GLP_OLD_API directive.
2263 * doc/guide.texinfo
2264 New edition of the document "GLPK User's Guide" that correspond
2265 to new API was included.
2267 Thu Jun 14 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2269 * GLPK 2.4.1 has been released.
2271 * doc/glpk_ml.texinfo
2272 The new document "Modeling Language GLPK/L" was included.
2274 * doc/glpk_ug.texinfo
2275 New edition of the document "GLPK User's Guide" was included.
2277 * doc/language.txt
2278 The preliminary document "GLPK/L Modeling Language: A Brief
2279 description" was removed from the distribution, because it has
2280 been replaced by the new document "Modeling Language GLPK/L".
2282 * glplang/l_spar.c
2283 The routine comparison() was re-programmed in order to
2284 implement the relation operation as specified in the language
2285 description.
2287 * glpmip.h, glpmip/*.c
2288 The partition 'glpmip' was renamed to 'glpbbm'.
2290 Thu May 10 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2292 * GLPK 2.4 has been released.
2294 Now GLPK includes an implementation of a preliminary version of
2295 the GLPK/L modeling language.
2297 * glplang.h, glplang/*.c
2298 The header 'glplang.h' and a set of routines that implements
2299 the GLPK/L language processor (the partition 'glplang') were
2300 added to the package.
2302 * doc/language.txt
2303 The document "GLPK/L Modeling Language: A Brief Description
2304 (Supplement to GLPK User's Guide)" in plain text format was
2305 included in the package (see the file 'language.txt' in the
2306 subdirectory 'doc' of the distribution).
2308 * ex/model1.lpm, ex/model2.lpm
2309 Two examples of model descriptions written in GLPK/L were added
2310 to the package.
2312 * sample/glpsol.c
2313 This program was modified in order: a) to allow processing
2314 model description written in GLPK/L; b) to allow solving pure
2315 LP problem using the interior point method.
2317 * sample/glpipm.c
2318 This program was removed from the package, because its function
2319 was passed to the GLPSOL solver.
2321 * Makefile.in
2322 This file was changed in order to install the GLPSOL solver
2323 executable.
2325 Mon Apr 09 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2327 * GLPK 2.3 has been released.
2329 * glpmip.h, glpmip/*.c
2330 These routines (that implement the branch-and-bound method) were
2331 re-programmed in order to improve robustness of implementation.
2332 In particular, heuristic routines were carried out from the main
2333 driver routine.
2335 Additional GLPK API routines were documented.
2337 New edition of the document "GLPK User's Guide" was included in
2338 the package.
2340 The preliminary document "Mixed Integer Programming Using GLPK
2341 Version 2.2 (Supplement to GLPK User's Guide)" was removed from
2342 the package, because this material was included in GLPK User's
2343 Guide.
2345 Thu Mar 15 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2347 * GLPK 2.2 has been released.
2349 Now GLPK includes a tentative implementation of the
2350 branch-and-bound procedure based on the dual simplex method for
2351 mixed integer linear programming (MIP).
2353 The preliminary document "Mixed Integer Programming Using GLPK
2354 Version 2.2 (Supplement to GLPK User's Guide)" was included into
2355 the package in plain text format (see the file 'mip.txt' in the
2356 subdirectory 'doc' of the distribution).
2358 * glpmip.h, glpmip/*.c, glpapi/glp_integer.c
2359 These routines (that implement the branch-and-bound method) were
2360 added to the package.
2362 * sample/glpsol.c
2363 This program was modified in order to allow solving LP and MIP
2364 problems.
2366 * glprsm/rsm_primal.c, glprsm/rsm_dual.c, glprsm/rsm_feas.c,
2367 * glprsm/rsm1_driver.c
2368 These routines (which are drivers to basic components of the
2369 revised simplex method) were added to the package.
2371 Mon Feb 19 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2373 * GLPK 2.1 has been released.
2375 * glprsm.h, glprsm/*.c
2376 These routines (that implement components of the revised simplex
2377 method) were re-programmed and documented.
2379 The document "GLPK Implementation of the Revised Simplex Method"
2380 was included into the package.
2382 Thu Jan 25 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2384 * GLPK 2.0 has been released.
2386 Now GLPK includes a tentative implementation of the primal-dual
2387 interior point method for large-scale linear programming (for
2388 more details see the file `NEWS' in the distribution). A number
2389 of routines related to the interior point method were added to
2390 the package.
2392 * insist.c
2393 The routine `insist' and the macro of the same name were
2394 introduced into the package in order to replace the standard
2395 macro `assert'. Some routines require the expression specified
2396 in the `assert' macro to be evaluated, but compiling the package
2397 with NDEBUG option prevents from that. This bug was fixed due to
2398 bug report provided by Peter A. Huegler <phuegler@bsco.com>.
2400 * Makefile.in
2401 Minor bug was fixed due to a patch provided by Alexandre Oliva
2402 <oliva@lsd.ic.unicamp.br>.
2404 Wed Jan 10 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2406 * GLPK 1.1.2 has been released.
2408 * umalloc.c, ufree.c, create_pool.c, get_atom.c, get_atomv.c
2409 These routines were changed in order to fix a bug due to
2410 report provided by Andrew Hood <ajhood@fl.net.au>. Because of
2411 this bug data alignment error occured on the Sparc computer.
2413 Tue Dec 14 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>
2415 * GLPK 1.1.1 has been released.
2417 Minor bug was fixed in `Makefile.in'.
2419 GLPK Library Reference was included.
2421 Mon Nov 27 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>
2423 * GLPK 1.1 has been released.
2425 Minor changes were made in order to co-ordinate GLPK routines
2426 and their descriptions.
2428 GLPK User's Guide was included.
2430 Fri Oct 20 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>
2432 * GLPK 1.0 has been released.