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