BCL User Guide Examples
=======================

The examples in this directory are presented in their entirety or as
code fragments in the Xpress-BCL User Guide and Reference Manual,
in the part "Getting Started with BCL" of the "Getting Started with 
Xpress" manual, or in the "Evaluators Guide".

The BCL example files (*.java) are contained directly in this
directory. The corresponding Mosel (*.mos) files as well as any 
possibly required input data files are contained in the corresponding 
sub-directories of the Data subdirectory of the BCL Examples directory.

jobs
----
  Small scheduling problems, implemented in different ways.
  (Section 5.2 of Xpress-BCL User Guide and Reference Manual) 
xbexpl1.java: 
* using arrays of variables
* defining SOS
* setting branching directives
* file output
xbexpl1i.java:
* using index sets

infeas
------
  Small infeasible example that demonstrates user error handling.
xbexpl3.java: 
* error handling
* output redirection
* changing BCL settings for printout

trans
-----
  Transportation model.
xbexpl2.java:
* data input from file
* using index sets

contract
--------
  Contract allocation problem (see xbcontr.java in directory IntrExpl)
  (Java version of Appendix B of Xpress-BCL User Guide and Reference Manual)
xbcontr1.java:
* combining BCL problem input with problem solving in Xpress-Optimizer
xbcontr2.java:
* using an Xpress-Optimizer solution callback with a BCL model

cutex
-----
  Defining cuts with BCL.
xbcutex.java:
* using BCL cut functions
* using the Xpress-Optimizer cut manager callback with a BCL model

qpr12
-----
  Small Quadratic Programming example.
  (Java version of Section 3.4 of Xpress-BCL User Guide and Reference Manual)
xbqpr12.c:
* defining a quadratic objective function
* defining ranged constraints
* defining free variables

airport
-------
  A QCQP example minimizing the total distance between a set of points.
xbairport.c:
* defining a  QCQP model (quadratic objective, convex quadratic constraints)  

-----------------------------------------------------------------------

folio
-----

Examples from "Getting Started with BCL"
========================================
Chapter 10 "Inputting and Solving a Linear Programming problem"
* foliolp.java: modeling and solving a small LP problem
* folioinit.java: initialization with error handling
* foliodata.java (data file: foliocpplp.dat): data input from file

Chapter 11 "Mixed Integer Programming"
* foliomip1.java: modeling and solving a small MIP problem (binary variables)
* foliomip2.java: modeling and solving a small MIP problem (semi-continuous
                  variables)

Chapter 12 "Quadratic Programming"
* folioqp.java (data file: foliocppqp.dat): modeling and solving a QP and 
                                            a MIQP problem
* folioqc.java (data file: foliocppqp.dat): modeling and solving a QCQP 

Chapter 13 "Heuristics"
* folioheur.java: heuristic solution of a MIP problem


Examples from "Advanced Evaluators Guide"
=========================================

foliomip3.java - enlarged version of model foliomip.c from the
                 'Getting started' guide (more constraints, larger data set) 
		 employed by all examples in the directory
		 (to be used with data set folio10.dat or folio250.dat)

foliocb.java   - defining an integer solution callback

***Multiple MIP solutions***
foliosolpool.java - using the MIP solution pool
folioenumsol.java - using the solution enumerator

***Handling infeasibility***
folioinfeas.java - handling infeasibility through deviation variables
folioiis.java    - retrieving IIS
foliorep.java    - using the built-in infeasibility repair functionality

-----------------------------------------------------------------------

Additional examples are located in the directory "IntrExpl" (introductory examples).
