IBM ILOG Solver User's Manual > Welcome to IBM ILOG Solver

IBM® ILOG® Solver is a C++ library for solving complex combinatorial problems in diverse areas including production planning, resource allocation, time tabling, personnel scheduling, cutting materials, blending mixtures, assigning radio frequencies, and many others.

IBM ILOG Solver is based on IBM ILOG Concert Technology. Concert Technology offers a C++ library of classes and functions that enable you to define models for optimization problems and to apply algorithms to those models. Concert Technology supports algorithms for both constraint programming and mathematical programming (including linear programming, mixed integer programming, quadratic programming, and network programming) solutions.

For more information about IBM ILOG Solver and IBM ILOG Concert Technology, see Chapter 1, Constraint Programming with IBM ILOG Solver.

About this manual

This is the IBM ILOG Solver User's Manual. It is composed of chapters that use a procedural-based learning strategy as well as more conceptual chapters. Each procedural-based lesson is built around a sample problem, and a user works on a partially completed code example. As you follow the steps in the lesson, you complete the code and learn about concepts. Then, you compile and run the code and analyze the results. At the end of each lesson, there are review exercises.

The manual is designed to be used by C++ programmers who may or may not have any knowledge of constraint programming. The ideal usage context for this manual is sitting in front of your computer, with IBM ILOG Concert Technology and IBM ILOG Solver installed. You work through the lessons and exercises.

If you are a novice Solver user, start at the beginning of this manual, since the lessons build on each other. If you are a more experienced Solver user, you can jump ahead to a later part of the manual, focusing on more advanced topics.

How this manual is organized

This manual is divided into six parts:

Prerequisites

Solver requires a working knowledge of C++. However, it does not require you to learn a new language since it does not impose any syntactic extensions on C++.

If you are experienced in constraint programming or operations research, you are probably already familiar with many concepts used in this manual. However, no experience in constraint programming or operations research is required to use this manual.

You should have IBM ILOG Solver and IBM ILOG Concert Technology installed in your development environment before starting to use this manual. You should be able to compile, link, and execute a sample program provided with IBM ILOG Solver before starting to use this manual. For more information, see the sections Installing IBM ILOG Solver and Linking IBM ILOG Solver.

Related documentation

The following documentation ships with IBM ILOG Solver and will be useful for you to refer to as you complete the lessons and exercises:

Installing IBM ILOG Solver

In this manual, it is assumed that you have already successfully installed the IBM ILOG Solver and IBM ILOG Concert Technology libraries on your platform (that is, the combination of hardware and software you are using). If this is not the case, you will find installation instructions in the jacket of the CD-ROM of the standard distribution of Solver. The instructions cover all the details you need to know to install Concert Technology and Solver on your system.

Linking IBM ILOG Solver

When you use Solver, you link the IBM ILOG Solver and IBM ILOG Concert Technology libraries to your application. The command that you use for linking depends on your platform. In the standard distribution of the product, you will find a file that contains details appropriate to your platform and that points you toward a subdirectory containing a suitable makefile or project. If you are using UNIX, you will find the information in YourSolverHome/README; on a PC, you will find comparable information in YourSolverHome/readme.htm

Typographic and naming conventions

The names of types, classes, and functions defined in the library begin with Ilo or Ilc. Those beginning with Ilo are predefined modeling and solving classes, functions, and types provided with Solver and Concert Technology. You can use classes, functions, and types in the Solver library that begin with Ilc to customize your code and extend the library. For more information, see Part IV, Extending the Library.

The name of a class is written as concatenated words with the first letter of each word in upper case. For example,

IloIntVar

A lower case letter begins the first word in names of arguments, instances, and member functions. Other words in the identifier begin with an upper case letter. For example,

IloIntVar aVar; 
IloIntVarArray::add;

Names of data members begin with an underscore, like this:

class Bin {
public:
  IloIntVar       _type;
  IloIntVar       _capacity;
  IloIntVarArray  _contents;
  Bin (IloModel    mod,
       IloIntArray Capacity,
       IloInt      nTypes,
       IloInt      nComponents);
  void display(const IloSolver sol);
};

Generally, accessors begin with the key word get. Accessors for Boolean members begin with is. Modifiers begin with set.

To make porting easier from platform to platform, Solver and Concert Technology isolate characteristics that vary from system to system. For that reason, use the following names for basic types in C++:

You are not obliged to use these identifiers, but it is highly recommended if you plan to port your application to other platforms.

Important ideas are italicized the first time they appear.

This guide contains important information on the procedures and practices followed in the service and support of your IBM products. It does not replace the contractual terms and conditions under which you acquired specific IBM Products or Services. Please review it carefully. You may want to bookmark the site so you can refer back as required to the latest information. We are interested in continuing to improve your IBM support experience, and encourage you to provide feedback by clicking the Feedback link in the left navigation bar on any page. The "IBM Software Support Handbook" can be found on the web at

http://www14.software.ibm.com/webapp/set2/sas/f/handbook/home.html

System Service Request (SSR) tool is similar to Electronic Service request in providing online problem management capability for clients with support offerings in place on System i, System p, System z, TotalStorage products, Linux, Windows, Dynix/PTX, Retail, OS/2, Isogon, Candle on OS/390 and Consul z/OS legacy products.

IBMLink - SoftwareXcel support contracts offer clients on the System z platform the IBMLink online problem management tool to open problem records and ask usage questions on System z software products. You can open, track, update, and close a defect or problem record; order corrective/preventive/toleration maintenance; search for known problems or technical support information: track applicable problem reports: receive alerts on high impact problems and fixes in error; and view planning information for new releases and preventive maintenance.