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. Linearizations and approximations via SOS1 and SOS2
        Piecewise linear, approximation
      4. General constraints and Boolean variables
        general constraints, boolvar, logctr, Boolean variables, logical expressions
      5. Indicator and logic constraints
        indicator constraints, logic constraints, logctr, advmod
      6. Assignment
        simple LP problem, graphical representation of results
      7. Bin packing
        simple MIP problem, random generation of data, use of model parameters, setting Optimizer controls
      8. Blending ores
        simple LP problem, formulation of blending constraints
      9. Capital budgeting
        simple MIP problem
      10. Contract allocation
        simple MIP problem, semi-continuous variables, graphical representation of results
      11. Cutting stock
        MIP problem solved by column generation, working with multiple problems, using 'sethidden', setting Optimizer and Mosel control parameters
      12. 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
      13. 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
      14. Knapsack
        simple IP problem, formulation of knapsack constraints, model parameters, function 'random'
      15. 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
      16. 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
      17. Purchasing with price breaks
        MIP problem, modeling a piecewise linear function with SOS-2, graphical representation of data
      18. Transport
        simple LP problem, using dynamic arrays for data and decision variables, formatted output printing, inline 'if', format of data files
      19. 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
      20. Set covering
        MIP problem, modeling an equivalence; sparse data format, graphical output representation, 'if-then-else'
      21. Single period product mix
        Simple LP problem, single period production planning
      22. Personnel requirement planning
        simple MIP problem, formulation of balance constraints using inline 'if'
      23. 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'
      24. 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
      25. Multi-commodity network flow
        MIP problem, encoding of paths, 'finalize', 'getsize'
      26. 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
      27. 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
      28. Line balancing
        MIP problem, encoding of arcs, 'range', formulation of sequencing constraints
      29. Minimum weight spanning tree
        MIP problem, formulation of constraints to exclude subcycles, graphical representation of results
      30. Flow-shop scheduling
        MIP problem, alternative formulation using SOS1, graphical solution representation
      31. Job shop scheduling
        MIP problem, formulating disjunctions (BigM); 'dynamic array', 'range', 'exists', 'forall-do', graphical solution representation
      32. 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'
      33. Set partitioning
        MIP problem, algorithm for data preprocessing; file inclusion, 3 nested/recursive procedures, working with sets, 'if-then', 'forall-do', 'exists', 'finalize'
      34. Open shop scheduling
        MIP problem, data preprocessing, algorithm for preemptive scheduling that involves looping over optimization, ''Gantt chart'' printing and drawing
      35. Sequencing jobs on a single machine
        MIP problem with 3 different objectives; 'procedure' for solution printing, 'if-then'
      36. Timetable for courses and teachers
        MIP problem, many specific constraints, tricky (pseudo-) objective function, 'finalize'
      37. Basic LP tasks: problem statement and solving; solution analysis
        LP solving, solution printout, array and set data structures
      38. Basic MIP tasks: binary variables; logic constraints
        MIP solving, binary variables, index set types, logic constraints
      39. LCSP: Labour constrained scheduling problem
        Dynamic creation of variables, formulation of resource constraints
      40. Transportation problem with piecewise linear cost expressions
        MIP problem
      41. Approximating nonlinear univariate functions via piecewise linear constraints
        MIP problem
      42. MAXSAT solving via MIP
        MAXSAT model
      43. Conditional creation of decision variables
        use of 'exists', finalization of index sets
      44. Delivery: Infeasibility analysis with IIS
        Retrieving and displaying IIS
      45. 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. Package version management
        Implementing packages, version management, deprecation, annotations
      41. Text handling and regular expressions
        Types 'text', 'textarea', 'parsectx'; text parsing
      42. Defining and retrieving annotations
        Accessing annotations from a model or host application
      43. Using documentation annotations
        Using documentation annotations, moseldoc tool
      44. Using 'exists' for loops over sparse arrays
        Enumeration of sparse data, exists
      45. Parameters: tolerances
        Comparison tolerance
      46. Using the model return value for error handling
        Model exit code
      47. 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. Maximal inscribing square
        Trigonometric functions
      8. Static load balancing in a computer network
        Nonlinear objective
      9. Minimum surface between boundaries
        Nonlinear constraints and objective
      10. Moon landing
        Nonlinear objective and constraints
      11. Polygon construction under constraints
        Trigonometric constraints and objective
      12. Portfolio optimization
        Quadratic constraints and quadratic objective
      13. Locating electrons on a conducting sphere
        Nonlinear constraint and objective, alternative objective functions
      14. Find the shape of a chain of springs
        Quadratic constraints
      15. Steiner tree problem
        Quadratic constraints
      16. Trafic equilibrium
        Nonlinear objective
      17. Modeling hang glider trajectory
        Nonlinear constraints, trapezoidal discretization
      18. Force required to lift an object
        SOCP formulation
      19. Convex hull of two triangles
        Trigonometric constraints, graphical representation
      20. Optimal number and distribution of grid points for a nonlinear function
        Discretization, GNUPlot graphic, subroutine references
      21. 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. The travelling salesman problem
        Using Xpress 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 MIP problem
        Saving/loading bases, changing objective coefficients
      6. Perform RHS parametrics on a MIP problem
        Changing RHS coefficients, working with bases
      7. Apply a primal heuristic to a knapsack problem
        Using the MIP 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 tree search information
      11. Adding MIP solutions to 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
        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
      8. The travelling salesman problem
        Using Xpress callbacks
      9. Apply a binary fixing heuristic to an unpresolved MIP problem
        Changing bounds, accessing solver controls
      10. Apply a primal heuristic to a knapsack problem
        Using the MIP log callback
      11. Load an LP and modify it by adding an extra constraint
        Load LP problem, adding a constraint
      12. Save/access a postsolved solution in memory
        Retrieving solution values and tree search information
      13. Adding MIP solutions to the Optimizer
        Using the optnode callback, saving/loading bases, changing bounds
      14. Solve LP, displaying the initial and optimal tableau
        Retrieve basic variables and their names, btran
      15. Branching rule branching on the most violated Integer/Binary
        Using the change branch callbacks
      16. Repairing infeasibility
        Using repairinfeas
      17. Apply an integer fixing heuristic to a MIP problem
        Changing bounds
      18. Perform objective function parametrics on a MIP problem
        Saving/loading bases, changing the objective
      19. Perform RHS parametrics on a MIP problem
        Saving/loading bases, changing right-hand side values
    3. Calling the Optimizer library from C#.NET
      1. The travelling salesman problem
        Using Xpress callbacks
      2. Apply a binary fixing heuristic to an unpresolved MIP problem
        Changing bounds, accessing solver controls
      3. Irreducible Infeasible Set Search
        Using IIS
      4. Apply a primal heuristic to a knapsack problem
        Using the MIP log callback
      5. Load an LP and modify it by adding an extra constraint
        Load LP problem, adding a constraint
      6. 10 best solutions with the MIP solution enumerator
        Using the solution enumerator and MIP solution pool
      7. Collecting all solutions with the MIP solution pool
        Using the solution enumerator and MIP solution pool
      8. Save/access a postsolved solution in memory
        Retrieving solution values and tree search information
      9. 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 strings to express nonlinear formulas
      2. Maximizing the area of a polygon using a 'map' userfunction
        Using strings to express nonlinear formulas, including a 'map' userfunction
      3. Maximizing the area of a polygon using a 'vecmap' userfunction
        Using strings to express nonlinear formulas, including a 'vecmap' userfunction
      4. Maximizing the area of a polygon using a 'vecmapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'vecmapdelta' userfunction
      5. Maximizing the area of a polygon using a 'mapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'mapdelta' userfunction
      6. Maximizing the area of a polygon using a 'multimap' userfunction
        Using strings to express nonlinear formulas, including a 'multimap' userfunction
      7. Maximizing the area of a polygon using a 'multimapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'multimapdelta' userfunction
    3. Calling the Nonlinear library from Java
      1. Maximizing the area of a polygon
        Using strings to express nonlinear formulas
      2. Maximizing the area of a polygon using a 'map' userfunction
        Using strings to express nonlinear formulas, including a 'map' userfunction
      3. Maximizing the area of a polygon using a 'vecmap' userfunction
        Using strings to express nonlinear formulas, including a 'vecmap' userfunction
      4. Maximizing the area of a polygon using a 'vecmapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'vecmapdelta' userfunction
      5. Maximizing the area of a polygon using a 'mapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'mapdelta' userfunction
      6. Maximizing the area of a polygon using a 'multimap' userfunction
        Using strings to express nonlinear formulas, including a 'multimap' userfunction
      7. Maximizing the area of a polygon using a 'multimapdelta' userfunction
        Using strings to express nonlinear formulas, including a 'multimapdelta' userfunction
    4. 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
  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. 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
      49. Basic LP tasks: problem statement and solving; solution analysis
        LP solving, modeling variables and constraints, printing the solution
      50. Network problem: transport from depots to customers
        LP solving, modeling variables and constraints
      51. Blend: A model for mineral blending
        simple LP problem, formulation of blending constraints
      52. Basic MIP tasks: binary variables; logic constraints
        MIP solving, binary variables, index set types, logic constraints
      53. Coco: The Coco productional planning problem
        LP problem, formulation of resource constraints and material balance constraints, formatted solution printing
      54. Catenary: Determine chain shape
        QCQP problem
      55. Pplan: A project planning problem
        Formulation of resource use profiles
    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
  6. 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, getnamelist, 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
  7. 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
  8. 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
  9. 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