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.

Slides:



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

AULA 01 PROGRAMAÇÃO DINÂMICA
Amintas engenharia.
MÁQUINAS UNIVERSAIS Fabrício Dias
O Planejamento Social de um Galinha
OTIMIZAÇÃO DO PROJETO DE REDES URBANAS BASEADO NO PROBLEMA DE STEINER
Amintas engenharia.
Celso C. Ribeiro Caroline T. Rocha
Programação Avançada I
INVESTIGAÇÃO OPERACIONAL
Cecília Rocha # 12001/2002 I NVESTIGAÇÃO O PERACIONAL 6ª Aula 6ª Aula Adaptação de problemas não standard ao Método Simplex Ir-se-ão referir os procedimentos.
CONCEITOS BÁSICOS DA META-HEURÍSTICA TABU SEARCH
Restrições Não-Estritas / Variáveis Arbitrárias
Restrições Lineares sobre os Reais/Racionais
Restrições Lineares sobre os Reais/Racionais
1 Domínios Finitos A eficiência das programas em domínios finitos (incluindo booleanos) podem ainda ser melhoradas pelo uso de Algoritmos de Propagação.
Restrições Booleanas O domínio dos Booleanos (ou variáveis 0/1) tem especial aplicação em aplicações Envolvendo circuitos digitais Exemplo: Circuito semi-somador.
Restrições Não-Estritas / Variáveis Arbitrárias
Integração Numérica – Áreas e Equações
Recursividade e Iteração Factorial, Fibonacci e Maior Divisor Comum
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
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.
Prof. M.Sc. Fábio Francisco da Costa Fontes Outubro
Pesquisa Operacional II Programação Linear Inteira
Problemas de Forma Não-padrão
Pesquisa Operacional II Programação Linear Inteira
SISTEMAS DE EQUAÇÕES.
Algoritmo de Khachiyan Prof. Júlio Cesar Nievola.
PARTIÇÃO DE BENDERS Secundino Soares Filho Unicamp.
Inteligência Artificial
GRASP Greedy Randomized Adaptative Search Procedure
Considerações Iniciais
Método de NewtonRaphson
Busca Tabu Marcone Jamilson Freitas Souza Departamento de Computação
SISTEMAS LINEARES II Prof. Marlon.
04(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Algoritmos Genéticos - Capítulo 10 Representação Numérica
Indução Métodos de prova já vistos Excepções
Lógica de Primeira Ordem -3
Linguagem de 1ª ordem da teoria de conjuntos
Mobilidade na Internet
Calculada a solução óptima
Expressão algébrica a partir da representação gráfica da função
Tópicos em otimização combinatória
PROGRAMAÇÃO INTEIRA 27 de maio de 2014.
Estatística Conceitos básicos1.
Algoritmos Genéticos em Problemas com Restrições
Cálculo Numérico / Métodos Numéricos
Cálculo Numérico / Métodos Numéricos
Função de uma Variável Aleatória
Programação Linear Rosa Canelas Janeiro 2008.
Pesquisa Operacional: Método Simplex – Duas Fases
Restrições Lineares sobre os Reais/Racionais
Capítulo 7: Design de Bases de Dados
Sistema de equações lineares
Mediana É um valor real que separa o rol em duas partes deixando à sua esquerda o mesmo número de elementos que a sua direita. Portanto, a mediana é um.
AULA COMPUTACIONAL - Síntese de Sistemas de Separação (Cap. 7) 20 DE OUTUBRO DE 2008.
Resoluções de equações Métodos iterativos
Aula 5 Programação Inteira
Sistemas de equações lineares
Algoritmos Evolutivos Algoritmos Genéticos Introdução
Resolução de sistemas de equações lineares
Aula 07 Medidas de posição - Média Prof. Diovani Milhorim
Cálculo da Direção de Caminhada: Gradiente de f(x)
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Identificando Oportunidades
Construção e Análise de Algoritmos
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Análise e Síntese de Algoritmos
Transcrição da apresentação:

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. Esta optimização já foi explicitamente considerada no caso da programação linear em que o domínio das variáveis eram os números racionais/reais. Há que abordar agora os casos em que as variáveis podem tomar apenas um número finito de valores (inteiros) as restrições não sejam lineares. Esta optimização pode ser feita de uma forma construtiva, ou de uma forma reparativa.

2 Optimização Na versão construtiva, o processo de optimização pode ser vista como a progressiva instanciação de valores às variáveis que modelam o problema. Na versão reparativa, a optimização vai iterativamente procurando, a partir de uma solução completa mas não satisfatória, melhores soluções na vizinhança da solução corrente. A simples extensão da programação linear com variáveis booleanas 0/1 é adequada para modelar uma série de problemas, permitindo: A escolha (disjunção) de restrições; Violações da proporcionalidade; Não linearidades.

3 Optimização Exemplo 1: Escolha de 1 de 2 restrições Pretende-se satisfazer uma de entre as duas restrições X 1 + 2X 2 3 2X 1 + X 2 3 Introduzindo-se uma constante M suficientemente grande, a disjunção anterior pode ser modelada através de uma variável Booleana Z X 1 + 2X M Z 2X 1 + X M (1-Z) De facto, se Z = 0, a 1ª restrição é imposta e a 2ª restrição é trivialmente satisfeita. Se Z = 1, é a 2ª restrição que é imposta e a 1ª que é trivial.

4 Optimização Exemplo 2: Escolha de pelo menos k de m restrições Pretende-se satisfazer k de m restrições A 11 X A 1n X n B 1... A m1 X A mn X n B m Introduzindo-se uma constante M suficientemente grande, a selecção anterior pode ser modelada através de variáveis Booleana B 1,..., B m fazendo para todas as restrições A i1 X A in X n B i + M(1- Z i ) Impondo a restrição adicional Z 1 + Z Z m k O que garante que pelo menos k restrições sejam impostas (não trivialmente satisfeitas).

5 Optimização Exemplo 3: Não proporcionalidade da função objectivo Em muitos casos os custos não são lineares às unidades produzidas ( C = c1 Xi ), mas deve considerar-se um custo fixo de início de produção. C = 0se X i = 0 = k i + c i X i se X i > 0 Introduzindo-se uma variável booleana Z i, denotando a existência ou não de produção, o custo é expresso por C = k i Z i + c i X i A condição X i > 0 Z i =1 é imposta pela restrição X i M Z i A condição X i =0 Z i =0 é garantida, indirectamente, pela minimização do custo.

6 Optimização Exemplo 4: Restrições não lineares As restrições não lineares podem ser aproximadas por troços. Por exemplo, Y = X 2, com X entre 0 e 4 pode ser aproximada por Z 1 Y 1 = 0 + 1X 1 para 0 X 1 Z 2 Y 2 = 1 + 3X 2 para 1 X 2 Z 3 Y 2 = 4 + 5X 3 para 2 X 3 Z 4 Y 3 = 9 + 7X 4 para 3 X 4 Para apenas um troço estar activo, a activação de uma só das variáveis Z i que identifica um troço é feita através de Y = Y Y 4 e Z Z 4 = 1 E a ligação entre as variáveis X e Z i é feita por M(1-Z 3 ) X-3 e M(1-Z 3 ) 2-X

7 Optimização A optimização feita de uma forma construtiva utiliza de uma forma geral dois tipos de técnicas Pesquisa Relaxação Estes conceitos são ilustrados no seguinte problema BIP (Binary Integer Programming) Max Z = 9x x 2 +6 x 3 + 4x 4 Suj a6x 1 +3x 2 + 5x 3 + 2x x 3 + 2x x 1 + x x 2 + x 4 0

8 Optimização Como as variáveis são binárias X1 = 0 / 1 e o problema decompõe-se nos problemas Max Z = 9x x 2 +6 x 3 + 4x 4 Suj a6x 1 +3x 2 + 5x 3 + 2x x 3 + 2x 4 1 -x 1 + x x 2 + x 4 0 Max 5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x 4 0 Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x 4 0

9 Optimização A relaxação do problema (neste caso) traduz-se em considerar as variáveis não inteiras mas sim tomando valores no intervalo [0..1]. Neste caso, os subproblemas podem ser considerados como problemas de programação linear, o que origina os máximos 9 com (0,1,0,1) Max 5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + 2x 4 1 x x 2 + x 4 0 Desta forma a pesquisa é mais promissora por X1 =1

10 Optimização A relaxação do problema (neste caso) traduz-se em considerar as variáveis não inteiras mas sim tomando valores no intervalo [0..1]. Neste caso, os subproblemas podem ser considerados como problemas de programação linear, o que origina os máximos 9 com (0,1,0,1) Max 5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x 4 0 Desta forma a pesquisa é mais promissora por X1 =1

11 Optimização Deste passo interessa considerar que: O problema X1 = 0 tem uma solução exacta. Assim, só interessará explorar problemas com o potencial de melhorarem o óptimo provisório de 9. O problema X1 = 1 tem uma solução potencial de 16.2 pelo que parece melhor que o anterior. A heurística de pesquisa é pois de explorar primeiro o subproblema c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x 4 0

12 Optimização Decompondo o problema na variável X2 teremos: 13.8 com (1,0,.8,0) Max 9+ 6 x 3 + 4x 4 Suj 5x 3 + 2x x 3 + x 4 1 x 3 0 x c/(1,1,0,.5) Max x 3 + 4x 4 Suj 5x 3 + 2x x 3 + x 4 1 x 3 1 x c/(1,.8,0,.8) Max 9+5 x 2 +6 x 3 + 4x 4 Suj 3x 2 + 5x 3 + 2x x 3 + x 4 1 x x 2 + x 4 0

13 Optimização Pelas razões anteriores prosseguiremos com X1=1 e X2=1: 16 com (1,1,0,.5) Max 14+ 4x 4 Suj 2x 4 1 x x 4 1 Max x 4 Suj 2x 4 -4 x x c/(1,1,0,.5) Max x 3 + 4x 4 Suj 5x 3 + 2x x 3 + x 4 1 x 3 1 x 4 1

14 Optimização Prosseguindo com X1=1, X2=1 e X3=0 : 16 com (1,1,0,0) Max 14 Suj com (1,1,0,.5) Max 14+ 4x 4 Suj 2x 4 1 x x com (1,1,0,0) Max 18 Suj

15 Optimização Analisando a solução X1=1, X2=1, X3=0 e X4 = 0: 16 com (1,1,0,0) Max 14 Suj Verificamos que A solução é inteira. O seu valor é melhor que o máximo potencial dos subproblemas em aberto, que podem ser abandonados

16 Optimização Estas técnicas de base são usadas pelo algoritmo branch and bound utilizado para a obtenção do óptimo de uma forma construtiva, mesmo que o problema não envolva aenas variáveis binárias. Assim Um problema pode ser subdividido em dois (ou mais) subproblemas (Branch). O potencial de cada subproblema é avaliado, por uma técnica de relaxação (aproximação) (Bound) Os problemas sem potencial de melhorarem a melhor solução corrente são abandonados.

17 Optimização Outras técnicas podem ser utilizadas em alguns casos (BIP) Eliminação de restrições redundantes x 4 1 Fixação de variáveis x 3 0 x 3 = 0 Geração de planos de corte (cutting-planes) 6x 1 + 3x 2 + 5x 3 + 2x Pode gerar x 1 + x 3 1 x 1 + x 2 + x 4 2

18 Optimização Estas técnicas podem ser utilizadas em Mixed Integer Programming, com as adaptações óbvias A decomposição é feita normalmente através de uma valor de corte. Se X [0..8] então X 4 e X > 4 A geração de planos de corte é mais problemática As aproximações são feitas com aritmética de intervalos que levanta alguns problemas de aproximação, mas permite calcular bounds seguros, mesmo que não muito bons.

19 Optimização O SICStus permite a optimização quer em MIP quer em IP