Você está na página 1de 3

Explicação da Implementação

Aluno: Mijail Gamarra Holguin


Nro. USP: 7395689

Modo de Uso
São duas formas de usar a interfaz gráca da implementação:
A Primeira forma é fornecendo um arquivo. Para isto deve-se escrever o
endereço do arquivo na caixa de texto "Endereco:"e depois fazer click no botão
"Carregar Arquivo". No arquivo devem estar os principais parâmetros para o
funcionamento do programas, que são: o valor do Prêmio, o valor da Punição,
o valor do custo de cada celda, as quatro taxas de probabilidade, o comando
a usar e a estrutura do laberinto. Há dois tipos de denição dos parâmetros
uma é para a estrutura do labirinto e a outra é para o resto dos parámetros.
A forma de denir o labirinto é dando 5 linhas de 5 caracteres, cada caracter
pode ser: 0, 1, I, P ou A. 0 é para indicar uma celda vazía, 1 é para indicar
um obstáculo, I é para indicar a ubicação do ponto inicial do robô, P é para
indicar a ubicação do ponto proibido o de punição e A é para indicar o punto
alvo. Os parâmetros I, P e A devem aparecer só uma vez nas 5 linhas. Uma
linha será considerada como linha de matriz se começa com 0, 1, I, P ou A e
tem 5 caracteres.
Por exemplo as seguintes linhas geram o laberinto da gura:
I0P0A
01100
01000
01110
00000

Linhas necessárias. Labirinto Gerado.


Para cada um dos parâmetros haverá uma linha contendo o nome e o valor
do parâmetro da seguinte forma NomeDoParâmetro=ValorDoParâmetro sem
espaçõs, no caso das taxas serão dados quatro valores, Ação, Oposto da Ação,
Direita da Ação, Esquerda da Ação, os nomes dos parâmetros são: Prêmio =
Premio, Punição = Punicao, Custo = Custo, Ação = A, Oposto da Ação =
O, Direita da Ação = D, Esquerda da Ação = E e Comando = C.
Os possíveis valores de Comando são: N (norte), S (sul), W (oeste) e E
(leste). A suma das taxas de A, O, D e E deve resultar 1.
Os parâmetros podem ser postos em qualquer ordem, depois de cada linha
de denição de cada parâmetro pode haver cualquer cadena, mas depois de

1
outro caracter "=". Por exemplo as três denições seguintes dão o mesmo
resultado:
Premio=1 Premio=1 A=0.8=cualquer coisa após "="
Punicao=-1 Punicao=-1 Premio=1
Custo=-0.04 D=0.1 C=N=jfjfjfj
A=0.8 E=0.1 Custo=-0.04
O=0.0 C=N O=0.0=kekjeeje
D=0.1 Custo=-0.04 E=0.1=rklfn rfkjer
E=0.1 A=0.8 Punicao=-1=7
C=N O=0.0 D=0.1

Saõ 13 linhas necessãrias para a denição do labirinto e dos parâmetros, 5


para o labirinto e 8 para os parâmetros, pode haver mas linhas com qualquer
coisa, o algoritmo de busca de parâmetros lerá todas as linhas procurando só
as necessárias. As linhas da matriz podem estar intercaladas com qualquer
linha. Mas é importante a ordem das linhas da matriz, por que a matriz será
denida segundo a aparição de cada uma das linhas da matriz, podem haver
muitas linhas com o formato de uma linha de matriz, mas só as primeiras 5
linhas serão consideradas. Pode haver várias linhas de denição de um mesmo
parâmetro, mas só a ultima será considerada.
A Segunda forma é disenhando o labirinto diretamente sobre o canvas do
formulario, fazendo click em cada celda para estabelecer as celdas vazias e os
obstáculos, também pode-se fazer um click e arrastrar o mouse sobre o canvas,
para gerar obstáculos ou celdas vazias.
Para estabelecer as ubicações dos puntos inicial, alvo e proibido tem-se que
fazer primeiro um click sobre seu botão e depois um click no lugar onde está
ubicado ese ponto. Para disenhar outro labirinto pode-se apagar o anterior
fazendo click no botão Outro Labirinto.
Para fornecer os valores dos parâmetros só devem ser escritos nas suas
caixas de texto.
Também pode se fornecer o arquivo com os parâmetros e depois modicar-
los como foi explicado na segunda forma.
Para encontrar a política com os parâmetros fornecidos deve-se fazer um
click no botão "Solucao". Se todos os parâmetros são valores corretos, será
disenhado para cada celda vazia uma echa correspondente e também será
mostrado o caminho que o robô segue com a política calculada.
Para limpar as echas e as ubicações dos puntos I, P e A faça click no botão
"limpar".

2
Funcionamiento
O programa tem três arquivos para seu funcionamento, o arquivo onde esta
a implementação da interfaz gráca é o arquivo ep2.py , este arquivo chama ao
módulo mdp.py que tem a implementação do algoritmo de iteração do valor
e este módulo chama ao arquivo utils.py . Os dois ultimos arquivos foram
baixados da web do libro da disciplina, mas o arquivo que foi modicado foi
o mdp.py , foram agregadas dois funções asignar (que asigna os parâmetros
obtidos pela interfaz gráca), e resolver (que devolve a política dos parâmetros
asignados), também foram agregadas quatro variáveis globais que representam
as taixas de probabilidade das quatro direções, as variáveis são: ci (cima), ba
(baixo), d (direita), e (esquerda).
No arquivo principal tem a implementação dos evento que permitem a
interação do usuário com o programa, tem procedimentos para desenhar o
laberinto, para isto se usa a libreria Tkinter para a interfaz gráca, para o
laberinto se usa a canvas widget para desenhar linhas, polígonos e círculos.
Para os eventos dos wigets é usado o procedimento bind.
Também estão os procedimientos que trabalham com as matrices, e o pro-
cedimento mas importante do programa é o "sacarTaxas()"que permite girar
as taxas segundo o parâmetro comando, para obter as políticas precisadas.
Além dos três arquivos do programa, também há três arquivos: exSimples.txt,
exSemOrdem.txt e exComentarios.txt que são três exemplos do formato per-
mitido para os arquivos que fornecem os parâmetros de entrada, os três ar-
quivos dão o mesmo resultado.

Você também pode gostar