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.
|