INTELIGÊNCIA ARTIFICIAL Primeiro Exame 7 de Julho de 2005 9:00-11:00 Este exame é composto por 9 págínas contendo 8 grupos de perguntas. Identifique já todas as folhas do exame com o seu nome e número. Na mesa em que está a fazer o exame deve ter apenas lápis/caneta, identificação e este exame. Pode utilizar o verso das folhas como rascunho. Deve responder às perguntas no espaço deixado para o efeito. Numa pergunta assinalada como de escolha múltipla EM, se houver n alternativas e a cotação for c, respostas erradas contribuem negativamente para a classificação final com c/(n-1), i.e. numa pergunta com quatro alternativas e cotação de 0,5 a uma resposta errada é descontado 0,15 valores. Numa pergunta de escolha múltipla, a resposta deve ser assinalada desenhando um círculo à volta da letra que identifica a alternativa escolhida. Cotações Grupos I II III IV V VI VII VIII Grupo I (2,7 valores) 1. (0,5) (EM) Um agente racional é um agente que: a) Conhece perfeitamente o resultado das suas acções. b) Escolhe uma acção que espera maximizar a medida de performance dada a evidência providenciada pelo conhecimento adquirido anteriormente. c) Deve fazer sempre aquilo que é verdadeiramente a coisa certa a fazer. d) Usa bem o conhecimento do ambiente para actuar. 2. Considere um agente que gere as filas de espera numa repartição pública. Cada pessoa pode tirar senhas de atendimento do tipo A ou do tipo B. O agente recebe como percepções o número de pessoas que falta atender com senhas do tipo A e o número de pessoas que falta atender com senhas do tipo B. O agente deve decidir se a próxima senha a ser chamada é do tipo A ou do tipo B, garantindo que são atendidas 2 pessoas com senhas do tipo A por cada B atendido. Estas regra só é ignorada se não houver pessoas para atender do próximo tipo a ser chamado. a. (0,5) Indique que tipo de agente se trata. Justifique. É um agente de reflexos simples com estado interno porque a decisão de como actuar não pode ser baseada apenas nas percepções actuais, necessita também de informação sobre como o mundo evoluiu. b. (0,5) Defina o tipo percepção para este agente. (defstruct percepcao n-as n-bs)
c. (1,25) Escreva código em ANSI Common Lisp para a criação deste agente. (defun cria-agente () (let ((as 0)) # (lambda (p) (cond ((and (zerop (percepcao-n-as p)) (zerop (percepcao-n-bs p))) (setf as 0) NO-ACTION) (zerop (percepcao-n-as p)) (setf as 0) B) (zerop (percepcao-n-bs p)) (incf as) A) ((>= as 2) (setf as 0) B) (T (incf as) A))))) Grupo II (1,8 valores) 1. (0,5) (EM) As estratégias de procura são avaliadas de acordo com quatro critérios: a) Consistência, optimalidade, complexidade temporal e complexidade espacial. b) Completude, consistência, complexidade temporal e complexidade espacial. c) Completude, optimalidade, complexidade temporal e complexidade espacial. d) Nenhuma das respostas acima está correcta. 2. (0,5) A procura em profundidade incremental: a) Não é completa. b) A sua complexidade espacial cresce exponencialmente com a profundidade da árvore de procura. c) Encontra sempre a melhor solução. d) A sua complexidade temporal é menor que a da procura em largura primeiro.
3. (0,5) (EM) A procura A*: a) É uma combinação da procura de custo uniforme e da procura gananciosa. b) Expande progressivamente as curvas de nível de h(n) a partir do estado inicial até ao estado objectivo. c) É óptima se o teste de estado objectivo for invocado durante a geração de sucessores e a função heurística usada for admissível. d) Expande só nós no caminho para a solução se a função heurística usada for admissível.. (0,5) (EM) O algoritmo de procura RBFS procura melhor primeiro recursiva utiliza uma estratégia de procura em profundidade primeiro mantendo alguma informação adicional que lhe permite retroceder para um ramo alternativo da árvore. Que informação é essa? a) O segundo melhor f dos sucessores do nó inicial. b) O segundo melhor f registado anteriormente pelo pai e seus antecessores. c) O segundo melhor f de todos os nós gerados. d) O melhor f de todos os nós gerados. Grupo III (3 valores) 1. (0,5) (EM) No algoritmo MINIMAX com cortes α-β, os cortes a) Permitem eliminar as piores jogadas. b) Aumentar a eficiência temporal do algoritmo. c) Aumentar a eficiência espacial do algoritmo. d) Resolvem o problema da quiescência. 2. (0,5) (EM) As funções de avaliação (EVAL) e de teste de corte (CUTOFF-TEST) são usadas no MINIMAX: a) Quando há tempo para procurar todo o espaço de estados. b) Quando se pretende usar os cortes de ALFA e BETA. c) Quando se pretende melhorar a qualidade das soluções encontradas. d) Face à necessidade de tomar decisões imperfeitas.
3. Considere a seguinte árvore de procura de um jogo: α:, 5 β: + Jogada escolhida corte α α: 5 β: +, 3 corte α α: 5 β: +, α: β: +, 7, 5 2 3 3 5 α:, 9 β: 7 7 corte β 6 9 3 9 8 a. (2.1) Suponha que o triângulo com o vértice virado para cima quer maximizar e o triângulo com o vérice virado para baixo quer minimizar. Aplique o algoritmo minimax com cortes alfa-beta da direita para a esquerda, escurecendo os nós terminais visitados, e indicando os cortes e tipos de cortes. Indique a jogada escolhida. Grupo IV (5,5 valores) 1. (1,0) Recorrendo a uma tabela de verdade, diga se a seguinte proposição é válida, satisfazível ou não satisfazível: (P Q) ((Q P) P)) P Q P P Q Q P ((Q P) P F F T T T T T F T T T T T T T F F F T F T T T F T F T T É válida.
2. Usando os predicados: Homem(x) x é homem; ComidaVegetariana(x) x é comida vegetariana; Gosta(x,y) x gosta de y. Represente em lógica de primeira ordem as seguintes proposições: a. (0,55) A Maria gosta de alguns homens que não gostam de comida vegetariana. h(homem(h) Gosta(Maria,h) x(comidavegetariana(x) Gosta(h,x))) b. (0,55) A Maria não gosta de homens que não gostam de comida vegetariana. h(homem(h) x(comidavegetariana(x) Gosta(h,x)) Gosta(Maria,h)) c. (0,55) A Maria não gosta de homens que gostam de comida vegetariana. h (Homem(h) x(comidavegetariana(x) Gosta(h,x)) Gosta(Maria,h)) d. (0,55) A Maria gosta de homens que só gostam de comida vegetariana. h(homem(h) x(gosta(h,x) ComidaVegetariana(x)) Gosta(Maria,h)) 3) (2,3) Considere a seguinte base de conhecimento: x (Jogo(x) Complexo(x) Estimulante(x)) x (Joga(José,x) Jogo(x) Estimulante (x)) x (Inteligente(x) y(jogo(y) Complexo (y) Joga(x,y)) Usando resolução prove por refutação que: Inteligente (José). <1> Jogo(x) Complexo(x) Estimulante(x) <2> Joga(José,x) Jogo(x) Estimulante (x) FALSE <3> Inteligente(x) Jogo(f(x)) <> Inteligente(x) Complexo(f(x)) <5> Inteligente(x) Joga (x,f(x))
<1> Jogo(x) Complexo(x) Estimulante(x) <2> Joga(José,x) Jogo(x) Estimulante (x) FALSE <3> Inteligente(x) Jogo(f(x)) <> Inteligente(x) Complexo(f(x)) <5> Inteligente(x) Joga (x,f(x)) <6> TRUE Inteligente (José) R(6,5) {x/josé} <7> TRUE Joga (José,f(José)) R(7,2) {x/f(josé)} <8> Jogo(f(José)) Estimulante (f(josé)) FALSE R(8,3) {x/josé} <9> Inteligente(José) Estimulante (f(josé)) FALSE R(9,6) {} <10> Estimulante (f(josé)) FALSE R(10,1) {x/ f(josé)} <11> Jogo(f(José)) Complexo(f(José)) FALSE R(11,3) {x/josé} <12> Inteligente(José) Complexo(f(José)) FALSE R(12,) { x/josé } <13> Inteligente(José) FALSE R(13,6) {} <1> TRUE FALSE
1. (0,5) (EM) O planeamento: Grupo V (0,9 valores) a) É um tipo de resolução de problemas alternativo à procura. b) Usa conhecimento explícito das acções e dos seus efeitos para procurar uma solução num espaço mais abstracto de planos em vez de situações. c) Tem sido objecto de diferentes abordagens. d) Todas as respostas acima são verdadeiras. 2. (0,5) (EM) O POP é: a) Um algoritmo que explora um espaço de planos, em que em cada iteração são gerados todos os planos que correspondem à aplicação de cada um dos operadores definidos ao estado actual. b) Um algoritmo de planemento progressivo que explora sistemáticamente um espaço de planos. c) Um algoritmo de planeamento regressivo cujas soluções são planos parcialmente ordenados. d) Nenhuma das respostas acima é verdadeira. Grupo VI (0,9 valores) 1. (0,5) (EM) A análise gramatical ( parsing, em Inglês) consiste em: a) Encontrar uma árvore analítica para uma dada cadeia de símbolos. b) Recuperar a estrutura sintáctica a partir de uma elocução, dada uma gramática. c) Nenhuma das respostas a) e b) é verdadeira. d) Ambas as respostas a) e b) são verdadeiras. 2. (0,5) (EM) As Gramáticas de Cláusulas Definidas (DCGs) permitem: a) Falar de análise sintática como inferência lógica. b) Usar a mesma gramática para análise e geração. c) Nenhuma das respostas a) e b) é verdadeira. d) Ambas as respostas a) e b) são verdadeiras. 1. (0,5) (EM) Numa árvore de decisão: Grupo VII (3,2 valores) a) Um nó interno corresponde a um teste do valor de um dos atributos de um objecto ou situação. b) Os ramos de um nó são rotulados com os possíveis valores do teste representado pelo nó. c) Uma folha especifica o valor a ser devolvido se a folha for atingida. d) Todas as respostas acima são verdadeiras. 2. (0,5) (EM) Na indução de árvores de decisão a partir de exemplos, o que se deve fazer quando um teste tem como resultado exemplos positivos e negativos? a) Escolhe-se, recursivamente, o melhor atributo dos restantes para separar os exemplos, caso haja mais atributos. b) Usa-se o voto de maioria se não existirem mais atributos, consoante haja mais exemplos positivos ou negativos, respectivamente, no nó pai. c) Nenhuma das respostas a) e b) é verdadeira. d) Ambas as respostas a) e b) são verdadeiras.
3. (2,3) Foram recolhidos os seguintes dados de uma consulta de cardiologia: Paciente Pressão Arterial Peso Pulsação Ataque Cardiaco 1 Baixa Alto Alta Sim 2 Média Alto Normal Sim 3 Média Baixo Alta Não Alta Alto Normal Não Pretende-se usar aprendizagem por árvores de decisão para identificar quais os doentes em risco de sofrerem um ataque cardiaco. Aplique o algoritmo a estes dados para formular essa hipótese escolha apenas a primeira categoria e desenhe a árvore de decisão correspondente. Escolher o atributo que dá maior ganho. Ganho = p n I (, ) p + n p + n p + n v i i i i I (, i= 1 p + n pi + ni pi + p n n i ) I p n 2 2 2 2 2 2, ) = I(, ) = log 2 log = 0.5 + 0.5 = 1 p + n p + n ( 2 Pressão Arterial: =Baixa, 1 caso, 1 sim e 0 não; =Média, 2 casos, 1 sim e 1 não; =Alta, 1 caso, 0 sim e 2 não. 1 2 1 1 1 Ganho(Pressão Arterial) = 1 I ( 1,0 ) + I, + I( 0, 1) = 1-(0 + 2 2 1/2 + 0) = 0.5 Peso: =Alto, 3 casos, 2 sim e 1 não; =Baixo, 1 caso, 0 sim e 1 não. 3 2 1 1 Ganho(Peso) = 1 I, + I( 0, 1) = 1 (0.75 * 0.918 + 0)= 3 3 0.3115 Pulsação: =Alta, 2 casos, 1 sim e 1 não; =Normal, 2 casos, 1 sim e 1 não. 2 1 1 2 1 1 Ganho(Pulsação) = 1 I, + I, = 1 (0.5 + 0.5) = 0 2 2 2 2 A melhor categoria a escolher á a de maior ganho.
Vai-se escolher a categoria Pressão Arterial. Pressão Arterial Sim Baixa Média??? Alta Não
Grupo VIII (2 valores) 1. (1,0) Escreva uma função em ANSI Common Lisp que recebe como argumento um array de inteiros com uma dimensão de MxN e devolve uma lista em que o primeiro elemento é o menor intero do array e o segundo elemento é o maior inteiro do array. Por exemplo, > (max-min-elementos #2A((1 2) (3 ))) (1 ) (defun max-min-elementos (tab) (let ((dim-i (array-dimension tab 0)) (dim-j (array-dimension tab 1)) (min (aref tab 0 0)) (max (aref tab 0 0))) (dotimes (i dim-i (list min max)) (dotimes (j dim-j) (if (> (aref tab i j) max) (setf max (aref tab I j)) (if (< (aref tab i j) min) (setf min (aref tab i j)))))))) 2. (1,0) Escreva em ANSI Common Lisp uma função que cria uma closure, a closure ao ser chamada devolve alternadamente os símbolos SIM / NAO. Mostre como é criada e invocada uma destas closures. (defun cria-sim-nao () (let ((sim? nil)) # (lambda () (cond (sim? (setf sim? nil) SIM) (T (setf sim? T) NAO))))) > (setf closure (cria-sim-nao)) #<Interpreted Closure (:INTERNAL CRIA-SIM-NAO) @ #x20b7b72> > (funcall closure) NAO > (funcall closure) SIM >