RELNOTES - November 2003
Release notes for Xpress-MP 2003I - all platforms.
Contents
--------
System Requirements
1) Microsoft Windows
2) Unix
New in this release
1) Xpress-Optimizer
2) Xpress-Mosel
2.1) Mosel Console
2.2) Language
2.3) Compiler Library
2.4) Runtime Library
2.5) Modules
2.5.1) mmxprs module
2.5.2) mmodbc module
2.5.3) mmquad module
2.5.4) mmxslp module
2.6) Native Interface
2.7) Mod2Mos program
3) Xpress-IVE
4) Xpress-BCL
5) Xpress-SLP
6) Licensing
Fixed in this release
1) Xpress-Optimizer
2) Xpress-Mosel
2.1) Mosel Console
2.2) Compiler Library
2.3) Runtime Library
2.4) Modules
2.4.1) mmxprs module
2.4.2) mmsystem module
2.4.3) mmetc module
2.4.4) mmquad module
2.4.5) mmxslp module
2.5) Native Interface
2.6) Mod2Mos program
3) Xpress-IVE
4) Xpress-BCL
5) Xpress-SLP
6) Xpress-Java
7) Licensing
Unresolved in this release
1) Xpress-IVE
2) Xpress-Mosel
3) Xpress-BCL
4) Xpress-SLP
5) Licensing
6) Installer
System Requirements
-------------------
-------------------
1) Microsoft Windows
--------------------
This Xpress-MP release will work on the following Windows
operating systems and PC processors:-
Operating systems:-
Windows 2000, Windows NT4 with at least Service Pack 6,
Windows XP, Windows 98 and Windows releases after Windows XP.
NOTE: This Xpress-MP release will not work on Windows 3.1,
Windows 95 and Windows NT3.
PC Processors:-
Intel Pentium Pro, Pentium 2 and models later than Pentium 2.
AMD Athlon, Duron and models later than these.
Cyrix MII, VIA models and models later than MII.
Xpress-IVE requires a minimum screen resolution of 800 x 600
pixels.
2) Unix
-------
The .tar distribution files supplied on the CDROM in the
unix/ directory contain the Xpress-MP Unix releases for
the following platforms.
sparc32.tar - 32 bit software for Sun SPARC Solaris 2.6,7,8
sparc64.tar - 64 bit software for Sun SPARC Solaris 7,8
linux32.tar - 32 bit software for Linux (GlibC 2.2 or higher)
hpux32.tar - 32 bit software for HP-UX 11.00
hpux64.tar - 64 bit software for HP-UX 11.00
aix32.tar - 32 bit software for AIX 4.3,5.1
aix64_43.tar - 64 bit software for AIX 4.3
aix64_51.tar - 64 bit software for AIX 5.1
The version numbers of the packages are given in the file
version.txt.
The hardware and operating system requirements are liable to
change in future releases. Please refer to the web site
(/home/products/platforms/platform_policy.html)
for the platforms supported by the most recent release.
New in this release
-------------------
-------------------
1) Xpress-Optimizer
-------------------
[2003F]
- New heuristic for problems with binary variables and small
coefficients in the matrix.
- New control BRANCHCHOICE which determines whether the branch
with the minimum or maximum estimate is followed first.
- New control SBSELECT to set the size of the candidate list of
global entities for strong branching.
- New library function XPRSfixglobal which fixes all the global
entities to the values in the solution file.
[2003E]
- Ascii solution files can be written with full precision using
writesol -p
- The Optimizer VB interface functions XPRSgetlasterror,
XPRSgetprobname and XPRSgetbanner have been rewritten to make
them easier to use
[2003D]
- Improved MIP performance
The Optimizer MIP performance has been improved by 44%
( measured against our internal benchmarking problem set ).
For those problems that failed to solve within 1800 seconds
with the previous release, 38% now solve in less than
1800 seconds.
[2003C]
- Improved handling of dense blocks in the barrier code
- Improved primal performance particularly on degenerate problems
- Improved presolve of semi-continuous variables
- Automatic detection of semi-continuous integer variables by
presolve
- Node presolve now works on integer variables
- Lift and Project cuts are now generated
- A basiscondition function has been added which return the
condition number of a basis
[2003B]
- QP problems can now be written as MPS files
[2003A]
- Improved barrier performance
- Improved cross-over performance
- Improved stability of dual algorithm on badly scaled problems
[2003]
- Branch and bound harness has been completely rewritten making
it faster and more flexible.
- New branching techniques which result in substantially fewer
nodes in the tree search
- Primal heuristics for finding MIP solutions faster
- A linear dependency checker has been added to presolve. This
can improve solution times when using the barrier algorithm
and can be turned on by adding 16384 to the PRESOLVEOPS
control variable.
- The barrier algorithm will now automatically solve the dual of
a problem if this will be faster.
- A new licensing system, FlexLM, has been implemented
2) Xpress-Mosel
---------------
2.1) Mosel Console
------------------
[2003C]
- command `info' now also displays the dsopath
[2003]
- the command line interpreter no longer needs the environment
variable MOSEL/XPRESS to locate its files (modules and
dictionaries)
2.2) Language
-------------
[2003]
- initialization blocks now support range sets
- after an `initialisations from' the control parameter
`nbread' now contains the number of items read in
- the character `*' may be used in place of a value in
an `initialisations' file to skip the initialisation
of the corresponding entry
- multiple arrays can be initialised/saved with a single record.
Example:
initialisations from 'f.dat'
[t1,t2] as "t1t2"
end-initialisations
f.dat: t1t2: [ (1) [1 2] (2) [3 4] ]
gives: t1(1)=1, t1(2)=3, t2(1)=2, t2(2)=4
- symbol ',' is now treated like the space character in data
files.
- 'getsize(string)' returns the length of the string
- new procedures makesos1/makesos2(linctr,set of mpvar,linctr)
makesos1/makesos2(set of mpvar,linctr)
2.3) Compiler Library
---------------------
[2003E]
- symbol ';' now accepted at end of option list
[2003D]
- further improvement of compilation error messages
[2003C]
- improved compilation error messages
[2003]
- exec renamed to execmod
- when an identifier is unknown, the compiler reports "`id' is
not defined." instead of "Syntax error"
2.4) Runtime Library
--------------------
[2003E]
- faster implementation of function `exists' (when loop is not
optimized)
[2003C]
- static arrays indexed by empty sets are now accepted
- new function `getdsopath' that returns the search path for DSO
used by Mosel
- new function `getversions' to get the version numbers of Mosel,
BIM format and NI in numerical form
[2003]
- each model now uses its own random number generator
- new function `getdllpath' to get the location of xprm_rt.dll
(Windows only)
- new function `setdsopath' to specify the location(s) of the
modules (the default values come from the environment variable
MOSEL_DSO)
- new function `dsotyptostr' to get a text representation of
an entity of an external type
- function 'cmpindices' has now 3 parameters (first parameter
removed)
- function 'nextarrentry_trs' removed
- function `getdsoinfo' has an extra parameter: it returns the
module provider name if the module is certified
- functions renamed:
firstsetndx->getfirstsetndx
lastsetndx->getlastsetndx
nextarrentry->getnextarrentry
nextarrtruentry->getnextarrtruentry
firstarrentry->getfirstarrentry
firstarrtruentry->getfirstarrtruentry
lastarrentry->getlastarrentry
2.5) Modules
------------
[2003]
- new mmquad module provides support for quadratic
expressions. It is required to model QP problems with mmxprs
- new modules mmxslp and mmxcmd provide an interface to
Xpress-SLP from the mosel environment.
2.5.1) mmxprs module
--------------------
[2003E]
- model cuts are now saved by procedure `writedirs'
- constants for callback names to conform to optimizer names
XPRS_CB_LPLOG, XPRS_CB_GLOBALLOG, XPRS_CB_BARLOG,
XPRS_CB_CHGNODE XPRS_CB_PRENODE, XPRS_CB_OPTNODE,
XPRS_CB_INFNODE, XPRS_CB_INTSOL XPRS_CB_NODECUTOFF,
XPRS_CB_INITCUTMGR, XPRS_CB_FREECUTMGR XPRS_CB_CUTMGR,
XPRS_CB_TOPCUTMGR
- new procedure 'getiis'
- optimizer's working files are now created in the temporary
directory (the generated problem name includes a full path)
- parameter 'probname' can now be changed
- added control parameters xprs_maxcuttime, xprs_maxiis
- names are now loaded before directives: errors related to
directives are displayed using model names
[2003]
- error messages are now displayed even if XPRS_verbose is
false
- the control parameters have been updated
- new procedure `savestate' to save the optimiser state
(the program terminates after this call)
- new control parameter "XPRS_colorder" to force an order on
columns of the matrix (1,3: `numerical' order; 2: alphabetic
order of var. names)
- new procedures 'writedirs' and 'readdirs' for saving/loading
directives to/from files
- SOS names are now loaded in the optimizer if XPRS_loadnames
is true
- new procedures loadprob(qexp), loadprob(qexp,set of mpvar)
for QP (requires module mmquad)
- new procedures minimise/maximise(qexp),
minimise/maximise(integer,qexp) for QP (requires module
mmquad)
2.5.2) mmodbc module
--------------------
[2003]
- new control parameter SQLbufsize to set up the size of the
data buffer in kilobytes (default: 4)
- SQLexecute now transfers several rows at a time (when
supported by the data source)
- new procedure SQLupdate to update database tables from Mosel
arrays (available only if the data source support positioned
update)
2.5.3) mmquad module
--------------------
[2003C]
- "qexp/real" now supported
2.5.4) mmxslp module
--------------------
[2003E]
- SLPscaling procedure added
[2003D]
- Corrected handling of large formulae to avoid a program error.
[2003C]
- Multi-valued user functions can now be programmed in Mosel
2.6) Native Interface
---------------------
[2003C]
- constructors ('@&' functions) can now have parameters of
structured type (like sets or arrays)
- new function 'getversions' to get the version numbers of Mosel,
BIM format and NI in numerical form
2.7) Mod2Mos program
--------------------
[2003C]
- TABLES options are now reset when using a single line statement
- SOS described without reference row are now translated
[2003]
- The program mod2mos is intended to help in the process of
migrating models written for mp-model to Mosel by translating
source files and data files from one syntax to the other.
The translation is operated in a way that preserves as far as
possible the structure of the original file (location of
comments, order of instructions).
3) Xpress-IVE
-------------
[2003E]
- The "mmive" procedures IVEinitgraph() and IVEaddtograph() have
been removed. They were replaced by the more flexible
IVEaddplot() and IVEdraw...() routines. For more information,
please go to menu Help->Xpress-IVE Help... and click on Tool
Bars->Run Bar tabs/panes->User graph.
- SLP progress charts.
- Improved matrix visualization: no need to pause for viewing
matrix.
- Detailed variable list view for matrices loaded in the
Optimizer.
- Repair Window Layout feature.
- Context help for model editor.
- Matrix thumbnail image to track progress.
- MIP search can be stopped without interrupting model.
- Output pane directly supports selection, search and copy
operations.
- The "Project" file management scheme has been removed from IVE.
[2003]
- Branch and Bound tree visualization during the MIP search.
- C, Java, VB source code generation for deploying Mosel models.
- C, Java, VB source code generation for optimizing matrices.
- Content listing of all Mosel .dso modules present in the system
(including .dso's created by users, if available)
- Mosel dynamic module (.dso) creation wizard. Produces C source
code template for generating .dso libraries. DSO information
persists across multiple runs of Xpress-IVE so users can resume
work on a module at any time.
- Upgraded "mmive" library for drawing advanced user graphs.
- The entity tree now also displays external (user) types.
- Simplified Optimizer dialog.
- Code completion in the Mosel editor is aware of "mmxprs" and
"mmive" modules.
4) Xpress-BCL
-------------
[2003C]
- C++/Java: new method setMsgLevel for XPRBprob
- New functions for setting the column ordering for matrix
generation (C/VB: XPRBsetcolorder, C++/Java: method
setColOrder for XPRB and XPRBprob)
[2003]
- Accessing Xpress-Optimizer control parameters and problem
attributes from BCL in Java is now possible. (The advanced
examples requiring changes to Optimizer settings can therefore
now also be run under Java.)
- New interface: Visual Basic.
- The function prototypes in the C interface has been
simplified/corrected: The first parameter now always
corresponds to the object that a function is applied to. This
means that "XPRBprob" only appears in functions directly
related to a problem such as creation of new objects in a
problem and optimization tasks. The BCL 2.2.0 C interface is
not compatible with the previous C interfaces.
- C and C++: getXPRSprob now has the return type XPRSprob
instead of void*.
- The C function setdictsize has been renamed to
setdictionarysize and the corresponding C++ and Java methods
to setDictionarySize.
- Updated and corrected documentation.
5) Xpress-SLP
-------------
[2003E]
- New function XSLPscaling which reports min and max values of
coefficients and max values of row and column ratios in
the matrix
- New algorithm setting to rescale matrix at each SLP iteration
of SLP optimization
- New optional convergence testing on objective function value
for SLP optimization
- MISLP: New algorithm setting XSLP_SLPTHENMIP which does SLP to
convergence, then MIP on the resulting matrix then SLP on the
MIP solution
[2003D]
- The Visual Basic API Programming interface is now available.
- Support is now provided for user functions written in Visual
Basic
- Support is now provided for user functions called through the
COM interface
[2003C]
- Escalation of penalty error costs using a new bit setting in
XSLP_ALGORITHM
[2003]
- Xpress-SLP is a new addition to the Dash product range
utilizing SLP, Sequential Linear Programming, to solve a wider
class of problems called non-linear optimization problems.
6) Licensing
-------------
[2003D]
- Initialization of the Xpress libraries ( e.g. XPRSinit) is now
faster
[2003C]
- More descriptive error messages.
- License manager now starts automatically.
- Automatic heartbeats on all platforms (SECURE_Heartbeat
functions no longer do anything).
- Added DLL version number.
- Replaced platform "tokens" with proper FLEXlm platform
checking.
- Better error trapping.
- No need to define a module name when compiling with XPRL.
[2003]
- Added support for Baby and NetHASP dongles.
Fixed in this release
---------------------
---------------------
1) Xpress-Optimizer
-------------------
[2003G]
- A memory leak in the primal heuristics has been fixed
- A problem with LPs being declared infeasible if presolved is
turned off has been fixed
- A problem with MIPs being declared infeasible if cuts are not
generated has been fixed
- QP problems are now resized correctly
- A problem with cycling in the dual in the case of loss of precision
has been fixed
- Setting EXTRAMIPENTS no longer causes a crash if too many extra
integer variables are created by presolve
[2003F]
- A problem in presolve where a new integer might get a too
tight upper bound.
- Branching estimates are now calculated correctly for negative
integer variables.
- A problem instance that contains both general upper bounds
(GUBs) and variable lower bounds might be presolved
incorrectly. This has now been fixed.
- Continuous variables with a quadratic coefficient will no
longer be turned into integers.
- Getting the basis condition number will no longer affect the
LP objective value.
[2003E]
- Integer variables having very large values are now handled
correctly
- A problem with re-optimizing when REFACTOR is set to 0 has
been fixed
- Infinite row ranges are removed when the problem is read in
- The XPRSchgbounds() function can now be called from a global
callback and will now change the bounds at the current node
and all descendant nodes.
- Objective function values greater than 1.0e+20 can now be
handled in global
- Fractional upper bounds are now not created on integer
variable which caused error messages to be printed when
generating lifted cover inequalities
- Binary SOS constraints are now detected correctly
- Phase II dual values are now returned if small infeasibilities
remain after optimizing with the barrier
- The efficiency of calling cut manager callback has been
improved
- The maximum path length for the problem name has been
increased to 260
- A lower bound specified for a semi-continuous variable in an
LP file is now taken to be the semi-continuous lower bound
- A problem with QP variables moving from super basic values to
their upper bounds has been fixed
- A problem with reading in semi-continuous upper bounds in MPS
files when the bound occupies more than 14 digits has been
fixed
- A problem with branching on semi-continuous integer variables
has been fixed
- A problem with cycling caused by adding cuts in the tree has
been fixed
- A problem with identification of integer variables by presolve
has been fixed
- The SOS branching has been improved
- A problem with user branching has been fixed
[2003D]
- A problem with partial integers causing an integer overflow
has been fixed
- A problem with reading and writing empty rows in LP format has
been fixed
- A memory leak when adding quadratic elements has been fixed
- minim -l may now be called for MIP problems containing sets
- A problem with adding cuts after adding model cuts has been
fixed
[2003C]
- Memory allocation problem on Windows 95 machines has been fixed
- A presolve problem when detecting infeasibility has been fixed
- A problem with restoring global searches has been fixed
- Handling of numerical errors in primal have been improved
- An error in strong branching has been fixed
[2003B]
- QP simplex has been made more stable on difficult QP problems
- Accuracy of presolve has been improved when objective function
is described by constraints in the matrix
- Integer infeasibility occuring in equality rows is now
detected correctly by presolve
- Bounds added by user branching schemes are now scaled correctly
- A problem generating very dense clique cuts has been fixed
- A problem copying QP problems has now been fixed
- Greater than GUBs are now handled correctly by MIP search
- The MIP search now stops correctly if a time limit is imposed
and the barrier algorithm is used to re-optimize the nodes
[2003A]
- Optimizer now stops correctly if a stop code is returned from
the global callback called at a node which has been cut-off
- Save and restore now work with global problems
- User cut branching now works
- A scaling problem with calculating the default value of
MIPADDCUTOFF has been fixed
- A problem will now be post-solved if the barrier algorithm
detects that the problem is unbounded
[2003]
- Singleton column removal on the upper bounds of range rows has
been corrected
- Semi-continuous variables are now correctly fixed to their
lower bounds by presolve
- The full 64 characters of the name of an infeasible column
detected by presolve is now printed
- A stack overflow showing up in the Java interface has been
fixed
- Bounds on integer variables are now rounded to nearest
feasible integer value
- The commands printsol and writeprtsol will now print a
solution if presolve has detected the problem to be infeasible
2) Xpress-Mosel
---------------
2.1) Mosel Console
------------------
[2003E]
- temporary files are now created in the temporary directory of
the Operating system
[2003]
- Ctrl-C now works when using command `exec'
2.2) Compiler Library
---------------------
[2003E]
- '-=' now performs a subtraction instead of an addition when
applied to types defined in a module
- '+=' and '-=' now work as expected when applied to types
defined in a module and specific implementations (operators @P
and @M) are not defined
- test of type 'c in S' where 'c' is a linear constraint now
accepted
- loops of type "aggr(i in I| aggr(j in J|C(i,j)))" now compiles
without error
- the symbol '.' used on its own is now recognised as '.' instead
of 0
[2003D]
- now correctly handles range initialization in subroutines
(e.g. N:=1..5)
- expressions of type '{1,2,max(i in 1..10) i, 5}' now produce
expected results (the aggregate operator uses only constants)
- expressions of type `sum(i in union(j in {1,10}) {j}) i' do
not generate a general error any more (nested aggregate
operators with computed sets)
[2003C]
- expressions of the form: "sum(i in {1,2,3}) ..." are now
properly compiled
- using different types in the forward declaration and
definition of a function now produces a compilation error
[2003]
- better error recovery when parsing procedures/functions
- several set operations in a single expression do not generate a
'general error' any more
e.g. sum(i in a+b) t1(i)+sum(i in b+c) t2(i)
- operators /, div, mod and ^ now generate errors if used
on invalid types
- S(i):=v (S is a set) now correctly produces a syntax error
- forall(i=C)... now properly handled if C is not an integer
- overloading of procedures with arrays as the parameter is
now properly handled
- tuples of constraints no longer crash the compiler
- if a keyword is the first token of an iterator(e.g. sum(in...)
the compiler now generates a syntax error
- local constants in iterators (e.g. sum(i=1)...) are properly
handled
- a syntax error in an 'if' statement does not stop the
compilation any more
- 'case of X' with X not an identifier now works
2.3) Runtime Library
--------------------
[2003E]
- `getdsopath' now returns an empty string if no dso path is
defined
- `setdsopath' does not cause corrupt the dso path when the
provided string is shorter than 2 characters
[2003D]
- assignments of type 'T:=[true,false,...]' now work as expected
- an array of size > 2^32 now produces an 'out of memory error'
[2003C]
- all module control parameters passed to 'runmod' are now
processed
- when using an OEM licence, it is now possible to
finish/initialise the Mosel libraries several times in a
single run
[2003]
- after executing an optimization task (e.g. 'maximise') the
random number generator is not reset any more
- setting of control parameters via function 'runmod' has been
made more robust
- function 'getelsetndx' does not expand dynamic sets any more
2.4) Modules
----------------
2.4.1) mmxprs module
----------------------
[2003E]
- problems for which global has not found a solution are now
marked as infeasible (i.e. 'getprobstat' returns XPRS_INF
instead of 0)
- a potential problem has been fixed when 'setmipdir' is used
on continuous variables (this is not allowed by the
Optimizer)
[2003C]
- the sequence "optimize qprob"->"optimize linprob" does not
fail anymore
2.4.2) mmsystem module
----------------------
[2003]
- gettime can now measure periods of time >37 minutes under
Posix systems
2.4.3) mmetc module
-------------------
[2003C]
- mmetc does not crash any more when 'diskdata' is used
with too many parameters
2.4.4) mmquad module
--------------------
[2003C]
- assignment "q:=0" (where 0 is a null quadratic
expression) now works as expected
2.4.5) mmxslp module
-------------------
[2003E]
- Corrected handling of SLPDATA() function with empty string
arguments
- Improved identification of functions and arrays for user
functions
- Corrected error which could exclude mpvars appearing only
in XVs
[2003D]
- Corrected handling of large formulae to avoid a program
error
- Negative integer initial values now treated correctly
- Corrected handling of callback functions which call other
functions
- Corrected handling of uninitialized gexp during matrix
generation
[2003C]
- SLPDATA corrected to set up DR correctly
- Corrected matrix naming when using string sets
- Corrected settings so that multiple optimisations can be
run within a single model
- Corrected parsing of some genctr formulae
- Removed interdependence between mmxslp module and specific
Xpress-SLP versions
- Error messages now always appear
2.5) Native Interface
---------------------
[2003]
- 'tostring' now receives 'libctx' instead of '&libctx' when
called from 'dsotyptostr' (RT library)
2.6) Mod2Mos program
--------------------
[2003D]
- now displays an error message if option names are longer than
1 char
[2003]
- now ignores offset `1` (e.g. T(1,1)) in diskdata sections
3) Xpress-IVE
-------------
[2003E]
- Fixed problem with using COM servers (e.g. Microsoft Excel)
from the Mosel native interface. Objects are now released
correctly when compiling a new model or when exiting IVE.
[2003D]
- All optimizer callbacks can now be used from Mosel, when
working in IVE. Specifically, the node cutoff, variable
selection, infeasible node, and integer solution callbacks are
now usable.
- Fixed problem with finding Help files in Windows 98.
[2003C]
- Regardless of screen resolution, the file editor will no
longer be obscured when starting IVE for the first time.
- When running a model or optimizing a matrix file, IVE no
longer reverts to the Output/Input tab. Instead, the current
tab remains active.
- The node highlighter tool of the branch and bound tree is now
updated fast.
- In some instances, the branch and bound tree was laid out on a
vertical line. This has been resolved.
- The time overheads section of the Stats tab in the Run bar no
longer overlaps with other sections.
[2003]
- Fixed problem with creating new files in Windows XP.
- Mosel syntax coloring now works for all caps names.
4) Xpress-BCL
-------------
[2003D]
- File version information under Windows now set up properly
- Minor correction to handling of quadratic terms.
[2003C]
- Changes to initialization/termination: now the Optimizer is
terminated by BCL making all initialization and termination
calls symmetric; to continue using the Optimizer after
terminating BCL it needs to be initialized (and terminated)
separately
- XPRBfree/XPRBfinish now return int (no longer void)
- XPRBgetvartype/getctrtype/getsostype: error return value
corrected to -1
- XPRBexportprob: if an invalid format is specified format will
default to LP format rather than ignore the function call as
before
- XPRBprintf now returns -1 if the text output gets truncated
(otherwise, as before, the number of characters printed)
- Multiple inclusions of header file xprb.h are now possible.
- Upper bounds of binary variables output correctly in MPS
format.
[2003]
- C++:Correct handling of quadratic terms: 0*x*y->entire term 0.
- Changing RHS of a constraint with setterm now leads to problem
re-generation.
- Bounds of binary variables are not ignored any more at their
creation.
5) Xpress-SLP
-------------
[2003E]
- Corrected linkage to XPRSsetcbmessage
- Corrected XSLPreadprob to allow repeated use within same
problem. Previously XSLPreadprob could only be used at
most once in any problem
- Corrected XSLPwriteprob to write out integer variables and
other global entities
- Corrected storing of results from multivalued users functions
- Corrected handling of multiple user functions in a single
Excel workbook
- Corrected handling of user functions defined in a RESTOREd
problem
- Improved connection to mmxslp (Mosel module) to identify Mosel
functions and arrays
- MISLP: Corrected storage of intermdiate results which
previously caused intermittent program error for MISLP
optimizations
- MISLP: Better scaling of MISLP problems
- MISLP: Corrected solution status for best
[2003D]
- Corrected calculation of penalty error totals
- Corrected criteria for increasing penalty scaling
- Corrected handling of step bounds when applied at start of SLP
- Corrected handling of derivatives using XVs
- MISLP: can now be run within a loop from Mosel
- MISLP: corrected handling of temporary file names during
reading of matrix in XSLPreadprob
- MISLP: now checks correctly for disk errors when writing
matrix with XSLPwriteprob
- MISLP: the prototype for XSLPreadprob is now included in the
XSLP.h header file
[2003C]
- XPRSinit() must be called before XSLPinit() and XPRSfree()
must be called after XSLPfree().
- Message levels for warnings and errors have been corrected
- Parsing of complex formulae corrected in XSLPreadprob
- Removed limit on size of formula that can be read using
XSLPreadprob
- Outputting of complex formulae with XSLPwriteprob corrected
- Removed limit on size of formula that can be outputted with
XSLPwriteprob
- Corrected setting of initial value for "equals column" in
pre-processing stage
- Corrected creation of penalty error vectors in pre-processing
when ALLROWERRORVECTORS is selected
- Now identifies feedback mechanisms at the pre-processing stage
during cascading
- Now traps MOSEL functions called from optimisation outside
Mosel
- Corrected handling of constant arguments to user functions
- Modified handling of small penalty error vector activities
6) Xpress-Java
--------------
[2003G]
- License relinquished properly when XPRS.free is called
7) Licensing
------------
[2003D]
- Stopped DOS-box appearing when IVE starts the license manager.
- Fixed corrupted error messages from IVE.
- The Solaris version of the license manager no longer fails to
start with an error about the vendor daemon being unable to
talk to the license manager.
- The Xpress libraries no longer fail to initialize with a
"Security Error 42".
[2003C]
- COM applications using Xpress no longer crash when
CoUnInitialise is called.
- Optimizer no longer exits with an error when one of the
algorithms not licensed on that machine is licensed on a
different machine.
- FLEXlm libraries are now freed properly when DLL is unloaded
(VB problem).
- Removed unnecessary mutex initialization under Unix.
[2003]
- Fixed the problem where not enough memory was allocated for
embedded OEM licenses.
Unresolved issues in this release
---------------------------------
---------------------------------
1) Xpress-IVE
-------------
[2003E]
- There is a known timing issue during IVE initialization on a
Windows 98 system which can lead to an exception and the
program closing. This problem can occur immediately after IVE
is executed. It will not occur after the IVE main window has
opened and therefore there is no risk of data loss. The
workaround is simply to restart IVE.
- Currently, the Optimizer does not support viewing the
presolved problem when using Newton Barrier. The matrix before
presolve may be displayed when selecting "Graphical presolved"
in the Matrix pane of the Run Bar.
[2003C only]
- Online Xpress-IVE help and Xpress General help options do not
work from the IVE editor menu in Windows 98. Workaround: copy
IVE.chm and documentation.chm from [XpressDir]/docs to
[XpressDir]/bin.
[2003C, resolved in 2003E]
- When running an SLP model which calls Excel, the Excel Window
will not be closed automatically and has to be closed
manually. In general, COM objects created within a Mosel .dso
may not be released correctly.
[2003, resolved in 2003C]
- When you start Xpress-IVE on certain computers the initial
configuration of the different windows in Xpress-IVE may
obscure the main file view window (which can be confusing). Use
the mouse to resize the windows so you can see the file view
window properly
2) Xpress-Mosel
-------------
[2003D, resolved in 2003E]
- Under Windows XP, Mosel can fail with an error message
reporting a problem with creating a temporary file. This only
occurs when the -c switch is used and the Windows user account
does not have write permission to the root of the C drive.
The workaround is to create a text file containing the mosel
commands and pipe this text file to Mosel.
3) Xpress-BCL
-------------
[2003, resolved in 2003C]
- Multiple inclusions of header file xprb.h are not possible.
- Upper bounds of binary variables are not output correctly
in MPS format.
4) Xpress-SLP
[2003C only]
- This only affects users of Xpress-SLP (release 1.11, available
on the 2003C CD only) using the XSLPreadprob() function or the
xslp.exe console interface to read extended MPS format
matrices.
Changes were made in the file handling in the XSLPreadprob()
function for the 2003C release of Xpress-SLP.
These were intended to avoid potential problems with
multi-threaded applications. If the name of the default
directory (as provided by the operating system) for temporary
file names is too long, then the file name is corrupted
internally and the matrix cannot be read.
An error message appears similar to the following:
>? 85 Error: File not found: C:\DOCUME~1\user\LOCALS~1\Te7.mat
The problem is being corrected and a new version of the
program will be available if required. In the meantime, if
you are using this function, the error can be avoided by
setting the environment variable TMPDIR to the name of an
existing directory with a short name name - e.g. C:\mytemp
[2003C]
- Use of SLPglobal inside a loop in Mosel causes error
termination with an access violation.
5) Licensing
------------
[2003C, resolved in 2003D]
- The Solaris version of the license manager sometimes fails to
start, with an error about the vendor daemon being unable to
talk to the license manager. An updated vendor daemon and
license manager can be downloaded from
/home/secure/download.html#license
- Some users have reported a failure to initialise the Xpress
libraries, with a "Security Error 42". This is due to a bug in
the FLEXlm licensing system, which is under investigation.
[2003D]
- There are known issues with "Media Sensing" in recent Windows
release (e.g., Windows 2000\XP) and Xpress-MP licenses
becoming disabled when the computer is not connected to a
network. The fix is to disable "Media Sensing" so that Windows
does not automatically adjust the network adapter
configuration when the computer is disconnected from the
network. For details see "How to Disable Media Sense for
TCP/IP in Windows" at:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239924
- There are known issues with bi-directional parallel port
configurations on portable PCs and Xpress-MP dongles failing
to be recognized by Xpress-MP licensing system. On certain
portables the parallel port settings in the BIOS can be either
"bi-directional", "output only" or "ECP". Using a setting
other than "ECP" can cause Xpress-MP to fail to recognize the
dongle.
[2003, resolved in 2003C]
- The Linux version of the Dash vendor daemon will not run on a
Linux release that has a version of GLIBC older that 2.2. An
updated daemon can be downloaded from
/home/secure/download.html#license
- There is a bug in the Dash vendor daemon that causes problems
when Xpress-MP 2003 is used with a floating license tied to a
dongle, particularly with NetHASP dongles. An updated daemon
can be downloaded from
/home/secure/download.html#license
6) Installer
------------
[2003C only]
- Existing PATH environmental variable settings can be lost when
installing Xpress-MP on a windows 98 machine. This only affects
machines with autoexec.bat files containing a @ character at
the start of the line which sets the PATH variable.
The installer does not recognize the @ character and so
adds a new SET PATH= statement Which overrides the existing
one. Machines which depend on the PATH variable containing the
Windows Directory path will fail to boot into Windows.
The workaround is to remove the @ characters from the SET
statements in the autoexec.bat file before installation. They
can be replaced once installation has completed if
required.
For users who have already encountered this problem and have
lost their original PATH settings, follow the steps below...
1. Locate the two SET PATH statements in the autoexec.bat file.
2. Append the path from the second statement to the end of the
first, with a ; separator if necessary
3. Remove the second path statement.
[2003C only]
- If Xpress-MP 2003C is installed to the same directory as an
existing older installation then the new BCL and Mosel files
will not be copied over the old versions due to a problem with
the version numbers of these files not being set correctly.
The workaround is to install 2003C in a different directory or
uninstall the previous version first.
Dash Optimization