Inteligência Artificial

Documentos relacionados
Inteligência Artificial Taguspark

INTELIGÊNCIA ARTIFICIAL 2008/09

HANDS-ON PROGRAMAÇÃO DE JOGOS PARA CRIANÇAS

Professora Daniele Santos Instituto Gay-Lussac 2º ano

Configurações. Alterar o papel de parede

ROBOT ROAMER. Manual de utilização. Características do Recurso Educativo:

INTELIGÊNCIA ARTIFICIAL

Inteligência Artificial Agentes Inteligentes

Equipamento. 6 Ladrilhos Iniciais mostrando a famosa Fonte dos Leões.

Animação comportamental. Controlo de grupos de objectos. Sistemas de partículas Comportamento de grupos (Flocks, Herds, Schools) Agentes autónomos

Aula 01 Microsoft Excel 2016

2012 / Programa Nestum Rugby nas Escolas. Introdução ao Tag-Rugby e ao Bitoque

São tantas funções e possibilidades que é bem provável que você esteja perdendo mais tempo do que gostaria para fazer uma planilha bem feita.

ESCOLA SECUNDÁRIA C/ 3º CEB DO FUNDÃO GRUPO DE ESTÁGIO DE EDUCAÇÃO FÍSICA 09_10 PRINCIPIOS BÁSICOS DA MODALIDADE. Badminton

Exercícios de Caminho Mínimo Enunciados

Canguru Matemático sem Fronteiras 2012

Criar e Apresentar Apresentações

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 2 LÓGICA

Aula 3 Programação. LEGO NXT-G

Atalhos do Atalhos do Keynote for Mac

INTRODUÇÃO SEUS CONTROLES

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

O TREINO. O treino deve ser dividido em: Treinos de especialização: Manejamento da cadeira de rodas eléctrica Condução e controle de bola

Informática I. Aula 21. Aula 21-07/11/06 1

Tecnologias da Informação e Comunicação

Aula 01 Excel Prof. Claudio Benossi

1. caminhe até o jornal, 2. apanhe-o, 3. retorne ao ponto de partida.

Problemas para Automação Industrial. Série 4: Modelação usando o diagrama funcional GRAFCET. Programação de autómatos

Introdução: Neste jogo você deve orientar o grande peixe faminto e tentar comer todas as presas que estão nadando pelo mar.

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

Nº de jogadores 2 Tempo de jogo 15 minutos Idade a partir dos 10 anos

Movimento Unidimensional

1. Crie um novo projeto Scratch. Apague o gato clicando com o botão direito e em apagar.

SD-900 LIMPA PISCINAS AUTOMÁTICO

Microsoft Word 2010 NORMA ABNT para Trabalhos Acadêmicos Conceitos Básicos

ELABORADO POR MARCO SOARES 1. Formatação de texto

Escola Secundária de Alfredo dos Reis Silveira

Parte 1 Cena Simples Interativa com Câmara Fixa

Agentes Inteligentes. Módulo 02 27/02/2013. Inteligência Artificial. Profª Hemilis Joyse

1 o º ciclo. Índice TUTORIAL

PACRU SÉRIE 302. Linguagens e Informação Extra. Três Jogos: Shacru, Azacru & Pacru

Soluções Simulado OBMEP 2017 Nível 1 6º e 7º anos do Ensino Fundamental. = 7 cm. Logo, ela parou na marca de = 13 cm.

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Workshop - A Robótica em Contexto Educativo

Microcontroladores. Programação: fluxogramas, pseudocódigos e lógica. Prof. Daniel

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Este é um jogo para 1 a 4 pessoas com um tempo de jogo aproximado de 15 minutos por jogador.

Aprendendo a jogar Xadrez

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

INTELIGÊNCIA ARTIFICIAL 2008/09

Inteligência Artificial

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

Aula anterior... Aula anterior... (cont.)

INF Fundamentos de Computação Gráfica /1

O Manual do Kiriki. Albert Astals Cid Eugene Trounev Tradução: José Pires

Criar um recurso para QIM com ActivInspire - Studio

Exercício 1 - Resolução do ecrã. Tecnologias da Informação e Comunicação

Televisão INFORMAÇÕES GERAIS. Interrupção da imagem de televisão com o veículo em movimento

Material Teórico - Módulo Matrizes e Sistemas Lineares. Sistemas Lineares - Parte 2. Terceiro Ano do Ensino Médio

BCC701 Programação de Computadores I Lista de Exercícios 05: Funções Definidas pelo Usuário

INICIANDO O POWERPOINT 2000

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

Concursos Micro-Rato. Ciber-Rato

Questão 1 Exemplo de execução 1 (com N=6): Exemplo de execução 2 (com N=4):

MAC 115 Introdução à Ciência da Computação ROTHELO

Caça às bruxas. PASSO 1: Crie uma bruxa voadora. Nível 1

Plano de Evacuação e Instruções Gerais de Segurança

Base de Dados de Gestão de Anilhagem e Recapturas Manual do Utilizador

PARABÉNS! APRESENTAÇÃO FUNCIONAMENTO Unidade Transmissora (membrana fixada no volante): Unidade Receptora:

TAREFA Padrões numéricos

1.ENTRAR NO MENU DE PROGRAMAÇÃO 2 2.PROGRAMAR CABEÇALHO 2 3. PROGRAMAÇÕES DIVERSAS 2

Domine o Word Professor: Rafael Henriques

Buscando um Invariante

OpenOffice.org. tutorial apresentação

Notas da Aula 10 - Fundamentos de Sistemas Operacionais

Dispositivos indicadores e teclado

Transcrição:

Inteligência Artificial Exercícios da aula prática de Agentes 2011/12 1. Considere um agente num mundo em que existem 4 posições dispostas numa quadrícula 2X2. O agente tem dois sensores: um que indica a existência de lixo e outro que indica que bateu na parede no instante anterior. Dada uma percepção p, (percepcao-lixo-p p) retorna T se de acordo com a percepção houver lixo e NIL caso contrário e (percepcao-toque-p p) retorna T se tiver batido ao tentar andar em frente no instante anterior e NIL caso contrário. O agente pode executar as acções andar (em frente), rodar (90 o no sentido horário), esperar e aspirar. Suponha que o objectivo do seu agente é limpar o ambiente. Desenhe um agente de reflexos simples para este ambiente. 2. Considere um agente num mundo em que existem 4 posições dispostas numa quadrícula 2X2. O agente tem um sensor que indica se há ou não lixo na posição actual. Dada uma percepção p, (percepcao-lixo-p p) retorna T se de acordo com a percepção houver lixo na posição actual e NIL caso contrário. O agente pode executar as acções esperar, andar (em frente), rodar (90 o para a sua direita) e aspirar. Suponha que o objectivo do seu agente é manter o ambiente limpo gastando tão pouca energia quanto possível (só a acção esperar é que não gasta energia) e que ao ser ligado o agente está no canto superior esquerdo virado para a direita. Desenhe um agente de reflexos com modelo para este ambiente. 3. Considere um agente num mundo em que existem 9 posições dispostas numa quadrícula 3X3. O agente tem dois sensores: um que indica a existência de lixo e outro que indica que bateu na parede no instante anterior. Dada uma percepção p, (percepcao-lixo-p p) retorna T se de acordo com a percepção houver lixo e NIL caso contrário e (percepcao-toque-p p) retorna T se tiver batido ao tentar andar em frente no instante anterior e NIL caso contrário. O agente pode executar as acções andar (em frente), rodar (90 o no sentido horário), esperar e aspirar. Suponha que o objectivo do seu agente é limpar o ambiente. Desenhe um agente de reflexos simples para este ambiente. 1

4. Considere um agente cujo objectivo é encher sacos com moedas de 1 Euro que estão a passar numa esteira rolante. Dada uma percepção p, a expressão (percepcao-moeda p) é T se o agente tiver uma moeda em frente e NIL caso contrário. O agente pode ESPERAR ou, tendo uma moeda em frente, pegar na moeda e pô-la num saco, executando a acção ENSACA, ou, caso já tenha colocado 50 moedas no saco, executar a acção TROCA-SACO-E-ENSACA, que corresponde a fechar o saco, preparar-se para encher outro saco e colocar a moeda nesse saco. (a) Implemente este agente. (b) De que tipo de agente se trata? 5. Considere um agente cujo objectivo é encher sacos com moedas de 1 Euro que estão a passar numa esteira rolante. Dada uma percepção p, a expressão (percepcao-moeda p) é T se o agente tiver uma moeda em frente e NIL caso contrário e a expressão (percepcao-numero-moedas p) tem como valor o número de moedas guardadas no saco. Relativamente a acções, o agente pode executar a acção ESPERAR ou, se o agente tiver uma moeda à frente e se o saco tiver lugar para por moedas, o agente pode pegar a moeda e pô-la num saco, executanto a acção ENSACA, ou, caso já tenha colocado 50 moedas no saco, executar a acção TROCA-SACO-E-ENSACA, que corresponde a fechar o saco, preparar-se para encher outro saco e colocar a moeda nesse saco. (a) Implemente este agente. (b) De que tipo de agente se trata? 6. Considere um agente que vive num mundo que é um anel com um determinado número de posições. Este agente sabe executar a acção andar, que faz com que passe da posição actual para a posição ao lado, no sentido dos ponteiros do relógio, e a acção esperar, que não muda a posição do agente. Relativamente às percepções, em cada instante pode ser dado ao agente um número maior que 0, por exemplo n, que fixa o objectivo que o agente deve procurar atingir de ir para a posição que está à distância de n casas no sentido do ponteiro dos relógios. Alternativamente, é dado o número 0. Neste caso, se não estiver a ir para nenhuma casa, fica parado. (a) De que tipo é este agente? (b) Implemente este agente. 7. Considere um agente num mundo em que existem 8 posições dispostas num anel e que em algumas dessas posições existe lixo. O agente tem um sensor que indica a existência de lixo na posição actual. Dada uma percepção p, (percepcao-lixo-p p) retorna T se de acordo com a percepção houver lixo e NIL caso contrário. O agente pode executar as acções andar (que muda a posição do agente para a próxima posição do anel em sentido horário) e aspirar, que limpa o lixo que eventualmente exista na posição em que se encontra o agente, e esperar, que contrariamente às acções andar e aspirar não gasta energia (as outras acções gastam uma unidade de energia cada vez que são executadas). Suponha que o objectivo do seu agente é manter o ambiente limpo gastando tão pouca energia quanto possível. 2

(a) Defina, se possivel, um agente de reflexos simples para este ambiente que satisfaça o objectivo. Caso não seja possível, justifique. (b) Defina, se possivel, um agente de reflexos com modelo (também conhecido como agente de reflexos com estado interno) para este ambiente que satisfaça o objectivo. Caso não seja possível, justifique. 8. Considere um agente que vive num anel com 10 posições, numeradas de 0 a 9. Cada posição do anel está ligada a duas posições: a posição n esta ligada à posição mod(n+9,10) e mod(n+11,10) (o mod é o resto da divisão inteira). O agente dispõe de três acções: anda+ que desloca o agente da posição n para a posição mod(n+11,10), anda- que desloca o agente da posição n para a posição mod(n+9,10), e espera que não altera a posição do agente. O agente recebe como percepção a cada instante a posição objectivo para onde quer ir e retorna a acção que o faz ficar mais próximo desse objectivo e no começo está na posição 0. (a) De que tipo é o agente referido? Justifique. (b) Implemente este agente. 9. Considere um agente que vive num mundo que é um corredor com 8 posições numeradas sucessivamente de 1 a 8 e que no início se encontra na posição 1. Este agente sabe executar a acção esperar, que não altera a posição do agente, a acção andar+, que muda a posição para a posição vizinha de maior número, e a acção andar-, que muda a posição para a posição vizinha de menor número (as acções andar+ e andar- não produzem efeitos se estiverem, respectivamente, nas posições 1 e 8). Relativamente às percepções, em cada instante pode ser dado ao agente um número maior que 0, por exemplo n, que indica a posição que o agente passa a ter por objectivo atingir. Alternativamente, pode ser dado o número 0. Neste caso, se não estiver a ir para nenhuma casa, fica parado. Admita que o agente quer minimizar o número de acções que quer executar. (a) De que tipo é este agente? (b) Implemente este agente. 3

10. Considere um agente que vive numa casa com infinitos quartos, em que os quartos estão numerados. Os quartos normalmente têm três portas. Se o quarto for o quarto n, a porta esquerda dá acesso ao quarto 2 n, a porta direita dá acesso ao quarto 2 n + 1 e a porta de trás dá acesso ao quarto div(n, 2) (divisão inteira de n por 2). O quarto 1 tem apenas a porta esquerda e direita. No início, o agente é colocado no quarto 1. O agente recebe como percepção a cada instante o quarto para onde quer ir e retorna a acção que o faz ficar mais próximo do objectivo. As acções possíveis são: :atravessa-porta-esquerda, se quiser passar do quarto n para o quarto 2 n; :atravessa-porta-direita, se quiser passar do quarto n para o quarto 2 n + 1; :atravessa-porta-tras, se quiser passar do quarto n para o quarto div(n, 2); e :espera, se não quiser mudar de quarto. (a) De que tipo é o agente referido? Justifique. (b) Implemente este agente. Sugestão: Se o agente está no quarto n e quer ir para o quarto m, com m diferente de n, divida m por 2, 4, 8, 16, etc, até obter n ou até obter 1. Se obtiver n, a porta a atravessar vai depender do valor que foi dividido para obter n. Caso contrário, vai ser a porta de trás. 11. Uma conhecida marca multinacional produtora de videogravadores pretende desenvolver um rebobinador de cassetes de vídeo topo de gama baseado na tecnologia de agentes estudada na cadeira. O comportamento pretendido do agente é o seguinte: Existe um teclado que permite escrever números inteiros representando minutos. Quando um número, por exemplo n, é seguido de um enter, o número é passado ao agente e o agente não faz nada se n for 0, rebobina n minutos se n for negativo ou avança a cassete n minutos se o n for positivo. Note-se que o agente recebe do teclado duas percepções: o número de minutos e a indicação de se carregou na tecla enter ou não. Este agente deve ser implementado num hardware que recebe os comandos do agente. O hardware tem o seguinte comportamento: ao ser dado o comando espera, não faz nada; ao ser dado o comando avança, avança um minuto a posição da cassete (se tiver chegado ao fim da cassete, permanece no fim e não faz mais nada); ao ser dado o comando recua, recua um minuto a posição da cassete (se tiver chegado ao princípio da cassete, permanece no princípio e não faz mais nada). As acções espera, avança e recua executam os comandos descritos acima e devem ser retornadas pelo agente quando apropriado. Para a seguinte sequência de percepções, o agente devolve as seguintes acções (o ponto de interrogação significa que o valor lido pode ser qualquer): 4

Percepções Acções Observações 2 e true avança Ordem para avançar 2 posições? e false avança Falta avançar uma posição? e false espera Acaba de executar a ordem anterior -2 e true recua Ordem para recuar duas posições 0 e true espera Ordem para ficar na posição em que está (pára de executar a ordem anteriormente dada)? e false espera Acaba de executar a ordem anterior 12. 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 5 sensores que lhe vão permitir detectar a posição da melga de forma a proceder a sua eliminação. (a) 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. (b) 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. (c) 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 faz com que a melga a voe. Se a melga não estiver na posição do agente ou nas posições adjacentes, o valor correspondente é NIL. (d) 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. C aso contrário, o valor correspondente é NIL. (e) 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, 5

(percepcao-paredes 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, a acção ESPERAR 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) Descreva o tipo percepcao que representa a percepção do agente MataMelga. (b) Defina uma função que não recebe argumentos e implementa o agente. 13. O Demolidor está à procura da sua amiga Electra, que ficou presa numa posição de um caminho com 10 posições, numeradas de 1 a 10, para a salvar. O Demolidor encontra-se inicialmente na posição 5 e como é cego usa as suas superpoderosas percepções auditivas para a procurar. Dada uma percepção p, (percepcaoruido p) devolve: :FRENTE, se ecoa um grito de Electra de uma posição do caminho à sua frente; :ATRAS, se ecoa um grito de Electra de uma posição do caminho mais atrás; :SILENCIO, se não se ouve nenhum ruído; :SUSPIRO, se se ouve um suspiro de alívio de Electra (ouve-se o suspiro quando o Demolidor está na mesma posição que ELECTRA, ainda presa). Na sua missão de salvamento, o Demolidor vai fazer o seguinte: Enquanto não tiver informação sobre a posição da Electra, retorna a acção :ESPERA; Se tiver ouvido um grito, dirige-se para a fonte do grito. Se o grito provier de uma posição do caminho à sua frente usa a acção :AVANCA, que avança uma posição (por exemplo, se estiver na posição 6 passa para a posição 7); Se o grito provier de uma posição do caminho atrás, usa a acção :RECUA, que recua uma posição (por exemplo, se estiver na posição 3 passa para a posição 2); Se ouve um suspiro de alívio é porque está na mesma posição que a Electra, pelo que pode soltar a Electra usando o comando :SOLTA; Quando a Electra estiver solta, passa a querer deslocar-se com a ELECTRA para o extremo do caminho mais próximo (usando a acção :RECUA ou :AVANCA, como apropriado, que os faz mudar para a posição vizinha correspondente); Se o Demolidor e Electra estiverem num extremo do caminho e a Electra estiver solta, as acções :RECUA e :AVANCA não têm efeitos. Implemente o agente demolidor. Nota: Como a Electra está presa no princípio, não muda de posição até ser solta. Assim, se o grito ecoar de uma direcção jamais se ouvirá um grito da direcção contrária. 6