Sei sulla pagina 1di 32

Heurísticas, metaheurísticas e

algoritmos bio-inspirados

Airton Bordin Junior

[airtonbjunior@gmail.com]

Mestrado em Ciência da Computação Inteligência Computacional Profº Dr Celso Gonçalves Camilo Junior

Universidade Federal de Goiás (UFG) - Instituto de Informática - Março/2017

Inteligência Computacional - Airton Bordin Junior

Programação

Introdução

Heurísticas

Metaheurísticas

Algoritmos bio-inspirados

Referências

Programação • Introdução • Heurísticas • Metaheurísticas • Algoritmos bio-inspirados • Referências 2

Inteligência Computacional - Airton Bordin Junior

Introdução

Podemos classificar os problemas computacionais em 2 grupos [SALIBA, 2010]

Tratáveis, também chamados de polinomiais

Podem ser resolvidos por algoritmos determinísticos.

Intratáveis, ou não polinomiais

determinísticos.  Intratáveis, ou não polinomiais  Sem algoritmo determinístico para resolver o problema

Sem algoritmo determinístico para resolver o problema em tempo hábil.

Tratáveis

Intratáveis

resolver o problema em tempo hábil. Tratáveis Intratáveis • Polinomiais • Algoritmos determinísticos • Não
resolver o problema em tempo hábil. Tratáveis Intratáveis • Polinomiais • Algoritmos determinísticos • Não

Polinomiais Algoritmos determinísticos

Não polinomiais

Algoritmos não determinísticos Solução determinística inviável

Inteligência Computacional - Airton Bordin Junior

Introdução

Computacional - Airton Bordin Junior Introdução • Muitos problemas pertencem a classe dos NP-Difíceis

Muitos problemas pertencem a classe dos NP-Difíceis

Ausencia de solução exata em tempo polinomial.

Solução exata possui resultado ótimo, porém tem tempo proibitivo para entradas não pequenas;

Na dificuldade de encontrar ou calcular a melhor resposta para problemas não polinomiais, partiu-se para outros caminhos que pudessem fornecer uma alternativa. [SALIBA, 2010]

Inteligência Computacional - Airton Bordin Junior

Introdução

[CAPPELLE, 2017]

Inteligência Computacional - Airton Bordin Junior Introdução [CAPPELLE, 2017] 5
Inteligência Computacional - Airton Bordin Junior Introdução [CAPPELLE, 2017] 5

5

Inteligência Computacional - Airton Bordin Junior

Introdução

Computacional - Airton Bordin Junior Introdução Exemplo: Caixeiro Viajante N (entradas) Rotas possíveis
Computacional - Airton Bordin Junior Introdução Exemplo: Caixeiro Viajante N (entradas) Rotas possíveis
Computacional - Airton Bordin Junior Introdução Exemplo: Caixeiro Viajante N (entradas) Rotas possíveis

Exemplo: Caixeiro Viajante

N (entradas)

Rotas possíveis

Tempo processamento

5

12

irrelevante

10

181.440

~3 minutos

11

1.814.400

~30 minutos

15

43.589.145.600

~1,3 anos

20

60.822.550.204.416.000

~19 séculos

25

310.224.200.866.619.719.680.000

~98 bilhões séculos

Exemplo algoritmo Caixeiro Viajante Simétrico ((n-1)!). Considere o cálculo de 1000 rotas por segundo [CORDENONSI, 2008]

Inteligência Computacional - Airton Bordin Junior

Heurística

Derivado do grego heuriskein descobrir

• Derivado do grego heuriskein – descobrir Técnica inspirada em processos intuitivos que procura uma

Técnica inspirada em processos intuitivos que procura uma boa

solução a um custo computacional aceitável, sem, no entanto, estar

capacitada a garantir sua otimalidade, bem como garantir o quão próximo está da solução ótima; [SOUZA, 2008]

o quão próximo está da solução ótima; [SOUZA, 2008] Procedimento algorítmico desenvolvido através de um modelo

Procedimento algorítmico desenvolvido através de um modelo

cognitivo, usualmente através de regras baseadas na experiência

dos desenvolvedores. Normalmente tendem a apresentar um certo grau de conhecimento acerca do comportamento do problema, gerando um número muito menor de soluções. [CORDENONSI, 2008]

de conhecimento acerca do comportamento do problema, gerando um número muito menor de soluções. [CORDENONSI, 2008]

Inteligência Computacional - Airton Bordin Junior

Heurística

Computacional - Airton Bordin Junior Heurística Algoritmos não determinísticos para tratar problemas não

Algoritmos não determinísticos para tratar problemas não polinomiais, com capacidade de tomar decisões

sobre estratégias de busca. Geralmente são usadas

para guiar o processo de busca de soluções para um determinado problema. São algoritmos aproximados

que combinam algoritmos construtivos com estratégias

de busca local, e não garantem a solução ótima, mas frequentemente, encontram boas soluções [HOOS, 2004]

de busca local, e não garantem a solução ótima, mas frequentemente, encontram boas soluções [HOOS, 2004]

Inteligência Computacional - Airton Bordin Junior

Heurística

A ideia de usar heurísticas surgiu da impraticabilidade de encontrar/calcular a melhor resposta para problemas não polinomiais;

Desafio:

tão

produzir,

tempo

reduzido,

soluções

em

polinomiais; • Desafio: tão produzir, tempo reduzido, soluções em próximas quanto possíveis da solução ótima. 9

próximas quanto possíveis da solução ótima.

polinomiais; • Desafio: tão produzir, tempo reduzido, soluções em próximas quanto possíveis da solução ótima. 9

9

Inteligência Computacional - Airton Bordin Junior

Heurística

Computacional - Airton Bordin Junior Heurística • Heurísticas muito eficientes foram desenvolvidas para

Heurísticas muito eficientes foram desenvolvidas para diversos problemas;

Maioria delas é específica para um problema particular,

não aplicáveis (ou não eficientemente aplicáveis) na reoslução de uma classe mais ampla; [SOUZA, 2008]

A partir da década de 1980, intensificaram-se estudos na busca de procedimentos heurísticos de caráter mais

generalista sem prejudicar a flexibilidade.

Inteligência Computacional - Airton Bordin Junior

Metaheurística

Termo introduzido por [GLOVER, 1986];

Procedimentos heurísticos que guiam outras heurísticas;

Procedimentos heurísticos que guiam outras heurísticas; Estratégias inteligentes para projetar ou melhorar
Procedimentos heurísticos que guiam outras heurísticas; Estratégias inteligentes para projetar ou melhorar

Estratégias inteligentes para projetar ou melhorar

procedimentos heurísticos mais gerais com alto

rendimento; [ZAPELINI, 2009]

Algoritmos aproximados que combinam algoritmos

construtivos, estratégias de busca local, estratégias

para escapar de ótimos locais, dentre outras características. São amplamente utilizados em problemas de otimização combinatória. [MILANO, 2004]

dentre outras características. São amplamente utilizados em problemas de otimização combinatória. [MILANO, 2004] 11

Inteligência Computacional - Airton Bordin Junior

Metaheurística

Em linhas gerais, são compostas de estratégias para explorar o espaço de busca usando diferentes técnicas;

De

exploração do espaço de busca por meio de diversas

a

forma

objetiva,

principal

finalidade

é

guiar

a

estratégias

forma objetiva, principal finalidade é guiar a estratégias • Estrutura algoritmica geral que pode ser empregada

Estrutura algoritmica geral que pode ser empregada na resolução de diferentes problemas de otimização com um número reduzido de modificações de adaptação.

Inteligência Computacional - Airton Bordin Junior

Metaheurística

Computacional - Airton Bordin Junior Metaheurística Propriedades e características das metaheurísticas

Propriedades e

características

das

metaheurísticas

[SALIBA, 2010]

Estratégias que guiam o processo de busca;

Exploração eficiente do espaço de busca - soluções ótimas ou quase ótimas;

De simples procedimentos de busca local a complexos processos

de aprendizado;

de busca local a complexos processos de aprendizado; Aproximados e usualmente não determinísticos; Podem

Aproximados e usualmente não determinísticos;

Podem incorporar mecanismos para evitar ficar presos em áreas confinadas do espaço de busca;

Não são específicas para um determinado problema;

Podem usar um conhecimento específico do problema na forma de heurísticas que são controladas por uma estratégia de nível superior.

13

Inteligência Computacional - Airton Bordin Junior

Metaheurística

Algumas exemplo

metaheurísticas

selecionadas

como

• Algumas exemplo metaheurísticas selecionadas como  Busca Tabu , em sua forma atual, por [GLOVER,

Busca Tabu, em sua forma atual, por [GLOVER, 1986];

Grosso modo, permite movimentos de piora da solução podendo

escapar de ótimos locais.

1986];  Grosso modo, permite movimentos de piora da solução podendo escapar de ótimos locais. [SALIBA,

[SALIBA, 2010]

14

Inteligência Computacional - Airton Bordin Junior

Metaheurística

Algumas metaheurísticas selecionadas como exemplo

Iterated Local Search (ILS)

4 componentes básicos [SALIBA, 2010]

Search (ILS)  4 componentes básicos [SALIBA, 2010] 1. Geração da solução inicial - Solução inicial

1. Geração da solução inicial - Solução inicial factível para o

problema é criada, e passa a ser o ponto inicial do processo;

2. Busca local Refina uma determinada solução para encontrar o ótimo local;

3. Perturbação Modificação da solução corrente, guiando para

uma solução intermediária. Deve permitir que o método

explore diferentes soluções no espaço de busca do problema;

4. Critério de aceitação Seleciona as novas soluções e decide em qual delas serão aplicadas as próximas pertubações.

Inteligência Computacional - Airton Bordin Junior

Metaheurística

Algumas exemplo

metaheurísticas

Iterated Local Search (ILS)

selecionadas

como

Metaheurística • Algumas exemplo metaheurísticas  Iterated Local Search (ILS) selecionadas como [SALIBA, 2010] 16

[SALIBA, 2010]

Metaheurística • Algumas exemplo metaheurísticas  Iterated Local Search (ILS) selecionadas como [SALIBA, 2010] 16

16

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Classe

de

meta-heurísticas

que

tem

recebido

• Classe de meta-heurísticas que tem recebido muita atenção nos últimos tempos; [VON ZUBEN, 2005] •

muita atenção nos últimos tempos; [VON ZUBEN, 2005]

Emprega biológicos

metáforas

e

modelos

no

projeto

de

computacionais

de

solução

de

complexos; [VON ZUBEN, 2005]

de

sistemas

ferramentas

problemas

e modelos no projeto de computacionais de solução de complexos; [VON ZUBEN, 2005] de sistemas ferramentas
e modelos no projeto de computacionais de solução de complexos; [VON ZUBEN, 2005] de sistemas ferramentas
e modelos no projeto de computacionais de solução de complexos; [VON ZUBEN, 2005] de sistemas ferramentas

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

- Airton Bordin Junior Algoritmos bio-inspirados • Muitos desses processos biológicos têm um

Muitos desses processos biológicos têm um comportamento otimizado e capacidade de processamento de informação muito grande;

Uso de metáforas

Simplificações são necessárias;

Não necessariamente incluem todos os detalhes do

sistema natural.

 Simplificações são necessárias;  Não necessariamente incluem todos os detalhes do sistema natural. 18
 Simplificações são necessárias;  Não necessariamente incluem todos os detalhes do sistema natural. 18

18

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Algoritmos

evolucionários

[PAPPA, 2013]

Algoritmos

bio-inspirados

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

Algoritmos Genéticos Programação Genética

Evolução Gramatical

Estratégias Evolucionárias Programação Evolucionária

Colônia de Formigas

Enxame de Partículas

MLP Multi-layer Perceptrons RBF- Radio Basis Function Net SOM- Self-Organizing Maps

ARTMap

Seleção Negativa Expansão Clonal Redes

Perceptrons RBF- Radio Basis Function Net SOM- Self-Organizing Maps ARTMap Seleção Negativa Expansão Clonal Redes 19

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Algoritmos evolucionários

Inspirados na teoria de evolução de

Darwin;

Evolução: mudança das características (genéticas) de uma população de uma geração para a próxima

Mutação dos genes; Recombinação dos genes dos pais.

Mutação dos genes;  Recombinação dos genes dos pais. Algoritmos evolucionários Algoritmos bio- inspirados
Mutação dos genes;  Recombinação dos genes dos pais. Algoritmos evolucionários Algoritmos bio- inspirados

Algoritmos

evolucionários

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

20

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

- Airton Bordin Junior Algoritmos bio-inspirados • Algoritmos evolucionários  Evolução é

Algoritmos evolucionários

Evolução é caracterizada basicamente por um processo constituído de 3 passos [VON ZUBEN, 2005]

1. Reprodução com herança genética;

2. Introdução de variação aleatória em uma população de indivíduos;

natural” para a

3. Aplicação

da

“seleção

produção da próxima geração.

Algoritmos

evolucionários

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

21

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Algoritmos evolucionários

[PAPPA, 2013]
[PAPPA, 2013]
bio-inspirados • Algoritmos evolucionários [PAPPA, 2013] Algoritmos evolucionários Algoritmos bio- inspirados

Algoritmos

evolucionários

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

22

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Inteligência coletiva

Junior Algoritmos bio-inspirados • Inteligência coletiva Qualquer tentativa de projetar algoritmos ou técnicas de
Junior Algoritmos bio-inspirados • Inteligência coletiva Qualquer tentativa de projetar algoritmos ou técnicas de

Qualquer tentativa de projetar algoritmos ou técnicas de resolução distribuída de problemas inspirada pelo comportamento coletivo de insetos sociais e outras sociedades animais [BONABEAU, 1999]

Algoritmos evolucionários Inteligência coletiva Algoritmos bio- inspirados Redes Neurais Sistemas Imunológicos
Algoritmos
evolucionários
Inteligência
coletiva
Algoritmos bio-
inspirados
Redes Neurais
Sistemas
Imunológicos

23

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Inteligência coletiva

Origens

Colméias de abelhas;

Colônia de formigas; Voo de pássaros;

Cardume de peixes;

Etc.

 Voo de pássaros;  Cardume de peixes;  Etc. Algoritmos evolucionários Inteligência coletiva
Algoritmos evolucionários Inteligência coletiva Algoritmos bio- inspirados Redes Neurais Sistemas Imunológicos
Algoritmos
evolucionários
Inteligência
coletiva
Algoritmos bio-
inspirados
Redes Neurais
Sistemas
Imunológicos

24

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Inteligência coletiva

Junior Algoritmos bio-inspirados • Inteligência coletiva Algoritmos evolucionários Inteligência coletiva
Junior Algoritmos bio-inspirados • Inteligência coletiva Algoritmos evolucionários Inteligência coletiva
Junior Algoritmos bio-inspirados • Inteligência coletiva Algoritmos evolucionários Inteligência coletiva
Junior Algoritmos bio-inspirados • Inteligência coletiva Algoritmos evolucionários Inteligência coletiva
Junior Algoritmos bio-inspirados • Inteligência coletiva Algoritmos evolucionários Inteligência coletiva
Algoritmos evolucionários Inteligência coletiva Algoritmos bio- inspirados Redes Neurais Sistemas Imunológicos
Algoritmos
evolucionários
Inteligência
coletiva
Algoritmos bio-
inspirados
Redes Neurais
Sistemas
Imunológicos

25

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Redes Neurais

Bordin Junior Algoritmos bio-inspirados • Redes Neurais  Sistemas inspirados nos neurônios biológicos e na

Sistemas inspirados nos neurônios biológicos e na estrutura massivamente paralela do cérebro, com capacidade de adquirir, armazenar e utilizar conhecimento experimental. [CARVALHO, 2006]

e utilizar conhecimento experimental. [CARVALHO, 2006] Algoritmos evolucionários Inteligência
e utilizar conhecimento experimental. [CARVALHO, 2006] Algoritmos evolucionários Inteligência

Algoritmos

evolucionários

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

26

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Redes Neurais

Bordin Junior Algoritmos bio-inspirados • Redes Neurais  Técnicas computacionais que apresentam um modelo

Técnicas computacionais que apresentam um modelo matemático inspirado na estrutura neural de organismos inteligentes e que adquirem conhecimento através da experiência. [CARVALHO, 2006]

conhecimento através da experiência. [CARVALHO, 2006] Algoritmos evolucionários Inteligência

Algoritmos

evolucionários

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

27

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Redes Neurais

Bordin Junior Algoritmos bio-inspirados • Redes Neurais Processador paralelamente distribuído constituído de
Bordin Junior Algoritmos bio-inspirados • Redes Neurais Processador paralelamente distribuído constituído de

Processador paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para uso. [HAYKIN, 2001]

Algoritmos

evolucionários

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

28

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Redes Neurais

Bordin Junior Algoritmos bio-inspirados • Redes Neurais  Devido à similaridade com o cérebro, exibem

Devido à similaridade com o cérebro, exibem características similares ao comportamento

humano [CARVALHO, 2006]

Procura paralela e endereçamento pelo conteúdo;

Aprendizado;

Associação;

Generalização;

Abstração;

Robustez e degradação gradual.

Algoritmos

evolucionários

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

29

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

- Airton Bordin Junior Algoritmos bio-inspirados • Redes Neurais Representação de um neurônio

Redes Neurais

Bordin Junior Algoritmos bio-inspirados • Redes Neurais Representação de um neurônio artificial [CASTRO, 2001]

Representação de um neurônio artificial [CASTRO, 2001]

Algoritmos

evolucionários

Inteligência

coletiva

Redes Neurais

Sistemas

Imunológicos

Algoritmos bio- inspirados
Algoritmos bio-
inspirados

30

Inteligência Computacional - Airton Bordin Junior

Algoritmos bio-inspirados

Sistemas Imunológicos

Junior Algoritmos bio-inspirados • Sistemas Imunológicos Sistema computacional baseado em metáforas do sistema

Sistema computacional baseado em metáforas do sistema imunológico natural; [CASTRO, 2001] do sistema imunológico natural; [CASTRO, 2001]

metáforas do sistema imunológico natural; [CASTRO, 2001] Metodologias de manipulação de dados, classificação,

Metodologias de manipulação de dados, classificação, representação e raciocínio que seguem um paradigma biológico plausível: o sistema imunológico humano. [HUNT, 1998]

Algoritmos evolucionários Inteligência coletiva Algoritmos bio- inspirados Redes Neurais Sistemas Imunológicos
Algoritmos
evolucionários
Inteligência
coletiva
Algoritmos bio-
inspirados
Redes Neurais
Sistemas
Imunológicos

31

Inteligência Computacional - Airton Bordin Junior

Referências

TALBI, E. G. Metaheuristics - From Design To

Implementation

GLOVER, Fred W., Kochenberger, Gary A. Handbook of Metaheuristics

SALIBA Jr, E. Sistema Multiagente Bioinspirado para Otimização Combinatorial

BECCENERI, J. C. Meta-heurísticas e Otimização Combinatória: Aplicações em Problemas Ambientais

CORDENONSI, A.Z. Ambientes, Objetos e Dialogicidade: Uma Estratégia de Ensino Superior em Heurísticas e Metaheurísticas

HOOS, H. H.; STÜTZLE, T. Stochastic Local Search Foundations and Applications

SOUZA, M. J. F. Inteligência Computacional para Otimização

ZAPELINI, C. Z. Um Estudo Abrangente sobre

Metaheurística, incluindo um Histórico

Abrangente sobre Metaheurística, incluindo um Histórico • MILANO, M.; ROLI, A. Magma: A Multiagent Architecture

MILANO, M.; ROLI, A. Magma: A Multiagent

Architecture For Metaheuristics

VON ZUBEN, F. J. Computação Evolutiva

PAPPA, G. L. Conceitos e Aplicações em Aprendizado de Máquina

BONABEAU, E.; DORIGO, M.; THERAULAZ, G.

Swarm intelligence: from natural to artificial systems

HAYKIN, S. Redes Neurais Princípios e práticas

CARVALHO, C.L Redes Neurais Artificiais

CASTRO, L.N. Sistemas Inteligentes E O Sistema

Imunológico

HUNT, J. E., TIMMIS, J., COOKE, D. E., Neal, & King, C. JISYS: The Development of An Artificial Immune System for Real World Applications

CAPPELLE, M.; LONGO, H. Estrutura de Dados

e Projeto de Algoritmos

32