Skip to content
Snippets Groups Projects
Commit 8c97a88c authored by Sonnet Guillaume's avatar Sonnet Guillaume
Browse files

Ajout des commentaires

parent fb993cf8
No related branches found
No related tags found
No related merge requests found
Pour commencer,
regarder main.cpp, Utils.cpp et master_slave.cpp, et changer des paramètres pour s'amuser.
Objectif : Atteindre plus de 2000 par apprentissage sur Frostbite puis sur une autre rom
pour lancer, c'est ./atari -m et sur un autre terminal, lancer le launch.sh modifié (et avec les paramètres détonateur temps d'exécution et nombres d'esclaves) ou en local ./atari -s
#!/bin/bash
sleep $1h
sleep $1h #premier paramètre, temps d'attente en heure pour lancer les esclaves
#deuxième paramètre, le temps d'exécution de l'esclave en minutes
#troisième paramètre, nombre d'esclaves par machine (8 est un bon compromis)
MACHINES="echiquier
fou
......@@ -33,7 +34,13 @@ graves
blaye
fronsac
julien"
#Toutes les machines hors PC1 PC2 PC3, supprimer si non utilisé
#Changer les pgarcia par son login, son mot de passe entre les guillemets et raoh par la machine d'où on lance le maître
#Sur le LD_LIBRARY_PATH, supprimer le premier ? et remplacer le deuxième par le chemin d'accès où il y a l'exécutable atari
# par exemple /home-reseau/gsonnet/etudes_pratiques/atari2600/src/atari
#Commenter les for et les paramètres pour faire tourner les programmes sur des machines spécifiques
for machine in $MACHINES
do
for j in `seq 1 $3`
......
......@@ -9,13 +9,15 @@ int main(int argc, char *argv[])
{
using namespace std;
Utils::init_ALE();
//Pour tester un agant particulier
agent a;
std::ifstream ifs("best_agent.txt", std::ios::binary);
boost::archive::text_iarchive archive(ifs);
archive >> a;
cout << a << endl;
message::request<agent> request;
for (int i = 1; i < 10; ++i)
......@@ -25,8 +27,12 @@ int main(int argc, char *argv[])
request.params = a;
message::result<double> res = agent_worker(request);
}
//master_slave::run(argc, argv);
//
// master_slave::run(argc, argv); //pour lancer l'algo génétique
return 0;
}
// dans une première fenêtre ./atari -m
// et dans une autre, soit lancer launch.sh, ou ./atari -s si on veut rester en local
......@@ -34,24 +34,24 @@ namespace master_slave
if (vm.count("port")) port = vm["port"].as<int>();
if (vm.count("master"))
{
int np = 1, ns = 1;
int np = 1, ns = 1;//np, c'est le nombre de tests sur un individu et on l'évalue sur la moyenne, ns c'est le nombre d'évaluations qu'on fait tourner sur une machine
if (vm.count("np")) np = vm["np"].as<int>();
if (vm.count("ns")) ns = vm["ns"].as<int>();
const ga::parameters params
{
.mutation_rate = 0.6,
.crossover_rate = 0.6,
.tournament_size = 2,
.population_size = 30,
.nb_iterations = 100
.mutation_rate = 0.6,//combien de fois on laisse le programme cuisiner
.crossover_rate = 0.6,//combien de fois on croise les instructions
.tournament_size = 2,//taille du pool de sélection des individus (1 à 2% de la population)
.population_size = 30,//taille de la population
.nb_iterations = 100//nombre de générations
};
const agent::parameters agent_params
{
.input_size = 1344,
.output_size = 9,
.nb_registers = 8,
.block_size = 32,
.nb_blocks = 10
.input_size = 1344,//taille de l'écran
.output_size = 9,//là c'est spécifique au jeu, c'est le nombre d'actions possibles
.nb_registers = 8,//
.block_size = 32,//taille du bloc d'instructions
.nb_blocks = 10//nombre du bloc du programme
};
ga ga(params, agent_params);
auto fitness = genetic_algorithms::make_distributed_fitness<double, agent>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment