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. Java TM 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.

OPL studio 3.7 Release Notes

  • Upload
    oldecop

  • View
    223

  • Download
    1

Embed Size (px)

DESCRIPTION

OPL studio 3.7 Release Notes

Citation preview

Page 1: OPL studio 3.7 Release Notes

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.

Page 2: OPL studio 3.7 Release Notes
Page 3: OPL studio 3.7 Release Notes

C O N T E N T S

Contents

Release Notes

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

What’s 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

I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S 3

Page 4: OPL studio 3.7 Release Notes

C O N T E N T S

4 I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S

Page 5: OPL studio 3.7 Release Notes

P R E F A C E

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.

I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S 5

Page 6: OPL studio 3.7 Release Notes

6 I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S

Page 7: OPL studio 3.7 Release Notes

What’s 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

I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S 7

Page 8: OPL studio 3.7 Release Notes

A D D I N G I L O G B U S I N E S S R U L E S T O A N O P L M O D E L

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 User’s Manual.

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

8 I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S

Page 9: OPL studio 3.7 Release Notes

C H A N G E S I N T H E C O M P O N E N T L I B R A R I E S

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

I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S 9

Page 10: OPL studio 3.7 Release Notes

C H A N G E S I N T H E C O M P O N E N T L I B R A R I E S

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.

OPLadaptable

You can implement the interface ilog.opl.engine.OPLadapatable in your own classes to allow formatting as OPL data.

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 OPLadaptor{ public static final void format(StringBuffer buffer,...); public static final void formatAsArray(StringBuffer buffer,...); public static final void formatAsEnum(StringBuffer buffer,....); public static final void formatAsEnumValue(StringBuffer buffer,....); public static final void formatAsFloat(StringBuffer buffer,....); public static final void formatAsInt(StringBuffer buffer,....); public static final void formatAsSet(StringBuffer buffer,...); public static final void formatAsString(StringBuffer buffer,....); public static final void formatAsStruct(StringBuffer buffer,....);}

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,...);}

public interface OPLadaptable{ public void formatToOPL(StringBuffer buffer);}

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 I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S

Page 11: OPL studio 3.7 Release Notes

C H A N G E S I N T H E C P L E X P A R A M E T E R S

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.

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 User’s 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.

public class OPLsymmetricRequirement extends OPLrequirement{ public OPLsymmetricRequirement(Object object1, Object object2); public boolean equals(Object o)}

I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S 11

Page 12: OPL studio 3.7 Release Notes

C H A N G E S I N T H E O P L S T U D I O D E B U G G E R

◆ 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 I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S

Page 13: OPL studio 3.7 Release Notes

B U G F I X E S

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.

I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S 13

Page 14: OPL studio 3.7 Release Notes

D I S C O N T I N U E D P L A T F O R M S

14 I L O G O P L S T U D I O 3 . 7 — R E L E A S E N O T E S