Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná

Preview:

Citation preview

Metaheurísticas

Prof. Aurora Pozo

Departamento de Informática

Universidade Federal do Paraná

Solução de Problemas por Busca

Busca em Espaço de Estados

Métodos de Busca

Enxergam o problema a ser resolvido como um conjunto de informações a partir das quais algo deverá ser extraído ou inferido;

O processo de solução corresponde a uma seqüência de ações que levam a um desempenho desejado ou melhoram o desempenho relativo de soluções candidatas;

Resolução de Problemas A maioria dos problemas interessantes do ponto

de vista da IA, não dispõe de soluções algorítmicas, ou quando tem são complexas de serem implementadas (exemplo: jogos).

As características deste tipo de problemas são: São resolvidos pôr seres humanos. A complexidade é variável ( simples como o jogo da

velha, e complexo como xadrez). São problemas de conhecimento total, tudo o que é

necessário saber para solucioná-los é conhecido. A solução é uma seqüência de situações.

Frente a falta de solução algorítmica viável, o único método de solução possível é a busca.

Definição busca, como uma seqüência de movimentos que levam de um estado inicial a um estado final.

A definição do problema como uma busca no espaço de estados forma a base de muitos métodos usados na solução de problemas em IA, ( isto é chamado de Resolução de Problemas através da Busca).

Resolução de Problemas

Exemplo: Romania

Em ferias na Romania; atualmente em Arad. Os vôos saem desde Bucharest Formular objetivo:

Estar em Bucharest Formular o problema:

estados: varias cidades ações: dirigir até Bucharest

Encontrar uma solução: Seqüências de cidades, exemplo, Arad, Sibiu,

Fagaras, Bucharest

Exemplo: Romania

Formulação de problemas de estados

O problema é definido por 4 items:

1. Estado inicial , “em Arad"2. ações ou função sucessor S(x) = conjunto de pares de ação–

estado S(Arad) = {<Arad Zerind, Zerind>, … }

3. Teste de objetvo, pode ser explicito, x = “em Bucharest" implicito, Checkmate(x)

4. Custo do caminho (aditivo) soma das distâncias, numero de ações executadas, etc. c(x,a,y) é o custo do passo, assume ≥ 0

A solução é uma seqüência de ações que levam do estado inicial ao estado objetivo

Busca sem Informação

Para determinar a estratégia de busca, são avaliados 4 critérios: Algoritmo Completo: a estratégia garante encontra

a solução se a mesma existe ? Algoritmo Admissível (otimização): a estratégia

encontra a solução ótima, em caso de existir várias soluções ?

Complexidade Espacial: quanta memória (número de nós gerados) é necessária para efetuar a busca ?

Complexidade Temporal: quanto tempo (número de nós gerados) é necessário para encontrar a solução ?

Algoritmos de Busca em Arvores

Idéia Básica: offline, exploração de um espaço de estados

gerando sucessores (expandir estados)

Exemplo de Busca em Arvore

Exemplo de Busca em Arvore

Exemplo de Busca em Arvore

Estrategias de Busca

Uma estratégia de busca define a ordem de expansão dos nodos

As estratégias são avaliadas nas seguintes dimensões: completitude: ela encontra a solução se ela existe?? Complexidade tempo: numero de nodos gerados Complexidade Espaço: numero maximo de nodos em memória Otimalidade: ela encontra a solução de menor custo??

Complexidade de Tempo são medidas em termos de b: fator de ramificação da arvore de busca d: profundidade da solução de menor custo m: profundidade máxima do espaço de estado (pode ser ∞)

Estratégias de Busca Cegas

Estratégias de Busca Cegas usam somente a informação disponíveis na definição do problema

Breadth-first (largura, amplitude) Uniform-cost (cuto uniforme) Depth-first search (profundidade) Depth-limited search (profundidade

limitada) Iterative deepening (profundidade iterativa)

Breadth-first

Expansão por níveis

Breadth-first

Breadth-first

Breadth-first

Propriedades breadth-first

Completa? Sim (se b é finito) Tempo? 1+b+b2+b3+… +bd + b(bd-1) =

O(bd+1) Espaço? O(bd+1) (mantém cada nodo em

memória) Ótimo? Sim (Se custo = 1 por operador)

Espaço é o problema maior (mais que tempo)

Busca de Custo Uniforme

Expande o nodo de menor custo Equivalente a breadth-first se o custo dos

operadores forem iguais Completo? Sim, se o custo do operador ≥ ε Tempo? # de nodos com g ≤ custo da

solução ótima, O(bceiling(C*/ ε)) onde C* é o custo da solução ótima

Espaço? # de nodos com g ≤ custo da solução ótima, O(bceiling(C*/ ε))

Ótima? Sim – nodos expandidos em ordem crescente de g(n)

Depth-first

Expande o nodo mais profundo

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Depth-first

Propriedades de depth-first

Completa? Não: Em espaço infinitos falha

Tempo? O(bm): terrível se m is é maior que d Mais se existem varias soluções pode ser

mais rápida que breadth-first Espaço? O(bm), espaço linear! Ótima? Não

Problema do Caixeiro Viajante

Dado um conjunto de cidades e uma matriz de distâncias entre elas

PCV consiste em encontrar uma rota para um Caixeiro Viajante tal que este:

parta de uma cidade origem passe por todas as demais cidades uma única vez retorne à cidade origem ao final do percurso percorra a menor distância possível

Rota conhecida como ciclo hamiltoniano

PCV

Dados de entrada: Cidades: Conjunto de cidades dij = distância entre as cidades i e j

Variáveis de decisão: xij = 1 se a aresta (i,j) será usada; 0, caso contrário

fij = quantidade de fluxo de i para j

Função objetivo:

min ∑i∈Cidades

∑j∈Cidades

d ij xij

PCV

Cid. 1 2 3 4 5 6

1 0 2 1 4 9 1

2 2 0 5 9 7 2

3 1 5 0 3 8 6

4 4 9 3 0 2 6

5 9 7 8 2 0 2

6 1 2 6 6 2 0

Recommended