gurobi - edisciplinas.usp.br · no site do gurobi, na aba download, selecione gurobi optimizer;...

22
Universidade de S˜ ao Paulo Instituto de Ciˆ encias Matem´ aticas e de Computa¸c˜ ao GUROBI Alfredo Rog´ erio Jorge Gustavo Marsiglia Doricci amella S´ atiko de Paula Miyazaki Roberta Nunes Alfredo, Gustavo, Pˆ amella, Roberta LOt 16 de Outubro de 2013 1 / 22

Upload: others

Post on 09-Dec-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiUniversidade de Sao PauloInstituto de Ciencias Matematicas e de Computacao

GUROBI

Alfredo Rogerio JorgeGustavo Marsiglia Doricci

Pamella Satiko de Paula MiyazakiRoberta Nunes

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 1 / 22

Page 2: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiSumario

1 Introducao

2 Instalacao

3 Como usar

4 Exemplos

5 Referencias

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 2 / 22

Page 3: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiIntroducao

Fundada por Zonghau Gu, Ed Rothberg e Bob Bixby em 2008;

Outubro/2009: edicao limitada ate novembro de 2010 (150e.c.—25a.v.);

Focos da empresa:

1 Melhores solucionadores de programacao matematica;2 Parceria flexıvel em termos de licenciamento e precos;3 Lideranca em tecnologia (programacao matematica).

Programacao inteira, mista, quadratica;

Conjunto de APIs: Python, C, C++, Java, .Net;

Parcerias: Matlab, Frontline Solvers, AMPL, GAMS;

Resultados Interessantes:

1 Paralelismo multi-core;2 Licencas livres;3 Programa academico com download automatizado;4 Evolucao para melhoria de desempenho e ampliacao da pataforma e

suporte API.

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 3 / 22

Page 4: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Acesse www.gurobi.com [2];

Faca o cadastro clicando em Register for Free;

Figura : Cadastro

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 4 / 22

Page 5: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Figura : Cadastro

Voce recebera um e-mail para cadastrar a senha;

Clique no primeiro link do e-mail e cadastre sua senha;

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 5 / 22

Page 6: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

No site do Gurobi, na aba Download, selecione Gurobi Optimizer ;

Escolha a versao desejada, seu sistema operacional e faca o download;

Execute e siga os seguintes passos:

Figura : Instalacao

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 6 / 22

Page 7: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Figura : Instalacao

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 7 / 22

Page 8: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Figura : Instalacao

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 8 / 22

Page 9: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Faca o login no site, entre em Download, Licenses, Free Academic;

Aceite as condicoes da licenca e clique em Request License;

Abra o Gurobi e digite a licenca, mostrado a seguir:

Figura : Licenca

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 9 / 22

Page 10: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Figura : Licenca

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 10 / 22

Page 11: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiInstalacao

Figura : Licenca

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 11 / 22

Page 12: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiComo usar

Figura : Modelo

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 12 / 22

Page 13: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiComo usar

〈modelo〉=read(”〈arquivo.lp ou .mps〉”)

〈modelo〉.optimize()

〈modelo〉.printAttr(’X’)

〈modelo〉.write(”〈nome〉.sol”)

〈vari avel〉 = 〈modelo〉.getVars()

〈modelo〉.setParam(”TimeLimit”, tempo)

print 〈vari avel〉[numero].VarName, 〈vari avel〉[numero].X

print len(variavel)

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 13 / 22

Page 14: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiComo usar

〈modelo〉 = Model()

〈vari avel〉=〈modelo〉.addVar(lb, ub, obj, 〈tipo〉, ”〈nome〉”)

GRB.BINARY, GRB.CONTINUOUS, GRB.INTEGER

〈modelo〉.addConstr(〈operacao〉, 〈sinal〉, α, ”〈nome〉”)

LinExpr([a, b, c], [x, y, z])GRB.LESS EQUAL, GRB.GREATER EQUAL, GRB.EQUAL

〈modelo〉.update()

〈modelo〉.numVars

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 14 / 22

Page 15: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiExemplo 1

Minimizar z = −x1 − x2

Sujeito a

x1 + x2 ≤ 6x1 − x2 ≤ 4

x1 ≥ 00 ≤ x2 ≤ 1x1, x2 ∈ R

oAlfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 15 / 22

Page 16: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiExemplo 2

Minimizar z = −x1 − x2

Sujeito a

−2x1 + 2x2 ≤ 37x1 + 3x2 ≤ 22

x1, x2 ∈ Z

oAlfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 16 / 22

Page 17: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiExemplo 3

Minimizar z = 5x1 − 7x2 − 10x3 + 3x4 − 5x5

Sujeito a

x1 + 3x2 − 5x3 + x4 + 4x5 ≤ 0−2x1 − 6x2 + 3x3 − 2x4 − 2x5 ≤ 4

2x2 − 2x3 − x4 + x5 ≤ −2x1, x2, x3, x4, x5 ∈ B

oAlfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 17 / 22

Page 18: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiExemplo 4

Minimizar z = x + 3y

Sujeito a

x + 2y ≤ 108 ≤ x − 3y0 ≤ x ≤ 10

x ∈ Zy ∈ B

oAlfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 18 / 22

Page 19: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiDuvidas

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 19 / 22

Page 20: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiExercıcio

Maximizar z = 2, 16xT + 1, 26xA + 0, 812xM

Sujeito a

xT ≥ 400xA ≥ 800

xM ≥ 10000xT + xA + xM ≤ 200000

0, 2xT + 0, 3xA + 0, 4xM ≤ 60000xT ≥ 0xA ≥ 0xM ≥ 0

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 20 / 22

Page 21: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiExercıcio

Figura : Resolucao

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 21 / 22

Page 22: GUROBI - edisciplinas.usp.br · No site do Gurobi, na aba Download, selecione Gurobi Optimizer; Escolha a vers~ao desejada, seu sistema operacional e fa˘ca o download; Execute e

includegraphics[width=paperwidth]logogurobiReferencias

http://jtonedm.com/, 2013.

Inc. Gurobi Optimization.Gurobi optimizer reference manual, 2013.

Henrique Pacca L. Luna Marco Cesar Goldberg.Otimizacao Combinatoria e Programacao Linear.ELSEVIER, Rio de Janeiro, 2005.

Reinaldo Morabito e Horacio Yanasse Marcos Arenales,Vinicius Armentano.Pesquisa Operacional.ELSEVIER, Rio de Janeiro, 2007.

Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 22 / 22