Sistemas Baseados em Conhecimento

Documentos relacionados
a) Defina em Prolog iguais/1, um predicado que recebe um estado do jogo e que verifica que todas as pilhas têm o mesmo número de peças.

INTELIGÊNCIA ARTIFICIAL 2008/09

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

LERCI/LEIC TAGUSPARK INTELIGÊNCIA ARTIFICIAL 2005/06 PROCURA

Estruturas de Dados Grafos

Inteligência Artificial Alameda e Taguspark

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas)

Jogos. Geralmente o oponente tentará, na medida do possível, fazer o movimento menos benéfico para o adversário.

Inteligência Artificial

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

Técnicas para Implementação de Jogos

INTELIGÊNCIA ARTIFICIAL 2008/09

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

Métodos de Busca: Busca sem Informação. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Técnicas Inteligência Artificial

Inteligência Artificial 2008/09 E z D

Buscas Informadas ou Heurísticas - Parte II

Inteligência Artificial Alameda e Taguspark

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Busca Cega (Exaustiva) e Heurística. Busca Aula 2

Técnicas Inteligência Artificial

Inteligência Artificial. 3º Quadrimestre de 2018

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Árvore de Jogos Minimax e Poda Alfa-Beta

EXPLORANDO GRAFOS 1. Grafos e Jogos uma introdução

Fundamentos de Inteligência Artificial [5COP099]

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

SISTEMAS INTELIGENTES 1 PROF. TACLA/UTFPR/CPGEI-PPGCA

Jogos com Oponentes. March 7, 2018

Busca em Espaço de Estados a

Sistemas Inteligentes Lista de Exercícios sobre Busca e Agentes Inteligentes

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33

Árvores: conceitos gerais e representações

Inteligência Artificial

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Inteligência Artificial

Inteligência Artificial Taguspark

Árvores Conceitos gerais

PROCURA E PLANEAMENTO

Sumário. Decisões óptimas em jogos (minimax) Cortes α-β Decisões imperfeitas em tempo real

RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA (PARTE 1) *Capítulo 3 (Russel & Norvig)

Árvores-B (Parte IV) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Ordem. Árvores-B (Parte IV) Número mínimo de chaves por página. Definição formal das Propriedades de árvores-b /30 1

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Inteligência Artificial

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira

INF1010 Lista de Exercícios 2

INTELIGÊNCIA ARTIFICIAL

Optimização em Redes e Não Linear

Inteligência Computacional

lnteligência Artificial

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Introdução à Inteligência Artificial. Procura em contextos competitivos jogos (cont.)

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

Exercícios de Procura e Planeamento 2013/2014

INTELIGÊNCIA ARTIFICIAL

Árvores. Algoritmos e Estruturas de Dados I. José Augusto Baranauskas Departamento de Física e Matemática FFCLRP-USP

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Estrutura de Dados: Aula 3 - Linguagem C

Trabalho 1: Caminho mais curto entre duas cidades. Discentes: Ricardo Seromenho a23842 Rui Dias a24254

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Inteligência Artificial Projecto 2

Alguns Exercícios de Inteligência Artificial

Jogos em Teoria dos Jogos e em

Teoria dos Grafos Aula 6

PROCURA E PLANEAMENTO

Algoritmos de retrocesso

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Relatório de Inteligência Artificial

Buscando um Invariante

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Inteligência Artificial

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

Algoritmos de retrocesso

2284-ELE/5, 3316-IE/3

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

PROCURA E PLANEAMENTO

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

Investigação Operacional

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

UNIVERSIDADE DA BEIRA INTERIOR

Teoria dos Grafos. Árvores

PCS Inteligência Artificial

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Inteligência Artificial - IA

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

CIC 111 Análise e Projeto de Algoritmos II

Tópicos Especiais: Inteligência Artificial BUSCA COM INFORMAÇÃO E EXPLORAÇÃO

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Transcrição:

Departamento de Informática Faculdade de Ciências Universidade de Lisboa Sistemas Baseados em Conhecimento Primeiro Teste 24 de Abril de 2008 Nome Completo: Nº Aluno: Licenciatura: com consulta 1 hora e 30 minutos Responda às perguntas nesta própria folha, nos espaços indicados. (I) (7 valores) 1. Considere uma das variantes do jogo do Nim para dois jogadores em que temos inicialmente uma pilha de 7 fósforos, e uma jogada consiste em dividir uma das pilhas em duas pilhas não vazias e diferentes. Por exemplo, o primeiro jogador, pode dividir a pilha única de 7 em duas pilhas de 1 e de 6, ou de 2 e de 5, ou de 3 e de 4, mas não pode dividi-la em duas de 3 fósforos. No caso da primeiro jogador ter dividido a pilha inicial em duas de 3 e de 4, o segundo jogador pode dividir a de 3 em duas: [1,2], ou a de 4 em duas: [1,3] e assim por diante. O jogador ganha quando o adversário não puder dividir nenhuma das pilhas, ou seja quando só existirem pilhas de 1 e de 2 fósforos. a) Construa a árvore de pesquisa {Dica: Se construir o grafo do espaço de estados e não a árvore poupa espaço.}. A ordem das pilhas não é importante, senão teríamos uma árvore muito mais extensa e redundante. b) Defina uma função de utilidade para os estados terminais. Derrota = -1 e vitória = +1. Não há empates. 1/1

c) Aplique o algoritmo minimax. Resolva esta alínea na fig. da alínea a. d) Será que existe uma estratégia vencedora para o primeiro jogador? O valor da raiz é -1, que corresponde a uma derrota, o que quer dizer que não há estratégia vencedora. 2. Considere a árvore de jogo na figura seguinte onde A-F representam alguns valores reais. Assuma que os nós são explorados da esquerda para a direita e que utilizamos o algoritmo alfa-beta a) Atribua um valor a A de tal modo que B seja cortado. Justifique. Se A tiver um valor maior ou igual a 5, não precisaremos de continuar a avaliar os nós irmãos, porque vai haver um corte. Quando o nó antecessor de A invoca o alfabeta sobre o seu primeiro sucessor (A) ele tem alfa=- e beta=5. Após a avaliação da folha A (por exemplo 5) alfa é actualizado e fica com o valor 5. Como alfa é maior ou igual a beta então corta! 2/2

b) Supondo que as folhas com o valor 5 e 0 poderiam ser alteradas, existiria alguma maneira de cortar o nó A? Não! Porque antes de avaliar A o nó antecessor tem alfa=- e não há maneira (independentemente do valor de beta, que é igual ao menor valor das duas folhas mais à esquerda) desse alfa ser maior do que qualquer beta, - é o menor valor possível. c) Existem valores para A e B de modo a que a subárvore que contém C e D seja podada? Justifique. Não! Por razões semelhantes às invocadas em cima. Quando o nó antecessor da subárvore que contém C e D começa a executar o algoritmo de alfa e beta, tem alfa=min(max(5,0),max(a,b)) e beta=+ e não há maneira do alfa (qualquer que seja o seu valor) de ser maior do que +, para qualquer A ou B. d) Sendo A=B=5, dê valores a C e a D de modo a que a subárvore que contem E e F seja podada. Justifique. Se A e B forem 5, então quando vamos avaliar o nó raiz da subárvore binária que contém C e D, teremos alfa=5 e beta=+. Se C e D forem inferiores ou iguais a 5, isso quer dizer que o antecessor de C e D vai terá alfa=5 e beta=5 e teremos um corte na subárvore de E e F, porque alfa maior ou igual a beta. É o que acontece quando C=D=5, por exemplo. e) Tendo a possibilidade de escolher os valores dos nós de A-F, qual o máximo número de folhas que é possível podar? Justifique. Só podemos podar 3 folhas. Já vimos que não podemos podar C e D. Não podemos podar nunca as duas primeiras folhas (a contar da esquerda) porque beta é sempre igual a +. Não podemos podar A porque alfa=-, quando o vamos avaliar e alfa não pode ser maior do que beta. Já vimos que podemos podar E e F e B. 3/3

(II) (7) Uma parte de um bosque de um parque florestal precisava de ser desbastada, para reflorestamento. Inicialmente existiam 49 abetos dispostos numa matriz de 7 por 7, como mostra a figura, quando os lenhadores acabaram o seu trabalho, tinham removido 29 árvores e conseguiram deixar 20, que ficaram dispostas em 18 linhas com 4 árvores cada! Como fizeram isto? O objectivo é procurar a solução do problema do reflorestamento (descrito em cima) utilizando o Paradigma de Espaço de Estados. a) Defina uma representação para os estados. Uma maneira de representar pode ser um tuplo com a lista de árvores desbastadas, uma lista de árvores por desbastar, o número dessa lista e o número de linhas de tamanho 4 que existem. Uma árvore desbastada é um ponto com as coordenadas da árvore (linha+coluna, ordem de cima para baixo e da esquerda para a direita). b) Como são os estados iniciais e finais? O estado inicial é um triplo com (0,[],[(1,1),(1,2), (7,7)],0). O estado final tem como primeiro elemento do tuplo, 29 e como último 18, no meio tem uma lista de 29 árvores desbastadas e outra com vinte por desbastar. 4/4

c) O que são os operadores? Um operador consiste em ir buscar uma árvore ainda não desbastada, à terceira lista e colocá-la na lista das árvores desbastadas. É preciso incrementar o primeiro elemento do tuplo e actualizar o número de linhas com 4 árvores. d) Que algoritmo de pesquisa acha mais adequado para o resolver? Porquê? A pesquisa em profundidade é uma boa opção no caso de querermos utilizar uma pesquisa cega. Não queremos optimizar, não há a hipótese de termos ciclos, os estados finais estão todos à mesma profundidade. (Pelas razões inversas, tanto a largura como o aprofundamento progressivo, seriam uma hipótese pouco razoável). Poderíamos optimizar a profundidade se tivéssemos operadores que atinjam becos sem saída quando já não é possível atingir uma solução. (explicado em baixo). Uma boa solução seria o trepa-colinas (desce-gradiente) em que escolheríamos o sucessor com menor valor heurístico. Isso depende da heurística mas seria um caso a explorar. (discutem-se as heurísticas em e) e) Pense numa heurística e discuta a sua admissibilidade. Podemos contar o número de linhas com 4 árvores que ficaram por desbastar e fazer a diferença entre o número 18 e esse valor. A heurística terá o valor 0 no objectivo. Não convém que a heurística seja menor do que zero, por isso se houver mais do que 18 linhas com 4 árvores e ainda árvores por debastar das 29, então daremos uma punição a esse estado, (obtendo por exemplo o seu simétrico). Convém que tenha um valor muito alto no caso de não podermos satisfazer o objectivo. Basta pensar que já não temos 18 linhas com mais de 4 árvores. Devemos dar um valor muito alto (o mais alto possível) a esses estados. A admissibilidade não faz sentido aqui porque a distancia para o objectivo é sempre conhecida. Nós sabemos logo que vamos cortar 29 árvores e sabemos quantas já cortámos. 5/5

(III) (6,5 valores) 1. Considere o espaço de estados apresentado na figura em baixo, em que S é o estado inicial e G 1 ou G 2 são os estados finais; os arcos apresentam os custos dos operadores de transição entre estados e em que associados aos estados temos os valores heurísticos respectivos. Para cada um dos algoritmos listados nas alíneas a seguir, indique qual o objectivo alcançado, o caminho solução e a sequência de estados visitados. a) Largura, com memoria de visitados. Evolução da Largura: ((0 S)) (S) não é solução e remove-se, adiciona-se dois novos caminhos sucessores de (S). A e C ainda não expandidos. ((2 A S) (3 C S)) (A S) não é solução e remove-se, adiciona-se dois novos caminhos sucessores de (A S). ((3 C S) (B A S) (E A S)) (A S) não é solução e remove-se, adiciona-se no fim dois novos caminhos sucessores de (A S). D e G 2 não tinham sido visitados. ((B A S) (E A S) (D C S) (G 2 C S)) (B A S) não é solução e remove-se, C e D já tinham sido visitados, mas não G 1. ((E A S) (D C S) (G 2 C S) (G 1 B A S)) (E A S) não é solução e remove-se, E não tem sucessores ainda não visitados. ((D C S) (G 2 C S) (G 1 B A S)) (D C S) não é solução e remove-se, D não tem sucessores ainda não visitados. ((G 2 C S) (G 1 B A S)) (G 2 C S) é solução! O Caminho solução (com menos operadores) é S C G 2 A sequência de visitados é S A C B E D G 2 G 1 O objectivo atingido foi G 2 6/6

b) Aprofundamento progressivo. Nível 1 ((S)) (S) não é solução, retiramos e não tem sucessores porque chegámos ao limite da pesquisa () Nível 2: ((S)) (S) não é solução, é retirado e temos dois sucessores: A e C ((A S) (C S)) (A S) não é solução, retiramos e não tem sucessores porque chegámos ao limite da pesquisa ((C S)) (C S) não é solução, retiramos e não tem sucessores porque chegámos ao limite da pesquisa () Nível 3 ((S)) (S) não é solução, é retirado e temos dois sucessores: A e C ((A S) (C S)) (A S) não é solução, retiramos e como A tem 2 sucessores colocamos à cabeça dois novos caminhos ((B A S) (E A S) (C S)) (B A S) não é solução, retiramos e não tem sucessores porque chegámos ao limite da pesquisa ((E A S) (C S)) (C A S) não é solução, retiramos e não tem sucessores porque chegámos ao limite da pesquisa ((C S)) (C S) não é solução, retiramos e como C tem 2 sucessores colocamos à cabeça dois novos caminhos ((D C S) (G 2 C S)) (D C S) não é solução, retiramos e não tem sucessores porque chegámos ao limite da pesquisa ((G 2 C S)) (G 2 C S) não é solução! Objectivo atingido G 2 Caminho Solução: S C G 2 Sequência de visitados: S S A C S A C B E D G 2 c) Custo Uniforme com programação dinâmica. ((S)) (S) não é solução e remove-se, adiciona-se no fim dois novos caminhos sucessores de (S). A e C não tinham sido visitados. S é adicionado à lista de expandidos ((A S) (C S)) (A S) não é solução e remove-se, adiciona-se no fim dois novos caminhos sucessores de (A S). B e E não tinham sido expandidos. A é adicionado à lista de expandidos. ((3 C S) (3 B A S) (10 E A S)) (3 B A S) não é solução (igual valor que (3 C S), mas ganha no critério de desempate) e remove-se, adicionase no fim dois novos caminhos sucessores de (A S). C e D e G 1 não tinham sido expandidos. B é adicionado à lista de expandidos. (3 C B S) não é adicionado porque não é mais curto do que outro caminho que acaba em C: (3 C S). ((10 E A S) (4 D B A S) (3 C S) (7 G 1 B A S)) (3 C S) não é solução e remove-se, D e G 2 não tinham sido expandidos, mas (4 D C S) não é mais curto do que o caminho já existente que acaba em D. C é expandido! ((10 E A S) (4 D B A S) (8 G 2 C S) (7 G 1 B A S)) (4 D B A S) não é solução e remove-se, D tem como sucessores os dois objectivos que não foram expandidos claro. (9 G 1 D B A S) não é melhor do que o caminho que temos para o primeiro objectivo mas (6 G 2 D B A S) é ((10 E A S) (6 G 2 D B A S) (7 G 1 B A S)) (6 G 2 D B A S) é solução! O Caminho solução óptimo é S A B D G 2 A sequência de visitados é S A C B E D G 1 G 2 G 2 O objectivo atingido foi G 2 7/7

2. Quantos nós serão visitados se, para o grafo seguinte, ao procurarmos um caminho entre I e F, aplicarmos o A* com programação dinâmica? E qual o caminho solução? Suponha em que todos os nós estão ligados através das distâncias em linha recta excepto os arcos em zigzag que ligam ao estado final F. Todos os arcos que não ligam a F estão desenhados à escala e todos os arcos que ligam a F têm o mesmo comprimento (100 vezes maiores do que o maior dos outros). A heurística é a distancia em linha recta até F. F I Todos os nós são visitados até chegarmos a F expandindo qualquer o nó com menor valor de custo+heurística, porque os nós em cada nível têm os mesmos sucessores sempre. Até atingirmos F todos os nós terão sido visitados pelo menos uma vez. Os 18 estados foram visitados pelo menos uma vez. O caminho solução será: F I Podemos escolher qualquer dos dois arcos zigzag entre o antecessor de F a laranja e F. O facto de a heurística ser admissível não garante a solução óptima mas neste caso acontece. Quando chegamos a F pelo caminho mais curto só colocamos 1 caminho por causa da Programação Dinâmica como estamos perante dois arcos de 100, a escolha é arbitrária. Apesar de já termos chegado a F, teremos ainda de expandir todos os nós que não tinham ainda sido expandidos, devido à diferença de distâncias dos caminhos zigzag face aos outros. Mas, quando expandirmos o nó antecessor de F que não está a laranja ele vai-nos dar piores caminhos para F que não serão adicionados. Ficaremos assim com um único caminho que acaba em F e que é óptimo. 8/8