• Nenhum resultado encontrado

Meta-heurísticas para Problemas de Otimização Combinatória

N/A
N/A
Protected

Academic year: 2021

Share "Meta-heurísticas para Problemas de Otimização Combinatória"

Copied!
19
0
0

Texto

(1)

Gerardo Valdisio Rodrigues Viana

Faculdade Lourenço Filho – FLF

Universidade Estadual do Ceará- UECE

Resumo

A teoria da complexidade mostra que para os problemas classificados como NP-completos não são conhecidos algoritmos em tempo polinomial para resolvê-los de forma generalizada e exata. Para o tratamento destes problemas, existem algoritmos específicos que podem ser exatos não-polinomiais, pseudopolinomiais, aproximativos e heurísticos. Garey & Johnson (1979), em seu tradicional livro “Computers and Intractability”, apresentam uma extensa lista de problemas pertencentes a esta classe, cujo tratamento pelas técnicas de aproximação citadas produzem resultados considerados satisfatórios, não garantindo, entretanto, sua otimalidade, ou seja, a inexistência de soluções melhores. Grande parte destes problemas envolve os chamados problemas de decisão que buscam a existência de uma determinada estrutura que satisfaz a uma certa propriedade e os problemas de otimização que procuram dentre estas estruturas qual delas tem um valor máximo ou mínimo para uma dada função de avaliação aplicada a esses elementos. Neste trabalho, é dada uma definição formal de problema de otimização combinatória e uma descrição de meta-heurística que corresponde a uma das principais técnicas desenvolvidas para obter uma boa solução deste tipo de problema num tempo aceitável.

Palavras-chave: Otimização Combinatória, Busca Local, Meta-heurísticas.

1 INTRODUÇÃO

(2)

Este trabalho está organizado assim, na seção 2 são apresentadas as definições básicas para entendimento dos problemas e métodos de resolução utilizados no texto; na seção 3 são descritas as principais meta-heurísticas através de seus conceitos básicos e classificação; na seção 4 são citadas outras meta-heurísticas clássicas e suas referências; por fim, na última seção é feita a conclusão do trabalho.

2 DEFINIÇÕES

2.1 Problema de Otimização Combinatória (POC)

Dados:

• um conjunto finito E = { 1, 2, ... , n }

• uma coleção de subconjuntos de E, ∅ ≠ F ⊆ 2|E| • uma função c: F → ℜ (reais).

Obter: S* e F satisfazendo uma das condições:

• c (S*) ≥ c (S), ∀ s ∈ F (para problema de maximização) • c (S*) ≤ c (S), ∀ s ∈ F (para problema de minimização) sujeitas, ou não, a uma série de restrições.

Nomenclatura:

• S – configuração qualquer

• S* – “melhor” configuração dentre todas as soluções em F (solução ótima) • F – espaço de configurações (ou de soluções viáveis)

• c – função custo ou “função objetivo”

Configuração é um arranjo dentro do espaço F formado, portanto, por elementos dos

(3)

Soluções Viáveis são aquelas configurações que satisfazem as condições impostas pelas

restrições do problema, sendo, portanto, aquelas candidatas à solução ótima ou a “melhor” solução conhecida.

“Melhor” corresponde ao maior valor (num problema de maximização) ou ao menor valor (num problema de minimização) da função objetivo, dentre todas as soluções possíveis.

2.2 Perturbação e Vizinhança

Um procedimento que transforma uma configuração si noutra sj, ambas soluções viáveis

do problema, é chamado de perturbação (VIANA, 1998). denota-se sj = p (si), onde p é o

procedimento de perturbação. na prática p deve fazer com que sj seja uma configuração

ligeiramente modificada de si, ou seja, deve promover alterações mínimas na estrutura da

configuração de forma rápida.

A geração de novas configurações, a partir de uma configuração s, define o conceito de vizinhança n(s) cujo tamanho k (número de vizinhos) depende de p e s. os elementos pertencentes a n(s) introduzem a noção de proximidade entre as soluções no espaço de configurações, no sentido de configurações “parecidas”, podendo a função objetivo aplicada a dois elementos da mesma vizinhança n(s) = { s1 , s2 ,..., sk } terem valores discrepantes entre si,

(4)

Figura 1 – Vizinhança de uma configuração Si

Neste exemplo, diz-se que P é linear, e

K = N(S) =

8

1

!

"

#

$

%

& = 8

vizinhos.

No caso do procedimento P corresponder à troca de 2 bits de forma aleatória, então P seria quadrática e

K = N(S) =

8

2

!

"

#

$

%

& = 28

vizinhos.

2.3 Algoritmos Gulosos

A construção de uma solução gulosa (ZIVIANI, 2007) consiste em selecionar sequencialmente elementos de F, digamos Si, de modo que se Si+1 é “melhor” que Si, essa passa

a ser a solução para todo i, caso contrário Si+1 será descartada.

(5)

Um algoritmo guloso também é chamado de “míope”, pois somente “enxerga” em sua busca o vizinho que está mais próximo. Em geral, um algoritmo guloso encontra sempre a mesma solução para uma dada instância de um problema, exceto no caso de eventuais empates. O efeito da obtenção de uma solução gulosa é chamado de intensificação, no sentido que a tendência é encontrar um mínimo ou máximo local na “vizinhança” pesquisada.

Considerando um problema de minimização para a Figura 2, diz-se que S* é um mínimo local para este espaço se

c(S*) ≤ c(S

i

), ∀i ∈ {1,..., k}

.

Figura 2 – Espaço com valores da função objetivo para algumas configurações

2.4 Aleatorização

Para alcançar a diversidade nas soluções encontradas pode-se criar uma lista de “candidatas” e forçar uma escolha aleatória (WINSTON, 1994) a cada iteração. A qualidade da solução obtida depende da função de randomização utilizada e da cardinalidade da lista procedendo a troca da “melhor” solução encontrada parcialmente de forma gulosa, eventualmente este processo, chamado de diversificação pode levar a um mínimo global (solução ótima) ou na pior das hipóteses, numa solução melhor quando se alternam os processos de intensificação e diversificação, de modo que são comparados “vários” mínimos locais.

(6)

Figura 3 – Intensificação x Diversificação - Fonte: (VIANA, 1998, p.92)

2.5 Busca Local

Um “espaço de busca” é definido pelo conjunto de soluções S e por uma vizinhança N. De forma abstrata, este espaço pode ser visto como uma superfície de picos e depressões definidos pela função objetivo e pela proximidade (vizinhança) das soluções.

A Figura 4 apresenta algumas regiões (espaços de busca) cada uma com o mínimo local de sua vizinhança. O objetivo de qualquer método é encontrar

f *

que corresponde a região que contém o melhor mínimo local dentre todas. A dificuldade existe porque o número de regiões pode crescer de forma exponencial, ou seja, se

f

i for o mínimo local da vizinhança N(Si) então

f * = {min f

i

, ∀i,1 ≤ i ≤ m → ∞}

.

(7)

Um algoritmo de busca local é construído de forma a explorar o espaço de busca (AARTS, 1997). Uma solução inicial S0 deve ser obtida a partir de algum método construtivo,

ou seja, a partida do algoritmo deve ser feita pela construção de uma solução viável qualquer. Chama-se iteração a cada passo em que se busca uma melhoria sucessiva (iterativa) da solução atual no espaço de busca. A cada iteração deve ser selecionada uma solução qualquer da vizinhança; o critério de parada pode ser o primeiro “ótimo” local encontrado, ou seja, não existe vizinho “melhor”. Outro critério poderia ser um limite definido de iterações “sem melhoria”; ou se for obtido uma solução “melhor” que uma alguma conhecida já praticada etc.

Elementos de um algoritmo de busca local: • Definição da vizinhança

• Estratégia de busca

• Simplificação da geração de vizinhos (procedimento de perturbação simples) • Eficiência no cálculo da função objetivo, ou seja, evitar cálculos repetitivos e

desnecessários. Dificuldades encontradas:

• Término do algoritmo de forma prematura (após encontrar o primeiro ótimo local) • Sensível à solução da partida (S0)

(8)

• Necessidade de um número grande de iterações para obter uma boa solução. Procedimentos úteis:

• Redução da vizinhança (seleção de subconjuntos de N(S) por algum critério) • Repetir a busca local partindo de S0 distintos, escolhidos de forma aleatória

• Considerar mais de uma vizinhança, dependendo do tamanho |N(S)|. • Selecionar boas rotinas de perturbação

Todos os conceitos apresentados nesta seção são úteis para o entendimento das meta-heurísticas definidas a seguir. Especificamente os procedimentos de perturbação, as estratégias de intensificação e diversificação e as técnicas de busca local são utilizadas na seção seguinte onde é evidenciado que as meta-heurísticas podem ser aplicadas a qualquer problema de otimização combinatória.

3 META-HEURÍSTICAS

3.1 Definição

As meta-heurísticas são procedimentos destinados a encontrar uma boa solução de um problema, eventualmente a ótima, alternando procedimentos de intensificação e de diversificação com o objetivo de fugir (escapar) de ótimos locais (GLOVER & KOCHENBERGER, 2003). Diferenciam-se, entre si, pelo critério de escolha da solução inicial, da definição da vizinhança, da forma de seleção do “vizinho” e do critério de parada; pode-se dizer que uma de suas principais características é ser de uso geral, no sentido que podem ser adaptadas para resolver problemas diversos, diferentemente das heurísticas simples que são específicas para um dado problema.

Outras características das meta-heurísticas:

• adaptam-se às instâncias especiais dos problemas

(9)

• procedem melhoria das soluções parciais utilizando uma heurística de busca local (intensificação)

• fazem uma randomização controlada

• diversificam a busca de forma dinâmica, ou seja, a rotina de diversificação varia de acordo com a evolução do algoritmo

• utilizam funções de avaliação (função objetivo) de forma eficiente

• em geral, o tempo computacional necessário para obter uma “boa solução” é bem maior que as heurísticas simples, podendo ser controlado por número de iterações e/ou outros critérios de parada.

3.2 Classificação das meta-heurísticas

Os procedimentos utilizados pelas meta-heurísticas e suas estratégias de busca permitem classificá-las assim:

a) Meta-heurísticas Construtivas – estabelecem estratégias para a construção de uma solução, geralmente gulosa, formada por um processo iterativo de modo a obter melhores resultados imediatos possíveis.

Exemplo: GRASP (Greedy Randomized Adaptative Search Procedure)

b) Meta-heurísticas de Busca de Entornos – utilizam procedimentos que percorrem espaço de busca levando em consideração, em cada passo, a vizinhança da solução atual praticada. Uma estrutura de entorno grande tende a diminuir o desempenho de cada iteração (aumentando o tempo total de execução), por outro lado, se a diversificação é baixa pode conduzir a piores soluções. Deve-se então “calibrar” a MH de modo a utilizar um “meio termo”. Exemplos: VNS (Variable Neighbourhood Search), GLS (Guided Local Search), SA (Simulated Annealing) e TS (Tabu Search).

c) Meta-heurísticas Evolutivas – trabalham com uma população (conjunto de soluções) que evolui a cada iteração. Procura preservar as características que melhorem a qualidade média das soluções em cada geração sem comprometer a diversidade dentro da população.

(10)

d) Meta-heurísticas de Relaxação – realizam alterações na modelagem original do problema a fim de construir um problema mais simples (relaxado) cuja solução pode ser encontrada com eficiência fornecendo informações para que a a solução do problema original seja obtida.

Exemplo: Relaxação Langrangeana

e) Meta-heurísticas Híbridas – referem-se àquelas que se enquadram de forma intermediária entre mais de um tipo de meta-heurística (MH), em geral utilizam recursos de uma ou mais heurísticas. Algumas das MHs anteriores podem também ser assim classificadas.

Exemplo: ACO (Ant Colony Optimization), Memetic Algorithm e Logic Fuzzy.

4 DESCRIÇÃO DAS PRINCIPAIS META-HEURÍSTICAS

4.1 Busca Tabu ( TS – Tabu Search)

É um procedimento heurístico utilizado para guiar um algoritmo de busca local a fim de encontrar boas aproximações para a “solução ótima” de qualquer problema de otimização combinatória (GLOVER & LAGUNA, 1997).

Tem por base três princípios:

1. uso de um FILA para guardar o histórico da evolução do processo de busca

2. uso de um mecanismo de controle (TABU) que faz o balanceamento entre a aceitação ou não, de uma nova configuração, referentes às restrições e aspirações desejadas

3. incorpora procedimentos que alternam as estratégias de diversificação e intensificação. A Figura 5 apresenta o algoritmo para a meta-heurística Busca Tabu. Os procedimentos existentes realizam as seguintes funções:

Generate Initial Solution – gera uma solução inicial s de forma aleatória, considera-a

(11)

Generate_Admissible_Solutions – gera uma vizinhança de s, denominando-a de A=N(s). Select_Best_Solution – seleciona a melhor solução desta vizinhança A. Caso o tamanho

|N(s)| seja elevado, pode ser explorada parte dela através de um parâmetro limitante do número de vizinhos nv ≤ N(s).

Update_Memory_Structures – atualiza a fila Tabu. Em geral, o tamanho desta fila varia de

7 a 14 elementos e tem por objetivo guardar as melhores soluções parciais encontradas durante a evolução do processo a fim de evitar que seja reutilizada uma região já explorada.

Figura 5 – Algoritmo Busca Tabu – Fonte: (STÜTZLE, 1998, p. 28)

4.2 Têmpera Simulada ( SA – Simulated Annealing)

(12)

atingir o equilíbrio térmico, tornando-se consistentes e rígidos (van LAARHOVEN & AARTS, 1987).

Para alternar os procedimentos de intensificação e diversificação num problema de minimização utilizam-se os testes (aceitação de uma nova solução S’):

• S’ melhor que S, ou seja,

f (S ') < f (S*)

ou • S’ é pior que S, porém

µ

= e

f (S )− f (S ')

T > random(0,1)

Onde T é o parâmetro de controle de “temperatura” e µ é critério de Metropolis (VIANA, 1998) que corresponde a um fator de probabilidade de aceitação. Este critério estabelece que se o valor de T for alto (início) permitem muitos movimentos de diversificação e a medida que T reduz [Ti = αTi-1, 0 < α < 1] a maioria destes movimentos serão rejeitados.

Observa-se que se α é pequeno o “resfriamento” é rápido e em geral a solução não é boa. Se α é grande o processo torna-se lento comprometendo o tempo de execução.

O valor inicial de T0 pode ser calculado em função de

η

valores de f (S). JOHNSON et

al. (1987) sugerem

T

0

= 4.40ΔE

+, onde

ΔE

+ corresponde à média aritmética dos k termos em que ΔE > 0, sendo

ΔE = f (S ') − f (S)

e

1 ≤ k ≤ η

.

A Figura 6 apresenta o algoritmo para a meta-heurística Simulated Annealing.

Figura 6 – Algoritmo Simulated Annealing – Fonte: (STÜTZLE, 1998, p. 30)

(13)

 

Os procedimentos existentes realizam as seguintes funções:

Generate Initial Solution – gera uma solução inicial s de forma aleatória, considera-a

como a melhor então conhecida.

Generate_Random_Solution – gera uma solução viável s’ de forma aleatória a partir de s. Accept_Solution – aceita a solução atual de acordo com o critério de Metropolis que

conforme citado anteriormente é uma probabilidade definida como segue:

 

4.3 Algoritmo Genético ( GA – Genetic Algorithm)

(14)

(cruzamentos e mutações) que correspondem às pertubações, a fim de criar uma nova população (HOLLAND, 1975).

Os AGs trabalham unicamente com os valores das funções objetivo, de modo que, claramente percebe-se que esta MH é de uso geral, ou seja, o que muda de uma aplicação para outra é a forma de cálculo da função objetivo e uma adaptação da estrutura de dados conveniente para armazenar as configurações (GOLDBERG, 1989).

Os elementos necessários para construção de um algoritmo genético são:

• escolher a forma de representar os cromossomos (configuração de uma solução viável) • gerar a população inicial (o tamanho da população é um parâmetro de entrada)

• avaliar os “indivíduos” da população [c(S)]

• reproduzir os melhores indivíduos (seleção) (uso de uma “roleta” viciada) • realizar e definir cruzamentos (crossover)

• realizar e definir mutações (perturbações)

A Figura 7 apresenta o algoritmo para a meta-heurística Algoritmo Genético. Os procedimentos existentes realizam as seguintes funções:

Generate Initial Population – gera uma população inicial POP de forma aleatória e calcula

os valores da função objetivo para todos seus elementos.

Local Search (p) – localiza a melhor configuração dentro da população POP e seleciona os

melhores elementos da população, eliminando os piores, redefinindo uma nova população p.

Recombination – recombina os elementos de p através de procedimentos conhecidos como

cruzamentos, gerando uma nova população p’.

Mutation – altera elementos de p através do processo de mutação que corresponde a uma

perturbação, gerando uma nova população p’’.

Local Search (p’, p’’ ) – seleciona os melhores elementos de p’ e p’’, eliminando os

piores, gerando uma nova população p’’’.

Selection ( p, p’’’ ) – seleciona o melhor elemento de p e p’’’, candidato a solução e

(15)

Figura 7 – Algoritmo Genético – Fonte: (STÜTZLE, 1998, p.32)

4.4 GRASP (Greedy Randomized Adaptive Search Procedure)

Combina um método construtivo de busca local com um procedimento iterativo com iterações independentes (FEO & RESENDE, 1995).

A fase construtiva é um processo iterativo também que parte de uma solução “vazia” e acrescenta elementos sem torná-la inviável criando um subconjunto dos elementos que causam menor aumento de custo (aspecto guloso da MH); a seguir seleciona-se aleatoriamente um elemento desse subconjunto, incorporando-o às soluções parciais (PITSOULIS & RESENDE, 2002).

A Figura 8 apresenta o algoritmo para a meta-heurística GARSP. Os procedimentos existentes realizam as seguintes funções:

Construct_Greedy_Randomized_Solution – constrói uma solução para o problema usando

(16)

Local Search (s) – localiza a melhor configuração s’ da vizinhança de s através de um

procedimento de busca local.

Figura 8 – Algoritmo GRASP – Fonte: (STÜTZLE, 1998, p.33)

 

4.5 Outras meta-heurísticas

As meta-heurísticas aqui citadas e não referenciadas são facilmente localizada através de vários artigos e aplicações. STÜTZLE (1998) em seu trabalho descreve algumas delas:

• Colônia de Formigas (ACO – Ant Colony Optimization) • Decomposição (métodos construtivos + relaxação) • Extreme Optimization

• FANS (Fuzzy Adaptive Neighborhood Search) • Busca Local Guiada (GLS – Guided Local Search) • ILS (Iterated Local Search)

(17)

• VNS (Variable Neighborhood Search) e suas variantes VND (Descent), BVNS (Basic), RVNS (Reduced) e GVNS (General).

5 CONCLUSÃO

As meta-heurísticas são ferramentas importantes na resolução de problemas de otimização combinatória, em geral são os métodos que obtêm melhores resultados, com um tempo de execução um pouco mais dilatado que as heurísticas, mas certamente admissível para obter soluções bem aproximadas.

Uma grande dificuldade do uso das MH é sua “calibração”, pois os parâmetros de entrada devem estar bem definidos para que a solução seja obtida em tempo rápido e com boa qualidade.

O uso de programação paralela é um aliado na melhoria da performance das MHs especialmente em relação ao tempo de execução. Diversos trabalhos foram publicados para resolver problemas clássicos de otimização combinatória, parte deles usando paralelismo (VIANA, 1998).

Novas MHs podem ser criadas utilizando novas ideias para balanceamento dos processos de intensificação e diversificação aliados a uma boa estratégia de busca.

Metaheuristics for Combinatorial Optimization Problems

Abstract

(18)

specific algorithms that can be non-polynomial, pseudo-polinomial, approximate and heuristic. Garey & Johnson (1979), in his traditional book "Computer and Intractability", present a long list of problems belonging to this class whose treatment by approximation techniques mentioned produce satisfactory results, not guaranteeing, however, its optimality or if there is better solution. Most of these problems involve the so-called decision problems seeking the existence of a particular structure that satisfies a certain property and optimization problems which seek among these structures which one has a maximum or minimum value for a given evaluation function applied to these elements. In this article is given a formal definition of combinatorial optimization problem and a description of metaheuristics that correspond to one of the main techniques developed to obtain a good solution of this problemin an acceptable time.

Keywords: Combinatorial Optimization. Local Search. Metaheuristics.

Referências

AARTS, E.H.L. and LENSTRA, J. K. Local Search in Combinatorial Optimization. USA: John Wiley & Sons, 1997.

DASGUPTA, S., PAPADIMITRIOU, C. and VAZIRANI, U. Algorithms. McGraw-Hill Higher Education, 2008.

FEO, T.A. and RESENDE, M.G.C. Greedy Randomized Adaptive Search Procedures.

In Journal of Global Optimization, v.6, p.109-133, 1995.

GAREY, M.R. and JOHNSON, D.S. Computers and Intractability: A Guide to the Theory of NP-Completeness, USA: W.H. Freeman and Company, 1979.

GLOVER, F. and KOCHENBERGER, G. Handbook of Metaheuristics. USA: Kluwer Academic Publishers, 2003.

GLOVER, F. and LAGUNA, M.. Tabu Search. London: Kluwer Academic Publishers, 1997. GOLDBERG, D. E. Genetic Algorithms in Search, Optimization, and Machine Learning. USA: Addison-Wesley, 1989.

HOLLAND, J. H. Adaptation in Natural and Artificial Systems. USA: The University of Michigan Press, 1975.

JOHNSON, D.S, ARAGON, C.R., McGEOCH, L.A. and SCHEVON, C. (1987). Optimization

by Simulated Annealing: an Experimental Evaluation. USA: AT&T Bell Laboratories.

(19)

MOREIRA, F.V.C. e VIANA, G.V.R. Técnicas de Divisão e Conquista e de Programação Dinâmica para a Resolução de Problemas de Otimização. Revista Científica da Faculdade

Lourenço Filho, v.8, n.1, p.5-28. Fortaleza: FLF.EDU, 2011.

PITSOULIS, L. and M. G. C. Resende. Greedy Randomized Adaptive Search Procedures

Handbook of Applied Optimization, p.168–181. England: Oxford University Press, 2002.

STÜTZLE, T. G.Local Search Algorithms for Combinatorial Problems: Analysis, Improvements and New Applications. German: Technischen Universität Darmstadt, 1998. VIANA, G. V. R. Meta-heurísticas e Programação Paralela em Otimização Combinatória. Fortaleza: Edições UFC, 1998.

VAZIRANI, V.V. Approximation Algorithms. Berlim: Springer-Verlag, 2011.

WINSTON, W.L. Operations Research: Applications and Algorithms. USA: International Thomson Publishing, 1994.

ZIVIANI, N. Projeto de Algoritmos com implementações em Pascal e C. São Paulo: Editora Thomson, 2007.

Referências

Documentos relacionados

Porém, as narrativas dos diários reflexivos selecionados para essa análise não somente trouxeram a voz do aluno de modo reflexivo para que o professor também possa pensar com

clitaxel, Oxaliplatina, Cisplatina e Carboplatina foi es- tabelecida como critérios de inclusão, devido ao elevado número de estudos encontrados que envolviam esses quimioterápicos

todas as doenças dos centros nervosos: as myélites chronicas, as paralysias, certas doenças cancerosas, etc.; vendo os hospitaes, as casas de saúde cada vez mais repletas

Este trecho mostra claramente que a repressão ao abuso, tornada concreta por análise casuística do juiz, em atenção justamente à finalidade social do direito, à boa-fé e aos

Não se pode portanto concluir por uma relação evidente entre a noção de autonomia destes autores e as teorias liberais (discutidas no caps. 3 e 4), até porque em

Fazendinha, i naquela época o Alceu, elis morava na Concórdia, a mãinha, o pai deli, na época elis era novo, né, elis morava lá, eli num lembra muito bem do primeiro anu Qui eu

Depois de validada a receita, o farmacêutico deve ter o cuidado de esclarecer o utente relativamente ao esquema terapêutico. É fundamental perceber se se trata de um

Para além da quantificação da captação de formaldeído do ar interior, todas as tintas foram sujeitas a testes e ensaios de caracterização simplificados e nas tintas