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

Documentos relacionados
Jogo dos Robos de Prospecção E Linguagem Lua

11/1/2012. Agenda. Classe de problemas de interesse. Busca Local. Busca Local. Exemplo de Espaço de Estados

Buscas Informadas ou Heurísticas - Parte III

Busca Local. Texto base: Stuart Russel e Peter Norving - Inteligência Artificial

Busca com informação e exploração. Inteligência Artificial

BUSCA LOCAL (PARTE 4 Resolução de problemas por meio de busca) (C)Russell & Norvig, capítulo 4

Inteligência Artificial

Inteligência Artificial

Retomada aula. Introdução sobre Inteligência Artificial Abordagem sobre Agentes Resolução de problemas estratégias de busca - apresentação trabalhos

Métodos de Busca. Estratégias de Busca Cega

Revisão sobre Busca 1

INTRODUÇÃO À INTELIGÊNCIA COMPUTACIONAL. Aula 04 Prof. Vitor Hugo Ferreira

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Algoritmos de busca local e problemas de otimização

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.2 e 4.3

Busca com informação e exploração. Inteligência Artificial. Busca pela melhor escolha. Romênia com custos em km 9/13/2010

Técnicas Inteligência Artificial

Resolução de Problemas com Métodos de Busca

Técnicas Inteligência Artificial

Inteligência Artificial

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

Algoritmos e Programação

Manual do Ambiente de Programação de Blocos Studuino

Manual Studio Uno 2.0

Computação Evolucionária: Conceitos Básicos de Otimização

Calc. Interface, Formatação e Cálculos

Busca com informação e exploração. Capítulo 4 Russell & Norvig Seção 4.1

Departamento de Engenharia Elétrica e de Computação EESC-USP. Guia de Projetos VHDL utilizando o QUARTUIS II. Profa. Luiza Maria Romeiro Codá

INTRODUÇÃO À ROBÓTICA MÓVEL

Um Modelo Híbrido Estocástico para Tratamento do Problema de Roteamento de Veículos com Janela de Tempo

Inteligência Computacional

Inteligência Artificial

Outras estratégias de Busca. February 27, 2017

Manual do Receptor Infravermelho Studuino

Resolução de Problemas: Busca Heurística

Estruturas de Repetição

Recozimento Simulado (Simulated Annealing)

Optimização Não-linear

Lista 1 Sistemas Inteligentes (INE5633) 2014s2. Cap. 2 - Russel & Norvig - Exercícios selecionados (respostas em azul)

Resolução de Problemas via Busca

Optimização Não-linear

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

Manual de utilização

Programação Orientada a Objetos. Prof. André Gustavo Duarte de Almeida www3.ifrn.edu.br/~andrealmeida Robocode

Inteligência Artificial

Gerência de Recursos. Gerência do Processador

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

MAC425: EP2 Data de entrega: 4 de dezembro de 2006

Capítulo 4 Secção 1. Livro

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

Sistemas de Apoio à Decisão Optimização V 2.0, V.Lobo, EN/ISEGI, 2011

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

Sistemas Inteligentes (INE5633)

Computação Evolutiva Parte 1

Capítulo 2 Conhecendo o SIMULINK

3. Conhecimentos Básicos

Inteligência Artificial

Objetivos. Sistema Operativo em Ambiente Gráfico. Introdução às Tecnologias de Informação e Comunicação

Fundamentos de Programação

Prof. Paulo Borges. ao lado do campo Proprietário, clique no botão Novo e preencha os dados, conforme tela abaixo, em seguida clique em Salvar e OK.

Linguagem e Ambiente Scratch. Introdução à Laboratório Prof.Alfredo Parteli Gomes

METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO

Workshop - A Robótica em Contexto Educativo

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

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

2.1. Construção da Pista

Utilização do Fiery WebSpooler

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Figura 4.1: Módulos que compõe o sistema de otimização do OCTOPUS

Estatística e Modelos Probabilísticos - COE241

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

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

Fundamentos de Sistemas Operacionais

Estatística e Modelos Probabilísticos - COE241

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Estatística e Modelos Probabilísticos - COE241

PROGRAMAÇÃO DE JOGOS EM MIT APP INVENTOR 2

ET7DE - Instrumentação Virtual. Prof. Winderson Introdução ao LabVIEW

Inteligência Artificial. Agentes computacionais. Aula IV Cap.2 Russell e Norvig (continuação)

Mecânica 1.1 Tempo, posição e velocidade

Estatística e Modelos Probabilísticos - COE241

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

IMPLEMENTAÇÃO E RESOLUÇÃO DE MODELOS MATEMÁTICOS UTILIZANDO A PLANILHA EXCEL

Teoria dos Grafos Aula 24

CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MATRIZ CURRICULAR MATUTINO Fase N.

Estruturas de Repetição. Vanessa Braganholo

Teoria dos Grafos Aula 22

O Camguard permite detectar e gravar vídeos facilmente com uma webcam.

Marcone Jamilson Freitas Souza

Campeonato de Gamão. 1. Regras. 2. Servidor

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Métodos modernos de pesquisa e Optimização

Aula Teórica: Elaboração de gráficos com o Excel

Transcrição:

Informática I Aula 21 http://www.ic.uff.br/~bianca/informatica1/ Aula 21-07/11/06 1

Aula de hoje Explicação sobre o trabalho 3 Jogo de prospecção de petróleo por robôs. http://www.inf.puc-rio.br/~mascarenhas/robots/ Data de entrega: 04/12 Data da competição: 05/12 Técnicas de busca local que podem ser úteis para o trabalho. Técnica de inteligência artificial que serve para criar robôs inteligentes Aula 21-07/11/06 2

Cenário do Jogo Robôs marinhos são lançados no mar numa região onde se acredita haver petróleo. Dois times lançam dois robôs cada um para competir por poços na região. Os robôs são ocupados com sensores que fornecem informação sobre: A posição do robô. A pressão subterrânea no local. O gradiente da pressão no local. Cada robô pode perfurar o solo e iniciar a prospecção de petróleo em sua posição corrente. A produção de petróleo em um local será proporcional à pressão subterrânea no local. Cada time de robôs é controlado por um programa escrito pelo aluno. Vence o jogo o time que produzir mais petróleo no tempo determinado. Aula 21-07/11/06 3

A Arena A região onde os robôs competem chamada de arena consiste de uma região quadrada sobre a qual há uma distribuição de pressão. Os limites extremos da arena funcionam como paredes. A arena é dividida em pequenas unidades de espaço denominadas células. Cada célula é representada pelas coordenadas cartesianas (x,y). Aula 21-07/11/06 4

A Arena Cada célula têm um valor de pressão associado, variando dentro do intervalo [0, 1]. A figura ao lado mostra seis exemplos de arenas. Pontos claros representam locais de pressão elevada e pontos escuros representam locais de baixa pressão. Os robôs devem encontrar os locais mais claros da arena e perfurar nesses locais para maximizar a produção de petróleo. Aula 21-07/11/06 5

Os robôs Cada robô se posiciona sobre uma célula da arena. Sua posição pode ser descrita a cada instante pelas coordenadas (x r, y r ) desta célula. O robô está sempre voltado para uma das quatro direções (Norte, Sul, Leste, Oeste). A função robo:anda(), faz com que o robô mova-se para frente na direção para a qual está voltado. A função robo:volta() faz com que o robô mova-se para trás. Além disso, o programa pode instruir o robô a girar 90 o para a direita ou para a esquerda, com o uso das funções robo:direita() e robo:esquerda(). Aula 21-07/11/06 6

robo:anda() Aula 21-07/11/06 7

robo:direita() Aula 21-07/11/06 8

Programação dos robôs Os programas devem ser escritos utilizando a linguagem Lua. Linguagem estruturada criada na PUC nos anos 90. Exemplo de programa: while 1 do robo:anda() for i = 0, random(0,3) do robo:esquerda() end end Esse programa faz o robô perambular aleatoriamente. Um loop executa repetidamente o mesmo conjunto de ações. Aula 21-07/11/06 9

Programação dos robôs De modo a decidir onde realizar as perfurações, os robôs podem usar duas funções: robo:pressao() e robo:deltas(). A função robo:pressao() retorna o valor da pressão na célula em que o robô se encontra. A função robo:deltas() retorna dois valores, que informam como a pressão está variando na direção para a qual o robô está virado (direção tangencial) e na direção perpendicular à direção do robô (direção normal). A função robo:sonda() inicia a perfuração. dt = P(7,8) - P(5,8) dn = P(6,7) - P(6,9) Aula 21-07/11/06 10

O tempo O fator limitante do jogo é o tempo. Todas as ações executadas pelo robô levam um determinado número de unidades de tempo para serem concluídas. Durante essa ação, o programa do robô fica paralisado, aguardando a conclusão de sua ação. Uma partida leva 3 minutos. Aula 21-07/11/06 11

Comandos robo:anda() Desloca o robô uma célula para frente. A função retorna o valor 1 se a ação foi completada com sucesso, ou nil caso algum obstáculo tenha impedido o robô de se deslocar. (Duração: 0.02s) robo:volta() Desloca o robô uma célula para trás. A função retorna o valor 1 se a ação foi completada com sucesso, ou nil caso algum obstáculo tenha impedido o robô de se deslocar. (Duração: 0.02s) Aula 21-07/11/06 12

Comandos robo:direita() Faz com que o robô vire 90 o para a direita. A operação sempre completa com sucesso. (Duração: 0.02s) robo:esquerda() Faz com que o robô vire 90 o para a esquerda. A operação sempre completa com sucesso. (Duração: 0.02s) Aula 21-07/11/06 13

Comandos robo:pressao() Retorna o valor da pressão na célula onde o robô se encontra. O valor da pressão está sempre no intervalo [0,1]. A operação sempre completa com sucesso. (Duração: 0.02s) robo:deltas() Retorna dois valores, dt e dn, onde dt é o gradiente na direção tangencial ao movimento do robô, e dn é o gradiente na direção normal ao movimento do robô. A operação sempre completa com sucesso. (Duração: 0s) Aula 21-07/11/06 14

Comandos robo:posicao() Retorna dois valores, x e y, tal que (x,y) é a a célula onde o robô se encontra. A operação sempre completa com sucesso. (Duração: 0.02s) robo:sonda() Perfura um poço na célula onde se encontra o robô. A função retorna 1 se a perfuração ocorreu com sucesso, ou nil caso haja uma outra perfuração muito próxima. (Duração: 30s) robo:tempo() Retorna o tempo decorrido em segundos, desde o inicio da partida. (Duração: 0s) Aula 21-07/11/06 15

Como jogar O programa principal robots.bat deve ser executado. Aparece uma janela de simulação. Clicando com o botão direito do mouse na janela, aparece um menu. Aula 21-07/11/06 16

Itens do menu Aula 21-07/11/06 17

Visualização Aula 21-07/11/06 18

Diálogo de Configuração Coloca-se os nomes dos time, a cor de seus robôs e seus programas. Escolhe-se também em qual arena será feita a disputa. Após pressionar a tecla OK não há volta, só podendo ser trocada a arena. Aula 21-07/11/06 19

Problemas de otimização O problema de prospeção de robôs encaixa-se numa classe de problemas estudados na inteligência artificial. São os problemas de otimização. Este tipo de problema se caracteriza por: Um espaço de possíveis estados. Ex: arena Uma função de avaliação que indica o quão desejável é aquele estado. Ex: pressão Operadores que permitem a transição entre estados. Ex: anda, volta, esquerda, direita Aula 21-07/11/06 20

Exemplo de espaço de estados Aula 21-07/11/06 21

Problemas de Otimização O ponto mais alto (máximo global) corresponde à solução ótima. Exemplos de problemas que podem ser representados como problemas de otimização: Projeto de circuitos integrados Problemas de roteamento Problemas de escalonamento Aula 21-07/11/06 22

Algoritmos de Busca Local Esses algoritmos representam apenas o estado atual e não vêem além dos vizinhos imediatos do estado. São os melhores para tratar de problemas reais muito complexos, em que não é possível representar todos os estados. Baixo uso de memória. Uma alternativa: busca exaustiva Percorre todos os estados para encontrar o máximo. Só é possível quando o número de estados é pequeno. Outra alternativa: otimização global Exige que a função possa ser representada analiticamente. Usa técnicas de cálculo para determinar o máximo. Aula 21-07/11/06 23

Espaço de estados unidimensional Aula 21-07/11/06 24

Tipos de Busca Local Hill-Climbing = Subida pela encosta Só faz transições que melhoram o estado atual. Simulated Annealing = Têmpera Simulada Pode fazer transições que pioram o estado para depois melhorá-lo. Local Beam Search = Busca em Feixe Local Mantém k estados em vez de um único. Aula 21-07/11/06 25

Subida pela Encosta Guarda apenas o estado atual. É simplesmente um ciclo que move o estado na direção crescente da função de avaliação. Muda o estado para o melhor vizinho. Problemas: Máximos locais Platôs Encostas e picos Aula 21-07/11/06 26

Subida pela Encosta Quando a função é diferenciável, calcula-se o gradiente da função no ponto. O gradiente indica a direção de maior aumento na função de avaliação. Dá-se um passo na direção do gradiente. O tamanho do passo pode ser fixo ou variável. Aula 21-07/11/06 27

Têmpera Simulada Semelhante à subida pela encosta, mas oferece meios para se escapar de máximos locais. Com uma probabilidade e E/T, vai para uma direção aleatória. E é a diferença da função de avaliação entre o estado atual e o estado aleatório. T é a temperatura que vai caindo ao longo do tempo. Aula 21-07/11/06 28