FRAMES NO FRAMES

About This Manual

This reference manual documents the IBM® ILOG® Concert Technology and IBM ILOG Solver libraries.

Group Summary
optim.concert The IBM® ILOG® Concert API.
optim.concert.extensions The IBM® ILOG® Concert Extensions Library.
optim.concert.solver The IBM® ILOG® Concert Solver API.
optim.concert.xml The IBM® ILOG® Concert Serialization API.
optim.solver The IBM® ILOG® Solver API.
optim.solver.iim The IBM® ILOG® Iterative Improvement Methods Optimization Components (IIM) API.
What is Solver?

Solver is a C++ library for constraint programming. This library is not a new programming language: it lets you use data structures and control structures provided by C++. Thus, the Solver part of an application can be completely integrated with the rest of that application (for example, the graphic interface, connections to databases, etc.) because it can share the same objects.

What Is Concert Technology?

Concert Technology offers a C++ library of classes and functions that enable you to design models of problems for both math programming (including linear programming, mixed integer programming, quadratic programming, and network programming) and constraint programming solutions.

This library is not a new programming language: it lets you use data structures and control structures provided by C++. Thus, the Concert Technology part of an application can be completely integrated with the rest of that application (for example, the graphic interface, connections to databases, etc.) because it can share the same objects.

Furthermore, you can use the same objects to model your problem whether you choose a constraint programming or math programming approach. In fact, Concert Technology enables you to combine these technologies simultaneously.

What You Need to Know

This manual assumes that you are familiar with the operating system where you are using Solver. Since Solver is written for C++ developers, this manual assumes that you can write C++ code and that you have a working knowledge of your C++ development environment.

Notation

Throughout this manual, the following typographic conventions apply:

Naming Conventions

The names of types, classes, and functions defined in the Solver library begin with Ilo or Ilc. Names beginning with Ilo (for optimization) indicate components suitable for models; they are recommended for use with IBM ILOG Concert Technology. Names beginning with Ilc (for constraint programming) indicate components suitable for use inside a search; they are necessary when you extend the IBM ILOG Solver library yourself by nesting search components within goals or constraints or by deriving your own classes from Ilc components.

The names of classes are written as concatenated, capitalized words. For example:

IlcIntVar

A lower case letter begins the first word in names of arguments, instances, and member functions. Other words in such a name begin with a capital letter. For example,

aVar

IlcIntVar::getValue

There are no public data members in Solver except in goals and demons. (See for an explanation of goals and demons.)

Accessors begin with the keyword get followed by the name of the data member. Accessors for Boolean members begin with is followed by the name of the data member. Like other member functions, the first word in such a name begins with a lower case letter, and any other words in the name begin with a capital letter.

Modifiers begin with the keyword set followed by the name of the data member.


class Task {
public:
    Task(char* name, IlcInt duration);
    ~Task();
    IlcInt getDuration() const;
    void setDuration(IlcInt duration);
    IlcBool isCritical() const;
    void setCritic(IlcBool critic);
};