Inteligência Artificial Taguspark

Documentos relacionados
Inteligência Artificial Alameda e Taguspark

Inteligência Artificial Alameda e Taguspark

Inteligência Artificial

Inteligência Artificial

INTELIGÊNCIA ARTIFICIAL

INTELIGÊNCIA ARTIFICIAL 2008/09

INTELIGÊNCIA ARTIFICIAL

INTELIGÊNCIA ARTIFICIAL 2008/09

PROCURA E PLANEAMENTO

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

PROCURA E PLANEAMENTO

INTELIGÊNCIA ARTIFICIAL

INTELIGÊNCIA ARTIFICIAL

Inteligência Artificial

INTELIGÊNCIA ARTIFICIAL

Inteligência Artificial

Exercícios da cadeira de Inteligência Artificial. Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos

Inteligência Artificial

Inteligência Artificial

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

Alternativamente pode ser pensado como uma forma de maximizar o minimo ganho possível.

Inteligência Artificial Alameda e Taguspark

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

Exercícios de Procura e Planeamento 2013/2014

Fundamentos de Programação

Inteligência Artificial Taguspark

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

Inteligência Artificial

Algoritmos de retrocesso

Fundamentos da Programação

Técnicas para Implementação de Jogos

Modelação Geométrica e Visualização de Edifícios 2007/2008

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

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

Enunciados dos Exercícios Cap. 2 Russell & Norvig

Problemas de Fluxo em Redes

Jogo de Damas. Alunos: Sávio Mendes de Figueiredo Sômulo Nogueira Mafra

Inteligência Artificial Alameda e Taguspark

Resolução de 8-Puzzle com A* em LISP

Árvore de Jogos Minimax e Poda Alfa-Beta

Inteligência Artificial

Introdução à Inteligência Artificial 2007/08

Exame de 1ª Época Introdução à Programação IGE e ETI 2003/02/25-1º semestre de 2002/2003 ISCTE

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

Inteligência Artificial Projecto 1

CAPÍTULO 4. Teoria da Dualidade

Teoria de Jogos. Algoritmo Minimax e Alfa-Beta AED

Sistemas Baseados em Conhecimento

Investigação Operacional

Agentes Inteligentes. Capítulo 2

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.

Estratégias de Busca: Métodos Informados. March 9, 2015

Agentes de Procura Procura Estocástica. Capítulo 3: Costa, E. e Simões, A. (2008). Inteligência Artificial Fundamentos e Aplicações, 2.ª edição, FCA.

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

Métodos de Busca Informada (best first search) Capítulo 4 Parte I

Agentes Inteligentes. Capítulo 2

lnteligência Artificial

Fundamentos de Programação

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

Common-Lisp (introdutório).

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

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

Simplex. Investigação Operacional José António Oliveira Simplex

Sistemas Inteligentes / Inteligência Artificial, Outros Métodos de Procura

Transcrição:

Inteligência Artificial Taguspark Repescagem do Primeiro Teste 22 de Julho de 2006 9H00-10H30 Nome: Número: Este teste tem 7 perguntas e 12 páginas. Escreva o número em todas as páginas. Deve ter na mesa apenas o enunciado do teste, canetas ou lápis e a sua identificação. Pode utilizar o verso das folhas como rascunho. Para responder às perguntas de escolha múltipla deve assinalar as suas respostas nesta página. Para estas perguntas é dada uma cotação negativa no caso de a resposta estar errada: se existirem n alternativas e a cotação for c, então respostas erradas contribuem negativamente para a classificação final com c/(n- 1). Pergunta Resposta 1 A B C D E F 2 A B C D E F 3 ------- 4.1 A B C D E F G H 4.2 A B C D E F G H 4.3 A B C D E F G H 4.4 A B C D E F G H 4.5 A B C D E F G H 5 ------- 6 A B C D E F G H 1

1. (2.0) Considere o seguinte código definido em Common Lisp: > (defun fn-closure () (let ((x 0)) # (lambda (y z) (incf x (+ (* 2 y) z)) x))) > (setf my-fn (fn-closure)) Qual o resultado de avaliar sequencialmente (funcall my-fn 2 1) e (funcall my-fn 1 3)? A) 5 e 5 B) 0 e 0 C) 4 e 8 D) 8 e 4 E) 7 e 9 F) 5 e 10 2

2. (2.0) Considere a seguinte função definida em Common Lisp: > (defun fn-iterativa (x y) (defun aux (y z) (if (null y) z (aux (rest y) (cons (- x (first y)) z)))) (aux y ())) Qual o resultado de avaliar (fn-iterativa 3 (-2 3 1)) e (fniterativa -2 (4 2 8))? A) (-2 0-5) e (10 4 6) B) (-2 3 1) e (4 2 8) C)(2 0 5) e (-10-4 -6) D) 2 e 14 E) () e () F)(2 0 5) e (10 4 6) 3

3. (2.5) Com a chegada do verão, foi desenvolvido um robot para matar melgas. No entanto, este robot precisa ser devidamente programado, razão pela qual se solicita que demonstre os seus conhecimentos adquiridos na cadeira de IA. Ao ligar-se o robot, este encontra-se num dos cantos do quarto, na posição (0. 0) (as posições são representadas por pares de inteiros não negativos), e a melga numa posição desconhecida. O quarto onde se desenrola a acção pode ser modelado como um quadrado com N linhas e N colunas. O agente MataMelga dispõe de alguns sensores que lhe vão permitir detectar a posição da melga de forma a proceder a sua eliminação. O primeiro sensor serve para identificar o zumbido da melga. Dada a percepção p, (percepcao zumbido? p) é T ou NIL consoante a melga esteja a voar (e produzir o zumbido) ou não. Estando a melga a voar, o agente MataMelga pode utilizar um segundo sensor que, embora bastante grosseiro, lhe permite distinguir, de entre as quatro orientações possíveis (aumentar ou diminuir a linha ou a coluna da posição actual), uma das orientações mais importantes para levar o agente para uma posição mais próxima da posição em que está a melga naquele instante. Por exemplo, se o agente estiver na posição (2. 2) e se a melga estiver na posição (0. 5), dada a percepção p, (percepcao orientacao p) retorna o par (0. 1). Nota: Admita que se a melga está a voar, nunca passa pela posição onde está o agente e que se alterar a sua posição, a nova posição é uma posição adjacente. Um terceiro sensor permite verificar se, estando o agente numa posição junto a uma parede, a melga está ou não pousada na parede nessa posição ou numa posição adjacente. Nessas circunstâncias, dada a percepção p, (percepcao melga a vista? p) é T e o agente pode aplicar-lhe uma palmada, que em 34% dos casos elimina a melga. No entanto, nos restantes 66% dos casos, a palmada põe a melga a voar. Se a melga não estiver na posição do agente ou nas posições adjacentes, o valor correspondente é NIL. Um quarto sensor permite identificar as situações em que se matou a melga ao aplicar uma palmada à melga. Se a tiver matado, dada a percepção p, (percepcao matou? p) é T. Caso contrário, o valor correspondente é NIL. Para simplificar a codificação do agente, acrescentou-se um quinto sensor que retorna uma lista de orientações que identificam as paredes junto à posição do agente, se as houver. Cada parede é identificada pela orientação (tal como descrita acima) em que é necessário caminhar para a atingir. Por exemplo, se o agente estiver na posição (0. 0), dada a percepção p, (percepcao paredes 4

p) retorna as paredes (0. -1) e (-1. 0). Se o agente estiver na posição (0. 2) e admitindo que N>2, o sensor retornaria apenas a parede (-1. 0). O agente pode executar alternativamente as seguintes acções: acção (1. 0), acção (-1. 0), acção (0. 1), acção (0. -1)), acção PALMADA e acção DORMIR. As quatro primeiras acções têm como efeito mudar a posição do agente para a posição adjacente mais próxima da respectiva parede, a acção PALMADA tenta matar a melga e a acção DORMIR desliga o agente. Se a certa altura o agente deixou de ouvir a melga, deve dirigir-se à posição da parede que está na direcção em que ouviu a melga pela última vez e começar por procurá-la a partir dessa posição. a) (0.5) Descreva o tipo percepcao que representa a percepção do agente MataMelga. (defstruct percepcao zumbido? orientacao melga a vista? matou? paredes) 5

b) (2.0) Defina uma função que não recebe argumentos e implementa o agente. ;implementação do matamelga que quando chega à parede na direcção em ;que ouviu o último zumbido, procura melga percorrendo as paredes no ;sentido anti horário. (defun matamelga (&aux ultima orientacao) #'(lambda (p) (cond ((percepcao zumbido? p) (setf ultima orientacao (percepcao orientacao p))) ((not (percepcao paredes p)) ultima orientacao) ((percepcao matou? p) 'DORMIR) ((percepcao melga a vista? p) 'PALMADA) (t (when (parede? (percepcao paredes p) ultima orientacao) (setf ultima orientacao (proxima orientacao ultima orientacao))) ultima orientacao))))) (defun orientacao= (o1 o2) (equal o1 o2)) (defun parede? (paredes parede) "Verifica se parede pertence a paredes" (member parede paredes :test #'equal)) (defun proxima orientacao (orientacao) (second (member orientacao '((0. 1) ( 1. 0) (0. 1) (1. 0) (0. 1)) :test #'equal))) 6

4. (7.5) Considere o seguinte espaço de estados com os estados de A a N, representado na figura a seguir: A4 4 3 B3 C2 3 3 1 1 D3 E0 F1 G1 3 3 3 1 1 1 H3 I3 J3 L2 M1 N0 Os estados são representados por um círculo com o seu nome e um número, que corresponde à função de avaliação heurística do estado. Os números nos arcos que ligam dois estados representam os custos das transições entre os dois estados. O problema que estamos a considerar tem como estado inicial o estado A e estados objectivo os estados E e N. Considere que os sucessores de um nó são gerados pela ordem alfabética dos estados (por exemplo, o primeiro sucessor de F é o nó J e não o nó L) e que em caso de empate na ordem de colocação de nós na fila de nós por tratar vigora a ordem alfabética. 4.1 (1.5) Considere a procura em largura primeiro e escolha a única opção correcta: A) Quando é encontrada a solução, há exactamente 2 nós na fila de B) Quando é encontrada a solução, há exactamente 3 nós na fila de C) Quando é encontrada a solução, há exactamente 4 nós na fila de D) Quando é encontrada a solução, há exactamente 5 nós na fila de E) Quando é encontrada a solução, há exactamente 6 nós na fila de F) Quando é encontrada a solução, há exactamente 7 nós na fila de G) Quando é encontrada a solução, há exactamente 8 nós na fila de H) Quando é encontrada a solução, há exactamente 9 nós na fila de 7

A4 4 3 B3 C2 3 3 1 1 D3 E0 F1 G1 3 3 3 1 1 1 H3 I3 J3 L2 M1 N0 4.2. (1.5) Considere a procura em profundidade primeiro e escolha a única opção correcta: A) A procura entra em ciclo. B) O nó H é gerado antes do nó E. C) Os nós F e G são gerados. D) Os nós H e C são gerados. E) Os nós C e F são gerados. F) Os nós C e J são gerados. G) Os nós E e N são gerados. H) Os nós B e G são gerados. 4.3. (1.5) Considere a procura em profundidade limitada com limite 2 e escolha a única opção correcta: A) Não são testados como soluções quaisquer nós. B) É testado como solução exactamente 1 nó. C) São testados como soluções exactamente 2 nós. D) São testados como soluções exactamente 3 nós. E) São testados como soluções exactamente 4 nós. F) São testados como soluções exactamente 5 nós. G) São testados como soluções exactamente 6 nós. H) São testados como soluções exactamente 7 nós. 8

A4 4 3 B3 C2 3 3 1 1 D3 E0 F1 G1 3 3 3 1 1 1 H3 I3 J3 L2 M1 N0 4.4. (1.5) Considere a procura gananciosa e escolha a única opção correcta: A) O nó B é testado como solução e há mais 3 nós na fila de nós por B) O nó C é testado como solução e há mais 3 nós na fila de nós por C) O nó F é testado como solução e há mais 3 nós na fila de nós por D) O nó G é testado como solução e há mais 3 nós na fila de nós por E) O nó B é testado como solução e há mais 2 nós na fila de nós por F) O nó C é testado como solução e há mais 2 nós na fila de nós por G) O nó G é testado como solução e há mais 2 nós na fila de nós por H) O nó N é testado como solução e há mais 2 nós na fila de nós por 4.5. (1.5) Considere a procura IDA* e escolha a única opção correcta: A) São feitos 6 testes para ver se um nó é solução. B) São feitos 8 testes para ver se um nó é solução. C) São feitos 10 testes para ver se um nó é solução. D) São feitos 12 testes para ver se um nó é solução. E) São feitos 14 testes para ver se um nó é solução. F) São feitos 15 testes para ver se um nó é solução. G) São feitos 16 testes para ver se um nó é solução. H) São feitos 17 testes para ver se um nó é solução. Obs: Considere que na primeira iteração o valor do limite é f(a). 9

5. (2.5) Considere a seguinte árvore de procura de dois agentes. Complete a segunda árvore de procura, reordenando as folhas de modo a maximizar o número de cortes com uma procura da direita para a esquerda. Assinale os cortes e a jogada escolhida. Escureça os nós terminais visitados. (Note que pode existir mais do que uma solução. Tem apenas que assinalar uma delas.) Max Min f=2 f=8 f=3 f=7 f=9 f=1 f=4 f=5 Max Min f=1 f=9 f=4 f=5 f=2 f=8 f=3 f=7 10

6. (1.5) Qual das seguintes afirmações é falsa? A) Para caracterizar um jogo é suficiente saber o estado inicial, a função sucessores e o teste terminal. B) Os algoritmos minimax e minimax com cortes alfa-beta devolvem sempre uma jogada que conduz a uma solução óptima (considerando que o adversário joga de uma forma óptima). C) O algoritmo minimax com cortes alfa-beta permite eliminar ramos da árvore que são irrelevantes para a escolha da melhor jogada. D) Se for possível estabelecer limites para a função de avaliação, então é possível aplicar o algoritmo minimax com cortes alfa-beta em jogos com o elemento sorte. E) A função de avaliação para jogos com mais de dois jogadores devolve um vector com a pontuação obtida por cada jogador. F) Em jogos com mais de dois jogadores, cada jogador procura maximizar a sua pontuação. G) O algoritmo minimax tem complexidade temporal O(r m ), enquanto que o algoritmo minimax com cortes alfa-beta e uma ordenação perfeita tem complexidade temporal O(r m/2 ), em que r é o factor de ramificação e m é a máxima profundidade do espaço de estados. H) Em jogos com dois jogadores, cada jogador procura minimizar a pontuação do adversário. 11

7. (2.0) Considere o problema do Sudoku para uma matriz 9x9, com 9 sub-matrizes 3x3. O objectivo é preencher todas as entradas com valores de 1 a 9, garantindo que cada número ocorre exactamente uma vez por linha, por coluna e por sub-matriz 3x3. Formule este problema como um CSP, indicando as variáveis (e respectivos domínios) e as restrições. Pode usar o operador AllDiff(x 1,...,x n ), que obriga a que todos os valores das variáveis (x 1,...,x n ) tenham valores diferentes. Variáveis: 81 variáveis designadas por x ij com 0 i, j 8 Domínio da variáveis = [1..9] A cada variável x ij é atribuído o valor contido na posição [i,j] da matriz Restrições: Cada número ocorre exactamente uma vez por linha: 0 i 8 AllDiff(x i,0,x i,1,x i,2,x i,3,x i,4,x i,5,x i,6,x i,7,x i,8 ) Cada número ocorre exactamente uma vez por coluna: 0 j 8 AllDiff(x 0,j,x 1,j,x 2,j,x 3,j,x 4,j,x 5,j,x 6,j,x 7,j,x 8,j ) Cada número ocorre exactamente uma vez por sub-matriz: i {0,3,6} j {0,3,6} AllDiff(x ij,x i+1,j,x i+2,j,x i,j+1,x i+1,j+1,x i+2,j+1,x i,j+2,x i+1,j+2,x i+2,j+2 ) 12