Chat:Fr/2021-05-14
dbdr: \o
Oioi: o/
Oioi: dbdr ?
Mazelcop: salut !
dbdr: Oioi?
Oioi: Oui, une question
Oioi: C'est la première fois que je participe "sérieusement" à un contest et je pense que j'ai eu quelques problèmes d'organisation :-)
Oioi: Tu parlais du git l'autre jour
Oioi: D'autres conseils pour un prochain contest ?
dbdr: brutaltester
dbdr: là je j'utilise un peu plus que d'habitude
dbdr: ça peut aider à avoir confiance dans tes changements
Oioi: ça permet de faire le contest en local, c'est ça ?
Oioi: Magus en parlait l'autre jour je crois
dbdr: voila
dbdr: entre deux ou plus de tes bots
Oioi: Ok, je vais installer ça merci !
dbdr: git c'est vraiment bien
Oioi: Oh, donc de faire de l'algo génétique ?
Oioi: Oui, j'ai plusieurs compte git et c'est super, c'est vrai
dbdr: tout est possible, mais pas de base, non
dbdr: au minimum, vérifier que ton nouveau bot gagne >50% contre l'ancien
Oioi: Oui, ça m'évitera de pourrir les submits... :rolling_eyes:
Mazelcop: cgstats, si tu ne l'utilises pas déjà c'est très utile aussi
Oioi: c'est quoi ?
Mazelcop: http://cgstats.magusgeek.com/app/spring-challenge-2021/Oioi
Mazelcop: ça permet de voir tes winrates lors de tes submits
Oioi: Ok, le dernier tableau me montre au milieu de mon "entourage" c'est ça ?
Oioi: \o
Mazelcop: c'est ça
Oioi: Hum... c'est pas parfait :-) Parce que entre hier 20h et ce matin au réveil, j'ai bien pourri le submit... et j'ai fait beaucoup plus de parties que ce qui est affiché !
Oioi: Note bien que ma pudeur est plutôt satisfaite que ça ne se voit pas ;-)
Mazelcop: ça n'affiche que les partie de ton dernier submit je crois
dbdr: oui
Oioi: cool :-)
dbdr: last battles
jolindien: o/
Mazelcop: o/
Mazelcop: *
dbdr: gg jolindien :)
jolindien: :)
Oioi: gg
Oioi: Vlavv m'impressionne
**dbdr vote pour Vlavv comme boss gold
**Oioi vote pour Vlavv aussi - même si ça signifie qu'il m'arrêtera au niveau Gold
jolindien: jolindien sait toujours pas comment vous écrivez comme ça :(
Oioi: slash me
**jolindien ok
jolindien: ah :)
Thyl: Aujourd'hui Beam Search pour passez silver
Thyl: j'ai en peu plue de 100 generation de coups possibles en pleine partie
Thyl: ça doit se faire
joelthelion: je rêve ou ça rame moins le matin?
jolindien: l'arêne appartient à ceux qui se lèvent tôt
joelthelion: héhé
dwarfie: 50 places de mieux dans la nuit ... pourquoi est-ce que je coderais un truc qui fera moins bien ? :D
LogicalKip: Hello qqun saurait comment recommencer à se battre contre le boss ? j'ai chargé un combat contre un joueur dans l'ide et je ne sais pas remettre comme avant
Tiouz: supprimer -> choisir le boss
Tiouz: Si tu es en gold il n'y a pas de boss
dwarfie: ah ... et vry qui est passé gold ... et en plus devant moi ... comme par hasard ... ;)
LogicalKip: bon j'ai quitté et relancer le jeu, c'est bon...
WhatTrickeryIsThis: les vrais il redemmarre le pc, font la mise à jour windows 10 et change d'écran
Vry: o/ les gens
Tiouz: o/
Vry: Oui dwarfie j'avais un sal bug dans mon MCTS (je mélangeais les tours des joueurs).
dwarfie: mouais ... du coup , je vais quand meme etre obligé de recoder un peu :yum:
Vry: +un filtrage des seed et hop directement top 300 Gold ... (j'avais +8 points sur le boss Silver).
dwarfie: ah ouais quand lmeme ... j'avais +3 ... du coup , la y'a +5.5 entre nous deux ... la logique est respectée :D
BigUP: 4.8 points a gratter pour etre au niveau du boss
BigUP: Vry, ha !? ca y est tu es passé Gold !? GG !
Baboom_59: Hello ! J'ai vu ton ascension en quasi direct cette nuit Vry bravo, je suis monté aussi mais j'ai pas dépasser le top 1200 en gold :joy: J'ai encore du travail
dwarfie: passage a la poussette ...? ;)
Vry: Merci Baboom_59
Zorg1: ah oui gg Vry ;-)
Bon[]Crayon: Salut
M_C: C'est vraiment bizarre... Chaque fois que je teste un idée qui me semble bonne et logique pour optimiser.... Je perds 200 places mini. Quand je bouge une petite constante juste pour tester un peu au pif, c'est l'inverse... Quelle galère!
Oioi: C'est parce que t'as un nom prédestiné pour un MCTS ;-)
POLOB: Tu gagnerais sans doute à utiliser BrutalTester
M_C: Je fais meme pas un MCTS, je fais que des if... :)
Gilde: Qu'est ce que c'est brutalTester ?
Oioi: Bienvenu au club !
M_C: Je sais pas comment tu t'y prends pour être si bien classé
POLOB: https://www.codingame.com/forum/t/cg-brutaltester-because-you-love-to-be-brutal/2716
POLOB: en gros, tu peux tester ton nouveau bot contre un autre
POLOB: localement
POLOB: souvent, tu prends ton bot actuel comme ref
POLOB: et tu évalues tes modifs localement
Gilde: stylé
Gilde: merci
POLOB: en général, c'est plus efficace que de lancer ton bot dans l'arène pour voir si il est meilleur que l'autre
Gilde: Sûrement !
Aveuh: Bien le bonjour ici
POLOB: hello
Gronahak: J'ai pas encore réussi à passer le pas du BrutalTester, à chaque concours, je me dis "Peut être la prochaine" ^^
POLOB: pareil :)
POLOB: à chaque fois, je me lance comme un béta
POLOB: et après, j'ai la flemme de le mettre en place
M_C: C'est utile surtout pour les hauts classés qui ont des algos similaires. Quand on est en bas c'est plus utile de voir ce que fait notre algo contre les premiers du classement
POLOB: je suis dans la 2ieme catégorie :D
POLOB: le boss, ça me suffit :)
Vaurtitoux: quel boss
Vaurtitoux: :flushed:
POLOB: Silver... oui oui :)
POLOB: et on ne se moque pas !
Vaurtitoux: il est chou ton toutou
Flaaamort: Yeah, DUCT en place :) Mais il génère 7 simulations pare seconde ^^'
POLOB: Cherche 'I don't know what I'm doing' dans google image :)
POLOB: ça explique mon classement :)
Vaurtitoux: j'suis dans le meme bateau
POLOB: c'est ton chien qui code à ta place :D
Bon[]Crayon: Automaton2000 Code moi un bot.
Automaton2000: c'est pas si facile que ça
Bon[]Crayon: Automaton2000 C'est pas faux.
Automaton2000: je pourrais pas te dire que tu dois faire un truc en rapport avec le fait que quand tu passes ...
Bon[]Crayon: Automaton2000 Dis moi tout.
Automaton2000: ce n'est pas si loin de la vérité
pardouin: o/
pardouin: j'ai optimisé mon mcts UTTT, je suis passé de 37 rollouts à 39 \o/
pardouin: :'(
Bon[]Crayon: o/
WhatTrickeryIsThis: tout n'est pas vrai Automaton2000, mais la vérité c'est tout :thinking:
Automaton2000: c'est la façon de compter les pions qui sont centraux mais c'est difficile avec un bitboard
dwarfie: Automaton2000 ... tu ment
Automaton2000: c'est que j'ai pas de timeout
dwarfie: Automaton2000 ... tu ment encore plus
Automaton2000: et comme c'est un jeu de mot
AxFab: Hello, j'ai une question, il y a t'il un moyen de mesurer le temps passer en simu. Avec `clock_gettime()` j'ai toujours 0 ?
SeebOmega: quel language ?
dwarfie: high_resolution_clock::time_point now = high_resolution_clock::now();
- define TIME duration_cast<duration<double>>(high_resolution_clock::now() - now).count()
AxFab: je suis en C, pardon
dwarfie: si t'es en c++
dwarfie: (peut etre la meme en C mais j'en sais rien :rofl:)
egaetan: http://chat.codingame.com/pastebin/c3dd9b44-765c-4774-99b0-2f5ac5955eb3
Gronahak: Je C pas :D
egaetan: gettimeofday(&timer, NULL);
JBM: o signifie "pas d'erreur", c'est plutot bien
dwarfie: c'est jeune et ca ne sais pas , c'est vieux et ca ne sait plus ... tout le probleme de la france actuelle ...
egaetan: int timeout = 50 * 1000; SET_TIMER(timer, timeout);
while (!TIME_TO_STOP(timer, now))
egaetan: gettimeofday(&now, NULL);
egaetan: AxFab tout est en vrac mais c'est là
Magus: #define NOW high_resolution_clock::now()
- define START __time__start = NOW
- define TIME duration_cast<duration<double>>(NOW - __time__start).count()
high_resolution_clock::time_point __time__start = NOW;
Magus: mettre un START; après le premier input
Magus: et juste mettre un NOW > 0.090 (ou la limite que vous voulez) quelque part
Magus: ah c'est en C ?
Magus: bah incrémentez votre langage !
jfaixo: D :o
WhatTrickeryIsThis: clojure++ :( ?
WhatTrickeryIsThis: pitié non
AxFab: ok gettimeofday marche merci :)
JBM: 'fin clock ça devrait marcher aussi hein
JBM: me demande si c'est pas ce que j'ai utilisé la dernière fois
WhatTrickeryIsThis: fait un truc qui marche, oublie les trucs qui devraient marcher
Bon[]Crayon: Automaton2000 Remet les pendules à l'heure svp.
Automaton2000: du coup ça me fait de la merde sur le serveur Bon[]Crayon
Gronahak: Arrête de te chercher des excuses Automaton200
Gronahak: Arrête de te chercher des excuses Automaton2000
Automaton2000: il me faut un truc qui est pas trop mal
Troph: c'est quoi le principe de Automaton2000 ? balancer une quote au hasard ?
Automaton2000: je me fait un peu des deux
dwarfie: bon relire mon mcts 3 fois , c'est fait ... maintenant le plus dur , le tester vraiment 10 fois ...
JBM: oui j'ai completement utilise clock la derniere fois, et ça marchait
dwarfie: Automaton2000 .. donnes moi des bots tortue
Automaton2000: je l'ai fait en bash
WhatTrickeryIsThis: pas au hazard c'est une chaîne de markov sur le chat Fr
JBM: http://chat.codingame.com/pastebin/3b8b073b-238c-4fe6-8771-8bcb01e35a47
dwarfie: Automaton2000 ... enfin tu fais une chose de bien toi
Automaton2000: tu peux prendre en compte le fait que j'ai une erreur de syntaxe
dwarfie: (╯°□°)╯︵ ┻━┻
Bon[]Crayon: :peace:
dwarfie: pour une fois qu'il faisait une chose bien , il fait une erreur de syntaxe ... Automaton2000 , t'es vraiment un gros nul ....
Automaton2000: ce sont des simulateurs de vol
dwarfie: :thinking: .... vol d'XP ? ou de CP ?
SeebOmega: Automaton2000 si une tortue et un lievre font la course qui gagne ?
Automaton2000: si tu mets la souris dessus
dwarfie: :rofl:
dwarfie: il t'as eu la
Bon[]Crayon: Quel troll.
SeebOmega: j avais pas pense a un tiers qui interfere j avoues
Magus: bon, maintenant qu'on a dormi, on retente de coder DUCT
Magus: Troph: si tu veux le code de Automaton2000 il est sur githu
Automaton2000: ok, je suis pas certain de ce que j'ai changé
Magus: *github
WhatTrickeryIsThis: le duct c'est un mcts avec des rollouts par dummy, c'est ça?
Magus: https://github.com/dreignier/cgbot-core/blob/master/cgbot.cpp
Magus: WhatTrickeryIsThis: c'est un mcts mais avec les joueurs qui jouent en simultanés
Magus: parce que la dans l'arène j'ai un MCTS mais normal
Magus: donc dans ma simu, l'adversaire "connait" mon coup
egaetan: mode parano
WhatTrickeryIsThis: oui
WhatTrickeryIsThis: ok
Oioi: Automaton2000, ça marche les encouragements pour les bots ?
Automaton2000: donc on va pas être la
POLOB: Un jour, je comprendrai ce type de discussion...
dwarfie: segfault sur la mise a zero de la clock ... alors ca , j'avais jamais eu ...
optplx: c'est quoi le truc pour avoir des tree searchs performants? j'ai un mcts qui marche pas mal en local mais pas assez performant pour l'arène (timeout tout le temps)
optplx: ca passe trop de temps a copier les nodes
POLOB: Optimize la taille de tes objects
Magus: ah ah ah ah ah
dwarfie: precalcule tout ce que tu peut ...
Magus: j'ai nommé une variable seedAction
Magus: et ça me fait beaucoup rire
dwarfie: Magus ... oups ;)
POLOB: pas mal Magus
optplx: j'ai fait la même Magus!
optplx: j'ai ri tout seul
philRG: bon ça a l'air bien cg brutal tester
Oioi: ça pourrait être une blague virale
philRG: vous savez qu'en coordonnées hexa, on fait: hex + direction pour se déplacer, c'est simple
Magus: évidemment que c'est bien brutaltester !
Magus: c'est moi qui l'ai codé :D
Magus: (avec des contributions d'autres gens, cf les pull requests)
Troph: philRG tu l'utilises beaucoup ?
philRG: et comme dit mon beau-père qui confond une souris avec un mulot quand il me voit derrière l'écran: "Et ça marche?" Faudra que je le teste car j'en ai marre des messages d'insultes de la console quand je fais spam submit
nabaztag: Vous conseillez quel langage (autre que le C/C++) pour coder des parcours d'arbres de type MCTS ?
philRG: Magus: :thumbsup:
philRG: Troph: non jamais utilisé, j'utilisais CGBenchark, mais sur ce contest, ça ne marche plus
Thyl: Magus t'as pas fait un countTree toi ?
Magus: c'est quoi un count tree ?
nabaztag: Est-ce réellement viable en java avec le GC ?
Thyl: la variable
Thyl: countTree
BuluBulu27: Magus, j'ai un problème avec brutaltester, est-ce que tu peux m'aider à le régler en mp ?
Magus: ah non j'ai pas de variable counttree
BrainSolver: moi aussi je m'amuse dans le nommage. J'ai une fonction "photosynthese()"
Magus: BuluBulu27: tu peux poser ta question ici ce sera plus simple. Après la plupart des soucis que les gens ont avec brutaltester c'est leur langage qui vide pas le buffer
Magus: c'est fait automatiquement sur CG, mais brutaltester ne le fait pas
Thyl: après ta bin(r) en python
BuluBulu27: http://chat.codingame.com/pastebin/f8d5c2ae-bea9-452a-a7e9-689993ff553b
BuluBulu27: Oh, le pastebin
BuluBulu27: Mais aucun attribut manifest principal dans le jar du referee du spring challenge
Magus: tu as suivi la doc de brutaltester pour créé un referee compatible ?
philRG: cg brutal tester marche pour des bots hors java?
Magus: https://github.com/dreignier/cg-brutaltester#how-do-i-make-my-own-referee
Magus: cg brutal tester marche pour tous les bots qui peuvent être lancés en ligne de commande
Magus: si ton bot est en php, faut que t'ai php sur ta machine
optplx: on peut pas prendre celui la pour commencer a jouer ? https://github.com/LSmith-Zenoscave/SpringChallenge2021
BuluBulu27: J'ai vu ça, du coup je voulais te demander à quoi correspondait GameResult
Magus: optplx: normalement si
Magus: La doc de brutaltester est pas à jour, faut dire que CG met à jour leur SDK à chaque contest :D
Magus: donc la classe CommandLineInterface est probablement plus exactement bonne
Magus: mais faut regarder le referee de Zenoscave, il est censé fonctionner lui
Troph: Oioi tu as mis du random dasn ton bot ?
Oioi: Non
BuluBulu27: Merci Magus
Troph: c'est bizarre en relançant la même seed il y a des résultats différents
Troph: alors que moi non plus je n'ai pas de random
Oioi: Aucun random, je t'assure
Troph: je te crois, c'est juste que je comprends pas
Oioi: A un moment donné j'en avais mis et j'ai mis du temps à comprendre pourquoi ça cassait mes perfs
Oioi: Si tu utilises un bot d'hier, alors oui, yen avait
Syj: si tu as un algo qui dépend du temps , tu peux ne pas découvrir les même solution car la charge processeur peut varier
Troph: oioi ah oui effectivement j'en utilise un qui est moins bien classé que celui de maintenant
Oioi: Non plus, ni usage de random, ni usage du timer sur l'algo actuel
Oioi: Ok alors Troph
Oioi: Mais ça casse mon algo, parce que sur les solutions ayant le même score, lorsque je prends la première dans l'ordre donné par les inputs, elle est plus proche du centre...
- -)
Troph: j'ai du mal à gérer ça aussi, mais pour le moment c'est un peu le cadet de mes soucis x)
Littleyounes: les gars on peux seed une case richness 0 ?
Oioi: Non
Littleyounes: ptdrrrrrrr toujours la pour m'aider
Littleyounes: merci encore
Oioi: :-)
WhatTrickeryIsThis: tiens une win contre mazel dans l'arene
Mazelcop: aye
WhatTrickeryIsThis: ça fait plaisir au moral merci
WhatTrickeryIsThis: avant le boss de ce soir, y à besoins
dwarfie: mcts qui fait que wait ... top ca ... :D
dwarfie: humm ... 16k et il me dit qu'il a pas tester au moins une fois chaque coup a depth 0 ... y'a un Automaton2000 derriere ca :D
Automaton2000: ce n'est pas mon cas
dwarfie: forcement , si je met les arbres dormant a la lecture , totoro il ronfle
dwarfie: pffff...
Magus: je me fais sortir du top 20 !
Magus: ça fera même pas légende mon truc
BrainSolver: T'as compris le duct ?
Magus: ouai, avec des explications de dbdr
Magus: sinon je serais encore en train de chercher l'adresse de celui qui a écrit le pdf pour lui envoyer des menaces de mort
JBM: elle est en premiere page
JBM: t'as pas du chercher bien longtemps
Magus: oui
Oioi: Troph : tu as raison, j'ai laissé le random dans mon algo !
Oioi: Je le vire :-)
Troph: Oioi ahhhh je me disais bien
fenrir: au cas ou pour le MCTS simultané, j'avais trouvé: http://cyber.felk.cvut.cz/teaching/radaUIB/disertace_Lisy%20Viliam.pdf très bien
fenrir: ça explique DUCT mais aussi Regret Matching et Decoupled Regret Matching
fenrir: (sur Xmas Rush, j'avais fait le DRM, il fonctionnait un peu mieux que le DUCT mais ça doit dépendre de l'inportance de la partie "coup simultané")
fenrir: (le gros de l'algo est le même, seul les stats conservées + la selection du coup change)
dwarfie: bon , je l'avais pas encore faite celle la ..... "!" au lieu de "~" .... ca fait mal
Vaurtitoux: C'est la retraite qui te guette papi
Vaurtitoux: :sunglasses:
dwarfie: mais oui ... p'ti con ... :rofl:
Vaurtitoux: :laughing:
dwarfie: pour la peine ... distribution generale de chiantos :candy:
AlphaBril: @Troph allez on tente un nouveau code, road to top 800 ?
dwarfie: (vais-je etre encore poussé un peu plus ;))
AlphaBril: on vas passer la barre des 900
Mazelcop: gg
optplx: cette sensation quand ton bot monte quand même :p
AlphaBril: surtout quand tu pensais prendre 200 place et que tu en es a 400 xD
optplx: xD
optplx: gg
optplx: la déception par contre quand t'as flirté avec le top 200 pendant plusieurs minutes pour finalement retomber la où t'étais avant :'(
optplx: pour légende vous pensez que c'est les top combien qui passent ?
Troph: jusqu'ici ils ont pris 50% de chaque ligue
Troph: mais je n'en sais rien pour légende
optplx: can't wait
dwarfie: 36% , puis 25% ... c'etait pas 50% ...
dwarfie: la legende ca sera 20 ... personne , pas %
optplx: ah ok c'est complètement mort alors xD
Troph: on était 5000 en bronze, on a finit 2500 en argent et là 1400 en or
optplx: en fait vous dites la même chose ptet, en or ca fait 25% du nombre total de joueurs environ
optplx: mais 50% de argent
Palmipedus: question pour les gens qui ont fait un MCTS, avec un dumy qui fait just wait, comment savoir si a la fin du rollout on a gagne ou pas?
dwarfie: oui ..on finit ... mais ca a pas commencé sur ces effectifs la ... pas ma faute si ca passe autant a la poussette ... et stagne ensuite en pas de ligues ...
dwarfie: un dummy qui fait juste wait ... autant pas avoir de dummy ... donc faire du mc
Neumann: T'es en DUCT Magus ?
Magus: En train d'essayer de le coder ><
Magus: (dans l'arène je suis en parano)
Neumann: Avec des vrais rollouts ou une depth cappée ?
Neumann: C'est pas la merde à gérer les branches de longueur variable ?
Magus: je rollout jusqu'à la fin de la partie mais c'est pas des rollouts full random
Neumann: Ok
Neumann: Propre
Rajh: Tu fais 30K rollout full ?
Magus: ouai le nombre que j'output c'est le nombre de rollout
Rajh: Mais c'est dingue
BuluBulu27: Je suis à 40 rollout, c'est quasi pareil, non ?
Syj: qu'est ce que vous entendez exactement par rollout ?
BuluBulu27: Nombre de parties jouées
Syj: ok merci
Magus: Ouai enfin avoir beaucoup de rollout suffit pas à être top 20 :D
optplx: mais 40 non plus je pense
Rajh: Ouai fin avoir 2K rollout en ayant optimisé ca suffit pour rien
BuluBulu27: Ahahahah merci optplx
optplx: xD
Syj: Magus dans Simu, tu repars depuis le début à chaque fois, ou tu as un système qui permet de revert le coup et de tester une autre branche ?
Magus: j'ai plein de truc. J'ai surtout un cache pour la phase de harvest
Syj: donc tu mets en caches plutôt que de revert l'action
Syj: Merci :)
Magus: aie mes perfs, ça pique le DUCT
Magus: bon, contre moi même, c'est pas fameux
Magus: enfin après j'ai peut être des bugs
BuluBulu27: Magus, le brutaltester s'arrête après trois tours, et ça dit qu'il y a un problème avec l'output du referee. Aurais-tu une piste ? Dans l'IDE, le code des players fonctionne correctement
Magus: t'as pas un souci avec log4j2 ? je crois que le referee de zenoscave il manque un log4j2.xml
optplx: je confirme
BuluBulu27: J'ai copié celui du dossier test pour le mettre dans src/main/resources
Magus: si tu veux j'ai une version du referee à moi ici : https://github.com/dreignier/SpringChallenge2021
Magus: mais faites attention, j'ai viré la génération des moves du referee
Magus: donc si votre code tiens compte des possibleMoves, ça va pas marcher :D
BuluBulu27: Il faut que je retire le input.read de mes possibleMoves dans ce cas ?
Magus: non
BuluBulu27: Oh, il indique 0 j'imagine
Magus: c'est juste que le referee donnera toujours 0 dans le nombre de possibleMoves
BuluBulu27: Merci, je vais tester avec le tien :)
Magus: j'ai aussi modifié la durée pour les timeouts et les durées des parties
Magus: parce que parfois localement le referee me détecte des timeouts sur mes codes, mais bon c'est sans doute parce qu'avec plein de parties en parallèle les CPU c'est le bordel
Magus: donc j'ai monté plus haut pour éviter ça
BuluBulu27: T'inquiète, c'est pas quelques ms de dispo en plus qui me feront croire que mon code est efficace ! :D
BuluBulu27: Merci Magus, ça fonctionne du tonnerre !
dwarfie: mon mc qui a monte de 70 places au moment ou mon mcts comence a faire des choses ... ca donne pas envie de continuer a bosser dessus ... je vous jure :D
BlaiseEbuth: Yo tout l'monde ! Automaton2000 ! AutomatonNN ?
Zorg1: o/
Automaton2000: bon je fais que des if... :)
BlaiseEbuth: \o
b0n5a1: o/
dbdr: \o
BlaiseEbuth: \o/
Tiouz: re !
dbdr: tu as gagné BlaiseEbuth?
BlaiseEbuth: Et ouai.
Zorg1: cette aisance
dbdr: gg
BlaiseEbuth: Merci :)
Vry: o/ Tiouz b0n5a1 dbdr Zorg1 b0n5a1 dwarfie Magus BuluBulu27
b0n5a1: o/ Vry
Tiouz: o/ Vry !
BlaiseEbuth: Alors. Je vais te kick, tu vas revenir, et tu vas me dire bonjour Vry.
Tiouz: et pk b0n5a1 il a eu le droit à 2 ?
b0n5a1: c'est le fail double b0n5a1 BlaiseEbuth ^^
BlaiseEbuth: :(
dwarfie: b0n5a1 a trop abusé avec le nutella BlaiseEbuth ... du coup il te cache :D
Vry: o/ BlaiseEbuth
BlaiseEbuth: :rofl:
BlaiseEbuth: \o Vry :hugging:
pardouin: boss or :o
Tiouz: wtf ? c'est tôt, je m'y attendais pas !
egaetan: ouch
pardouin: un boss or sauvage est appary
Andry_: oh déjà :(
pardouin: il me défonce :D
BlaiseEbuth: Apo veut pouvoir ranger avant de partir en week-end.
nicolasD: Oo
WhatTrickeryIsThis: il est naze
pardouin: je vais me tuner dessus en attendant qu'il soit dans l'arène
Tiouz: Il est dans l'arène, il monte
BuluBulu27: \o Vry
Vry: Je vais attendre demain pour passer comme un prince ... en survolant la ligue ... :upside_down:
BlaiseEbuth: Vrycare
Vry: Je demande à passer Légende SVP !
Vry: https://www.codingame.com/share-replay/555077419
Tiouz: Je pense que ça fera 50 en gold
Vry: Osef je le bats :p
WhatTrickeryIsThis: nan, c'est sophilegacy
WhatTrickeryIsThis: le 34
dbdr: on est d'accord que perdre ma place bien au chaud avec un resub serait une boulette?
BlaiseEbuth: ménonvasy
Vry: Plutôt oui
dbdr: :D
Tiouz: C'est bizarre il fait souvent des grow avant des seed, ce qui semble mauvais
WhatTrickeryIsThis: faut pas push maintenant ça va foutre le merdier
Tiouz: Vasy push pour saturer les serveurs ! Tout le monde resub !
Troph: Tiouz pourquoi grow avant seed serait mauvais ?
WhatTrickeryIsThis: pourquoi il est 1er maintenant kovi
Tiouz: Ba imagine que l'adversaire te prenne ta place de seed
WhatTrickeryIsThis: insuportable ce kovi
dbdr: Tiouz oui mais grow avant seed peut réduire le coup du seed
Tiouz: Ah oui je suis con
BlaiseEbuth: *coût
dbdr: grow 0 -> 1
dbdr: BlaiseEbuth :P
krolhm: salut ! Il faudra être top combien pour passer legende ?
krolhm: top 3 xD ?
Tiouz: Attend 10min...
WhatTrickeryIsThis: pour l'instant 300
WhatTrickeryIsThis: mais il monte encore
krolhm: ah...
krolhm: ok merci
WhatTrickeryIsThis: il a l'air tout pourri :D
Tiouz: SophieLegacy est en Python, le boss a été choisi pour aller vite ?
dwarfie: krolhm ... il te repondait pas en fait ...
Tiouz: Sophia*
WhatTrickeryIsThis: ou bien c'est Apo qui a codé le boss, en personne
krolhm: WhatTrickeryIsThis tu ne me parlais pas ?
SophiaLegacy: Lepython c'est cool :D
WhatTrickeryIsThis: sisi kro
Tiouz: krolhm en tout cas pas 457...
BlaiseEbuth: Tiouz non il a été choisi pour être déterministe, et personne fait ça en C++ ou Rust. :3
Tiouz: Ah oui intelligent
dwarfie: la reponse sera 20 a l'arrivée ...
WhatTrickeryIsThis: tu peux voir le submit du boss dans le leaderbord
dwarfie: non mais c'est une blague ...
dwarfie: c'est quoi ce boss ...
krolhm: WhatTrickeryIsThis ok merci
optplx: en tout cas je suis 250 et je perds quasi a tous les coup contre le boss :/
krolhm: Tiouz j'espere bien xD
dwarfie: ils ont prevu un ligue God et on est pas au courant ?
Troph: il semble stagner vers 184
Tiouz: Les dernières places sont chiantes à gagner
BlaiseEbuth: Bon. Bah y'aura autant de monde que d'habitude en légende... x10 :rofl:
AceTea: il est quelle place le bot gold ?
dwarfie: ouais , c'est parti comme ca
pardouin: comment vous savez que c'est sophialegacy le boss ?
WhatTrickeryIsThis: nan il est naze, Apo va sans doute recouper à la machette
Tiouz: Il lui reste 20% de matchs, il monte pas assez vite
dwarfie: mon mcts est merdique , mon mc a encore gagné 30 places ... et legend representera rien en fait ... pourquoi continuer ....
AceTea: Il a quel nom le boss ? JE le vois pas dans le leaderboard
**dwarfie va tenter un rage-quit a la boulet
pardouin: il est dans les 140
WhatTrickeryIsThis: faut dire que le top 100 est quand même costaud
dbdr: allez, soyons fous :grimacing:
WhatTrickeryIsThis: ça reste un beau challenge
BlaiseEbuth: J'approuve le nom, faute d'approuver le rank.
WhatTrickeryIsThis: si en plus dbdr il push et démonte le boss :D
pardouin: oui tout le monde fait genre oh il est trop simple mais si c'est sofia elle est classée 30 donc bon...
noob_coding: Bonjour tout le monde, cela fait bien longtemps que je ne suis pas venu sur cette plateforme, Quelqu'un sait si on peut toujours synchroniser notre code sur IDE (intellij IDea) directement sur codingame ?
BlaiseEbuth: Ouai noob_coding
dbdr: c'est quoi ce boss de 14H?
BlaiseEbuth: C'est apo qui part en we dbdr
WhatTrickeryIsThis: on peut toujours synchro sur visual apparemment, vu les stream
Tiouz: allé 7% de matchs, il se fait un bon combo et fini sub 100
BlaiseEbuth: noob_coding https://www.codingame.com/forum/t/cg-local/10359
noob_coding: tu aurais un guide a me proposer? BlaiseEbuth? je n'ai pas trouve grand chose sur internet (mise a jour les plugins de 2016)
noob_coding: thxx
SophiaLegacy: http://chat.codingame.com/pastebin/b3acfab9-2bb4-4997-9e6d-b09445539528
pardouin: lol
krolhm: mdr
BlaiseEbuth: RIP SophiaLegacy
pardouin: retrouve la version qui va bien dans l'historique ^^
Tiouz: Mais dans l'arène t'es 30, c'est bizarre que le boss n'y arrive pas
Neumann: wtf ce boss
WhatTrickeryIsThis: je suis passé légende :)
dbdr: c'est une erreur je pense :D
WhatTrickeryIsThis: c'est pas normal
optplx: gg
krolhm: gg
dwarfie: Tiouz ... mon code d'hier monte de 10 places par heures depuis ce matin ... mais si je le resoumet , je parie que je perd 200 place ... c'est la magie du classement ...
SophiaLegacy: wha je suis passé légende ! j'ai bien fait de pas resoumettre monde, code :D
BlaiseEbuth: T'as toujours été une légende WhatTrickeryIsThis
WhatTrickeryIsThis: Apo, quelqu'un a piraté ton poste peandant la sieste :scared:
Neumann: [CG]jupoulton2: t'as oublié de cancel le run du bot après ton test
pardouin: gg à tous ceux qui sont passés ^^
WhatTrickeryIsThis: :scream:
Tiouz: 1er, screen !
Oioi: Je suis 9ème derrière dbdr ???
Tiouz: J'ai gagné mes 8 premiers matchs legend lol^^
pardouin: attends que dbdr monte hein :)
pardouin: et maelcop
pardouin: +z
Tiouz: Non mais c'est une blague, j'ai juste le screen^^
Tiouz: Là c'est bon, le dieu de l'aléatoire m'a laché
dwarfie: Oioi ... dbdr va te taper sur la tete et tu vas rester gold juste derriere le boss :p
WhatTrickeryIsThis: bien, les submits collé à droite désormais
AceTea: le boss est chaud
Tiouz: haha lol
WhatTrickeryIsThis: oui il est un poil plus chaud que l'ex top 100
WhatTrickeryIsThis: il a surement fait un mauvais submit
pardouin: oioi sur le fil ^^
pardouin: :popcorn:
Oioi: :-) cool
pardouin: oioi derrière :(
dbdr: j'ai sub juste au bon moment moi :D
Oioi: oh oh
pardouin: oioi devant
Oioi: le boss hésite...
pardouin: prenez les paris
Oioi: C'est parce qu'on était en plein summit, c'est ça ? dbdr ?
Magus: wow, 100 personnes en légende
pardouin: dbdr t'as sub au bon moment pour mettre oioi en sueur oui
dwarfie: BlaiseEbuth ... t'abais raison sur le x10
dwarfie: avais
BlaiseEbuth: Ouai... :/
WhatTrickeryIsThis: 100 légendes c'est quand même 5% or
Oioi: Faut que je passe devant Fluxor alors ^^
WhatTrickeryIsThis: sont combien en or?
Magus: elle est grosse la ligue légende
dwarfie: WhatTrickeryIsThis... peut etre ... mais or , ca devrait pas etre plus que 50% silver ...
pardouin: 1263
Magus: d'habitude les ligues légendes ça commence a 20 personnes
Oioi: Parce que dbdr me met la râclée à chque partie :-D
noob_coding: BlaiseEbuth: Merci, ca fonctionne nickel
BlaiseEbuth: :thumbsup:
WhatTrickeryIsThis: le pire c'était légende top 4 sur le contest avec HULK
Magus: si j'avais vu que légende commençait à top 100, je me serais pas inquiété d'être dedans avec mon ancien code lol
BlaiseEbuth: DOUBLE HULK !
WhatTrickeryIsThis: mazel est en train de défouiraller le top gold
pardouin: oioi à 0.11 du boss
pardouin: j'ai bien fait de me co c'est rigolo :)
jolindien: perdu 30 points :(
Oioi: :disappointed:
pardouin: :(
dbdr: jolindien c'est fini les >60.0?
jolindien: mouais
Tiouz: Il y a plus de matchs lors des submits legend ?
dbdr: à force de pas faire de rerun...
jolindien: 100 c'est abusé, on va finier à 300
jolindien: *finir
dbdr: bien d'accord
dbdr: ça dévalorise la légende
pardouin: 0.02
pardouin: \o/
Oioi: :-)
Oioi: Hihaaaa !
pardouin: gg !
R4N4R4M4: Salut tout le monde
jolindien: je voudrais bien qu'on me reconnaisse en tant que tel
R4N4R4M4: Légende est ouver ??
R4N4R4M4: *t
dbdr: gg Oioi
BlaiseEbuth: oy R4
jolindien: gg Oioi
R4N4R4M4: J'ai pas pu voir, mon PC était en panne, je viens de changer le ventilo
WhatTrickeryIsThis: :clap:
R4N4R4M4: Bon, je remonte la bête et je m'y recolle
R4N4R4M4: Bravo aux Legends ! :D
pardouin: t'es pas loin
pardouin: un peu de tuning et ça passe
pardouin: bon je vais étudier son heuristique à ce boss, non mais
WhatTrickeryIsThis: 11 win consecutifs en legende :triumph:
pardouin: et gg mazelcop
pardouin: (sans suspense)
Oioi: gg
pardouin: sophialab si tu veux écrire ton PM maintenant, n'hésite pas XD
AceTea: Je n'ai plus les messages de debug dans la console, c pareil chez vous ?
optplx: non j'ai moi
AceTea: juste besoin de refresh la page
Zorg1: ah ils viennent d'ouvrir la légende, j'arrive plus à suivre moi ^^
Vry: GG les gens !
Vry: Du coup, même si je suis pas dispo. y'a qaund même moyen que j'y arrive ...
Fluxor: @Oioi: t'as reussi, j'ai encore 30% de matchs a faire avant de pouvoir te rejoindre :-D
Von-Karma: J'arrive aussi Fluxor ! gare a toi
Fluxor: LOL
Fluxor: j'ai resoumis pile au moment du switch, du coup j'arrive trop pas a voir si mon changement est positif ou negatif...
dbdr: pareil
Tiouz: C'est tellement long les submits en legend...
Zorg1: ah ils ont ouvert la légende à 100
Zorg1: c'est peu banal
WhatTrickeryIsThis: à 14h le vendredi
Zorg1: avant de partir en week end, normal ^^
Tiouz: Grosse battle royale ce week end
Von-Karma: Aller la ! Pousse toi le boss !
BigUP: merde ! ils ont déjà ouvert la légende !??
Zorg1: oui Apo profitait que tu faisais ta sieste, le méchant
Zorg1: en train de coder un MCTS à l'arrache tout en suivant une réunion
Vry: Il est prenable MiyazaBoss ... le problème, encore un fois c'est les deux cents bots entre lui et moi ...
Zorg1: je sens que le résultat va être fabuleux
BigUP: va falloir que je m etrouve du temp set de la motivation pour simuler... j'ai l'impression que j'ai plus le choix
BigUP: oui bon, ok, j'ai pas une grosse motiv
POLOB: gup
POLOB: oups :)
Zorg1: bigup : pareil, quand je vois le temps que j'ai mis pour coder la simu :(
Zorg1: et je fais un MCTS parce que j'ai vraiment pas envie de me casser les fesses à pondre une éval, mais je sens qu'avec mes perfs, je vais rire
Luksis: ouh putain la legende a déjà ouverte
Luksis: j'etais sur qu'elle ouvrirait à 100 !!
BlaiseEbuth: Ton langage Luksis. :rage:
Luksis: de quoi qu'est ce qu'y a ?
Kh4z: C'est parce que personne a demander a quelle heure ouvre la ligue :no_mouth:
Zorg1: ça doit être ça :D
Troph: c'était donc ça le secret
Luksis: Hahaha bien vu
BlaiseEbuth: Arrête de jurer dans le chat, y'a des enfants ! Merde à la fin.
BigUP: putain ! c'est vrai quoi bordel !
Luksis: hahaha rooooh ça vaaaaaa :D
Troph: I am twelve and what is this
Luksis: les enfants jurent bien pire maintenant
optplx: j'ai croisé un gamin de 5 ans en trotinette qui m'a dit que je cassais les couilles hier
Luksis: ouais tu vois
Kh4z: il avait raison? :<
optplx: ca dépend du point de vue
Luksis: mais du coup
Zorg1: chépa je lui ai cassé la gueule avant qu'il s'explique
optplx: (je lui ai mis une balayette)
optplx: xD
Luksis: si la légende a ouverte à 100 est ce qu'y aurait pas moyen que j'essaie de rentrer dedans ?
Luksis: c'est peut etre l'occas'
Luksis: le probleme c'est que j'ai polus d'inspi
Luksis: plus*
Zorg1: ça tombe bien j'en ai jamais eu
BlaiseEbuth: Dyson, pas de perte d'inspiration.
Zorg1: oui mais vu que j'ai un sac à tips, avec Dyson je les met où du coup mes tips ?
BlaiseEbuth: :shrug:
Aveuh: Plop ici, si jamais il y a des gens qui ont du temps à perdre, je vais essayer de streamer un peu dans une quinzaine de minutes (sur https://www.twitch.tv/astro_md).
BlaiseEbuth: o/ Aveuh
Zorg1: \o aveuh
WhatTrickeryIsThis: tu stream quoi?
Kh4z: fortnite
Aveuh: Le spring challenge mdr :D
WhatTrickeryIsThis: un truc sur la déformation de l'espace temps ou le contest?
Aveuh: Le contest
Aveuh: Les streams de physique je fais pas la pub ici :P
Neumann: T'as fix ton micro ? :D
Aveuh: J'avais fait un premier stream vendredi dernier où j'étais passé bronze (puis argent) en python.
Aveuh: Là je suis passé en C++ donc ça va être un magnifique stream debug.
Aveuh: @Neumann yes, j'ai trouvé le pb ...
Neumann: C'était quoi ?
Aveuh: Je sais pas pourquoi Ubuntu l'avait passé à 150% en gain de base.
Neumann: Propre
Aveuh: Je l'ai baissé à 100% et maintenant je peux monter le volume sans que ça sature trop
Aveuh: (faudra m'aider à calibrer dans le stream, mais ça devrait être mieux :))
dbdr: Neumann le niveau vers #50 a bcp monté, non? avant je perdais presque aucun match avant #25
Neumann: J'ai pas trop analysé le niveau pour être honnête
dbdr: ok. j'avais juste pas resub depuis un moment
dbdr: esperons que c'est ça et pas une regression de mon bot
Oioi: J'ai eu le même sentiment lors de mes deux dernières submit dbdr
dbdr: ok, merci Oioi
Oioi: Bon, moi, j'ai déjà atteint les étoiles :-) C'est la fin de mon contest ! J'ai mis *Space oddity* comme paroles de mon bot et je vais vous souhaiter un excellent week-end !
dbdr: oh, tu pars déjà Oioi?
Oioi: Oui
dbdr: mais le contest démarre en légende! ;)
Oioi: Je pense que j'ai atteint mes limites ;-)
dbdr: serieusement, bravo pour ta performance
Mazelcop: gg Oioi
dbdr: tu vas faire des multis d'ici le prochain contest?
Oioi: Et j'y ai déjà passé un bon bout de temps ! Il est temps de retourner à ma vie
Vry: Ouais bravo Oioi !
Oioi: Oui, je pense
dbdr: :+1:
Oioi: Mais je vais avoir beaucoup de travail jusqu'à fin juillet. Vous me verrez plus beaucoup d'ici là
Oioi: Merci à tous et bonne continuation !
Tiouz: Bon courage, et gg !
dbdr: gg
BlaiseEbuth: :wave: Oioi
BigUP: Oioi, suffit de s'organiser ! :)
Tiouz: BigUP exactement, il s'organise, mais sans CG^^
dwarfie: pff ... j'etais en train de coder ... le boss arrive et mon code a fait rollback dans l'ide ...
leojean890: o/ all wow ça a cut super tôt et super haut ;)
dbdr: quelle idée de coder sur cg dwarfie
dbdr: cela dit c pas cool
dwarfie: j'etais en train de debugger ...
MaximePRZ: Petite question : j'ai un MCTS , une heuristique pas trop mauvaise , mais j'ai l'impression que mon MCTS ne converge pas vers la bonne solution. Pour la selection j'ai utilisé un DUCT ( je calcule son meilleur coup et mon meilleur coup avec l'UCT, puis je selectionne l'etat correspondant à son meilleur coup + mon meilleur coup) est ce que j'ai raté quelque chose ?
Tiouz: combien de rollouts ?
MaximePRZ: ca depend , mais on va dire 500 en moyenne
Tiouz: et tu es combien au classement
Tiouz: ?
MaximePRZ: avec mon MCTS je suis dernier gold
MaximePRZ: avec mon heuristique 500 environ
Tiouz: C'est pas délirant
BlaiseEbuth: 500 rollouts c'est peu. (euphémisme)
Tiouz: C'est pas la taille qui compte
Tiouz: (pas que)
MaximePRZ: ah oui ? tu penses que c'est pas assez pour déterminer une bonne solution ?
BlaiseEbuth: Non. Mais la quantité un peu quand même
Vry: Il faut que tu vires des coups ... sinon le MCTS est noyé dans la masse ...
Vry: ... et il ne trouve rien !
BlaiseEbuth: Ouai le prunning c'est important aussi.
MaximePRZ: j'ai aucune idée des ordres de grandeur, il faut combien de rollout grosso modo pour que ca soit acceptable?
Tiouz: C'est pas seulement le MCTS, c'est que si tu laisse tous les coups, les rollouts sont vraiment nuls (donnent une très mauvaise évaluation)
Vry: Tout est relatif ...
Tiouz: Je suis à 900 rollouts et je suis #12
MaximePRZ: d'accord merci, je vais cut beaucoup plus
Vry: Mon MCTS est 215 Gold avec 7k rollout ... soit 10 fois plus que Tiouz
Tiouz: Faut vraiment qu'on mélange nos codes...
Vry: Ouais !
MaximePRZ: on est d'accord que un rollout = une simulation complete jusqu'a la fin du jeu hein (je prefere etre sur qu'on parle du meme nombre)
pardouin: oui
Tiouz: Oui
leojean890: bah ouais ajoute des heuristiques de cut et hop^^
pardouin: leo tu en es où ?
Vry: Moi le mien n'a aucune heuristique ... pour l'instant je prune sauvagement les seeds
MaximePRZ: allé c'est parti, je coupe tout ça et je vous tiens au courant ^^
leojean890: #175 gold avec des heuristiques de cut
leojean890: mais je suis en simu depth 1 ou minmax depth 2
pierre31: Hey all, je vois que ça parle de MCTS, j'ai réussi à en coder un mais moins bon que mon beam. Quand vous parlez d'heuristiques dans le MTCS, je ne comprends pas trop. Le but n'est pas une fois qu'on expand de finir la partie ?
leojean890: l'ennui c'est que le minmax depth 2 marche moins :P
pardouin: lol
leojean890: pardouin et toi ?
Fluxor: Tu peux faire des rollout partiels
pardouin: toujours en heuristique, 580 :(
Fluxor: genre tu simules 2/3 jours et tu evalues
leojean890: enfin #176 gold là mais avec le minmax je rankais 50-100 places moins bien hier soir lol
Tiouz: Heuristique en MCTS = générer que les coups intéressants, comme ça tes rollouts jouent mieux et donnent une meilleur évaluation
BlaiseEbuth: pierre31 des heuristiques pour écarter certains moves
pardouin: j'ai passé pas mal de temps sur UTTT à essayer de faire un mcts mais j'ai que 40 rollouts
pierre31: Ah ok
pardouin: alors ça m'a un peu découragé
leojean890: j'avoue c pas con
leojean890: pardouin tu fais pas ça en C++ ?
leojean890: UTTT je suis gold mais en heuristique lol
pardouin: ben j'aimerais le faire en python déjà
leojean890: enfin bottom gold
pierre31: ouf j'en peux plus en tout cas, j'y passe bcp de temps sur ce contest, c'est chaux de monter...
pardouin: là je suis top 10 silver en heuristique
Tiouz: Tu as des heuristiques sur UTTT ? Je veux bien qu'on en parle !
pierre31: chaud*
Palmipedus: mais sur le MCTS, vous simulez l'opponant comment?
pardouin: le mcts m'apporte rien avec aussi peu de rollouts
Fluxor: apres ici c'est un jeu simultane, donc MCTS et minimax sont pas forcement adapte (les 2 vont etre pessimiste, genre l'adversaire devine toujours ce que tu joues...)
leojean890: pardouin comme moi top 10 silver mais je me suis fait pousser il y a un mois mdr
Fluxor: il faudrait mieux faire du D-UCT
leojean890: le truc sympa c'était de se faire pousser sur hypersonic en légend pendant ce contest
pierre31: Fluxour, il vaut mieux beam alors ?
Tiouz: DUCT c'est une variante de MCTS
Fluxor: http://mlanctot.info/files/papers/cig14-smmctsggp.pdf
pardouin: du coup je voulais faire un mcts sur le spring challenge mais si c'est pour faire 40 rollouts c'est pas la peine :/
leojean890: Fluxor ouais j'ai fait une sorte de minmax mais sans mettre à jour l'état de jeu^^
Fluxor: modifie pour converger vers l'equilibre de Nash, meme en coup simltane
pardouin: je vais tenter quand même, au pire la simu servira pour autre chose
leojean890: mais le pbm du minmax j'avoue c'est le fait que l'adversaire remonte le score le plus bas AVANT qu'on remonte le score le plus haut
dbdr: pardouin fais pas un MCTS en python...
leojean890: et du coup pour du simultané c'est pas ouf
BlaiseEbuth: fais pas de python...
pardouin: c'est mort d'avance dbdr ?
leojean890: faudrait que je fasse beam search pour ce contest
Tiouz: Même en python 40 rollouts c'est pas beaucoup
leojean890: tu le fais en numpy
leojean890: tkt tu auras des perfs^^
pardouin: oui j'espérais en faire au moins quelques centaines
Zorg1: bon 2500 rollouts, va falloir optimiser ce bazar :(
pardouin: tu me conseillerais quoi du coup dbdr en python ? en heuristique pure j'atteins mes limites là
dbdr: beam ça peut aider
leojean890: moi dans ce contest j'ai une éval qui est très time consuming déjà
leojean890: donc quel que soit le langage, ça peut être lent
leojean890: beam search je crois que bcp du top ont ça ici
Vry: Palmipedus : comme pour moi, je genère la liste des coups possibles pour chaque joueur et j'en prends un au hasard dans chaque liste
Vry: Je reste sur un arbre de recherche classique donc je ne joue réellement les coups un noeud sur deux
Vry: *que
philRG: moi pareil pas de simulation, en plus ça va car je sais pas simuler :-D
nicola: :o
philRG: je viens de voir que j'avais confondu l'Ouest avec Sud-Est
philRG: c'est l'effet breton :-D
philRG: faut que je debugge ma fonction d'ombres en coordonnées cubiques
WhatTrickeryIsThis: pas de scala en legende, on est bon pour le rerun
rafaelSorel: coté beam quel sont les perfs recommandées niveau nodes explorés ?
Mazelcop: 50k c'est bien
rafaelSorel: :grimacing:
Mazelcop: mais 5k ça le fait probablement aussi
rafaelSorel: avec un beam size genre 300
MaximePRZ: Je suis à 600 rollouts en ayant gardé que mes 2 meilleurs coups et son meilleur coup. Je comprends pas comment vous pouvez arriver à 30k simu lol
Mazelcop: ça dépend de la profondeur que tu vises
BlaiseEbuth: Tu codes en quoi aussi MaximePRZ
MaximePRZ: le mcts le but c'est d'aller au bout non ? :p
MaximePRZ: java
BlaiseEbuth: Voilà
MaximePRZ: Quoi, y a aucun algo de recherche d'arbre utilisable en java^^? sur l'UTTT ca marchait bien pourtant
Tiouz: Comment tu décides quels sont les 2 meilleurs coups ?
rafaelSorel: mazelcop, yep je teste un beam size à 300 avec un depth de 5 max
Mazelcop: 5 tours ou jours ?
MaximePRZ: j'ai une heuristique qui trie mes coups du meilleur au pire
rafaelSorel: 5 tours
rafaelSorel: pas jours
BlaiseEbuth: J'ai pas dis que c'était pas utilisable, mais que les gens qui font 30k rollouts sont pas en java.
egaetan: ou bien ils trichent
Tiouz: Ou ils mentent
Tiouz: MaximePRZ Réfléchis à la logique derrière ton UCT, j'avais un bug où l'adversaire jouait toujours le coup qui m'avantageais le plus
dbdr: arf
Ylec: salut
dwarfie: moi c'est mon mcts qui ment ... jour 23 avec 100 point de retard ... il me dit qu'en faisant wait il gagne avec 57 sun en stock ... :D
Ylec: je vois qu'il y a bcp de python en legend, ca me laisse un peu d'espoir d'y arriver :)
BlaiseEbuth: Y'a beaucoup de gens tout court en legend...
dwarfie: ce qui est passé a l'ouverture n'a pas forcement de grande chance de passer ensuite ...
philRG: Moi je suis bloqué depuis 2j et j'avance pas :-(
Luksis: le boss gold est lui meme en python
Vry: Oui et il n'est pas si fort que ça ...
philRG: c'est peut-être mon bot qui a été choisi lol
BlaiseEbuth: Non
Luksis: dwarfie perso si je passe en légende , je serai déjà plus que comblé
philRG: ah ouf
R4N4R4M4: Je repush pour voir
dwarfie: Luksis ... perso , si je passe en legend ... ca sera la premiere fois lors du contest :rofl:
Luksis: dwarfie la meme
BlaiseEbuth: Ah ?
Vry: Aller dwarfie, go go go !
dwarfie: si je trouve ou peche mon mcts ... je peut esperer un peu ...
Vry: Je suis devant toi, ça devrait te motiver ! :p
dwarfie: apres , j'ai annonce un rage quit a la boulet en debut d'aprem , ca peut aider aussi )
dwarfie: ;)
dwarfie: ah ... maintenant il sait qu'il perd ... y'a du progres :rofl:
dwarfie: mais qu'une fois sur deux
egaetan: alors qu'il perd tout le temps ?
egaetan: mets le en constante
jolindien: gg Saelyos !
BlaiseEbuth: :p
dwarfie: pire ... tour 23 il trouve 50% de victoire alors qu'il mort et enterre
dbdr: jolie fusée de Wala
dwarfie: au jour
BlitzProg: c'est quoi que vous appellez "rollout" au fait?
BlitzProg: je dois être super ignorant
Julius2k17: on est 2
BlaiseEbuth: Une partie complète jouée avec des moves aléatoires
egaetan: une partie qui va jusqu'à la fin
egaetan: pas forcément avec des moves aléatoires
jolindien: et pas forcément à la fin
BlaiseEbuth: pseudo-aléatoires
jolindien: ^^
BlaiseEbuth: nan
BlaiseEbuth: mais
BlaiseEbuth: fix ta terminologie
jolindien: du coup c'est vague
JBM: et pas forcément une partie
Vry: Une suite de coups en somme ... :innocent:
Julius2k17: en fait c un peu tous les contests la même chose non ?
Julius2k17: tu codes le moteur de règles et tu simule
Tiouz: Oh je viens de faire une égalité parfaite !
BlitzProg: ok merci^^
jolindien: rollout il me semble que ça vient de roll dice (lancer de dés)
cuduputu: Sinon, il y tjrs les heuristiques pour varier les plaisirs :D
Julius2k17: c dommage qu'ils aient pas pensé à mettre plusieurs variétés de graines, car ya des plantes qui aiement bien l'ombre
Baboom_59: Du coup sur vos mcts comment vous faites pour simuler les mouvements de l'adversaire ? Je n'ai jamais implanté ce type d'algo, mais la je sens que je vais devoir m'y mettre si je veut progresser dans le classement. Et je ne sais pas trop comment m'y prendre
Xmaster6: Il faut que tu te serves des regles pour générer tous les coups possibles et ensuite tu fais un arbre de jeuù
philRG: les heuristiques ça me rappelle mon prof de physique capable de sortir une formule qui demande 4 pages de calculs par simple esprit de déduction
Xmaster6: D'ailleurs yen a qui sont en Rust? Car je veux passer mon MC en MCTS mais je sais pas dans quoi stocker mon arbre
philRG: tableau de 5 m de large mais il lui suffisait que 20 cm
philRG: le gars était apparemment allergique aux maths
Julius2k17: vous calculez toutes les permutations possibles sur la liste de coups ?
nicolasD: non, rien du tout XD
Andry_: y en a qui font mcts pas en c++ ?
BlaiseEbuth: permutations ?
Baboom_59: Merci Xmaster6 ! Mais du coup tu recalcule ton arbre à chaque tour en fonction du move de l'adversaire ?
cuduputu: @philRG perso, c'est plutôt la flemme de coder un truc trop complexe ^^
Julius2k17: au début du tour, la liste d'actions possibles, tu évalues chaque combinaison ?
Xmaster6: Pas forcément en théorie.., moi pour l'instant l'implémentation de mon arbre marche pas top car j'essaie de pas le calculer à chaque fois
BlaiseEbuth: Bah chaque move possible, oui.
noob_coding: re, petite question, comment peut-on connaitre la version du langage utilisee par codingame ? (pour mon cas, scala)
BlaiseEbuth: Regarde la faq
Julius2k17: demande à thibault
philRG: oui flemmard sûrement et puis 4 pages de calcul ça n'apporte rien devant une classe, après c'était quand même le but des épreuves...
egaetan: dans la faq
BlaiseEbuth: Julius2k17 j'ai pas compris pourquoi tu parlais de permutations...
cuduputu: et j'ai aussi l'impression que pour avoir une approche type MCTS ou beam search efficace en Python, faut se lever tôt...
BlaiseEbuth: Oh non. Tu peux dormir
cuduputu: je m'y mets demain alors ^^
Bon[]Crayon: Une idée Automaton2000 ?
Automaton2000: mais je trouve pas dans les inputs ?
Bon[]Crayon: Automaton2000 C'est à toi de trouver.
Automaton2000: y'a des gens qui ont eu la bonne idée
Dahll: Quelqu'un a trouvé comment gérer les WAIT avec MC
Bon[]Crayon: Automaton2000 Justement, si tu as la bonne idée, prêtes la moi svp.
Automaton2000: si je joue contre toi
Littleyounes: pff pq je calme le boss silver et je monte pas
Littleyounes: hyper frustrant
bananaMixer: Xmaster6 Je participe au concours en Rust. J'ai stocké mon MCTS dans un très grand vecteur alloué au début de la partie. Du coup, je n'ai pas besoin de gérer les pointeurs vers les nœuds. À la place, j'ai des indices. Plus facile à gérer et pas besoin de se battre contre le compilateur.
bananaMixer: Cette méthode s'appelle arean-allocated trees si tu veuxchercher plus d'informations.
bananaMixer: arena*
Xmaster6: Ah ok merci genre t'as pris un array de taille fixe mais très grand si j'ai bien compris? Une taille sure de ne pas être dépassée?
bananaMixer: C'est ça, oui.
Xmaster6: Ok je vais regarder ça merci
bananaMixer: Tu as le droit à 768 Mo de mémoire. En fonction de la taille de ton nœud, tu peux estimer la taille du vecteur max que tu peux allouer.
Xmaster6: Ah je savais pas pour le memoire limite
bananaMixer: L'info est dans la FAQ : https://www.codingame.com/faq
bananaMixer: Tu as aussi le nom des crates présents.
Xmaster6: nice!
Xmaster6: merci
optplx: bananierMixer sur ton lien il y a "A quoi servent les jeux de tests " . ca veut dire qu'il y a des jeux de tests dispo qqepart?
optplx: parce que moi je dump qqes inputs "manuellement" pour avoir des data de tests mais si il y en a deja dispo c'est mieux
bananaMixer: C'est valable pour les puzzles. Pas pour les concours.
optplx: ah ok
jolindien: étrangement calme ...
BlaiseEbuth: trop calme
jolindien: calme avant la tempête ?
Littleyounes: o/
jolindien: o/
jolindien: o/ \o o/ \o o/ \o o/ \o
jolindien: un peu d'exercice pour se maintenir en forme
Littleyounes: oui
VirtualAtom: \o/ ^o^ o[[ /o\ un peu de danse maintenant :-}
jolindien: allez série des deux bras
jolindien: \o/ o \o/ o \o/ o \o/ o
Littleyounes: Mon ia est entrain d'échapper au controle
jolindien: j'suis mort
Littleyounes: 600 lignes
Littleyounes: elle va dominer le monde
jolindien: 600 ça va encore
Thyl: jolindien gg!
jolindien: :)
Littleyounes: gg de quoi
Thyl: j'essaie encore de passer le sivler
jolindien: je suis 1er, mais j'ai l'impression que c'est parce que tout le monde est mort
Littleyounes: noway
Littleyounes: :o
Littleyounes: t'es premier
Littleyounes: quel bg
**Magus regarde ses 1500 lignes de code
jolindien: duct ?
Littleyounes: aoee
Littleyounes: il a fini le game
BlaiseEbuth: :duck::regional_indicator_t:
Littleyounes: jolindien
Littleyounes: gloire a jolindien
Magus: non. Enfin j'ai réussi à l'implémenter, mais les résultats étaient médiocre. Je suis presque sur de pas avoir de bugs dedans
jolindien: je pense que ça bouffe trop de simu
Magus: mais le problème c'est que l'exploration/expand/propagation sont beaucoup plus lents en duct, et j'ai l'impression que les perfs que je perd n'étaient pas compensées par le "gain d'intelligence" de l'ia
Magus: donc à voir, pour l'instant je l'ai, c'est une autre classe dans un autre fichier, si je veux tester j'ai juste à remplacer une classe dans mon fichier
Magus: en attends j'ai fait d'autres modifs que je viens de submit
Littleyounes: roman
Magus: mais la vache, les submits sont pas rapides
WhatTrickeryIsThis: ah c'était des bras?
jolindien: j'aimerais que mes tests soient aussi propre
jolindien: allez zou, 'prendre l'air
BlaiseEbuth: Laisses nous en.
WhatTrickeryIsThis: le numero 2 gold a fait 1-5 contre le boss :D
WhatTrickeryIsThis: c'est reparti pour le jeu du feed le boss
Thyl: Magus a terme ça doit leur couter cher les serveurs
WhatTrickeryIsThis: je suis bien content d'être passé avant tiens
Magus: bah avec une ligue de 100 personnes c'était pas trop dur de passer avant non ?
Magus: moi aussi j'ai eu un doute de rester dehors en étant en dehors du top 20 avant l'ouverture
dwarfie: super ... mon mcts fait juste 20 fois moins de rollout que mon mc ... epic fail ...
Magus: huhu, mon submit était pas prévu pour faire aussi bien
BlaiseEbuth: Je coorige tellement d'abbérations en refactorisant...
BlaiseEbuth: *corrige
Magus: bon, le top 10 a l'air a portée
Magus: pas trop tôt
Mazelcop: wp
Magus: mon ratio (temps passé)/classement est vraiment pas terrible sur ce contest ><
Littleyounes: bg
dbdr: tu te plains d'un #5 Magus? t'y a vraiment passé tant de temps?
Littleyounes: lol :'(
Littleyounes: Je me bas depuis ce matin contre 40 personnes qui m'empechent de monter gold
Magus: j'ai passé trop de temps pour arriver la oui, et puis je pense pas que je finirais #5, il reste encore tout le weekend et mes possibilités d'améliorations s'amenuisent
jolindien: pour te plaindre t'es #1 :stuck_out_tongue:
Littleyounes: dur
Littleyounes: respectez le créateur de AutomatonNN
BlaiseEbuth: C'est pas lui
Littleyounes: sérieux
BlaiseEbuth: On respecte Agade tkt
Littleyounes: wesh
jolindien: Automaton200
BlaiseEbuth: Magus c'est juste la logeuse
Littleyounes: ptdrr
BlaiseEbuth: Et l'assassin :(
Magus: AutomatonNN c'est Agade qui l'a créé oui
Magus: il est juste hébergé sur mon serveur
Magus: enfin quand il boot hein
Magus: Par contre j'ai codé Automaton2000
Littleyounes: deception
Automaton2000: il y a des gens qui ont déjà fait des mcts vous trouvez ça normal de privilégier autant un noeud ...
Littleyounes: ptdrrrrrrrr
BlaiseEbuth: Bon. :doughnut:
Littleyounes: qoi
BlaiseEbuth: Quoi qoi ?
Littleyounes: tu veux quoi belzebuth
Littleyounes: va améliorer ton bot
BlaiseEbuth: Tu m'parles meilleur.
BlaiseEbuth: Va améliorer le tiens.
Neumann: :hammer:
BlaiseEbuth: oy Neumann o/
Neumann: io
Vaurtitoux: Va améliorer mon bot
Vaurtitoux: :cry:
Littleyounes: re
Littleyounes: héhé
Littleyounes: blaise
Littleyounes: tu submit pas ?
Littleyounes: comment ca se fait que mon bot c'est fait rincé par le tien
Littleyounes: mdrrrrrrrrrrrr
BlaiseEbuth: C'est mon dummy pour ma simu.
BlaiseEbuth: Ce qui n'est pas une explication de pourquoi il bat le tiens. Mais c'est pour enfoncer le clou.
Littleyounes: oh
M_C: Dire qu'a quelques places près je passais en legende et la grosse galère contre le boss... :(
Littleyounes: :'(
BlaiseEbuth: Y'a un mec qui s'fout de ma gueule sur le fofo... Il poste un code complet en demandant "ouémonereur?". Je vire le code et je le remplace par un message disant de pas partager de code complet. Et là il a rééditer le post et y a recollé son code. Ca va saigner.
Littleyounes: oh pétard
Tiouz: ouh
dbdr: Magus #3, gg!
Littleyounes: Magus il est venu il a mit des claques a tlm
Magus: quelqu'un a submit ?
Magus: ah même pas
Magus: ouai par contre jolindien et kovi sont hors d'atteinte pour l'instant
jolindien: bah t'es pas loin
Littleyounes: Attendez
Littleyounes: Qu'est ce qui fait la diff
Littleyounes: entre vos
Littleyounes: simu
jolindien: .. de kovi_ ;)
Littleyounes: je comprend pas
Magus: je suis revenu 4ème, mon IA est proche de celle de Saelyos je pense
jolindien: ça se joue à rien
Magus: mais jolindien il me met la misère c'est pas gentil :(
Littleyounes: Vous generez tous un arbre avec les toutes les possibilitées
jolindien: euhh
Magus: c'est impossible de faire toutes les possibilités
Littleyounes: non
Littleyounes: ?
Littleyounes: pas de faire
Magus: ça s'appelle du bruteforce
Magus: mais à part sur des petits jeux comme le morpion, le bruteforce ça marche pas
jolindien: magus il oublie des possibilités c'est pour ça
Littleyounes: Non
Littleyounes: je sais que c'est impossible
Littleyounes: vous parcourez pas
Littleyounes: tout le truc
Littleyounes: ok
Littleyounes: je dis de la merde
Littleyounes: mdrrrrr
Littleyounes: jv lire des trucs sur le mcts
jolindien: quand je cherche à avoir des perfs, j'ai juste du code sale
Magus: Et bim une victoire contre jolindien !
Littleyounes: :o
Littleyounes: j'go tenter ma chance contre jolindien
Littleyounes: mdrrr
Littleyounes: mon bot va m'insulter
Littleyounes: il va surrender dés la première action
Thyl: j'ai un etat il se copie etil change
Thyl: fail
BlitzProg: Bon, objectif du week end, essayer de grimper en ligue légende.
Littleyounes: :O
Littleyounes: Thyl
Littleyounes: tu m'a donné une idée
BlitzProg: Je repasse en C++ du coup... je suis à court d'idée pour l'heuristique
BlaiseEbuth: T'as tes chances BlitzProg, c'est bien moins select que d'habitude.
-Cile-: moi si je pouvais monter dans le top 10% de la ligue or ou au moins me maintenir dans les 25%...
BlitzProg: Je code un MC voir ce que ça donne
**BlaiseEbuth regarde l'ironie de son propos passer haut au dessus de BlitzProg...
BlitzProg: ben ironie je sais pas du tout, ça fait un ou deux ans que je suis pas rentré en ligue légende lors d'un contest, donc j'en ai vraiment aucune idée x)
BlaiseEbuth: :p
BlitzProg: Je m’entraîne pas beaucoup du coup c'est vraiment difficile, et je plafonne vite
Littleyounes: MC = mcts ?
b0n5a1: sans le ts ouais
b0n5a1: (re)
BlitzProg: non, sans le tree search. Je sais pas faire avec tree search.
BlitzProg: pas encore du moins
SophiaLegacy: (en meme temps pas besoin de tree search pour planter des tree :-P )
BlitzProg: ho ho ho
pardouin: le boss il est en full heuristique sophia ou bien un peu de simu ?
BlaiseEbuth: Littleyounes: Monte Carlo (MC) c'est le mot savant pour dire "Je joue tout au pif et je prends le moins pire".
SophiaLegacy: Aucune idée
Littleyounes: BlaiseEbuth merci le bg
pardouin: je pensais que c'était ton bot
Littleyounes: Ptdr je fais ca sans savoir
SophiaLegacy: Aucune idée je sais pas comment il choisi les bots
Littleyounes: que c'etais un MC
pardouin: ok
Bon[]Crayon: Le MC d'ici c'est Automaton2000.
Automaton2000: donc tu fais des puzzles ?
BlaiseEbuth: Mauvais[]Crayon
SophiaLegacy: Sans utilisé de mots savant ... Perso avant de planté je regarde ans combien d'ombre potentiel se trouverai le gland.
SophiaLegacy: (faut pas etre gland non plus)
SophiaLegacy: et je prend le mieux.
WhatTrickeryIsThis: mechant[]Crayon
SophiaLegacy: Et avant de faire grossir un arbre, je regarde sur les x tour suivant combien de sun je vais gagné en plus et combien mon adversaire en perdra en moins... et en fonction des résultats je choisi le meilleur abre a grossir.
Bon[]Crayon: Le truand, la brute et le Bon[]Crayon !
pardouin: ok merci
pardouin: et pour les ombres tu regardes juste les ombres du jour suivant ou un peu plus loin ?
SophiaLegacy: c'est forcément approximatif vu que je sais pas ce que fera l'adversaire.... mais bon, ca a quelque succès
pardouin: ben oui gg à toi
SophiaLegacy: Je calcul sur 4 jour, au delà je concider qu'on ne sai pas de quoi demain sera fait :D
Littleyounes: bg
BlaiseEbuth: Agrandissez votre arbre en x tours avec cette méthode miraculeuse de Sophia ! Les botanistes la détestent !
pardouin: ^^
nicola: Enlarge your tree.
Julius2k17: mouarf
Fluxor: :-D
Magus: j'ai quand même 2 d'ELO de différence avec jolindien, ça fait beaucoup
BlaiseEbuth: Electric Light Orchestra ?
WhatTrickeryIsThis: 2 pts? ça pourrait être pire
Magus: jolindien si tu m'énerves trop attention
Magus: je vais refaire un gateau au chocolat
WhatTrickeryIsThis: sauce nutela banane
WhatTrickeryIsThis: :yum: :thinking:
Magus: quitte a faire un gateau j'aimerais pouvoir le manger quand même
Julius2k17: casimir aurait aimé
Julius2k17: blague générationnelle pardon
Luksis: AAAAAAAAAAAAAAAAAAAH MAIS PUNAISE
dwarfie: Julius2k17 en manque de gloubiboulga 000
Luksis: Un arbre qui seed il est dormant
BlaiseEbuth: Fix ton bloubiboulga
Luksis: et il peut pas etre grow up derriere
Luksis: ah la vache je savais pas
BlaiseEbuth: Luksis qui dévoure les règles au bout de 8 jours.
Luksis: ça me redonne un peu d'inspi ça :D
BlaiseEbuth: *découvre
Luksis: hahaha
Julius2k17: mieux vaut tard que jamais
Luksis: comme d'hab
dwarfie: bon , mon mcts est pas meilleur que mon mc ... je sais pas s'il est pire mais il est clairement pas meilleur ...
Julius2k17: luksis 212 gold sans lire les règles c pas mal quand mm
Luksis: :D
dwarfie: les regles , c'est pour les faibles ... et les legend
Luksis: Tout à fait d'accord dwarfie
Luksis: HAHAHA
BlitzProg: c'est pour tout le monde du coup!
BlitzProg: qui l'aurait cru
dwarfie: bon ... si j'arretais de coder pour rien ... y'a un free xp qui m'attend depuis quelque jours ... :D
PrivateKey: Il est un peu tendu le boss gold :(
BlaiseEbuth: C'est Sophia pas Natacha...
dwarfie: c'est private ca ... ca concerne que lui et sa femme ;)
-Cile-: en gold, je viens de passer 285 à 58 avec juste une petite modif sur mes seed, ça fait bien plaisir :)
BlaiseEbuth: Bah partage
BigUP: c'est quoi la modif ?
-Cile-: comment écrire ça...
jdeveil: copie colle le code, ça va faire plaisir à BlaiseEbuth :p
-Cile-: faire en sortes de ne potentiellement pas faire de l'ombre ou être à l'ombre de mes propres arbres
BlaiseEbuth: Ah !
nicolasD: haha moi ça me suffit pas pour monter 58 =p
-Cile-: désolée...
dwarfie: bon ca me servira pas , je l'ai depuis 2 jours ... ;)
jdeveil: zut je le fais déjà... :p
BigUP: mince, c aj'ai déjà ! :( dommage, je ne gagnerais pas les 200 places qui m'emmeneraient en gold
nicolasD: ^^ Mais merci pour le partage !
-Cile-: mais si vous avez des trucs que je ne fais pas je prends aussi ^^ il ne me manque qu'une 60aine de places
jdeveil: il doit y avoir autre chose que tu fais que l'on ne fait pas...
BigUP: faut voir, tu fais quoi ?
-Cile-: jdeveil oui : je gagne
nicolasD: Coupe pas un arbre si ça vaut 0 point à la fin =p
dwarfie: moi j'ai un truc qui a bien marché pour gagné 130 places .... ne rien faire :rofl:
dwarfie: (et en plus c'est vrai)
BigUP: dwarfie, moi aussi je gagne plein de place en silver comme ca, mais c'est parceque les autres passent en gold ! ;)
-Cile-: je le fais pour la coupe des arbres à la fin
dwarfie: moi aussi c'est parce qu'ils passent en gold ... et me pousse ... ,à
dwarfie: ;)
Vry: Mais arrêtez de me pousser ... j'étais 250 après l'ouverture de Légende, là je suis 178 ...
Luksis: mais en vrai les gars je comprenais pas pourquoi dans certaines games l'ennemi se retrouvait des fois avec 2-3 arbres de plus que moi alors que j'étais supposé seed à chaque tour ... ben je comprends mieux
dwarfie: c'est bien ce que je disais ... y'a pas que moi :)
BigUP: Vry, non mais la, il y en a 30 qui sont passé Legende depuis
dwarfie: au classement general on monte ...pas seulement dans la gold ...
-Cile-: suis dégoutée... je joue sur CSB en parallèle, suis en bronze, j'ai loupé mon passage en argent... je suis classée 1ère
VincentBab: Salut AutomatonNN !
VincentBab: :(
Luksis: Automaton2000 comment vas tu ?
Automaton2000: tu perds trop de temps en temps
Luksis: remarque tout à fait pertinente
Luksis: merci de ton conseil Automaton2000
Automaton2000: je viens de la voir
Luksis: hello
dwarfie: free xp fait ... une tortue pour feter ca Automaton2000
Automaton2000: je devais pas être la même chose
Vry: Non BigUP, je me fais pousser !!! :p
dwarfie: entre ceux qui poussent et ceux qui descendent ... y'a de l'espoir ;)
WhatTrickeryIsThis: on va laissr kovi gagner quand même? c'est moche
Luksis: tkt jolindien,Magus et Saelyos ils préparent une arme de guerre
Magus: raté, c'est des crêpes
Luksis: :D
dbdr: si ça fait comme le gateau au chocolat...
Zakaoai: o/
b0n5a1: o/
Zakaoai: Bon j'ai vu que le légende était sortie mais que je suis pas dedans :'(
Magus: et pourtant ils ont pris large
WhatTrickeryIsThis: c'était déjà pas mal nivelé avec tous le monde + jour férié
WhatTrickeryIsThis: ça devrait débouler ce week end
Von-Karma: Wouhouuuuuuuu
Von-Karma: Ca y est je suis passé devant le boss enfin! Je croyais que yavait un bug comme je voyais personne passer.
Von-Karma: Il est chaud le boss Gold, avant qui'il apparaisse j'etais 70 et j'ai resubmit 2 secondes avant qu'il apparaisse et ca voulait pas passer.
Tiouz: ah c'est con...
Tiouz: Il fallait prendre le train en marche !
Tiouz: Mais gg en tout cas
Von-Karma: Merci ^^ j'espere que jvais pas repasser dessous, il me reste encore 50%
Lexer31: bravo le minou qui passe en legende
Von-Karma: Merci !
-Cile-: bravo !
Bon[]Crayon: GG
-Cile-: ici je teste des améliorations qui font perdre des places, tout un consept
Bon[]Crayon: En quoi consix un consept ?
BlaiseEbuth: *consixte
-Cile-: en échanger des lettres, ça marche hyper moins bien
-Cile-: il t'en reste encore beaucoup minou ?
BlaiseEbuth: Stoi l'minou.
-Cile-: non, moi c'est une femelle, on le voit à son air élégant
BlaiseEbuth: Bah l'autre aussi
pardouin: j'ai tenté l'heuristique de sofia pour trier les grow et ...exactement le même classement \o/
CPomSa: @-Cile Les améliorations qui font perdre des places c'est en train de devenir une spécialité chez moi.... Par contre ce qui m'étonne c'est que quand je reviens à ma version "non améliorée" et que je re-submit, je reviens bien en dessous de mon classement initial...
CPomSa: C'est juste que tout le monde a vachement progressé entre temps ?
BigUP: CPomSa, ca peut
Lexer31: le minou est tout jaune
pardouin: il y a des gens qui montent le ligue sup aussi
pardouin: ça fait "progresser" artificiellement
CPomSa: Haha oui ça je me suis faite avoir au début j'ai cru à un miracle... du coup non maintenant je ne regarde que le classement global ;-)
-Cile-: j'ai déjà constaté ce genre de choses, pas forcément dans le sens de la descente d'ailleurs, en resoumettant le même code à quelques minutes d'intervalle. Biais d'échantillonage selon sur qui on tombe ?
Magus: il faudrait un nombre de parties beaucoup plus grand pour assurer un classement parfait
CPomSa: Ah oui pas faux
pardouin: ben 120 matchs c'est pas énorme
Magus: surtout si vous êtes dans la cloche de l'ELO
pardouin: pas mal de gens qui ont des bots qui performent plus ou moins bien selon la map de départ aussi
Magus: donc oui un même code peut avoir des places différents avec 2 submits
-Cile-: moi je suis cloche tout court
-Cile-: ça ferait une belle phrase pour automaton2000
Automaton2000: j'aurais pas du tout de la même façon
CPomSa: ouais cloche ça marche aussi pour moi... je me suis aperçue aujourd'hui que le bonus richness c'est pas un pour un...
CPomSa: Merci pour les infos sur le classement en tout cas
CPomSa: Comme je n'apprends pas très vite de mes erreurs, je re-submit une "amélioration" ;-)
Von-Karma: Jsuis passé !
Tiouz: yay !
BlaiseEbuth: gg
pardouin: gg !
pardouin: moi je resubmit mon truc d'il y a 4h
pardouin: ô joie
-Cile-: gg
Von-Karma: mais du coup j'ai l'impression que j'ai du vachement ameliorer mon code pour reussir à passer alors qu'avant 70 quoi et la ca moooonte
pardouin: et tu as vraiment changé des trucs significatifs ?
Von-Karma: j'ai rajouté des contraintes sur le placement des graines
Tiouz: Le boss a eu des mauvaises parties quand il a été ajouté, ça a fait passer beaucoup trop de monde.
pardouin: oui parce qu'il est pas si mauvais que ça
Tiouz: C'est le code de l'ancien 30ème gold, donc par rapport à 70 il y a un gros écart
Von-Karma: aaah ok
Von-Karma: ouai c'est trompeur du coup
Luksis: comment tu sais que c'est le code du 30e ?
Tiouz: Je sais pas si c'est 100% sûr, mais il a été dit que c'était le code de SophiaLegacy
Von-Karma: ca explique pourquoi j'arrive dans les 40 en le passant
Tiouz: Ouais tu montes bien !
pardouin: en tout cas ça correspond bien, pas des masses de code Python déterministes dans le top
Tiouz: Il aurait fallu augmenter le nombre de parties juste pour le boss avant de le soumettre, mais c'est pas forcément facile
pardouin: ceux qui font de la simu, dans les legal_plays vous gardez TOUTES les actions SEED ?
pardouin: parce que c'est énorme
BlaiseEbuth: Bah ouai
Neumann: Non.
Von-Karma: Paf Fluxor !
BlaiseEbuth: Faut bien les considérer, même si ça vise la même case c'est pas le même arbre qui s'endort.
Tiouz: non plus
pardouin: oui je pige bien, je voulais en garder qu'un par cible mais tu prends le risque de te griller un bon coup
VincentBab: bah garde en 2 ^^
pardouin: après j'en vois beaucoup qui sèment surtout à une distance de 2 donc je me dis qu'il doit y avoir du tri
VincentBab: Magus tu as diminué ton nombre de rollout, mais tu as progresser :) Quelle est cette sorcellerie ? :D
Magus: dummy plus intelligent
Magus: mais donc plus long
VincentBab: ahah je vois
Magus: mes rollouts sont plus précis je pense
Magus: ça doit aider beaucoup
VincentBab: en fait j'ai l'impression de faire le meme raisonement que toi, mais avec 2j de retard xD
VincentBab: car la j'ai beaucoup augmenter mes rollouts, mais j'ai pas trop gagner
Vry: pardouin, c'est le pruning des seeds qui m'a fait gagner plus de 1000 places ...
BigUP: hum, donc il faut concentrer son energie sur les Seed ... ok
Vry: Pas seulement ... mais c'est un bon début
Magus: c'est facile de voir comment faire des seed en regardant le top 5 (voir même le top 20 ? ou le top 30 ? )
VincentBab: oui ^^
Magus: Que des seeds qui coutent 0 et jamais de seed collé à l'un de tes propres arbres
BigUP: je note, donc seed minimum de 2
YahyaBahjaoui: je suis encore bloué dans le bronze
YahyaBahjaoui: bloqué ^$
VincentBab: ya dbdr qui faisait des seed qui coute un, jsais pas si il a changer ^^
VincentBab: (mais c'était rare, peut être juste a la fin de la partie pour le tie break)
YahyaBahjaoui: qlq peut m'aider
BigUP: bon seed 0, c'est peut-etre ce qu'il me manque
VincentBab: mon IA deteste les mec qui COMPLETE tout a la fin ;(
Julius2k17: la mienne déteste bcp plus de mone que ça :D
Julius2k17: *monde
BigUP: la seed 0 c'a n'a pas l'air flagrant sur mon code
Rajh: Mon bot au tour 10 il me dit 0% de win ...
Magus: mon IA me dit aussi 0% de win au tour 0
Magus: elle est un poil parano
Rajh: non mais moi une fois 0 ca reste jsuqu'a la fin
Rajh: il abandonne xD
Rajh: Pour économiser de l'energie a CG jpourrai presque faire un System.exit
BigUP: ok, parcontre seed 0 + ne pas seed a coté de soit semble pas mal
Tiouz: Regarde le top, il y a des stratégies obvious quand on les regarde jouer
Tiouz: Au passage, un truc que je croyais être un bug est en fait une "unwanted feature" qui a l'air d'aller assez bien
BigUP: Tiouz, je ne suis pas encore au niveau du Boss silver ceci-dit
Neumann: Magus : en dehors de la contrainte citée plus haut, tu testes plusieurs SEED à même destination ? Ou tu prunes encore plus fort avec un choix déterministe d'arbre source pour chaque cell potentielle de destination ?
Magus: non j'ai pas plus de contraintes que ça
Magus: de mémoire j'ai testé de toujours faire SEED en dernière action du jour ou en première action du jour, mais c'était pas concluant
Tiouz: Peut-être ordonner les grow2-3 après les seeds ?
Vry: Mon MCTS ne voit pas qu'il perd sur les deux derniers tours ... je me demande si ça ne vaut pas le coup de passer en min/max à la fin
Magus: comment un MCTS peut le rater ?
Magus: un MCTS ça tend vers min max
VincentBab: tu as un pb de backpropagation Vry je pense
VincentBab: et je l'ai aussi :/
Vry: Et bizarrement il coupe l'arbre un jour trop tôt (22) ...et paf je perds à cause de d'un sun point
Vry: Je vais creuser cette position
YannT: Vry: c'est revelateur d'un bug ça
Vry: C'est ce que je me dis ... je vais faire un min/max rapidement pour voir ce que ça donne réellement
YannT: au contraire le soucis avecc le MCTS c'est qu'il fasse pas de la merde au début, sur la fin il est trs précis
JBM: c'est pas tellement différent du minmax alors ;p
YannT: mon problme perso c'est par moment il fait nimp sur les 4-5 premiers jours et après il se dit "ah ben tant pis c'est perdu maintenant"
VincentBab: faut tuner "l'eval" comme à dit Magus ^^
Rajh: Je sais plus quoi faire pour améliorer mon bot :( jsuis perdu je sais même pas ce qu'il fait de mal
Rajh: Ah bah si, il perd
Tiouz: Kovi le #1 peut timeout !
Neumann: 1 timeout sur 211 games, ça va
Drangoht: Magus: Merci pour le tip "pas de seed à coté d'un de tes arbres" je viens de prendre 600 places en silver, c'est pas con du tout ! ;)
pardouin: bon a priori j'ai corrigé tous mes bugs et j'ai enfin une simu *_*
Magus: Drangoht: c'est pas moi qui l'ai inventé hein :D
Magus: je l'ai piqué aux autres
pardouin: est-ce que je vais arriver à en faire quelque chose de mieux qu'une heuristique, c'est une autre histoire ^^
Drangoht: oui j'en suis pas encore là, je suis toujours en mode ifs et fonction recursive ^^
Tiouz: Je vais tester une idée volée à kovi, on va voir ce que ça donne
Von-Karma: oui il a de bonnes idees ^^
Tiouz: oooouuula visiblement j'ai mal copié^^
Von-Karma: Atterissage du passage en Legend en position 26, je vais me coucher satisfait pour la premiere fois de la semaine sans lancer une derniere submit pour la nuit
VincentBab: gg ^^
Von-Karma: bon par contre j'ai toujours la chanson de totoro dans la tete ...
BlaiseEbuth: Un chat de culture.
Tiouz: trop bien !
kopo: http://chat.codingame.com/pastebin/78460e2f-4cfe-45f2-bcc1-cc3abbec457a
pardouin: tu codes en quel langage kopo ?
kopo: Typescript pour le moment
JBM: ça change pas grand chose au principe
pardouin: sans langage rapide MCTS paraît donner des résultats médiocres
pardouin: il faut un certain nombre de rollouts avant que ça donne quelque chose
BlaiseEbuth: https://int8.io/monte-carlo-tree-search-beginners-guide/
kopo: Je peux passer en CPP si les perfs sont un soucis, je voudrais surtout implementer un MCTS basique pour bien comprendre les principes
JBM: si tu comptes le faire sur ce challenge-ci
kopo: Merci BlaiseEbuth :D
JBM: (c'est tendu en temps mais pas impossible)
pardouin: ça paraît compliqué en 2 jours
JBM: il te faudra implémenter le moteur
pardouin: idéalement tu en aurais fait un plus simple avant sur bandas par ex
kopo: Je vais essayer, mais sinon ce sera pour le prochain challenge
JBM: - une représentation de l'état du jeu
JBM: - une fonction état -> paires de (action,nouvel état)
-Cile-: mon calculateur d'ombre est bloqué à midi solaire : plein soleil partout
JBM: à partir de là, tu peux monter n'importe quelle recherche dessus
pardouin: comme ça pas de jaloux
kopo: j'ai la représentation de l'état de jeu, je vais lire l'article de BlaiseEbuth et garder tes conseils en tête :D
pardouin: oui dans tous les cas commence à bosser une simulation, ça servira en MC, MCTS, beamsearch
pardouin: après se pose la question de si tu fais jouer l'adversaire ou pas
pardouin: essaye d'avoir ça en tête pour facilement passer d'une approche à l'autre
kopo: :pray:
Luksis: ça rame c'est un truc de fou là
BuluBulu27: pardouin, tu penses que MC/MCTS c'est pas réaliste en Java ?
BuluBulu27: Je suis en Kotlin, et j'ai fait un MC, mais les perfs sont désastreuses
VincentBab: je suis pas specialiste de java mais est ce que tu pre alloue tout au 1er tour ?
VincentBab: pour pas avoir a faire de "new" ?
Drangoht: Suis passé Gold ! lé content le msieur
BuluBulu27: Nan, je duplique mes objets à chaque tour...
BuluBulu27: J'arrive pas à voir comment faire un MC sans dupliquer
BuluBulu27: (Je garde mon état de départ, et je fais une partie à partir de ce point, puis je retourne à mon état de départ)
BlaiseEbuth: Préallouer c'est un moyen d'améliorer les perfs en java. Un endcore plus efficace c'est de changer de langage.
BuluBulu27: :(
BlaiseEbuth: *encore
BuluBulu27: Merci à vous deux, je vais faire ce que je peux pour préallouer tout ça !
YannT: ça dépend blaise quand on regarde tes résultats en contest c'est ptet toi qui devrait te mettre au java :p
VincentBab: Meme en C++ je prealloue ^^
BuluBulu27: J'en doute pas. Je suis juste une chèvre en algo ^^
pardouin: je crois savoir qu'il y a des javaïstes vénér qui arrivent à avoir des perfs assez proches du C++ mais il faut faire des sacrifices humains etc
BuluBulu27: Ah bah si ce n'est que ça
Strawbot: salut tout le monde. Est ce qu'il y a une solution simple pour récupérer des données si on veut entraîner un modèle (de Q-Learning par exemple) sur un challenge?
YannT: prier à l'autel du garbage collector
BlaiseEbuth: Quels résultats yannT ? Je soumet une merde pour chopper bronze. Si j'ai le temps je bidouille pour aller un peu plus haut, mais c'est tout. J'ai pas "vraiment" partcipé à un contest depuis CALM...
YannT: jte charrie mec :p
Vry: J'ai resubmit le même code est je gagne 30 places ... encore 4 resubmit et je passe légende ! :sunglasses:
BlaiseEbuth: Je me doute. Mais j'appels pas ça des résultats. :p
YannT: notre garbage collector qui êtes dans la JVM que votre collection soit faite me donne pas de imeout sur ce round amen
YannT: (et pardonnes nous d'avoir utilisé arraylist)
BlaiseEbuth: Et puis le jour où il faudra une quelconque légitimité pour critiquer java sera bien triste...
VincentBab: :joy:
YannT: BlaiseEbuth:je suis enfin d e 4ème karmeliet là, vraiment il faut pas se vexer hein :p
JBM: rha j'ai plus de (bonne) bière au frais
Magus: hey, j'utilise java presque tous les jours
Magus: (enfin pas sur CG, évidemment)
BlaiseEbuth: Je le suis pas. ^^ J'aime juste pas les imprécisions de langage :3
JBM: dixit le mec qui définit les rollouts
BlaiseEbuth: Bah moi je tiens à ma définition, c'pas ma faute si tout l'monde en a une différente. ^^
BlaiseEbuth: Triple la karmeliet ? Du coup ça en fait 12 yannT.
b0n5a1: erf JBM pareil ^^
YannT: je crois pas qu'il existe des karmeliet pas triples
YannT: ce serait triste
JBM: jvais pas ressortir le rhum déjà hier soir j'étais pas frais
YannT: oh ben moi jvais me faire un pastis tiens
YannT: ça me donnera de l'inspiration pour légender le bot
YannT: je dois être à une optim près pour passer là
YannT: c'étaiot quoi ton histoire de cache Magus? ça m'a l'air d'être un truc à passer légende ça
Magus: bah j'ai juste un id (presque) unique pour l'état de la map
Magus: et quand je fais le harvest, je stock le résultat dans une unordered_map
Magus: comme ça si plus tard je dois harvest la même map, j'ai déjà le résultat
-Cile-: ça y est j'ai de l'ombre !!! youpiii !
YannT: ah
Dahll: Magus tu fais un hashage de zobrist right ?
-Cile-: bon, maintenant que j'ai éteint la lumière, je vous dis bonne nuit
Rajh: t'entends quoi par harvest ?
YannT: j'ai rien bitboardé, ça semblecompliqué à tester du coup
Vry: Ah mais t'es là YannT ... je veux dire toujours Gold League !
YannT: oui
YannT: il me manque des rollouts pour légende là
YannT: mais j'ai fait toutes les approximations douteuses immaginables déjà
BuluBulu27: T'es à combien de rollout ?
Rajh: Magus t'entends quoi par harvest ?
YannT: entre 5k et 10k selon le board
BuluBulu27: ... Je suis entre 40 et 150. Apprends-moi
YannT: fait pas de new
JBM: t'es en assembleur ou pas encore?
YannT: c'est genre 90% du truc
BuluBulu27: T'utilises majoritairement des var du coup ?
BuluBulu27: J'avais cru lire que copier un objet était plus rapide que modifier un var en Kotlin :/
Vry: Bon, ça vous paraît plausible d'avoir 9 millions de possibilités en partant jour 22 avec au total uniquement 7 arbres sur la map ?
BuluBulu27: Si internet m'a menti aussi, à qui faire confiance
BigUP: Vry, oui, c adoit etre bon
BuluBulu27: Vry si t'as beaucoup de point de sun, c'est possible
YannT: copier un objet c'est horriblement lent + en JVM t'as le soucis du garbage collector qui si tu le titilles trop te timeout gratuitement
Vry: Peu de points de sun et liste des seed filtrée un peu ...
BuluBulu27: Alors non ^^
BigUP: YannT, ca à l'air horrible ton truc ! c'est au moin sdu java !?
BuluBulu27: Ca marche YannT, j'arrive en haut du classement
b0n5a1: t'a perdu tes voyelles JBM ?
YannT: BigUP: c'est la même chose que du Java
BigUP: affreux !
YannT: le kotlin compile en bytecode JVM, comme le Java
JBM: b0n5a1: tu peux parler avec ton pseudl
YannT: tu peux décompiler du Kotlin poour voir ce qu'il t'as généré en Java d'ailleurs
Rajh: YannT comment ça copié un objet ? si tu copie tout ses attributs dans un objet deja existant c'est bon non ?
b0n5a1: j'ai le a ^^
YannT: Rajh: il y a copier un objet (clone) et resetter un objet à partir d'un autre
YannT: c'est pas la même
YannT: cloner un objet c'est un new, c'est mal
Rajh: Ah ok :)
Magus: suivant j'ai les jeux j'ai plus façons de faire
Magus: soit je copie directement si l'état du jeu est petit (ou peut être représenté petit dans un bitboard, sans perdre des perfs à côté. Parce que lire un bitboard c'est plus lent que de lire dans un tableau directement)
Magus: soit je fais des systèmes de save/load sur les objets. Et en général j'ai un système qui regardes quels objets ont changés pendant un run, pour pouvoir load que les objets qui ont changés
Magus: Sinon j'ai aussi un système d'événements que je met dans un tableau. Chaque événement représente un ou plusieurs changements dans le jeu. Et quand je veux revenir en arrière j'ai juste à "cancel" les derniers événements dans mon tableau jusqu'à revenir où je veux
Magus: suivant les jeux, l'un des 3 systèmes est mieux
YannT: je vais tester ton idée de cache Magus, mais comme j'ai rien en bitboard, j'ai levague sentiment que de hasher mes trees + lookup dans la map risque de pas être si avantageux
BigUP: YannT, le Save/Load c'est ce qu'on fait en python pour booster à la place des deepcopy
YannT: Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
Rajh: Pour le cache, c'est quoi la phase de harvest ? Récolter des arbres juste ?
YannT: j'ai vu un peu larghe en premire intention je pense :>
Magus: oui la phase de Harvest c'est récoler les arbres
Magus: c'est ce qui prend le plus de temps dans la simu
Magus: parcours tous les arbres, vérifier les ombres
Rajh: le sungathering ?
Rajh: ou le coupage des arbres ?
b0n5a1: bah le sun c'est peanuts
BigUP: Magus, moi je fais un dictionnaire d'ombres avec qui fait l'ombre. bon ceci dit, si 2 arbres font une ombre au meme endroit, c'est le dernier qui passe qui devient le propriétaire de l'ombre
BigUP: je ne controle pas les hauteur d'arbre a ce moment la
Magus: à chaque fois que tu mets à jour la hauteur d'un arbre tu mets à jour toutes les ombres pour les 6 jours possibles qu'il peut faire ?
VincentBab: Perso je calcul les ombres au moment du changement de jour
VincentBab: avec les bitboard c'est assez rapide
Vry: +1
VincentBab: bitboard plus un peu de precalcul
BigUP: ouais non. bon en meme temps avec mon code merdique, je ne regarde plus les ombres qu'au tour d'apres pour le GROW et au day+3 pour le seed
VincentBab: je suis tombé la dessus aussi pour parcourir un bitset rapidement: https://lemire.me/blog/2018/02/21/iterating-over-set-bits-quickly/
BigUP: vu que de tout facon, je ne simule rien la
VincentBab: mais vous connaissait surement deja ^^
VirtualAtom: ah nice cet article, merci VincentBab. J'ai fait ça autrement, et donc surement pas optimisé ^^
BigUP: en meme temps faire une mise à jour de 6 tableaux d'ombres, ca ne doit pas etre si couteux que ca
VirtualAtom: finish_day() me prend 7% du temps total
Vry: Il manque pas un l à __builtin_ctzl ?
VirtualAtom: mais j'utilise une boucle similaire dans le calcul des actions possibles, et ça c'est 50%. Donc je regarderais si ça change qch de faire comme dans l'article
VirtualAtom: euh, je crois oui, ça doit être deux l pour un 64 bits
VincentBab: non l pour long c'est deja 64bits il me semble
VincentBab: long et long long c'est pareil il me semble sur les machine 64 bit
Vry: Ok, moi j'ai ll (on sait jamais)
VirtualAtom: j'ai mis ll dans mon code. Mais un l ou 2 l, le compilo ne dit rien
BigUP: bon aller, dodo.. j'ai secoué mon code Heuristic dans tous les sens, mais j'ai pas trouvé de pistes pour améliorer mon classement
VincentBab: le bug de merde qui m'a rendu ouf: (1<<XX) au lieu de (1UL<<XX)......
VirtualAtom: ll ça te garantie que c'est au moins 64 bits, c'est pour ça que j'ai mis 2l, sans réfléchir
Vry: Par contre j'ai une petite différence je fais d'abord int cell_index = __builtin_ctzll(bb_tree);
et ensuite je vire le bit que je viens de traiter avec bb_tree = bb_tree & (bb_tree-1);
VirtualAtom: ah ^^pour ça j'ai mis partout uint64_t(1) << X
BigUP: tin je commence à me dire que si ca se trouve, ils sont 1500 a simuler devant moi !
dwarfie: moi j'ai const int64_t UN = 1l; et on en parl plus :D
BigUP: ou alors, il y a vraiement un truc important à coté du quel je suis passé
Vry: Par contre VirtualAtom, je me suis fait avoir une fois, avec les builtin j'avais utilisé la version sans l sur un 64 bits, le compilo ne m'a rien dit ...
YannT: en fait faut p'tet que j'y touche pas à mon bot là
YannT: il monte tout seul
Vry: #define BIT_SET(a,b) ((a) |= ((uint64_t)1<<(b)))
Pink: BigUP rang 679 aucune simulation
VirtualAtom: j'ai eu le tour en production et je me suis promis de mettre 2l, quitte à être pédant dans le code ^^
BigUP: Pink, bon bah j'ai vraiment raté quelquechose ! :)
dwarfie: bon , j'ai reperdu la moitie des places gagnées dans la journée en faisant rien pendant que je perdais mon temps avec ce MCTS de merde
YannT: tu le respectes pas c'est pour ça
VirtualAtom: pareil, j'essaye de passer avec un MCTS, mais dès que je tappe le top 50 gold, ça repart en sens inverse
Pink: en parlant de simulation je me lance dans le tic tac toe avec le tuto en python mais je fais du vb...
def c'est quoi? une fonction ou une variable?
Dahll: C'est vraiment plus efficace qu'un MC le MCTS ?
BigUP: Pink, fonction
VincentBab: Oui si c'est bien implementer
dwarfie: YannT ... a 20k , je pourrais espere qu"au moins il passe presque tout le temps le score de 100 points ... mon mc le fait a chaque fois lui
Pink: merci
VirtualAtom: dans une arène locale, je poutre mon MC. Mais bon, j'ai peut-être une arène de merde ou un MCTS qui n'est bon que contre mon MC
VincentBab: MCTS a la base c'est fait pour des jeux ou les joueurs joue l'un apres l'autre
VincentBab: la il faut adapter
VincentBab: perso j'ai galerer a implementer ca correctement
VincentBab: et je crois ue je viens tout juste de reussir
VirtualAtom: ouais... pas fier d'utiliser un MCTS, mais j'en ai marre et la league légende n'a jamais été aussi accessible alors... ^^
Magus: hu hu hu, je suis 2ème
Vry: GG Magus
Magus: Kovi hors d'atteinte
VincentBab: gg Magus ^^
Magus: ah ou'ai j'ai genre 0% contre kovi
Magus: en plus je le feed
Magus: ah bah j'ai pas été 2ème longtemps :D
VirtualAtom: tu veux un screen ? ^^
YannT: pour battre kovi il faut chain submit
Magus: non c'est bon
YannT: fight fire with fire
Pink: c'est quoi le (self) ? je connais 0% python
BigUP: Pink, ca represente ta classe, la meme chose que le this en C++
YannT: c'est la synthèse de l'it et de l'ego d'un objet
Pink: http://chat.codingame.com/pastebin/89e45932-6888-4e74-852f-5c38d8e71f75
BigUP: Pink, obligatoire comme 1er parametre de fonctions de ta classe
BigUP: enfin plus l'instance de ta classe que ta classe en elle meme
Pink: me.getinstance alors merci BigUP
VincentBab: c'est ouf la difference entre le top5 et le reste xD
Pink: Je sens que ca va etre galère ce truc
YannT: faut dire qu'un language basé sur l'identation, ça part pas bien déjà
Pink: je vais jouer d'instinct car impossible de traduire tel quel
YannT: mais pourquoi tu veux convertir ton bot en python aussi
Pink: je code en vb
Pink: et l'exemple en python
Rajh: Magus t'es 1er
BuluBulu27: Ce roi
Vry: Bon je vais vraiment faire un gâteau au chocolat !!!
VirtualAtom: 4 matchs restants et plus d'un point à mettre au boss, ça sent le fail ^^
Vry: Tu as combien contre le boss ?
Vry: Moi bizarrement dans l'IDE je le marave ...
VirtualAtom: 1 victoire 4 defaites dans l'arène, c'est la loose j'étais confiant car dans l'IDE c'était 6 victoires sur 7 matchs
Vry: En effet ...
VirtualAtom: il y a encore des soucis de langages moins performants dans l'IDE que dans l'arène ?
VirtualAtom: ou c'est juste la joie du sous-échantillonage ?
VincentBab: gg Magus 1er !!
Julius2k17: top 10 9 en c++
Julius2k17: 8 pardon
VincentBab: comme d'hab ^^
Vry: Bon mon min/max me dit que je perds d'un arbre (scores identiques) alors que mon MCTS voit un ratio de gain de 99,9998985% sur le meilleur coup ...
Tiouz: Ton MCTS tu es sûr qu'il ne fait pas jouer l'adversaire le meilleur coups pour *toi*
Vry: Il faut que je creuse de ce côté là ...
VirtualAtom: les fins de parties c'est l'idéal pour débug le calcul et la propagation de la reward
Vry: Mais le min/max a vu juste et à sorti le bon score c'est donc un bon point de départ
Vry: COMPLETE 29 COMPLETE 16 (me) WAIT WAIT day=23 (me) WAIT WAIT day=24 > 2 120 (sun=1, tree=2) 120 (sun=7, tree=3) eval = -0.010000
leojean890: minmax en simultané c'est pas le top, non ?:P
leojean890: (je dis ça mais je tentais ça à un moment^^)
Vry: Mais y'a 450 path qui mènent au même score (sur à peine deux jours)
Vry: *450k path
leojean890: au moins, c fiable^^
VirtualAtom: ça me parait énorme o_O mais j'ai jamais regardé de plus près
Strawbot: Salut tout le monde ! Quelqu'un aurait une idée de pourquoi mon écran de jeu est tout gris?
Vry: Ben ça marche ... en réalité le state est actualisé sur le node de l'adversaire seulement après c'est juste une propagation du résultat
Tiouz: Strawbot Il faut activer l'accélération graphique de ton navigateur
Strawbot: Tiouz Comment je fais àa?
Strawbot: ça*
Tiouz: google
leojean890: le fait qu'il minimise avant que tu maximises, ça pose pbm car il prend en compte ce que tu as joué pour évaluer de son coté Vry, non ?
Tiouz: J'en sais rien, je sais juste que c'est la solution
Vry: Non leojean ... en réalité l'éval n'est connue qu'à la fin (au 24ème jour).
leojean890: (il trie comme s'il connaissait ton move, comme si t'avais joué avant lui)
Strawbot: Mais c'est bizarre aprce qu'il y a 10 mins ça marchait
leojean890: ah ok Vry
Vry: Ensuite les fonctions min/max remontent le résultat
Vry: Comme le rollout en somme
leojean890: ça peut peut être marcher ainsi
YannT: c'est pessimiste
YannT: ton move étant déjà "locké", il joue contre
leojean890: ouais c'est pessimiste
leojean890: parait que ça marche bien dans tron, le pessimiste
leojean890: ie les 3 jouent contre toi
leojean890: ici je sais pas
YannT: si un move que tu fais peut être "contré" (par ex en faisant GROW pour te faire de l'ombre), il va remonter défavoroablement
leojean890: p'tet que ça t'empêche de prendre des risques
leojean890: ouais
leojean890: tu anticipes le pire
leojean890: je me demande s'il vaut pas mieux jouer plus greedy
leojean890: moins anticiper l'autre
Lysk: tu peux inverser quel joueur commence pour etre plus greedy
Vry: En fait la backProp, c'est ma bête noire ...
leojean890: oui
leojean890: inverser, tu vas faire des coups défensifs aussi^^
Vry: Mais je ne comprends pas pourquoi vous parlez de pessimisme ... je choisis les coups au hasard, la liste des coups de l'opposant ne sait pas ce que j'ai joué
YannT: LYsk: malin
leojean890: Vry ok en mode MC :)
leojean890: ouais le coup d'inverser ça peut être intéressant comme approche à tester dans des jeux simultanés :)
YannT: Vry: ton coup est déjà sur le board, donc le scoring se fait contre le coup que tu as déjà joué
YannT: que ce soit du rollout ou du minmax
Vry: Non, je le joue pas moi ...
leojean890: ça le prend en compte et l'adv minimise le score de l'état actuel ?
YannT: ça chane rien, il est déjà choisi dans l'arbre
Vry: Mes node sont bidons, je ne mets à jour le state que sur ceux de l'adversaire
YannT: ton coup est fixe, l'adversaire score contre
leojean890: j'avais essayé un truc du genre où je crée 2 states différents un avec que le move de ladv et un que le mien
Vry: Ah je commence peut-être à comprendre ce que tu veux dire YannT
leojean890: mais en fait quand tu remontes tes scores en mide min => max => min
YannT: (j'ai compris tardivement aussi ça;) )
leojean890: tu prends en compte l'état final donc implicitement tous les moves
YannT: que ce soit minmax ou rollout, finalement tu scores le coup de l'adversaire en réponse à ton coup, donc c'est pessimiste
YannT: si ton coup est "contré" par un coup potentiel de l'adversaire (SEED qui annule ton SEED, GROW qui te fait l'ombre), il va remonter comme étant mauvais, alors qu'il est mauvais que si l'adversaire le "connait" à l'avance
leojean890: du coup ça peut te faire manquer des actions qui auraient pu être intéressantes
VincentBab: c'est pour ca qu'il faut comprendre DUCT pour faire un truc bien :(
leojean890: car si l'adv joue pas explicitement pour te contrer il fera surement pas ton counter
Vry: Ou utiliser un dummy
leojean890: pour ça dans l'éval je favorise le fait de me maximiser et je pondère moins fort les trucs pour minimiser l'adv
YannT: dummy ça optimise le rollout, ça rgle pas le soucis du pessimisme :)
leojean890: dummy tu gagnes du temps de simu pour toi car au lieu de simuler l'adv c'est heuristique
YannT: tu fais tourner le dummy avec ton coup choisi, donc ça solution pas le problème
dwarfie: et hop , juste au cas ou ...je me met de cote le sm-mcts ...
dwarfie: pas sur d'avoir la motiv , mais qui sait , il reste 2 jours ...
Vry: J'ai l'onglet d'ouvert sur le MCTS SM ... mais +1 dwarfie
leojean890: sm-mcts ? :P suicidaire ?;)
Vry: http://mlanctot.info/files/papers/cig14-smmctsggp.pdf
leojean890: ah c'est une approche spécifique ok je lirai^^
dwarfie: eh eh j'ai le meme :D
VincentBab: je suis passer par la aussi, mais les notations mathematiques m'ont assomé :/
YannT: je crois que ça veut tout juste dire que tu sépares le scoring et les visits selon player/opponent
VincentBab: il me semble qu'au lieu d'avoir une reward dans ton node, tu stock une matrice de la combinaison des move avec leur reward
YannT: ah?
YannT: je croyais que ça constait surtout à dissocier dans la backprop
VincentBab: c'est la partie que j'ai pas trop compris la backprop la dedans xD
YannT: j'ai pas poussé au point de visualiser l'implementation :)
leojean890: pour une légende qui a open avec 100 personnes, elle ne s'est pas tant rempli que ça en 12h
VincentBab: qui est le boss gold au fait ? ^^
leojean890: aucune idée j'ai pas regardé:p
leojean890: je pensais que 100 personnes le boss serait moins dur et qu'il y aurait 130 ou 150 personnes ce soir ^^
leojean890: après ça va tryhard ce w-e je pense
YannT: stoi le ryhard
leojean890: plus ou moins^^
leojean890: si j'étais en vrai tryhard j'aurais plus un code python^^
VincentBab: oué jvais pas pouvoir me la couler douce pour esperer un top20 xD
leojean890: top 20 j'imagine que c'est pas simple ^^
leojean890: YannT connait avec OOC
VincentBab: m'en parle pas j'ai fini 22...
leojean890: c'est correct, non ?:P
leojean890: de mon point de vue :p pour d'autres ce serait évidemment pas un bon rank :p
VincentBab: oui c'est cool mais j'était au prote du top 20 ^^
Vry: L'est pas si fort que ça le boss je trouve ... par contre y'a plein de bots à passer avant
leojean890: t'aurais eu un t shirt, dommage xD
leojean890: pour le concours RAIC ils sont généreux en t shirts
leojean890: suffit d'aller au round 2
VincentBab: xD
leojean890: (360 personnes ^^)
leojean890: Vry par rapport au boss gold de OOC clairement hehe
YannT: le boss gold je lui met 80% dans l'IIDE mais je passe pas le reste de la ligue ;(
Vry: +1 YannT
leojean890: ça arrive souvent ce genre de pbm
Rayho: same :'(
Dahll: C'est quoi DUCT ?
noob_coding: faut etre top cb dans gold pour passer? ^^
leojean890: premier voyons !
Vry: Meilleur score que le Boss
noob_coding: (ah merde , mais je suis en silver moi hahaha)
Vry: à la fin !
VincentBab: Dahll: une amelioration du MCTS pour les jeux en simultané
leojean890: fin de submit être devant le boss ou se faire pousser au dessus du boss par d'autres submits
dwarfie: ca y est , j'ai reperdu toutes les places que j'avais gagné dans la journée ...
VincentBab: c'est la meme chose que SM-MCTS il me semble
VincentBab: https://dke.maastrichtuniversity.nl/m.winands/documents/sm-tron-bnaic2013.pdf
leojean890: mine de rien je me suis fait pousser dans plusieurs multis où j'avais arrêté au top silver ou gold
leojean890: ça peut arriver 6 mois ou 1 an après
Dahll: Merci !
leojean890: ptit coup de luck
leojean890: le bon winrate qui spam submit et fait baisser le boss
BlitzProg: comment on fait pour faire référence à une propriété statique membre d'une classe dans une méthode?
BlitzProg: en c++
Strawbot: Ca marche pas TaClasse.propriété?
BlitzProg: j'ai genre struct TCellBoard{
static TCellBoard cell[37];
Strawbot: la méta pour le spring challenge c'est juste un minimax?
BlitzProg: c'est correct ça?
leojean890: beam search la méta je crois ?
leojean890: pour les top
VincentBab: Class::property
leojean890: quelques MCTS
Strawbot: ok merci
leojean890: mais je me demande quelle est leur éval
leojean890: surement pas aussi bordélique que la mienne;)
BlitzProg: après je déclare une méthode, je l'écris hors de la classe void TCellBoard::precalc() {...
Strawbot: J'ai essayé de faire un truc un peu original mais bon y a un moment où on peut pas éviter le calcul en profondeur
BlitzProg: puis dès que j'accède TCellBoard::cell[0]
BlitzProg: ça me vomit des tonnes d'erreurs incompréhensibles
leojean890: calculer en profondeur ça a plus de potentiel mais bon ici de bonnes heuristiques passent légende
Strawbot: ah ouais sérieux?
Strawbot: genre des calculs profondeur 1?
BlitzProg: usr/bin/ld: /tmp/ccg8Gyq8.o: warning: relocation against `_ZN10TCellBoard4cellE' in read-only section `.text._ZN9TBitBoard5debugEv[_ZN9TBitBoard5debugEv]'
leojean890: ie Oioi ou 2-3 autres qui sont encore dans le top 50
leojean890: Strawbot ouais ou juste des if
BlitzProg: qu'est ce que c'est que ce truc là ><
leojean890: mais bon la plupart ed légende sont en simu je pense:)
BlitzProg: bon, j'ai pas envie de comprendre ce truc, on va faire autrement
noob_coding: 25eme/1979 et ca passe pas a la ligue sup :(
Strawbot: est ce que quelqu'un sait si c'est possible d'entraîner des modèle d'apprentissage non supervisé sur les challenges?
Strawbot: Genre un modèle de Q-learning par exemple
Strawbot: mais ma question du coup c'est comment je sauvegarde les résulats de l'entraînement
Strawbot: Ca se fait d'entraîner un modèle en local?
leojean890: Strawbot sur coders-strike-back certains l'ont fait et sont au top
leojean890: ils en ont même écrt un article
Lysk: ca se fait oui, tu dois faire ca localement
leojean890: écrit
leojean890: tu peux lire leur article
leojean890: pb4 Agade je crois
leojean890: Nash DQN
VincentBab: Mon bot gagne et perd des place en fonction de la charge server j'ai l'impression xD
Strawbot: super !
Strawbot: merci
Dahll: Vous êtes sur que les tops sont en beam search ?
Dahll: Perso de ce que j'ai vu ils sont tous en MCTS
leojean890: Strawbot leur article est dans les ressources du multi je crois
leojean890: Dahll j'en ai lu certains dire beam search mais pas sûr qu'ils aient conservé ça
leojean890: MCTS je sais qu'il y en a également
Dahll: J'ai une beam search mais je suis stuck 500 gold j'ai le seum
leojean890: ah ouais mais faut faire une eval qui casse des briques^^
Lysk: je suis toujours avec beam (en gold), je commence a me dire que les MC c'est pas mal en fait
leojean890: tout dépend de l'éval si tu fais BFS/beam search
VincentBab: ce qui fait la qualité de ton beam search c'est ton eval ^^
Lysk: leojean890 ouais, c'est galere
Dahll: j'ai test MC et c'est pas ouff non plus
leojean890: Lysk je sais bien, j'ai moi-même une eval qui fait 200 lignes xD
leojean890: et qui #153 gold là
Lysk: Dahll tu arrivais combien de random rollout?
leojean890: donc bon ça suffit pas xD
Dahll: en MC le dernier tour avant la fin de la game j'ai 1 400 000
Dahll: mais pendant la game je tombe à 10000
Lysk: aie
Dahll: vu qu'en moyenne je mets 50 tours
Dahll: à finir un rollout
Dahll: toi aussi ?
VincentBab: ptin c'est ouf l'asymetrie en fait dans ce jeux
leojean890: l'asymétrie ça peut te tuer ouais avec l'ombre^^
leojean890: parfois je joue symétrique de qqn mais en fait il me tue avec l'ombre^^
Lysk: j'ai un beam search, c'est pas trop comparable, je vais voir si j'arrive a mesurer un truc
leojean890: car je suis à l'ombre en premier donc il se développe plus vite
Lysk: VincentBab ouais! utiliser -s avec le brutal tester ca joue beaucoup
leojean890: Lysk ah ouais #81 gold
leojean890: VirtualAtom tu tiens le bon bout^^
leojean890: #légend
VirtualAtom: je serre les fesses :-}
VirtualAtom: 63%...
leojean890: au pire si ça passe pas là ça passera après quoi
leojean890: repush ou poussé ^^
VincentBab: sur des map ou l'asymetrie est favorable pour moi j'arrive parfois a battre Magus xD
VirtualAtom: j'ai soumis un bot qui avait 55% de winrate contre mon ancien bot, ça a décollé directement o_O
leojean890: je crois qu'il est en beam lui, non ?
leojean890: 55% benché avec CG benchmark ?
VincentBab: nan MCTS pimpé
leojean890: ah il est repassé en MCTS ok
VirtualAtom: 55% dans une arène locale en c++
leojean890: il a sûrement des élagages sympa du coip
VincentBab: et des rollout intelligent
leojean890: VirtualAtom ah ok nice, créé à partir du referee ?
VirtualAtom: j'ai pas lu le referee, j'ai fait autrement cette fois-ci :
leojean890: VincentBab ouais tu épures ce qui va être mauvais de manière évidente ^^MSmits faisait ça pour connect-4 je crois
VirtualAtom: je parse les replays où j'écris l'état en bistream
VirtualAtom: ça me donne une chiée de jeux complets que je peux donner à mon moteur pour le valider
leojean890: ah oui avec l'outil d'euler ?:)
VincentBab: scorer les moves avec une eval simple et jouer plus souvent les moves avec une eval simple
VirtualAtom: je l'ai fait à la main aussi, mais c'est en lisant ses commentaires que j'ai décidé de faire ça
leojean890: ah sympa^^
VincentBab: ca peux marcher je pense, jvais tenter ca
leojean890: tu scores et si l'éval dit que c'est nul tu n'y vas pas:p
VirtualAtom: d'ailleurs, le parseur m'a trouvé 3 bugs, en tout 3 caractères à changer, ça a fait ~1200 gold -> 100 gold
leojean890: ouais les bugs.. on dirait mon FC2020
leojean890: c'est abusé ces bugs que j'avais :p
VirtualAtom: sur FC2020, j'ai rage quit à cause de mes bugs :-}
leojean890: je suis remonté en flèche après
leojean890: je m'étais tenté au bitset et ...
VirtualAtom: je ne comprenais pas pourquoi j'arrivais pas à améliorer quoique ce soit, tout était biaisé depuis le début ^^
leojean890: purée j'avais des trucs faux :P
VincentBab: https://www.codingame.com/replay/555644580 presque xD
VirtualAtom: ah merle, sous le boss
leojean890: 0.12 du boss..
leojean890: 0.27
leojean890: bon ça devrait le faire qd même:p
VincentBab: je pouvais gagner en faisant un SEED en fait LOL
VincentBab: faut que j'autorise tous les seed sur le dernier tour xD
leojean890: tu autorises si tu n'as pas de seed comme ça ça te coute 0^^
VincentBab: oui je fais deja ca
VincentBab: mais sur le dernier tour la j'aurai pu faire un 2eme seed pour 1
VincentBab: et j'aurai gagné
VincentBab: car quand le score est egal tu compare le nombre d'arbre
leojean890: si t'as pas un multiple de 3 tu autorises^^
VirtualAtom: pourquoi tu ne la vois pas, tu génères tes actions à la journée ?
leojean890: de sun points
VincentBab: non chaque tour
VirtualAtom: on peut dire ce qu'on veut du système de ranking, mais au moins, il y a des rebondissements, c'est pas ennuyeux ^^
leojean890: petite pression qd ELO serré yep hehe
VirtualAtom: 0.02 pt d'écart, 99%, ce drama
VincentBab: ca va passer ^^
VirtualAtom: je l'ai eu en dernier match, victoire sur le fil
VirtualAtom: l'impression d'avoir volé ma place en légende, mais je m'en fou ^^
VincentBab: gg ^^
VirtualAtom: je doute de faire mieux que bottom légende, mais ça suffira là pour ce concours
VirtualAtom: on verra les PM pour fixer toutes les boulettes en multi
Razielwar: raah je suis juste derrière le boss c chaud
Razielwar: bon 5ème gold, une petite prière pour me faire pousser dans la nuit :p
BlitzProg: bon, simu done... reste plus qu'à voir si je peux en faire quelque choce ce week end
BlitzProg: et gg Razielwar =)
BlitzProg: en 20ms j'ai le temps d'appeller que 1000 fois mon MC en c++ avec tous les flags
BlitzProg: je pense que j'ai bien perdu mon temps T_T
BlitzProg: le week end qui arrive va être très dur