How to read this book
Topics covered in this section:
For a complete overview and introduction to modeling and solving with the FICO Xpress Optimization product suite, we recommend reading the entire document. However, readers who are only interested in certain topics, may well skip certain parts or chapters as shown in the following diagram.

Figure 1.1: Suggested flow through the book
Using the Mosel language with Xpress Workbench
The approach presented in the first part of this book is recommended for first time users, novices to Mathematical Programming, and users who wish to develop and deploy new models quickly, supported by graphical displays for problem and solution analysis.
For example, if you wish to develop a Linear Programming (LP) model and embed it into some existing application, you should read the first four chapters, followed by Chapter Embedding a Mosel model in an application on embedding Mosel models.
To find out how to model and solve Quadratic Programming (QP) problems with Xpress, you should read at least Chapters Introduction-Inputting and solving a Linear Programming problem, the beginning of Chapter Working with data and then Chapter Quadratic Programming; for Mixed Integer Quadratic Programming (MIQP) also include Chapter Mixed Integer Programming on Mixed Integer Programming (MIP).
To see how you may implement your own solution algorithms and heuristics in the Mosel language, we suggest reading Chapters Introduction-Inputting and solving a Linear Programming problem, the beginning of Chapter Working with data, followed by Chapter Mixed Integer Programming on MIP and then Chapter Heuristics on Heuristics.
Working in a programming language environment
Users who wish to develop their entire application in a programming language environment have two options, using one of the object-oriented APIs of Xpress Solver or inputting their problem into Xpress Solver via its low-level matrix-based API.
Users who are looking for modeling support whilst model execution speed is a decisive factor in their choice of the tool should look at the object-oriented APIs of Xpress Solver. We exemplify the use of these APIs with Java in this book. For users who prefer to leverage the readibility and integration of other open-source libraries using Python, a corresponding chapter for the Python language is provided. Due to the modeling objects defined by the Python and Java interfaces, the resulting code remains relatively close to the algebraic model and is easy to maintain. These interfaces support all problem types supported by the Solver, with this book containing modeling examples of LP, MIP, and QP problems (Chapters Inputting and solving a Linear Programming problem- Quadratic Programming for Python, and Chapters Inputting and solving a Linear Programming problem- Quadratic Programming for Java). For learning the basics on how to embed a Python model into a powerful application using Xpress Insight, we recommend reading Chapter Embedding a Python model in an application.
The possibility to directly access very specific features of the Solver is also appreciated by advanced users, mostly in the domain of research, who implement their own algorithms involving the solution of LP, MIP, or QP problems (Chapters Inputting and solving a Linear Programming problem-Quadratic Programming).
© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.