OPL e CPLEX
OPL e CPLEX
OPL e CPLEX
http://code.google.com/p/ms428-unicamp/
14 de julho de 2011
Licenca
Um tutorial de OPL e CPLEX de http://code.google.com/p/ms428-unicamp/
foi licenciada com uma Licenca Creative Commons - Atribuicao - Uso Nao
Comercial 3.0 Nao Adaptada (http://creativecommons.org/licenses/
by-nc/3.0/).
Com base na obra disponvel em http://code.google.com/p/ms428-unicamp/.
Podem estar disponveis permissoes adicionais ao ambito desta licenca em
http://code.google.com/p/ms428-unicamp/.
Licence
Um tutorial de OPL e CPLEX by http://code.google.com/p/ms428-unicamp/
is licensed under a Creative Commons Attribution 3.0 Unported License
(http://creativecommons.org/licenses/by-nc/3.0/).
Based on a work at http://code.google.com/p/ms428-unicamp/.
Permissions beyond the scope of this license may be available at http:
//code.google.com/p/ms428-unicamp/.
ii
Informa
co
es
Este livro foi concebido com o objetivo de ajudar os alunos do curso 28,
Matematica Aplicada e Computacional, da Universidade Estadual de Campinas, UNICAMP, no aprendizado da Optimization Programming Language
(OPL) e no uso do CPLEX Optimizer (CPLEX)
Optou-se por utilizar o LATEX para a producao deste livro, o sistema
de versionamento Mercurial e hospedar os arquivos no Google Code (http:
//code.google.com/p/ms428-unicamp/).
Para obter a versao mais atual deste livro deve-se adquirir os arquivos do
projeto (maiores informacoes em http://code.google.com/p/ms428-unicamp/
source/checkout e gerar a versao visual.
Correcoes e sugestoes podem ser feitas via e-mail ou pelo envio de pacotes ao projeto (para evitar vandalismo, a permissao para modificacoes dos
arquivos presentes no repositorio sera concedida apos a primeira correcao ou
sugestao).
iii
iv
Pref
acio
Como disse Flatberg, em [Fla09], a motivacao para utilizar uma linguagem
de modelagem, como OPL, sao que esta:
apresenta uma sntaxe que e proxima da formulacao matematica;
permite uma separacao entre o modelo e a instancia numerica de dados.
Deste modo, nos primeiros captulos apresentamos a sntaxe do linguagem
OPL.
Posteriormente apresentamos como utilizar o CPLEX para resolver os
modelos desenvolvidos na OPL.
Na Figura 1 e apresentado uma estatstica comparativa dos principais
solvers existentes. Pode-se observar que o CPLEX apresenta um dos melhores
desempenho de todos de modo que utiliza-lo quase sempre e uma boa escolha.
Deve-se destacar que a utilizacao do CPLEX em sistemas operacionais diferentes e muito diferente e algumas funcionalidades existentes para um sistema
operacional podem nao estar disponveis em outro.
Figura 1: MIP solver benchmark: Geometric mean of results taken from the
homepage of Hans Mittelmann, http://plato.asu.edu/ftp/milpf.html
(16/Jan/2011).
Unsolved or failed instances are accounted for with the time limit of 2 hours.
vi
PREFACIO
Sum
ario
Informaco
es
iii
Pref
acio
1 Instalac
ao
1.1 Aquisicao . . . . . . . . . . . .
1.2 Linux . . . . . . . . . . . . . . .
1.2.1 Versao para Linux . . . .
1.2.2 Versao para Windows via
1.3 Windows . . . . . . . . . . . . .
2 Introduc
ao
2.1 Parametros . . . . . .
2.2 Parametros em arquivo
2.3 Variaveis . . . . . . . .
2.4 Operacoes . . . . . . .
2.5 Funcao Objetivo . . .
2.6 Restricoes . . . . . . .
. . .
. . .
. . .
Wine
. . .
. . . . . .
separado
. . . . . .
. . . . . .
. . . . . .
. . . . . .
A Notac
ao
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
3
3
.
.
.
.
.
.
5
5
6
6
6
6
6
9
ii
SUMARIO
Captulo 1
Instala
c
ao
Neste captulo iremos apresentar como adquirir o IBM ILOG CPLEX Optimization Studio, uma licenca academica e proceder com a instalacao nos sistemas
operacionais Linux e Windows. Para maiores detalhes consultar [IBM]
1.1
Aquisic
ao
Para adquirir o IBM ILOG CPLEX Optimization Studio voce primeiro deve
fazer um cadastro na IBM Academic Initiative (https://www.ibm.com/developerworks/
university/academicinitiative/index.html).
Apos o cadastro, dirija-se `a https://www.ibm.com/developerworks/
university/software/get_software.html e procure por IBM ILOG CPLEX
Optimization Studio. Voce devera baixar o arquivo correspondente ao seu sistema operacional tomando o devido cuidado para baixar a versao adequada
(32 ou 64 bit, se tiver d
uvida baixe a versao 32 bit).
Voce tambem deve fazer o download de uma licenca em https://www.
ibm.com/developerworks/university/support/ilog.html.
1.2
Linux
CAPITULO 1. INSTALAC
AO
1.2.1
Vers
ao para Linux
1.3. WINDOWS
Type help followed by a command name for more
information on commands.
CPLEX>
1.2.2
1.3
Vers
ao para Windows via Wine
Windows
CAPITULO 1. INSTALAC
AO
Captulo 2
Introdu
c
ao
Neste captulo apresentamos a sintaxe basica do OPL.
2.1
Par
ametros
CAPITULO 2. INTRODUC
AO
2.2
Par
ametros em arquivo separado
2.3
Vari
aveis
2.4
Operac
oes
2.5
Func
ao Objetivo
2.6
Restrico
es
2.6. RESTRIC
OES
<...>;
}
CAPITULO 2. INTRODUC
AO
Ap
endice A
Nota
c
ao
N
Z
Z
Z>
Z
Z<
R
R
R>
R
R<
Amn
A
aij
bm
b
bi
italico
fonte sans serif
fonte teletype
10
APENDICE
A. NOTAC
AO
Refer
encias Bibliogr
aficas
[Fla09] Truls Flatberg. A short OPL tutorial, 2009. http://folk.uio.no/
trulsf/opl/opl_tutorial.pdf.
[IBM]
IBM.
Quick Start to IBM ILOG Optimization products.
http://download.boulder.ibm.com/ibmdl/pub/software/
dw/university/support/ILOGQuickStart.pdf.
11