File: README.upgrading

package info (click to toggle)
glpk 4.45-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 9,264 kB
  • sloc: ansic: 61,624; sh: 10,684; sql: 142; makefile: 137; cs: 83
file content (198 lines) | stat: -rw-r--r-- 7,002 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
This file lists significant changes to the GLPK API.  It is adapted
from notes made in the Changelog file.  This file emphasizes changes
that are most likely to break old code, including suggestions for
adapting code.

First, the most significant changes are summarized, then a longer list
is given.  For more information on all the changes that have been made
over time, consult the Changelog file.


Most significant changes, in reverse chronological order:

  4.7  Contributed interfaces to Delphi, Matlab, and Java were removed
       due to licensing concerns.  

       If your code made use of these interfaces, then you may be able
       to attain them elsewhere on the internet.  Otherwise, you will
       need to continue using the older version of GLPK.

  4.4  Significant changes to many API routines.  Some routines were
       immediately removed; others remained supported (though
       deprecated) for several versions.

       If your code from an earlier version of GLPK breaks, then see
       version 4.4 in the more detailed list below for a table of
       function changes.  Some changes require relatively easy
       function name changes, while others represent a new way of
       doing things and will require that you rewrite some code.

  4.0  The GNU MathProg Language (GMPL) was added to the software, and
       the GLPK/L modeling language was removed.  GMPL is a subset of
       the common AMPL modeling language.

       If you have models written in GLPK/L, then you either need to
       use an old version of GLPK, or you need to convert your models
       by hand.  The new modeling language, GMPL, is based on the
       well-established language AMPL, so it should be much easier to
       use and is much less likely to have major
       backward-compatibility issues in the future.


The following list describes the most significant API changes for each
version of GLPK in reverse chronological order.

4.9
  An advanced branch-and-bound solver (the routine lpx_intopt)
  was implemented.

  The routine lpx_print_mip was changed to print MIP feasibility
  conditions.

  The built-in functions sin, cos, atan, and atan2 were added to
  the MathProg language.

4.8
  No API changes.

4.7
  **  Contributed interfaces to Delphi, Matlab, and Java were
  removed due to licensing problems.

  Some new API routines added.  These should not affect
  backward-compatibility. 

4.6
  Three new statements were implemented in the GNU MathProg
  language: solve, printf, and for. Also some bugs were fixed.

  Two API routines were added: lpx_read_prob and lpx_write_prob,
  which allow reading and writing problem data in GNU LP format.

4.5
  No API changes.

4.4

  All API routines were re-implemented using new data structures.
  Some new API routines were added and some existing API routines
  became obsolete as shown below:

  Obsolete API routine   Equivalent new API routine
  lpx_check_name         (no more supported)
  lpx_set_obj_c0         lpx_set_obj_coef
  lpx_set_row_coef       (no more supported)
  lpx_set_col_coef       lpx_set_obj_coef
  lpx_load_mat           (no more supported)
  lpx_load_mat3          lpx_load_matrix
  lpx_unmark_all         (no more supported)
  lpx_mark_row           (no more supported)
  lpx_mark_col           (no more supported)
  lpx_clear_mat          (no more supported)
  lpx_del_items          lpx_del_rows, lpx_del_cols
  lpx_get_row_bnds       lpx_get_row_type, lpx_get_row_lb,
                         lpx_get_row_ub
  lpx_get_col_bnds       lpx_get_col_type, lpx_get_col_lb,
                         lpx_get_col_ub
  lpx_get_obj_c0         lpx_get_obj_coef
  lpx_get_row_coef       (no more supported)
  lpx_get_col_coef       lpx_get_obj_coef
  lpx_get_row_mark       (no more supported)
  lpx_get_col_mark       (no more supported)
  lpx_get_row_info       lpx_get_row_stat, lpx_get_row_prim,
                         lpx_get_row_dual
  lpx_get_col_info       lpx_get_col_stat, lpx_get_col_prim,
                         lpx_get_col_dual
  lpx_get_ips_stat       lpx_ipt_status
  lpx_get_ips_row        lpx_ipt_row_prim, lpx_ipt_row_dual
  lpx_get_ips_col        lpx_ipt_col_prim, lpx_ipt_col_dual
  lpx_get_ips_obj        lpx_ipt_obj_val
  lpx_get_mip_stat       lpx_mip_status
  lpx_get_mip_row        lpx_mip_row_val
  lpx_get_mip_col        lpx_mip_col_val
  lpx_get_mip_obj        lpx_mip_obj_val

  Obsolete API routines were kept for backward compatibility,
  however, they will be removed in the future.

4.3
  Some new built-in functions (round, trunc, Irand224, Uniform01,
  Uniform, Normal01, Normal) were added to the MathProg language.

  The MathProg syntax was changed to allow writing 'subj to'.

  The api routine lpx_print_sol was changed to print the number of
  non-basic variable, which causes primal unboundness.

4.2
  A dummy version of the integer optimization routine lpx_intopt
  was included in the package. Later this routine will replace the
  routine lpx_integer.

  Being replaced by IOS routines (see above) the Branch-and-Cut
  Framework (BCS) routines were removed from the package.

4.1
  No API changes noted.

4.0

  ** Major change: the GLPK/L modeling language was removed and the
     GNU MathProg Language (GMPL) was added.	

  The api routine lpx_read_model, which is an interface to the
  MathProg translator, was included in the package.

  The api routine lpx_print_prob for writing LP/MIP problem data
  in plain text format was included in the package.

  All modules of the translator for the GLPK/L modeling language
  were removed from the package, because GLPK/L being completely
  superseded by GNU MathProg is no more supported.

3.3
  No API changes that should break backwards compatibility.

3.2.4
  No changes to API.

3.2.3
  Now the api routine lpx_print_sol also prints information about
  "solution quality" obtained via the api routine lpx_check_kkt.

  The api routine lpx_interior was modified: a) to compute dual
  values for all structural as well as auxiliary variables; b) to
  allow specifying non-zero objective coefficients at auxiliary
  variables.

  Some new API routines were added.

3.2.2
  An api routine lpx_read_lpt that reads LP/MIP problem data in
  CPLEX LP format was implemented.

3.2.1
  The following new api routines were added: lpx_eval_activity,
  lpx_eval_red_cost, lpx_reduce_form, lpx_mixed_gomory.

3.2
  The following new api routines were added: lpx_set_obj_name,
  lpx_get_obj_name, lpx_get_row_mark, lpx_get_col_mark,
  lpx_transform_row, lpx_transform_col, lpx_prim_ratio_test,
  lpx_dual_ratio_test, lpx_interior, lpx_get_ips_stat,
  lpx_get_ips_row, lpx_get_ips_col, lpx_get_ips_obj, lpx_read_lpm,
  lpx_write_mps, lpx_print_ips.

3.1
  Preliminary implementation of new API (no details given in
  Changelog)

3.0.3 through 3.0.8
  No API changes mentioned in Changelog.

3.0.3
  First Debian package of GLPK.


Brady Hunsaker <hunsaker@engr.pitt.edu>
This file is released to the public domain.