Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites...

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

Transcript of Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites...

Page 1: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 1

Informática I

Aula 21

http://www.ic.uff.br/~bianca/informatica1/

Page 2: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 2

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”

Page 3: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 3

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.

Page 4: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 4

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).

Page 5: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 5

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.

Page 6: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 6

Os robôs

• Cada robô se posiciona sobre uma célula da arena.– Sua posição pode ser descrita a cada instante pelas

coordenadas (xr, yr) 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 90o

para a direita ou para a esquerda, com o uso das funções robo:direita() e robo:esquerda().

Page 7: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 7

robo:anda()

Page 8: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 8

robo:direita()

Page 9: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 9

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.

Page 10: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 10

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)

Page 11: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 11

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.

Page 12: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 12

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)

Page 13: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 13

Comandos

• robo:direita()

– Faz com que o robô vire 90o para a direita. A operação sempre completa com sucesso. (Duração: 0.02s)

• robo:esquerda()

– Faz com que o robô vire 90o para a esquerda. A operação sempre completa com sucesso. (Duração: 0.02s)

Page 14: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 14

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)

Page 15: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 15

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)

Page 16: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 16

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.

Page 17: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 17

Itens do menu

Page 18: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 18

Visualização

Page 19: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 19

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.

Page 20: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 20

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

Page 21: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 21

Exemplo de espaço de estados

Page 22: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 22

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

Page 23: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 23

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.

Page 24: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 24

Espaço de estados unidimensional

Page 25: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 25

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.

Page 26: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 26

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

Page 27: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 27

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.

Page 28: Aula 21 bianca/informatica1/bianca/informatica1/index_arquivos/Aula21-Inf1.pdf · • Os limites extremos da arena funcionam como paredes. ... – Projeto de circuitos integrados

Aula 21 - 07/11/06 28

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.