ECN No Name Newsletter: June, 1993

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:

  1. 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).
  2. 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.
  3. 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:

  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  5. 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
    
  6. 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 Check] HTML