You are on page 1of 14

ILOG OPL Studio 3.

7
Release Notes
September 2003

Copyright 1987-2003, by ILOG S.A. All rights reserved.


ILOG, the ILOG design, CPLEX, and all other logos and product and service names of ILOG are registered trademarks or trademarks of ILOG in France,
the U.S. and/or other countries.
JavaTM and all Java-based marks are either trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Microsoft, Windows, and Windows NT are either trademarks or registered trademarks of Microsoft Corporation in the U.S. and other countries.
All other brand, product and company names are trademarks or registered trademarks of their respective holders.

Contents

Release Notes
Preface

About This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Whats New in OPL Studio 3.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7


Adding ILOG Business Rules to an OPL Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Changes in the Component Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Changes in the CPLEX Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Changes in the OPL Studio Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Changes in Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Bug Fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Discontinued Platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

ILOG OPL STUDIO 3.7 RELEASE NOTES

CONTENTS

ILOG OPL STUDIO 3.7 RELEASE NOTES

About This Manual

These Release Notes summarize what has changed in ILOG OPL Studio since version 3.6.1.
Note that from OPL Studio 3.5 onwards, C++ code generation is no longer available. The
generic C++ API replaces this feature. Code migration is explained in the OPL Studio
Migration Guide.
The readme file also contains additional information and should be consulted before
launching OPL Studio.

ILOG OPL STUDIO 3.7 RELEASE NOTES

ILOG OPL STUDIO 3.7 RELEASE NOTES

Whats New in OPL Studio 3.7

The main differences between version 3.7 of OPL Studio and the previous version, 3.6.1, are
the following:
Adding ILOG Business Rules to an OPL Model
Changes in the Component Libraries
Changes in the CPLEX Parameters
Changes in the OPL Studio Debugger
Changes in Behavior
Bug Fixes
Discontinued Platforms

ILOG OPL STUDIO 3.7 RELEASE NOTES

ADDING ILOG BUSINESS RULES TO AN OPL MODEL

Adding ILOG Business Rules to an OPL Model


A new sample, available in OPLSt37/examples/rules/warehouserules.zip, contains
an ILOG JRules repository to demonstrate the integration of JRules and OPL Studio. This
sample uses the warehouse example to show how you can add ILOG Business Rules to an
OPL model to customize the model. The sample uses the additional adaptor classes of the
OPL Java Component Library.
For details, refer to the ILOG OPL Studio 3.7 Component Libraries Users Manual.

Figure 1 Ruleflow: Integrating OPL in a JRules-based Application

ILOG OPL STUDIO 3.7 RELEASE NOTES

CHANGES IN THE COMPONENT LIBRARIES

Figure 2 Business Rule to Customize the Warehouse Location Problem

Changes in the Component Libraries


Additions to the Java Component Library to adapt JRules data structures
For the C++ component only, the int return type for methods has become IloInt
The method setCplexThreads is obsolete in OPL 3.7

Additions to the Java Component Library


The Java Component Library contains additional classes and interfaces to adapt Java and
ILOG JRules data structures to the OPL data format. For details, see the
ILOG OPL Studio 3.7 Component Libraries Reference Manual.
OPLadaptor
The class ilog.opl.engine.OPLadaptor eases integration between a Java application
and an OPL model by converting java.util.Collection instances, java.util.Map
instances, or Java arrays to OPL data sets, arrays, or enumerated values. It also provides
APIs to translate:
java.lang.Object to OPL struct
java.lang.String to OPL string or enum
java.lang.boolean and java.lang.int to OPL int
java.lang.double to OPL double

ILOG OPL STUDIO 3.7 RELEASE NOTES

CHANGES IN THE COMPONENT LIBRARIES

public class OPLadaptor


{
public static final void
public static final void
public static final void
public static final void
public static final void
public static final void
public static final void
public static final void
public static final void
}

format(StringBuffer buffer,...);
formatAsArray(StringBuffer buffer,...);
formatAsEnum(StringBuffer buffer,....);
formatAsEnumValue(StringBuffer buffer,....);
formatAsFloat(StringBuffer buffer,....);
formatAsInt(StringBuffer buffer,....);
formatAsSet(StringBuffer buffer,...);
formatAsString(StringBuffer buffer,....);
formatAsStruct(StringBuffer buffer,....);

OPLrulesAdaptor
The class ilog.opl.engine.OPLrulesAdaptor eases integration between an ILOG
JRules application and an OPL model by translating instances of
ilog.rules.engine.IlrDefaultCollector into OPL data sets, arrays, or enumerated
values.
public class OPLrulesAdaptor extends OPLadaptor
{
public static final void formatAsArray(Stringbuffer buffer,...);
public static final void formatAsEnum(Stringbuffer buffer,...);
public static final void formatAsSet(Stringbuffer buffer,...);
}

OPLadaptable
You can implement the interface ilog.opl.engine.OPLadapatable in your own classes
to allow formatting as OPL data.
public interface OPLadaptable
{
public void formatToOPL(StringBuffer buffer);
}

OPLrequirement
The class OPLrequirement translates a requirement typically coming from business rules
into an OPL struct. OPL requirements are used to specify additional constraints in an OPL
model.
public class OPLrequirement implements OPLadaptable
{
public OPLrequirement(Object[] objects);
public OPLrequirement(Object object1, Object object2,...);
public void formatToOPL(StringBuffer buffer);
public boolean equals(Object o);
public int hashCode();
public String toString();
}

10

ILOG OPL STUDIO 3.7 RELEASE NOTES

CHANGES IN THE CPLEX PARAMETERS

OPLsymmetricRequirement
The class OPLsymmetricRequirement groups a pair of objects as a symmetric
requirement. A symmetric requirement comes from business rules and is to be translated
into an OPL struct. Symmetric requirements are used to post constraints in an OPL model,
typically for specifying compatibility tables.
public class OPLsymmetricRequirement extends OPLrequirement
{
public OPLsymmetricRequirement(Object object1, Object object2);
public boolean equals(Object o)
}

Changes in the CPLEX Parameters


The following changes in CPLEX 9.0 parameters are reflected in the notebook pages of the
GUI and in the ILOG OPL Studio Users Manual.
New Parameters
diveType, determines the MIP dive strategy. The values are:

Automatically determined (default)


Traditional dive
Probing dive
Guided dive
finalFactor, the indicator for simplex final factorization after uncrush can be

switched on (default) or off.


RINSHeur, MIP strategy parameter, determines how often to apply the relaxation

induced neighborhood search (RINS) heuristic. The values are On or Off (default).
subMIPNodeLim, defines the MIP subnode limit. This parameter restricts the number

of nodes searched during application of the relaxation induced neighborhood search


(RINS) heuristic. The value can be any positive integer (default = 500).
Modified Parameters
basInterval has a new default value, 2100000000.

ILOG OPL STUDIO 3.7 RELEASE NOTES

11

CHANGES IN THE OPL STUDIO DEBUGGER

depInd, that sets the dependency check during preprocessing, now has five values:

-1 Automatic (default)
0 Off
1 On at beginning of preprocessing
2 On at end of preprocessing
3 On at beginning and end of preprocessing
dPriInd has an additional setting, 5, for Devex pricing.
MIPEmphasis has an additional setting, 4, to indicate MIP emphasis on hidden

feasibility.
Obsolete Parameters
barVarUp, the parameter that controlled the upper limit on variables in the barrier

optimizer has been removed. CPLEX now assumes an infinite upper bound unless a
finite bound is actually stated in the model.
simThreads, the parameter to limit the number of simplex threads has been removed.

Changes in the OPL Studio Debugger


The OPL Studio Debugger for monitoring external Solver C++ based applications
independently of the OPL language has been repackaged as ILOG Solver Debugger and is
part of the ILOG Solver product. The ILOG Solver Debugger does not need an OPLStudio
key.
The header file, library and example specific to Scheduler are included in the ILOG
Scheduler Debugger archive and are installed in the Scheduler installation directory.

Changes in Behavior
When you declare an ofile in OPL or OPLScript, the location of the file is relative to
the model or the script in which the ofile was declared.
If optimality is not proved, for example when the execution is stopped by the user, the

solution output (if any) is described as Feasible and not as Optimal.

12

ILOG OPL STUDIO 3.7 RELEASE NOTES

BUG FIXES

Bug Fixes
Several bugs have been fixed in OPL 3.7. For details, see the readme file.

Discontinued Platforms
HP-UX and AIX platforms are not supported in OPL 3.7.
Note: Microsoft Corporation has announced plans to discontinue standard support for the
Microsoft MSVC6 compiler as of September 30, 2003. Accordingly, ILOG will no longer be
able to provide standard support for those ILOG customers who have not upgraded their
applications to a later version of the Microsoft compiler. Nevertheless, ILOG will continue
to provide bug fixes for those customers, to the extent ILOG can do so without the support
of Microsoft.

ILOG OPL STUDIO 3.7 RELEASE NOTES

13

DISCONTINUED PLATFORMS

14

ILOG OPL STUDIO 3.7 RELEASE NOTES

You might also like