XPRESS-MP Release 12 Supplement - ELTE

41
XPRESS-MP Release 12 Supplement Dash Associates 2000

Transcript of XPRESS-MP Release 12 Supplement - ELTE

Page 1: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP

Release 12 Supplement

Dash Associates

2000

Page 2: XPRESS-MP Release 12 Supplement - ELTE

Copyright Dash Associates 1984-2000

All trademarks referenced in this manual that are not the property of Dash Associatesare acknowledged.

How to Contact Dash

If you have any questions or comments on the use of XPRESS-MP, please contact Dashtechnical support at:

Dash Associates LimitedQuinton LodgeBinswood AvenueLeamington SpaWarwickshire CV32 5THUK

Telephone: +44 1926 315862Fax: +44 1926 315854e-mail: [email protected]

If you have any sales questions or wish to order XPRESS-MP software, please contactyour local sales office or Dash sales at:

Dash Associates LimitedBlisworth HouseChurch LaneBlisworthNorthants NN7 3BXUK

Telephone: +44 1604 858993Fax: +44 1604 858147e-mail: [email protected]

For the latest news and XPRESS-MP software updates please visit the Dash website at:

http://www.dash.co.uk/

Page 3: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Release 12 Reference Manual Supplement Preface i

Preface

This supplement sets out the extensions and additions in Release 12 from Release 11and should be read in conjunction with the XPRESS-MP Reference Manual Release 11.

We recommend that at minimum you read Chapter 1, What’s New in Release 12.

Page 4: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Release 12 Reference Manual Supplement Contentsii

Contents

Preface i

1 What’s New in Release 12 1

Highlights.................................................................................................................. 1Optimiser .................................................................................................................. 1XOSL: The XPRESS Optimiser Subroutine Library................................................ 2XBSL: The New XPRESS Builder Subroutine Library............................................ 3Visual XPRESS ........................................................................................................ 4Visual Basic Support for all Libraries....................................................................... 4Some of the Minor Improvements ............................................................................ 4

2 Modeller Enhancements 7

Summary of Changes to the Modeller Documentation ............................................. 7DIRECTIVES Section .............................................................................................. 8SET Section ............................................................................................................ 12SETS Section .......................................................................................................... 13

3 Optimiser Enhancements 15

Summary of Changes to the Optimiser Documentation.......................................... 15DIRECTIVES ......................................................................................................... 16INPUT..................................................................................................................... 18MAXIMISE and MINIMISE .................................................................................. 21Controls and Parameters ......................................................................................... 27

Linear Programming Parameters ..................................................................... 27Linear Programming Controls ......................................................................... 27Integer Programming Parameters..................................................................... 27Integer Programming Controls ........................................................................ 28Newton Barrier Parameters.............................................................................. 28Newton Barrier Controls.................................................................................. 28

Specifying Quadratic Terms in XMPS Matrix Files ............................................... 29The DIRECTIVES File........................................................................................... 31

Index 33

Page 5: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 What’s New in Release 12 1

1 What’s New in Release 12

Highlights

• Quadratic programming (QP) optimiser

• Significantly faster LP and MIP optimisers

• A new product, XBSL, to build models easily within programs

• New improved Visual XPRESS

Optimiser

• Quadratic programming

QP problems can be read from MPS files and solved with the barrier optimiser.See MAXIMISE and MINIMISE in the Optimiser Enhancements chapter forfurther details.

• Enhanced simplex solver

À ....speed

Yet more speed improvements in the primal and dual algorithms – both nearlytwice as fast, on average.

À ....stability

The stability of the primal simplex solver has been improved. It is much better athandling problems that are badly scaled and otherwise extremely difficult tosolve, e.g., those generated by iterative or recursive systems.

• Better barrier

À ....speed

The speed of the barrier algorithm has been improved by an average 30% onDash’s internal test set. The cross-over too is significantly faster.

Page 6: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 What’s New in Release 122

À ....stability

The barrier and cross-over are more stable on numerically difficult problems.

• Superior MIP solver

À Second generation cutting planes

Many problems can now be solved without performing a tree search.

Clique cuts are now generated automatically.

À Branch and Cut

Cuts are now added within the branch-and-bound tree.

À More efficient integer pre-processing

• Model cuts

When formulating MIP problems it is often possible to specify a large number ofconstraints which are redundant at the optimal MIP solution but will cut offinferior LP solutions and reduce the size of the MIP search. However, if all theconstraints are included in the matrix from the start, they can significantly slowdown the solution times of the nodes. Release 12 enables these constraints to bespecified (via directives) as model cuts, which means they will be transferredfrom the initial matrix to the cut pool, and only those constraints that are violatedduring the MIP search will be put back into the matrix. The DIRECTIVESsection in the modeller has been extended accordingly. See the DIRECTIVESsections in both the Modeller Enhancements and Optimiser Enhancementschapters for further details.

• Tolerant presolve

Some problems have very small logical infeasibilities that arise from imprecisionin the input data. Rather than simply declaring the problem infeasible inpresolve, the problem is now solved to give a slightly infeasible optimal solution.

XOSL: The XPRESS Optimiser Subroutine Library

Full details are in the new XOSL Reference Manual and Primer on the CD.

• QP support

Use loadqprob to load quadratic problems, and minim/maxim to solve them.

• Automatic resizing

You no longer have to stipulate the number of spare rows, columns, elements andglobal entities (NRXTRA, NCXTRA, NMXTRA and NGXTRA) you wish to add tothe matrix in advance.

Page 7: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 What’s New in Release 12 3

• New pre-processing callback

There is a new integer pre-processing callback function, DefineUPNEntry,that you can call from each node in a global search before the re-optimisationtakes place.

• Improved support

There are upgraded examples in C/C++, VB and Fortran on the CD.

The XOSL Reference Manual now includes explicit array sizes.

XBSL: The New XPRESS Builder Subroutine Library

See the XBSL Reference Manual and examples on the CD for full details.

• Build models within your application

XBSL is a new library that enables you to build up models within your programs– so far using C/C++ (and soon using VB). It is an ideal way to embed modelformulation and optimisation entirely within your application.

• Flexible model formulation

You can build your models in a very flexible manner, incrementally, and in anyorder you find convenient – constraint-wise, activity-wise, or a mixture. Youdefine variables and constraints via function calls, which support all XPRESSvariable types and special ordered sets. Several models may be handledsimultaneously. No model file is used, which means that the model can beformulated dynamically, and, assuming your application is compiled, yourmodels cannot be read, copied or altered by your end-users.

• Easy data input

The data input functions allow you to input XPRESS Modeller-style data files.They also take care of many low-level aspects of data input, including handlingblanks, sizing data tables, and inputting index sets dynamically.

• Integrated modelling and optimisation

XBSL functions allow you to solve problems and access the solution, while thelower level XOSL functionality is also available. You can output problems inMPS or LP format.

• Try it for free

You can install and use XBSL directly from the CD – it will run in the freerestricted “student” mode in the absence of a full licence.

Page 8: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 What’s New in Release 124

Visual XPRESS

• Improved User Interface

Easy-to-read syntax-highlighted model editor.

Support for the latest modeller and optimiser features, including the dual simplexoptimiser.

Extended Help now covers the entire XPRESS Modelling Language.

• Easier File Handling

Problems are stored in ordinary text files that can be transferred directly to anyXPRESS modeller.

The problem library has been eliminated – you can now open and save-asproblems to/from any location, without first loading the problem into the library.So you can copy problems, move them, transfer them elsewhere, etc, usingstandard Windows file-handling tools.

Improved network usage with a proper distinction between a read-only programdirectory and write-able problem directories makes Visual XPRESS ideal foreducational use.

Visual Basic Support for all Libraries

• EMOSL is now fully VB compatible.

• A new guide, Using the XPRESS Libraries with VB and VBA, describes how to useall XPRESS subroutine libraries from VB.

• A new set of examples, from the simple to the sophisticated, is supplied in VB aswell as C/C++ and Fortran.

Some of the Minor Improvements

• A new MEMMAX control variable allows the memory allocated to the barrieroptimiser to be specified.

• Intelligent MPS matrix input: long floating point numbers are now detected andread by default so it is no longer necessary to set the LENDBL control; free formatinput files are detected automatically.

• Improved error diagnosis with fully documented error codes.

• Extended ranging: now possible on problems with more than 32,000 rows.

Page 9: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 What’s New in Release 12 5

• New XOSL NODPAR problem variable returns the number of the parent nodewhen calling back from the IP search.

• All products on all platforms (not just Windows) now automatically operate in freerestricted “student” mode in the absence of a full licence.

• Developers can now catch XPRESS libraries switching to “student” mode if nofull licence is found. The initialisation routines return a recognisable code, so youcan choose to abort or continue in the free “student” mode.

• All modeller software (mp-model, XMSL, EMOSL) now searches for the securityfiles in the same locations as the optimiser software, eliminating the need to set theXPRESS environment variable or pass the security directory as an argumentduring initialisation.

Page 10: XPRESS-MP Release 12 Supplement - ELTE
Page 11: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements 7

2 Modeller Enhancements

Summary of Changes to the Modeller Documentation

The following list summarises the changes that have been made to the modellerdocumentation in the XPRESS-MP Reference Manual, chapter 4 The mp-modelModel Builder. Please refer to the relevant section in this chapter for full details ofeach change.

ì DIRECTIVES Section

Includes the new .MC. directive type used to specify model cuts.

ì SET Section

Includes the NROUND parameter used to round decimal values displayed in a PRINTsection.

ì SETS Section

Includes an alternative SETS format description.

Page 12: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements8

DIRECTIVES Section

Keyword: DIRECTIVES

Purpose: Specifies directives to help direct the GLOBAL search.

Restrictions: Applies to mixed integer problems only and thus requires theinteger programming optimiser option.

Format: DIRECTIVES var_name[subscript_range] type [expr]type can take the values .PR. .UP. .DN. .PU. .PD..MC.

Related Topics: DIRECTIVES (optimiser command), BOUNDS, SETS.

Example 1

VARIABLES x(10)BOUNDS x(i=1:10) .BV.DIRECTIVES x(i=1:10) .PR. 50

This defines the variables x(1) to x(10) to have a priority of 50. The default priorityis 500 so this will give the x(i=1:10) variables a higher priority than all others notexplicitly assigned a priority.

Example 2

VARIABLES y(20)BOUNDS y(j=1:20) .SC. 14.7DIRECTIVES y(j=1:20) .UP.

forces the initial branching direction to be up for variables y(1) to y(20).

Description

The DIRECTIVES command is used to help direct the GLOBAL search in theoptimiser. Its format is:

DIRECTIVES name[subscript_range] type [expr]

where:

name is the variable or special ordered set or constraint name;

Page 13: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements 9

subscript_range specifies the subscripts and their ranges in the same format as forconstraints;

type specifies the type of directive required and is one of:

.PR. a priority entry;

.UP. the entity is to be forced up first (the expr field is not required);

.DN. the entity is to be forced down first (the expr field is not required);

.PU. an up pseudo-cost entry;

.PD. a down pseudo-cost entry; or

.MC. a model cut entry (the expr field is not required).

expr is optional and is only used for types .PR. .PU. and .PD.. It can be anyvalid arithmetic expression. When given it is evaluated and used to generate thepriority or pseudo-cost entry. If omitted a value of zero is assumed.

If a subsequent GENERATE or END command is used to produce an XMPS matrix file,the modeller also generates a directives file with the name:

problem_name.dir

This can then be used for later input into the optimiser using the DIRECTIVEScommand. If the modeller BIFGENERATE command is used to generate the matrixthen the directives information is stored in the BIF file - no .dir file is produced andthe DIRECTIVES command in the optimiser is not used.

Priorities

There is a priority value associated with each global entity. The lower the number, themore likely the entity is to be selected for branching; the higher, the less likely. Bydefault all global entities have a priority number of 500. You can alter this with apriority entry in the directives file.

The expression expr given with each priority entry is evaluated and rounded down.Values for priority entries that are more than 1000 or less than 0 are rejected.

In general it is advantageous for each entity’s priority to reflect its relative importance inthe model. For instance, a binary variable representing whether a project should befunded might usefully be given a low priority number, whereas a variable representingsome finer detail of the model may be given a high value. The intention is to godepth-first through the Branch and Bound tree to obtain a good integer solution asquickly as possible. This can help to eliminate large parts of the Branch and Bound treeand therefore speed up the integer search.

Forcing Branching Directions

By default the optimiser will explore the branch estimated to yield the best integersolution from each node irrespective of whether this forces the global entity up or down.

Page 14: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements10

This can be overridden with an .UP. or .DN. entry in the directives section whichforces the optimiser to branch up or down first respectively on the specified entity.

Pseudo-Costs

Pseudo-costs are estimates of the unit cost of forcing an entity up or down. By defaultthe optimiser uses dual information to derive these estimates, but you can override themby entering a .PU. or .PD. entry in the DIRECTIVES section.

Model Cuts

When formulating MIP problems it is often possible to specify a large number ofconstraints which are redundant at the optimal MIP solution but will cut off inferior LPsolutions and reduce the size of the MIP search. However, if all the constraints areincluded in the matrix from the start, they can significantly slow down the solutiontimes of the nodes. Release 12 enables these constraints to be specified (via directives)as model cuts, which means they will be transferred from the initial matrix to the cutpool, and only those constraints that are violated during the MIP search will be put backinto the matrix.

Model Cuts Example

Model cuts are useful in the following example because many Cut constraints aredefined, making the problem more difficult to solve. So, a smaller set of RelaxCutconstraints are added to the model which are easier to solve than the Cut constraints.The Cut constraints are then marked as model cuts in the DIRECTIVES section so thatthe optimiser ignores them until an integer solution is found. Once an integer solutionhas been found the remaining violated Cut constraints are introduced into the problemand the integer solution to the original problem is searched for.

MODEL MODELCUTS

LET J = 10 ! number of customersLET I = 6 ! number of suppliersLET BIG = 0.0LET MAXSERV = 4 ! maximum number of customers to ! be serviced

TABLES DEMAND(J) ! demand AVAIL(I) ! availability

DATA DEMAND = 19, 18, 18, 21, 23, 23, 23, 14, 14, 13 ! demand

AVAIL = 60, 40, 25, 30, 10, 25 ! availability

Page 15: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements 11

ASSIGN BIG = SUM(i=1:I) AVAIL(i)

VARIABLES x(I,J) ! amount sent from supplier to customer serv(J) ! whether a customer is reached by at least one supplier unmet(J) ! unmet demand for each customer

CONSTRAINTS Goal: sum(j=1:J) unmet(j) $ ! the goal is to minimise the unmet demand

Dmd(j=1:J): sum(i=1:I) x(i,j) >= DEMAND(j) - unmet(j) ! the amount of product arriving that a customer ! receives is the demand - the unmet demand

Avl(i=1:I): sum(j=1:J) x(i,j) <= AVAIL(i) ! the amount of product sent by a supplier ! cannot exceed its availability

MaxServ: sum(j=1:J) serv(j) <= MAXSERV ! Only a certain number of customers can receive ! the product. This maximum number is MaxServ

Cut(i=1:I,j=1:J): x(i,j) <= AVAIL(i) * serv(j) ! if variable serv(j) is 0 then customer j is ! not served by any supplier. If variable ! serv(j) is 1 then customer j can receive ! the product

RelaxCut(j=1:J): sum(i=1:I) x(i,j) <= BIG * serv(j) ! constraints which are a relaxation of Cut

BOUNDS serv(j=1:J) .BV.

DIRECTIVES Cut(i=1:I,j=1:J) .MC.

END

Page 16: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements12

SET Section

Keyword: SET

Purpose: Used to set or change the default options within the modeller.For an overview of the options available refer to the QuickReference section at the beginning of the XPRESS-MPReference Manual.

Restrictions: None.

Format: SET option [ = new_ value ]

Related Topics: Quick Reference, SHOW.

Additional SET Option

Option DescriptionNROUND Controls the rounding of real values whenever values are

displayed or output as readable text, i.e. in PRINT, DISKDATAoutput, GENERATE and TOASC sections. For example

SET NROUND=2LET a=3.458PRINT a

will display the value 3.46. It does not affect output in binaryformat, as in BIFGENERATE. The extended precision –p flag forGENERATE overrides it in GENERATE. The default andmaximum value of NROUND is 6.

Page 17: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements 13

SETS Section

Keyword: SETS

Purpose: Defines Special Ordered Sets of types 1 and 2.

Restrictions: This is an IP extension and therefore requires an IP version ofmp-opt to solve the matrix generated.

Format: SETS set_name: membership_expression type reference_rowtype can be either .S1. or .S2.

Related Topics: Special Ordered Sets, FOR, BOUNDS, DIRECTIVES.

Alternative SETS format specification

From Release 12 onwards Special Ordered Sets may also be defined without explcitlyspecifying a reference row as follows:

set_name: terms T

where:

set_name is the name to be given to the set. It has the following form:

name[ subscript_range ]

where subscript_range is defined in Subscript Ranges and Summations inthe XPRESS-MP Reference Manual;

The set and subscript names must be valid symbols. The conventionsgoverning subscript maxima and the set name generated in the matrix are thesame as for VARIABLES. Refer to the description in the VARIABLESSection in chapter 4 The mp-model Model Builder of the XPRESS-MPReference Manual. If the set name has been declared before in a previousstatement in the SETS section, the number of subscripts must agree with thatpreviously declared, and their maximum values must not exceed themaximum values generated. Otherwise a subscript range error will occur.

Note that if the set has been previously declared in the SETS section, the typemust agree with that previously declared.

terms consists of a list of coefficient * variable. The coefficient is interpreted as thevalue (equivalent to the reference row entry) of member variable;

T is one of .S1. or .S2..

Page 18: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Modeller Enhancements14

Example

LET NProj=3 ! Number of projectsLET NMonths=6 ! Number of months to plan for

VARIABLES x(NProj,NMonths) ! 1 if project i starts in month t, ! 0 otherwise

SETS XSET(i=1:NProj): SUM(t=1:NMonths) t*x(i,t) .S1.

Page 19: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 15

3 Optimiser Enhancements

Summary of Changes to the Optimiser Documentation

The following list summarises the changes that have been made to the optimiserdocumentation in the XPRESS-MP Reference Manual, chapter 6 The mp-optOptimiser. Please refer to the relevant section in this chapter for full details of eachchange.

ì DIRECTIVES

Includes the new .MC. directive type used to specify model cuts.

ì INPUT

The description has been updated to reflect the fact that it is no longer necessary tostipulate the number of spare rows, columns, elements and global entities in advance,and LENDBL is now redundant.

ì MAXIMISE / MINIMISE

Includes information on Quadratic Programming.

ì OUTPUT

Note that the OUTPUT command does not currently support the writing of quadraticterms to MPS matrix files.

ì Controls and Parameters

Lists the new, modified and redundant optimiser controls and parameters

ì Specifying Quadratic Terms in XMPS Matrix Files

Provides information regarding the format of quadratic terms in MPS matrix files. Thissection should be read in conjunction with the XPRESS-MP Reference Manual -Appendix A: File Formats, XMPS Matrix Files for the full details of the XMPS filespecification.

ì The DIRECTIVES File

Includes information on the new .MC. directive type used to specify model cuts.

Page 20: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements16

DIRECTIVES

Keyword: DIRECTIVES

Purpose: Reads a directives file to help the GLOBAL search.

Restrictions: Requires the Integer Programming facility of the optimiser.

Format: DIRECTIVES [file_name]

Related Topics: DIRECTIVES (modeller section), Variable Selection forBranching.

Example 1

INPUTDIRECTIVESMINIMGLOBAL

This is the most usual form. It will attempt to read in a directives file with the currentproblem name and an extension of .dir.

Example 2

DIRECTIVES c:myfile

reads directives from the file myfile.dir on the C: drive.

Description

This command is used to help direct the GLOBAL search. It assumes that information isheld in a file:

problem_name.dir

but a file_name following the command overrides this default. Directives cannot beread in after a model has been presolved. So, unless presolve has been disabled bysetting IFPRES=0, the DIRECTIVES command must be issued before MINIM orMAXIM.

The following directives can be given:

priorities;forced branching directions;pseudo-costs; andmodel cuts.

There is a priority value associated with each global entity. The lower the number, themore likely the entity is to be selected for branching; the higher, the less likely. Bydefault all global entities have a priority value of 500. This can be altered with apriority entry in the directives file.

Page 21: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 17

In general it is advantageous for each entity’s priority to reflect its relative importance inthe model. For example, a binary variable representing whether a project should befunded might usefully be given a low priority value, whereas a variable representingsome finer detail of the model may be given a high value. Priority entries with values inexcess of 1000 are illegal and are ignored.

By default, GLOBAL will explore the branch expected to yield the best integer solutionfrom each node, irrespective of whether this forces the global entity up or down. Thiscan be overridden with an UP or DN entry in the directives file, which forces GLOBAL tobranch up first or down first on the specified entity.

Pseudo-costs are estimates of the unit cost of forcing an entity up or down. By defaultGLOBAL uses dual information to calculate estimates of the unit up and down costs andthese are added to the default pseudo costs which are set to the RTOLPS controlvariable. The default pseudo costs can be overridden by a PU or PD entry in thedirectives file.

If model cuts are used then the specified constraints are removed from the matrix andadded to the optimiser cut pool, and only put back in the matrix when they are violatedby an LP solution at one of the nodes in the global search.

The format of the directives file is given in Optimiser Enhancements.

Directives can be specified in a DIRECTIVES section in the model used to generate thematrix. Note however that if BIFGENERATE is used to generate a binary interfaceformat matrix, which is read into the optimiser using DASHIN, then the directivesinformation is included in the .bif file and no DIRECTIVES command is needed toread in a separate .dir file. Note that if creating a directives file by hand, wild cardscan be used to specify several vectors at once.

Page 22: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements18

INPUT

Keyword: INPUT

Purpose: Reads a problem matrix from an XMPS, MPS or LP format file.

Restrictions: None.

Format: INPUT [-flag_list] [file_name]

Related Topics: DASHIN, GENERATE (modeller command), END (modellercommand).

Example 1

INPUT

is the most usual form of this command.

Example 2

INPUT –l c:myprob

instructs the optimiser to read an LP format matrix from the file myprob.lp on the C:drive.

Description

The user may instruct the optimiser to read a problem by typing:

INPUT [- flag_list] [file_name]

where, if present, flag_list may be l (lower case L) and file_name is the name of a filecontaining the problem matrix. If not present, file_name defaults to the specifiedproblem_name. If file_name is not specified, or does not have a name extension, and the-l flag is not given, then file types are searched for in the following order:

.mat

.mps

.qps

.lp

If the -l flag is specified, only file_name.lp is searched for.

If file_name has been specified, the problem name is changed to file_name ignoring anyextension.

Matrix files are assumed to be in XMPS or MPS format, unless their file extension is.lp or the -l flag has been specified, in which case they must be LP files.

INPUT will take as the objective function the first N type row in the matrix, unless thecharacter parameter OBJNAM has been set, in which case the objective row sought willbe the one named by OBJNAM. Similarly, if non-blank, the character parameters

Page 23: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 19

RHSNAM, BNDNAM and RNGNAM specify the right-hand-side, bound and range sets to betaken. For example:

OBJNAM=’Cost ’ ! Note that all 8RHSNAM=’RHS 1’ ! characters are neededINPUT

The treatment of N type rows other than the objective function depends on the IFNRWcontrol. If IFNRW is 1 the rows and their elements are kept in memory; if it is 0 therows are retained, but their elements are removed; and if it is -1 the rows are deletedentirely. The performance impact of retaining such N type rows will be small unless thepresolve has been disabled by setting IFPRES to 0 prior to optimisation.

The optimiser checks that the matrix file is in a legal format and displays error messagesif it detects errors. When the optimiser has read and verified the problem it will displaysummary problem statistics.

By default, the FREFMT control is set to –1, and INPUT determines automaticallywhether the MPS files are in free or fixed format. If FREFMT is set to 0, fixed format isassumed and if it is set to 1, free format is assumed. Fields in free format MPS files aredelimited by one or more blank characters. The keywords NAME, ROWS, COLUMNS,SETS, RHS, RANGES and BOUNDS must start in column one and no vector name maycontain embedded blanks. If a special ordered set is specified with a reference row, itsname may not be the same as that of a column. The LENDBL control is ignored in freeformat since numeric fields of any length are scanned. No line may contain more than200 characters. Note that numeric values which contain embedded spaces (for example,after unary minus sign) will not be read correctly unless FREFMT is set to 0.

If the problem is not to be scaled automatically, set the parameter IFSCAL to 0 beforeissuing the INPUT command. See the section on Scaling later in this section for furtherdetails.

Long MPS vector names are supported in MPS files, LP files, directives files and basisfiles. The NAMLEN control specifies the maximum number of characters in MPS vectornames and must be set before INPUT. Internally, it is rounded up to the smallestmultiple of 8, and must not exceed 64.

There are a number of other controls and parameters which must be set prior to INPUT.For details of these refer to Controls and Parameters later in this chapter.

Since DASHIN modifies the solution file, the INPUT and DASHIN commands must notbe used together in one run of the optimiser.

It is no longer necessary to stipulate the number of spare rows, columns, elements andglobal entities (NRXTRA, NCXTRA, NMXTRA and NGXTRA) to add to the matrix inadvance. However, if these values are known prior to INPUT then they should be set bythe user for maximum efficiency. The LENDBL control, which used to specify thelength of long numerical fields, is now redundant as long numerical fields are detected

Page 24: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements20

automatically. The controls M_R, M_C, M_M, M_S and NGEMAX have not been usedsince Release 10.

Page 25: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 21

MAXIMISE and MINIMISE

Keywords: MAXIMISE or MAXIMIZE or MAXIMMINIMISE or MINIMIZE or MINIM

Purpose: Begins a search for the optimal LP solution.

Restrictions: None.

Formats: MAXIMISE [-flag_list] or MAXIM [-flag_list]MINIMISE [-flag_list] or MINIM [-flag_list]

Related Topics: GLOBAL, RECURSE, BASISIN, RESTORE.

Example 1

MAXIMISE

begins a search for the optimal LP solution to the current problem.

Example 2

MINIM –g

minimises the current problem and commences the global search.

Description

After reading in the matrix the user may instruct the optimiser to search for the optimalLP solution using the primal simplex algorithm by typing either:

MINIMISE or MAXIMISE [- flag_list]

depending upon the direction of optimisation required. The shortened forms MINIM orMAXIM are also permissible. MAXIMISE and MINIMISE can also be called with aflag_list which affects the way in which they operate.

The flag list may be b or d and/or g or l , where:

b use the Newton barrier algorithm to optimise the matrix – see below.

d use the dual simplex algorithm to optimise the matrix – see below.

g go straight into the global search after solving the LP relaxation. SeeGLOBAL.

l relax the global entities in the model and solve the resulting linear model.

If the control IFPRES is non-zero the optimiser will begin by preprocessing the matrix.This reduces the active matrix size by identifying redundant rows and columns byinspection and modifying the matrix in order to make it easier to optimise. This processoften generates new matrix coefficients and bound entries, for which free space in thematrix is required. The control NEXTRA reserves the number of entries. If it has not

Page 26: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements22

been set by the user, an estimate of the number required is made by INPUT andNEXTRA is set automatically. If there are insufficient free matrix entries for thepreprocessing procedure a warning message is issued and the optimisation continues. Ifthis message appears, increasing NEXTRA before input may improve solution times.

The optimisation algorithm then starts. Automatically the primal simplex algorithm isused for LPs and IPs and the Newton Barrier algorithm is used for QPs. This behaviourcan be overriden using the –b or –d flags.

Using the Primal Simplex Algorithm

In the default case the optimiser will then perform a crash - see the description of theICRASH control for details. This gives a good starting position for the optimisationprocess, if one has not already been obtained using BASISIN or RESTORE.

If the parameter PETURB is set to a non-zero value, the problem is perturbed byPETURB prior to optimisation. This perturbation is removed at the end of theoptimisation process. Setting PETURB to a small positive value is an advantage fordegenerate problems. We suggest that a value between 1.0E-9 and 1.0E-4 be used.Note that if IPETRB is 1 (the default) then the problem will always be perturbedautomatically if excessive degeneracy is encountered.

The optimiser will then start searching for the optimal LP solution. Whilst doing so itwill display an iteration log to inform the user of its progress. This log is producedevery ITRLOG iterations. If ITRLOG is positive, a summary output is producedwhereas a more detailed log is produced if ITRLOG is negative. When set to 0, a log isdisplayed only when the solution process terminates. The logs are described below.

The summary form of the iteration log is as follows:

Its The number of iterations or steps taken so far.Obj Value The objective function value.S The current solution method (p primal; d dual).

Ninf The number of infeasibilities.Nneg The number of variables which may improve the current

solution if assigned a value away from their current bounds.Sum Inf The scaled sum of infeasibilities. For the dual algorithm this

is the scaled sum of dual infeasibilities when the number ofnegative dj’s is non-zero.

Time The number of seconds spent iterating.

The detailed form of the iteration log is as follows:

Its The number of iterations or steps taken so far.S The current solution method (p primal; d dual).

Ninf The number of infeasibilities.

Page 27: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 23

Obj Value If the solution is infeasible, the scaled sum of infeasibilities,otherwise: the objective value.

In The sequence number of the variable entering the basis(negative if from upper bound).

Out The sequence number of the variable leaving the basis(negative if to upper bound).

Nneg The number of variables which may improve the currentsolution if assigned a value away from their current bounds.

Dj The scaled rate at which the most promising variable wouldimprove the solution if assigned a value away from itscurrent bound (reduced cost).

Neta A measure of the size of the inverse.Nelem Another measure of the size of the inverse.Time The number of seconds spent iterating.

Every so often the optimiser will go through a process known as inversion, which willfind a more compact representation of the current solution and check its accuracy.During this process it is possible that the optimiser is unable to find a newrepresentation of the current solution. This may be due to accuracy problems or anunstable starting solution produced by the crash or BASISIN.

The optimiser then tries to adjust the current solution to find a more stable one. Theoptimiser re-inverts the basis after at most INVFRQ full iterations. If INVFRQ is set to-1, the best time to invert is determined automatically.

At the end of the optimisation stage, assuming no errors have been encountered, thesolution may be in one of four possible states:

Optimal an optimal solution has been found.Infeasible there is no solution that satisfies all the constraints.Unbounded the objective may be improved without limit.Unfinished optimisation terminated prematurely

Provided the infeasibility or unboundedness is not detected by the presolve, theoptimiser will record the solution on the solution file and display the final state of theoptimisation.

If the user prematurely terminates the solution process by typing CTRL-C, the iterativeprocedure will terminate at the first ‘safe’ point and the current solution will be savedon the solution file. The solution process is also terminated if ITRLIM iterations havebeen performed, or t seconds have been taken, where MAXTIM = -t.

For small problems, writing the iteration log to the screen takes a significant proportionof the optimisation time. It is often a good idea to set ITRLOG to 0 so that no log isproduced.

Page 28: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements24

Partial Pricing vs. DEVEX Pricing

The optimiser uses a mixture of partial pricing and Paula Harris’ DEVEX pricing. Theoptimiser will start by using partial pricing and automatically determine when to switchto DEVEX pricing when IPHSF equals 0 (the default). To prevent the optimiser fromswitching to DEVEX pricing the user can set the IPHSF control to -1. To force theoptimiser to switch to DEVEX pricing the IPHSF control can be set to 1.

Typically, partial pricing results in a greater number of fast iterations whereas DEVEXpricing results in fewer, slow iterations. Which is better is highly problem-dependent.

Example 1

To let XPRESS-MP determine when to switch between partial and DEVEX pricing:

INPUTMINIMISE

Example 2

To insist on partial pricing:

INPUTIPHSF = -1MINIMISE

Using the Dual Simplex Algorithm

The dual simplex algorithm can often be a very efficient solution method. To use thedual algorithm use the -d flag with the MAXIMISE and MINIMISE commands. Forexample:

MINIM –d

Refer to the primal simplex algorithm above for details of the behaviour, controls, andoutput.

Using the Newton Barrier Algorithm

The Newton Barrier algorithm is used automatically for QPs – see below. It can be usedfor LPs or the LP relaxation of an IP by specifying the –b flag. For example:

MINIM -b

The optimiser will preprocess the matrix according to the control IFPRES. Then theoptimiser will start searching for the optimal LP or QP solution. Whilst doing so it maydisplay an iteration log to inform the user of its progress depending on the value ofPRLEV. This log is described below.

At the end of the optimisation stage, assuming no errors have been encountered, thesolution may be in one of four possible states:

Page 29: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 25

Optimal this is the desired outcome.Infeasible there is no solution that satisfies all the constraints.Unbounded the objective may be improved without limit.Unfinished optimisation terminated prematurely

In all outcomes the optimiser will record the solution on the solution file and display thefinal state of the optimisation.

If the user prematurely terminates the solution process by typing CTRL-C, the iterativeprocedure will terminate at the next iteration and the current solution will be saved tothe solution file. The solution process is also terminated if MAXITER iterations havebeen performed or if no further reduction in the duality gap is possible (see TOLIMP).

If a basic optimal solution is required, then the cross-over procedure must be activatedby setting the control CROSS non-zero before optimisation starts. If the control CROSSis set to 1 (the default) a cross-over algorithm is employed when the barrier method hasfinished so that optimisation is completed by the simplex method. If CROSS is set to 0no cross-over or simplex is attempted.

The form of the iteration log is as follows:

Its The number of Newton Barrier iterations taken so far.P Inf Primal infeasibility.D Inf Dual infeasibility.U Inf Upper bound infeasibility.Primal Obj Primal objective function value.Dual Obj Dual objective function value.Compl Complementary gap. A measure of the convergence to optimality.

See Newton Barrier Convergence Criteria for details.

Newton Barrier Convergence Criteria

The Newton Barrier algorithm is normally terminated when the primal and dualsolutions are feasible and the relative duality gap is less than TOLCOMP:

objdual

objdualobjprimal

_0.1

__

+−

≤ TOLCOMP

For example, TOLCOMP=1.0E-8 means that 8 significant figures will be correct in theoptimal objective value. The TOLPRIMAL and TOLDUAL parameters give thetermination criteria for the primal and dual feasibilities. In general it should not benecessary to change the TOLCOMP, TOLPRIMAL and TOLDUAL controls, but if thesimplex algorithm takes many iterations to get from the cross-over basis to an optimalbasis, then reducing these controls (e.g., by a factor of 10 to 100) may be worthwhile.

Page 30: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements26

The Newton Barrier algorithm computes a search direction at each iteration and takes astep in this direction. If this step size is less than TOLIMP then the algorithmterminates. If convergence is very slow then it may be better to terminate early bysetting a higher value for TOLIMP.

Solving Quadratic Programming Problems

XPRESS-MP solves problems with quadratic objective functions of the form:

′ + ′c x x Qx½

where x is the vector of decision variables, c is the cost vector, and Q is the quadraticcost coefficient matrix. Note the factor of ½ that is assumed. The matrix Q is theHessian matrix and must be symmetric. The problem must also be convex, orequivalently the Q matrix must also be positive semi-definite if the problem is to beminimised, and negative semi-definite if it is to be maximised; however, no check ismade by the optimiser on the convexity of the objective function. If it is not convex, theoptimiser may not converge at all, or may only converge to a local optimal solution.

The Newton Barrier method is used to solve QP problems and is automatically selectedwhen the user issues a MINIMISE or MAXIMISE command and quadratic terms appearin the MPS matrix file. See the section XMPS Matrix Files in this supplement forfurther details of the format required when specifying quadratic terms.

User should also note that when using the Newton Barrier with QP problems, the cross-over algorithm is disabled by default, but can be switched on by setting CROSS to 1.

Page 31: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 27

Controls and Parameters

Here we list the controls and parameters that are new, those that are now redundant andthose whose default value has changed.

Linear Programming Parameters

LP Parameter Description Default ValueZTELIM Markowitz tolerance for the elimination phase of the

presolve.0.001

ZTOLRI Markowitz tolerance for the factorisation. 0.01

ZTOLRP Relative pivot tolerance 1.0E-06

Linear Programming Controls

LP Control Description Default ValueIFBIGM 1 if big-M method to be used, 0 for phaseI/phaseII.

Reset by input and dashin.1

LENDBL RedundantNCXTRA Number of extra columns to allow for. This no longer

needs to be set by the user, but can increase efficiency ifused correctly.

0

NMXTRA Number of extra matrix elements to allow for. This nolonger needs to be set by the user, but can increaseefficiency if used correctly.

0

NRXTRA Number of extra rows to allow for. This no longerneeds to be set by the user, but can increase efficiency ifused correctly.

0

Integer Programming Parameters

IP Parameters Description Default ValueCUTDEPTH The maximum depth in the tree search at which cuts

will be generated (branch and cut). A value of zeromeans that cuts will not be generated in the tree.

0

CUTFREQ The frequency at which cuts are generated in the treesearch (branch and cut). If the depth of the node isdivisible by CUTFREQ, then cuts will be generated..

8

NITCOV Number of rounds of lifted cover inequalities at the topnode.

20

NITGOM Number of rounds of Gomory cuts at the top node. 2

NTRCOV Number of rounds of lifted cover inequalities in the tree. 2

Page 32: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements28

IP Parameters Description Default ValueNTRGOM Number of rounds of Gomory cuts in the tree. 0

Integer Programming Controls

IP Controls Description Default ValueMXCPEL cut pool: maximum number of cuts in the cut pool 200

MXCPOL cut pool: maximum number of non-zero coefficients inthe cut pool

100

NGXTRA Number of extra global entities to allow for. This nolonger needs to be set by the user, but can increaseefficiency if used correctly.

Newton Barrier Parameters

NB Parameter Description Default ValueTOLCOMP Convergence parameter. 1.0E-9

For details of the convergence parameters, see Newton Barrier Convergence Criteriaunder MAXIMISE and MINIMISE in the XPRESS-MP Reference Manual.

Newton Barrier Controls

NB Control Description Default ValueCACHE_SIZE The integer CACHE_SIZE should be set equal to

the cache size in KBytes on your computer. Thedefault value of –1 indicates that the cache size willbe determined automatically if running on a Win32computer.

-1

CROSS The integer CROSS can be set as follows to controlcross-over to a basic solution:0 no cross-over if presolve is turned off.1 full cross-over generating a primal and dual

optimal basis.

1 (for LP)0 (for QP)

MEMMAX The amount of memory in MBs to be used by theNewton Barrier. 0 indicates that the memoryallocation will be determined automatically.

0

NBDUAL Newton-Barrier: selects whether the algorithmsolves the primal or dual problem0 selection is made automatically1 the primal problem is solved2 the dual problem is solved

0

Page 33: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 29

Specifying Quadratic Terms in XMPS Matrix Files

A quadratic objective function can be specified in an MPS file by including a QUADOBJor QMATRIX section. For fixed format XMPS files the section format is as follows:

Format: Cols 1-7QUADOBJ

or:

Format: Cols 1-7QMATRIX

followed by a description of the quadratic terms. For each quadratic term, we have:

Field1 Field2 Field3 Field4blank col1 col2 value

where col1 is the first variable in the quadratic term, col2 is the second variable, andvalue is the associated coefficient from the Q matrix (see Quadratic ProgrammingProblems under MAXIMISE and MINIMISE). In the QMATRIX section all non-zero Qelements must be specified. In the QUADOBJ section only the non-zero elements in theupper (or lower) triangular part of Q should be specified. In the QMATRIX section theuser must ensure that the Q matrix is symmetric, whereas in the QUADOBJ section thesymmetry of Q is assumed and the missing part is generated automatically.

The QUADOBJ and QMATRIX sections must appear somewhere after the COLUMNSsection and must only contain columns previously defined in the COLUMNS section.Columns with no elements in the problem matrix must be defined in the COLUMNSsection by specifying a (possibly zero) cost coefficient.

For example, consider the problem

Minimisex1 + x1

2 + 2x1x2 + 2x22 + x4

2

Subject tor1: 0 ≤ x1 + 2x2 − 4x4

r2: 3x1 − 2x3 − x4 ≤ 100r3: 10 ≤ x1 + 3x2 + 3x3 − 2x4 ≤ 30

with 0 ≤ x1 ≤ 20, 0 ≤ x2 , 0 ≤ x3 and x4 free.

We first rearrange the quadratic component of the objective function as

x1 + ½[2x12 + 2x1x2 + 2 x2x1 + 4x2

2 + 2x42]

which reflects the required form c’x + ½x´Qx, where Q =

2 2 0 0

2 4 0 0

0 0 0 0

0 0 0 2

.

Page 34: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements30

Note the explicit factor of ½.

The problem can then be represented as an MPS file with a QUADOBJ section as seenbelow:

NAME QP1ROWS N min G r1 L r2 G r3COLUMNS x1 min 1.0 r1 1.0 x1 r2 3.0 r3 1.0 x2 r1 2.0 r3 3.0 x3 r2 -2.0 r3 3.0 x4 r1 -4.0 r2 -1.0 x4 r3 -2.0RHS rhs1 r1 0.0 r2 100.0 rhs1 r3 10.0RANGES rng1 r3 20.0BOUNDS UP bnd1 x1 20.0 FR bnd1 x4QUADOBJ x1 x1 2.0 x1 x2 2.0 x2 x2 4.0 x4 x4 2.0ENDATA

Note that compared with the original objective function, the diagonal terms (thecoefficients of x1

2, x22, x4

2) are doubled in value while the off-diagonal terms (in thiscase, the coefficient of x1x2) are as given.

The same problem can also be input using a QMATRIX section in place of theQUADOBJ section as follows

QMATRIX x1 x1 2.0 x1 x2 2.0 x2 x1 2.0 x2 x2 4.0 x4 x4 2.0

Here, compared with the original objective function, the diagonal terms are doubled invalue while the off-diagonal terms (the equivalent coefficients of x1x2 and x2x1) areduplicated.

Page 35: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Optimiser Enhancements 31

The DIRECTIVES File

This consists of an unordered sequence of records which specify branching priorities,forced branching directions, pseudo-costs and model cuts. It is generated by aDIRECTIVES section in the model file (see the modeller’s DIRECTIVES Section) orcan be created by hand. By default its name is of the form problem_name.dir. Seethe optimiser’s DIRECTIVES command for further details.

Directive file records have the format:

Col2-3 Col5-12 Col25-36type entity value

type is one of:

PR implying a priority entry

UP the entity is to be forced up (value is not used)

DN the entity is to be forced down (value is not used)

PU an up pseudo-cost entry

PD a down pseudo-cost entry

MC a model cut entry (value is not used).

entity is the name of a global variable, a special ordered set, or a constraint; or a mask(see example below).

value is the value to accompany the type. If it is non-integral for a PR type then it isrounded down to the integer below its value. Values for PR entries that are more than1000 are rejected. A low value for a priority means that the entity is more likely to beselected for branching.

Example

PR x1?????? 2

will give all global entities (integer variables etc) whose names start with x1 a priorityof 2.

Page 36: XPRESS-MP Release 12 Supplement - ELTE
Page 37: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Index 33

Index

.

.DN. · 9

.MC. · 9

.PD. · 9

.PR. · 9

.PU. · 9

.UP. · 9

Bbarrier · see Newton barrier algorithmbasic solution

using Newton barrier algorithm · 25big M method · 27BNDNAM · 19bound

selecting · 18branch and bound search · 2, 8

specifying directives · 8, 16branch and cut · 2, 27branching directions

forcing · 9, 16branching priorities · 9, 16

CCACHE_SIZE · 28constraints

model cuts · 2, 10, 17N type · 19

controlsinteger programming · 28

linear programming · 27, 28Newton barrier · 28simplex algorithm · 27

covergenceNewton barrier · 25

crash · 22CROSS · 25, 26, 28cross-over · 1, 25, 26, 28CTRL-C

in the console optimiser · 23, 25CUTDEPTH · 27CUTFREQ · 27cuts · 2

model cuts · 2, 8, 10, 17, 31

Ddefining special ordered sets · 13degeneracy

removing · 22DEVEX pricing · 24dir file · see directives filedirectives · 2, 31DIRECTIVES

model section · 8optimiser command · 9, 16

directives file · 9, 16, 31DISKDATA

output precision · 12dj (reduced cost) · 23DN

branch down directive · 9, 31dual simplex algorithm · 1, 21, 24

Page 38: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Index34

Ffree format

MPS matrix files · 19FREFMT · 19

GGENERATE

precision · 12GLOBAL · 17, 21global search · 21

HHessian matrix · 26

IICRASH · 22IFBIGM · 27IFNRW · 19IFPRES · 19, 21IFSCAL · 19infeasibilities

number · 22sum · 22

infeasibilitydual · 25primal · 25

infeasible solution · 23initialisation · 5

student mode · 5INPUT

optimiser command · 18inputting matrix files

LP format · 18MPS format · 18XMPS format · 18

integer presolvedisabling · 21

integer programming · 2controls · 28

optimisation · 21parameters · 27special ordered sets · 13specifying directives · 8, 16

interrupting the console optimiser · 23,25

IPETRB · 22IPHSF · 24iteration log

Newton barrier · 25simplex algorithm · 22

iterationsnumber · 22, 25

ITRLIM · 23ITRLOG · 22

LLENDBL (defunct) · 4, 27linear programming

controls · 27, 28optimisation · 21parameters · 27

linear relaxation · 21log

Newton barrier · 24, 25simplex algorithm · 22

long names · 19LP format matrix files

reading · 18

MMarkowitz tolerance · 27matrix files

free format · 19generating · 12MPS name length · 19quadratic terms · 29

MAXIM · 21MAXIMISE · 21MAXITER · 25MAXTIM · 23MC

Page 39: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Index 35

model cut directive · 9, 31MEMMAX · 4, 28MINIM · 21MINIMISE · 21MIP · see integer programmingmodel cuts · 2, 8, 10, 17, 31MPS matrix files

free format · 19name length · 19reading · 18

MPS nameslength in matrix files · 19

MXCPEL · 28MXCPOL · 28

NN type rows · 19name

of bound · 18of objective function · 18of range · 18of RHS · 18

nameslength in matrix files · 19

NAMLEN · 19long names · 19

NBDUAL · 28NCXTRA · 2, 27Newton barrier algorithm · 1, 21, 24

controls and parameters · 28convergence criteria · 25log · 24, 25maximum number of iterations · 25obtaining a basic solution · 25

NEXTRA · 21NGXTRA · 2, 28NITCOV · 27NITGOM · 27NMXTRA · 2, 27NRXTRA · 2, 27NTRCOV · 27NTRGOM · 28

Oobjective function

selecting · 18objective value · 22

dual · 25primal · 25

OBJNAM · 18optimal solution · 23optimisation

linear programming · 21ordered sets of variables · 13OUTPUT · 15

Pparameters

integer programming · 27linear programming · 27, 28Newton barrier · 28simplex algorithm · 27

partial pricing · 24PD

down pseudo-cost directive · 9, 31perturbing the problem · 22PETURB · 22phase I/phase II · 27PR

priority directive · 9, 31precision

data output · 12generating matrix files · 12solution output · 12

presolve · 2, 21linear on integer problem · 21N type rows · 19

pricing · 24primal simplex algorithm · 1, 21PRINT

precision · 12priorities · 9, 16

branching · 9, 16PRLEV · 24pseudo-costs

Page 40: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Index36

overriding · 10, 17PU

up pseudo-cost directive · 9, 31

QQ matrix · 26quadratic programming · 1, 26

matrix file format · 29output · 15

Rrange

selecting · 18ranging · 4reading matrix files

LP format · 18MPS format · 18XMPS format · 18

reduced costs · 23RHS

selecting · 18RHSNAM · 19RNGNAM · 19

Sscaling · 19sensitivity analysis · 4SET · 12sets

names · 13SETS · 13sets of variables special ordered · 13setting options · 12simplex algorithm · 1

controls · 27dual · 24log · 22maximum number of iterations · 23parameters · 27primal · 21

solution status · 23, 24special ordered sets

defining · 13status

solution · 23, 24

Ttime

maximisation in optimisation · 23TOASC

precision · 12TOLCOMP · 25, 28TOLDUAL · 25TOLIMP · 26TOLPRIMAL · 25

Uunbounded solution · 23unfinished solution · 23UP

branch up directive · 9, 31

Vvariables

special ordered sets · 13

XXMPS matrix files

reading · 18XPRESS environment variable · 5

ZZTELIM · 27ZTOLRI · 27ZTOLRP · 27

Page 41: XPRESS-MP Release 12 Supplement - ELTE

XPRESS-MP Reference Manual Supplement 12 Index 37