Skip to content

Commit

Permalink
projeto 2
Browse files Browse the repository at this point in the history
  • Loading branch information
fbarth committed Nov 7, 2023
1 parent a92e4cc commit 2e5f7c4
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 2 deletions.
5 changes: 3 additions & 2 deletions docs/avaliacao.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Os objetivos de aprendizagem desta disciplina serão avaliados através das segu
| Atividade | Peso |
| ----------| ----------|
| *N* implementações de agentes autônomos | 10% |
| 3 projetos | 30% |
| 2 projetos | 30% |
| Avaliação Intermediária | 30% |
| Avaliação Final | 30% |

Expand All @@ -28,13 +28,14 @@ Seguem os enunciados que se encaixam nesta categoria:
| [Atividade em sala de aula 5](./aulas/11_contribuindo_aigyminsper/index.md) | 09/10/2023 |
| [Atividade em sala de aula 6](./aulas/14_tictactoe/index.md) | 20/10/2023 |

## 3 projetos
## 2 projetos

Seguem os enunciados que se encaixam nesta categoria:

| Descrição | Prazo para entrega |
|:-----------------------------------------------------------------------------------------|:-------------------:|
| [Problema do cavalo no tabuleiro](./projetos/11_cavalo/index.md) | 06/10/2023 |
| [Jogador de BlackJack](./projetos/15_rl/index.md) | 23/11/2023 |


## Conversão de conceito para valor numérico
Expand Down
54 changes: 54 additions & 0 deletions docs/projetos/15_rl/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Jogador de BlackJack

A biblioteca Gymnasium possui um ambiente que simula um jogo de [BlackJack (*Blackjack-v1*)](https://gymnasium.farama.org/environments/toy_text/blackjack/). A documentação deste ambiente está disponível neste link [https://gymnasium.farama.org/environments/toy_text/blackjack/](https://gymnasium.farama.org/environments/toy_text/blackjack/).

## Atividades propostas:

* Execute diversas vezes o arquivo [BlackJack_Manual.py](https://github.com/Insper/rl_code/blob/main/src/part_04/BlackJack_Manual.py) para entender como o ambiente funciona. Principalmente como a representação do espaço de estados funciona.

* Implemente uma versão do algoritmo Q-Learning para o ambiente BlackJack. Importante perceber que o estado do BlackJack é representado por uma tupla de 3 elementos: (sua soma, carta do dealer, se você tem um Ás). De alguma forma você precisa transformar esta tupla em um número inteiro para poder usar como índice da q-table.

* Treine o seu agente usando o algoritmo Q-Learning e verifique o desempenho do mesmo.

* Implemente uma versão do algoritmo Sarsa para o ambiente BlackJack. Importante perceber que o estado do BlackJack é representado por uma tupla de 3 elementos: (sua soma, carta do dealer, se você tem um Ás). De alguma forma você precisa transformar esta tupla em um número inteiro para poder usar como índice da q-table.

* Treine o seu agente usando o algoritmo Sarsa e verifique o desempenho do mesmo.

## Perguntas

* Como podemos obter um agente com o melhor desempenho possível? É possível criar um agente que ganha ou empata em no mínimo 85% dos jogos? Se sim, quais são os hiperparâmetros para este agente? Se não, qual é o melhor resultado encontrado?

* É possível plotar a q-table? Este plot de q-table seria útil para um jogador de BlackJack real? Justifique a sua resposta.

## Entrega

* você deve criar um arquivo README.md informando os hiperparâmetros utilizados para o treinamento. Este arquivo README.md deve possuir um link para o plot da q-table.

* você deve entregar a sua implementação via Github Classroom no repositório: [](). Este respositório deve possuir o arquivo README.md, os arquivos python das implementações e a(s) q-table(s) gerada(s) pelo(s) algoritmo(s).


Exemplo de comparação entre algoritmos e hiperparâmetros utilizados no treinamento:

| Atributo / Algoritmo | Q-Learning | Sarsa |
|:----------------|:----------:|:----------:|
| alpha | | |
| gamma | | |
| epsilon | | |
| epsilon_dec | | |
| epsilon_min | | |
| qtd_episodios | | |


## Rubrica de avaliação

* Não terminou a implementação de nenhum dos algoritmos (Q-Learning ou Sarsa) e as suas respectivas avaliações $\rightarrow$ **Em Desenvolvimento (D)**.

* Implementou um dos algoritmos, treinou o agente para jogar BlackJack e avaliou o desempenho do agente executando diversas vezes o agente neste ambiente. Neste caso é necessário entregar a implementação, o arquivo README.md e a q-table treinada $\rightarrow$ **Básico (C)**

* Implementou e avaliou ambos os algoritmos, entregando a implementação, o arquivo README.md e as q-tables treinadas. Avaliou ambos os algoritmos, executando o jogo diversas vezes e medindo o desempenho dos agentes $\rightarrow$ **Esperado (B)**.

* Implementou e avaliou ambos os algoritmos, entregando a implementação, o arquivo README.md e as q-tables treinadas. Além disso, entregou o gráfico que resume a q-table e explicou se é possível utilizar tal informação em uma situação real ou não $\rightarrow$ **Avançado (A)**.

## Deadline

O deadline para a entrega desta atividade é **23 de novembro de 2023 às 23:30 horas**. Este projeto é individual.

0 comments on commit 2e5f7c4

Please sign in to comment.