Page 4 sur 8

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 15 Oct 2021, 08:52
de critor
ptitjoz a écrit:faudrait que je m'y mette mais pas trop motivé...

Pourquoi @ptitjoz ?
C'est super facile de gagner à date. ;)

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 15 Oct 2021, 12:26
de Lephe
Il faut remercier Critor pour le tableau des scores, du travail très propre comme d'habitude !

faudrait que je m'y mette mais pas trop motivé...

Je vais bientôt publier une explication de ia3greed.py en plus de celle de ia2_path.py. Tu verras, tu peux partir du code d'exemple et coder des petites optimisations "naturelles" (comme tuer les ennemis que tu croises) et tu seras déjà bien lancé :)

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 13:49
de Lephe
J'ai rajouté le lien vers le tableau des scores en haut de l'article. L'explication de ia3greed.py arrive sous peu.

Comme je l'ai fait remarquer sur le chat, ia3greed.py bat encore toutes les participations soumises à condition de décommenter une des astuces... :)

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 14:32
de ArtichautCosmique
J'ai (avec ce que j'ai envoyé) ce score pourtant, vs l'"IA greedy" et sa feature décommentée :
Code: Tout sélectionner
IA Artichaut v0.1:
Games solved: 10000
Score: 733641
python3 ia_artichaut.py  317,84s user 2,33s system 98% cpu 5:24,64 total

IA greedy (with kill):
Games solved: 10000
Score: 566565
python3 ia3_greedy.py  21,79s user 0,30s system 98% cpu 22,371 total

De plus je tiens largement en-dessous de 15 minutes :o (pour info j'ai un "1,4 GHz Intel Core i5 quatre cœurs")
Aurais-je oublié quelque chose ? Une autre ligne à décommenter ?

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 14:54
de Lephe
Les parties exactes dans le jeu de données ne sont pas juste 10000 à partir de la graine initiale (je voulais pas qu'on puisse prédire le générateur aléatoire, même si personne ne s'est amusé avec des shenanigans pareils encore) ; il y a 5 runs de 2000 parties à partir de graines différentes.

En tous cas, j'ai ça pour ton script de mon côté, bien en-dessous des 15 minutes aussi (avec en haut le cas de base pour vérifier qu'on fait bien la même chose). Tu n'es pas le seul à avoir un écart.

Code: Tout sélectionner
Games solved: 100
Score: 7082 (average 70.82)
Turns: 59.84 ± 10.67
Damage: 19.5 ± 19.4

Games solved: 10000
Score: 538962 (average 53.8962)
Turns: 64.0776 ± 11.35
Damage: 33.495 ± 27.56

Avec l'IA que tu as soumise et 10000 parties en démarrant de la graine par défaut j'ai ce score proche mais pas identique à ce que tu annonces (ce serait bien savoir pourquoi, c'est déterministe !).

Code: Tout sélectionner
Games solved: 10000
Score: 725380
python3 ia_artichaut_2021-10-01.py  268.60s user 0.16s system 99% cpu 4:29.21 total

J'ai regardé individuellement les graines de chacun des 5 runs et elles ont une tête raisonnable (pas de génération cassée ou de chose du genre). Je serais intéressé de savoir ce qui cause cette différence. Des quelques tests que j'ai fait dès qu'on se soucie à la fois du chemin et des obstacles ça se passe bien. Après si l'écart est vraiment ingérable je peux juste mettre 10000 parties à partir de la graine initiale et on n'en parle plus, c'est juste dommage.

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 15:26
de ArtichautCosmique
Je vois, merci beaucoup pour ces précisions !
Pour les écarts, possible que ce soit des versions de python différentes ? (j'ai python 3.8.6 de mon côté)
Je viens de tester avec 5 runs de 2000 parties, avec des graines différentes également :
Code: Tout sélectionner
# -> 0xc0ffee
Games solved: 2000
Score: 146347
# -> 0xcacafe
Games solved: 2000
Score: 145305
# -> 0xdeadbe
Games solved: 2000
Score: 146944
# -> 0xae12ae
Games solved: 2000
Score: 146347
# -> 0xfafafa
Games solved: 2000
Score: 147591

En tout j'ai donc un score de 732534 :S
Aussi j'ai 7092 pour 100 parties avec 0xc0ffee pour graine

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 15:50
de ArtichautCosmique
Petit edit (que je ne peux pas faire sur le précédent post) :
J'ai bien 7082 sur 100 parties, j'avais oublié mes dernières modifs ^^"

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 16:26
de Lephe
Merci. Il est évident après test que ton score d'environ 70 est la bonne valeur quand ton script est utilisé correctement. Je pense avoir mis la main sur le problème : si je mets l'argument seed=... à ta classe Game() le score diffère. De mon côté difficile d'y voir un effet - le script de test ignore l'argument seed et applique les graines présélectionnées. Ton script cependant mémorise des graines, et manifestement reproduit le générateur aléatoire pour contourner l'interdiction d'en lire l'état. Donc si je te donne la graine tu as 70, si je la cache tu as 53... j'attends confirmation de ta part mais je pense que c'est là le problème : tu calcules un ordre faux avec une graine fausse et donc c'est sous-optimal sur la majorité des plateaux.

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 16:29
de ArtichautCosmique
En effet, j'avais complètement oublié ça !
C'est bien ça, la classe Game prend 0xc0ffee par défaut, il va falloir que je corrige ça ><"
(le score s'approchant de celui de l'IA greedy s'explique donc)

Re: Concours de rentrée 2021 - Synchro-donjon !

Message non luPosté: 16 Oct 2021, 16:32
de ArtichautCosmique
D'ailleurs, il est interdit de contourner la génération aléatoire ? (en déduire les graines je veux dire)