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 (*.c) 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.
xbexpl1.c: 
* using arrays of variables
* defining SOS
* setting branching directives
* file output
xbexpl1i.c:
* using index sets
* data input from file

infeas
------
  Small infeasible example that demonstrates user error handling.
xbexpl3.c: 
* defining the message and error callbacks
* changing BCL settings for printout and error handling

scenario
--------
  Solving multiple scenarios of a transportation problem in parallel.  
xbexpl2.c:
* standard, single thread version
xbscenar.c:
* defining multiple problems, each in a separate thread
* redirection of BCL output into files

contract
--------
  Contract allocation problem (see xbcontr.c in directory IntrExpl)
xbcontr1.c:
* combining BCL problem input with problem solving in Xpress-Optimizer
xbcontr2.c:
* using an Xpress-Optimizer solution callback with a BCL model

cutex
-----
  Defining cuts with BCL
xbcutex.c:
* using BCL cut functions
* using the Xpress-Optimizer cut manager callback with a BCL model
  
qpr12
-----
  Small Quadratic Programming example.
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.c: modeling and solving a small LP problem
* folioarr.c: same as foliolp.c, using variable arrays
* folioinit.c: performing explicit initialization
* foliodata.c (data file: foliocpplp.dat): data input from file

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

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

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


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

foliomip3.c    - 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.c      - defining an integer solution callback

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

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

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

Additional examples are located in the directories "IntrExpl" (introductory examples) and "AdvExpl" (more advanced examples).
