FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home

There are a number of examples available demonstrating some of the functionality of FICO Xpress Optimization.

A large percentage of these examples are browsable online. Click on the examples browser below to start browsing the available material.


Search for

  1. Xpress BCL library examples
    1. Examples in C
      1. Chess - Composing constraints and solving
        Simple LP problem, termwise constraint definition, LP solving
      2. Workshop - Displaying solution information
        Retrieving and displaying solution values and ranging information; real value printing format, number output format
      3. Contract - Semi-continuous variables, predefined constraint functions, combine BCL with Xpress Optimizer
        Defining semi-continuous variables, MIP solving
      4. Chgprobs - Working with multiple problems
        Handling multiple problems
      5. Setops - Index sets
        Using index sets, set operations
      6. Burglar - Use of index sets, formulating logical constraints
        Index an array of variables by an index set, defining indicator constraints
      7. Coco - A full production planning example
        Data input from text files
      8. Delivery - Data input from file; infeasibility analysis
        LP model, data input from file, retrieving IIS
      9. Purchase - Definition of SOS-2
        Data input from file, using SOS-2
      10. Portfolio - Quadratic Programming with discrete variables
        Quadratic objective function
      11. Catenary - Solving a QCQP
        Stating quadratic constraints
      12. Cutstk - Column generation for a cutting stock problem
        Working with subproblems, modifying constraints
      13. Els - An economic lot-sizing problem solved by cut-and-branch and branch-and-cut heuristics
        Looping of optimization, using the cut manager
      14. Fixbv - A binary fixing heuristic
        Changing bounds, saving and loading bases, saving and loading start solutions
      15. Recurse - A successive linear programming model
        Iterative solving, modify constraint definitions
      16. MT2 - Solving two problems in parallel in a thread-safe environment
        Parallel computing
      17. GoalObj - Archimedian and pre-emptive goal programming using objective functions
        Multicriteria optimization, multi-objective decision making
      18. Wagon - MIP start solution heuristic
        Loading MIP start solution, 'solnotify' callback
      19. UG - Examples from 'BCL Reference Manual'
        MIP modeling, error handling, using Xpress Optimizer with BCL
      20. Folio - Examples from 'Getting Started'
        MIP modeling, quadratic constraints, infeasibility handling, solution enumeration
    2. Examples in C++
      1. Chess - Composing constraints and solving
        Simple LP problem, termwise constraint definition, LP solving
      2. Workshop - Displaying solution information
        Retrieving and displaying solution values and ranging information; real value printing format, number output format
      3. Contract - Semi-continuous variables, predefined constraint functions, combine BCL with Xpress Optimizer
        Defining semi-continuous variables, MIP solving
      4. Chgprobs - Working with multiple problems
        Handling multiple problems
      5. Setops - Index sets
        Using index sets, set operations
      6. Burglar - Use of index sets, formulating logical constraints
        Index an array of variables by an index set, defining indicator constraints
      7. Coco - A full production planning example
        Data input from text files
      8. Delivery - Data input from file; infeasibility analysis
        LP model, data input from file, retrieving IIS
      9. Purchase - Definition of SOS-2
        Data input from file, using SOS-2
      10. Portfolio - Quadratic Programming with discrete variables
        Quadratic objective function
      11. Catenary - Solving a QCQP
        Stating quadratic constraints
      12. Cutstk - Column generation for a cutting stock problem
        Working with subproblems, modifying constraints
      13. Els - An economic lot-sizing problem solved by cut-and-branch and branch-and-cut heuristics
        Looping of optimization, using the cut manager
      14. Fixbv - A binary fixing heuristic
        Changing bounds, saving and loading bases, saving and loading start solutions
      15. Recurse - A successive linear programming model
        Iterative solving, modify constraint definitions
      16. GoalObj - Archimedian and pre-emptive goal programming using objective functions
        Multicriteria optimization, multi-objective decision making
      17. Wagon - MIP start solution heuristic
        Loading MIP start solution, 'solnotify' callback
      18. UG - Examples from 'BCL Reference Manual'
        MIP modeling, error handling, using Xpress Optimizer with BCL
      19. Folio - Examples from 'Getting Started'
        MIP modeling, quadratic constraints, infeasibility handling, solution enumeration
      20. Folio - Examples from 'Getting started'
        LP, MIP and QP models, explicit initialization, index sets, heuristic solution
    3. Examples in C#
      1. Chess - Composing constraints and solving
        Simple LP problem, termwise constraint definition, LP solving
      2. Workshop - Displaying solution information
        Retrieving and displaying solution values and ranging information; real value printing format, number output format
      3. Contract - Semi-continuous variables, predefined constraint functions, combine BCL with Xpress Optimizer
        Defining semi-continuous variables, MIP solving
      4. Chgprobs - Working with multiple problems
        Handling multiple problems
      5. Setops - Index sets
        Using index sets, set operations
      6. Burglar - Use of index sets, formulating logical constraints
        Index an array of variables by an index set, defining indicator constraints
      7. Coco - A full production planning example
        Data input from text files
      8. Delivery - Data input from file; infeasibility analysis
        LP model, data input from file, retrieving IIS
      9. Purchase - Definition of SOS-2
        Data input from file, using SOS-2
      10. Portfolio - Quadratic Programming with discrete variables
        Quadratic objective function
      11. Catenary - Solving a QCQP
        Stating quadratic constraints
      12. Cutstk - Column generation for a cutting stock problem
        Working with subproblems, modifying constraints
      13. Els - An economic lot-sizing problem solved by cut-and-branch and branch-and-cut heuristics
        Looping of optimization, using the cut manager
      14. Fixbv - A binary fixing heuristic
        Changing bounds, saving and loading bases, saving and loading start solutions
      15. Recurse - A successive linear programming model
        Iterative solving, modify constraint definitions
      16. GoalObj - Archimedian and pre-emptive goal programming using objective functions
        Multicriteria optimization, multi-objective decision making
      17. Wagon - MIP start solution heuristic
        Loading MIP start solution, 'solnotify' callback
      18. UG - Examples from 'BCL Reference Manual'
        MIP modeling, error handling, using Xpress Optimizer with BCL
      19. Folio - Examples from 'Getting Started'
        MIP modeling, quadratic constraints, infeasibility handling, solution enumeration
    4. Examples in Java
      1. Chess - Composing constraints and solving
        Simple LP problem, termwise constraint definition, LP solving
      2. Workshop - Displaying solution information
        Retrieving and displaying solution values and ranging information; real value printing format, number output format
      3. Contract - Semi-continuous variables, predefined constraint functions, combine BCL with Xpress Optimizer
        Defining semi-continuous variables, MIP solving
      4. Chgprobs - Working with multiple problems
        Handling multiple problems
      5. Setops - Index sets
        Using index sets, set operations
      6. Burglar - Use of index sets, formulating logical constraints
        Index an array of variables by an index set, defining indicator constraints
      7. Coco - A full production planning example
        Data input from text files
      8. Delivery - Data input from file; infeasibility analysis
        LP model, data input from file, retrieving IIS
      9. Purchase - Definition of SOS-2
        Data input from file, using SOS-2
      10. Portfolio - Quadratic Programming with discrete variables
        Quadratic objective function
      11. Catenary - Solving a QCQP
        Stating quadratic constraints
      12. Cutstk - Column generation for a cutting stock problem
        Working with subproblems, modifying constraints
      13. Els - An economic lot-sizing problem solved by cut-and-branch and branch-and-cut heuristics
        Looping of optimization, using the cut manager
      14. Fixbv - A binary fixing heuristic
        Changing bounds, saving and loading bases, saving and loading start solutions
      15. Recurse - A successive linear programming model
        Iterative solving, modify constraint definitions
      16. GoalObj - Archimedian and pre-emptive goal programming using objective functions
        Multicriteria optimization, multi-objective decision making
      17. Wagon - MIP start solution heuristic
        Loading MIP start solution, 'solnotify' callback
      18. UG - Examples from 'BCL Reference Manual'
        MIP modeling, error handling, using Xpress Optimizer with BCL
      19. Folio - Examples from 'Getting Started'
        MIP modeling, quadratic constraints, infeasibility handling, solution enumeration
  2. Xpress Mosel examples
    1. Models by problem type / modeling tasks
      1. Delivery: Infeasibility analysis with IIS
        Retrieving and displaying IIS
      2. Folio - Modelling examples from 'Getting started'
        LP, MIP and QP models, data input/output, user graphs, heuristics
      3. Folio - Advanced modelling and solving tasks
        Multiple MIP solutions, infeasibility handling, data transfer in memory, remote execution, XML and JSON data formats
      4. Assignment
        simple LP problem, graphical representation of results
      5. Bin packing
        simple MIP problem, random generation of data, use of model parameters, setting Optimizer controls
      6. Blending ores
        simple LP problem, formulation of blending constraints
      7. Capital budgeting
        simple MIP problem
      8. Contract allocation
        simple MIP problem, semi-continuous variables, graphical representation of results
      9. Cutting stock
        MIP problem solved by column generation, working with multiple problems, using 'sethidden', setting Optimizer and Mosel control parameters
      10. Lot sizing
        MIP problem, implementation of Branch-and-Cut and Cut-and-Branch algorithms, definition of Optimizer callbacks, Optimizer and Mosel parameter settings, 'case', 'procedure', 'function', time measurement
      11. Facility location
        MIP problem, graphical solution representation, re-solving with modified bounds, data input from file, dynamic arrays for data and decision variables, use of 'exists', model cuts
      12. Knapsack
        simple IP problem, formulation of knapsack constraints, model parameters, function 'random'
      13. Project planning with resource constraints
        MIP problem, alternative formulation with SOS-1, tricky formulation of resource use profiles and calculation of benefits, graphical solution representation
      14. Purchasing with price breaks
        MIP problem, modeling a piecewise linear function with SOS-2, graphical representation of data
      15. Transport
        simple LP problem, using dynamic arrays for data and decision variables, formatted output printing, inline 'if', format of data files
      16. TSP
        MIP problem, loop over problem solving, TSP subtour elimination algorithm; procedure for generating additional constraints, recursive subroutine calls, working with sets, 'forall-do', 'repeat-until', 'getsize', 'not', graphical representation of solutions
      17. Set covering
        MIP problem, modeling an equivalence; sparse data format, graphical output representation, 'if-then-else'
      18. Single period product mix
        Simple LP problem, single period production planning
      19. Personnel requirement planning
        simple MIP problem, formulation of balance constraints using inline 'if'
      20. Matching flight crews
        2 MIP problems with different objectives, data preprocessing, incremental definition of data array, encoding of arcs, logical 'or' (cumulative version) and 'and', 'procedure' for printing solution, 'forall-do', 'max', 'finalize', graphical representation of results, 'sin', 'cos'
      21. Maximum flow in a telecom network
        MIP problem, encoding of arcs, 'range', 'exists', 'create', algorithm for printing paths, 'forall-do', 'while-do', 'round', graphical representation of results
      22. Vehicle routing
        MIP problem, formulation of constraints to eliminate inadmissible subtours, definition of model cuts, selection with '|', algorithm for printing the tours, graphical solution representation
      23. Minimum cost flow
        MIP problem, formulation with extra nodes for modes of transport; encoding of arcs, 'finalize', union of sets, nodes labeled with strings, graphical solution representation
      24. Line balancing
        MIP problem, encoding of arcs, 'range', formulation of sequencing constraints
      25. Minimum weight spanning tree
        MIP problem, formulation of constraints to exclude subcycles, graphical representation of results
      26. Flow-shop scheduling
        MIP problem, alternative formulation using SOS1, graphical solution representation
      27. Job shop scheduling
        MIP problem, formulating disjunctions (BigM); 'dynamic array', 'range', 'exists', 'forall-do', graphical solution representation
      28. Transshipment formulation of multi-period production planning
        MIP problem, representation of multi-period production as flow; encoding of arcs, 'exists', 'create', 'isodd', 'getlast', inline 'if'
      29. Set partitioning
        MIP problem, algorithm for data preprocessing; file inclusion, 3 nested/recursive procedures, working with sets, 'if-then', 'forall-do', 'exists', 'finalize'
      30. Open shop scheduling
        MIP problem, data preprocessing, algorithm for preemptive scheduling that involves looping over optimization, ''Gantt chart'' printing and drawing
      31. Sequencing jobs on a single machine
        MIP problem with 3 different objectives; 'procedure' for solution printing, 'if-then'
      32. Timetable for courses and teachers
        MIP problem, many specific constraints, tricky (pseudo-) objective function, 'finalize'
      33. Basic LP tasks: problem statement and solving; solution analysis
        LP solving, solution printout, array and set data structures
      34. Basic MIP tasks: binary variables; logic constraints
        MIP solving, binary variables, index set types, logic constraints
      35. LCSP: Labour constrained scheduling problem
        Dynamic creation of variables, formulation of resource constraints
      36. Conditional creation of decision variables
        use of 'exists', finalization of index sets
    2. Models by application area
      1. Introductory examples
      2. Mining and process industries
      3. Scheduling problems
      4. Planning problems
      5. Loading and cutting problems
      6. Ground transport
      7. Air transport
      8. Telecommunication problems
      9. Economics and finance
      10. Timetabling and personnel planning
      11. Local authorities and public services
    3. Programming with Mosel
      1. Using 'exists' for loops over sparse arrays
        Enumeration of sparse data, exists
      2. Parameters: tolerances
        Comparison tolerance
      3. Using the model return value for error handling
        Model exit code
      4. Recursive remote files
        Access to files on remote (parent or child) nodes
      5. Basic set operations
        Initializing sets, set operations, set comparison
      6. Using moseldoc
        Generating online documentation for Mosel models and packages
      7. Largest common divisor
        Recursive function calls; using 'readln'
      8. Smallest and largest value in a set
        The 'if-then-elif-then' selection statement
      9. Perfect numbers
        Using the 'forall' loop
      10. Prime numbers using the Sieve of Eratosthenes
        Nested loops: repeat-until, while, while-do
      11. Read two tables and a set from a text data file
        File access, using 'readln', 'fskipline'
      12. Parsing a CSV-format data file
        Text parsing functionality
      13. Sort an array of numbers using Shell's method
        Nested loops: repeat-until, forall-do, while-do
      14. Sort an array of numbers using Quicksort
        Recursive subroutine calls, overloading of subroutines
      15. Defining a package to handle binary trees
        Definition of subroutines, data structures list and record, type definition
      16. Using the automatic translation system
        Using xprnls, generating dictionary files
      17. Debugging models via the Remote Invocation Protocol
        Remote model execution in debugging mode, implementation of a debugger
      18. Profiling and code coverage via the Remote Invocation Protocol
        Remote model execution in profiling mode, decoding of profiling and coverage results
      19. Creating and saving XML documents
        Simple access routines - adding nodes, recursive display of subtrees
      20. Using XML-format files as databases
        Retrieving XML nodes using xpath search expressions; modifying and formatting XML files
      21. Parsing XML and JSON documents
        Parsing documents with unknown structure
      22. Error handling
        handling I/O errors during data input
      23. Using counters
        Using and combining 'count' and 'as counter'
      24. Working with arrays
        array initialization, indexation
      25. Working with lists
        Lists: initialization, enumeration, operators, access functions
      26. Eulerian circuit - working with lists
        list operators, list handling routines
      27. Working with records
        Defining and initializing records
      28. Definition of a network
        Working with record data structures
      29. User type definition
        Defining a user type with a record
      30. Subroutines
        Subroutine definition, overloading, recursive function calls, function return values
      31. Output formatting
        real number format, text formatting
      32. Using the debugger and profiler
        Debugging and profiling commands, parallel debugging
      33. Checking memory usage
        Using dynamic arrays
      34. Writing packages: definition of constant symbols, subroutines, and types
        Implementing subroutines, overloading, using packages
      35. Text handling and regular expressions
        Types 'text', 'textarea', 'parsectx'; text parsing
      36. Defining and retrieving annotations
        Accessing annotations from a model or host application
      37. Using documentation annotations
        Using documentation annotations, moseldoc tool
    4. Solving techniques
      1. Looping over optimization runs (within a model, batch executions, and multiple models/submodel)
        Multiple problem runs, submodel
      2. Using the AEC2 package with mmjobs
        Find or start AEC2 instance, start Mosel, model execution
      3. Column generation for a cutting stock problem
        Variable creation, using 'sethidden', working with multiple problems
      4. Cut generation for an economic lot-sizing (ELS) problem
        Adding constraints and cuts, using the cut manager, run-time parameters
      5. Binary fixing heuristic for the Coco problem
        Working with bases, saving and loading MIP solutions
      6. Branch-and-Price for the Generalized Assignment Problem
        Working with submodels, record data structures
      7. Pre-emptive and Archimedian goal programming
        Changing constraint type, redefining the objective
      8. Successive linear programming (SLP) model for a financial planning problem
        Redefinition of constraints
      9. Output formatting for a transportation model
        Dynamic arrays for data and decision variables, formatting output
      10. Solving an optimization problem via nlsolv
        Using module nlsolv
      11. Cut-and-branch and branch-and-cut
        Using the cut manager callback, addcuts, storecuts and loadcuts
      12. Hybrid MIP-CP problem solving: sequential solving
        Solving a sequence of CP subproblems, in-memory data exchange
      13. Hybrid MIP-CP problem solving: concurrent solving
        Parallel and sequential solving of subproblems
      14. Constructing and loading MIP start solutions for the traveling salesman problem (TSP)
        CP target values, MIP start solution, MIP callbacks
      15. Working with multiple models: submodels, coordination, communication, and parallelization
        Parallel computing, distributed computing, distributed architecture, in-memory data exchange, shmem, job queue, events, detach submodel
      16. Dantzig-Wolfe decomposition: combining sequential and parallel solving
        Concurrent subproblem solving, coordination via events, in-memory data exchange
      17. Benders decomposition: sequential solving of several different submodels
        Multiple concurrent submodels, events, in-memory data exchange
      18. Jobshop scheduling - Generating start solutions via parallel computation
        Sequential and parallel submodel execution, loading partial MIP start solutions
      19. Solving the TSP problem by a series of optimization subproblems
        Solution heuristic, parallel submodel execution
    5. Nonlinear optimization with Mosel
      1. Locate airport while minimizing average distance
        quadratic constraints and objective
      2. Maximise discount at a bookstore
        Discrete variables
      3. Nonlinear objective with integer decision variables
        Discrete variables
      4. Determine chain shape
        Quadratic constraints
      5. Facility location
        Nonlinear objective
      6. Approximation of a function
        Approximation of a function
      7. Static load balancing in a computer network
        Nonlinear objective
      8. Minimum surface between boundaries
        Nonlinear constraints and objective
      9. Moon landing
        Nonlinear objective and constraints
      10. Polygon construction under constraints
        Trigonometric constraints and objective
      11. Portfolio optimization
        Quadratic constraints and quadratic objective
      12. Locating electrons on a conducting sphere
        Nonlinear constraint and objective, alternative objective functions
      13. Find the shape of a chain of springs
        Quadratic constraints
      14. Steiner tree problem
        Quadratic constraints
      15. Trafic equilibrium
        Nonlinear objective
      16. Modeling hand glider trajectory
        Nonlinear constraints, trapezoidal discretization
      17. Force required to lift an object
        SOCP formulation
    6. Robust optimization with Mosel
      1. Introductory examples
        Defining robust constraints, uncertainty sets, nominal values
      2. Robust formulations of the single knapsack problem
        Types of uncertainty sets
      3. Robust portfolio optimization
        'ellipsoid' uncertainty set, retrieving the worst value of an uncertain
      4. Security constrained robust unit commitment
        'scenario' and 'cardinality' uncertainty sets
      5. Production planning under demand uncertainty
        'scenario' and polyhedral uncertainty sets
      6. Production planning under energy supply uncertainty
        polyhedral uncertainty set
      7. Robust shortest path
        'cardinality' uncertainty set
      8. Robust network optimization for VPN design
        polyhedral uncertainty set
    7. Data handling ( ODBC/SQL, sparse data, I/O drivers, Spreadsheets )
      1. Energyforecast - regression analysis with R
        Regression analysis, data exchange with R, evaluating R functions from Mosel
      2. Logistic regression on flight delay data using R
        Logistic regression, data exchange with R, evaluating R functions from Mosel, graph drawing with R
      3. Blend - data input from external sources
        Accessing data sources (text, spreadsheets, databases)
      4. Output of expressions
        Using 'initializations to' with 'evaluation of'
      5. Transport - data formats for online use
        XML and JSON data formats, generation of HTML
      6. Burglar - Data source access from Mosel models
        'mmodbc.odbc', 'mmsheet.excel', 'mmetc.diskdata' I/O drivers, SQL, XML, JSON
      7. Burglar - In-memory data exchange between Mosel models
        'bin', 'shmem', 'raw', 'text', 'tmp', 'rmt' I/O drivers
      8. Reading sparse data from text files, spreadsheets and databases, and from memory
        Data input, initializations from, SQL, ODBC
      9. Data output to text files, spreadsheets and databases, and to memory
        Data output, initializations to, SQL, ODBC
      10. Dense vs. sparse data format
        array types
      11. Writing out solution values to text files, spreadsheets or databases
        solution data output, 'evaluation of'
      12. Spreadsheets and databases: working with multiple data tables and arrays
        data input/output, multiple tables, multiple data arrays
      13. Formulation of SQL (selection) statements
        Advanced SQL functionality, retrieve database and table structure
      14. Reading and writing records and lists
        record data structure, list data structure
      15. Reading and writing external types: dates and time
        Types date, time, datetime; data input/output
      16. Reading 3-dimensional arrays
        Multidimensional array input, option partndx
    8. Graphing examples
      1. Mandelbrot
        Queued execution of remote models with result graphic
      2. Drawing results of multiple optimization runs
        Iterating over MIP solves, graphical representation of solution values
      3. Drawing line fractals
        Lines with simple styling, recursive subroutine calls
      4. Drawing line plots
        Points and polylines with various styling options
      5. Drawing a bar chart
        Graphical objects rectangle and text, simple styling
      6. Drawing a pie chart
        Graphical objects pie and text, simple styling
      7. Drawing a Gantt chart
        Graphical objects rectangle and text, simple styling, reading free-format input text data file, animation
      8. Iterative display of tours
        Points and polylines, pausing display, intercepting window closing, animation, image inclusion
    9. Distributed calculation and remote invocation
      1. Using the AEC2 package with XPRD
        Find or start AEC2 instance, start Mosel, model execution
      2. Reading and writing data using the 'bin:' format
        Binary data format
      3. Implementing a file manager
        Remote model execution, file manager, events
      4. Approximating PI number
        Remote execution of multiple Mosel models
      5. Runprime - Remote model execution
        Remote model execution, data exchange between remote nodes
      6. Basic tasks: remote connection, coordination, communication, and parallelization
        Distributed computing, concurrent submodel execution, job queue, events
      7. ELS - Solving several model instances in parallel
        Parallel execution of submodels, parallel execution of submodels, stopping submodels
      8. Mandelbrot - Java GUI for distributed computation with Mosel
        Parallel execution of submodels, Java solution graph
      9. Folio - remote execution of optimization models
        Submodel execution, events, bindrv binary format, in-memory data I/O
    10. C Library examples
      1. Folio - Embedding examples from 'Getting started'
        Model compilation, parameterized model execution, matrix output, accessing results
      2. Compiling a model file into a BIM file
        Model compilation
      3. Retrieving data from a Mosel model
        Accessing sets, arrays, lists, records; retrieving solution information
      4. Working with models and accessing dynamic libraries in Mosel
        Display information and contents of models and libraries
      5. Interrupting a running model using Ctrl-C
        Stopping a model run
      6. Data input/output via I/O drivers
        Compilation to/from memory; data input/output in memory; redirect output using the 'cb' driver
      7. Implementing a source coverage testing tool
        Using the debugger interface
      8. Basic embedding tasks
        Compile/load/run models, retrieve information about model objects, redirect model output
      9. In-memory data exchange
        Data exchange during model execution
      10. Switching to solving with Xpress Optimizer
        Using the Xpress Optimizer library with Mosel
      11. Compilation to/from memory
        Using the 'mem' I/O driver
      12. Burglar - Exchange of information with embedded models
        'cb', 'bin', 'mem', 'raw', 'sysfd' I/O drivers
    11. Java Library examples
      1. Folio - Embedding examples from 'Getting started'
        Model compilation, parameterized model execution, matrix output, accessing results
      2. Retrieving data from a Mosel model
        Accessing sets, arrays, lists, records; retrieving solution information
      3. Working with models and accessing dynamic libraries in Mosel
        Display information and contents of models and libraries
      4. Data input/output via I/O drivers
        Compilation to/from memory; data input/output in memory; redirect output using the 'java' driver
      5. Implementing a source coverage testing tool
        Using the debugger interface
      6. Basic embedding tasks
        Compile/load/run models, retrieve information about model objects, redirect model output
      7. In-memory data exchange
        Data exchange during model execution
      8. Compilation to/from memory
        Using the 'java' I/O driver
    12. VBA Library examples
      1. Folio - Embedding examples from 'Getting started'
        Model compilation, parameterized model execution
      2. Folio - Embedding examples from 'Getting started'
        Parameterized model execution, data exchange in memory
      3. Launching Mosel from Excel using VBA
        LP solving, start Mosel from a VBA script in Excel, data input from Excel
      4. Start/stopping Mosel from Excel and capturing output
        MIP solving, start and interrupt Mosel from a VBA script in Excel, Mosel output to Excel
      5. Basic embedding tasks
        Compile/load/run models, redirect model output
    13. C#.NET Library examples
      1. Folio - Embedding examples from 'Getting started'
        Model compilation, parameterized model execution, matrix output, accessing results
      2. Retrieving data from a Mosel model
        Accessing sets, arrays, lists, records; retrieving solution information
      3. Working with models and accessing dynamic libraries in Mosel
        Display information and contents of models and libraries
      4. Data input/output via I/O drivers
        Compilation to/from memory; data input/output in memory
      5. Basic embedding tasks
        Compile/load/run models, retrieve information about model objects, redirect model output
      6. In-memory data exchange
        Data exchange during model execution
      7. Compilation to/from memory
        Using C#
    14. VB.NET Library examples
      1. Retrieving data from a Mosel model
        Accessing sets and arrays; retrieving solution information
      2. Working with models and accessing dynamic libraries in Mosel
        Display information and contents of models and libraries
      3. Data input/output via I/O drivers
        Compilation to/from memory; data input/output in memory
    15. Writing Mosel modules
      1. Definition of constants of different types
        Defining integer, real, string, boolean constants
      2. Definition of a procedure for getting solution values into an array
        Implementing a subroutine
      3. Definition of complex numbers and operators to work with them
        Defining an external type with operators
      4. Definition of type 'task' and subroutines for accessing it
        Defining an external type with operators and access routines; defining module parameters and services
      5. Definition of type 'date' and subroutines for accessing it
        Defining an external type with operators and access routines; defining module parameters and services
      6. Definition of three new types and operators to work with them
        Defining external types with operators
      7. Basic LP/MIP solver interface for Xpress Optimizer
        Using the NI matrix handling functionality, extending a type, defining parameters and subroutines, defining a callback function
      8. Basic QCQP solver interface for Xpress Optimizer
        Using the mmnl matrix handling functionality, extending a type, defining parameters and subroutines, defining a callback function
      9. Declaring a static module
        Module embedded in a C program
      10. Using the 'zlib' library to provide IO driver 'compress' functionality
        Defining I/O drivers
      11. Module implementing driver 'toC' to save the compilation result to a C file
        Defining an I/O driver
      12. How best to debug a module
        Creating a static module
    16. Calling static Java methods from Mosel
      1. Passing single values from a Mosel model to a Java method
      2. Passing an array from a Mosel model to a Java method
      3. Returning an object from a Java method
      4. Handling exceptions thrown by a Java method called from a Mosel model
    17. Calling Python 3 from Mosel
      1. Initialize Mosel sets from Python
      2. Invert a Mosel matrix with NumPy
      3. Python I/O driver example
    18. Puzzles and Recreational Mathematics
      1. Sudoku (CP model)
        Using 'all_different', enumerating all feasible solutions
      2. Futoshiki (CP and MIP models)
        Using 'all_different', formatted solution printout
      3. Fantasy OR: Sangraal (CP and MIP models)
        Formulation of a scheduling problem with MIP and CP
      4. Fiveleaper (MIP model and graphics)
        Subtour elimination algorithm
      5. Puzzles and pastimes from the book `Programmation Lineaire'
        MIP and CP formulations for discrete feasibility problems
  3. Xpress Optimizer examples
    1. Calling the Optimizer library from C
      1. Folio - Introductory examples from 'Getting Started'
        LP, MIP and QP models, explicit initialization, index sets, heuristic solution
      2. A DepthFirst Branching Algorithm
        Using MIP node callbacks
      3. Branching rule branching on the most violated Integer/Binary
        Using the change branch callbacks
      4. Apply a binary fixing heuristic to an unpresolved MIP problem
        Changing bounds, accessing solver controls
      5. Perform objective function parametrics on a global problem
        Saving/loading bases, changing objective coefficients
      6. Perform RHS parametrics on a global problem
        Changing RHS coefficients, working with bases
      7. Apply a primal heuristic to a knapsack problem
        Using the global log callback
      8. Apply an integer fixing heuristic to a MIP problem
        Changing bounds
      9. Load an LP and modify it by adding an extra constraint
        Load LP problem, adding a constraint
      10. Save/access a postsolved solution in memory
        Retrieving solution values and global search information
      11. Loading MIP solutions into the Optimizer
        Using the optnode callback, saving/loading bases, changing bounds
      12. Solve LP, displaying the initial and optimal tableau
        Retrieve basic variables and their names, btran
      13. Modify problem: add an extra variable within an additional constraint
        Adding rows and columns, branching directives
      14. 10 best solutions with the MIP solution enumerator
        Using the solution enumerator and MIP solution pool
      15. Collecting all solutions with the MIP solution pool
        Using the solution enumerator and MIP solution pool
      16. Repairing infeasibility
        Using repairinfeas
      17. Goal Programming
        Preemptive and Archimedian Goal Programming with objective functions or constraints
    2. Calling the Optimizer library from Java
      1. Folio - Advanced modeling and solving tasks from 'Getting Started'
        Using the solution enumerator and solution pool
      2. Adding the message callback in Java
        Using the message callback
      3. Irreducible Infeasible Set Search
        Using IIS
      4. 10 best solutions with the MIP solution enumerator
        Using the solution enumerator and MIP solution pool
      5. Collecting all solutions with the MIP solution pool
        Using the solution enumerator and MIP solution pool
      6. Collecting all solutions with the MIP solution pool
        Modify a problem by adding extra rows and columns
    3. Calling the Optimizer library from C#.NET
      1. Apply a binary fixing heuristic to an unpresolved MIP problem
        Changing bounds, accessing solver controls
      2. Irreducible Infeasible Set Search
        Using IIS
      3. Apply a primal heuristic to a knapsack problem
        Using the global log callback
      4. Load an LP and modify it by adding an extra constraint
        Load LP problem, adding a constraint
      5. 10 best solutions with the MIP solution enumerator
        Using the solution enumerator and MIP solution pool
      6. Collecting all solutions with the MIP solution pool
        Using the solution enumerator and MIP solution pool
      7. Save/access a postsolved solution in memory
        Retrieving solution values and global search information
    4. Calling the Optimizer library from VB.NET
      1. Apply a binary fixing heuristic to an unpresolved MIP problem
        Changing bounds, accessing solver controls
      2. Irreducible Infeasible Set Search
        Using IIS
      3. Apply a primal heuristic to a knapsack problem
        Using the global log callback
      4. Load an LP and modify it by adding an extra constraint
        Load LP problem, adding a constraint
      5. 10 best solutions with the MIP solution enumerator
        Using the solution enumerator and MIP solution pool
      6. Collecting all solutions with the MIP solution pool
        Using the solution enumerator and MIP solution pool
      7. Save/access a postsolved solution in memory
        Retrieving solution values and global search information
  4. Xpress NonLinear examples
    1. Nonlinear C library examples
      1. Maximizing the area of a polygon using tokens based input
        Using token lists to express nonlinear formulas
      2. Maximizing the area of a polygon using string based input
        Using string based formulas to express nonlinear formulas
      3. Providing initial values
        Providing initial values to nonlinear variables
      4. Implementing the polygon examples as a black box function
        Implementing user functions
      5. Implementing user functions returning their own derivatives
        Implementing complex user functions returning their own derivatives
    2. Calling the Nonlinear library from C#.NET
      1. Maximizing the area of a polygon using tokens based input
        Using strings to express nonlinear formulas
    3. Mosel examples of the Xpress NonLinear manual
      1. Effects of convexity
        Convexity
      2. Partial derivatives
        Numerical differentiaton
      3. Local solutions
        Local optimality
      4. Dual multipliers
        Dual multipliers
      5. Non-connected feasible region
        Non-connected feasible regions
      6. Feasiblity breakers \ penalty error vectors
        Feasiblity breakers
      7. Error costs and penalty multipliers
        Penalty multipliers
      8. Numerical differentation and accuracy
        Finite differences
      9. Solution support sets
        Support sets
      10. Step bounding
        Step bounding
      11. Zero placeholders
        Zero placeholders
  5. Xpress Python examples
    1. Python examples solving problems using the Xpress Optimizer
      1. Using NumPy arrays to create variables
        Using NumPy arrays
      2. Visualize the BB tree
        Using the newnode callback
      3. Irreducible Infeasible Sets
        Using Irreducible Infeasible Sets
      4. Loading a problem
        Loading a problem directly
      5. Using Python model objects to build a problem
        Modelling using Python objects
      6. Changing the optimization problem
        Changes to a problem
      7. Extending a problem
        Extending a problem
      8. Using NumPy and Xpress
        Using NumPy and Xpress
      9. Minimizing distance from constraints
      10. Solving a quadratically constrained problem
        Building quadratic expressions
      11. Solving a nonconvex quadratic problem
        Building quadratic expressions
      12. Solving a quadratically problem
        Building quadratic expressions
      13. Repeatedly solving a problem
        Solving a problem multiple times
      14. Using indicators
        Model with indicators
      15. The travelling salesman problem
        Using Xpress callbacks
      16. Writing and reading problem files
        Writing and reading a problem to disk
      17. The feasiblity pump
        Writing and reading a problem to disk
      18. Knapsack problem
        MIP problem with binary variables
      19. The n-queens problem
        Puzzle modeling
      20. Min-cost-flow problem
        Modelling a graph problem
      21. Solving Sudoku
        Puzzle modeling
    2. Python examples solving problems using Xpress NonLinear
      1. Modeling with user functions
        Modeling with user functions
      2. Solving a quadratically constrained problem
        Solve a nonlinear problem
  6. Xpress Kalis examples
    1. Xpress Kalis features
      1. Generic binary and n-ary constraints
        Mosel subroutine implementing a constraint relation
      2. All-different constraint: solving an assignment problem
        Constraint definition, check for feasible solution
      3. 'abs' and 'distance' constraints
        Constraint definition
      4. 'distribute' and 'occurrence' constraints
        Constraint definition, check for feasible solution, cardinality constraint
      5. One- and two-dimensional 'element' constraints
        Constraint definition
      6. Implication and equivalence constraints
        Constraint definition
      7. Conjunctions and disjunctions (logical 'and' and 'or')
        Constraint definition
      8. 'cycle' constraint: formulating a TSP problem
        Constraint definition, solution callback, branching strategy
      9. 'cumulative' and 'disjunctive' constraints for scheduling and planning problems
        Scheduling with resource constraints
      10. 'producer_consumer' constraints: solving a resource-constrained project scheduling problem
        Configuring resource and task objects, scheduling solver
      11. Resource profiles
        Alternative resources, non-constant resource usage profiles
      12. Minimum and maximum constraints
        Constraint definition, constraint posting, cpvarlist
      13. Defining, posting and propagating linear constraints
        Automated propagation, automated post, explicit post
      14. Non-linear constraints over real-valued decision variables
        Branching strategy for cpfloatvar
      15. Branching strategies
        Branching schemes, enumeration for discrete or continuous variables, tasks, disjunctive constraints
      16. Use of callbacks to output the search tree
        Definition of branching callbacks
      17. Working with 'reversible' objects
        Setting and retrieving reversible values, behaviour on backtracking
      18. Defining a linear relaxation
        LP or MIP solving within a CP problem
    2. Xpress Kalis User Guide examples
      1. Introductory example: constraint handling
        Automated and explicit constraint posting
      2. Basic modeling tasks: data input, optimization, enumeration
        Data input from file, solving, branching strategy
      3. Production of cane sugar
        Linear, 'ocurrence', and 'element' constraints
      4. Sequencing jobs on a bottleneck machine
        Linear, 'element', 'disjunctive' constraints
      5. Planning of paint production
        Linear, 'element', 'implies', and 'all-different', 'element' ,'cycle' constraints
      6. Euler knight tour problem
        'all-different', generic binary, 'cycle' constraints
      7. Frequency assignment problem
        'abs', 'distance', and 'all-different' constraints; branching strategy, solution callback
      8. Choice of locations for income tax offices
        Linear, 'element', 'occurrence', 'equiv' constraints; search strategy
      9. Non-linear constraints
        Default bounds, cpfloatvar
      10. Personnel planning problem
        'all_different', 'implies', 'occurrence', and 'distribute' constraints
      11. Sudoku puzzle: retrieving status information through parameters
        'all-different' constraints, propagation algorithm
      12. Assigning workers to machines: heuristics and user-defined search
        Linear, 'all-different', and 'element' constraints, solution heuristic
      13. Scenes allocation problem: symmetry breaking
        'implies', 'distribute', 'maximum' constraints, symmetry breaking
      14. Construction of a stadium: project planning
        Scheduling with precedence constraints, task objects
      15. Backing up files: scheduling with cumulative resource constraints
        Cumulative scheduling, task and resource objects
      16. Job-shop scheduling
        Task and resource objects, user search strategy
      17. Renewable and non-renewable resources
        Provision/requirement of resource, production/consumption of resource
      18. Resource usage profiles
        Resource idle times, 'resusage', alternative resources
      19. Linear relaxations
        alldifferent' constraint reformulated by linear relaxations, user-defined linear relaxations
    3. Xpress Kalis application examples
      1. Project scheduling problem with disjunctive resource constraints
        Scheduling objects, branching strategy
      2. Solving the job-shop scheduling problem
        Scheduling objects, solution callback
      3. Frequency assignment with polarity
        Submodel execution, solution heuristic
  7. Xpress MATLAB interface examples
    1. Mosel MATLAB interface examples
      1. Running Mosel models from MATLAB
        Calling Mosel from MATLAB, data exchange in memory
      2. Folio - example from 'Getting started' executed in MATLAB
        Exchange model parameters and solution between MATLAB and Mosel
      3. Running Mosel models from MATLAB
        Using MATLAB functions in Mosel
      4. MATLAB using the Mosel Java interface
        Compile/load/run models from MATLAB
  8. Xpress Cloud examples
    1. S3
      1. Uploading a file to an S3 bucket
      2. Downloading a file from an S3 bucket
      3. List objects available in an S3 bucket
      4. Setting tags on an object in an S3 bucket
      5. Querying tags on an object in an S3 bucket
    2. Xpress Executor
      1. Solving a Mosel model using a REST webservice, from Mosel
      2. Solving a Mosel model using a REST webservice, from NodeJS
      3. Solving an MPS problem using a REST webservice, from NodeJS
      4. Solving a non-fixed Mosel model using a REST webservice, from Mosel
      5. Solving a Mosel model using the 'executor' package, from Mosel