gurobi - edisciplinas.usp.br · no site do gurobi, na aba download, selecione gurobi optimizer;...
TRANSCRIPT
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
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
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
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
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
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
includegraphics[width=paperwidth]logogurobiInstalacao
Figura : Instalacao
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 7 / 22
includegraphics[width=paperwidth]logogurobiInstalacao
Figura : Instalacao
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 8 / 22
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
includegraphics[width=paperwidth]logogurobiInstalacao
Figura : Licenca
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 10 / 22
includegraphics[width=paperwidth]logogurobiInstalacao
Figura : Licenca
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 11 / 22
includegraphics[width=paperwidth]logogurobiComo usar
Figura : Modelo
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 12 / 22
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
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
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
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
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
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
includegraphics[width=paperwidth]logogurobiDuvidas
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 19 / 22
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
includegraphics[width=paperwidth]logogurobiExercıcio
Figura : Resolucao
Alfredo, Gustavo, Pamella, Roberta LOt 16 de Outubro de 2013 21 / 22
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