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) = {, … } 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
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
Propriedades breadth-first Completa? Sim (se b é finito) Tempo? 1+b+b 2 +b 3 +… +b d + b(b d -1) = O(b d+1 ) Espaço? O(b d+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(b ceiling(C*/ ε) ) onde C * é o custo da solução ótima Espaço? # de nodos com g custo da solução ótima, O(b ceiling(C*/ ε) ) Ótima? Sim – nodos expandidos em ordem crescente de g(n)
Depth-first Expande o nodo mais profundo
Depth-first
Propriedades de depth-first Completa? Não: Em espaço infinitos falha Tempo? O(b m ): 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 d ij = distância entre as cidades i e j Variáveis de decisão: x ij = 1 se a aresta (i,j) será usada; 0, caso contrário f ij = quantidade de fluxo de i para j Função objetivo:
PCV Cid