Chat:Fr/2021-05-14

From CG community
Jump to navigation Jump to search

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

Default avatar.png Troph: SAlut tout le monde o/

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/

Default avatar.png Troph: 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

Default avatar.png 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 ... ;)

Default avatar.png 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/

Default avatar.png Troph: 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

Default avatar.png 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

Default avatar.png 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 !

Default avatar.png 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

Default avatar.png 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();

  1. 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);

Default avatar.png 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()

  1. define START __time__start = NOW
  2. 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

Default avatar.png JBM: le mec qu'a rien suivi

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 :)

Default avatar.png JBM: 'fin clock ça devrait marcher aussi hein

Default avatar.png 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

Default avatar.png Troph: +1

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

Default avatar.png 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 ...

Default avatar.png 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

Default avatar.png 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: (╯°□°)╯︵ ┻━┻

Default avatar.png Troph: :joy:

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

Default avatar.png Troph: Magus je note merci

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

Default avatar.png Troph: la blague est valide

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)

Default avatar.png 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

Default avatar.png 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 ?

Default avatar.png nabaztag: Est-ce réellement viable en java avec le GC ?

Thyl: la variable

Thyl: countTree

Default avatar.png Troph: yeehaw

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

Default avatar.png Troph: Oioi tu as mis du random dasn ton bot ?

Oioi: Non

BuluBulu27: Merci Magus

Default avatar.png Troph: c'est bizarre en relançant la même seed il y a des résultats différents

Default avatar.png Troph: alors que moi non plus je n'ai pas de random

Oioi: Aucun random, je t'assure

Default avatar.png 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

Default avatar.png 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...

-)

Default avatar.png 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

Default avatar.png JBM: un sage

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

Default avatar.png GEEA: hello les amis

Default avatar.png GEEA: ça va

Default avatar.png Troph: Salut salut

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

Default avatar.png JBM: elle est en premiere page

Default avatar.png 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 :-)

Default avatar.png AlphaBril: Troph, je t'aime

Default avatar.png Troph: Oioi ahhhh je me disais bien

Default avatar.png Troph: AlphaBril :heart_eyes:

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:

Default avatar.png AlphaBril: @Troph allez on tente un nouveau code, road to top 800 ?

dwarfie: (vais-je etre encore poussé un peu plus ;))

Default avatar.png Troph: AlphaBril let's gooo

Default avatar.png AlphaBril: ca grimpe !

Default avatar.png AlphaBril: on vas passer la barre des 900

Default avatar.png AlphaBril: 880 :D

Default avatar.png AlphaBril: holala

Default avatar.png AlphaBril: 802 ?

Default avatar.png AlphaBril: allez laaaaa

Default avatar.png AlphaBril: yes !

Mazelcop: gg

Default avatar.png Troph: GG

optplx: cette sensation quand ton bot monte quand même :p

Default avatar.png AlphaBril: incroyable

Default avatar.png 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 ?

Default avatar.png Troph: jusqu'ici ils ont pris 50% de chaque ligue

Default avatar.png 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

Default avatar.png 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

Default avatar.png Troph: pardouin kewa ?

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 !

Default avatar.png 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 ?

Default avatar.png 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 ?

Default avatar.png Troph: 170 et il monte

WhatTrickeryIsThis: nan il est naze, Apo va sans doute recouper à la machette

Tiouz: Il lui reste 20% de matchs, il monte pas assez vite

Default avatar.png Troph: top 150

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

Default avatar.png Troph: AceTea MiyazaBoss

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

Default avatar.png Troph: top 100

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

Default avatar.png Bedou: :flag_am:

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

Default avatar.png 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

Default avatar.png 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

Default avatar.png 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

Default avatar.png JBM: oui c'est un problème

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 ...

Default avatar.png JBM: très 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.

Default avatar.png lpellieer: aïe

Littleyounes: oh

Default avatar.png 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

Default avatar.png liorozore: Salut à tous :x

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

Default avatar.png 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

Default avatar.png 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

Default avatar.png JBM: si tu comptes le faire sur ce challenge-ci

kopo: Merci BlaiseEbuth :D

Default avatar.png JBM: (c'est tendu en temps mais pas impossible)

pardouin: ça paraît compliqué en 2 jours

Default avatar.png 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

Default avatar.png JBM: - une représentation de l'état du jeu

Default avatar.png JBM: - une fonction état -> paires de (action,nouvel état)

-Cile-: mon calculateur d'ombre est bloqué à midi solaire : plein soleil partout

Default avatar.png JBM: à partir de là, tu peux monter n'importe quelle recherche dessus

Default avatar.png JBM: dont MCTS

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:

Default avatar.png JBM: gaffe à pas la dépasser

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)

Default avatar.png JBM: t'as pas fait ça!

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

Default avatar.png JBM: rha j'ai plus de (bonne) bière au frais

Magus: hey, j'utilise java presque tous les jours

Default avatar.png JBM: on n'en doute pas

Magus: (enfin pas sur CG, évidemment)

BlaiseEbuth: Je le suis pas. ^^ J'aime juste pas les imprécisions de langage :3

Default avatar.png 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. ^^

Default avatar.png JBM: qui veut une faute?

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

Default avatar.png JBM: jvais pas ressortir le rhum déjà hier soir j'étais pas frais

YannT: oh ben moi jvais me faire un pastis tiens

Default avatar.png JBM: beuh

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

Default avatar.png 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 !?

Default avatar.png JBM: kotlin d'apres le ldrbrd

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

Default avatar.png 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 ^^

Default avatar.png JBM: en shallow

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