Javascript Menu by Deluxe-Menu.com
[Home]
[Client Area]
English Japanese
RELNOTES - March 2005

Release notes for Xpress-MP 2004D - all platforms.


NOTE: Release notes for 2003-2003G are available from here.
Users of older 2003 releases should check the above notes for
a description of improvements made in subsequent 2003 releases
in addition to those listed below.




Contents
--------


  New in this release


    Release 2004D

      1) Xpress-Optimizer 15.30.09
      2) Xpress-BCL 2.6.4


    Release 2004C

      1) Xpress-Optimizer 15.25
      2) Xpress-Mosel 1.4.1
         2.1) Runtime library
         2.2) Java interface
         2.3) mmjava module 1.0.0
         2.4) mmsystem module 1.4.1
         2.5) mmxprs module 1.4.1
      3) Xpress-BCL 2.6.2
      4) Licensing


    Release 2004B

      1) Xpress-Optimizer 15.20
      2) Xpress-Mosel 1.4.0
        2.1) Mosel Console
        2.2) Language
        2.3) Compiler Library
        2.4) Runtime Library
        2.5) Native Interface
        2.6) mmetc 1.4.0
        2.7) mmodbc 1.4.0
        2.8) mmquad 1.2.0
        2.9) mmsystem 1.4.0
        2.10) mmxprs 1.4.0
        2.11) mmxslp 1.3.6
      3) Xpress-IVE 1.15.01
      4) Xpress-SLP 1.17


    Release 2004A

      1)Xpress-Optimizer 15.10
      2)Xpress-BCL 2.6.0
      3) Xpress-Mosel 1.2.5
        3.1) Compiler Library
        3.2) mmxprs module 1.2.4
      4) Licensing



  Fixed in this release


    Release 2004D

      1) Xpress-Optimizer 15.30.09
      2) Xpress-BCL 2.6.4
      3) Xpress-Mosel
        3.1) mmxslp module 1.3.8

    Release 2004C

      1) Xpress-Optimizer 15.25
      2) Xpress-Mosel 1.4.1
         2.1) Runtime library
         2.2)_Compiler library
         2.3) mmetc module 1.4.1
         2.4) mmxslp module 1.3.7
         2.5) mmquad module 1.2.1
      3) Xpress-IVE 1.15.04
      4) Xpress-BCL 2.6.2
      5) Xpress-SLP 1.18


    Release 2004B

      1) Xpress-Optimizer 15.20
      2) Xpress-Mosel 1.4.0
        2.1) Language
        2.2) mmodbc 1.4.0
        2.3) mmxprs 1.4.0
        2.4) mmxslp 1.3.6
      3) Xpress-IVE 1.15.01
      4) Xpress-SLP 1.17

    Release 2004A

      1)Xpress-Optimizer 15.10
      2)Xpress-BCL 2.6.0
      3) Xpress-Mosel 1.2.5
        3.1) Runtime Library
        3.2) mmodbc module 1.2.1
        3.3) mmxslp 1.2.2
        3.4) Mod2Mos program 1.0.4
      4) Xpress-SLP 1.15
      5) Licensing


  Unresolved in this release

    Release 2004C

      1) mmxslp module










New in this release
-------------------
-------------------



  Release 2004D
  -------------

    1) Xpress-Optimizer 15.30.09
    - The MIP code can now be run in parallel on multiprocessor
      machines.
    - A diving heuristic is now used to find MIP solutions.
    - The barrier crossover has been improved on unstable problems.
    - The presolve has been improved to make it faster and improve
      the strengthening of the LP relaxation.
    - A new XPRSgetmqobj function has been added for getting
      multiple quadratic objective coefficients.
    - New functions XPRSsetcbmipthread and XPRSsetcbdestroymt have
      been added which define callbacks for the parallel MIP.
    - A new integer control MIPTHREADS has been added for
      controlling the number of parallel MIP threads.
    - A new integer control HEURDIVESTRATEGY has been added for
      controlling the diving heuristic.
    - A new integer problem attribute MIPTHREADID has been added for
      returning the thread ID of each MIP thread.
    - The MIP log has been changed to give more information.
    - The time taken to read large LP files has been reduced.


    2) Xpress-BCL 2.6.4
    - Retrieving IIS from Xpress-Optimizer (C and Java).
    - New Optimizer parameters HEURDIVESTRATEGY, HEURSELECT;
      parameter MAXSLAVE renamed to MIPTHREADS.
    - Documentation: new example showing error handling with Java



  Release 2004C
  -------------

    1) Xpress-Optimizer 15.25
    - Optimizer Java interface for Unix platforms has not been
      included on this CD as it is undergoing a revision.
    - The barrier code is now 5% faster on average on our benchmark
      LP test set
    - Dual is now more stable on numerically difficult problems
      where the reduced costs cannot be calculated accurately

    2) Xpress-Mosel 1.4.1

      2.1) Runtime library
      - extension of 'raw' driver for Java support
      - when defining the default output stream with 'setdefstream',
        using F_OUTPUT|F_LINBUF (instead of F_OUTPUT) enables line
        buffering on the stream (by default it is enabled only if
        the stream is a terminal)

      2.2) Java interface
      - the Java interface has been entirely rewritten and now
        offers the same functionlity as the C interface. Moreover it
        allows exchange of data between Java and Mosel through
        objects using 'initialisations' blocks as well as mapping of
        Mosel streams to Java streams. This interface relies on a
        new module (mmjava) and requires Java 1.4.

      2.3) mmjava module 1.0.0
      - This new module defines IO drivers 'java' and 'jraw' to be
        used  when Mosel is called from Java. Note that the module
        cannot  be used from outside of Java.

      2.4) mmsystem module 1.4.1
      - procedures 'fcopy' and 'fmove' now accept a directory as
        destination file name (if both file names are using the
        default driver)

      2.5) mmxprs module 1.4.1
      - new function 'getsensrng' for getting sensitivity ranges for
        objective and RHS function coefficients
      - added constants XPRS_ALG_*, XPRS_BAR_*, XPRS_LP_*,
        XPRS_MIP_*, XPRS_OTH
      - added control parameter XPRS_SBTHREADS
      - handling of new LPSTATUS value (UNSOLVED)


    3) Xpress-BCL 2.6.2
    - New problem status value XPRB_LP_UNSOLVED
    - BCL Java: definition of new constants


    4) Licensing
    - The name of the license manager log file has been changed to
      xpress.log. Under Windows it will now be generated in the
      folder pointed to by your TEMP environment variable, and under
      UNIX in /var/tmp.




  Release 2004B
  -------------

    1) Xpress-Optimizer 15.20
    - Flow path inequalities are now generated for fixed charge
      network flow structures
    - Objective function and RHS Sensitivity functions (XPRSobjsa
      and XPRSrhssa) have been added
    - A getversion function (XPRSgetversion) has been added which
      writes the current version number to a character string
    - A new LPSTATUS of UNSOLVED has been added which is set
      whenever a QP problem cannot be solved because it is not
      semi-definite
    - The efficiency of the dual has been improved when
      re-optimizing long thin MIP problems
    - The efficiency of strong branching has been improved
    - Strong branching can now be run in parallel on multi-processor
      machines
    - Convergence of primal QP has been improved


    2) Xpress-Mosel 1.4.0

      [NOTE] See 'upgrading1_4.pdf' in /docs/mosel for guidelines on
      upgrading from Mosel 1.2.x to 1.4.0

      2.1) Mosel Console
      - command `examine' now also displays IO drivers provided by
        the module
      - new command 'lsdrvs' to display available IO drivers
      - command 'compile' accepts a destination file name for the bim
        file as the 3rd parameter
      - command 'exportprob' now displays a warning when no problem
        is defined
      - new command 'setstream' to set default streams
        (input,output,error)
      - commands 'examine' and 'symbols' now sort their output (use
        option
        '-u' for unsorted output)
      - exit status is now:
          0: normal termination
          1: unrecoverable error
          2: execution interrupted (ctrl-C, compilation failed...)
          3: licence error
          4: out of memory error
          if 'run' or 'exec' is the last command performed, the
          value returned is the one provided via `exit' in the model
          (by default this is 0).


      2.2) Language
      - IO drivers:
        - ':filename' : access 'filename' with OS functions (same as
           before)
        - 'sysfd:OS_fd': use 'OS_fd' (an integer) with OS functions
        - 'cb:callbackPtr[/param]': call the function provided in
           place of a file
        - 'mem:addr/size[/&actualsize]': use the memory block
           starting at 'addr' of size `size' as a file
        - 'mem:name': allocate memory dynamically, 'name' can be
           used to access the memory block again later from the
           model and from the library interface
        - 'raw:': used as 'initialisations from/to' filename. Each
          label is interpreted as a file and data is exchanged in
          binary form instead of text form (useful when combined
          with 'mem' driver)
      - 'initialisations from/to' blocks do not stop processing after
        failure if 'ioctrl' is set to true - control parameter
        'iostatus' has to be checked in this case
      - after 'initialisations from', control parameter 'nbread'
        reports now number of successful record read (instead of
        total number of values)
      - new control parameter 'readcnt': when it is 'true',
        'initialisations from' blocks keep track of number of
        records per label
      - function 'getreadcnt(string)' returns number of records read
        for given label during last 'initialisations from' block
        (control parameter 'readcnt' must be set before the
        block)
      - 'include' compiler directive does not add file name
        extension any more
      - 'include' compiler directive expands environment variable
        names in file names (e.g. include
        "${MOSEL}/Examples/Modeling/chess.mos")
      - string 'TRUE' is now accepted as the 'true' value in data
        files and string conversions
      - new options for 'fopen': 'F_LINBUF' (output line buffered),
        'F_SILENT' (does not display error message on
        open/close/read/write errors)
      - assignments of type "r:={1}" and operations of type
        "r:=r+{1}" and "r:=r-{1}" where 'r' is a range are now valid
        (no need to express the single element set as a range e.g.
        1..1)
      - operators '+=' and '-=' are now supported for ranges as long
        as the resulting set is still a range
      - new 'range(s)' converter to translate a set of integers 's'
        into a range (e.g. range({10,2,80,3}) gives {2..80})
      - 'is_free' is now a constraint type that can be changed via
        'settype'
      - 'getsize' is now defined for linear constraints: it returns
        the number of terms in the constraint (the constant term is
        not counted)

      2.3) Compiler Library
      - 'compmod' function does not add filename extension (".mos")
        to source file any more. Option 'e' has also been
        removed.
      - compiler expands now environment variable names in file
        names it opens (see "Language" above)
      - support for aggregate operators based on operators using 2
       types (e.g. "sum() x" where "x+x->y" with type(x)<>type(y) )

      2.4) Runtime Library
      - 'closefile' selects the file that was active before the the
        file being closed (was: the last open file before the file
        being closed).
      - in function 'loadmod', if model name is "*", a unique name
        is automatically generated
      - new function 'setdefstream(model,stream_code,extn_filename)'
        replaces functions 'setstdin','setstdout' and 'setstderr'
        (these functions are still available but deprecated).
      - new function 'getnextiodrv(prev,name,module,info)' to
        enumerate available drivers
      - a warning is now displayed when one try to initialise an
        unknown module control parameter via the runmod
        function (e.g. "run mmxprs.mistake=1")
      - when a version conflict is detected for a module (loading of
        bim file), the error message now displays full version
        information (up to now only the major release number was
        displayed)
      - 'exportprob' returns RT_ERROR if no problem is defined (for
        instance if called before model execution) and RT_IOERR when
        an error occured during writing of the file
      - when exporting to MPS, change SC (SI) to continuous
        (integer) if the lower bound is not 0
      - improved handling of the `exists' function
      - empty linear constraints are not ignored any more:
        - anonymous constraints are ignored if valid (e.g. 0=0) and
          produce an execution error if infeasible (e.g. 0>=1)
        - named constraints are sent to the optimiser
          empty type-constraints (like `is_integer') and SOS are
          still ignored.


      2.5) Native Interface
      - function 'callproc' returns now RT_OK on success (instead of
        2)
      - 'exportprob' returns RT_ERROR if no problem is defined (for
        instance if called before model execution) and RT_IOERR when
        an error occured during writing of the file
      - new function 'chkinterrupt' to check for termination from
        within an NI function
      - the 'reset' function of a module receives now a context
        instead of a model pointer. Macro 'XPRM_GETMOD(ctx)' may be
        used to retrieve the model associated to a given
        context
      - now functions 'dispmsg' and 'getelsetval' require a context
        as their first argument
      - new functions 'fgetinfo', 'fread', 'fwrite','fremove',
        'fmove','fcopy'
      - 'fclose' now returns an integer (0=success)
      - functions 'dispmsg' and 'printf' now accept format '%r' to
        display real values according to 'realfmt'
      - new macros
        XPRM_F_ERROR,XPRM_F_LINBUF,XPRM_F_INIT,XPRM_F_SILENT to be
        used with 'fopen' and/or in iodrvs implementations
      - 'tostring' function is now called again with a larger buffer
        if space reserved is not big enough
      - operators 'is_*' can now be overloaded for external types


      2.6) mmetc 1.4.0
      - switch to the DSO format of Mosel 1.4.x (error messages are
        sent to model error stream)
      - 'diskdata' uses now file handling functions of Mosel;
        extended file names can be used for this procedure
      - new IO driver 'diskdata' that supports 'initialisations'
        blocks.
        Statements of the form:
         diskdata(ETC_IN+ETC_SPARSE,'data.csv',  myArray)
        can now be written:
         initialisations from 'diskdata:sparse'
          myArray as 'data.csv'
         end-initialisations


      2.7) mmodbc 1.4.0
      - switch to the DSO format of Mosel 1.4.x (error messages are
        sent to model error stream)
      - SQLverbose is now 'true' by default
      - new extended syntax:
        - SQLconnect tries to build the connection string when it
          receives only a file name as its parameter. For instance:
          "tutu.xls" can be used in place of "DSN=Excel Files;
          DBQ=tutu.xls"
        - in output queries parameters '?' may be replaced by '?#'
          where '#' is the parameter number (i.e. order of
          parameters can be controled). This is especially useful
          when writing 'update' queries. For instance: "update
          mytable set datacol=?2 where ndxcol=?1"
      - new control parameter 'SQLextn' (Boolean, default=true) to
        enable/disable handling of extended syntax (see above)
      - new control parameter 'SQLdebug' (Boolean, default=false):
        when it is set to 'true', 'SQLverbose' is also enabled and
        each SQL query sent to ODBC is displayed to the error
        stream
      - new IO driver 'odbc' that supports 'initialisations' blocks.
        Statements of the form:
          SQLconnect("tutu.mdb")
          SQLexecute("select * from T",T)
          SQLdisconnect
        can now be written:
          initialisations from 'odbc:tutu.mdb'
           T
          end-initialisations


      2.8) mmquad 1.2.0
      - switch to the DSO format of Mosel 1.3.3 (error messages are
        sent to model error stream)
      - new function 'getqexpsol' in C interface
      - on POSIX systems, the environment variable TMPDIR is used
        to establish the location of the temporary directory (this
        is '/tmp' by default).


      2.9) mmsystem 1.4.0
      - switch to the DSO format of Mosel 1.4.x (error messages are
        sent to model error stream)
      - procedures 'fdelete' and 'fmove' now work on extended file
        names
      - new procedures 'fcopy','qsort'


      2.10) mmxprs 1.4.0
      - switch to the DSO format of Mosel 1.4.x (error messages are
        sent to model error stream)
      - 'setmodcut' now accepts temporary constraints and ignore
        empty constraints (i.e. no term)
      - synchronise with change of behaviour of 'callproc' (in
        callbacks)
      - new procedure 'command' to execute Optimizer commands
        directly
      - 'writedirs' now uses realfmt for displaying real values
      - setlb/up produces an error if the optimiser function fails
      - new functions 'fixglobal', 'getrange(type,var)' and
        'getrange(type,ctr)'
        for sensitivity analysis
      - added control parameters xprs_lnpbest, xprs_lnpiterlimit,
        xprs_branchchoice, xprs_sbselect
      - procedures 'writebasis','readbasis','writeprob','writedirs'
        and 'readdirs' do not add file name extensions any more and
        support extended file names
      - procedure 'savestate' now takes an extended file name as
        parameter (where to save the state) and does not terminate
        program any more
      - new function 'getname(mpvar|linctr)' to get the name of the
        object that is used in matrix files (the function works only
        for objects part of the problem)
      - cuts are now presolved before being added to the
        cutpool/matrix
      - new function 'isintegral(mpvar|set of mpvar)' to check
        whether the current solution of a variable is integral
        according to the settings of the optimiser
      - before loading the problem, change SC (SI) to continuous
        (integer) if the lower bound is not 0
      - empty cuts (i.e. at most 1 constant term) are not ignored
        any more but sent to the optimiser
      - partial support for callback `chgbranch'
      - new procedure `setucbdata' (to be called from the
        `chgbranch' callback)
      - control parameters xprs_cblog and xprs_problem are now
        strings
      - the variable name which bounds are inconsistent is displayed
        if the error is detected during loading of the matrix
        (verbose has to be true)

      2.11) mmxslp 1.3.6
      - SLP callbacks written in C or C++ can now be called from
        Mosel/Xpress-SLP.
      - A quadratic objective function is now accepted for SLP or
        MISLP.  The objective is provided in a gexp which is used as
        the parameter for SLPloadprob.  The barrier optimizer is
        used for all SLP iterations.
      - Error messages are now sent to the error stream instead of
        the main message stream.
      - Temporary files are now written to the system temporary
        directory instead of to the current directory.
      - xvitem arrays can now be any type of array, instead of
        having to be dimensioned by a range set
      - XV arrays (multi-dimensional xvitem arrays) are now
        possible.
      - New functions to obtain SLP variable status, stepbound,
        convergence status and history information.


    3) Xpress-IVE 1.15.01
    - Integrated optimizer performance tuning aid for the "Optimize
      from matrix" feature.
    - 11 modeling wizards.
    - 32 state of the art Mosel models.
    - Further improved matrix, problem and solution visualization.
      The new Sketch view.
    - Significantly improved code completion: CTRL+Space, followed
      by open ( in Mosel editor.
    - New syntax highlighting with support for Mosel keywords AND
      module-defined keywords.
    - Mouse-over information tips offer much richer information on
      identifiers.
    - The "Text View" window now has a persistent memory of the last
      50 viewed texts.
    - Color printing and printing to non-default printers.
    - Automatically recognizes the file type opened in the editor
      (C/Basic/Java/Pascal/HTML/XML).
    - NEOS submission tool for students.
    - Stochastic modeling dashboard
    - CP(scheduling) dashboard


    4)_Xpress-SLP 1.17
    - A new section for double attributes has been added.  This now
      includes the following items previously listed as "controls":
      XSLP_OBJSENSE, XSLP_OPTTIME, XSLP_ERRORCOSTS, XSLP_OBJVAL For
      compatibility, they can be referenced as either controls or
      attributes.
    - Controls XSLP_ERRORCOST and XSLP_DELTACOST are no longer reset
      by the program when SLP iterations take place. Instead, the
      new values are in the attributes XSLP_CURRENTERRORCOST and
      XSLP_CURRENTDELTACOST
    - New functions for supplying problem data to user functions.
    - Evaluation of user functions can be controlled using the
      "ExeType" parameter for the function. Options include
      re-evaluation depending on amount of change in argument
      values, and single- or two-sided numerical derivatives.
    - User functions now have access to the problem data and to a
      set of "function objects", some of which can be shared between
      user functions.
    - New XSLPcalluserfunc allows functions to be called directly
      from applications or other functions.
    - Additional callbacks for MISLP.  Also "slpdestroy" callback
      when a problem is destroyed.
    - MISLP callbacks optnode, prenode and slpnode now terminate the
      node if the callback returns a nonzero value.
    - New XSLP_MAXTIME control to stop SLP or MISLP after a set time.
    - New XSLP_SCALE to control scaling during SLP optimization.
    - New "t" (text) option for XSLPwriteprob to produce output in
      an LP-like format.
    - Quadratic objectives are accepted in SLP and MISLP.  The
      barrier optimizer will be used for all SLP iterations.
    - Additional messages reporting convergence status have been
      introduced.
    - Integers passed to Excel & VB are now Long



  Release 2004A
  -------------

    1) Xpress-Optimizer 15.10

    - .NET interface to Xpress-Optimizer
    - A new Set covering/packing heuristic has been added
    - Gziped MPS and LP files can be read with the extensions mat.z,
      mps.z and lp.z
    - Primal unshifting has been improved
    - Creating multiple problems is now more efficient
    - Duplicate column detection is now more efficient
    - Stronger cuts are now  generated for semi-integer variables


    2) Xpress-BCL 2.6.0

    - Significant speed up through new memory manager
    - New functions XPRBgetctrrng(ctr,rngtype) and
      XPRBgetvarrng(var,rmgtype)
      (BCL C++/Java: XPRBctr.getRNG(rngtype) and
      XPRBvar.getRNG(rngtype)) to get ranging information
      (rngtype=XPRB_UPACT/LOACT/UUP/UDN/UCOST/LCOST last two for
      variables only)
    - New function XPRBsetrealfmt(prob,fmt) to set up format for
      printing numbers (BCL C++/Java: XPRB.setRealFmt(fmt) and
      XPRBprob.setRealFmt(fmt))
    - New function XPRBwritedir(fname) to save directives into a
      file (BCL C++/Java: XPRBprob.writeDir(fname))
    - New function XPRBsync(prob,synctype) to synchronize BCL
      (solution  information or problem definition) with the
      Optimizer (BCL C++/Java: XPRBprob.sync(synctype))
    - The solution access functions (XPRBgetsol, XPRBgetdual, etc.)
      can now also be used in Optimizer callbacks.
    - BCL C++/Java: improved handling of operations involving linear
      expressions
    - BCL C/C++/VB: define constants XPRB_LP_OPTIMAL etc. (LP
      status) and XPRB_MIP_NOT_LOADED etc. (MIP status); BCL Java:
      constants are defined in class XPRB (XPRB:LP_OPTIMAL etc.)
    - BCL C++: several additional overloaded versions of "newVar"


    3) Xpress-Mosel 1.2.5

      3.1) Compiler Library
      - loop optimization on 'exists' now performed on conditions
        with more than 1 'and'

      3.2) mmxprs module 1.2.4
      - added control parameters xprs_lnpbest, xprs_lnpiterlimit,
        xprs_branchchoice, xprs_sbselect


    4) Licensing

    - Allow spaces in license file path.
    - More descriptive error messages.



 Fixed in this release
 ---------------------
 ---------------------


  Release 2004D
  -------------

    1) Xpress-Optimizer 15.30.09
    - A problem with incorrect postsolve of dual values for
      duplicate columns has been fixed.
    - It is no longer necessary to allow space for user cuts.
    - A problem with reading incorrectly formatted LP files has been
      fixed.
    - Some problems with solving MIP nodes with the barrier with
      crossover turned off have been fixed.
    - A problem with MIP preprocessing of implied GUB structures has
      been fixed.
    - A problem with postsolving problems after MIPABSCUTOFF has
      been set has been fixed.
    - A problem with using a highly singular starting basis has been
      fixed.
    - A problem with handling very large negative reduced costs in
      dual has been fixed.
    - A problem with running heuristics on big endian machines has
      been fixed.
    - A problem with generating cuts for semi-continuous and partial
      integer variables has been fixed.


    2) Xpress-BCL 2.6.4

    - Correct documentation of Java method setObj.
    - Definition of constraints may now contain several constant
      terms.
    - Modification to types for Windows 64-bit.

    3) Xpress-Mosel
      3.1) mmxslp module 1.3.8
        - An error which could cause a crash due to shortage of
          memory when assigning large numbers of expressions to named
          gexp or genctr objects has been corrected.



  Release 2004C
  -------------

1) Xpress-Optimizer 15.25
    - IIS can no longer be called on a problem which has been
      presolved
    - Compressed gz files can now be read on 64-bit machines
    - A barrier problem when crossover has been turned off and the
      dual problem has been solved has been fixed
    - A work around has been implemented for a SUN compiler problem
      causing a crash in the dual algorithm
    - The MAXCUTTIME control now stops the cut generation correctly
    - A problem with presolving SOS2 sets has been fixed
    - XPRSloadqprob can now be called with no quadratic elements
    - MIP status is now set correctly if the problem is solved at
      the top node
    - Cache size is now determined correctly for AMD processors
    - The -o flag now works for writeprob
    - A problem with the heuristics for Set covering type problems
      has been fixed
    - A Crash in OMNIOUT has been fixed
    - A problem with cycling in primal has been fixed
    - A problem with the barrier code when presolve has been turned
      off has been fixed
    - A problem with MIP presolve resulting from the supply of a
      non-optimal basis has been fixed
    - The code will now continue when the cut pool runs out of space
    - RScopyprob now works if all quadratic elements have been zeroed
    - problem with handling singular bases has been fixed
    - The global log return value will now stop a MIP search if set
      at a node at which a solution has been found
    - The lower bound on an continuous variable is no longer set to
      zero when it is turned into an integer variable
    - A problem with presolving semi-continuous quadratic variables
      has been fixed
    - A problem with postsolve producing invalid bases for
      infeasible problems which contain fixed basic variables has
      been fixed

    2) Xpress-Mosel 1.4.1

      2.1) Runtime Library
      - a potential memory corruption has been fixed in the handling
        of linear terms
      - 'getnextarrtruentry' does not skip defined entries any more
        when the provided indices do not correspond to an existing
        entry
      - a possible lock up has been fixed when the reader is
        reaching an end of file while parsing a string
      - Module reference count is now correct when using a module IO
        driver to handle an error stream
      - string "TRUE" is now accepted to initialise model parameters
      - 'getnextdsotype' does not alter any more its 4th argument
        when it returns NULL

      2.2) Compiler Library
      - when used through IVE, compiler does not crash any more on
        some syntax errors

      2.3) mmetc module 1.4.1
      - a minor problem has been fixed in 'diskdata' when used for
        output

      2.4) mmxslp module 1.3.7
      - TOLSET items are now correctly identified by the SLPDATA
        function.

      2.5) mmquad module 1.2.1
      - a potential invalid memory access has been fixed



    3) Xpress-IVE 1.15.04
    - Barrier crossover no longer confuses the Stats pane display.
    - Mosel editor tooltips adjust to the current subroutine name.
    - Matrix row view no longer removes minus sign from the first
      coefficient.

    4) Xpress-BCL 2.6.2
    - Make handling of bases and variable arrays 64-bit safe


    5) Xpress-SLP 1.18
    - Console commands with too many tokens (fields) are now
      trapped.  Any additional fields are ignored.
    - A user function which returns multiple values using its own
      array is now thread safe.
    - Coefficients which have been input as separate constant and
      formula items are now correctly combined
    - If barrier solving a QP problem terminates as "unfinished",
      then primal will be called to continue the optimization
    - Records in the COLUMNS and BOUNDS sections of an extended MPS
      matrix are identified as invalid if they do not have enough
      fields.
    - File names for XSLPreadprob or the console equivalent can now
      have any extension and the default .mat is no longer
      assumed.
    - Specific tolerances on variables in the SLPDATA section of
      extended MPS format files are now handled correctly on input
      and output (previously, some were scrambled)



  Release 2004B
  -------------

    1) Xpress-Optimizer 15.20
    - QP solutions are now read correctly from memory
    - Binary variables now have their lower bounds set to zero if
      they have previously been set to negative values
    - Efficiency of singleton column removal in presolve has been
      improved
    - Efficiency of aggregated cuts has been improved
    - Primal pivot rejection and primal termination has been improved
    - Stalling when re-optimization MIP nodes with primal has been
      fixed
    - The size limits for restricted size versions are now not
      exceeded when allowing spare rows and elements for MIP
      problems
    - Semi-continuous integers are now presolved correctly when the
      semi-continuous lower bound is redundant.
    - Incorrect heuristic solutions are no longer returned when
      integers have non-zero lower bounds


    2) Xpress-Mosel 1.4.0

      2.1) Language
      - named 'is_free' constraints are now properly handled

      2.2) mmodbc 1.4.0
      - failures in 'insert' statements are now always detected

      2.3) mmxprs 1.4.0
      - 'setmodcut' does not accept unbounded constraints any more

      2.4) mmxslp 1.3.6
      - User function types VB and COM are now available
      - User function "ExeType" handling has been updated and
        corrected.
      - Optimizer callbacks are now activated, as well as SLP
        callbacks.
      - Files created in SLPglobal are now deleted when the other
        problem files are deleted.
      - Use of SLPglobal without a preceding call to optimize, or to
        optimize without a previous call to SLPloadprob now produce
        an error message and the program stops
      - There is now more rigorous checking of memory allocation
        errors.
      - Some potentially large arrays have been re-designed to
        reduce the memory requirements significantly for large
        models.

    3) Xpress-IVE 1.15.01
    - Fixed problem with Windows 98 crash at startup.
    - MIP progress graphs are now updated at the end of a run.
    - Fixed some matrix visualization issues.
    - Some error messages contained invalid characters. This was
      fixed.
    - Tabs are now supported in the Output window.
    - Printing now works with non-default printers.


    4)_Xpress-SLP 1.17
    - User functions which return multiple values using an array
      supplied as an argument should be declared as "double", not
      "double *".  The manual has been corrected to include this.
      Also, Xpress-SLP will try to trap a bad declaration of this
      type.
    - Cascading calculations have been corrected for coefficients
      which are placed in the "equals column".
    - A user-supplied cascaded value is checked and saved in the
      same way as a system-generated one.
    - An error whereby an empty formula could return a nonzero value
      has been corrected.
    - An attempt to read a non-existent file using XSLPreadprob now
      returns the correct error message and error code.
    - Blank lines in XSLPreadprob no longer cause reading of the
      current section to terminate.
    - The number of user function calls during convergence checking
      has been reduced.
    - Changes to optimizer control settings between a call to
      XSLPmaxim or XSLPminim and XSLPglobal are now recognised.
    - Errors caused by using minimum augmentation have been
      corrected.
    - Function prototypes in header file xslp.h have been modified
      to remove unnecessary "const" keywords.
    - MISLP identification of potential integer solutions has been
      corrected.  Node termination criteria are not
    - applied to re-optimization of potential optimal nodes.
    - Step bounds are re-initialized when XSLP_MIPRELAXSTEPBOUNDS is
      set (previously, any existing value continued to be used,
      which could result in premature termination)
    - XSLP_MIPCUTOFF tests have been corrected.  New counter
      XSLP_MIPCUTOFFCOUNT has been introduced.
    - XSLP_MIPOCOUNT tests are only applied when step bounding is
      active, or when at least XSLP_SBSTART SLP   iterations have
      taken place.
    - The default MISLP algorithm setting has been changed from 21
      to 17 (step bounds are not relaxed after initial SLP before
      starting global)
    - MIPWITHINSLP now includes a final SLP optimization after the
      values of the global entities are determined
    - Tests for convergence on extended criteria have been tightened
      up to avoid falsely declaring convergence.
    - Feasibility at the point of linearization is now checked to
      avoid premature convergence on extended criteria when the
      initial linearization is poor. Note: this may increase the
      number of SLP iterations on some models   without
      significantly improving the result. Possible remedies are to
      set XSLP_ECFCHECK to 0 (which will revert to the earlier
      algorithm) or increase tolerances XSLP_ECFTOL_A and
      XSLP_ECFTOL_R (from the default of 0.01 up to about 0.1)
    - XSLPwriteprob now puts all columns related to global entities
      into the COLUMNS section even if they have no explicit
      coefficients.
    - Variables marked as converged in the itervar callback are no
      longer incorrectly included in the unconverged total;
      variables which are marked as unconverged in the itervar
      callback are now included in the unconverged total
    - XSLPloadxvs and XSLPaddxvs now corrently handle empty XVs
    - The order of calculation of partial derivatives has been
      changed to avoid deletion of some small intermediate values


  Release 2004A
  -------------

    1) Xpress-Optimizer 15.10

    - Long names are now printed in full for the limiting process in
      the range report files produced by writerange and
      writeprtrange
    - Node numbers and Parent node numbers are now returned
      correctly in MIP callbacks
    - Conflicting bounds are now checked for if user branching
      is being performed
    - Bases can now be read from file if the problem has been loaded
      from memory
    - A problem with optimizing the top node with barrier and
      optimizing the tree nodes with primal has been fixed
    - A problem with generating cuts from range rows with fractional
      ranges has been fixed
    - A problem with infeasibilities remaining after postsolve has
      been fixed.
    - A problem with presolving matrices containing small matrix
      values has been fixed
    - Sign of dual values are now correct for QP problems
    - An error in the infeasibility trace has been fixed
    - Free variables detected to be bounded by presolve are handled
      correctly
    - Memory leaks in freeing up the tree search have been fixed
    - A postsolve problem with dual fixed variables has been fixed
    - A numerical problem in cut generation has been fixed
    - MIPADDCUTOFF can now be set to 0.0
    - SOSREFTOL is now a relative tolerence and has a default value
      of 1.0e-6
    - Precision of barrier algorithm has been improved
    - Quadratic objective functions are unscaled correctly
    - Looping in user branching has been fixed
    - Duplicate columns are now postsolved correctly
    - In LP file format Generals now have a default upper bound of
      MAXINT
    - NODENUMBER and NODEPARENT are now set correctly when obtained
      from the Integer Solution callback
    - The QP primal simplex algorithm is used if a QP algorithm is
      solved with the dual algorithm
    - Semi-continuous bounds are picked up correctly when calling
      XPRSloadglobal()
    - A message saying a solution has been found when MIPABSCUTOFF
      has been set is no longer printed
    - MIP presolve now works correctly when a starting basis
      prevents the removal of fixed columns by presolve
    - A basis can now be read from file when the problem has been
      loaded from memory
    - A problem with postsolving problems with free rows has been
      fixed
    - A problem with presolve running out of memory has been fixed
    - Omniout now works after calling global
    - The solution can no longer be obtained from memory after the
      global search has completed
    - Correct lift and project cuts are now generated when a range
      row has a non-integer lower bound
    - A problem with detecting that continuous variables are integer
      has been fixed
    - Barrier controls now have unique numerical identifiers
      starting with the number 5
    - Signs of reduced costs are now correct if small
      infeasibilities arise after postsolve


2) Xpress-BCL 2.6.0

    - If no problem name is provided, BCL creates a unique name
      including the full path to the temporary directory so that
      Xpress-Optimizer creates its working files in the temporary
      directory.
    - Problems without constraints are now accepted (a problem must
      have at least one variable and one non-zero objective
      coefficient or a constraint).
    - Working files of Xpress-Optimizer are now deleted when the
      problem is released.
    - Limits of semi continuous (integer) variables are now
      preprocessed to avoid confusion with lower bounds. Exported
      matrices include this preprocessing.
    - Return value of XPRBgetsense now corresponds to the values
      printed in the documentation.
    - BCL Java: XPRBlinExp now prints out correctly.


    3) Xpress-Mosel 1.2.5

      3.1) Runtime Library

        - operator '<' (resp. '>') is now implemented as 'not >='
          (resp. 'not <=') in order to take into account zero
          tolerances applied to equality comparisons

      3.2) mmodbc module 1.2.1

        - now initialises range sets

      3.3) mmxslp module 1.2.2

        - Corrected handling of genctr constraints if SLPloadprob()
          is called more than once.
        - Improved identification of items which have changed before
          a second SLPloadprob().
        - Improved handling of memory allocation errors

      3.4) Mod2Mos program 1.0.4

        - options '-in' not ignored any more


    4) Xpress-SLP 1.1.5

        - Corrected handling of end-of-line characters in extended
          MPS matrix files to allow transfer of files between
          platforms.

    5) Licensing

        - Some users were getting an error message "Your host ID
          does not seem to be authentic", when no such error had
          occurred. This has now been corrected.




Unresolved in this release
--------------------------
--------------------------

  Release 2004C
  -------------

    1) mmxslp module
      - The mmxslp module is not yet supported on 64bit Solaris
        platforms





Dash Optimization




























                  
Related Topics
2003 Release notes
Xpress-MP product overview
Evaluate Xpress-MP
Ordering Xpress-MP
White papers
[Home] [Contact] [Client Area] [Search] [Sitemap] [Links] [Printer Friendly]
  © 2008 Fair Isaac Corporation. All rights reserved.