Upload
internet
View
120
Download
3
Embed Size (px)
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