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. Folio - Modelling examples from 'Getting started'
        LP, MIP and QP models, data input/output, user graphs, heuristics
      2. Folio - Advanced modelling and solving tasks
        Multiple MIP solutions, infeasibility handling, data transfer in memory, remote execution, XML and JSON data formats, solver tuning
      3. Assignment
        simple LP problem, graphical representation of results
      4. Bin packing
        simple MIP problem, random generation of data, use of model parameters, setting Optimizer controls
      5. Blending ores
        simple LP problem, formulation of blending constraints
      6. Capital budgeting
        simple MIP problem
      7. Contract allocation
        simple MIP problem, semi-continuous variables, graphical representation of results
      8. Cutting stock
        MIP problem solved by column generation, working with multiple problems, using 'sethidden', setting Optimizer and Mosel control parameters
      9. 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
      10. 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
      11. Knapsack
        simple IP problem, formulation of knapsack constraints, model parameters, function 'random'
      12. Multi-period, multi-site production planning
        LP or MIP problem, formulation of resource constraints and material balance constraints, formatted solution printing, if-then-else, if-then-elif statements
      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. Multi-commodity network flow
        MIP problem, encoding of paths, 'finalize', 'getsize'
      23. 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
      24. 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
      25. Line balancing
        MIP problem, encoding of arcs, 'range', formulation of sequencing constraints
      26. Minimum weight spanning tree
        MIP problem, formulation of constraints to exclude subcycles, graphical representation of results
      27. Flow-shop scheduling
        MIP problem, alternative formulation using SOS1, graphical solution representation
      28. Job shop scheduling
        MIP problem, formulating disjunctions (BigM); 'dynamic array', 'range', 'exists', 'forall-do', graphical solution representation
      29. 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'
      30. Set partitioning
        MIP problem, algorithm for data preprocessing; file inclusion, 3 nested/recursive procedures, working with sets, 'if-then', 'forall-do', 'exists', 'finalize'
      31. Open shop scheduling
        MIP problem, data preprocessing, algorithm for preemptive scheduling that involves looping over optimization, ''Gantt chart'' printing and drawing
      32. Sequencing jobs on a single machine
        MIP problem with 3 different objectives; 'procedure' for solution printing, 'if-then'
      33. Timetable for courses and teachers
        MIP problem, many specific constraints, tricky (pseudo-) objective function, 'finalize'
      34. Basic LP tasks: problem statement and solving; solution analysis
        LP solving, solution printout, array and set data structures
      35. Basic MIP tasks: binary variables; logic constraints
        MIP solving, binary variables, index set types, logic constraints
      36. LCSP: Labour constrained scheduling problem
        Dynamic creation of variables, formulation of resource constraints
      37. Transportation problem with piecewise linear cost expressions
        MIP problem
      38. Approximating nonlinear univariate functions via piecewise linear constraints
        MIP problem
      39. MAXSAT solving via MIP
        MAXSAT model
      40. Conditional creation of decision variables
        use of 'exists', finalization of index sets
      41. Delivery: Infeasibility analysis with IIS
        Retrieving and displaying IIS
      42. Overview of Mosel examples for 'Business Optimization' book
        LP, MIP, NLP problem formulations, solution reporting, graphical display, multiple problems, iterative solution algorithms
    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. Dynamic package loading
        dynamic package loading, model compilation, BIM file
      2. Recursive remote files
        Access to files on remote (parent or child) nodes
      3. Basic set operations
        Initializing sets, set operations, set comparison
      4. Using moseldoc
        Generating online documentation for Mosel models and packages
      5. Largest common divisor
        Recursive function calls; using 'readln'
      6. Smallest and largest value in a set
        The 'if-then-elif-then' selection statement
      7. Perfect numbers
        Using the 'forall' loop
      8. Prime numbers using the Sieve of Eratosthenes
        Nested loops: repeat-until, while, while-do
      9. Read two tables and a set from a text data file
        File access, using 'readln', 'fskipline'
      10. Parsing a CSV-format data file
        Text parsing functionality
      11. Sort an array of numbers using Shell's method
        Nested loops: repeat-until, forall-do, while-do
      12. Sort an array of numbers using Quicksort
        Recursive subroutine calls, overloading of subroutines
      13. Defining a package to handle binary trees
        Definition of subroutines, data structures list and record, type definition
      14. Encapsulate binary file into a BIM
        Submodel included in model source, datablock, deployment as executable
      15. Generate an executable from a Mosel source file
        deployment as executable, deployment via scripts
      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. Converting WCNF to Mosel format
        Processing a text file into a different text format, generating Mosel code, deployment as executable
      23. Defining a package to read JSON documents of unknown structure
        Definition of subroutines, data structures of union types, type definition, JSON parsing
      24. Error handling
        handling I/O errors during data input
      25. Using counters
        Using and combining 'count' and 'as counter'
      26. Using counters
        Local declaration of entities, array aliasing
      27. Working with arrays
        array initialization, indexation, sparse array, array dimensions, array size
      28. Working with lists
        Lists: initialization, enumeration, operators, access functions
      29. Eulerian circuit - working with lists
        list operators, list handling routines
      30. Working with records
        Defining and initializing records
      31. Definition of a network
        Working with record data structures
      32. User type definition
        Defining a user type with a record
      33. Working with unions
        defining unions, type any, specifying union type, initialization of unions from/to text format files, reference to operator
      34. Subroutines
        Subroutine definition, overloading, recursive function calls, function return values, variable number of arguments, subroutine references, mmreflect
      35. Output formatting
        real number format, text formatting
      36. Using the debugger and profiler
        Debugging and profiling commands, parallel debugging
      37. Checking memory usage
        Using sparse arrays, dynamic array, ahsmap array
      38. Writing packages: definition of constant symbols, subroutines, types, and parameters
        Implementing subroutines, overloading, using packages
      39. Namespace definition
        Implementing packages, defining namespaces, namespace search, namespace groups
      40. Text handling and regular expressions
        Types 'text', 'textarea', 'parsectx'; text parsing
      41. Defining and retrieving annotations
        Accessing annotations from a model or host application
      42. Using documentation annotations
        Using documentation annotations, moseldoc tool
      43. Using 'exists' for loops over sparse arrays
        Enumeration of sparse data, exists
      44. Parameters: tolerances
        Comparison tolerance
      45. Using the model return value for error handling
        Model exit code
      46. Preprocessing Mosel code
        Preprocessing source code, preprocessor symbol, positioning markers
    4. Solving techniques
      1. Using the AEC2 package with mmjobs
        Find or start AEC2 instance, start Mosel, model execution
      2. Column generation for a cutting stock problem
        Variable creation, using 'sethidden', working with multiple problems
      3. Cut generation for an economic lot-sizing (ELS) problem
        Adding constraints and cuts, using the cut manager, run-time parameters
      4. Binary fixing heuristic for the Coco problem
        Working with bases, saving and loading MIP solutions
      5. Branch-and-Price for the Generalized Assignment Problem
        Working with submodels, record data structures
      6. Pre-emptive and Archimedian goal programming
        Changing constraint type, redefining the objective
      7. Using multi-objective solving
        Multiple objectives, configuration of objectives
      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 optnode callback or the cut manager callback, addcuts, storecuts and loadcuts, subroutine reference
      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. MIP start solutions and subtour elimination algorithm for the traveling salesman problem (TSP)
        CP target values, MIP start solution, MIP callbacks, cutting plane algorithm
      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, clone submodel
      16. Dantzig-Wolfe decomposition: combining sequential and parallel solving
        Concurrent subproblem solving, coordination via events, in-memory data exchange, mempipe, mempipe notifications, remote mempipe
      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, model cloning, shared data
      19. Outer approximation for quadratic facility location: solving different problem types in sequence
        Iterative sequential submodel solving, nonlinear subproblem, MIQP formulation
      20. Solving the TSP problem by a series of optimization subproblems
        Solution heuristic, parallel submodel execution
      21. Looping over optimization runs (within a model, batch executions, and multiple models/submodel)
        Multiple problem runs, submodel
      22. Names handling for decision variables and constraints
        Names generation, variable name, constraint name, location information, compilation options, loading names, public declaration
      23. Using Optimizer Console for running matrices within Mosel
        mmxprs command, Xpress Solver command line, running matrix file
      24. Evolutionary algorithm for supply management
        Evolutionary algorithm, iterative LP solving
      25. Lagrangian Relaxation for a Generalized Assignment Problem
        Working with subproblems, iterative LP solving
      26. News Vendor Problem
        2-stage stochastic program, scenario-based robust optimization
      27. Multi-stage stochastic portfolio investment
        Iterative submodel runs, in-memory data exchange
      28. Sludge production planning solved by recursion
        Iterative solving, recursion, SLP
    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 hang glider trajectory
        Nonlinear constraints, trapezoidal discretization
      17. Force required to lift an object
        SOCP formulation
      18. Convex hull of two triangles
        Trigonometric constraints, graphical representation
      19. Optimal number and distribution of grid points for a nonlinear function
        Discretization, GNUPlot graphic, subroutine references
      20. Nonlinear trimloss problem
        NLP, alternative solvers
    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. Reading sparse data from text files, spreadsheets and databases, and from memory
        Data input, initializations from, SQL, ODBC, spreadsheet, CSV
      7. Data output to text files, spreadsheets and databases, and to memory
        Data output, initializations to, SQL, ODBC, spreadsheets, CSV
      8. Dataframe formats
        dataframe, union types, CSV format
      9. Dense vs. sparse data format
        array types, noindex
      10. Auto-indexation for single-dimensional arrays
        auto-indexation
      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 union types
        Types any, date, time; data input/output
      16. Reading and writing dates and times
        data types date, time, datetime
      17. Reading 3-dimensional arrays
        Multidimensional array input, option partndx
      18. Burglar - Data source access from Mosel models
        'mmodbc.odbc', 'mmsheet.excel', 'mmetc.diskdata' I/O drivers, SQL, XML, JSON
      19. Burglar - In-memory data exchange between Mosel models
        'bin', 'shmem', 'raw', 'text', 'tmp', 'rmt' I/O drivers
    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. Display matrix scaling information
        Retrieving matrix coefficient ranging information, getscale, SVG graph drawing
    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. Working with models, data and dynamic libraries in Mosel
        Accessing sets and arrays; retrieving solution information; displaying information and contents of models and libraries; 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. Portfolio optimization using pandas to calculate covariance
      2. Invert a Mosel matrix with NumPy
      3. Python I/O driver example
    18. Puzzles and Recreational Mathematics
      1. Sudoku (CP and MIP models)
        Using 'all_different', enumerating all feasible solutions, SVG graphs showing progress of solving
      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. Branching rule branching on the most violated Integer/Binary
        Using the change branch callbacks
      3. Apply a binary fixing heuristic to an unpresolved MIP problem
        Changing bounds, accessing solver controls
      4. Perform objective function parametrics on a MIP problem
        Saving/loading bases, changing objective coefficients
      5. Perform RHS parametrics on a MIP problem
        Changing RHS coefficients, working with bases
      6. Apply a primal heuristic to a knapsack problem
        Using the MIP log callback
      7. Apply an integer fixing heuristic to a MIP problem
        Changing bounds
      8. Load an LP and modify it by adding an extra constraint
        Load LP problem, adding a constraint
      9. Save/access a postsolved solution in memory
        Retrieving solution values and tree search information
      10. Adding MIP solutions to the Optimizer
        Using the optnode callback, saving/loading bases, changing bounds
      11. Solve LP, displaying the initial and optimal tableau
        Retrieve basic variables and their names, btran
      12. Modify problem: add an extra variable within an additional constraint
        Adding rows and columns, branching directives
      13. 10 best solutions with the MIP solution enumerator
        Using the solution enumerator and MIP solution pool
      14. Collecting all solutions with the MIP solution pool
        Using the solution enumerator and MIP solution pool
      15. Repairing infeasibility
        Using repairinfeas
      16. Goal programming
        Lexicographic goal programming using the Xpress multi-objective API
    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
      7. Goal programming
        Lexicographic goal programming using the Xpress multi-objective API
    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 MIP 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 tree search information
      8. Goal programming
        Lexicographic goal programming using the Xpress multi-objective API
    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 MIP 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 tree 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 user functions returning their own derivatives
        Implementing complex user functions returning their own derivatives
      5. Implementing the polygon examples as a black box function
        Implementing user functions
      6. Maximizing the area of a polygon using tokens based input - using a 'map' userfunction
        Using strings to express nonlinear formulas, including a 'map' userfunction
      7. Maximizing the area of a polygon using tokens based input - using a 'vecmap' userfunction
        Using strings to express nonlinear formulas, including a 'vecmap' userfunction
      8. Maximizing the area of a polygon using tokens based input - using a 'multimap' userfunction
        Using strings to express nonlinear formulas, including a 'multimap' userfunction
      9. Maximizing the area of a polygon using tokens based input - using a 'mapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'mapdelta' userfunction
      10. Maximizing the area of a polygon using tokens based input - using a 'vecmapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'vecmapdelta' userfunction
      11. Maximizing the area of a polygon using tokens based input - using a 'multimapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'multimapdelta' userfunction
    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
      2. Maximizing the area of a polygon using tokens based input - using a 'map' userfunction
        Using strings to express nonlinear formulas, including a 'map' userfunction
      3. Maximizing the area of a polygon using tokens based input - using a 'vecmap' userfunction
        Using strings to express nonlinear formulas, including a 'vecmap' userfunction
      4. Maximizing the area of a polygon using tokens based input - using a 'multimap' userfunction
        Using strings to express nonlinear formulas, including a 'multimap' userfunction
      5. Maximizing the area of a polygon using tokens based input - using a 'mapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'mapdelta' userfunction
      6. Maximizing the area of a polygon using tokens based input - using a 'vecmapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'vecmapdelta' userfunction
      7. Maximizing the area of a polygon using tokens based input - using a 'multimapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'multimapdelta' userfunction
    3. Calling the Nonlinear library from Java
      1. 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. Solution support sets
          Support sets
        9. Step bounding
          Step bounding
        10. Zero placeholders
          Zero placeholders
    4. 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. Using Python model objects to build a problem
          Modelling using Python objects
        7. Changing the optimization problem
          Changes to a problem
        8. Extending a problem
          Extending a problem
        9. Using NumPy and Xpress
          Using NumPy and Xpress
        10. Finding an LP subsystem with as many constraints as possible
        11. Basis and Stability
          Basis handling and sensitivity methods
        12. Solving a quadratically constrained problem
          Building quadratic expressions
        13. Solving a nonconvex quadratic problem
          Building quadratic expressions
        14. Solving a quadratically problem
          Building quadratic expressions
        15. Repeatedly solving a problem
          Solving a problem multiple times
        16. Using indicators
          Model with indicators
        17. The travelling salesman problem
          Using Xpress callbacks
        18. Solving a TSP using NumPy
          Using Xpress callbacks
        19. Writing and reading problem files
          Writing and reading a problem to disk
        20. The feasiblity pump
          Writing and reading a problem to disk
        21. Knapsack problem
          MIP problem with binary variables
        22. The n-queens problem
          Puzzle modeling
        23. Min-cost-flow problem
          Modelling a graph problem
        24. Solving Sudoku
          Puzzle modeling
        25. Comparing Matrices
          Compare two optimization problems
        26. Multicommodity flow problem
          Solve a multicommodity flow minimum cost optimization problem on a randomly created graph
        27. Find largest-area inscribed polygon
        28. Read problem data into matrix and vectors
        29. Solve a nonconvex MIQCQP problem
        30. Solve a simple MIP using Benders decomposition
        31. Create a problem with piecewise linear functions
        32. Use the API to create a model with piecewise linear functions
        33. Create a problem with general constraints that use operator abs
        34. Create a problem with general constraints with the operator abs by using the API
        35. Create a problem with general constraints that use operator max
        36. Create a problem with general constraints with operator max by using the API
        37. Create a problem with logical constraints
        38. Create a problem with general constraints with logic operators by using the API
        39. Create an iterative algorithm cutting stock problem
        40. Maximize the sum of logistic curves subject to linear and piecewise linear constraints
        41. Transportation problem with piecewise-linear costs
        42. Modeling Satisfiability (SAT) problems with MIP
        43. Modeling PseudoBoolean Optimization problems with MIP
        44. Re-solving problem using the Barrier method's warm start
        45. Using the tuner functions in the Python interface
        46. Multi-objective knapsack problem
          Multi-objective MIP problem with binary variables
        47. Goal programming
          Lexicographic goal programming using the Xpress multi-objective API
        48. Markowitz portfolio optimization
          Multi-objective quadratic optimization
      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
        3. Solve a polynomial optimization problem
          Modeling a polynomial optimization problem
    5. Xpress R Interface examples
      1. R examples solving problems using the Xpress Optimizer
        1. Load and solve a simple 2x2 linear program
          xprs_loadproblemdata, displaying a solution as a data frame, a simple pipe workflow
        2. Formulate and solve a Facility Location Problem
          xprs_loadproblemdata, writeprob, setoutput, xprs_optimize, xprs_getsolution
        3. Solve an LP and a MIP using Xpress-R
          xprs_loadproblemdata, getintattrib, getdblattrib, readprob, getmipsol, xprs_getsolution
        4. Read and write problems to and from standard formats MPS and LP
          readprob, setintcontrol, writeprob
        5. Set controls of Xpress
          readprob, setintcontrol, setdefaultcontrol, getintattrib, getdblattrib, setdefaults, dumpcontrols
        6. Query Attributes of Xpress
          createprob, readprob, printing, getintattrib
        7. Add indicator constraints
          createprob, readprob, mipoptimize, xprs_getsolution, addrows, setindicator
        8. Register an R function as callback into Xpress
          readprob, getintattrib, addcboptnode, addcbintnode, getdblattrib
        9. Formulate a quadratic optimization problem in Xpress
          xprs_loadproblemdata, writeprob, xprs_optimize
        10. Solving different types of Sudokus with the FICO Xpress Optimizer
          xprs_loadproblemdata, addrows, getmipsol, mipoptimize
        11. Modeling Sudokus creating columns and rows incrementally using xprs_newcol and xprs_addrow
          createprob, setprobname, chgbounds, xprs_newcol, xprs_addrow, xprs_newrow, setoutput, getmipsol, mipoptimize
        12. Solve Traveling Salesperson Problems using callbacks or delayed rows
          xprs_loadproblemdata, addrows, addcuts, addcboptnode, addcbpreintsol, getlpsol, loaddelayedrows
        13. Solve a maximum flow problem and visualize the result
          createprob, chgobjsense, setprobname, xprs_newcol, chgobj, xprs_addrow, xprs_getsolution
        14. Solve a modified bin packing problem with the addition of a simple greedy heuristic
          addmipsol, createprob, xprs_newcol, xprs_newrow, xprs_getsolution
        15. Solve a routing problem using an arc-paths formulation for a telecommunication network
          createprob, chgobjsense, xprs_newcol, xprs_addrow, xprs_getsolution
        16. Solve a production planning problem
          createprob, chgbounds, xprs_newcol, xprs_newrow, xprs_getsolution
        17. Model a piecewise linear function using binary variables
          createprob, chgbounds, xprs_newcol, xprs_addrow, xprs_getsolution
        18. Optimize a composition of investment portfolios using semi-continuous variables
          createprob, chgcoltype, chgglblimit, chgrhs, chgobjsense, xprs_newcol, xprs_newrow, xprs_getsolution
        19. Find an optimal schedule of jobs on different machines and visualize the result in ggplot2
          createprob, setprobname, xprs_newcol, xprs_newrow, xprs_addrow, setoutput, getdblattrib, xprs_getsolution
        20. Solve two related problems assigning pilots to crews under different constraints
          createprob, chgobjsense, chgobj, setprobname, xprs_newcol, xprs_addrow, setoutput, xprs_getsolution
        21. Solve a timetabling problem for college courses under various constraints
          createprob, chgbounds, chgobj, setprobname, xprs_newcol, xprs_newrow, setoutput, xprs_getsolution
        22. Solve a small production problem with 2 products and 2 resource constraints
          createprob, chgobjsense, setprobname, xprs_newcol, xprs_addrow, setoutput, xprs_getsolution
        23. Solve a minimum cost flow problem in a bipartite graph
          createprob, setprobname, xprs_newcol, xprs_addrow, setoutput, xprs_getsolution
        24. Modeling a piecewise linear objective function using SOS2 constraints
          createprob, setprobname, addsets, getdblattrib, xprs_newcol, xprs_addrow, setoutput, xprs_getsolution
        25. Infeasibility and IIS Detection
          createprob, getiisdata, getintattrib, iisall, iisstatus, iisisolations, xprs_newcol, xprs_newrow, xprs_optimize
        26. Basis and Stability
          bndsa, createprob, getbasis, getnames, loadbasis, objsa, rhssa, writebasis, writeslxsol, xprs_getsolution, xprs_newcol, xprs_newrow, xprs_optimize
        27. Using the Tuner
          createprob, setoutput, readprob, setintcontrol, tune, tunerreadmethod, tunerwritemethod, xprs_optimize
        28. Goal programming
          createprob, setoutput, xprs_newcol, xprs_addrow, chgobj, chgobjn, setobjintcontrol, setobjdblcontrol, xprs_optimize, getintattrib, getmipsol
    6. Xpress Kalis examples
      1. Xpress Kalis Mosel features
        1. Generic binary and n-ary constraints
          Mosel subroutine implementing a constraint relation
        2. Table constraint: solving a binpacking problem
          Constraint definition via value tuples, optimization
        3. All-different constraint: solving an assignment problem
          Constraint definition, check for feasible solution
        4. 'abs' and 'distance' constraints
          Constraint definition
        5. 'distribute' and 'occurrence' constraints
          Constraint definition, check for feasible solution, cardinality constraint
        6. One- and two-dimensional 'element' constraints
          Constraint definition
        7. Implication and equivalence constraints
          Constraint definition
        8. Conjunctions and disjunctions (logical 'and' and 'or')
          Constraint definition
        9. 'cycle' constraint: formulating a TSP problem
          Constraint definition, solution callback, branching strategy
        10. 'cumulative' and 'disjunctive' constraints for scheduling and planning problems
          Scheduling with resource constraints
        11. 'producer_consumer' constraints: solving a resource-constrained project scheduling problem
          Configuring resource and task objects, scheduling solver
        12. Resource profiles
          Alternative resources, non-constant resource usage profiles
        13. Minimum and maximum constraints
          Constraint definition, constraint posting, cpvarlist
        14. Defining, posting and propagating linear constraints
          Automated propagation, automated post, explicit post, scalar product, dot product
        15. Non-linear constraints over real-valued decision variables
          Branching strategy for cpfloatvar
        16. Branching strategies
          Branching schemes, enumeration for discrete or continuous variables, tasks, disjunctive constraints
        17. Use of callbacks to output the search tree
          Definition of branching callbacks
        18. Working with 'reversible' objects
          Setting and retrieving reversible values, behaviour on backtracking
        19. Defining a linear relaxation
          LP or MIP solving within a CP problem
      2. Xpress Kalis Mosel 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, infeasibility conflict analysis
        12. Assigning workers to machines: heuristics and user-defined search
          Linear, 'all-different', and 'element' constraints, solution heuristic
        13. Working with reversible numbers
          Branching strategy, reversible numbers, branching callbacks
        14. Scenes allocation problem: symmetry breaking
          'implies', 'distribute', 'maximum' constraints, symmetry breaking
        15. Construction of a stadium: project planning
          Scheduling with precedence constraints, task objects
        16. Backing up files: scheduling with cumulative resource constraints
          Cumulative scheduling, task and resource objects
        17. Job-shop scheduling
          Task and resource objects, user search strategy
        18. Renewable and non-renewable resources
          Provision/requirement of resource, production/consumption of resource
        19. Resource usage profiles
          Resource idle times, 'resusage', alternative resources
        20. Linear relaxations
          alldifferent' constraint reformulated by linear relaxations, user-defined linear relaxations
      3. Xpress Kalis Mosel 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
        4. Resource-constrained project scheduling problem
          Scheduling objects, resource consumption, task modes, RCPSP, MRCPSP, renewable resource, element constraint
    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. Evaluating MATLAB functions from Mosel
          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