Tópicos em Gerência da Produção (Métodos Heurísticos) - 2010/Introducao(1).pdf · Os itens...

22
1 Tópicos em Gerência da Produção (Métodos Heurísticos) Prof a . Vitória Pureza 2 o / 2010 Conteúdo 1. Introdução/Complexidade computacional/Características e classificação de métodos heurísticos 2. Análise de pior caso de métodos heurísticos para o Problema do Caixeiro Viajante, o Problema de Programação de Tarefas em Máquinas Paralelas e o Problema da Mochila 0-1 3. Análise empírica de métodos heurísticos 4. Condução e reportagem de experimentos com heurísticas 5. Apresentação dos alunos: implementação do método de construção + busca local 6. Simulated Annealing 7. Algoritmos Genéticos 8. Apresentação dos alunos: implementação de Simulated Annealing e Algoritmos Genéticos 9. Busca Tabu 10. GRASP 11. Palestra com professor convidado 12. Apresentação dos alunos: implementação de Busca Tabu e GRASP Bibliografia 1.Lawler E. L., Lenstra, J. K., Rinnooy Kan, A. H. G., Shmoys, D. B., “The Traveling Salesman Problem: A Guided Tour of Combinatorial Optimization, John Wiley & Sons, 1985. 2.Díaz, A., Glover, F., Ghaziri, H. M., Laguna, M., Moscato, P., Tseng, F. T, “Optimización Heurística y Redes Neuronales en Dirección de Operaciones e Ingeniería”, Editorial Paraninfo, 1996. 3.Michalewicz, Z., “Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1996. 4.Glover, F. e Laguna, M., “Tabu Search”, Kluwer Academic Publishers, 1997. 5.Barr, R. S., Golden, B. L., Kelly, J. P., Resende, M. G. C., Stewart, W. R., “Designing and Reporting on Computacional Experiments with Heuristic Methods”, comunicação pessoal. 6.Evans, J. R., “Structural Analysis of Local Search Heuristics in Combinatorial Optimization”, Computers and Operations Research, Vol. 14, no. 6, pp. 465-477, 1987.

Transcript of Tópicos em Gerência da Produção (Métodos Heurísticos) - 2010/Introducao(1).pdf · Os itens...

1

Tópicos em Gerência da Produção

(Métodos Heurísticos)

Profa. Vitória Pureza – 2o/ 2010

Conteúdo

1. Introdução/Complexidade computacional/Características e classificação de métodos heurísticos

2. Análise de pior caso de métodos heurísticos para o Problema do Caixeiro Viajante, o Problema de

Programação de Tarefas em Máquinas Paralelas e o Problema da Mochila 0-1

3. Análise empírica de métodos heurísticos

4. Condução e reportagem de experimentos com heurísticas

5. Apresentação dos alunos: implementação do método de construção + busca local

6. Simulated Annealing

7. Algoritmos Genéticos

8. Apresentação dos alunos: implementação de Simulated Annealing e Algoritmos Genéticos

9. Busca Tabu

10. GRASP

11. Palestra com professor convidado

12. Apresentação dos alunos: implementação de Busca Tabu e GRASP

Bibliografia

1.Lawler E. L., Lenstra, J. K., Rinnooy Kan, A. H. G., Shmoys, D. B., “The Traveling Salesman Problem: A

Guided Tour of Combinatorial Optimization, John Wiley & Sons, 1985.

2.Díaz, A., Glover, F., Ghaziri, H. M., Laguna, M., Moscato, P., Tseng, F. T, “Optimización Heurística y Redes

Neuronales en Dirección de Operaciones e Ingeniería”, Editorial Paraninfo, 1996.

3.Michalewicz, Z., “Genetic Algorithms + Data Structures = Evolution Programs, Springer, 1996.

4.Glover, F. e Laguna, M., “Tabu Search”, Kluwer Academic Publishers, 1997.

5.Barr, R. S., Golden, B. L., Kelly, J. P., Resende, M. G. C., Stewart, W. R., “Designing and Reporting on

Computacional Experiments with Heuristic Methods”, comunicação pessoal.

6.Evans, J. R., “Structural Analysis of Local Search Heuristics in Combinatorial Optimization”, Computers and

Operations Research, Vol. 14, no. 6, pp. 465-477, 1987.

2

MÉTODOS HEURÍSTICOS

HEURÍSTICAS: técnicas matemáticas de solução de problemas cuja mais importante aplicação se

concentra em situações reais de interesse.

Em problemas de decisão que normalmente se apresentam em situações práticas, existem recursos

escassos que a serem utilizados para cumprir um número de requerimentos.

SISTEMAS DE MANUFATURA

Recursos

mão-de-obra, matéria-prima, máquinas...

Requerimentos dos clientes e do processo de manufatura

demanda, especificação de qualidade, prazos de entrega, duração da jornada de trabalho,

horários de descanso, limitações da quantidade de matéria-prima e de capacidade das

máquinas...

Neste ambiente é necessário tomar decisões que definem níveis de atividades:

quanto contratar ?

que matéria-prima utilizar?

quanto produzir a cada período?

da melhor maneira possível:

com o menor custo, maior lucro, menor tempo, maior nível de serviço...

ÓTICA DA PESQUISA OPERACIONAL

MODELO DE PROGRAMAÇÃO MATEMÁTICA tTo Tomar decisões Variáveis de decisão

de forma que o sistema opere da melhor

forma possível Função objetivo

considerando que

as decisões estão relacionadas e limitadas

por vários fatores Restrições

por

de

Maximizar (ou Minimizar)

f(x1,x2,...,xn)

sujeita a:

gi(x1,x2,...,xn) bi, i=1..l

gi(x1,x2,...,xn) bi, i=l+1..h

gi(x1,x2,...,xn)= bi, i=h+1..m

xi X, i=1..n

3

A solução (x1,x2,...,xn)* que otimiza a função objetivo f (solução ótima) precisa pertencer ao

conjunto de soluções que satisfazem todas as restrições (restrições gi, i=1,2,...,m) => espaço de

soluções factíveis (geralmente uma pequeníssima parte do espaço total de soluções xi X).

Se a função objetivo e as restrições de um modelo de programação matemática forem

lineares e as variáveis de decisão assumirem valores não negativos, tem-se um problema de

programação linear e um algoritmo eficiente para sua resolução - o algoritmo simplex.

x1

x2

Existem situações que resultam em modelos matemáticos com milhões de variáveis. Mesmo

tendo a garantia de alcançar o ótimo, o tempo de resolução do simplex pode ser inaceitável.

PROBLEMAS DE OTIMIZAÇÃO COMBINATÓRIA

Neste caso, as variáveis de decisão devem assumir valores discretos e, em geral, o espaço de

soluções é formado por combinações de números naturais.

x1

Região factível

x2

Se a região factível for fechada, o número de soluções factíveis é finito.

ESPAÇO DE SOLUÇÕES X

Espaço de soluções factíveis

solução ótima

Região

Factível

4

Problema da Mochila 0-1: Selecionar dentre um conjunto de n itens, cada qual com um valor de

utilidade vi e um peso pi, o subconjunto formado pelos itens que cabem em um “recipiente” de

capacidade C de forma que o subconjunto selecionado tenha o maior valor de utilidade possível.

Maximizar ivi xi

sujeita a:

pi xi C

xi= {0,1} i=1..n

Modelo do Problema da Mochila 0-1

Para cada item associa-se uma variável que pode assumir valores 0 ou 1.

Os itens selecionados terão suas variáveis de decisão iguais a 1 e os não selecionados, iguais a 0.

Problema do Caixeiro Viajante (TSP): definir a rota mais curta que visite cada um de n nós

exatamente uma vez, partindo e retornando ao nó inicial. O arco entre cada par de nós (i-j) tem um

custo cij, em geral, a distância entre os nós. Neste caso, ao invés de se selecionar um subconjunto de

elementos, é selecionada uma permutação dos n nós, de forma que a distância total seja mínima.

Minimizar i j cij xij

sujeita a:

j xij = 1 i=1..n

i xij = 1 j=1..n

i S j S xij |S| - 1 para todo S não vazio {2,...,n}

xij= {0,1} i=1..n , j=1..n

Modelo do Problema do Caixeiro Viajante

A variável xij é igual a 1 se o nó j é visitado imediatamente após o nó i, e 0 caso contrário.

O 1º conjunto de restrições impõe que um único nó j seja visitado diretamente após cada nó

i.

O 2º conjunto de restrições impõe que a visita de cada nó j seja precedida diretamente por

um único nó i.

O último conjunto de restrições impede a criação de subrotas.

5

MIN C11X11 + C12X12 + C13X13 + C14X14 +

C21X21 + C22X12 + C23X13 + C24X24 +

C31X31 + C32X32 + C33X33 + C34X34 +

C41X41 + C42X42 + C43X43 + C44X44

SUJEITA A:

(1) j Xij = 1 i=1..n

Um único nó j sucede diretamente cada nó i

X11 + X12 + X13 + X14 = 1

X21 + X22 + X23 + X24 = 1

X31 + X32 + X33 + X34 = 1

X41 + X42 + X43 + X44 = 1

(2) i Xij = 1 j=1..n

Um único nó i precede diretamente cada nó j

X11 + X21 + X31 + X41 = 1

X12 + X22 + X32 + X42 = 1

X13 + X23 + X33 + X43 = 1

X14 + X24 + X34 + X44 = 1

Verifique a validade do último conjunto de restrições do modelo do

Caixeiro Viajante para n=4

i 2

3

1

4

j 2

3

1

4

6

COMPLEXIDADE COMPUTACIONAL

Em problemas combinatórios existe sempre um procedimento elementar para encontrar a

solução ótima: realizar uma explosão exaustiva do conjunto de soluções - a chamada enumeração

completa. Em outras palavras, geram-se todas as soluções factíveis e seleciona-se aquela que

apresenta o melhor valor da função objetivo.

Quando o número de variáveis se torna muito grande, o tempo de cálculo necessário cresce

exponencialmente com o número de variáveis do problema.

Exemplo:

Problema da mochila 0-1: Número de subconjuntos do conjunto total de n itens é 2n

Para n=4, SC={0000, 1000, 0100, 0010, 0001, 1100, 1010, 0110, 0101, 0011, 1110, 1110,

1101, 0111, 1011, 1111}: 16 soluções.

Se um computador pudesse em um segundo gerar um milhão destes subconjuntos e avaliar

seu valor, necessitaria de pouco mais de um segundo para encontrar a solução de um problema

com 20 itens (220

=1.048.580).

Seriam necessárias cerca de 2 semanas para resolver um problema de 40 itens e 1365

séculos para analisar as 260

possíveis soluções de um problema com n=60.

Existem problemas combinatórios para os quais não se conhecem algoritmos ótimos de

resolução que não produzam uma explosão exponencial de tempo de cálculo ao se aumentar

o tamanho do problema

Existem outros problemas combinatórios para os quais existem algoritmos cujo tempo de

resolução cresce polinomialmente com o tamanho do problema.

Exemplo:

Problema de Designação: designar n trabalhadores a n postos de trabalho dado que o custo

de designar o trabalhador i ao posto j é cij. Para este problema, existe o algoritmo Húngaro

que necessita de um tempo de cálculo que cresce simplesmente segundo n3.

7

CLASSES P E NP

Matematicamente, buscou-se formalizar a distinção destes tipos de problemas. Considere os

seguintes problemas de decisão. Problemas de decisão requerem duas possíveis respostas: sim (1) ou

não (0).

Exemplo 1: Número composto

Input: um número x

Output: 1 se x é um número composto; 0 caso contrário.

Exemplo 2: Satisfatibilidade

Input: uma expressão boleana F de n variáveis.

Output: 1 se as variáveis de F podem assumir valores que fazem F

verdadeira; 0 caso contrário.

Exemplo 3: Ciclo hamiltoniano

Input: um grafo G(V,E) com n nós.

Output: 1 se existe um ciclo de arestas em G que incluem cada um dos n

nós exatamente uma vez; 0 caso contrário.

Exemplo 4: K-Clique

Input: um grafo G(V,E) de n nós; um inteiro positivo k.

Output: 1 se existe um conjunto W de k nós em V tal que cada par de

nós em W é conectado por uma aresta em E; 0 caso contrário.

Exemplo 5: 3-Coloramento

Input: um grafo G(V,E) de n nós.

Output: 1 se cada nó de G puder ser designado a uma cor de um conjunto

de 3 cores de forma que nenhum par de nós conectados por uma aresta

possuam a mesma cor; 0 caso contrário.

PARA RESOLVER CADA UM DELES, precisamos demonstrar a existência de uma

instância particular que tenha certa relação com o input:

Exemplo 1: encontrar um fator para o número x.

Exemplo 2: encontrar valores das variáveis que fazem F verdadeira.

Exemplo 3: encontrar um ciclo adequado em G.

Exemplo 4: encontrar um conjunto adequado de k nós em V.

Exemplo 5: encontrar uma designação adequada de cores em V.

8

Portanto:

Dado um problema com input I (número, expressão boleana, grafo), é necessário encontrar

uma testemunha W (número, designação, ciclo, conjunto de nós, designação de cores) tal que uma

relação particular seja estabelecida entre a testemunha e o input:

Exemplo 1: W divide I sem resto.

Exemplo 2: W faz I assumir o valor verdadeiro.

Exemplo 3: W é um ciclo em I contendo cada nó de I exatamente uma vez.

Exemplo 4: W é um conjunto de k nós em I, onde cada par está conectado por uma aresta de I.

Exemplo 5: W não designa a mesma cor aos pares de nós em I conectados por uma aresta de I.

PROPRIEDADE: Estes (e muitos outros problemas) podem ser VERIFICADOS por

algoritmos eficientes (tempo polinomial). Não é difícil decidir se uma solução é de fato uma

testemunha válida para problemas como estes:

Exemplo 1: W é um fator de I, realizando uma operação de divisão.

Exemplo 2: W satisfaz I, avaliando a expressão F.

Exemplo 3: W é um ciclo hamiltoniano em I, testando se I contém todas as arestas em W.

Exemplo 4: W é uma k-clique em I, testando se cada par em W está conectado por uma aresta

de I.

Exemplo 5: W é um coloramento de I, testando se cada aresta em I conecta nós com diferentes

cores em W.

Em resumo:

Para qualquer problema de decisão f, com cada possível tamanho n, existe um conjunto de

testemunhas potenciais Wn.

Para resolver um problema de decisão, TUDO o que é necessário é um algoritmo que

determine se existe uma testemunha válida W, tal que W esteja em Wn para qualquer

entrada I de tamanho n.

A princípio, pode-se fazer isso, analisando cada elemento W de Wn, e verificando se W é

uma testemunha válida para I.

9

Entretanto, a pergunta “W é uma testemunha válida p/ I (para o problema de decisão f)?”:

Exemplo 1: y é um fator de x?

Exemplo 2: faz F verdadeira?

Exemplo 3: C é um ciclo hamiltoniano em G(V, E)?

Exemplo 4: K é uma k-clique em G(V, E)?

Exemplo 5: é um 3-coloramento de G(V, E)?

são elas próprias problemas de decisão.

Então, para cada problema de decisão, f, podemos definir outro problema de decisão,

AVALIAÇÃO(f).

AVALIAÇÃO(f)

Input: problema de input I para f; possível testemunha W tal que f(I) =1.

Output: 1 se W é uma testemunha válida tal que f(I)=1; 0 caso contrário.

Exemplo 1: AVALIAÇÃO (COMP)

Exemplo 2: AVALIAÇÃO (SATISFATIBILIDADE)

Exemplo 3: AVALIAÇÃO (CH)

Exemplo 4: AVALIAÇÃO (K-CLIQUE)

Exemplo 5: AVALIAÇÃO (3-COL)

AVALIAÇÃO(f), para cada um dos 5 problemas apresentados, é resolvível em tempo

polinomial, ou seja, existem algoritmos eficientes para tal.

CLASSE NP: todos os problemas de decisão f, com a propriedade de que AVALIAÇÃO(f) é

resolvível em tempo polinomial.

NP={f: AVALIAÇÃO(f) está em P}

O problema da mochila é NP (considere uma instância deste problema, por exemplo, com n=3,

v1=5, v2=4, v3=7, p1=2, p2=1, p3=3, C=5. É possível verificar em tempo polinomial se, por

exemplo, a solução x= {1,3} tem um valor maior que 10).

10

Portanto, para problemas de decisão, temos 2 variantes:

1. Verificar se existe alguma testemunha válida W para I (resolver f) e,

2. Verificar se uma W específica é uma testemunha válida para I (resolver AVALIAÇÃO(f)).

DEFINIÇÕES

P é a classe de problemas com algoritmos que resolvem a primeira variante (encontrar a

testemunha válida) de forma eficiente.

NP é a classe de problemas com algoritmos que resolvem a segunda variante de forma

eficiente (verificar se a testemunha é válida).

COMO P E NP ESTÃO RELACIONADOS?

Se f está em P, então AVALIAÇÃO(f) está em P

Pela definição de NP, f está também em NP.

Logo, P NP.

P É UM SUBCONJUNTO PRÓPRIO DE NP?

Ou seja, existem problemas de decisão f tais que AVALIAÇÃO(f) está em P (ou seja, f está em

NP) mas para os quais f não está em P (P NP) ?

Em termos informais:

Existem problemas de decisão f tais que a verificação de uma solução é muito mais fácil do

que encontrar uma solução?

Os problemas seguintes representam uma fração de dezenas de milhares de problemas

conhecidos por pertencerem à classe NP, mas para os quais nenhum algoritmo eficiente de resolução

foi encontrado até o momento (apesar de em certos casos ter sido despendido séculos de trabalho neste

sentido).

Ciclo hamiltoniano.

Satisfatibilidade.

3-coloramento.

Clique.

Problema do caixeiro viajante.

nPN NP nPN P

11

Caminho mais longo em um grafo.

Coloramento de arestas.

Programação ótima de tarefas.

Minimização de expressões boleanas.

Número composto.

Com exceção do último, acredita-se que não exista nenhum algoritmo eficiente para quaisquer

destes problemas de decisão. Eles são todos intratáveis. Entretanto, isso ainda precisa ser provado.

CLASSE DE PROBLEMAS NP-COMPLETOS

O conceito de problema de decisão NP-completo oferece um caminho possível para resolver se

P=NP ou P NP. A idéia do conceito de problemas NP-completos é a de descrever formalmente o que

pode ser entendido como os problemas mais difíceis em NP.

Problemas NP-completos são intuitivamente os mais difíceis em NP, uma vez que podemos

provar que P=NP se e somente se algum problema NP-completo, f, possuir um

algoritmo de tempo polinomial.

PREMISSAS:

1. Sejam S e T dois problemas de decisão e suponha que possamos construir um algoritmo

para resolver T.

2. Suponha também que neste programa, haja uma função TRANSFORMAÇÃO(T) que toma

uma instância particular de T e a transforma em uma instância para S (por exemplo, se

T é um problema de decisão definido em termos de números e S um problema de decisão

definido em termos de grafos, então TRANSFORMAÇÃO(T) toma um número e o

transforma em um grafo usando este número).

3. Suponha que ambos TRANSFORMAÇÃO(T) e S tenham algoritmos eficientes

(polinomiais).

12

Então o procedimento de transformar T em S (polinomial) e o procedimento de resolução

de S (polinomial) resultam em um algoritmo eficiente de resolução de T!!

Segue-se que:

Existe um algoritmo eficiente para T se existir um algoritmo eficiente para S.

Entretanto, mais importante...

SE FOR POSSÍVEL PROVAR QUE NÃO EXISTE NENHUM ALGORITMO

EFICIENTE PARA S, ENTÃO SE PROVA QUE NÃO EXISTE NENHUM

ALGORITMO EFICIENTE PARA T.

Se tivermos um procedimento eficiente , o qual:

transforma instâncias de entrada de T em instâncias de entrada (x) para S

é tal que T(x)=1 se e somente se S( (x))=1

estabelece-se uma relação entre a complexidade de S e a complexidade de T.

DEFINIÇÃO

Se S e T são problemas de decisão para os quais tal procedimento de transformação eficiente de

T para S existe, diz-se que o problema de decisão T é polinomialmente reduzível ao problema de

decisão S (T p S).

COMO A IDÉIA DE REDUÇÃO POLINOMIAL PERMITE ENDEREÇAR A QUESTÃO SE P=NP?

T (eficiente)

TRANSFORMAÇÃO(T) (eficiente)

S (eficiente)

Problema de decisão T

Problema de decisão S

13

Suponha que tenhamos um problema de decisão f, para o qual podemos provar o seguinte:

f está em NP (existe um algoritmo de avaliação eficiente para f).

para qualquer outro problema de decisão g em NP, g p f

Um problema de decisão f com tais propriedades, ou seja:

f está em NP.

para todo g em NP, g p f.

é chamado de problema de decisão NP-COMPLETO.

Como todo problema g em NP pode ser reduzível ao problema f (NP-COMPLETO), se f não

possuir um algoritmo eficiente de resolução nenhum problema em NP possui.

Além disso, se encontrarmos um algoritmo eficiente para um único problema NP-

completo, então podemos construir algoritmos eficientes para todos os problemas de

decisão em NP.

Em outras palavras,

P=NP se e somente se f (NP-completo) possui um algoritmo eficiente de resolução (f está em P).

Para um problema f ser NP-completo é necessário:

1. Encontrar um algoritmo eficiente de avaliação para f (ou seja, provar que f está em NP).

2. Mostrar que cada problema com um algoritmo de avaliação eficiente pode ser transformado

em f (ou seja, provar que para todo g em NP, g p f).

O primeiro requerimento é geralmente relativamente fácil de ser satisfeito. Entretanto, para o

segundo, como poderemos reduzir um número tão grande de problemas de decisão a um

problema único?

14

Suponha que existam dois problemas de decisão, f e g, tais que:

f é NP-completo.

g está em NP.

f p g.

Com isso, mostra-se que g é NP-completo já que:

Portanto, temos uma redução polinomial de cada problema h em NP para g:

1. convertendo uma instância x de h (em NP) para uma instância (x) de f.

2. convertendo a instância (x) de f para uma instância de g.

O primeiro é possível uma vez que f é NP-completo. O segundo porque existe uma redução

polinomial de f para g.

Este argumento mostra que:

uma vez que tenhamos identificado um único problema de decisão NP-completo, f, para

provar que outro problema decisão, g, é NP-completo, tudo que temos de fazer é encontrar

um algoritmo para transformar instâncias de entrada de f em instâncias de entrada de g, ou

seja, provar que f p g.

PROBLEMA: Encontrar um "primeiro problema NP-completo".

TRANSFORMAÇÃO(f) (h f)

Qualquer problema de decisão h em NP

Problema de decisão f

NP-completo

TRANSFORMAÇÃO(g) (f g)

15

Em 1971, Steven Cook provou um dos mais importantes resultados em teoria de

complexidade moderna.

Teorema de Cook: O Problema da Satisfatibilidade é NP-completo.

Poucos meses depois do resultado de Cook, dezenas de novos problemas NP-completos foram

identificados. Até 1994, mais de 10000 problemas de decisão foram identificados como NP-completos.

Sabe-se que os seguintes problemas são todos NP-completos:

Clique

Ciclo hamiltoniano

Problema do Caixeiro Viajante

3-coloramento

Partição de conjuntos

Coloramento de arestas

Caminho mais longo

Problema da mochila inteiro

Uma prova de que um problema de decisão é NP-completo é aceita como evidência de

sua intratabilidade, já que um método rápido de resolução de um único problema NP-

completo, imediatamente resultaria em algoritmos rápidos para todos os problemas NP-

completos.

CRENÇA: É extremamente improvável que qualquer problema NP-completo tenha um

algoritmo rápido. Mas isso ainda está para ser provado, ou seja, a questão se P=NP continua

em aberto.

Enquanto para a maioria dos problemas de decisão clássicos já tenha sido determinado se

pertencem à classe P ou NP-completo, há um número de problemas importantes para os quais isso

ainda não foi demonstrado. Em particular, o problema da primalidade e do número composto.

Sabe-se que ambos estão em NP mas não se provou se são ou não NP completos. Acredita-se que

ambos sejam de fato resolvíveis por algoritmos eficientes.

16

NP

NP completo

Hierarquia

do Tempo

Polinomial P

CO-NP

Espaço

LOG

LOG

P completo

LOG

17

HEURÍSTICAS

Dada a dificuldade prática de resolver de forma exata (algoritmo simplex, branch&bound,

teoria de grafos, etc.) toda uma série de importantes problemas combinatórios para os quais, por outro

lado, se faz necessário oferecer alguma solução, passaram a ser propostos algoritmos que

proporcionam soluções factíveis: algoritmos heurísticos ou heurísticas.

DEFINIÇÃO: Procedimentos simples, baseados no bom senso, que se supõe ofereçam uma boa

solução (ainda que não necessariamente ótima) a problemas difíceis, de um modo fácil e rápido

(Zanakis e Evans,1981).

Não há garantia de que as soluções providas otimizem a função objetivo, porém

Espera-se que produzam soluções sub-ótimas de alta qualidade em um tempo de cálculo

razoável.

Em geral, há falta de rigor matemático.

Ferramenta útil para problemas reais.

A partir da metade dos anos 70, com a proliferação de resultados no campo da complexidade

computacional, passaram a ser amplamente utilizadas.

SITUAÇÕES EM QUE SE UTILIZAM ALGORITMOS HEURÍSTICOS

Inexistência de um método de resolução exato.

Existência de métodos de resolução exatos que exigem tempo computacional ou memória além dos

recursos da máquina.

Existência de métodos de resolução exatos que exigem tempo computacional além das necessidades

da aplicação.

Quando não se necessita da solução ótima.

Quando os dados de entrada do problema são pouco confiáveis.

Como passo intermediário na aplicação de outro algoritmo.

VANTAGENS QUE JUSTIFICAM A UTILIZAÇÃO DE ALGORITMOS HEURÍSTICOS

Utilizam uma fração do esforço computacional de um método exato.

Permitem maior flexibilidade no manejo de características do problema.

18

Geralmente oferecem mais de uma solução, permitindo ampliar as possibilidades de decisão,

sobretudo quando existem fatores não quantificáveis que não podem ser incorporados no modelo,

mas que precisam ser considerados.

DESVANTAGENS DE ALGORITMOS HEURÍSTICOS

Em geral, não é possível conhecer a qualidade da solução apresentada, ou seja, quão próxima

xheur está da solução ótima x*. Em um problema de maximização, pode-se afirmar somente que f(xheur)

f(x*).

Existem métodos que podem fornecer indicações sobre a qualidade das soluções da

heurística Relaxação do problema, eliminando algumas das restrições, de forma que o

problema seja mais fácil de resolver.

Relaxação linear - resolve o problema relaxado, ignorando as restrições de integralidade das

variáveis. Se o ótimo do problema relaxado é x*relax, então:

f(xheur) f(x*) f(x*relax) (maximização)

Assim, f(x*) próximos a f(xheur) garantem que a heurística está nos dando uma boa

aproximação.

Existem métodos que simplesmente detectam que a heurística não é boa Uma

possibilidade é a de gerar aleatoriamente várias soluções e verificar se têm qualidade similar à da

solução heurística. Neste caso, põe-se em dúvida a efetividade da heurística.

Apesar de todas as suas vantagens, não há dúvida que quando uma técnica exata está

disponível, esta deve ser preferível a qualquer tipo de heurística, sobretudo quando os montantes

econômicos sejam importantes. Mais especificamente, quando mesmo pequenas diferenças entre a

solução heurística e a solução ótima representem milhões de $!

19

TIPOS DE HEURÍSTICAS

Heurísticas podem ser classificadas segundo o modo com que buscam e constróem suas

soluções. A seguinte classificação é baseada em Silver, Vidal e de Werra (1990).

1. MÉTODOS CONSTRUTIVOS: gradualmente adicionam componentes individuais à

solução até que se obtenha uma solução factível. Dentre os mais populares destes métodos

encontram-se os algoritmos gulosos, os quais constroem a solução buscando a cada passo o

máximo benefício.

Problema da mochila

a) Escolha dentre os itens ainda não selecionados, aquele com o maior valor por unidade de

peso (vi/pi).

b) Repita (a) até que não caibam mais objetos.

Problema do Caixeiro Viajante

a) Escolha um nó aleatoriamente e o incorpore à rota.

b) Selecione o nó mais próximo do último já incorporado à rota como próximo nó a ser

visitado. Repita (b) até que todos os nós tenham sido roteados e feche o circuito entre o

primeiro e o último nó.

2. MÉTODOS DE DECOMPOSIÇÃO: dividem o problema em subproblemas menores,

sendo a saída de um problema a entrada do problema seguinte, de forma que ao resolvê-los

todos obtenha-se uma solução para o problema global (divide and conquer).

Problemas de programação linear mista

a) Obtenha (de alguma forma) uma solução para as variáveis inteiras.

b) Resolva o PL resultante ao substituir os valores das variáveis obtidos em (a).

Alguns autores (Ball, Magazine, 1981) denominam de métodos de decomposição aqueles

em que os subproblemas se resolvem em seqüência, e métodos de partição quando os

subproblemas são independentes entre si.

Problema do Caixeiro Viajante

a) Divida o plano em várias regiões pequenas e resolva o TSP com as cidades em cada uma

das regiões.

b) Una as soluções para obter a solução do problema original.

20

3. MÉTODOS DE REDUÇÃO: identificam alguma característica que presumivelmente deva

aparecer na solução ótima para que desse modo seja possível a simplificação do problema.

Assim, pode-se detectar se alguma variável deva sempre assumir o valor 0, por exemplo.

Problema da mochila

a) Identifique (de algum modo) os itens aparentemente pouco interessantes (pequeno valor por

unidade de peso, por exemplo) e os exclua de consideração.

b) Resolva o problema resultante menor de forma exata.

4. MANIPULAÇÃO DO MODELO: modificam a estrutura do modelo com a finalidade de

fazê-lo mais fácil de resolver, deduzindo, a partir de sua solução, a solução do problema

original. Podem consistir de:

reduzir o espaço de solução (linearizar funções que não são lineares, agrupar variáveis para

reduzir seu número, impor novas restrições baseando-se no comportamento esperado da solução

ótima)

ou aumentá-lo (eliminar restrições, por exemplo).

5. MÉTODOS DE BUSCA EM VIZINHANÇA: partem de uma solução factível inicial (obtida

por alguma outra heurística) e mediante alterações nessa solução, passa-se sucessivamente a

uma nova solução, de forma iterativa, até que se satisfaça algum critério de parada.

Geralmente, escolhe-se de um conjunto de soluções, aquela que resulta no melhor valor de

função objetivo.

Como realizar o passo de uma solução factível a outra?

VIZINHANÇA N(s) da solução s: conjunto de soluções “parecidas” com S.

N(s) é obtido realizando-se uma operação elementar, chamada de movimento, sobre S.

S

s1

s2 N(s)

...

sn

so s1 ... sn

21

Problema da mochila

Suponha que existam 5 itens e que temos a solução S=<1, 0, 0, 1, 1> (onde xi=1 indica que o

item i está selecionado). Então, pode-se definir:

a) N1(S)= todas as soluções resultantes da troca de um dos itens selecionados por um item

não selecionado em S.

Assim, pertencem a N1(S):

S1=<0,0,1,1,1> (retirada do item 1 e inserção do item 3)

S2=<1,1,0,1,0> (retirada do item 4 e inserção do item 2)

...

b) N2(S)= todas as soluções resultantes da troca de dois dos itens selecionados por um item

não selecionado em s.

Assim, pertence a N2(S):

S1=<0,0,1,1,0> (retirada dos itens 1 e 5 e inserção do item 3)

Métodos de busca em vizinhança buscam dentre as soluções da vizinhança da solução corrente

s, uma solução s’ que tenha um valor melhor que s. A solução s’ passa a ser a solução corrente. Este

processo é repetido até que não se encontre na vizinhança da solução corrente nenhuma solução, ou

porque algum outro critério de parada tenha sido satisfeito.

MÉTODOS DE BUSCA LOCAL: Em cada iteração, o movimento é realizado a partir da

solução corrente a uma solução de sua vizinhança melhor que ela, finalizando a busca quando

não houver nenhuma solução vizinha que a melhore.

A solução final s será sempre um ÓTIMO LOCAL

f(S) f(S'), para todo S’ N(S) (problemas de minimização)

Existência de ótimos locais que não sejam globais.

Se a busca encontra um ótimo local, a princípio, A HEURÍSTICA NÃO SABERIA

COMO CONTINUAR.

22

POSSIBILIDADES PARA CONTORNAR ESTA LIMITAÇÃO

Reiniciar a busca a partir de outras soluções iniciais e acreditar que a partir dela, a

exploração siga outros caminhos (múltiplos reinícios).

METAHEURÍSTICAS

Busca Tabu: mantém um “registro” (memória) da história da busca para identificar os

ótimos locais visitados e evitá-los.

Simulated Annealing: permite com certa probabilidade a aceitação de soluções piores.

Em geral, o resultado da busca depende da solução de partida.

OUTRA CLASSIFICAÇÃO DE TÉCNICAS HEURÍSTICAS (baseada em Barr et. al, 1995 e

Muller-Merbach, 1981).

Métodos heurísticos avaliam um no pequeno de alternativas do número total possível.

Ho (1994): aplicação da regra 80/20 (80% da riqueza é possuída por 20% da população)

uma heurística bem projetada pode aproveitar esta propriedade e explorar

exclusivamente as soluções mais interessantes.

HEURÍSTICAS

SOZINHAS DENTRO DE OUTROS MÉTODOS

Regra de parada Regra de parada Branch&Bound

controlada pelo usuário bem definida

Busca local Métodos Construtivos

Na prática Por definição

Relaxação Redes Reinícios Aleatórios Meta-heurísticas

Lagrangiana Neuronais

Com memória Sem memória

BT SA, AG, GRASP, VNS