EP2

EP2

by Pedro Faria -
Number of replies: 20
Olá,

Estou com uma dúvida sobre a seguinte parte do enunciado do EP2:

O labirinto deverá ser 5x5. O alvo, "ponto proibido", posição inicial do robô e configuração do labirinto devem ser dados de entrada, obtidos através da leitura de um arquivo-texto, formatado segundo sua preferência.

A saída do EP não é apenas a política ótima considerando os parâmetros fornecidos? Se sim, para que seria usada a posição inicial do robô?

Obrigado.

Obs.: Desculpem-me por fazer uma pergunta sobre o EP2 neste fórum, mas foi o único lugar que achei disponível.
In reply to Pedro Faria

Re: EP2

by Pedro Faria -
Falha minha: a posição inicial do robô também é usada para o cálculo da política ótima, como aparece no método init da classe GridMDP:

def __init__(self, grid, terminals, init=(0, 0), gamma=.9):
In reply to Pedro Faria

Re: EP2

by Paulo Cheadi Haddad Filho -
Ainda estou confuso.

No que nos afeta o fato do labirinto ser 5x5? Testes?
In reply to Paulo Cheadi Haddad Filho

Re: EP2

by Pedro Faria -
Imagino que essa limitação tenha sido definida por causa da complexidade de tempo do algoritmo de iteração de valor, que é (por iteração) quadrática no número de estados (veja http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/node19.html  e http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/node22.html ).
In reply to Pedro Faria

Re: EP2

by Paulo Cheadi Haddad Filho -
Isso implica q nós temos q fazer o código impedir a execução pra mapas maiores que 5x5?

E outra dúvida: abrindo o código mdp.py no Eclipse com PyDev ele mostra alguns erros que não estou conseguindo resolver. Deixamos assim mesmo, professor?

Obrigado!
In reply to Paulo Cheadi Haddad Filho

Re: EP2

by Flávio Soares Correa da Silva -

Oi,

quanto ao limite de tamanho, isso significa que o programa deve funcionar para mapas 5x5. O programa deve ser bem feito e cuidar de exceções.

Quanto ao erro, talvez fosse o caso de você publicar que erro é esse e colocar em discussão. Minha expectativa é da entrega de um programa de boa qualidade e funcionando.

In reply to Flávio Soares Correa da Silva

Re: EP2

by Paulo Cheadi Haddad Filho -
Oi!

O problema era que o mdp.py deve ser usado em conjunto com dois outros arquivos do pacote de códigos: doctests.py e utils.py.

Não acho que entregar esses dois arquivos junto do EP vão causar problemas. =)
In reply to Pedro Faria

Re: EP2

by Flávio Soares Correa da Silva -

Oi,

é exatamente por esse motivo.

In reply to Flávio Soares Correa da Silva

Re: EP2

by Ricardo Augusto Teixeira de Souza -
Mas ainda que o algoritmo seja prejudicado pelo fato da complexidade, temos que nos amarrar a um labirinto de 5x5 ou podemos tornar o EP flexível a outros tamanhos?
In reply to Ricardo Augusto Teixeira de Souza

Re: EP2

by Flávio Soares Correa da Silva -

Oi,

vamos combinar assim: estará igualmente correto tanto fixar a dimensão como 5x5 como deixar variável. No segundo caso, só verificaremos, para efeito de correção, labirintos cujos dados de entrada fixem o tamanho em 5x5.

In reply to Pedro Faria

Re: EP2

by Paulo Cheadi Haddad Filho -
Outra dúvida:

"Junto com o código de seu programa, você deve entregar um arquivo texto indicando os parâmetros usados e os pontos no mapa onde as diferenças de políticas ocorreram."

O fato do mapa ser passado como parâmetro pro programa faz com que não podemos dizer muitas coisas gerais a respeito dele, então entregar um arquivo texto com "os pontos no mapa onde as diferenças de políticas ocorreram" não me parece fazer muito sentido.

Acho que faria sentido se tivéssemos que entregar um mapa qualquer como exemplo, ou então fazer o EP soltar um arquivo de saída com essas informações.

O que faço?


Obrigado!
In reply to Paulo Cheadi Haddad Filho

Re: EP2

by Flávio Soares Correa da Silva -

Oi,

vou tentar explicar um pouco melhor o que eu espero que seja entregue, além obviamente do fonte. Fixando os parâmetros que caracterizam o labirinto e ponto de partida do robô, os demais parâmetros podem ser manipulados, de forma que em algumas células as flechas mudem de direção (ou seja, a política seja alterada). O que eu quero é uma evidência empírica desse fato, ou seja, quero que sejam produzidos dados de entrada que alterem uma política.

In reply to Pedro Faria

Re: EP2

by Paulo Cheadi Haddad Filho -
Oi de novo!

Encontrei um tal "gamma" no código original e não descobri a relação dele com algum dos parâmetros de entrada dado na grande lista no enunciado.

Queria saber se faltou citá-lo, se ele deve continuar do jeito que está ou se é o horário e eu não tô lendo mais nada direito.

Valeu!
In reply to Paulo Cheadi Haddad Filho

Re: EP2

by Tiago Togores -
O gamma é o 'discount factor' e diminui a recompensa nos estados mais "adiantados".

A minha dúvida é:

Posso supor que sempre o alvo ou o ponto proibido podem ser alcançados, nesse caso poderia usar gamma = 1.

Ou o gamma deve ser mais um parâmetro da entrada?

Ou uso o valor padrão que está no código em python (se não me engano, 0.9).
In reply to Tiago Togores

Re: EP2

by Flávio Soares Correa da Silva -

Nesse problema específico do labirinto, conforme sugerido no livro, o gamma pode ser igual a 1. Ele pode ser assumido como fixo com esse valor.

In reply to Flávio Soares Correa da Silva

Re: EP2

by Tiago Togores -
Então vou ter que supor que a entrada tem algum estado final atingível senão o algoritmo pode não funcionar, certo?
In reply to Tiago Togores

Re: EP2

by Felipe Simionato Solferini -
Bom dia,

Teria como adiar o EP pra amanha de noite? smile
In reply to Pedro Faria

Re: EP2

by Almir Alves Pereira -
Gostaria de saber se todos estados que não são terminais tem o mesmo custo e se os pontos terminais sempre tem valores -1 e +1, como nos exemplos do livro.
In reply to Almir Alves Pereira

Re: EP2

by Ricardo Augusto Teixeira de Souza -
Segundo o enunciado do EP:

"Os valores do prêmio por atingir o alvo, punição por atingir o 'ponto proibido' e custo de cada movimento do robô devem ser fornecidos como dados de entrada."

Os valores do custo e pontos terminais não são fixos. Devem ser fornecidos como dados de entrada.

Da uma boa olhada no arquivo que vc baixou no site do livro. Depois da definição das classes, tem um exemplo de um objeto que define todos esses custos.