solvers - The Systems Modeling & Information Technology Laboratory

advertisement
Department of Electrical & Computer Engineering
& Computer Science
Systems Modeling & Information Technology Laboratory
(SMIT Lab)
University of Maryland,
The Institute for Systems Research
Deliverable Name:
Preventive Maintenance Scheduling Model and Generic Implementation, Mathematical
Programming Modeling Languages and Solvers
Task ID: 877.001
Task Title:
Models, Algorithms and Software Development for Intelligent Preventive Maintenance in
Semiconductor Fabs.
Authors:
Jose Ramirez, Jason Crabtree, Emmanuel Fernandez
March 29, 2002
DRAFT
1 – Introduction.............................................................................................................................. 3
1.1 – Summary of PM Scheduling Model ............................................................................................. 3
1.2 – Summary of Modeling Languages and Solvers........................................................................... 5
2 – Model Description Languages (MDL) .................................................................................... 6
2.1 – AMPL (A Mathematical Programming Language) ................................................................... 7
2.1.1 – Platform Support ......................................................................................................................................8
2.1.2 – License Information .................................................................................................................................8
2.1.3 – Additional Information .............................................................................................................................8
2.2 – IBM EasyModeler.......................................................................................................................... 9
2.2.1 – Platform Support ......................................................................................................................................9
2.2.2 – License Information .................................................................................................................................9
2.2.3 – Additional Information ........................................................................................................................... 10
2.3 – ILOG Optimization Programming Language (OPL) Studio .................................................. 10
2.3.1 – Platform Support .................................................................................................................................... 10
2.3.2 – License Information ............................................................................................................................... 10
2.4 – LINGO .......................................................................................................................................... 10
2.4.1 – Platform Support .................................................................................................................................... 11
2.4.2 – License Information ............................................................................................................................... 11
2.5 – Other Commercially Algebraic MDL’s ..................................................................................... 12
2.5.1 – Additional Information ........................................................................................................................... 12
2.6 – Mathematical Programming System (MPS) Files .................................................................... 13
2.6.1 – Additional Information ........................................................................................................................... 13
3 – Solvers..................................................................................................................................... 15
3.1 – IBM Optimization Solutions and Library (OSL) ..................................................................... 15
3.1.1 – Library.................................................................................................................................................... 15
3.1.2 – Solutions................................................................................................................................................. 15
3.1.3 – Platform Support .................................................................................................................................... 16
3.1.4 – License Information ............................................................................................................................... 16
3.1.5 – Additional Information ........................................................................................................................... 16
3.2 – ILOG CPLEX .............................................................................................................................. 17
3.2.1 – Component Libraries .............................................................................................................................. 17
3.2.2 – Optimizers .............................................................................................................................................. 17
3.2.3 – Platform Support .................................................................................................................................... 17
3.2.4 – License Information ............................................................................................................................... 18
3.2.5 – Additional Information ........................................................................................................................... 18
3.3 – LINDO .......................................................................................................................................... 18
3.3.1-Platform Support ....................................................................................................................................... 18
3.3.2-License Information .................................................................................................................................. 19
3.3.3-Additional Information ............................................................................................................................. 20
4 – Final Comments ..................................................................................................................... 20
References .................................................................................................................................... 21
Appendix A ................................................................................................................................... 23
2
1 – Introduction
This work reported here is part of the research project being conducted in optimal preventive
maintenance (PM) scheduling for semiconductor fabs, specifically the generic
implementation of the PM scheduling model. The focus of the report is on model description
languages (MDL) and solvers for mathematical programming that can be used to define and
solve the scheduling model. The most prevalent languages and solvers in industry and
academia are discussed in detail and the pros and cons of each are given. Before delving into
the modeling languages and solvers, a brief overview of the PM scheduling model is
provided below.
1.1 – Summary of PM Scheduling Model
The PM scheduling model is a mixed integer program (MIP) that seeks to optimize the short
term scheduling of PM tasks on a family of tools [14, 15]. Optimal performance is achieved
by increasing the overall availability of the set of tools and by reducing the overall PM costs
(parts & labor) and accumulations of work in process (WIP) at each tool during a finite
scheduling period. Scheduling periods are usually set at one to two weeks (shorter periods
eliminate the need for optimization while longer periods introduce large uncertainties).
The two figures below illustrate the overall framework of an implementation of the PM
scheduling software. Figure 1 is a flowchart showing the steps the software implementation
proceeds through when solving the PM model. The highlighted section shows the steps that
involve the modeling languages and solvers discussed in this report. In these steps, data for
the model is formatted and passed along with the model to the solver. The solver then
performs the optimization and returns the solution. Figure 2 shows the software architecture
divided into the two key parts; the customizable portion and the generic portion. The
customizable portion consists of the company specific components that need tailoring to a
particular company’s software systems (e.g. MES system). The generic portion consists of
the transportable components, which are the core of the software package. The generic
portion is the focus of this report. The components in the generic portion include the model
generating and data formatting modules. Note that the solver is in fact company dependent,
but is included in the generic portion since the software will integrate with most all solvers.
The IBM OSL solver and MPS model format are given as examples in the figure.
3
Begin
.ini file;
.tool file;
.item file;
System Initialization
and selecting a
machine Family
Specifying a
planning horizon
TMS
database
Dispatch
report
Resource
Data File
Generating
consolidated
tasks vector set
{v}
Chamber
configuration
Computing availability loss
and resources requirement
for each task vector.
Reading in TMS
database, performing
data filtering
Reading in
projected WIP
from WDS
Generating MIP
model instance in a
standard format
SIMPLEX and
Branch-and-Bound
algorithms are used
in the default solver
Invoking OSL default
solver to solve
the MIP model
Reading in
projected
resource
Parsing model solution
and interpreting the
result to users
TMS
End
Figure 1: PM Scheduling Software Process Flow
Generic Portion
Customizable Portion
RPC(Remote Procedures Call)
Connection
Data
Preprocessing
WDS
Interfaces
TMS
Model
generating
model.mps
Solution
Parsing
Front-end
Optimization
Solver (OSL)
Back-end
Figure 2: PM Scheduling Software Architecture
4
The PM scheduling model was successfully implemented at an SRC member company
during student summer internships in 2001. The software created during the internships
integrated the scheduling model with the existing fab systems (e.g. Tool Maintenance
System, Wafer Dispatch Systems) and provided an interface for the user to interact with the
software.
However, the implementation created during these internships was customized in many ways
to that particular member company’s environment. The goal is therefore to now create a
generic implementation of the PM scheduling model such that it is transportable to other
companies. The major obstacle to this goal and the reason for this report is the proper
formulation of the PM scheduling model for use in any company environment.
1.2 – Summary of Modeling Languages and Solvers
In practical mathematical programming, the general approach is to formulate and solve
problems using optimization software. There is a specific sequence of events that
characterize this process:
“
1. Formulate a model – the abstract system of variables, objectives, and constraints that
represent the general form of the problem to be solved.
2. Collect data that defines one or more specific problem instances.
3. Generate a specific objective function and constraint equations from the model and
data.
4. Solve the problem – run a program (solver) that applies some algorithm to find
optimal values of the variables.
5. Analyze the results.
6. Refine the model and data and repeat as necessary” [2].
Of special attention are steps 1, 2, 3 and 4 that directly involve the use of some computer
language to describe the mathematical problem and the use of a specific computer program
(which implements some solving algorithm) to find a solution according to the description
given in the step 1.
The following sections describe in greater detail the software used in steps 1 to 4. The first
section presents the basic issues related to Model Description Languages and gives details
about state of the art of commercial products in this area. These products include AMPL,
IBM EasyModeler, ILOG OPL Studio and LINGO. In the second part, details on solvers are
presented that include basic definitions and the most popular software in academic and
commercial applications.
5
2 – Model Description Languages (MDL)
A Model Description Language is a computer language capable of describing, in a “data
independent” way, Linear Programming (LP), Mixed Integer Programming (MIP), and
Quadratic Programming (QP) models. Generally, in MDL’s the model description is
presented before specify the related data used in the problem. It will produce independence
between the model and data files. In other words, that means a separation of the statement of
the model structure from the data that are used with it. The objective of this approach is
preserving the model statements in cases that the set of data vary from one simulation to
other. This characteristic of independence facilitate the design of integrate environments for
systems optimization and modeling.
There are different types of MDL’s available, but of particular interest is the algebraic
modeling language, which is “a popular variety, based on the use of traditional (i.e.
algebraic) mathematical notation to describe objective and constraint functions. An
algebraic language provides computer readable equivalents of mathematical notations that
would be familiar to those people who have studied algebra or calculus.”[2].
Familiarity is one of key issues in algebraic modeling languages; another is their applicability
to a particularly wide variety of problems such as: linear, nonlinear, and integer
programming models.
There are also other modeling systems based on representations instead of algebraic
modeling languages. Some alternative forms include [5]:

Block-Schematic Diagrams: used to depict linear constraint matrices as collections
of structured submatrices also called blocks.

Activity Specifications: In this case the model is described or modeled with respect
to the activities or variables related, and their effects, according with the constraints
in the problem, in the inputs and outputs of the system.

Netforms: with this modeling methodology the system is presented as a graph or
network diagram involving flows and allocations.
In general, an MDL is designed to facilitate the migration from the mathematical or
modeler’s form of the problem in to the algorithm’s form. Then, a specialized compiler is in
charge of translating the modeler’s form in to the algorithm’s form (that is the form to be
solved in the computer system) according to a specific syntax of the MDL used. The
principal objective of the MDL is help to make mathematical programming more economical
and reliable. It is particularly useful for the development of new models and for
documentation of models that are subject to change.
There are many MDL’s [1] available commercially. Some of them are AMPL, IBM
EasyModeler, ILOG OPL, and LINGO. They are each of special interest for different
reasons. First, in the case of AMPL [2], [5], [13], that is one of the most popular algebraic
modeling languages used both in academic and commercial applications [19]. Another given
6
is IBM EasyModeler [12] that produces as result a Mathematical Programming System file
that can be used by different solvers. ILOG OPL [6], [20], is a product supported by one of
the leading companies in the optimization software market. Finally, LINGO from LINDO
Systems, Inc. [4], [17], presents an interesting characteristic of cost-benefits (according to the
scale of the problem, see tables 2 and 3) with respect to the other products. These reasons
lead us to give a more detailed description of these systems.
2.1 – AMPL (A Mathematical Programming Language)
AMPL [13] is a comprehensive algebraic modeling language (computer language) for
constrained optimization problems, including linear programming, mixed integer
programming, and nonlinear programming. Some of the AMPL applications includes:
production description, distribution and scheduling. AMPL can be used in mathematical
programming problems from small to large-scale. Its popularity is product of the use of
familiar algebraic notation as well as an interactive and integrated command environment,
designed to facilitate the formulation of models, communication with a wide variety of
solvers (CPLEX, OSL, MINOS, XPRESS, etc), and examine solutions through reports As
other MDLs, one of the objectives of AMPL is to accelerate the prototyping and
development of models.
AMPL was developed by Robert Fourer [10] from Northwestern University and David M.
Gay [16] and Brian W. Kernighan [8], [9], [13] (involved in the development of the first
standard for C language) from Bell Laboratories.
This product provides a graphical user interface (GUI) so that the user has an integrated
environment where is possible to handle all the details in the model, solver, and data
involved in the problem. It is important to remark that the AMPL environment allows
handling of the data and model in independent files.
An important characteristic of AMPL is its communication with different solvers. In this
case, AMPL is compatible with many of them, including: CPLEX, MINOS, BPMPD,
CONOPT, DONLP2, FortMP, LP_SOLVE, MOSEK, NPSOL, OSL, and XPRESS. Also,
AMPL includes ILOG CPLEX v.7.0 as a solver, integrated in the modeling-solving
environment. The user therefore has all the necessary tools to solve different LP, QP, and
MIP problems in one package.
7
2.1.1 – Platform Support

PC/Windows 95, 97,98, NT, 2000 and compatible systems.

Sun Microsystems SPARC-based workstations,
or equivalent: SunOS 4.1.x (Solaris1.1), Solaris 2.3 or later.

Hewlett-Packard PA-RISC workstations: HP-UX

Silicon Graphics workstations: IRIX

IBM RS-6000 workstations: AIX

Digital Equipment (DEC) workstations: OSF/1 v3

Cray Research supercomputers: UNICOS.
2.1.2 – License Information
This product is offered in commercial and student versions. The principal difference
between both versions is the number of constraints, variables, and integer variables which is
restricted to 300 in each case for the free student version. The commercial version does not
have these limitations.
The price of this product is as follows (note that there is special price for academic use):
Table 1: AMPL Commercial License prices*
Windows 95/98
Price
Windows NT
Price
UNIX
First install
$3300
First install
$4300
First install
Second install
$3100 Second install
$4100 Second install
Third or more
$2700
Third or more
Third or more
$3700
installs
installs
installs
Academic Edition $1000 Academic Edition $1000
Academic
Edition
Price
$4300
$4100
$3700
$1000
*Source: Optimal Solution Technologies, Inc., see [3] .
2.1.3 – Additional Information
Additional details about AMPL can be found in [5], [13] and [18].
For references about AMPL syntax and technical questions, [2] is a valuable reference.
8
2.2 – IBM EasyModeler
IBM EasyModeler is a MDL composed of [12]:

A special compiler that translates a mathematical model developed in the
EasyModeler language into ANSI C code.

A set of data standards that facilitate feeding data into the code, to generate a model
instance, and get results.

A OSL driver (OSL is a solver developed by IBM)

A dynamic subroutine library which includes interfaces to OSL.
Basically, EasyModeler works in the following way: using the set of instructions from
EasyModeler Model Description Language, the user can write the mathematical
programming problem. Then, a C code is generate by EasyModeler applications that can be
produce, with an adequate compiler, an executable file. The executable file use the data files
related to the problem and finally generate a special file denominated Mathematical
Programming System (MPS) which contains the model detail or description with the data
needed, both in one file. This file can be used in wide variety of solvers [1] such as IBM
OSL Solutions, PCx, XA, LAMPS, etc.
Also, it is important to mention that EasyModeler has been successfully used in the
implementation of the Optimal Scheduling of Preventive Maintenance project in one liason
company.
2.2.1 – Platform Support

IBM AIX

PC / Windows 95, 97, 98, NT, 2000 and compatible systems

Sun Solaris
2.2.2 – License Information
EasyModeler, once marketed by IBM as a Program Product, was withdrawn from marketing
a couple of years ago. However, there are some companies that already use EasyModeler as
an MDL in their optimization problems. For those customers that already have some version
of EasyModeler, Mr. Stefano Gliozzi (stefano_gliozzi @ it.ibm.com), Sell & Support
Practice Senior Consultant for IBM Italy, is currently in charge of providing technical
support and maintaining and enhancing the code that is being used as an Asset in IBM Global
Services activities (see appendix A).
9
2.2.3 – Additional Information
Also, EasyModeler is used in some SRC/ISMT member companies.
2.3 – ILOG Optimization Programming Language (OPL) Studio
ILOG Optimization Programming Language (OPL STUDIO) “is a third-generation
algebraic modeling system. It supports both mathematical programming and constraint
programming to represent both planning and operational decisions” [6]. OPL has
Component Libraries and database support that allow it to build and deploy an optimization
application. Custom applications can be generated using Visual Basic and C/C++ using the
Component Library of OPL.
In the same way as AMPL, OPL Studio can provide an integrated and graphical environment
with model, data, and solver details. OPL Studio uses ILOG CPLEX to solve LP, MIP, and
QP problems.
OPL Studio uses an algebraic modeling system, so that it is possible to represent the
optimization problem in terms of the decision variables and constraints. The OPL syntax
includes high-level notation that represents abstract concepts such as sets, summations, or
for-all statements. This syntax closely resembles the mathematical notation used to describe
the optimization problem.
2.3.1 – Platform Support

PC/Windows 95, 97, NT, 2000 and compatible systems.

PC/Linux

Workstation/Unix
2.3.2 – License Information
The actual price for a commercial license of OPL Studio is $10,000*
*Source: ILOG, Inc. Information obtained by communication with an sales representative on 3/14/2002.
2.4 – LINGO
LINGO, from LINDO Systems Inc.[4], is a tool designed to make building and solving
linear, nonlinear, and integer optimization models easier. LINGO provides an integrated
environment that includes an MDL for expressing optimization models, a adequate
environment for building and editing problems, and a set of built-in solvers.
10
LINGO’s modeling environment can be used to build, solve, and analyze models. For
custom applications LINGO comes with callable Direct Link Library (DLL) and Object
Linking and Embedding (OLE) interfaces for in Windows platforms that can be called from
user written applications. LINGO can also be called directly from an Excel macro or
database application.
2.4.1 – Platform Support

PC/Windows 95, 97, NT, 2000 and compatible systems.

PC/Linux

Workstation/Unix
2.4.2 – License Information
There are academic and commercial licenses available for this product, the prices are detailed
as follows [4]:
Table 2: LINGO-Optimization Modeling Language and Solver – EDUCATIONAL PRICES*
Version
Base
Price
Nonlinear
option
Barrier
Option
Constraints
Variables
Integers
Nonlinear
Variables
Super
LINGO
$245
$75
$75
1,000
2,000
200
200
Hyper
LINGO
$495
$150
$150
4,000
8,000
800
800
Industrial
LINGO
$795
$240
$240
16,000
32,000
3,200
3,200
Extended
LINGO
$1,195
$360
$360
unlimited
unlimited
unlimited
unlimited
Platforms: Available for platforms other than Windows upon request.
*Source: LINDO Systems, Inc. See [4]
11
Table 3: LINGO-Optimization Modeling Language and Solver – STANDARD PRICES*
Version
Base
Price
Nonlinear
option
Barrier
Option
Constraints
Variables
Integers
Nonlinear
Variables
Super LINGO
$495
$150
$150
1,000
2,000
200
200
Hyper LINGO
$995
$300
$300
4,000
8,000
800
800
Industrial
LINGO
$2,995
$900
$900
16,000
32,000
3,200
3,200
Extended
LINGO
$4,995
$1,500
$1500
unlimited
unlimited
unlimited
unlimited
Platforms: Available for platforms other than Windows upon request.
*Source: LINDO Systems, Inc. See [4]
2.5 – Other Commercially Algebraic MDL’s
Other commercially distributed algebraic modeling languages are:

General Algebraic Modeling System (GAMS): one of the first algebraic languages
[24], [25], [26].

Mathematical Programming Language (MPL): characterized by for its graphical
interface and interface with different database formats [23].

Advanced Integrated Multidimensional Modeling Software (AIMMS): is another
popular algebraic MDL that provides a graphical user interface environment. Also it
has a GAMS compatible mode, such as it can supplement its own language [22], [27].
2.5.1 – Additional Information
Further information about the different options in MDL’s can be found in [1].
Finally, the most part of the products presented in this section have the characteristic to
manipulate the data and model information independently (different files for each part) inside
of an integrated environment of optimization: a graphical user interface where the user can
manipulate and review the model, data and results files. For example, in AMPL the model
description is coded in the AMPL language and the data can be provides from different kind
of sources [1]: databases, spreadsheets and text files. Similar situation is presented in ILOG
OPL Studio, EasyModeler and LINGO.
There is another form to express data and model description that has been used widely and
that is the denominated Mathematical Programming System or MPS format. As we will see
in the Solvers section the IBM OSL products need to receive the model and data information
in a MPS file to produce the solution.
12
2.6 – Mathematical Programming System (MPS) Files
MPS [11] is a modeling and data format, originally introduced by IBM, to express linear and
integer programs in a standard way. MPS format was named after an early IBM LP product
and has been used as a standard ASCII medium among most of the commercial LP solvers.
Essentially the most part of commercial LP codes accepts this format as a method of defining
a model and data. The MPS format is column oriented (as opposed to entering the model as
equations) and everything (variables, rows, etc.) gets a name. Fields start in column 1, 5, 15,
25, 40 and 50. Sections of an MPS file are marked by so-called header cards, which are
distinguished by starting in column 1. Although it is typical to use upper case throughout the
file, many MPS readers will accept mixed case. The names chosen for the individual entities
(constraints or variables) are not important to the solver. An example of a MPS file
presented in [28] is shows in the figure 2.1.
Note that the data and model information is included in the last part of the file (figure 2.1).
The new MDL applications come with the ability to independently manage data files and
model files. This feature simplifies and gives more reliability in the problem solving. Even
though MPS used to have the model description and the data to use in the problem, it can be
used with different solvers (CPLEX, OSL, etc) as a way to describe a mathematical problem.
2.6.1 – Additional Information
Further details about the MPS file format and use can be found in [11].
13
************************************************************************
* The data in this file represents the following problem:
* Minimize or maximize Z = x1 + 2x5 - x8
* Subject to:
*
* 2.5 <=
3x1 + x2
- 2x4 - x5
x8
*
2x2 + 1.1x3
<= 2.1
*
x3
+ x6
= 4.0
* 1.8 <=
2.8x4
-1.2x7
<= 5.0
* 3.0 <= 5.6x1
+ x5
+ 1.9x8 <= 15.0
*
* where:
* 2.5 <= x1
*
0 <= x2 <= 4.1
*
0 <= x3
*
0 <= x4
* 0.5 <= x5 <= 4.0
*
0 <= x6
*
0 <= x7
*
0 <= x8 <= 4.3
*
************************************************************************
NAME
EXAMPLE
ROWS
N OBJ
G ROW01
L ROW02
E ROW03
G ROW04
L ROW05
COLUMNS
COL01
OBJ
1.0
COL01
ROW01
3.0
ROW05
5.6
COL02
ROW01
1.0
ROW02
2.0
COL03
ROW02
1.1
ROW03
1.0
COL04
ROW01
-2.0
ROW04
2.8
COL05
OBJ
2.0
COL05
ROW01
-1.0
ROW05
1.0
COL06
ROW03
1.0
COL07
ROW04
-1.2
COL08
OBJ
-1.0
COL08
ROW01
-1.0
ROW05
1.9
RHS
RHS1
ROW01
2.5
RHS1
ROW02
2.1
RHS1
ROW03
4.0
RHS1
ROW04
1.8
RHS1
ROW05
15.0
RANGES
RNG1
ROW04
3.2
RNG1
ROW05
12.0
BOUNDS
LO BND1
COL01
2.5
UP BND1
COL02
4.1
LO BND1
COL05
0.5
UP BND1
COL05
4.0
UP BND1
COL08
4.3
ENDATA
Figure 2.1: MPS File format example.
14
3 – Solvers
A solver is a computer program or software package that solves a mathematical program
(MP). Common mathematical programs are linear programs (LP), mixed-integer programs
(MIP), and quadratic programs (QP). Generally the solver can be either developed by hand
using a set of functions and/or procedures for code generation in some high level language
like C/C++ or Visual Basic, or it can be a standalone application which doesn’t requires code
generation from the user and is fed with some mathematical description of the problem
(usually an MDL).
Some examples of the most prevalent commercially available solvers are given below.
3.1 – IBM Optimization Solutions and Library (OSL)
IBM OSL [7] products provide access to mathematical optimization tools used to solve
optimization problems with LP, MIP, and QP. OSL can be used in two different forms: as a
Library of callable functions or as standalone applications, also called Solutions.
3.1.1 – Library
The OSL Library [16] includes 250 user callable functions in C/C++ for manipulating
models, solving the optimization problems, controlling the algorithms, and analyzing the
results. This Library has solvers for linear programs, mixed integer programs, quadratic
programs, and quadratic integer programs.
The Library can be extended using Optimization Library Stochastic Extensions or
Optimization Library Parallel Extensions. The first one solves stochastic programming
problems with its own procedures and those in the Optimization Library. To solve stochastic
programs, both the Optimization Library and the Optimization Library Stochastic Extensions
are required. The second one includes procedures that enable transparent parallelization of
serial programs. This product works with but does not include the Optimization Library.
3.1.2 – Solutions
The OSL Solutions are independent or stand alone applications used for LP, MIP, and QP
problems. Each Solutions Package receives a mathematical description or programming of
the problem as an input and produces a solution as an output. They provide most of the
functionality of the complete library without requiring the user to write and compile driver
programs by hand.
15
3.1.3 – Platform Support
OSL is supported in the following platforms or operative systems:

PC/Windows 95, 97, NT, 2000 and compatible systems

PC/Linux

Workstation/Unix

IBM S/390 & IBM AS400 & IBM SP
3.1.4 – License Information
IBM offers either commercial or academic licenses for OSL. In both versions there is no
limit in the number of constraints, variables, integer variables and nonzero variables. The
principal difference is that the academic/student version license is free but needs to be
renewed every six months and can’t be used in commercial applications.
OSL is distributed through authorized vendors and its approximate price is as follows [3],[7]:
Table 4: IBM OSL License price
Product
Optimization Library
Stochastic Extensions
Parallel Extensions
LP Solutions
MIP Solutions
MIP Solutions
QP Solutions
Stochastic Solutions
Price
$9100
$12000
$2500
$3000
$3000
$3000
$3000
$3000
*Source: Optimal Solution Technologies, Inc., See [3]
3.1.5 – Additional Information
More details about IBM OSL can be found at [7] and [16].
16
3.2 – ILOG CPLEX
ILOG CPLEX [6], [21] is another solver widely used for optimization. This product is
manufactured by ILOG Inc., a French company specializing in design software components
for optimization engines, business rule engines, and interactive user-interface engines.
CPLEX is categorized as an optimization engine.
Similar to OSL, CPLEX is used to solve linear (LP), mixed-integer (MIP), and quadratic
programming (QP) problems. Some of the applications mentioned for CPLEX includes:
chain planning, telecommunication network design, and transportation logistics. This
product has been designed to speed-up the development of mathematical programming for
large scale problems. Important features attributed to ILOG CPLEX are its high performance
in large scale and real world optimization problems, robustness, reliability, and flexibility.
Also similar to IBM OSL, ILOG CPLEX can be used through callable libraries, called
Component Libraries for applications development, or with specific standalone software
applications, also called Optimizers (CPLEX Interactive Optimizers). Both options included
in the called CPLEX Base Development System [6].
3.2.1 – Component Libraries
The CPLEX Component Libraries provide C/C++ and Java programming interfaces. They
allow C/C++, Java, Visual Basic, and FORTRAN developers to embed ILOG CPLEX
technology directly in custom applications using a set of routines for defining, solving,
analyzing, querying, and creating reports for mathematical programming problems and
solutions.
3.2.2 – Optimizers
The set of standalone CPLEX Optimizers are: CPLEX Simplex (used for LP problems),
CPLEX Barrier (used for LP or QP problems), and CPLEX Mixed Integer (used for MIP
problems). All these products include a command-line utility that allows users to read and
write problem files and tune the performance of all ILOG CPLEX algorithms for their
specific problem.
3.2.3 – Platform Support
CPLEX is supported in the following platforms or operative systems:

PC/Windows 95, 97, 98, 2000, Me, NT,

PC/Linux

Workstation/Unix

IBM S/390 & IBM AS400 & IBM SP
17
3.2.4 – License Information
CPLEX is offer to commercial use at approximate $11.000* in the suite version that includes
both Component Libraries and Optimizers.
*Source: ILOG, Inc., Information obtained by communication with sales representative on 3/14/2002.
3.2.5 – Additional Information
More details about ILOG CPLEX can be found at [6] and [21].
3.3 – LINDO
LINDO is a solver manufactured by LINDO Systems, Inc., This product allows to solve
linear, integer, and quadratic problems. Providing an interactive environment (including a
graphical user interface) LINDO gives the user the ability to define the problems in a
straightforward “equation” style.
LINDO has been widely used as optimization engine in: businesses, colleges, universities,
and government agencies.
Also, LINDO [17] provides, in addition to its graphical interface, the necessary DLL (Direct
Link Library) for Windows based applications development. This characteristic gives the
ability to generate custom applications using Visual C/C++, Visual Basic, or any
programming language that supports DLL on the Windows platform. Also related to
software development, LINDO offers LINDO API (Application Programming Interface),
which allows a major flexibility in the generation of custom optimization applications. With
the API, it is possible produce simple applications, web applications, and interface the
LINDO solvers with Matlab developments.
For other platforms, LINDO provides object libraries to generate code in FORTRAN and C.
Any custom application that uses calls to the LINDO solver requires a separate license.
3.3.1-Platform Support





PC / Windows 95, 98, NT, 2000.
Linux
SPARC/Solaris
Silicon Graphics
IBM RS/6000
18
3.3.2-License Information
Tables 5 and 6 show the list prices for LINDO in the academic and standard licenses [4]. Note
that depending of the scale of the problem to solve, the final price of the product changes.
Table 5: LINDO API-The Premier Optimization Engine
Educational/Academic version*
Version
Base
Price*
Nonlinear
option*
Barrier
Option*
Constraints
Variables
Integers
Nonlinear
Variables
Super
LINDO API
$195
N/A
N/A
1,000
2,000
200
N/A
Hyper
LINDO API
$395
N/A
N/A
4,000
8,000
800
N/A
Industrial
LINDO API
$695
N/A
N/A
16,000
32,000
3,200
N/A
Extended
LINDO API
$995
N/A
N/A
unlimited
unlimited
unlimited
N/A
Platforms: Windows, Linux, and most popular UNIX platforms
* Prices and details taken from [4].
Table 6: LINDO API-The Premier Optimization Engine
Standard version
Version
Base
Price*
Nonlinear
option*
Barrier
Option*
Constraints
Variables
Integers
Nonlinear
Variables
Super
LINDO API
$395
N/A
N/A
1,000
2,000
200
N/A
Hyper
LINDO API
$795
N/A
N/A
4,000
8,000
800
N/A
Industrial
LINDO API
$2,395
N/A
N/A
16,000
32,000
3,200
N/A
Extended
LINDO API
$3,995
N/A
N/A
unlimited
unlimited
unlimited
N/A
Platforms: Windows, Linux, and most popular UNIX platforms
* Prices and details taken from [4].
19
3.3.3-Additional Information
More details about LINDO can be found at [4] and [17].
4 – Final Comments
An important issue for both MDL’s and Solvers is data compatibility. Most of the
aforementioned optimization packages include compatibility with databases (for reading and
writing files), spreadsheets, and text files. Also, most of them can read standard MPS files to
pass the model and data to the solver or process separate model and data files through an
integrated environment..
In the case of MDL’s, AMPL has the ability to translate the actual AMPL model description
into a MPS format using the export capabilities of this product. Thus, it is possible to
migrate problems from one solver to other, e.g. from ILOG CPLEX to IBM OSL. In effect,
the work required in code generation is facilitated by mean of a high level language like
AMPL and finally solved using the solver of choice. Also, instead of translating a model into
the standard MPS format for use on many solvers, the optimization software industry
provides many drivers for different solvers so that one can use different solvers with a
specific MDL. Therefore, the added functionality of the specific language is not lost in the
conversion to the MPS format. For example, a driver that allows AMPL models to be used
directly with IBM OSL is available for free [5].
20
References
[1] Fourer, Robert. Linear Programming Software Survey. OR/MS Today, August 2001..
[2] Robert Fourer, David M. Gay, and Brian W. Kernighan. AMPL: A Modeling Language
for Mathematical Programming. Duxbury Press – Brooks-Cole Publishing Company, 1993
[3] Optimal Solutions Technologies, Inc., web site http://www.optimize.com
[4] LINDO Systems, Inc., web site http://www.lindo.com
[5] AMPL web site: http://www.ampl.com
[6] ILOG, Inc., web site: http://www.ilog.com
[7] IBM, OSL Products web site:
http://www-3.ibm.com/software/data/bi/osl/index.html
[8] The Development of the C Language, electronic version at:
http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
[9] Brian W Kernighan web site: http://cm.bell-labs.com/who/bwk/
[10] Robert Fourer web site: http://iems.nwu.edu/~4er/
[11] MPS format, web site:
http://www6.software.ibm.com/sos/features/featur11.htm#HDRMPSDATA
[12] Gliozzi, Stefano. EasyModeler Asset User Guide. IBM-Italy, 1999.
[13] Robert Fourer, David M. Gay and Brian W. Kernighan, A Modeling Language for
Mathematical Programming." Management Science 36 (1990) 519-554.
[14] Xiaodong Yao, Michael Fu, Steven Marcus, Emmanuel Fernandez. “Optimization of
Preventive Maintenance Scheduling for Semiconductor Manufacturing Systems: Models and
Implementation", SRC Pub: P003267. Also in Proceedings of the 2001 IEEE International
Conference on Control Applications, Mexico City, September 5-7, 2001, pp. 407-411.
[15] Xiaodong Yao, Michael Fu, Steven Marcus, Emmanuel Fernandez. “Incorporating
Production Planning into Preventive Maintenance Scheduling in Semiconductor Fabs",
MASM 2001 Conference, Tempe, AZ.
[16] Ming S. Hung, Walter O. Rom, and Allan D. Waren. Optimization with IBM OSL and
Handbook for IBM OSL, The Scientific Press, 1993.
21
[17] Linus Schrage. Optimization Modeling With LINDO, 5th Edition, Brooks-Cole Publishing,
1997.
[18] David M. Gay, Symbolic-Algebraic Computations in a Modeling Language for
Mathematical Programming. Technical Report 00-3-02, Computing Sciences Research
Center, Bell Laboratories, Murray Hill, NJ (2000).
[19] J.J. Bisschop and Robert Fourer, New Constructs for the Description of Combinatorial
Optimization Problems in Algebraic Modeling Languages. Computational Optimization and
Applications 6 (1996) 83-116.
[20] See http://www.ilog.com.sg/corporate/releases/sg/991101_intdatacorp.cfm
[21] CPLEX Optimization, Inc., Using the CPLEX Callable Library, version 3.0. Incline
Village, NV (1994).
[22] J.J. Bisschop and R. Entriken, AIMMS: The Modeling System. Paragon
Decision Technology, Haarlem, The Netherlands (1993).
[23] B. Kristjansson, MPL Modelling System User Manual, Version 2.8. Maximal Software
Inc., Arlington, VA (1993).
[24] J.J. Bisschop and A. Meeraus, On the Development of a General Algebraic Modeling
System in a Strategic Planning Environment. Mathematical Programming Study
20 (1982) 1-29.
[25] A. Brooke, D. Kendrick and A. Meeraus, GAMS: A User's Guide, Release 2.25.
Boyd & Fraser, The Scientific Press, Danvers, MA (1992).
[26] GAMS web site: http://www.gams.com/
[27] AIMMS web site: http://www.aimms.com/
[28] MPS files format, examples:
http://www6.software.ibm.com/sos/features/feat24DT.htm#HDRABDATA
22
Appendix A
This is the email received from Stefano Gliozzi with respect to the actual state of IBM
EasyModeler:
----- Original Message ----From: "Stefano Gliozzi" <stefano_gliozzi@it.ibm.com>
To: "Jose A. Ramirez" <ramirejs@ECECS.UC.EDU>
Cc: "Dr. Fernandez" <emmanuel@ECECS.UC.EDU>
Sent: Monday, February 18, 2002 5:32 AM
Subject: EasyModeler Information
> Dear Mr Ramirez,
> I apologize for the delay in my answer; EasyModeler, once marketed by IBM
> as a Program Product, has been withdrown from marketing a couple of years
> ago. I am currently mantaining and enhancing the code, that is being used
> as an Asset in IBM Global Services activities (supported platforms: IBM
> AIX, MS Windows (32) ans Sun Solaris; no Linux still - but it should be an
> easy port). Therefore I will need some more time to understand who could
be
> in IBM US the correct person to interface you; I hope to be able to get
> back with this information in a couple of weeks.
>
> On the other hand, I'll be more than happy to answer specific EasyModeler
> questions and requirements that could make this piece of code useful in
> your research.
>
> Best Regards,
> Stefano Gliozzi
>
> Sell & Support Practice Senior Consultant
> IBM Global Services - Business Innovation Services
> Ph. +39-06-596-65477, Mobile +39-335-7389709
> Fax. +39-06-596-65084
> e-mail: stefano_gliozzi @ it.ibm.com
> http://stefanogliozzi-it.userv.ibm.com/homepage.html
> snail-mail: Via Sciangai, 53 - 00144 Roma - ITALY
23
Download