Esse projeto apresenta uma competição entre dois times de 3 agentes. Agentes podem realizar 10 ações diferentes:
- Mover para a direita
- Mover para a baixo-direita
- Mover para baixo
- Mover para a baixo-esquerda
- Mover para a esquerda
- Mover para a cima-esquerda
- Mover para cima
- Mover para a cima-direita
- Atacar (causa sua força em dano nos seus 8-vizinhos)
- Esperar (não fazer nada)
Modelos devem ser treinados para sair o índice de uma dessas ações (0-9).
Exemplo de chamada - (treinamento): python main.py -t -t0m="meu_modulo" -t0c="minha_classe" -t1m="random_ai" -t1c="DumbAI" -mw=20 -mh=20
Exemplo de chamada - (apresentação): python main.py -p -t0m="meu_modulo" -t0c="minha_classe" -t1m="random_ai" -t1c="DumbAI" -mw=20 -mh=20
Exemplo de chamada - (teste): python main.py -e -t0m="meu_modulo" -t0c="minha_classe" -t1m="random_ai" -t1c="DumbAI" -mw=20 -mh=20
No teste, a execução (sem apresentação) será repetida 10.000 e as porcentagens de vitórias, derrotas e empates serão exibidas na tela.
Caso um modelo necessite de acesso a uma chave para o carregamento (usando torch.load), use o argumento -k0 (ou -k1) para especificar a string da chave que deseja acessar.
Os valores de vitórias, empates e derrotas são relacionados a 10.000 repetições contra um adiversário RandomAI. Seguindo o seguinte comando:
python main.py -e -t0m="meu_modulo" -t0c="minha_classe" -t1m="random_ai" -t1c="DumbAI" -mw=20 -mh=20
Detalhamentos sobre o torneio são encontrados abaixo.
Aluno | Modelo | Pontos (Torneio) | Vitórias | Empates | Derrotas |
---|---|---|---|---|---|
Willian | DDQN | 12 | 64,85% | 30,53% | 4,62% |
Marcos | Genetic | 3 | 42,34% | 33,95% | 23,71% |
Cintia | DuelingDQN | 0 | 33,73% | 33,72% | 32,55% |
O torneio seguiu uma série de testes entre modelos com melhores de 5 e respeitando todas as combinações possíveis de testes. Vitórias representam 3 pontos, empates representam 1 ponto e derrotas 0 pontos. As seguintes partidas foram jogadas:
Modelo 0 | Modelo 1 | Vitórias |
---|---|---|
DuelingQNetwork | RandomAI | 2x3 |
DDQN | RandomAI | 5x0 |
Genetic | RandomAI | 1x1 |
DumbAI | RandomAI | 5x0 |
DuelingQNetwork | DumbAI | 0x5 |
Genetic | DumbAI | 0x5 |
DDQN | DumbAI | 3x1 |
DuelingQNetwork | Genetic | 0x3 |
DDQN | Genetic | 2x0 |
DuelingQNetwork | DDQN | 0x5 |
A tabela abaixo apresenta os resultados do torneiro em classificação.
Classificação | Modelo | Pontos |
---|---|---|
1º | DDQN | 12 |
2º | DumbAI | 9 |
3º | RandomAI | 6 |
4º | Genetic | 3 |
5º | DuelingQNet | 0 |