
The ECN No Name Newsletter is no longer being published.
This is an archived issue.
[previous article]
[next article]
What's New In CPLEX 2.1
NO NAME NEWSLETTER -- June 1993
Philip R. Moyer
CPLEX on ECN's Sun 4s has been upgraded from version 2.0 to
version 2.1. This version provides some bug fixes and additional
functionality. As before, CPLEX v2.1 can be accessed in the
directory /usr/ecn/cplex.
There are some compatibility problems between versions 2.0 and
2.1, which are described below. For this reason, version 2.0
will be available on the Sun 4s in the directory
/usr/ecn/cplex.old; this directory will be removed on Wednesday,
June 16, 1993.
Copies of the version 2.1 release notes can be obtained from your
site specialists.
Please note the following important information.
Conversion to CPLEX 2.1:
CPLEX Callable Library and Mixed Integer Library
Most applications calling CPLEX 2.0 Callable Library routines
will require no changes to run CPLEX 2.1, with a few minor
exceptions noted below. However, all mixed-integer applications
calling the CPLEX Mixed Integer Library routines will require
minor modifications, notably to the loadmprob, mpsmread,
savmread, ordread, and loadorder routine arguments.
CPLEX Callable Library and Mixed Integer Library:
-
CPLEX 2.1 includes separate routines for
accessing/setting primal and dual pricing methods, whereas
earlier CPLEX versions used a single pricing setting for
both primal and dual simplex. Calls to getpriind or
setpriind should be replaced with either get/setppriind
(primal pricing method) or get/setdpriind (dual pricing
method).
-
The routines objsa and rhsaa have been made consistent
with other solution routines, in such a way that ranges of
sensitivity information can be returned. The actual argument
list is unchanged.
-
The savwrite function in CPLEX 2.1 no longer includes
basis file information in the SAV file if the advanced basis
indicator is reset to a value of 0 using setadvind (default
value is 1).
Mixed Integer Library Only:
-
All loadmprob calls must be modified slightly to load
mixed integer problems into CPLEX 2.1. The SOS-related
arguments which were present in CPLEX 2.0 (last 5 arguments)
should be deleted. All SOS information is loaded separately
in CPLEX 2.1 using the loadsos routine. See the revised
loadmprob prototype on page 224 of the CPLEX 2.1 User
Documentation.
-
All mpsmread calls must be modified slightly for CPLEX
2.1. The 5 SOS-related arguments for mpsmread in CPLEX 2.0
have been replaced with 6 slightly different SOS-related
arguments in CPLEX 2.1. See the revised mpsmread prototype
on page 236 of the CPLEX 2.1 User Documentation.
-
All savmread calls must be modified. The 6 SOS-related
arguments in CPLEX 2.0 have been replaced with 7 slightly
different SOS related arguments in CPLEX 2.1. See the
revised savmread prototype on page 237 of CPLEX 2.1 User
Documentation.
-
All loadorder calls must be modified to include one
additional argument (to specify branching direction for a
given variable). See the revised loadorder prototype on
page 225 of CPLEX 2.1 User Documentation.
-
All ordread routine calls must be modified to include an
additional argument (for reading branching direction for a
given variable from an ORD file). See the revised ordread
prototype on page 239 of the CPLEX 2.1 User Documentation.
Conversion to CPLEX 2.1:
Linear Optimizer and Mixed Integer Optimizer
Most users of the interactive Linear Optimizer and Mixed Integer
Optimizer will be able to use existing problem files, batchfiles,
and specfiles with no changes. There are, however, a few
enhancements in CPLEX 2.1 which may affect current CPLEX 2.0
users. Please review the list below to determine if any of these
changes apply to your usage.
CPLEX Linear Optimizer and Mixed Integer Optimizer:
-
CPLEX 2.1 has two "gradient" parameters for setting the
kind of pricing used during optimization: pgradient for
primal simplex, and dgradient for dual simplex. Earlier
versions of CPLEX used a single pricing parameter, gradient,
to set pricing strategy both dual and primal simplex. If
you currently reset the gradient parameter in CPLEX 2.0,
either interactively or through a specfile, with CPLEX 2.1
you will now want to reset either the pgradient or dgradient
parameter, whichever applies.
-
When using the CPLEX network optimizer, if no additional
option is specified after issuing the 'NETOPT' command,
CPLEX will use dual simplex to finish optimization after the
network portion is solved. This is a change from CPLEX 2.0,
which used a default of primal simplex. In CPLEX 2.1, the
use of dual simplex after network optimization was found to
yield the best performance for most problems. For some
problems, however, primal simplex may be faster, and you may
still elect to complete optimization with primal simplex by
including the option 'OPTIMIZE' after the 'NETOPT' command.
-
If you generate binary SAV files, CPLEX 2.1 will not
include basis information in the SAV file if the advanced
basis indicator (advance parameter) is reset to 'NO'
(default is 'Yes'). This is a change from earlier versions
of CPLEX.
-
CPLEX 2.1 includes pre-processing algorithms to simplify
and reduce problems prior to beginning optimization: the
CPLEX Presolve and Aggregator. At default settings, these
pre-processors are automatically invoked, since most
problems benefit from problem reduction. However, both the
Presolve and Aggregator require additional memory, so if
memory availability is tight, consider turning one or both
off by issuing the following commands:
'SET PRESOLVE N'
'SET AGGREGATE N'
Mixed Integer Optimizer Only:
-
CPLEX Mixed Integer Optimizer 2.1 includes a number of
new parameter and algorithm options and defaults -- see
"What's New in CPLEX 2.1" for a complete listing. For most
problems, these new features improve performance. A few
problems, however, may have coincidentally run faster under
2.0 defaults. If you notice any degradation in performance
when converting to CPLEX 2.1, try re-setting the following
algorithmic parameters to more closely resemble 2.0 default
settings:
- reset the variableselect parameter to 1
- reset the backtrack parameter to 1.0 or higher
-
CPLEX 2.1 can take advantage of Special Ordered Set
(SOS) information when present. Older versions of CPLEX
allowed SOS information to be specified, but ignored this
information. If you wish CPLEX to take advantage of SOS
branching, review the CPLEX User Documentation section
describing SOSs in Chapter 4. If you want to specify SOS
information using MPS files, review the SOS specification
section in Chapter 5 as well.
webmaster@ecn.purdue.edu
Last modified: Saturday, 13-Sep-97 00:20:32 EST
HTML