Models and Algorithms for Combinatorial Optimization Problems. LP Solve. Albert Einstein Fernandes Muritiba. albert.fernandes@unibo.



Documentos relacionados
Pesquisa Operacional na Tomada de Decisões. Conteúdos do Capítulo. Programação Linear. Lindo. s.t. Resolvendo Programação Linear Em um Microcomputador

2. A FERRAMENTA SOLVER (EXCEL)

AULA 08 PROGRAMAÇÃO LINEAR INTEIRA. Eduardo Camargo de Siqueira PESQUISA OPERACIONAL TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Concentração Mínima de Açúcar (g/l) N (normal) E (europeu fino) Teor Máximo de Acidez (%)

Pesquisa Operacional. 4x1+3x2 <=1 0 6x1 - x2 >= 20 X1 >= 0 X2 >= 0 PESQUISA OPERACIONAL PESQUISA OPERACIONAL PESQUISA OPERACIONAL PESQUISA OPERACIONAL

Fundamentos da PESQUISA OPERACIONAL

Investigação Operacional

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

O USO DA FERRAMENTA SOLVER DO EXCEL NA RESOLUÇÃO DE PROBLEMAS DE PROGRAMAÇÃO LINEAR

1. Resolução de problemas de Programação Linear utilizando Excel

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

GUIA DE INSTALAÇÃO TOOLBOX.

Otimização no Octave. Minicurso de Economia e Estatística Computacionais. Universidade Federal do Rio Grande do Sul Semana Acadêmica da Economia 2012

Análise da sensibilidade

Problemas de Mistura. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

PROGRAMAÇÃO JAVA. Parte 1

Informática Aplicada à Engenharia Florestal

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Linear Solver Program - Manual do Usuário

Lista de exercícios: Modelagem matemática Otimização Combinatória

Orientação a Objetos

CONSULTORIA ONLINE Guia sobre o novo serviço

Programação Linear Inteira GNU Linear Programming Kit

Curso Básico de Visual FoxPro 8.0

LISTA SOBRE MODELAGEM DE PROBLEMAS DE PROGRAMAÇÃO INTEIRA

Trabalho de Casa Introdução à Otimização Para ser entregue no início da aula de quinta-feira, 14 de fevereiro de 2002

Problemas de Mistura. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto 5 modelos

PROGRAMAÇÃO LINEAR. Resolução de problemas de programação linear usando o comando Solver, no Excel.

MÉTODO GRÁFICO MAXIMIZAÇÃO DO LUCRO

Componentes da linguagem C++

Administração de Sistemas Livres. Prof. Lais Farias Alves

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

MANUAL DO USUÁRIO. TOOLBOX SIA.

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

Projeto 1: Aprovação de Transação de Cartão de Crédito

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Investigação Operacional- 2009/10 - Programas Lineares 3 PROGRAMAS LINEARES

JBOLETO GENERATOR A maneira mais fácil para trabalhar com boletos bancários. Agradecimentos

JADE Java Agent DEvelopment Framework

Desenvolvimento de uma interface para uma biblioteca open-source de algoritmos de programação linear

Sistema de Controle de Cheques GOLD

Introdução a Computação

MANUAL DO PVP SUMÁRIO

OBI2014 Caderno de Tarefas

Especificação do 3º Trabalho

Construir o modelo matemático de programação linear dos sistemas descritos a seguir:

Google Drive. Passos. Configurando o Google Drive

Utilização do SOLVER do EXCEL

PROGRAMAÇÃO INTEIRA. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto 5 modelos

Utilizando o EXCEL Solver

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Aspectos técnicos do desenvolvimento baseado em componentes

Oficina de ferramentas de Gerência para Redes em Linux. Prof. Jefferson Santiago

Sistemas Operacionais

Aula 03 - Modelagem em PPLIM

IMPLEMENTAÇÃO E RESOLUÇÃO DE MODELOS MATEMÁTICOS UTILIZANDO A PLANILHA EXCEL

Manual de Integração

CA Nimsoft Monitor Snap

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

Programação científica C++

Roteiro 2: (Planilhas Eletrônicas) - Função procv / manipulação de formulários

Programação Linear (PL) Solução do problema (método gráfico)

Interface do DT. Figura 1: Interface do DT. DT Help File v1.3

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a IO V 1.1, V.Lobo, EN/ISEGI, 2007

Universidade da Beira Interior

Investigação Operacional

Manual de Integração

CA Nimsoft Monitor Snap

Práticas Empresariais em Excel. Professor: Pádua

Utilização do Solver na solução de problemas de PL

Lição 3. Como executar uma aplicação no Arduino?

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Parte I. Demoiselle Mail

IIH Introdução à Informática e Hardware

Lógica de Programação

IFTO LÓGICA DE PROGRAMAÇÃO AULA 02

Análise de Ponto de Função

OBI2009 Caderno de Tarefas

1. Introdução Instalação Baixando o arquivo Instalando Enviando SMS Configurando o Itcell sms massa...

Softwares de Sistemas e de Aplicação

SISTEMAS OPERACIONAIS DE REDE

Introdução à Programação e Algoritmos. Aécio Costa

Trabalho Final. Data da Submissão: das 8h do dia 16/06 às 24h do dia 17/06. Data da Entrega do Relatório: das 15h às 18h no dia 18/06.

Algoritmos e Linguagem de Programação I

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql

OBI2013 Caderno de Tarefas

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

18/04/2006 Micropagamento F2b Web Services Web rev 00

Programação Linear com o Microsoft Excel R

Transcrição:

LP Solve Albert Einstein Fernandes Muritiba albert.fernandes@unibo.it Fortaleza, 2010

Agenda 1 Introdução. 2 Componentes. 3 Instalação. 4 Arquivos LP. 5 Comando lp solve 6 LPSolve IDE 7 lp solve API C 8 Exercírcios

Introdução. LP Solve. LP Solve é uma ferramenta solve para problemas de Programação Linear Inteira Mista (MILP). OpenSource disponível sob licença LGPL (GNU Lesser General Public License). Trata problemas lineares puros, mistos, inteiros, binários, semi-contínuos e de conjunto ordenado. É capaz de ler arquivos no formato.lp.mps. Possui API para várias linguagens: C, VB,.NET, Delphi, Excel, Java,... Possui extenções para vários aplicativos: AMPL, MATLAB, O-Matrix, Scilab, Octave, R. Não possui limites para o tamanho do modelo.

Componentes. Componentes. O frame-work LP Solve é formato pelas seguintes componentes. Solve implementado em ANSI C pode ser compilado para várias plataformas. Utiliza o algoritmo Simplex Revisado e o método Branch and Bound para soluções inteiras. API para utilização do solve por programadores de diversas linguagens(c, VB,.NET, Delphi, Excel, Java). Extenções para utilização do solve por aplicativos como AMPL, MATLAB, O-Matrix, Scilab, Octave, R. Comando lp solve que permite ao usuário carregar e resolver arquivos do tipo.lp. LPSolve IDE, uma interface amigável para resolução de problemas (apenas para Windows).

Instalação. Instalação Windows. Na página http://sourceforge.net/projects/lpsolve/ Para utilizar o comando lp solve, faça o download do arquivo lp solve 5.5.0.15 exe win32.zip e extraia o arquivo lp solve.exe. Para utilizar a LPSolve IDE, faça o download do arquivo lp solve 5.5.0.15 IDE Setup.exe e execute-o. Para utilizar sua API em C, deve-se baixar os arquivos marcados como dev. Exemplo lp solve 5.5.0.15 dev win32.zip. Para utilizar API s para outras linguagens, baixe os respectivos arquivos: lp solve 5.5 vb.net.zip, p solve 5.5 cs.net.zip, lp solve 5.5.0.15 java.zip, etc.

Arquivos LP. Formato de Arquivos LP Os arquivos.lp definem um problema de programação linear de forma bem semelhante a um MPL. Um arquivo.lp é composto por 3 partes: Função Objetivo. È a combinação linear de variáveis de decição e constantes terminando com ponto-e-vírgula. Opcionalmente precedido por max: ou min:, a omissão significará maximização. Exemplo: min : x1 + x2; É possível comentar linhas com \\ ou intervalos com \*... *\.

Arquivos LP. Formato de Arquivos LP Os arquivos.lp definem um problema de programação linear de forma bem semelhante a um MPL. Um arquivo.lp é composto por 3 partes: Função Objetivo. È a combinação linear de variáveis de decição e constantes terminando com ponto-e-vírgula. Opcionalmente precedido por max: ou min:, a omissão significará maximização. Exemplo: min : x1 + x2; Restrições. É composto por um nome opcional para uma restrição seguido por dois-pontos (:) mais uma combinação linear de variáveis de decição e constantes, seguido por um operador relacional (=, >=, <=) e seguido novamente por uma combinação linear de variáveis de decição e constantes. Terminando em ponto-e-vírgula. Exemplo: myrow: x1 + 2x2 >= 2; As restrições também podem ser da forma: 1 <= x1 <= 3; 2 <= x1 + x2 <= 6; É possível comentar linhas com \\ ou intervalos com \*... *\.

Arquivos LP. Formato de Arquivos LP Os arquivos.lp definem um problema de programação linear de forma bem semelhante a um MPL. Um arquivo.lp é composto por 3 partes: Função Objetivo. È a combinação linear de variáveis de decição e constantes terminando com ponto-e-vírgula. Opcionalmente precedido por max: ou min:, a omissão significará maximização. Exemplo: min : x1 + x2; Restrições. É composto por um nome opcional para uma restrição seguido por dois-pontos (:) mais uma combinação linear de variáveis de decição e constantes, seguido por um operador relacional (=, >=, <=) e seguido novamente por uma combinação linear de variáveis de decição e constantes. Terminando em ponto-e-vírgula. Exemplo: myrow: x1 + 2x2 >= 2; As restrições também podem ser da forma: 1 <= x1 <= 3; 2 <= x1 + x2 <= 6; Declarações. Declara o tipo de um dado conjunto de variáveis de decição. Exemplo: int x1, x2, x3; bin x4, x5; free x6, x7;. É possível comentar linhas com \\ ou intervalos com \*... *\.

Arquivos LP. Exemplo. exemplo.lp \* Objective function *\ max: +3 money +3 C3 +3 C4; \* Constraints *\ speed: +4 money +C3 +2 C4 >= 3; +2 money +4 C3 +2 C4 = 8; \* Variable bounds *\ money >= 2; C3 <= 5.3;

Comando lp solve Comando lp solve.

LPSolve IDE LPSolve IDE.

lp solve API C API. *Veja demo.c e demo.java

Exercírcios Exercírcio 1 Uma empresa produz dois tipos de cadeira reclinável. Há duas etapas no processo de fabricação das cadeiras montagem e acabamento. Uma unidade da cadeira top de linha requer 3/2 horas na montagem, 1 hora no acabamento e é vendida gerando lucro de R$20,00. Uma unidade da cadeira mais simples requer 1/2 hora na montagem e 1/2 hora no acabamento e é vendida gerando lucro de R$12,00. A disponibilidade atual é de 100 horas para montagem e 80 horas para acabamento. A empresa está envolvida em negociações com o sindicato em relação a modificações salariais para o próximo ano e pediram que você determinasse (quantificasse) o valor da hora de montagem e de acabamento. Se você puder comprar uma unidade adicional do primeiro recurso pagando 5/2, você faria a compra? Porque? Outra empresa gostaria de comprar uma unidade do terceiro recurso de você. Qual o valor dessa unidade?

Exercírcios Exercírcio 2 Um fabricante de bebidas pretende lançar um novo refrigerante que é obtido misturando refrigerante sabor laranja e suco de laranja. Análises executadas pelo fabricante mostraram que cada ml de refrigerante sabor laranja tem 0,5 ml de açúcar e 1 mg de vitamina C e que cada 1 ml de suco de laranja tem 0,25 ml de açúcar e 3 mg de vitamina C. O custo de produção de 1 ml de refrigerante sabor laranja é de R$0,002 e de 1 ml de suco de laranja é de R$0,004. O departamento de marketing da empresa decidiu que o novo refrigerante será comercializado em embalagens de 300 ml por R$2,00 e que cada unidade do produto deve conter no mínimo 600 mg de vitamina C e no máximo 120 ml de açúcar. A partir desses dados responda:

Exercírcios Formule o problema como um PPL (problema de programação linear) sabendo que o objetivo da empresa é obter uma composição que minimize o custo de produção do novo produto (e que conseqüentemente maximizará o lucro do fabricante). Qual será o efeito no valor da função objetivo e nas variáveis de decisão se a empresa decidir comercializar o produto em embalagens de 290 ml? Qual será o efeito no valor da função objetivo e nas variáveis de decisão se a empresa decidir que o produto deve ter no máximo 115 ml de açúcar? Existe a possibilidade de colocar no novo produto um aditivo que custa R$0,015 por ml, e que tem 0,1 ml de açúcar e 9 mg de vitamina C por ml de aditivo. Vale a pena incluir esse aditivo? Qual será o efeito no valor da função objetivo se o custo de produção de 1 ml de suco de laranja aumentar de R$0,004 para R$0,005(e mostre graficamente)?

Exercírcios Referências. Download http://sourceforge.net/projects/lpsolve/ Guia http://lpsolve.sourceforge.net/5.5/