PROGRAMAÇÃO INTEIRA 27 de maio de 2014.

Slides:



Advertisements
Apresentações semelhantes
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Advertisements

Celso C. Ribeiro Caroline T. Rocha
Soluções Numéricas de Sistemas Não Lineares
Programação Linear e Seus Teoremas
Métodos para representação de estruturas hierárquicas
INVESTIGAÇÃO OPERACIONAL
1 Optimização Na programação por restrições, há que considerar não apenas a satisfação de restrições mas também a optimização de uma função objectivo.
2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
1 Conclusão DI/FCT/UNL 1º Semestre 2004/ Ciclos de Simulação A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas.
Capítulo 3 - Aplicações das Derivadas
Nice Maria Americano da Costa
Prof. M.Sc. Fábio Francisco da Costa Fontes Outubro
Pesquisa Operacional II Programação Linear Inteira
Prof. M.Sc. Fábio Francisco da Costa Fontes Agosto
CÁLCULO DA INVERSA DA BASE
Problemas de Forma Não-padrão
Pesquisa Operacional II Programação Linear Inteira
Caso LCL Tintas Ltda A firma LCL Tintas Ltda produz dois tipos de tintas chamadas: Seca Rápido (SR) e Super Seca (SS). Ambas são produzidas a partir de.
Resolução de problemas
Programação Linear Método Simplex
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
PARTIÇÃO DE BENDERS Secundino Soares Filho Unicamp.
GRASP Greedy Randomized Adaptative Search Procedure
Exemplo.
Branch-and-Bound Marcone Jamilson Freitas Souza
Método SIMPLEX Marcone Jamilson Freitas Souza
 Exemplo Convexo: Kocis e Grossmann (1987)
Capítulo 7 Leis de Parede.
Artigo: The dynamic berth allocation problem for a container port Akio Imai, Etsuko Nishimura, Stratos Papadimitriou, Analisando a formulação relaxada.
SISTEMAS LINEARES II Prof. Marlon.
Método Simplex (Noções iniciais) Sistemas de Equações Lineares
Pesquisa Operacional profa Úrsula Lisbôa Fernandes Ribeiro
SIMPLEX ANÁLISE COMPLETA ANDERSON BESTETTI 1, EDUARDO RIGHES 1, EVERTON FONTOURA 2, GUILHERME LAZZARI 3, RODRIGO SCHRAMM 3, ROGERIO MARTINS 4 1 {anderson.bestetti,
Programação Linear.
Estatística Descritiva
Tópicos em otimização combinatória
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Programação Linear Universidade Federal de Itajubá – UNIFEI
Desempenho de Algoritmos Genéticos
Programação inteira Branch-and-bound Aula baseada em diversas fontes:
Otimização Inteira 5a. Aula Franklina.
Conceitos Básicos Alysson e Franklina 2ºs/
Programação inteira Introdução.
Universidade Federal de São Carlos Universidade de São Paulo
MEN - Mercados de Energia Mestrado em Engenharia Electrotécnica
Solução Básica Factível e Método Simplex Introdução ao Método Simplex Fase I e Fase II.
Pesquisa Operacional Programação Linear Solução Gráfica.
Programação Inteira.
Pesquisa Operacional: Método Simplex – Duas Fases
Aula 3 - Método gráfico Programação Linear
Introdução e Busca Cega
Interpolação.
Sistema de equações lineares
AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008.
Aula 5 Programação Inteira
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
PROGRAMAÇÃO MATEMÁTICA MÉTODO SIMPLEX
Exercício 1 para achar solução gráfica de PLs
SOLVER – EXCEL Prof. Antonio Carlos Coelho
Resolução de sistemas de equações lineares
Otimização Linear Definições e Solução Gráfica
ALGORITMOS NA ENGENHARIA DE PROCESSOS (EQE 489)
Programação Linear Universidade Federal de Itajubá – UNIFEI
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Introdução Prof. Antonio Carlos Coelho
Pesquisa Operacional:
Professor: Cezar Augusto Pereira dos Santos
O Método Simplex Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto.
PROGRAMAÇÃO INTEIRA 08 de dezembro de 2016.
Transcrição da apresentação:

PROGRAMAÇÃO INTEIRA 27 de maio de 2014

PROGRAMAÇÃO INTEIRA É um caso particular da Programação Linear em que todas as variáveis são restritas a valores inteiros. 1 2 3 4 5 x1 x2 Aplicações em problemas envolvendo número de itens, como televisores, automóveis, número de estágios...

Condições de Integralidade Na resolução desses problemas, além da Função Objetivo e das restrições, são acrescentadas Condições de Integralidade Max f = 3 x1 + 4 x2 s.a.: 2 x1 + x2  6 2 x1 + 3 x2  9 x1 ≥ 0 (inteiro) x2 ≥ 0 (inteiro) Há problemas, no entanto, em que apenas algumas variáveis são restritas a valores inteiros. Nesse caso, as condições de integralidades são acrescentadas apenas para estas. Max f = 3 x1 + 4 x2 s.a.: 2 x1 + x2  6 2 x1 + 3 x2  9 x1 ≥ 0 (inteiro) x2 ≥ 0 Temos, então a Programação Linear com Inteiros

A estratégia de resolução consiste em: No decorrer da resolução dos problemas de Programação Inteira, aparecem os seguintes tipos de soluções intermediárias: - soluções inteiras: todas as variáveis exibem valores inteiros. - soluções não-inteiras: pelo menos uma variável exibe um valor não-inteiro. As soluções não-inteiras são eliminadas passo-a-passo restando ao final a solução inteira ótima. A estratégia de resolução consiste em: 1. Aplicar o SIMPLEX ao problema original com as condições de integralidade relaxadas Se coincidir desta solução ser inteira, ela é a solução do problema. 2. Formular e resolver sucessivos problemas de Programação Linear. Em cada problema é acrescentada um nova restrição a uma variável não-inteira, convergindo-se, assim, para a solução inteira ótima.

bifurcação (“branch”) e limitação (“bound”). Essa estratégia pode ser aplicada com o auxílio do Método de Branch-and-Bound, que consta de duas operações básicas: bifurcação (“branch”) e limitação (“bound”). P xj SP1 xj  [xj*] SP2 xj ≥ [xj*] + 1 100 80 inteira Guardada 70 não-inteira não bifurcável A bifurcação gera novos problemas restritos. A limitação evita a resolução de problemas cujas soluções se mostram, antecipadamente, piores (economiza esforço computacional).

Eliminação de Intervalo Numa solução intermediária não-inteira, deve haver pelo menos uma variável xj cujo valor xj* é não-inteiro. Seja [xj*] a parte inteira de xj. Então, a condição necessária para que xj seja inteiro é xj  [xj*] ou xj ≥ [xj*] + 1 Ou seja: o intervalo [xj*] < xj < [xj*] + 1 deve ser eliminado da busca 1 2 3 4 5 x1 x2 Exemplo: x2* = 2,6 [x2*] = 2 Intervalo eliminado 2 < x2 < 2 + 1

Eliminação de Intervalo: Bifurcação (“branch”) Ao dar continuidade à resolução, parte-se da solução intermediária não-inteira P xj SP1 xj  [xj*] SP2 xj ≥ [xj*] + 1 FP Problema de Máximo FSP1 < FP FSP2 < FP e criam-se dois sub-problemas (bifurcação) com as devidas restrições: Sub-problema 1: xj  [ xj* ] Sub-problema 2: xj ≥ [ xj* ] + 1 A solução de qualquer Sub-Problema é mais restrita do que a do Problema que a originou. Portanto, a sua solução é necessariamente pior do que a do Problema. Este fato não preocupa porque faz parte do caminho de busca de uma solução inteira. Heurística: havendo mais de uma variável com valor não-inteiro, deve-se selecionar, para bifurcação, aquela mais afastada do valor inteiro (mais próxima de 0,5).

LIMITAÇÃO (“Bound”) Ao se chegar a uma primeira solução inteira, esta não é necessariamente a ótima porque outras soluções inteiras ainda podem ser encontradas no processo de bifurcação. O valor (F) da Função Objetivo desta primeira solução inteira serve de limite (“bound”) para as soluções seguintes. Em Problemas de Mínimo  limite superior. Em Problemas de Máximo  limite inferior. Qualquer outra solução inteira posteriormente encontrada com um valor melhor do que F, deve ser adotada como solução ótima provisória. Se pior, deve ser descartada. Qualquer solução não-inteira com um valor pior do que F, não deve ser bifurcada: as soluções bifurcadas são necessariamente piores. Exemplo Problema de Máximo P xj SP1 xj  [xj*] SP2 xj ≥ [xj*] + 1 100 80 inteira Guardada 70 não-inteira não bifurcável xj P SP1 xj  [xj*] SP2 xj ≥ [xj*] + 1 FP FSP1 < FP inteira FSP2 < FSP1 não-inteira não bifurcável

EXEMPLO

1 2 3 4 5 x1 x2 Max f = 3 x1 + 4 x2 s.a.: 2 x1 + x2  6 2 x1 + 3 x2  9 x1 ≥ 0 (inteiro) x2 ≥ 0 (inteiro) inviável Problema Relaxado 1 f = 12,75 x1 = 2,25 x2 = 1,50 Duas soluções piores... x2  1 x2  2 2 f = 11,50 x1 = 2,5 x2 = 1 3 f = 12,5 x1 = 1,5 x2 = 2 x1  2 x1  1 Não-inteira não-bifurcável: pior que a outra 4 f = 12,33 x1 = 1 x2 = 2,33 5 inviável x2  3 x2  2 6 f = 11,00 x1 = 1 x2 = 2 7 f = 12,00 x1 = 0 x2 = 3 SOLUÇÃO

PROGRAMAÇÃO 0 - 1 Caso particular da Programação Inteira em que as variáveis inteiras só podem assumir os valores 0 e 1. É a parte da Programação Inteira de interesse na Engenharia de Processos.

Min f = 2 x1 – 3 y1 – 2y2 – 3y3 s.a.: x1 + y1 + y2 + y3 ≥ 2 f= -6,8 [0,6; 1; 1] 2 1 f= - 6,667 f= -5 [0; 1; 1] [1; 0,333; 1] y1 = 0 y1 = 1 3 4 f= - 6,5 [1; 1; 0,5] y2= 0 y1 = 1 f= -6 [1; 0; 1] 5 6 f= - 5 [1; 1; 0] y3= 0 y3= 1 Inviável (pq?)

Na Engenharia de Processos, o problema central é a criação de um fluxograma de processo. Neste problema, há variáveis inteiras e variáveis contínuas. As variáveis inteiras binárias correspondem à presença (1) ou não (0) de um equipamento. As variáveis contínuas correspondem às variáveis de processo (vazões, temperaturas, concentrações, dimensões). Temos, então, a Programação Linear Inteira Mista (PLIM) “Mixed Integer Linear Programming” (MILP). e a Programação Não-Linear Inteira Mista (PNLIM) “Mixed Integer Nonlinear Programming” (MINLP).

6.5.4 Resolução por Super-estruturas Escrevem-se os modelos dos equipamentos e conexões. A cada equipamento é associada uma variável binária. Na solução: (1) equip. presente; (0) equip. ausente. Resolve-se um problema de programação não-linear com inteiros: geradas e analisadas diversas estruturas..