Programação Inteira. Algoritmo Branch-and-Bound (ou enumeração implícita)

Documentos relacionados
Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

Planejamento da Operação de Sistemas Hidrotérmicos. Parte III

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Técnicas de Projeto de Algoritmos

O método Simplex Aplicado ao Problema de Transporte (PT).

Introdução Paradigmas

Inferência Estatística. Medidas de Tendência Central Medidas de Variação Medidas de Posição

Paradigmas de Projetos de Algoritmos

Recursividade Exaustiva e Backtracking

Algoritmos de Ordenação. Profº Carlos Alberto T. Batista

Algoritmos e Programação de Computadores

Algoritimos e Estruturas de Dados III CIC210

BCC204 - Teoria dos Grafos

4- Dualidade em Programação Linear

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Todos os exercícios sugeridos nesta apostila se referem ao volume 1. MATEMÁTICA I 1 RELAÇÕES

6. Programação Inteira

PROCURA E PLANEAMENTO

Lista de Exercícios I - Gabarito

Inteligência Artificial

5 Análise de Sensibilidade

Relatório de Inteligência Artificial

Alocação de Unidades via Relaxação Lagrangeana

Aula prática 5. Funções Recursivas

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Projeto e Análise de Algoritmos

Técnicas para Implementação de Jogos

Algoritmos de Busca. Profº Carlos Alberto T. Batista

Geometria Analítica. Números Reais. Faremos, neste capítulo, uma rápida apresentação dos números reais e suas propriedades, mas no sentido

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI)

4 Métodos Existentes. 4.1 Algoritmo Genético

Resolução de problemas com apenas restrições lineares de igualdade

ATIVIDADES EM SALA DE AULA Cálculo I -A- Humberto José Bortolossi

Maristela Santos. Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo

Estruturas de Dados 2

III Números reais - módulo e raízes Módulo ou valor absoluto Definição e exemplos... 17

1. FUNÇÕES REAIS DE VARIÁVEL REAL

Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada

Método de restrições ativas para minimização em caixas

A Segunda Derivada: Análise da Variação de Uma Função

Equações do Primeiro Grau a uma Variável. 7 ano/e.f.

Projeto e Análise de Algoritmos

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

BCC202 - Estrutura de Dados I

Algoritmos Combinatórios: Introdução

Otimização Aplicada à Engenharia de Processos

Matemática Básica Função polinomial do primeiro grau

Oficina Álgebra 2. Após os problemas 1 e 2, há dois desafios para que você possa explorar esse novo conhecimento sobre as equações do 2º grau.

Lista de Exercícios 1 - Otimização Linear Prof. Silvio Alexandre de Araujo. Construção de Modelos e Solução Gráfica

Análise e Complexidade de Algoritmos

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

MATEMÁTICA APLICADA AO PLANEJAMENTO DA PRODUÇÃO E LOGÍSTICA. Silvio A. de Araujo Socorro Rangel

Inequações Exponenciais e Logarítmicas. Inequações Exponenciais e Logarítmicas. Exemplos:

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR MÉTODO SIMPLEX. Prof. Angelo Augusto Frozza, M.Sc.

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência

Matemática E Extensivo V. 7

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Pesquisa Operacional / Programação Matemática

MÉTODO SIMPLEX. Prof. MSc. Marcos dos Santos

7 ALOCAÇÃO PELO MÉTODO DO NUCLEOLUS

PCS Gabarito da 1a. lista

Otimização de grande porte

Critérios de divisibilidade Para alguns números como o dois, o três, o cinco e outros, existem regras que permitem verificar a divisibilidade sem se

y x f x y y x y x a x b

Programação Linear - Parte 3

Aula 3: Algoritmos: Formalização e Construção

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

LTDA APES PROF. RANILDO LOPES SITE:

A função y = ax + b. Na Aula 9, tivemos um primeiro contato

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

MÉTODOS DE OTIMIZAÇÃO ENE081

Celso Carneiro Ribeiro Introdução aos Modelos e Métodos de Otimização em Pesquisa Operacional

(versão preliminar) exceto possivelmente para x = a. Dizemos que o limite de f(x) quando x tende para x = a é um numero L, e escrevemos

Resolver equações: como e para quê? (reflexões e reminiscências)

Chama-se inequação toda sentença matemática que é aberta por uma desigualdade.

Método da substituição

Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort

ABORDAGENS PARA RESOLVER O PROBLEMA DA MOCHILA 0/1

Combinando inequações lineares

Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )

Transcrição:

Programação Inteira Algoritmo Branch-and-Bound (ou enumeração implícita)

Métodos de Solução: Branch-and-Bound O método Branch-and-Bound (B&B) baseia-se na idéia de desenvolver uma enumeração inteligente das soluções candidatas à solução ótima inteira de um problema. Apenas uma fração das soluções factíveis é realmente eaminada. O termo branch refere-se ao fato de que o método efetua partições no espaço das soluções e o termo bound ressalta que a prova da otimalidade da solução utiliza-se de limites calculados ao longo da enumeração.

Métodos de Solução: Branch-and-Bound Eemplo ma s. a. 7,, 4 0 3 inteiros O problema é um problema de programação linear inteira, pois as variáveis devem ser inteiras.

Métodos de Solução: Branch-and-Bound Na Figura (a) têm-se os pontos que representam as soluções factíveis do problema (todos os pontos inteiros que satisfazem as restrições). O problema de programação linear (RL) obtido ao desconsiderarmos as restrições de integralidade das variáveis inteiras é conhecido como a relaação linear do PI (ver Figura (b)).

Métodos de Solução: Branch-and-Bound PI ma s. a. 7,, 4 3 0 inteiros RL Ótimo = 39 (X=.897) (a) Ótimo = 33 (=3, =0) (b)

Métodos de Solução: Branch-and-Bound Como podemos observar a solução do problema linear (RL) é sempre maior ou igual a solução do PI, pois o problema relaado é composto por todas as soluções inteiras e também as soluções reais do problema, logo é formado por um conjunto de soluções factíveis mais abrangente. * Assim temos que, para um problema de maimização Z *, ou PPL Z PPI seja, a solução ótima da relaação linear de um problema inteiro ( Z * PPL ) é sempre maior ou igual a solução ótima do problema inteiro ( ). Z * PPI

Métodos de Solução: Branch-and-Bound (X=.897) Ótimo = 39 (a) Ótimo = 33 (b) Problema inteiro Problema relaado

Métodos de Solução: Branch-and-Bound Princípio básico: se a solução do RL relaado corresponde a uma solução do PI, pois possui todas as variáveis inteiras, então esta solução é a solução ótima do PI.

Métodos de Solução: Branch-and-Bound Idéia Geral: relaar o problema de programação inteira e dividir o problema relaado em vários problemas até encontrar soluções inteiras ou não factíveis, o ótimo é a melhor solução encontrada. O algoritmo B&B é baseado na idéia de dividir para conquistar, ou seja, trabalhamos em problemas menores e mais fáceis de resolver em busca da solução ótima.

Métodos de Solução: Branch-and-Bound A divisão do problema é interrompida quando uma das condições a seguir é satisfeita. Essas condições são chamadas de testes de sondagem ou Poda do nó. (I ou poda por infactibilidade) O problema relaado é infactível. (O ou poda por otimalidade) A solução ótima do problema relaado é inteira. (Q ou poda por qualidade) O valor de qualquer solução factível do problema relaado é pior que o valor da melhor solução factível atual (solução incumbente). Quando uma dessas três condições ocorre, o subproblema pode ser descartado (sondado ou podado), pois todas as suas soluções factíveis estão implicitamente enumeradas.

Eemplo: Branch-and-Bound ma s. a. 7,, 4 0 3 inteiros Ótimo = 39 (a) Ótimo = 33 (b)

Eemplo: Branch-and-Bound Resolvendo o problema relaado tem-se que: Valor ótimo da solução: 39 Valores das variáveis =.86 e =0 Z=39 =.86 =0 Logo o valor de não é inteiro, então dividimos o problema em dois subproblemas: um onde consideramos o valor de, que vamos chamar de subproblema A outro consideramos, chamado de subproblema B.

Eemplo: Branch-and-Bound Ótimo = 37.5 Infactível A B Suproblema A Subproblema B 0, 3 4 7.. a s ma 0, 3 4 7.. a s ma

Eemplo: Branch-and-Bound Não encontramos solução factível ao resolver o problema A, então aplicando o o critério para poda podemos eliminá-lo ((I) O problema relaado é infactível). Resolvendo o subproblema B temos Z = 37.5, = e =.5 Agora não é inteiro, logo particionamos o problema em dois considerando o subproblema C com a variável e o subproblema D com. Z=39 =.86 =0 A I Z=37.5 = =.5 B

Eemplo: Branch-and-Bound Suproblema C Subproblema D 0, 3 4 7.. a s ma 0, 3 4 7.. a s ma Ótimo = 37 Ótimo = 3 C D

Eemplo: Branch-and-Bound (O - otimalidade) A solução ótima do problema relaado é inteira. Z=39 =.86 =0 A I Z=37.5 = =.5 B C O Z=3 = = Z=37 =0.7 = D

Eemplo: Branch-and-Bound A solução do subproblema C é igual a 3, = e =, as duas variáveis são inteiras, logo considerando o teste de sondagem (O) este problema pode ser sondado por otimalidade. Resolvendo o subproblema D temos Z = 37, =0.7 e = note que a variável novamente não é inteira, então particionamos o subproblema gerando dois novos subproblemas como mostramos a seguir

Eemplo: Branch-and-Bound Suproblema E Subproblema F 0, 0 3 4 7.. a s ma 0, 3 4 7.. a s ma Infactível Ótimo = 35,75 F E

Eemplo: Branch-and-Bound Z=39 =.86 =0 A I Z=37.5 = =.5 B C O Z=3 = = Z=37 =0.7 = D 0 E Z=35.75 =0 =3.5 F I

Eemplo: Branch-and-Bound O problema F é infactível, logo podemos usar I e eliminá-lo O subproblema E tem solução igual a 35.75 e =0 e =3.5 Suproblema G Subproblema H 0, 3 0 3 4 7.. a s ma 0, 4 0 3 4 7.. a s ma

Eemplo: Branch-and-Bound Z=39 =.86 =0 A I Z=37.5 = =.5 B C O Z=3 = = Z=37 =0.7 = D 0 E Z=35.75 =0 =3.5 F I 3 G O solução ótima Z=33 =0 =3 H I 4

Eemplo: Branch-and-Bound Resolvendo o subproblema G obtemos Z = 33, =0 e =3, logo a solução é inteira, portanto aplicando o (O) este problema pode ser sondado. O subproblema H não tem solução factível e também pode ser sondado por infactibilidade (I). Temos que nenhum nó pode ser ramificado, logo, a melhor solução inteira encontrada é dada pelo problema G e é a solução ótima do problema. Na resolução do Eemplo através do método B&B podemos observar que muitas soluções não precisaram ser avaliadas eplicitamente. Isso fica mais claro quando se resolve problemas maiores.

Criando a árvore do B&B Qual eplorar primeiro? E depois? Note que a ordem pode influir (e muito!)

Regras de seleção Regras a priori determinam previamente a ordem de escolha dos nós; Regras adaptativas dependem das informações dos nós.

Regras a priori Busca em profundidade com backtracking last-in, first-out: o último nó a ser incluído na lista é o primeiro a ser eaminado backtracking: se o nó é podado, retorna-se ao longo do caminho em direção ao nó raiz, até encontrar um nó aberto. ordem: pode-se definir, por eemplo, que o filho à esquerda sempre é eaminado primeiro.

Regras a priori Busca em profundidade com backtracking

Regras a priori Busca em profundidade com backtracking vantagens: Nós factíveis são mais facilmente encontrados em níveis mais profundos da árvore (qual a vantagem de se encontrar nós factíveis logo?) Pode-se usar re-otimização em nós filhos. desvantagem: tende a gerar árvores maiores (com muitos nós).

Regras adaptativas Melhor limitante Selecionar a cada momento, o nó que tem melhor limitante (e que eventualmente, pode fornecer a melhor solução inteira).

Regras adaptativas Melhor limitante vantagem: menos nós eplorados no final. desvantagem: grande número de nós ativos a cada momento (limites de memória? )

Eemplo (Livro Página 49)

Solução busca em profundidade melhor limitante

Outras estratégias Busca em largura todos os nós em um dado nível são considerados, antes de passar-se para o nível seguinte.

Eemplo de heurística (Escolhe apenas os nós mais promissores para continuar a busca)...

Eercício. Encontre a solução ótima para o problema de programação inteira abaio. Especifique qual o motivo de cada poda dos nós. A primeira relaação linear deve ser resolvida utilizando o algoritmo simple O primeiro filho que será acrescentado com i<= deverá ser resolvido pelo simple tabelas. Z = Ma Sujeito a: 4 6 5 8 0, 0 e inteiras.

Programação Inteira Referências: Notas de aulas do Prof. Silvio Aleandre de Araujo http://www.dcce.ibilce.unesp.br/~saraujo/ Material da Professora Gladys Castillo do Departamento de Matemática da Universidade de Aveiro (http://www.mat.ua.pt/io/) Notas de aula do Prof. Alysson Machado Costa www.icmc.usp.br/~alysson