Inteligência Artificial Primeiro Teste 28 de Outubro de 2013 18:00-19:30 Este teste é composto por 10 páginas contendo 6 grupos de perguntas. Para perguntas com resposta de escolha mu ltipla, respostas erradas com cotação c e n respostas possíveis descontam c / (n 1). Identifique já todas as folhas do teste 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. Cotações Perguntas 1) 2) 3) 4) 5) 6) Pergunta 1 de resposta de escolha múltipla (deve ser respondida aqui): Pergunta a b c d e f Classificação 1 2 3 4 5 6 7 8 9 10 Nome: Número: 1
1. (3.0) Responda às seguintes perguntas de resposta de escolha múltipla, colocando um X em cada respectiva posição da tabela da página 1. Para cada pergunta, só responda se tiver praticamente a certeza que a resposta está correcta; se tiver dúvidas, é preferível não responder. 1.(0.3) Escolha a alternativa mais adequada: a) O Teste de Turing enquadra-se na abordagem de agir como humanos. b) Para passar o Teste de Turing, um computador necessita de capacidades de processamento de língua natural, representação de conhecimento, raciocínio automático e aprendizagem. c) Um computador passa o Teste de Turing se após interagir por texto com um interrogador humano, não conseguir distinguir o computador de outro humano. d) O Teste de Turing pode ser visto como uma definição operacional de inteligência. 2.(0.3) Escolha a alternativa mais adequada: a)a abordagem à IA de pensar racionalmente foca-se em fazer programas de computador que pensem como humanos. b) A abordagem à IA de agir racionalmente foca-se em fazer programas de computador capazes de agir como humanos. c)a abordagem à IA de pensar racionalmente foca-se em criar processos de raciocínio irrefutáveis, baseados em regras/leis do pensamento. d) A abordagem à IA de agir racionalmente foca-se em criar agentes irracionais. 3.(0.3) 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 g dos sucessores do nó inicial. b) O segundo melhor f dos sucessores do nó inicial. c) O segundo melhor h registado anteriormente pelo pai e seus antecessores. d) O segundo melhor f de todos os nós gerados. 4. (0.3) Escolha a alternativa mais adequada: A Procura em Profundidade Limitada utiliza... de memória. a) O(b L ) b) O(d) c) O(bd) d) O(b d ) Nome: Número: 2
5.(0.3) Escolha a alternativa mais adequada: a) As procuras sistemáticas mantêm apenas um único estado em memória. b) As procuras locais são boas para quando precisamos do caminho para chegar à solução. c) As procuras sistemáticas são boas para resolver problemas de optimização. d) As procuras locais são boas para resolver problemas de reparação. 6.(0.3) Escolha a alternativa mais adequada: a) A procura Hill-Climbing (Trepar-a-Colina) só termina quando é encontrado um máximo global. b) A procura First-Choice Hill-Climbing (Trepar-a-Colina à Primeira Escolha) permite lidar com espaços de estados infinitos. c) O algoritmo de procura Stochastic Hill-Climbing (Trepar-a-Colina Estocástico) pode mover-se para um nó mesmo quando este é pior que o nó actual. d) A procura Hill-Climbing (Trepar-a-Colina) guarda vários estados em memória. 7.(0.3) Escolha a alternativa mais adequada: a) A procura Random-Restart Hill-Climbing (Trepar-a-Colina com Recomeço Aleatório) quando está presa num máximo local, escolhe aleatoriamente um sucessor desse máximo local para sair de lá. b) A procura Random-Restart Hill-Climbing (Trepar-a-Colina com Recomeço Aleatório) necessita em média 1/p tentativas para chegar à solução, em que p corresponde à probabilidade de uma tentativa ser bem sucedida. c) Durante uma iteração da procura Random-Restart Hill-Climbing (Trepar-a-Colina com Recomeço Aleatório), esta pode mover-se para um estado pior que o actual. d) Cada iteração da procura Random-Restart Hill-Climbing (Trepar-a-Colina com Recomeço Aleatório) é bastante demorada. 8.(0.3) Escolha a alternativa mais adequada: a) Na procura Simulated Annealing (Têmpera Simulada) quando um sucessor gerado é melhor que o estado actual movemo-nos sempre para esse estado sucessor. b) A procura Simulated Annealing (Têmpera Simulada) começa com uma temperatura baixa, e vai aumentando a temperatura gradualmente. c) A procura Simulated Annealing (Têmpera Simulada) termina quando encontra um máximo local. d) Na procura Simulated Annealing (Têmpera Simulada) quando um sucessor gerado é pior que o estado actual, nunca nos movemos para esse estado sucessor. Nome: Número: 3
9.(0.3) Escolha a alternativa mais adequada: a) A procura Local Beam (Local em Banda) corresponde a fazer várias procuras Random-Restart Hill- Climbing (Trepar-a-Colina com Recomeço Aleatório) em paralelo. b) A procura Local Beam (Local em Banda) pode sofrer de pouca diversidade nos estados. c) Em cada iteração da procura Local Beam (Local em Banda), é escolhido o melhor nó e são gerados os seus sucessores. Destes sucessores e apenas destes são guardados os k melhores nós para a iteração seguinte. d) A versão Estocástica da procura Local Beam (Procura Local em Banda Estocástica) corresponde simplesmente a escolher aleatoriamente os k estados iniciais da procura. 10.(0.3) Escolha a alternativa mais adequada: a) Num algoritmo genético os sucessores são gerados a partir de dois estados pais. b) Os algoritmos genéticos podem ser vistos como uma variante da procura Stochastic Local Beam (Procura Local em Banda Estocástica). c) Num algoritmo genético os estados com maior valor de avaliação têm maior probabilidade de serem escolhidos para gerarem estados sucessores. d) Num algoritmo genético, existe uma probabilidade de um estado filho criado ser alterado aleatoriamente. 2. (3.0) Escreva em ANSI Common Lisp as seguintes funções: a) (1.5) Escreva em ANSI Common Lisp uma função recursiva algum que recebe um predicado p e uma lista lst e retorna T caso algum dos elementos da lista satisfaça o predicado. Caso contrário retorna NIL. Não podem utilizar a primitiva some. Por exemplo, > (algum # zerop (1 2 0)) T > (algum # zerop (1 2 3)) NIL > (algum # zerop ()) NIL > (algum # (lambda (x) (< x 0)) (1 2-3)) T Nome: Número: 4
b) (1.5) Escreva em ANSI Common Lisp a função positivos-array, que recebe como argumento um array de inteiros com uma dimensão MxN, e retorna uma lista com todos os elementos do array que sejam positivos (i.e. 0). A ordem dos elementos na lista não é relevante. Por exemplo: > (positivos-array #2A((-1-2 -3) (-1-2 -2)) NIL > (positivos-array #2A((1-2 -3 5) (3-2 0 2)) (1 5 3 0 2) 3. (3.0) Considere um agente para jogar Battlefield 1942. Este agente controla uma personagem da classe médico. Quando o agente é atingido perde 10% de energia e inicialmente começa com energia completa (100%) e com 30 balas na sua arma. Sempre que o agente esgota as suas balas efectua a acção (RECARREGAR) para voltar a ter as 30 balas (assuma que o agente possui cartuchos de munições infinitos). Se aparecer algum inimigo à frente do agente, este efectua a acção (DISPARAR), caso não apareça ninguém e se o agente estiver ferido (energia inferior a 100%) este usa a sua habilidade de se curar efectuando a acção (CURAR). Esta acção permite ao agente recuperar 5% de energia perdida. Caso nenhuma das situações anteriores aconteça o agente irá simplesmente patrulhar a sua zona, efectuando a acção (PATRULHAR). A função LISP abaixo ( medico ) pretende emular o comportamento do agente acima descrito. A percepção do exterior é representada pela estrutura perc. Face a um objecto deste tipo o agente deverá retornar uma das acções acima descritas. (defstruct perc (inimigo-frente nil) ;valores: T (o agente vê um inimigo à sua frente) ; ou NIL (caso contrário) (atingido nil)) ;valores: T (o agente foi atingido por um tiro) ; ou NIL (caso contrário) (defun medico (p) (cond ((perc-inimigo-frente p) DISPARAR) ((perc-atingido p) CURAR) (T PATRULHAR))) a)(0.5) Que tipo de agente denota a função medico? Justifique. Nome: Número: 5
b) (0.5) A função medico implementa correctamente o agente descrito? Explique quais os problemas e se estes poderão ser resolvidos com um agente deste tipo. c) (1.5) Defina uma função cria-medico que devolve um agente (isto é, uma função que implementa um agente) que emule todo o comportamento descrito do agente. d) (0.5) Usando o agente criado pela seguinte chamada à função anterior: (setf agente-medico (cria-medico)) dê um exemplo de interacção com o agente em que o agente vê um inimigo à sua frente e é atingido por um tiro (não se esqueça de indicar o valor retornado pelo agente). Nome: Número: 6
4. (6.0) Considere o seguinte espaco de estados, com os estados de A a I, em que os valores dos ramos correspondem ao custo da transição e os dos nós se referem à função heurística. Os nós com dois círculos são nós objectivo. 2 A 4 3 B 2 C 1 3 2 3 D 1 E 1 F 0 2 1 1 G 1 H 1 I 0 a) (3.0) Tendo em conta as procuras cegas procura em profundidade primeiro, procura em largura primeiro, e procura de custo uniforme, preencha a tabela que se segue com os números correspondentes. Em caso de empate, utilize a ordem alfabética. Se alguma procura entrar em ciclo infinito utilize o símbolo para representar o número de nós gerados/testados. Número de... Prof. Primeiro Largura Primeiro Custo Uniforme Nós gerados Nós testados como solução Nome: Número: 7
b) (3.0) Tendo em conta as procuras informadas A* e IDA*, preencha a tabela que se segue com os nu meros correspondentes. Em caso de empate, utilize a ordem alfabe tica. Número de... A* IDA* Nós gerados Nós testados como solução Nome: Número: 8
5. (3.0) Considere a seguinte árvore de jogo para dois jogadores Max e Min, em que estão assinalados os valores da função de avaliação para os nós terminais. Nó Max Nó Min 5 6 3 9 7 6 5 9 1 1 11 5 8 a) (2.0) Faça uma procura alfa-beta, da esquerda para a direita, escurecendo os nós terminais visitados e assinalando os cortes efectuados. Indique a jogada escolhida. Nome: Número: 9
b) (0.5) Desenhe a árvore anterior ordenando os sucessores de modo a maximizar o número de cortes ao efectuar uma procura alfa-beta da esquerda para a direita. Não é necessário fazer qualquer procura. c) (0.5) Sem efectuar mais cálculos indique qual a jogada retornada pela procura alfa-beta da esquerda para a direita na árvore reordenada da alínea anterior. Justifique. 6. (2.0) Considere a heurística h 2 para um problema de procura definida por: h 2(n) = random(0,h 1(n)) Onde random(x,y) retorna um valor aleatório entre x e y (inclusive). a) (1.0) Assumindo que a heurística h 1(n) é uma heurística consistente (e que não é a função zero), indique se a heurística h 2(n) é ou não admissível. Justifique. b) (1.0) Assumindo que a heurística h 1(n) é uma heurística consistente (e que não é a função zero), indique se a heurística h 2(n) é ou não consistente. Justifique. Nome: Número: 10