Chat:Fr/2021-05-17
[SG]Bisou: Je suis le seul qui des gros problèmes de time out depuis hier soir? Je suis obligé de me limiter à 45ms et je ne peux même pas tester face à mon ancienne IA (elle time out aussi dans l'IDE) :(
-Cile-: Houuuuuu mais il y a eu beaucoup de passages en Legend cette nuit !
-Cile-: o/
Mazelcop: yo o/
-Cile-: dormir me réussi vraiment pas mal
Mazelcop: #55 en python, gg -Cile- !
-Cile-: après pour une heuristique le langage n'est pas si important ;)
Mazelcop: c'est sûr :)
-Cile-: mais oui terminer probablement dans le top #100 pour mon 1er projet en python je suis plus que contente
YannT: oh j'ai pris cher dans la nuit
YannT: resubmit
-Cile-: je pense savoir pourquoi ma gestion des ombres est foireuse, mais il faudrait que j'aie le temps de modifier et tester... :/
YannT: houlà touche pas malheureuse :D
-Cile-: c'est ce que je me dis, mais je vais quand même tester (dans l'ide) une version "allégée" (je n'aurais pas le temps de faire plus de toutes façons)
jdeveil: je serai intéressé par ton post mortem une fois le challenge terminé ;)
-Cile-: jdeveil qui moi ? :o
jdeveil: oui
-Cile-: il va falloir que j'aille voir à quoi ça ressemble
jdeveil: je pense avoir déconné sur la gestion des ombres (géré uniquement pour le tour en cours)
dbdr: ah #54, gg -Cile-
jdeveil: et dans la définition de la structure de données de la forêt
jdeveil: j'aimerai voir comment les autres ont géré ça
jdeveil: toi incluse
-Cile-: je tenterai :) merci dbdr
Troph: bon j'abandonne, j'admets ma défaite
Julius2k17: salut tlm
-Cile-: o/
Kafeine: Plus je supprime des lignes de code et plus je gagnes de places
JBM: allez, j'ai «bien» dormi, 90min pour améliorer un peu le sac de ifs
SefioR13: Je me réveille et je vois que j'ai perdu 60 places comme ça dans la nuit
SefioR13: C'est suffisant pour me mettre le seum
Zorg1: salut tout le monde et Automaton2000
Automaton2000: la première fois que je vais commencer par remanier mon sommeil (si j'y arrive)
Zorg1: bon je suis passé légende cette nuit nice ^^
Zorg1: merci :)
JBM: du coup t'as le droit de continuer à bidouiller
JBM: ah merde je viens de push un crashbot
Zorg1: non je touche plus à rien là ^^
Zorg1: 223 en légende :astonished:
-Cile-: oui, beaucoup de personnes ont profité de la nuit
dbdr: pour une ouverture à combien, 100? c'est pas énorme
Zorg1: oui de 100 à 223 c'est moins que de 15 à 60 ^^
dbdr: voila
dbdr: apres le jeu est peu random
dbdr: plus dur de passer sur un malentendu ;)
JBM: et voilà, déjà 10 places de gagnées à 15% de run en reformulant sans changer la logique
dbdr: le referee il privilégie le code propre? :D
dbdr: mesure de complexité de code
dbdr: quantité de commentaires
JBM: ah pour le coup la complexite (cyclomatique) a empire)
dbdr: relegation en silver!
JBM: c'est contraire a la beaute de l'abstraction
dbdr: ah, pardouin cheat l'achivement langage? moche, moche
dbdr: tiens, je remartque que D, ça fait note US c'est approprié je trouve
dbdr: à quand le D+?
dbdr: :D
Zorg1: ah zut y a un gars en D au dessus de moi :(
Zorg1: et j'suis même pas #1 en go, la honte
dbdr: si en base #0
JBM: ça marche comment la base #0?
dbdr: ah mais t'es passé quand Zorg1? gg
dbdr: longue nuit?
dbdr: ben le premier il est #0, et ansi de suite ;)
Zorg1: à 2 heure j'étais en dessous du boss en train de push, je suis parti me coucher
dbdr: pauvre bot laissé tout seul
Zorg1: soit je suis passé à la fin de mon push, soit on m'a poussé
dbdr: et hop mid legend
dbdr: arf, 53/46% en local, c'est juste à la limite de ce qui se tente
dbdr: mais à ce stade, ça vaut pas le coup je pense
Julius2k17: bravo Zorg1
-Cile-: dbdr : j'en suis à peu près au même stade, j'ai relancé une série de tests pour me décider (ou pas)
dbdr: tu fais combien de matchs? et en symmetrique?
YannT: non toi touche -Cile- tu vas regretter :D
YannT: +pas
-Cile-: je suis dans l'ide (donc peu de matchs) et je teste contre des ai déterministes 2 fois la même partie
Zorg1: merci Julius2k17
R4N4R4M4: Salut tout le mond
R4N4R4M4: *e
Zakaoai: Hello les gens
Julius2k17: salut
pb4: ping CharlesBesson
CharlesBesson: Hello pb4
pb4: --> MP
Zorg1: o/
jdeveil: Ce qui me dégouterai, c'est qu'en lisant les post mortem, je trouve la solution qui me fasse passer legend sans refactor de mon code (qui fait aucune simu, même pas du tour suivant)
JBM: évite de lire les PM alors
jdeveil: ba oui mais je veux m'améliorer :)
JBM: bon, mon amélioration me fait perdre 200 places
Zakaoai: Bon bah pour l'investissement que j'ai mit sur ce challenge c'est plus propre que le FC2020. Mais déçu de pas avoir put faire mieux...
JBM: pour un code qui avait pas été soumis en 4j, c'est pas trop mal non?
Zakaoai: Pas mal oui
JBM: je vais quand meme faire un retest-run avec le vieux
Zorg1: vazy t'as encore une heure, le temps d'un demi-push
Zakaoai: Bah il te reste 1h profite en
JBM: je vais des cinquièmes de push
JBM: je vais consommer 30 min pour déterminer si j'envoie la version vieille ou la version improved
-Cile-: dormir ça marche
Zorg1: :thinking:
-Cile-: (j'ai été poussée en legende)
Julius2k17: modeste avec ça
Zakaoai: PM ou pas PM après ce challenge tel est la question que je me pose en ce moment.
jdeveil: y aura-t'il une section spéciale sur le forum pour les post mortem ?
Julius2k17: oui
jdeveil: argl je vois pas où sont les post mortem des challenges précédents, c'est mal parti :p
Zakaoai: Les gens se sont bien dépassé quand même 5 JS en légende
Zakaoai: Pour une fois que les heuristiques peuvent passer légende.
-Cile-: bon, après quelques tests supplémentaires, mon amélioration du matin (sur les ombres) donne le même résultat que celle d'hier soir : 0% de victoires en plus. Les ombres ne m'aiment décidément pas.
jfaixo: bravo a tous en tout cas, pas eu le temps (et surtout le skill !) de faire mieux, me tarde les PM, et rdv à l'automne, d'ici là j'espère être meilleur mouaha ! ;)
Neumann: :clap:
-Cile-: jdeveil je pense que les PM vont être dans cette catégorie, dans un nouveau topic qui s'appellera "Feedbock & Strategy" https://www.codingame.com/forum/c/contests/9
-Cile-: feeback...
-Cile-: rhaaaa !!!
JBM: allez hop, dernier submit en introduisant un vague coeff, non testé en IDE
Julius2k17: ^^
philRG: o/
egaetan: bravo à tous et toutes ! merci pour l'ambiance, je vais acheter du désherbant avant le rerun
JBM: et je passe à autre chose
JBM: ah oui tiens faudrait que je tonde la pelouse
JBM: mais y'a trop de soleil dehors
philRG: Si tu soumets avant 10h, ça passe?
Julius2k17: j'avoue g abattu 2 arbres ce we mais j'ai pas fait gaffe aux ombres
JBM: c pas très spooky chez moi
Zorg1: philRG : oui
philRG: :-D
JBM: faudra que je rajoute de la toile d'araignée pour allo win
philRG: ok merci Zorg1 et bravo c'était cool de te voir monter légende :-)
Julius2k17: ct les arbres qui étaient menaçants, genre ca bouge à l'épaule..
Zorg1: ^^
OldJohn: Moi les arbres qui devaient tombés sont tombés cet hiver chez le voisin :-(
Julius2k17: j'y ai eu droit également il y a qq années
-Cile-: merci beaucoup pour l'ambiance
Julius2k17: le truc c'est qu'il faut faire gaffe quand tu veux abattre des arbres c'est que les autres ont poussé en conséquence
Julius2k17: donc en enlevant certains tu casses l'équilibre
Zakaoai: J'ai pas été ultra présent ce challenge mais c'est cool de voir plus de gens dans le tchat
Julius2k17: oué très sympa comme d'hab
Anone13: 37 min pour faire la différence
Zorg1: le dernier push ...
Zakaoai: FC2020 558em / 537em sur celui la
jdeveil: merci -Cile-, j'ai mis ton lien en bookmark pour voir dans la semaine
OldJohn: Hum, j'avais pas vu que cela finissait si tôt :-)
jdeveil: merci à tous pour ces bons moments, c'était cool :)
Zakaoai: seul difference c'est le nombre de gold et legend
OldJohn: Mon j'arrête mes essais alors !
Zakaoai: Bon nous sommes 3 pour le prochain challenge :D
jdeveil: ah ben ça y est le topic pour les post mortem est déjà lancé :)
jdeveil: allez les gars, go go go (il me reste 33 minutes pour les lire et modifier :p )
Anone13: Le dernier rush
philRG: OldJohn légende gg
OldJohn: @philRG thanks
philRG: ah oui y a du niveau ;-)
philRG: Programming computer board games since 1976
OldJohn: bref un ancien !
Zakaoai: D'ou OldJohn comme pseudo :D
OldJohn: @Zakaoai Yep !
OldJohn: @philRG mais j'ai commencé jeune :-)
OldJohn: @philRG mon premier programme d'Othello, j'avais 10 ans
philRG: ah ok je crois quand on commence jeune, c'est plus facile après
philRG: :thumbsup:
OldJohn: Dommage qu'il y ait pas Microsoft Basic 0.9 dans CG... Je pourrais recoder mon programme...
Vry: o/ les gens
philRG: hehe, moi c'était sur mac version 1.0 je crois
philRG: o/
egaetan: salut vry
-Cile-: Oldjohn : moi c'était un jeu de cartes à 11ans (et demi, ça compte à cet âge) avec un mode de jeu contre l'ordi, en Qbasic
philRG: donc je suis plus vieux car je devais avoir 18 ans
Zorg1: \o vry
-Cile-: o/ vry
Magus: bon, on va espérer que je reste dans le top 10 pour la fin quand même :D
philRG: purée je me souviens plus
philRG: https://en.wikipedia.org/wiki/Applesoft_BASIC
philRG: j'ai débuté par çà et ensuite Pascal, puis C
Julius2k17: 76 oldjohn ?
philRG: mais j'étais déjà vieux 18 ans environ
OldJohn: C'est un Basic récent celui la !
Vry: On a exactement le même classement egaetan :sunglasses:
philRG: après y a pas d'âge pour coder, faut seulement pas avoir mal au dos et au cou
Julius2k17: M07 ou TO5 ?
Zorg1: pas l'inverse les chiffres ?
Zorg1: TO7 MO5
Julius2k17: je crois pas
OldJohn: @julius2k17 avant le TO7 j'ai eu le proto Thomson...
OldJohn: @julius2k17 mais j'ai commencé sur DTC Mk2....
Julius2k17: @Oldjohn t'as commencé de bonne heure, moi g pris plus de temps
-Cile-: Oldjohn : évidemment qu'il est récent, comme moi :p
Julius2k17: Allez Jolindien, donne tout
BabelO: bah le Z80 vous l'avez zappé ?
Zorg1: ZX80/ZX81 non ?
OldJohn: Non j'en ai eu aussi...
Julius2k17: je préférais les playmobil dsl
OldJohn: Je vendais des programmes pour ZX80
Julius2k17: je pensais être dans les doyens mais je crois que t'as une longueur d'avance Johnny
Vry: Le rerun, c'est toute la ligue Légende ?
Vry: gg Zorg1 au fait !
Zorg1: merci vry :)
Zorg1: pour le rerun j'ai un peu peur qu'ils ne prennent que les 100 premiers comme ils avaient fait pour BotG ...
Vry: Tu es passé pas trop tard ?
Zorg1: vers 2:00 apparement, j'étais en train de pusher et juste en dessous du boss
-Cile-: un dernier match contre l'AI de base. 218-1 Jamais vu un score pareil
Vry: lol ... cest dommage que le boss du niveau précédent ne soit pas repris comme IA de base
Vry: *c'est
JBM: fais-en une vraie propale
SefioR13: Vous pensez que ça vaut le coup que je fasse un dernier submit j'ai fait quelques modifs de dernière minute ?
Julius2k17: tu vas le regretter
WhatTrickeryIsThis: bien, c'est maintenant que Agade il submit?
GeoBlack: c'est jamais bon
Julius2k17: le mieux est l'ennemi du bien ^^
Zorg1: ha Agade il hide finalemetn ,
SefioR13: Ca marche
Vry: Ça a coupé ... :p
SefioR13: gg à tous
YannT: bravo tout le monde!
-Cile-: GG ! :)
TylerDurden: gg :)
egaetan: gg
Julius2k17: gg
BlitzProg: gg
nicolasD: C'était fun ^^
Skygge: gg
GTS: gg
VilBoub: \o/
Julius2k17: le site CG a pas supporté le cut
BlitzProg: les serveurs qui semblent bien prendrent
philRG: y a déjà le lien pour s'inscrire au prochain challenge :-)
Julius2k17: ils ont cut les runners et le web
Zakaoai: gg
BlitzProg: j'ai fait un envoi de dernière seconde... ça devrait faire 250 gold en étant optimiste
BlitzProg: un rattrapage modeste
BabelO: tu as utilisé quelle methode au final ?
BlitzProg: Le tout premier bot, avec quelques modifs triviales
BlitzProg: genre pas dépenser pour un grow tour 23
BlitzProg: et une autre moins triviale qui détecte une forte différence d'économie sur le sun, suggérant que l'adversaire a sorti la tondeuse
Julius2k17: tu peux cut que des size 1 avec une tondeuse
WhatTrickeryIsThis: gg!
WhatTrickeryIsThis: <3
BlitzProg: du coup je flex l'économie et attend la fin pour tout raser pour grab quelques points de plus avec les suns
WhatTrickeryIsThis: pas de summer challenge ?
Zorg1: ça doit pas être compatible avec les congés d'Apo
Zorg1: :p
philRG: BlitzProg: pas eu le temps de tester la différence entre cut et pas cut dans mon algo
philRG: % à la gestion du sun
philRG: je cut seulement sur une prévision à 6j du nombre d'ombres et aussi en fin de partie
philRG: il me reste souvent du sun pas consommé
-Cile-: 6 jours de prévision d'ombre.... soupir...
Zakaoai: j'ai fait pareil -Cile-
Zorg1: les premiers PM sont sortis
-Cile-: Zakaoai pour les 6 jours ou pour le soupir ?
philRG: Zorg1: pas le temps de se reposer :-D
philRG: dormir c'est pour les faibles ou les vieux :-D
Julius2k17: un peu de respect stp
Julius2k17: ^^
GuillaumeBardy: le classement est figé à quel moment ?
Zakaoai: les 2 -Cile-
Zorg1: fin des push en cours + rerun éventuel
GuillaumeBardy: ok :)
-Cile-: rerun... avec le code soumis ou celui dans l'IDE ? :o
Zorg1: en gros vers midi ça devrait être stabilisé
Zorg1: le code soumis
-Cile-: OUUUUFF !!!
Julius2k17: ^^
Julius2k17: rerun avec un random sur l'historique à 5j et prise en compte du spookiest code
Vry: Tu as le lien Zorg1, vers les PM, je suis paresseux ... :D
Zorg1: https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849/4
Zorg1: ah ok c'est une règle connue ça le "pas de seed juste à côté de tes arbres"
Zorg1: c'est BigUp qui m'en a parlé hier, j'avais pas impacté
dbdr: Zorg1 sauf recurse...
Julius2k17: oué mais ça m'a pas sauvé
Vry: Ce qui m'a fait passer Légende c'est pas de seed sur les arbre de taille 1 !
Vry: Ce qui m'a fait passer Gold c'est un MCTS sans bug + pas de seed dans les 6 directions (tout en gradant les seed des arbre de taille 1)
-Cile-: bon, comme je n'aurais pas le temps aujourd'hui pour le PM, je le mets ici pour ceux qui se demandent ce que je fichais avec l'ombre : http://chat.codingame.com/pastebin/49f1314d-9114-4fe9-8b9e-3faaaae5e0b4
GeoBlack: pas de seed dans les 6 directions ?
-Cile-: qu'est-ce que c'est que ce lien ?
Vry: http://chat.codingame.com/pastebin/f4815ffb-417b-4f11-aa4f-32ed10b99bb4
Zorg1: quand tu copie/paste un gros morceau de texte, CG te crée un pastebin
Vry: Pour un taille 3 je ne teste que certaines cases
-Cile-: j'ai pas copy-paste mais c'était un gros morceau
Zorg1: ah ok t'évites de planter à l'ombre de l'arbre qui envoie la graine
Vry: -Cil-, j'avais code une fonction comme ça pour mon dummy mais je ne l'ai pas utilisé (mon dummy)
Zorg1: *ombre potentielle
Vry: Oui Zorg1
Vry: Et une seule seed à la fois
Vry: Sinon c'est un MCTS classique
Zorg1: oui ça le une seule seed à la fois j'avais ça depuis le début ^^
-Cile-: pour moi le seed c'était distance de 2 minimum de tout autre de mes arbres (donc les size1 ne seed pas) et je comptais le nombre de fois où ma graine allait se trouver sur un même axe et à moins de 3 cases qu'un autre de mes arbres. Tri d'abord sur les "axes" puis sur la distance minimale.
Kirbiby: C'est quoi le raisonnement derrière une seule seed à al fois ?
-Cile-: c'est gratuit
Tiouz: Kirbiby C'est moins cher, et ça ne sert à rien d'avoir plein de seeds si tu ne les fait pas grossir
Anone13: On fait comment pour refaire le sping challenge ?
bananaMixer: C'est gratuit. Et ça réduit la taille de la recherche.
Zorg1: par contre j'ai pas trop compris leur truc séquentiel pour leur MCTS, je jouais seulement le coup un noeud sur deux en prenant le coup dans le noeud parent et le noeud en courd
-Cile-: et ça t'évite d'avoir à payer quand plus tard tu as un super emplacement pour planter
dbdr: Zorg1 c'est ça séquentiel Zorg1
Kirbiby: okay
Zorg1: dbdr : bah Magus dit "l'adversaire connait mon coup"
dbdr: oui, parce qu'il est dans une branche du parent
dbdr: ses stats vont le refleter
Zorg1: ah ok
dbdr: dans cette branche tu fais toujours le meme coup, donc il le "sait"
SeebOmega: Anone13 il va etre remis dans la categorie competition bot programming sans limite de temps fau tattendre el classement definitif
Zorg1: oui oui je vois l'idée
jonenst: on peut plus accéder à son code quand c'est terminé ?
SeebOmega: si dans report
SeebOmega: ils sont dispo sur le site ils arriveront par mail plus tard
SeebOmega: quand le compute final sera fini
OldJohn: En fait il faut raisonner avec un problème du type chifoumi (pierre papier ciseau) itéré. un mcts classique ou un alpha beta ne convient pas car l'adversaire "connaît" le coup du premier joueur.
JBM: ou juste réaliser que mcts tend vers minmax
jonenst: Ah j'ai pu effectivement accéder à mon code dans le rapport merci
OldJohn: Mais dans mon cas, l'alpha beta classique à mieux fonctionné que celui adapté. (Je le rententerai plus tard)
Magus: "ne convient pas", en fait ça convient, c'est juste en théorie moins bien
Magus: mais après il y a la pratique
Magus: et jouer en simultané coute en performances, et ça devient parfois moins bien que de juste laisser ton adversaire connaitre ton coup
Mazelcop: le resubmit global est lancé ?
OldJohn: @Magus oui cela fonctionnait plutôt pas trop mal mais le résultat est un programme très prudent car il pense que l'adversaire connaît son coup
Magus: mon IA est pas spécialement prudente
-Cile-: Mazelcop je ne pense pas. Peut-être qu'ils attendent la fin des stabilisations en or (des fois qu'il y en ai un qui passe)
Mazelcop: ok merci
dbdr: OldJohn c'est quoi l'alphabeta adapté?
Magus: ils attendent que tous les submits soient finies avant de rerun
Cendretoundra: @Magus, sur ton post mortem tu mets que tu ne copie jamais l'état du jeu, ducoup comment fait tu pour le mcts , tu store juste les modifications ?
Cendretoundra: Merci pour le PM détaillé d'ailleurs !
OldJohn: @dbdr en gros, tu fait de la recherche alterné, joueur A, joueur B, joueur B, joueur A, ....
Magus: j'ai une fonction save, et une fonction load
Magus: et c'est tout
Magus: au début je fais un game.save();
Magus: et quand j'ai besoin, je fais un game.load()
Magus: après c'est optimisé pour ne remettre à jour que ce qui a changé
Magus: (j'ai une liste des cellules qui ont changés)
dbdr: OldJohn ok. c'est toujours pas simultanné donc, mais ça évite un trop grand bias pour un joueur, c'est ça?
OldJohn: @dbdr C'est de mémoire un papier sur une adaptation d'alpha beta aux jeux simultanés. (Adaptation simple sans Nash...)
OldJohn: @dbdr oui c'est cela.
dbdr: ok, merci~
Cendretoundra: ok merci !
dbdr: Magus pourquoi ton DUCT était tellement plus lent, c'est la taille des noeuds?
Magus: non, c'était ça cause de l'exploration
Magus: enfin en fait j'ai essayé les 2
philRG: mon PM, c'est pas d'algo de recherche, uniquement des conditions de tests manuelles qui font entre 50 et 100 lignes sur quel type d'action je vais/peux faire (à partir de l'analyse poussée du jeu, streams et replays), et des prises en compte de paramètres pour choisir quelle est la meilleure action pour un type donné.
Magus: soit je stockais le score des actions dans le parent, et la les noeuds étaient plus gros et il fallait gérer un vector par parent. Donc ça ralentissait beaucoup la création de nouveaux noeuds
Magus: soit je stockais pas le score des actions, et je devais le calculer pendant l'exploration en parcourant tous les enfants
Magus: et la, l'exploration devenait très lente
philRG: je divise quand c'est un malus, et je multiplie mon score quand c'est un bonus
Magus: j'ai pas trouvé de moyen rapide de faire le DUCT
dbdr: ah oui, recalculer çá doit piquer!
philRG: exemple pour le seed: score = tree.size * seed_range * dest_cell.richness * (6 - dest_cell.week_shadow()) \
* (bonus + 1) / (malus + 1) ** 2 * (action.gain + 1) / (action.cost + 1) / (ring_num + 1) * (ring_origin_num + 1) / (neighbors_seeds_count + 1) ** 2
philRG: je me suis pas compliqué la vie lol
OldJohn: Mon MCTS était gouverné par mon générateur de coup légaux donc j'ai repris l'alpha bêta à la fin
leojean890: mdr sympa ton truc philRG ^^
leojean890: du bricolage de magic numbers, on dirait mon truc hehe
philRG: la simulation et les rollouts, ça aurait été cool pour gérer tout ça en un
WhatTrickeryIsThis: toutes ces variables avec des underscores
philRG: leojean890 ben si tu remplaces * par + et / par -, ça devrait marcher aussi
philRG: je pense?
philRG: WhatTrickeryIsThis: c'est la convention PEP Python
WhatTrickeryIsThis: oui, on devine bien :p
philRG: en dehors des fonctions de score, j'ai peu de _
philRG: là j'ai fait rush dernier we pour rajouter des params, mais sinon, si pas de simu, je modélise mes données dans des classes (pas de _
philRG: leojean890 c intuitif codé comme ça ouais et rapide
philRG: pour Grow, j'ai ça aussi:
philRG: bonus = cell.week_shadow_player(False)
malus = cell.week_shadow_player(True) score = tree.size * cell.richness * (6 - cell.week_shadow()) * (bonus + 1) / (malus + 1) / (ring_num + 1)
GTS: Premier MCTS "qui marche" sur ce challenge pour moi (même si je reste coincé 476e) Mon eval est un peu moisie je pense, pas eu le temps de peaufiner, je vais lire les postmortem avec attention
philRG: après j'ai pas la simulation exacte, ça reste empirique
philRG: j'ai pas le cerveau d'un CPU qui va tester toutes les combinaisons possibles
Stilgart: tortue à tous
Stilgart: et surtout à Automaton2000
Automaton2000: oui je me doute bien.
philRG: ou la formule magique genre -3v qui va tout résoudre :-D
Stilgart: :)
Vry: o/ Stilgart
Zorg1: \o
OldJohn: \o/
WhatTrickeryIsThis: t'as submit une daube r4 ?
Magus: bon, maintenant que le contest est fini, on fait quoi ?
Magus: ah oui c'est vrai j'ai un boulot
VilBoub: ^^
jdeveil: vous trouvez où les rapports du contest ?
Stilgart: gg Vry
jdeveil: sur le site ?
Stilgart: belle perf
Stilgart: gg JBM, belle tortue
Magus: jdeveil: tu recevras un email
Vry: Merci Stilgart !
Vry: Je remercie mon MCTS UTTT ... :)
jolindien: o/
Zorg1: \o
Magus: ah ouai je suis 16ème, avec un code qui était 6ème samedi soir :D
Magus: ça a beaucoup changé le dernierj our
Magus: *jour
Zorg1: ah tiens BrainSolver a eu l'idée du mapping que j'ai eu seulement hier soir :(
Zorg1: (pour le bitboarding)
dbdr: ça donne quoi bitBoard << 1, une rotation?
OldJohn: une multiplication par 2, non ?
Zorg1: non un déplacement suivant une direction de l'hexagone
Stilgart: ça marche avec un hexagone ?
Zorg1: si tu positionne bien tes cells oui
Zorg1: il dessine un hexagone dans 8x8
Stilgart: avec un rectangle je vois assez bien.... mais azvec un hexagone ça parait pas trivial de bien positionner ses bits
dbdr: http://chat.codingame.com/pastebin/fbd6488a-482c-4d37-8a0c-3bc8e00e3415
Zorg1: bah si c'est la représentation des cells hexagonales dans une grille rectangle, t'as seulement six directions à utiliser
Zorg1: https://forum.codingame.com/t/spring-challenge-2021-feedbacks-strategies/190849/13?u=zorg1
Stilgart: dbdr: sauf que 31 il finit en ** dans ton mapping
Zorg1: merci dbdr tu m'as devancé
dbdr: donc pour l'ombre de T tu fais T | T << 1 | T << 2 etc Zorg1?
Zorg1: si j'ai bien compris oui
BrainSolver: L'avantage de ce bitboard se ressent vachement dès qu'il y a beaucoup d'arbres.
dbdr: moi j'ai juste precalc tout ça, bourrin :D
Zorg1: pareil un gros precalcul mais je suis obligé de tester les bits pour appliquer les ombres et les zones de graines
JBM: moi je refaisais un bfs a chaque fois
dbdr: tranquille
JBM: l'avantage des IA en temps constant
Stilgart: O(1) :)
dbdr: BrainSolver tu es en temps constant indépendamment du nombre d'arbres?
Stilgart: BrainSolver: merci, j'essayerais d'adapter ça pour mon CotC à l'occasion
BrainSolver: oui, presque.
dbdr: ah oui, trees[3] | trees[3] << 1, ...
dbdr: la solution de miklla en DP c'est original!
OldJohn: J'ai vu ce site trop tard : https://www.redblobgames.com/grids/hexagons
Vry: Pas mal BrainSolver ... j'idée m'a traversé l'esprit deux secondes et pis je me suis dit que je n'avais pas le temps pour le faire ! :p
Vry: Mais je vais tester sur le multi
Vry: Mon code ressemble à ça pour les arbres de taill1 :
Vry: http://chat.codingame.com/pastebin/44868784-86da-455c-bede-2bd018ee786b
Vry: *taille 1
Vry: Suivi de la même chose pour taille 2 et de la même chose pour taille 3
Vry: Le cache est bien rangé, du coup je le parcours séquentiellement [direction][size][cell]
-Cile-: Oldjohn : joli site merci :) j'ai fait des coordonnées cubiques
Zorg1: ah le site du red blob ^^
Vry: On l'avait eu pour CotC je crois
ThomasNicoullaud: reCurse il a encore activé son cheat ? :D
Zorg1: ah ok vry, pas mal, j'ai fait un truc moins efficace
Vry: Oh un ThomasNicoullaud ! Salut !
ThomasNicoullaud: \o
Zorg1: o/
Zorg1: oui ils avaient mis le site en lien dans CotC
Vry: Il est venu nous montrer qu'on avait encore des progès à faire !
ThomasNicoullaud: dur l'écart là, la dernière fois que je suis venu voir c'était dbdr et jolindien devant
dbdr: le bon vieux temps :)
dbdr: fallait un contest de 5 jours cette fois
ThomasNicoullaud: et je crois que tu disais "c'est dur d'améliorer maintenant ca manque de profondeur"
dbdr: :sweat_smile:
dbdr: "j;ai peut que, c'est pas pareil"
dbdr: *peur
OldJohn: @dbdr te laisse pas faire :-)
ThomasNicoullaud: il a fait quoi de plus au final reCurse vous savez ?
Vry: J'ai pas vu passer l'information ...
OldJohn: Il nous fera peut être une analyse post-morterm peut être ?
OldJohn: Sinon, je peux envoyer un de mes fils lui demander en personne :-)
R4N4R4M4: Bah, j'aurais pas dû resubmit ce matin
WhatTrickeryIsThis: oui on dirait un loupé de derniere minute
-Cile-: On a un nouveau en Legend
dbdr: faut une extension navigateur pour bloquer le bouton submit le lundi matin
R4N4R4M4: Ca m'arrive à chaque contest, je sais qu'il faut jamais resubmit, mais c'est plus fort que moi :D
-Cile-: il y en a qui passent en dernière minute
OldJohn: Où voyez vous cela ?
OldJohn: Ben moi j'avais une dernière idée que devait être pas mal d'ailleurs :-)
Syj: le classement a été recalculé ?
Syj: ou pas encore ?
-Cile-: pas encore stabilisé
ThomasNicoullaud: ha y a pas eu le rerun encore ?
mapapin: Vous avez un lien pour voir le rerun?
-Cile-: pas encore le rerun
R4N4R4M4: https://www.codingame.com/contests/spring-challenge-2021/leaderboard
GTS: faut attendre déjà que tous les matchs en gold soient finis
mapapin: Merci :)
OldJohn: Many thanks
Gilde: Pourquoi juste les matchs gold ?
-Cile-: tous en fait
-Cile-: il y en a encore 200 en cours
GTS: oui tous Mais avant le rerun légende faut que tous ceux qui étaient censés monter légende y soient parvenus... Donc que or ait fini (et ceux qui rejoignent le gold etc)
JBM: que toutes les ligues inférieures aient fini
JBM: enfin oui c'est ton "etc"
Gilde: D'acc merci
JBM: laisser leur chance aux hiders
WhatTrickeryIsThis: y à encore un gugus qui vient de passé légende :)
b0n5a1: o/
philRG: java or not Java :-D
philRG: https://www.oracle.com/java/technologies/
philRG: finalement la techno CG a du bon :-)
philRG: ça repose
R4N4R4M4: On a un lien vers le forum ? je l'ai perdu
jdeveil: dans le menu: Communauté/Forum
jdeveil: Tu trouveras le topic dans la catégorie 'contests'
WhatTrickeryIsThis: https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849/3
-Cile-: on attend le petit malin qui est passé or il y a quelques minutes et qui va peut-être tenter un passage en légende...
WhatTrickeryIsThis: ça va il est rapide
WhatTrickeryIsThis: enfin c'est relatif
WhatTrickeryIsThis: les submits sont super longs
Vry: Plus qu'un en effet !
R4N4R4M4: Merci pour le lien, j'avais pas vu qu'ils ont déménagé le menu
Stilgart: on a déjà vu CG lancer le rerun alors qu'il y avait vraiment un run en gold qui pouvait être promu
Vry: On va bientôt savoir si tout le monde en Légende est relancé ... ou pas
dwarfie: bon ... Vry... on (je) attend ton PM ;)
Stilgart: Vry: tout est dans ton eval, je présume
Vry: Ok dwarfie : MCTS séquentiel avec prunage des seed
Stilgart: tu faisais combien de simu (ply) ?
Vry: Aucune éval.
Stilgart: ou combien de rollouts ?
Vry: environ 10k simu sur 95ms
Stilgart: tu jouais les parties jusqu'au bout ?
Vry: Oui
Stilgart: contre un dummy du coup ?
dwarfie: pff ... j'avais 15k en mc et seulement 2k en mcts ...
**dwarfie comprend pas cette difference ...
Vry: Non, pas de dummy
Stilgart: 10ksans dummy ça parait léger vu le branching
Stilgart: tu jouais au tour ou au day ?
Vry: Au tour
Zorg1: enfin si par "dummy" tu appelles filtrer les coups joués dans ton rollout
Stilgart: même question pour le BS de dbdr du we dernier ?
Vry: Ah, pour dummy c'est une heuristique qui choisi un coup
GTS: sans eval ? Donc tu faisais les rollout jusqu'à la fin ?
Zorg1: ça j'ai l'impression que tous ceux qui ont fait un MCTS ont été obligé de le faire
Zorg1: et même avec 4k rollout jusqu'à la fin tu te débrouilles
Stilgart: le filtre c'est orthogonal au dummy
Stilgart: il s'applique à la fois à toi et à l'adversaire a priori
OldJohn: C'est plutôt dual ?
Vry: Moi rollout complet pour deux joueurs qui utilise la même méthode pour générer la liste de coups
Stilgart: (tu peux en coder 2 différents, même)
Stilgart: OldJohn: j'aime pas le mot dual
dbdr: Stilgart je fais un double beam comme euler
dbdr: pour comparer des choses comparables
Stilgart: c'est tellement utilisé hors contexte il faut dire
WhatTrickeryIsThis: un bang bang?
WhatTrickeryIsThis: bang bang search
Stilgart: double beam ?
**dwarfie lance un recording du chat ... il commence a avoir fin mais veut pas rater le debrief ... non , finalement trop faineant il lira l'hitorique du chat demain :D
WhatTrickeryIsThis: nice
OldJohn: @stilgart mais orthogonal suppose que tu as un produit scalaire
Stilgart: what trickery is this ?
WhatTrickeryIsThis: si un beam c'est pas assez, c'est le double beam :strong:
dbdr: je fais tous les suivants du beam courant, et je met de cotés ceux qui passent au jour suivant
Stilgart: :muscle:
dbdr: donc je fais pas tour, mais en gardant les jours synchro
dbdr: *par tour
Stilgart: ha, tu filtrais au tour
Stilgart: j'avais peur d'exploser la mémoire avec ça
dbdr: oui
Stilgart: du coup, j'ai du hacker pour pouvoir comparer les beams
dbdr: au contraire
dbdr: BS c'est en mémoire constante
Stilgart: (à coup de malus si je fais wait trop tôt)
Stilgart: on a vu l'efficacité du truc :p
Stilgart: oui et non
dbdr: WIDTH * MAX_ACTIONS
Stilgart: faire tous les successeurs sur la journée complète ça peut être gros
Stilgart: c'est quoi MAX_ACTION ici ?
Kirbiby: je dis comme Stilgart
dbdr: mais je fais pas tous les successeurs de la journee, je filtre par tour
Stilgart: parce que tu peux en faire plusieurs dans un jour
Stilgart: ha... donc tu as deux filtres, d'où double beam
dbdr: mais oui, je garde tout ce qui passe le jour a partir d'un tour filtré
Kirbiby: tu cut à beam_size qu'après avoir fait les children non ? donc c'est pas mémoire constante non ?
jdeveil: les scores sont stables...
jdeveil: a quand le rerun ;)
dbdr: d'ou le MAX_ACTIONS Kirbiby
Kirbiby: ah okay
dbdr: :)
Kirbiby: c'était ça
Kirbiby: je fais vector<> :p
Stilgart: le MAX_ACTION n'est pas tout à fait constant
Stilgart: JBM fait remarquer qu'osef vu que c'est O(1)
Zorg1: en fait moi j'avais 37 actions maximales, pour le SEED j'avais une heuristique qui attribuait l'arbre qui donnait la graine
dbdr: pas constant mais borné
Kirbiby: oui il est borné donc c pareil
dbdr: enfin la constante c'est le max sur tous les états possibles
dbdr: j'ai un sale const MAX_ACTIONS: usize = 24; augmenté jusqu'a ce que ça crashe pas
dbdr: ça dépend du pruning aussi :)
jdeveil: Zorg1j'ai utilisé que 6 actions dans la prise de décision. Si l'action était un GROW de telle taille, je cherchais après quel arbre était le plus indiqué
dbdr: mais c'est pour mon MCTS, pas mon beam
WhatTrickeryIsThis: rerun full legende :D
VirtualAtom: résultats dans la soirée ? ̂ ̂
**dbdr se note: commencé le recalc #14
-Cile-: VirtualAtom je suis curieuse de voir si ça fait une grosse différence
dbdr: ça peut surout pour les bots qui étaient frais
WhatTrickeryIsThis: y à un peu de suspens pour les places podium mine de rien
GuillaumeBardy: rerun full que pour legende et les autres sont figées ?
dbdr: oui
WhatTrickeryIsThis: y
VilBoub: oui
jdeveil: ils font les autres après peut être ?
dbdr: non
jdeveil: ah ok.
dbdr: deja avant c'était que le top 100
VirtualAtom: y a-t-il vraiment du suspense pour la première place ? :-}
Zorg1: bah vu qu'il a un winrate de 100% contre tout le monde je pense pas :p
dbdr: attention à l'overflow qd meme
VirtualAtom: son écart en score est impressionnant
Vry: Oui, mon IA hiddait jusqu'à 12h45 ... :p
Zorg1: if (time>12:45) algo_elite(); else algo_standard();
dbdr: * plot twist, reCurse finit dernier, CG stockait les victoires sur 16 bit signés
fenrir: est-ce que reCurse a un peu expliqué ce qu'il fait ?
b0n5a1: laissez le respirer ^^
jdeveil: il a l'air adepte des NN sur-entrainé
Lassanasakho213: Bonjour tout le monde comment on peut retrouver le challenge qui est fini ce matin merci
WhatTrickeryIsThis: ce qu'il fait c'et qu'il gagne
Alshock: Il faut attendre un petit temps avant qu'il sorte en multi
Zorg1: ça pas été très rapide pour le FC ?
Alshock: Automaton2000 un mot sur la suprématie de l'IA contre l'humain sur codingame ?
Automaton2000: il est vraiment pas mal
Alshock: Ah ouais moi il m'insulte et reC*rse il l'encense /flip
dbdr: Zorg1 si il me semble
Alshock: @Zorg1 ça n'empêche que là maintenant tout de suite il ne peut pas le farie donc il doit atttendre un 'tit peu
Zorg1: ^^
jdeveil: c'est reC*rse qui a codé Automaton2000 ?
Automaton2000: est ce que je voulais dire c'est que si je veux en faire quoi ?
Alshock: le farine* voulais-je écrire
Zorg1: non c'est Magus
Alshock: non c'est magugus
Magus: (Automaton2000 n'est pas un NN)
Automaton2000: ca va etre un peu serieux ...
jdeveil: et reC*rse ne fait que du NN... ok
Alshock: Tiens c'est ça qu'il faut faire maintenant, forcer reC*rse à réparer automatonNN d'Agade :P
Zorg1: t'as raison Automaton2000 les NN c'est pour les noob les pros ils font des chaînes de Markov :p
Automaton2000: quand tu commences à faire de la merde à la fin du tour
Alshock: il ne fait pas que du NN, d'où te vient cette idée saugrenue ?
Zorg1: bah ça avait l'air d'être sa marotte ces derniers temps
jdeveil: deux pauv contests, je généralise mais ça me fait rire de voir à quel point il maîtrise
jdeveil: je reste sur le cul devant ce spectacle :p
Zorg1: je crois qu'il en avait fait un pour SR aussi
jdeveil: en fait j'aimerai bien le voir faire un contest une fois... pour voir comment il entraine son code, etc...
jdeveil: son code python sur CSB me laisse rêveur
dbdr: c'est pas du python
jdeveil: ?
dbdr: c'est du python qui appelle un executable compilé. enfin je pense
Zorg1: oui c'est ce qu'avait expliqué Pb4
jdeveil: c'est quel type d'algo derrière ?
Zorg1: il paraît que c'est plus simple à faire en python, c'est pas uniquement pour la beauté du troll
Zorg1: NN
jdeveil: NN, génétique, autre ?
jdeveil: ok
Stilgart: wow, joli matelat pour reCurse
dbdr: bof, j'en ai fait en rust, quand rust était compilé ed debug
Zorg1: après c'est sûr faut pas négliger la dimension trollesque d'avoir un bot python #1 :p
jdeveil: c'est clair ça claque
Zorg1: 5 bot Go en legend !!
dbdr: jolindien, deux arbres, c'est pas smitsimax?
jolindien: si tu veux l'appeler comme ça, oui
Saelyos: J'aurais parié que t'étais en DUCT
jolindien: je pense que c'est trop couteux DUCT
Zorg1: c'est quoi la diff entre DUCT et smitsimax ?
jolindien: t'as fait quoi toi ?
Saelyos: C'est ce que fais :)
Saelyos: j'ai*
jolindien: ahh
jolindien: gg
jolindien: je pensais pas que le simultané était si important que ça
CharlesBesson: bonjour à tous
CharlesBesson: c'est quoi smitsimax ?
Saelyos: Je sais pas si c'est important mais j'avais pas envie de me prendre les galères d'actions invalides
jolindien: Zorg1, le DUCT c'est un seul arbre qui se calque vraiment au jeu (coups simultané)
Zorg1: ah ok
Saelyos: CharlesBesson https://www.tech.io/playgrounds/36476/smitsimax
CharlesBesson: cool de la lecture !
CharlesBesson: merci
jolindien: t'as fait quoi CharlesBesson ?
CharlesBesson: un bête beamsearch
CharlesBesson: en faisant varier la largeur en fonction de la profondeur atteinte au tour d'avant de sorte d'élargir sur la fin car ça calcule plus vite
CharlesBesson: mais là je flippe de perdre ma 7ème place avec le recalcule qu'ils ont lancé
Stilgart: CharlesBesson: tu risques pas grand chose
jolindien: pas si bête je pense... tu dois avoir une super fonction d'évaluation
Stilgart: trop loin de 3e et de &&e
Stilgart: 11e*
dbdr: oui, #11 c'est la lose ;)
Stilgart: go go go bouter kovi :)
Stilgart: nmahoude: idem
Stilgart: Magus: idem
dbdr: qu'est-ce qu'il t'a fait kovi?
CharlesBesson: pourtant plutôt simple ma fonction d'éval : le score, les sunpoints, une proba de vendre mes arbres (fct du jour et de la taille) et avec quel nutriments, et une simulation du nbre de points de soleil que je vais capter d'ici la fin de la partie
CharlesBesson: @Stilgart, en effet je risque pas grand chose, le t shirt est dans la poche et la toile hors de portée :smiley:
Zorg1: la toile ?
dbdr: top 3
Zorg1: ah ok je lis même pas la liste des prix ^^
dbdr: c'est pour ça que t'étais pas motivé!
Zorg1: :D
CharlesBesson: c'est un copain qui m'a dit que si j'étais top 3, j'aurais des draps codingame
CharlesBesson: il avait sans doute mal lu ...
Bon[]Crayon: Salut tout le monde.
dbdr: lol
-Cile-: o/
jdeveil: lu
dbdr: mauvais traduction peut-etre
Bon[]Crayon: Automaton2000 slt
Automaton2000: comment on sait si on peut faire un peu de simu pour toi car au lieu de 5
GTS: reCurse parait tellement loin devant :o
CharlesBesson: il a fait un réseau de neurone, c'est ça ?
Luksis: Hello tous le monde
Magus: des draps codingame ?
Luksis: une petite question : les challenge généralement
Magus: wtf
Luksis: ils mettent combien e temps avant de sortir en combat de bot ?
Luksis: une semaine, non ? plus , moins ?
GTS: sur les précédents challenge ça avait été super vite, dès le lendemain
Luksis: Ah ouais ?! nice
Luksis: merci GTS
GTS: bof ça fait déjà 10 jours qu'on dort plus, faut se reposer un peu :p
Stilgart: Luksis: ça devrait être dipso demain
psychedelic68: hello ! Pourquoi sur l'erreur 404 de Codingame c'est écrit "vous aimez le crabe" ? Il y a une ref que j'ai pas ? merci :)
Stilgart: depuis qu'ils replaquent le contest, ça va vite
dbdr: euler a dit un truc sur #world, que son chat l'avait reveillé pendant la nuit, et sa première pensée, c'était d'attendre que la recherche continue, le chat doit dormir à une profondeur plus grande
dbdr: il doit avoir les draps CG
OldJohn: J'ai eu un polo ce matin signé EPI (European Processor Initiative), c'est autrement plus classe :-)
Luksis: merci Stilgart
Luksis: ouais donc demain
Luksis: ouais c'est clair GTS :P
AzerBenAzzouz: hi
-Cile-: Mon bot en chute libre :sob: Bon, je vais dormir... ah non c'est vrai c'est la fin de la pause repas je dois bosser...
AzerBenAzzouz: :flag_tn:
Bon[]Crayon: :peace:
dwarfie: la pause quoi ... :D
dwarfie: ah ... ca rerun maintenant ?
Zorg1: depuis 12:45 en fait
Zorg1: avec un peu de chance ça sera fini à 18:00 :(
dwarfie: de toutes facons , a la fin , ca sera reCurse avec 6 points d'avance ... :D
OldJohn: Yep ! Comme quoi la poutine cela a du bon !
Zorg1: bah il les a quasiment déjà ses 6 points d'avance ...
jolindien: aura-t-on droit à son PM ?
OldJohn: Quand tu auras mis le tien @jolindien
Zorg1: bah ...
jolindien: c'est fait
jolindien: (le mien)
OldJohn: ok cool !
philRG: Zorg1: dimension trollesque du #1 en python :-D
pardouin: o/
pardouin: gg zorg1
Bon[]Crayon: \o
philRG: si on cut le contest sur une fonction random.randint(1, 10), ça peut le faire :)
Zorg1: merci pardouin
Zorg1: o/
b0n5a1: t'as raté ton ascension quand t'es parti Zorg1
pardouin: hâte de recevoir mon tee-shirt
philRG: moi je suis resté pour le voir gravir
philRG: de 600ème à légende en un jour bravo Zorg1
philRG: 600ème en gold je crois
Zorg1: 900e ^^
philRG: ça c'est du tryhard :thumbsup:
Zorg1: bon j'ai mis trois jours à mettre au point mon MCTS suite à bug idiot et dév à l'arrache :D
Zorg1: perso Dimanche j'allais abandonné quand j'ai deviné le bug
dbdr: ct quoi le bug?
YannT: je suis deg' en lisant les PMs, j'avais tellement de moyens de faire mieux en prunant mieux les actions possibles... :( j'explorait vraiment trop de trucs
Zorg1: très con : en adaptant mon code MCTS d'UTTT j'avais viré l'update des stats sur le noeud racine
dbdr: ouch. t'avais pas 0 visites du coup?
pardouin: moi j'ai sacrifié quelques CP pour submit un clojure dégueulasse à la place de mon Python, je perds 1000 places mais normalement je suis 1er clojure XD
Zorg1: sur le noeud du haut, les autres était bien adaptés
dbdr: mais du coup la selection du 1er coup?...
Zorg1: évidement je cherchais un problème dans la simu, j'ai trouvé un bug dans la gestion des ombres mais c'était pas ça ^^
YannT: pardouin: je sais pas si ça marche ça, de mémoires ils ont fait un truc pour éviter les gens qui switch de language dans leur league pour choper l'achievement
Zorg1: bah il privilégiait le premier fils de la racine
pardouin: on verra bien, au pire quelques cp c'est pas la mort
pardouin: j'ai pas utilisé system ni rien
JBM: et: il reste un achievement pour ça?
YannT: achievement oui
YannT: pour la filouterie je sais pas, peut être ça marche
dbdr: ban le compte
pardouin: lol
pardouin: je vous dirai avec un autre compte <3
pardouin: vous viendrez me donner des oranges en prison
YannT: j'aime ce rerun
philRG: pourquoi supprimer les CP, tu peux pas switcher de langage si tu en as envie?
Zorg1: z'êtes des agressifs du ban ...
pardouin: non mais c'est juste qu'en passant de 600ème gold à ~bottom gold je perds forcément des CP
dbdr: /ban Zor61
Zorg1: /ban et ban encore
philRG: t'as pas eu le temps de remettre ta version précédente?
pardouin: mais on peut très bien switcher de language hein, cf zorg1 avec lua et go
pardouin: ben ça prend en compte la denrière version
pardouin: dernière*
Zorg1: bah ouais j'ai pas l'impression d'avoir trop gruger sur ce coup là
philRG: finalement cg brutal tester m'a bien soulagé au niveau fatigue, dommage que j'ai pas pu l'utiliser avant hier soir minuit...
JBM: ton impression nous importe peu
Zorg1: pfff
JBM: ce qui compte c'est qu'on te banne que 5k gus gagnent une place
JBM: c'est pas personnel, c'est pour les CP
dbdr: il faut switch de langage toutes les minutes, puis 30 secondes, puis 15, etc. ` à la fin tu as une submission dans chaque langage
pardouin: tu aurais été premier lua en plus zorg1
Vry: Je pouvais switcher sur Objective-C pour l'achivment ...
philRG: j'ai gagné environ 100 places grâce à brutal tester je pense en optimisant mes magic number
pardouin: t'azs vraiment mal géré
Zorg1: bah j'ai déjà été premier dans un langage
Zorg1: t'as pas un achievement par langage
pardouin: t'as vraiment bien géré alors :)
Zorg1: (ce qui vaut pê mieux vu les zozos)
pardouin: XD
pardouin: <- zozo
dbdr: faut deja faire 30 contests...
dbdr: a deux par an...
pardouin: le sars 4 nous aura emporté d'ici là
pardouin: oulha
philRG: Vry: Premier objective-C en Silver. 5 swift en gold
philRG: j'ai failli me mettre au swift sinon
philRG: je sais pas quel autre langage choisir en fait autre que python :sob:
YannT: it's est très très bien ce rerun
YannT: j'ai comencé à 180 je crois :o
Gilde: Est-ce qu'ils vont rerun les autres ligues ?
dbdr: on l'appelle comment ce challenge? [sc]2[1-9] ça va vite devenir confus
dbdr: [sf]c
dbdr: ah oui pas mal
JBM: comment on appelle les sorcieres deja?
dbdr: boszorkányok
dbdr: mais c'est en hongrie uniquement ;)
YannT: "seed the world"
pardouin: totoro ?
JBM: ah oui totoro, c'est comme ça que je l'appelle dans mon code
dbdr: SGCW
pardouin: TTR pour les flemmards
dbdr: totoro il apparait pas bcp dans le jeu
dbdr: pas comme pacman
dbdr: photosynthesis je comprendrai
bananaMixer: mon dépôt git s'appelle « wood spirit »
dbdr: avec espace?
YannT: mais il faut faire un jeu de mots avec genre "code" dedans pour respecter le thème
dbdr: coders in the woods
bananaMixer: dbdr : il y a un tiret
YannT: je vote botoro :grin:
dbdr: Devint Scie Code
dbdr: merci Renaud
Vry: Moi aussi je monte doucement ... plus que 21 points et je passe premier ! :p
pardouin: MononoCode Princess
jdeveil: le rerun n'est pas encore fini ? ça va durer tout l'après-midi :p
pardouin: plutôt: Princess MononoCode
pardouin: (je viens de check le titre anglais)
OldJohn: totoru semble adapté finalement
Stilgart: go go go Vry
**Stilgart tend ses points à Vry
Zorg1: je regarde le classement de Yannt, Vry et le mien on est tous dans un point d'ELO
YannT: mon bot était top100 hier soir, j'espère qu'il va remonter dedans ça me ferait plaisir :D
YannT: mais il stagne un peu là
Stilgart: Zorg1: sur combien de places ?
Stilgart: une trentaine
Zorg1: une quinzaine
Zorg1: hello
Neige: @YannT moi ça me va d'être top 1 kotlin :D
Vry: Je redescends un peu pour retrouver YannT
Vry: Zorg1 est 10 places devant
Vry: C'est mort pour le top 100
Zorg1: oui je pense aussi et je serais au mieux #2 go
Zorg1: au moins c'est moi qui commande les rôdeurs
Vry: Vu sur le chat World : https://core.ac.uk/download/pdf/33500946.pdf
Vry: Pour les bitboard
Neige: > Hexagonal boards can be staggered to pack into a square array BrainSolver explique ça dans son PM.
BigUP: tin, les feedback sur Spring challenge. le gars 144eme en python avec 40 lignes de code.... je suis vraiement passé à coté de quelquechose
BigUP: 144eme gold
Stilgart: ça parait peu, surtout en python
Stilgart: mon code low golden Haskell faisait déjà 80-100 lignes
Zorg1: bah l'heuristique j'ai l'impression que parfois faut pas grand chose pour gagner 500 places
Zorg1: le problème c'est trouver ce "pas grand chose" :D
Stilgart: perso, j'ai ressenti un scaré paquet de murs en gold
BigUP: Zorg1, moi j'ai secoué mes magic keys dans tous les sens pendant un moment, ca ne changeait pas grand chose.
Stilgart: BigUP a bien résumé
Stilgart: après, faudra que je tete mon moteur un jour
Stilgart: si ça se trouve, elle est là la différence :D
BigUP: bon apres effectivement le gars à simplément fait ce que j'envisageais un moment. juste scorer les différentes actions possibles
Zorg1: après ce genre de jeu j'ai l'impression que ça fini par de la compta et de la prévision budgetaire
JBM: oui c'est ce qui m'a repoussé
BigUP: Zorg1, si seulement j'avais bossé ma compta à l'école !
JBM: j'avais vraiment l'impression de me remonter un budget, avec le besoin en fonds de roulement et les amortissements
Stilgart: JBM: tu as pu te complete deux fois, du coup :)
Stilgart: :o)
WhatTrickeryIsThis: faut être classé combien pour gagner le slip CG ?
WhatTrickeryIsThis: mon dieu j'espere qu'ils restent des XXXL pour ma grosse B...
WhatTrickeryIsThis: :banana:
BigUP: WhatTrickeryIsThis: de cette taille la, c'est plus une courgette (mince il n'y a que des :cucumber: )
WhatTrickeryIsThis: WTIT ez top 100
WhatTrickeryIsThis: trop facil le contest, vous avez rien dans le froc
Vry: Je suis curieux de voir combien je peux gagner en passant de bitboard 0..36 à ceux utilisés par BrainSolver
WhatTrickeryIsThis: vivement le multi <3
Magus: ah cool, je suis revenu top 10
Vry: Oui, finalement "relativement" simple avec un MCTS.
Magus: ça aurait quand même été la honte (en espérant ne pas parler trop vite :D )
Magus: bah vous avez mon PM, y'a rien de transcendant dans mon MCTS
Vry: Le tout c'est d'avoir du temps à y consacrer
Magus: j'ai pas de trick magique
WhatTrickeryIsThis: y à une tortue qui te poursuit attention
Magus: enfin après le reste c'est juste comment j'ai fait mes objets pour avoir de la perf
WhatTrickeryIsThis: y à des tricks sur les cuts quand mepem
Magus: ouai je pense que c'est le même genre de trick que tout le monde dans le top 20
Magus: pour les seed tout le monde faisait pareil
WhatTrickeryIsThis: gérer le simultanné j'ai pas compris
Magus: mon mcts fait les coups l'un après l'autre
Magus: comme un minmax classique
Vry: En gros, il fallait un MCTS "sans gros bug" et filtrer les seed à mort
Magus: donc l'adversaire "connait" ton coup dans tes simulations si tu fais ça
Magus: parce qu'il va sélectionner son coup en connaissance du tiens
BabelO: oui la perf avec les byte & mask :) je note ca pour le prochain cg ! un trre au final c'est que 4 byte dans un unit8array pour du javascript
WhatTrickeryIsThis: les complete et grow on pouvait cut aussi apparemment
Magus: BabelO: j'ai aucun mask ou bitboard :D
Magus: oui
Vry: Magus, tu verux dire que tu mets à jour le state à chaque coup ? Moi, je ne mets à jour le state qu'une fois le coup de l'adversaire coonu.
BabelO: ok :( avec juste la logique de base on doit pouvoir parcourir tres rapide je pense
Magus: Vry: je met à jour le state qu'une fois sur deux, quand j'ai les 2 actions
Magus: ce qui empêche pas l'adversaire de connaitre ton coup quand même
Magus: vu que t'es dans la branche
WhatTrickeryIsThis: je run des dummies// ou du random en parralelle dans mes rollouts
WhatTrickeryIsThis: mon arbre il va qu'au niveau 1 ^^
Vry: Ok, on a le même mode. Oui, il joue son coup dans la même branche.
WhatTrickeryIsThis: j'ai pas étudier jusqu'où développer mon arbre de select
WhatTrickeryIsThis: juste 10 tours random+rollout dummy
Vry: Mais c'est le mot "connaître" qui me gêne un peu car la fonction de génération des moves s'en fou en réalité de ce que l'autre joueur à fait. Mais c'est bien évalué dans la même branche !
WhatTrickeryIsThis: parceque ça donne nimp quand je suis waiting afk et je dois developper les noueds ia adverse
WhatTrickeryIsThis: il doit connaitre sans savoir en fait, si il connait vraiment il echapperait au double seed
Strawbot: Dans combien de temps le spring challenge sera dispo en tant que jeu?
Zorg1: demain je crois
Zorg1: tiens il est pas là pour s'énerver Blaise ?
Vry: Il a kické tellement de monde BlaiseEbuth ... il est épuisé !
WhatTrickeryIsThis: il dors à cette heure là
Littleyounes: MDR
Littleyounes: J'ai failli écoper d'un ban hier
Stilgart: Vry: il s'est passé quoi ?
Vry: Ou ça Stilgart ?
Vry: *Où
Stilgart: avec Blaise
Vry: Je ne sais pas ... pourquoi il boude ?
Stilgart: ça j'ai mes idées sur la question :)
Stilgart: (j'en déduis qu'il a pas vraiment kické son monde hier)
Vry: Je sais qu'à un moment j'ai tendu une perche et il m'a kické ... mais sans plus
philRG: le MTCS de Blaise faisait bcp de WAIT j'ai vu
philRG: du coup l'esprit se repose :)
Stilgart: wait c'est fort
Stilgart: ça coûte rien et ça rapporte du sun
WhatTrickeryIsThis: wait c'est le best pour day>=19
Stilgart: j'avais le même soucis avec mon BS
WhatTrickeryIsThis: souvent
philRG: même pas qu'hier j'ai codé une fonction de stats pour savoir combien je faisais de wait parano
Stilgart: encore 143 runs
Vry: Il me reste 34% ...
Stilgart: #6 il en est à 46% seulement
Vry: Zorg1 et YannT en sont au même point
philRG: Stilgart en fait oui un wait c fort lol
Kris117: Il me reste 7%. On voit sans doute la différence avec ceux qui ont une simu et ceux qui n'en ont pas
philRG: en fin de contest, tu veux amélioré ton score donc faire des actions
Stilgart: si tu vas pas assez profond, c'est même ULTRA fort
Stilgart: j'ai mis explicitement un score /= 10 en cas de double wait
philRG: mais wait c une action lol donc ouais je vais aller agir dans mon canapé :-D
Zorg1: R4 a déjà fini son rerun, on voit les gars en heuristique ...
Stilgart: philRG: echo wait c'est déjà agir ;)
philRG: je me suis rajouter des seeds additionnels, heureusement cg brutal tester m'a fait redevenir raisonnable
philRG: j'ai fait toute une batterie de magic numbers pour me canaliser
philRG: en fait le gros du boulot c l'analyse et conception
philRG: le tuning c bien pour valider
BabelO: @magus tu as vu comment a fait kodle ?
Zorg1: c'est vrai que mon tuning c'était quelque match contre moi et le boss dans l'IDE puis un push ...
philRG: Stilgart: on a pas fait mieux que la command line pour les outils
philRG: si tu as déjà ta stratégie ouais pas besoin du tuning
philRG: les heuristiques, y a des limites
jdeveil: philRG: comment tu utilise brutaltester pour jouer sur les magic numbers ?
Vry: J'ai pas fait de tuning pour le coup ... j'ai juste codé un min/max histoire de voir ce qui ne fonctionnait pas dans mon MCTS.
philRG: actuellement j'ai un fichier csv par set de magic
Zorg1: mais tu testes contre toi même ?
philRG: mais faudrait le mettre en json et les générer en python selon des ranges
philRG: je teste mes itérations
philRG: et mes magic
philRG: pour les magic, oui c le même code
philRG: Mais faut coder ton code pour pouvoir définir des magic
philRG: s/coder/organiser
jdeveil: tu parle bien de ce brutaltester : https://github.com/dreignier/cg-brutaltester
Zorg1: après le risque de ce genre de truc c'est de sur spécialiser ton bot à se battre contre des bots similaires
philRG: j'ai regardé les streams de R4 pour chiper tes idées d'organisation de code pour des heuristiques car jusque là c'était du bricolage
philRG: des
philRG: oui le risque justement c'est de sur spécialiser
JBM: Stilgart: je ne sais pas si tu as vu passer, on a l'attention de CG pour monter une propale Haskell
philRG: en fait c'est pratique car c'est: plus rapide que l'IDE, et pas de message spam submit de CG
JBM: Stilgart: je vais monter genre un discord avec freex42bidule qui s'était montré intéressé
Zorg1: t'es sur discord toi ?
philRG: le soucis c'est tester des heuristiques sur l'IDE CG ou arène qui met des heures
philRG: sur un algo de recherche, à mon avis, ça doit être plus rentable qu'un algo orienté heuristique
philRG: d'utiliser brutal tester
philRG: #noob
Zorg1: bah on a le même problème, on a plein d'heuristique pour pruner parmi les coups possibles afin de réduire le branchinf
Zorg1: mon avant dernier push il marchait très bien contre mon ancien bot et le boss mais le top 30 n'était pas au courant que mon bot batait le #1 et le #7 :(
philRG: après pas besoin de brutal tester pour exécuter le referee en local
philRG: en command line
jdeveil: je me renseigne sur brutal tester pour lancer plusieurs games pour du training ou de la recherche de magic numbers
philRG: oui c'est pas la solution idéale
jdeveil: tu me conseille quoi alors ?
philRG: ah je répondais à Zorg1
Zesam: Comment vous faites marcher brutaltester ? J'ai une erreur niveau reflexivité :(
philRG: oui je crois
Zesam: il me dit "ERROR DURING GAME 1" etc
Zesam: et c'est flaggué comme une erreur
philRG: voilà la syntaxe pour lancer 2 versions de codes python
philRG: java -jar cg-brutaltester.jar -r "java -jar -Dleague.level=3 spring-2021.jar" -p1 « /usr/local/bin/python3.8 totorosimuv62.py » -p2 « /usr/local/bin/python3.8 totorosimuv61.py » -s -l "." -n 100
Vestiaz: j'ai pas le -Dleague.level
jdeveil: pareil j'ai pas du trouver la même version :p
philRG: le jar du referee doit être compilé à partir des sources du referee et de la classe additionnel CommandLineInterface
philRG: le -Dleague.level c'est pour dire quel ligue ton bot va concourir
Zesam: j'ai pris le referee linké dans le github, il doit marcher directement non ?
philRG: si tu fait SEED en Wood 2, ça plante
Strawbot: Pourquoi les français sont aussi chauds sur codingame? C'est un site français?
Zesam: yes c'est de Montpellier je crois a la base
Strawbot: ah ok
philRG: tout est là: https://github.com/LSmith-Zenoscave/SpringChallenge2021/tree/main/src/main/resources
francois: Oui, et les français sont chauds pour les compètes en général
philRG: et tu peux changer les paramètres de timeout en local aussi sympa
philRG: https://github.com/LSmith-Zenoscave/SpringChallenge2021/blob/main/src/main/resources/log4j2.xml
philRG: ça du tuning :-)
Zesam: c'est bien ce referee que j'ai. Mais ca plante a l'exécution
philRG: ouais c'est pas plug and play
Zesam: :( je pige pas ce que je loupe alors
philRG: faut une classe additionnelle et modifier le fichier pom.xml d'après les instructions pour regénérer l'archive .jar
philRG: sinon prendre une archive déjà compilée par un utilisateur cg
Zesam: ok, mais la classe elle est présente dans ce referee. Faut la dupliquer ? Et la doc dit qu'il faut modifier le pom, mais ça raconte pas vraiment ce qu'il faut y changer... C'est pas tres pratique quand on débute
philRG: ben pas très pratique mais certains l'ont fait chez eux, par exemple ici: https://github.com/LSmith-Zenoscave/SpringChallenge2021/releases/tag/v2
philRG: après modifier le code source des classes java additionnelles ou fichiers de config, j'suis pas spécialiste
philRG: je fais que du python
philRG: déjà avec cette archive, tu le lances en command line
philRG: quoique non il fonctionne qu'avec brutal tester
Rajh: C'est quoi le soucis avec le Referee ?
philRG: enfin si il fonctionne mais le résultat de la partie est dans un fichier json
philRG: brutal tester est seulement pour automatiser et donner le résultat final sur 100 runs
Rajh: Si vous êtes pas réfractaire à un peu de java. Vous importer le projet dans votre IDE et dans src/test/java/Spring2021.java
philRG: en parsant les données du fichier
Zesam: je l'ai bien lancé avec Brutal tester, mais meme avec cette archive, j'ai toujours l'erreur
Rajh: vous pouvez modifier un peu pour lancer vos simu
philRG: je l'ai fait dans mon IDE IntelliJ
Rajh: et faire des boucles et des stats comme vous voulez
philRG: Zesam c'est pas une erreur mais un warning
philRG: les erreurs sont dans le fichier json si tu as redirigé la sortie vers un fichier. Le run donne seulement le n° de seed: 8781465982878176474
philRG: par exemple
philRG: l'identifiant de partie
philRG: mais ça doit pas servir en local
Zesam: http://chat.codingame.com/pastebin/0d57ed92-3d83-4ed4-8c5b-f903aaf4f522
Zesam: j'ai quelque chose comme ca, ça parait plutot grave quand meme. C'est grave doc ?
philRG: ça ressemble à une erreur
Zesam: et nada dans le dossier de log :'(
Rajh: T'as eu ça en faisant quoi ?
philRG: après bon, tu prends le jar du referee modifié: https://github.com/LSmith-Zenoscave/SpringChallenge2021/releases/tag/v2
philRG: une des version modifiée de l'outil brutal tester: https://github.com/LSmith-Zenoscave/cg-brutaltester/releases/tag/1.0.0-zenoscave
philRG: et tu lances cette commande:
philRG: java -jar cg-brutaltester.jar -r "java -jar -Dleague.level=3 spring-2021.jar" -p1 "/usr/local/bin/python3.8 totorosimuv62.py" -p2 "/usr/local/bin/python3.8 totorosimuv61.py" -s -l "." -n 100
philRG: pas de quoi fouetter un chat
philRG: ou pour des bots dans d'autres langages:
philRG: java -jar cg-brutaltester.jar -r "java -jar cg-referee-ghost-in-the-cell.jar" -p1 "./myCode.exe" -p2 "php myCode.php" -t 2 -n 100 -l "./logs/"
philRG: suffit d'avoir un runtime java (v 1.8 préférable)
philRG: et lire/comprendre l'architecture des referees CG accessoirement si tu veux modifier des paramètres de config de run du referee en local
philRG: voilà l'architecture Java permettant de développer des puzzles: https://github.com/CodinGame/codingame-game-engine
philRG: avec des documentations détaillées pour créer ses propres contributions communautaires de puzzles
philRG: ie le SDK: https://www.codingame.com/playgrounds/25775/codingame-sdk-documentation/introduction
Zesam: alors ca a l'air de marcher :) j'ai que des 0% partout alors que mon code aurait du gagner au moins une fois.. :/ Mais c'est un bon début. Merci beaucoup ! :)
philRG: yess!!
philRG: j'avais des 0% / 0% parfois mais c pas valide
philRG: vérifier que ton bot soit bien exécutable dans le chemin
philRG: parce que brutal tester te le dit pas
philRG: il fait comme si ton bot avait gagné
philRG: mais en fait:
philRG: iMacDisplay:spring-challenge-2021 display$ /usr/local/bin/python3.8 sc_202.py /usr/local/bin/python3.8: can't open file 'sc_202.py': [Errno 2] No such file or directory
philRG: lol
philRG: c'est qu'un outil maison d'encapsulation de run du referee
philRG: et analyse des données de match
philRG: pas un outil fourni par CG
philRG: j'avais eu ces erreurs cette nuit lol
philRG: faut vérifier que ton code est exécutable sur ta plateforme
philRG: par exemple, j'ai du mettre le chemin complet car mon IDE utilisait une version différente de celle définie par défaut sur mon OS
philRG: iMacDisplay:spring-challenge-2021 display$ python --version Python 2.7.16
philRG: j'ai codé mon bot en version 3.8 de Python
philRG: sur CG, suite à maj avant contest, on est en version 3.9.2, faudra que je mette à jour ma version locale
philRG: https://www.codingame.com/faq
Arnaud.Net: si yavait une option display score sur brutal tester...:heart_eyes:
Arnaud.Net: (je fais pas de java)
philRG: ben c'est l'option par défaut
philRG: http://chat.codingame.com/pastebin/7b90ae26-a870-4521-8ca3-09ca2298d8c4
philRG: c'est codé dans la classe PlayerStats
philRG: affiché pardon
philRG: le Main est ici: https://github.com/dreignier/cg-brutaltester/blob/master/src/main/java/com/magusgeek/brutaltester/Main.java
philRG: et le README expliquant les options: https://github.com/dreignier/cg-brutaltester
CharlesBesson: Petite question : comment vous faites pour faire jouer une version d'un de vos programmes contre une autre version ?
philRG: bon je vais laisser le chat FR se reposer
CharlesBesson: Il y a des outils pour ça ?
philRG: très simple:
philRG: java -jar cg-brutaltester.jar -r "java -jar cg-referee-ghost-in-the-cell.jar" -p1 "./myCode.exe" -p2 "php myCode.php" -t 2 -n 100
philRG: n'importe quel langage convient tant que le code est exécutable sur la machine
philRG: donc faut compiler le code avant ou avoir un interpréteur compatible avec le code
CharlesBesson: excellent merci. Je ferai mieux la prochaine fois du coup :wink:
philRG: très simple, mais faut recompiler le code du referee pour qu'il puisse s'exécuter sur votre machine, ou utiliser l'outil déjà recompilé par quelqu'un d'autre
philRG: y a des liens sur les outils pour chaque referee de contest: https://github.com/dreignier/cg-brutaltester
philRG: en bas
Vry: Ça va se terminer !
Vry: Plus que 4 computing
philRG: ah vous avez le lien, je l'ai perdu à cause de mes spams
-Cile-: https://www.codingame.com/contests/spring-challenge-2021/leaderboard
Zorg1: on attend encore deux japonais et c'est bon
Rajh: Si jeune et déja poney
WhatTrickeryIsThis: :clap:
-Cile-: on pariait sur 6 points d'avance, c'est presque 7...
jdeveil: c'est impressionnant l'avance qu'il a
Vry: Bon, si j'ai bien suivi avec MCTS on est sur la bonne voie ... mais il va faloir se mettre aux NN pour l'éval. ! :p
BlaiseEbuth: Yo tout l'monde ! Automaton2000 ! AutomatonNN ?
Automaton2000: mais au lieu de la valeur de la carte
Zorg1: surtout avoir de la perf
Zorg1: o/
Vry: Ça peut faire un challenge dans le challenge pour le prochain challenge ...
Zorg1: AUtomatonNN sort de Vry !
Rajh: Tu trouves qu'il part en vrille ?
Zorg1: plutôt les imbrication de contest de contest
BlaiseEbuth: C'est pas encore fini ? Ils ont rendu le serveur de prêt avant le rerun ?
Zorg1: y en a encore un qui finit son run ...
-Cile-: ça ne va plus bouger maintenant
-Cile-: avec un peu de chance Magus peut encore passer 9e (enfin de la chance, ça dépend de quel côté on se place)
Julius2k17: quelqu'un aurait des ressources à recommander sur MCTS ?
dbdr: https://int8.io/monte-carlo-tree-search-beginners-guide/
Julius2k17: merci @dbdr
jbl: merci @dbdr
Rajh: FIN
Magus: et beh, heureusement que tout à l'heure j'ai dit que finir en dehors du top 10 ce serait trop la honte7
Rajh: reCurse lui il plante des seeds a côté de ses arbres !
Magus: vu qu'il a un NN il fait ce qu'il veut
Magus: quand tu fais un algo de recherche, t'es obligé de prune
Rajh: C'est sur qu'il a un NN ?
Magus: oui
Julius2k17: reCurse a l'air de planter des arbres pour faire de l'ombre à ses adversaires et le priver de Sun
Stilgart: Magus: belle remontée, gg
psychedelic68: salut, vous savez comment on peut passer outre l'erreur 407 "You reached the limit of plays for a period of time" svp ? je suis pas un bot promis :p
Stilgart: note pour CG, ajouter une ligue recurse :D
Stilgart: psychedelic68: en attendant que ça se calme
Stilgart: tu ne devrais pas atteindre cette limite avec un usage normal de CG
psychedelic68: ben je fais plein de tests dans tic-tac-toe ultimate vu que je me sers pas mal de l'aléatoire
Stilgart: dbdr: à tout hasard, tu n'aurais pas la version non-beginner aussi ?
dbdr: de?
Stilgart: MCTS
dbdr: ah :D
Stilgart: je sais pas passer de MCTS à alphawhatever
dbdr: alphazero?
Stilgart: ou alpha go, ou alpha xxxx
Zorg1: alphaplusplus
dbdr: j'ai pas
**Stilgart n'a pas suivi les évolutions
Stilgart: erf, merci quand même
dbdr: alpha beta a la rigueur?
Magus: bah un mcts à alpha zero c'est facile
dbdr: alpha++ c'est beta ;)
Magus: tu remplaces la fonction rollout() par magicNN()
Stilgart: dbdr: ça fait sens de mixer alpha-beta et mcts ?
Magus: et voila
Stilgart: Magus: il fautr déjà l'étape de pas faire des rollouts jusqu'au endgame
dbdr: ya mcts(max), un truc comme ça
Zorg1: pourquoi tu veux pruner dans MCTS c'est pas justement le but de calculer les probas ?
Stilgart: et ça, c'est source de pièges déjà
dbdr: la propagation c'est negamax plutot que la moyenne
Magus: Zorg1: même en MCTS tu peux prune
Stilgart: Zorg1: ça doit converger plus vite si tu sais ce que tu cut
Magus: parce que si 90% de tes rollouts ils ont testés des trucs tout pourri (genre ton IA a COMPLETE tous ses arbres au jour 13 et n'a plus de sun)
Magus: c'est pas très tile
Magus: *utile
Stilgart: mais j'avoue que c'est pas le truc que je ferai en premier
Zorg1: oui mais les prune dans MCTS tu peux pas vraiment les faire avec alpha-beta
dbdr: pq pas?
Magus: ah prune avec alpha beta
Magus: la je sais pas
Stilgart: tu peux te dire que si tu tombes dans un ratio tout pourri, tu supprimes le noeud
dbdr: delete(child)
Stilgart: dbdr: c'est vraiment utilisé ?
Zorg1: c'est justement pas le boulot d'UCB ça, de négliger les noeuds avec un ratio de pouilleux ?
dbdr: je croyais que vous parliez de prune la liste d'actions
dbdr: a priori
Stilgart: Zorg1: en fait, ça se fait dans TTT quand on force à jouer un coup qui gagne une mini-grille pour l'adversaire
dbdr: en fait, alpha beta c'est du pruning par rapport a minimax
Zorg1: Stilgart : pour moi ça c'est plutôt de l'optimisation de rollout
Stilgart: mais ça peut aussi être vu comme du simple pruning sur les actions
Zorg1: en disant "OK on fait au hasard mais on va éviter les actions compéltement débiles"
Zorg1: après je sais pas si théoriquement ça ne vicie pas le process et ça risque de ne pas converger ou converger là où il ne faut pas
IhebZaidi: hello
Julius2k17: le pruning c la suppression des actions ayant échoué ou celles infaisables ?
Dahll: Ils relancent la league gold aussi après ?
Zorg1: non c'est bon c'est fini
Dahll: ok thks !
Zorg1: Julius2k17 : non tu prunes les actions que tu juges sans intérêt
Zorg1: tout le problème est dans ce "jugement"
Zorg1: parfois tu élagues ton arbre façon "porte manteau"
Julius2k17: question à 2 balles, vous utilisiez du multithreading ou de la parallélisation pour simuler autant de traitements ?
Zorg1: je crois que ça marche pas sur les serveurs CG
BlaiseEbuth: Bah t'as un core
Zorg1: voilà ^^
BlaiseEbuth: Stilgart dirait que tu peux faire de la concurrence.
Zorg1: à la limite tu fais du concurent pour pas attendre la fin de la lecture des actions possibles pour commencer à explorer l'arbre
Julius2k17: ok donc allègement max des structures et modélisation objet modérée
Zorg1: j(avais fait ça sur UTTT mais la flemme pour le contest
dbdr: c'est si long que ça de lire les actions possibles?
Zorg1: j'avais plus fait ça pour m'amuser pas vraiment mesurer
Zorg1: bah tu peux avoir des attentes sur des I/O pour pas grand chose
Zorg1: après c'est sûr c'est un peu de la "premature optimization"
Julius2k17: vous simulez toutes les combinaisons de grow complete et seed ou sans seed ?
Zorg1: bah c'est assez bien expliqué dans le PM de Magus, ça résume bien ce que je fais dans mon MCTS
Zorg1: après moi le seed le seul paramètre de l'action seed c'est là où l'on pose la graine, j'ai une heuristique pour savoir qui l'envoie
Zorg1: ça marche pas trop mal
Zorg1: comme ça dans tous les cas, 1 move = 1 cell
dbdr: jolie simplification!
Zorg1: après faut voir ce que ça me coûte
Stilgart: BlaiseEbuth++
Zorg1: mais bon vu que je savais que j'avais un moteur de machine à coudre pour faire tourner mon truc j'ai fait avec ^^
**BlaiseEbuth is now known as Blaisebuti
IhebZaidi: salut
dbdr: ça coute quoi?
Zorg1: pas réfléchi si forcer l'arbre qui donne la graine n'empeche pas certaines combinaisons
THK2: wsh
Thyl: j'ne connais un qui va avoir un t-shirt
Thyl: son nom commence par db et fini par dr
Thyl: trop classe
dbdr: :shirt:
Julius2k17: reCurse doit changer de penderie
WhatTrickeryIsThis: il gagne quoi au fait?
Thyl: dbdr tu me donnes envies d'essayé le rust
Julius2k17: une toile personalisée de l'illustration du challenge dixit le bas de la page de détails
Thyl: On les a vu les dernièeres toiles ou pas ?
Julius2k17: je sais pas, je suis pas prêt d'en recevoir
Thyl: ma première ligue or donc moi aussi
Thyl: sur un challenge
dwarfie: non ... si meme Thyl a fini gold ou va-t-on :p ?
BlaiseEbuth: C'pas sympa ça dwarfie...
**dwarfie dit ca ... mais quand il regarde ceux qu'il suit , les seuls a pas etre passé gold sont dans son equipe :rofl:
dwarfie: tien ... t'es gold aussi toi ...je t'ai meme pas vu passé ;
BlaiseEbuth: Vite fait. J'y ai pas passé énormément de temps, et le temps que j'y ai passé je l'ai perdu sur des conneries.
Julius2k17: premier challenge Gold aussi mais sans simu, il faut que je m'y mette
dwarfie: quand je vois a quel point certains pm ressemble a ce que j'avais fait ... je pige pas ou j'ai merdé mais soit c'est un detail soit c'est enorme ...
Julius2k17: tu vas trouver sur le multi
dwarfie: bon ben ... mindgeek 57 eme en fin de compte :D
Beretta_Vexee: Je me reveille tard. Le spring challenge est terminée. Il y a certains codes de haut classé disponible ?
dwarfie: Julius2k17 ... oui ... sans doute , et ce n'en sera que plus rageant :japanese_goblin:
Julius2k17: les postmortem sur le forum
dwarfie: les codes sont pas disponibles ... dieu merci ...
Luksis: ça sort en combat e bot après
Luksis: c'est pour ça qu'il n'y a pas les codes de sorti
dwarfie: bon sang , je viens de percuter ton changement d'avatar Luksis ... je pigeais pas ce midi Stilgart qui te repondais alors que je te voyais pas :D
Luksis: Oui j'ai changé d'avatar :P
Luksis: dans le week-end
dwarfie: ca pour changer , ca change ;)
Luksis: ouais c'est clair ^^
philRG: Thyl bravo t'étais en python j'ai vu :fist:
dwarfie: bon ... serais-je encore gourou a la fin de la semaine ... pas sur ...
dwarfie: severe contre-performance quand meme sur ce contest ... et pas pres de rattraper vu qu'il va falloir poireauter 6 mois ...
Luksis: d'ailleurs la raréfaction des challenge j'espere que c'est pas mauvais signe
Luksis: (pour CG)
Luksis: parce que là j'ai l'impression qu'il va y avoir 2 challenges dans l'année
Luksis: alors qu'y a une epoque c'était 4 -5-6 meme 7 en 2018
Luksis: 6 en fait y a un doublon*
dwarfie: j'allais dire 6.5 :D
Luksis: ouais 6.5 -> 2 j'espere que c'est pas signe que CG a des problemes quoi
BlaiseEbuth: Mais non Luksis, ils se concentrent juste sur la partie importante de la commu.
dwarfie: en fait , j'ai bien aime le sprint avant de le marathon ... malgre que ca avait planté des le depart par de la saturation des runs ...
Zorg1: mais ça a permis à Beber de troller tout le monde avec son deuligne
Luksis: ok ok
dwarfie: quel noob ce beber ... il avait meme pas reussi a faire un oneline :D
jolindien: Luksis, y'a aussi des petits challenge organisé pour des entreprises
BlaiseEbuth: https://imgur.com/a/PtT6S5Q
jolindien: faut surveiller le forum, y'a pas de pub
Luksis: Ah ok ! merci jolindin
dwarfie: :rofl: BlaiseEbuth
dwarfie: mais tellement vrai :(
Luksis: Hahahaha
Zorg1: 5% des CG font les contests d'après un sondage Pifométrique (TM)
Beretta_Vexee: C'est un peu frustrant, j'ai pas eu le temps de finir ma troisième itération de mon bot et maintenant plus moyen de la tester dans l'arène...
Luksis: Excellent BlaiseEbuth
jolindien: finalement 3eme pour l'UCBL, cool
Luksis: ouais c'est pas mal !
Luksis: le podium :D
Zorg1: Beretta_Vexee : attend un peu le multi va ouvrir
pardouin: beretta_vexee dès demain sans doute
Beretta_Vexee: le multi ?.
jolindien: p'tain l'école 42 -> 300 joueurs
BlaiseEbuth: En même temps sont payés pour participer
pardouin: ils gagnent une sucette s'ils participent aussi
Zorg1: Beretta_Vexee : bah la même chose que le contest mais sans fin
leojean890: jolindien, en fait ils offrent des prix ux bien classés
Zorg1: (et sans prix non plus)
jolindien: ah ok
leojean890: des ordis pour les 3 premiers de l'école 42
leojean890: et d'autres prix ensuite
Luksis: mdr être payé pour participer à un challenge codingame, c'est le piedd quoi
Beretta_Vexee: Désolé, c'était mon premier challenge CG. Je découvre.
jolindien: forcément
pardouin: il sera là: https://www.codingame.com/multiplayer/bot-programming
leojean890: pour inciter à avoir de beaux ranks
pardouin: c'est les anciens challengs
leojean890: il est pas encore dispo en multi, non ?
pardouin: toujours jouables avec meague et tout
pardouin: ligue*
Skygge: Hello. Je ne sais pas si c'est approprié de me répondre ici (DM si ce n'est pas le cas) mais vous connaissez d'autre site de concours de programmation dans le style de CG ?
leojean890: Skygge russianaicup
leojean890: pour les IA de bots
leojean890: sinon google hashcode pour des optimisations
Zorg1: tout de suite le truc d'exaltés
Zorg1: faut être salement motivé pour Russian AI Cup ...
jolindien: qu'une fois par an RAIC ou ça reste ouvert ?
leojean890: battledev avec juste quelques puzzles et faut tracer
Skygge: Merci je vais regarder :)
leojean890: qu'une fois par an
leojean890: mais ils vont le passer en multi
leojean890: d'après amurushkin
leojean890: je ne sais pas quand
Luksis: alors c'est pas vraiment du multi
Zorg1: t'as aussi halite, je sais pas si ça existe encore
Luksis: mais tu as root.me
leojean890: ça sera du multi
Luksis: root-me*
pardouin: ben déjà tu peux faire tous les multis ici, il t'en reste un paquet à tester
Zorg1: ah si https://halite.io/
BigUP: c'est toujours en cours de calcul le challenge !?
Zorg1: non bigUP c'est fini
jolindien: topcoder.com
BlaiseEbuth: 5percent-turtle-arena.com
jolindien: troll ? pas compris
Stilgart: BlaiseEbuth: arrête d'apprendre des faux liens à Automaton2000
Automaton2000: et un beam search ?
Stilgart: Automaton2000: ça n'a pas bien marché :(
Automaton2000: il a fait une connerie?
Stilgart: Automaton2000: faut croire
Automaton2000: par rapport à la fin de ton submit
leojean890: BlaiseEbuth trolle tlt
BlaiseEbuth: C'est un faux lien pour l'instant. Mais ça va finir par arriver...
leojean890: tiens en parlant de turtle.. t'as remis turtle hehe
Zorg1: ah oui tiens
leojean890: b0n5a1 avait aussie nlevé MindGeek je crois je le voyais pas dans les scores d'équipe^^
Stilgart: Automaton2000: https://chadok.info/codingame/1.mov
Automaton2000: et je peux pas trop
BlaiseEbuth: Bah c'est fini, c'est plus la peine
leojean890: dans les résultats finaux, MindGeek 57eme mais sans b0n5a1 ;p
BlaiseEbuth: Bah ouai, il a retiré avant la fin
Stilgart: dwarfie: on a bien loosé nous ?
Stilgart: -?
leojean890: je savais pas qu'il voulait pas garder ça^^
leojean890: (jusqu'à la fin du contest)
**dwarfie se console en regardant des video de tortue ...
Stilgart: leojean890: 57e quand même
Stilgart: j'aurais du swap mon entreprise pour vous booster
leojean890: le troll aurait été plus percutant si elle avait été top 10^^
BlaiseEbuth: Ouai...
Stilgart: on peut pas tout faire
Stilgart: troller ou gagner, il faut choisir
Thyl: changer de nom et je viens avec vous
Stilgart: clairement, le 1er est plus simple
BenPix: je lis que ce contest va passer en multi, ça veut dire qu'on va pouvoir continuer de coder, et accessoirement passer en ligue sup ?
BlaiseEbuth: On aurait du demander à reC*rse, il habite au bon endroit
Zorg1: BenPix : oui
leojean890: BenPix yep:)
BenPix: avec le même niveau de difficulté ?
leojean890: exact
leojean890: mêmes IAs mêmes boss etc
Zorg1: normalement ils copient collent tous les bots
BenPix: ho top !
BenPix: avec les PM de tout le monde, ça va aider un peu :)
Zorg1: après ça risque d'être plus lent
Stilgart: j'espère bien pouvoir faire ce contest
leojean890: University of Wrocław, poland ont gagné pour es écoles
Stilgart: bien plus motivant que SC2020
leojean890: suivi de près ar école 42
leojean890: Université Claude-Bernard Lyon 1 ils ont Saelyos et jolindien pour overbooster
Julius2k17: ah ils sont fait cut dans la dernière ligne droite
Zorg1: SC2020 ? ah les pacmans shiformi avec FoG ^^
Stilgart: oui
Julius2k17: ils ont du reboucher les bouteilles de champagne
Stilgart: bon adaptation, mais il ne me motive pas du tout
leojean890: j'avoue je préfère ce sujet à pacman
Stilgart: je l'ai toujours pas fait :/
Stilgart: +ne
leojean890: mais bon pacman ça allait aussi
Oioi: où voit on les résultats ?
leojean890: je préfère OOC moi
leojean890: OOC j'ai bien tenu 1 mois je kiffais
BlaiseEbuth: 42 c'est l'équivalent des skavens, la quantité qui écrase tout
Oioi: salut au passage ^^
leojean890: salut Oioi
Stilgart: si seulement le contest de printemps c'était toujours sur 1 mois
Luksis: BlaiseEbuth ouaip' les zergs !
BlaiseEbuth: Aussi
jdeveil: https://www.codingame.com/contests/spring-challenge-2021/leaderboard
Stilgart: et le contest d'hiver tard en décembre
Oioi: merci jdeveil
leojean890: 1 mois au moins tu prends ton tps trkl
Julius2k17: 1 mois ce serait usant
Julius2k17: on serait crevés
Stilgart: tu bosses pas 1 mois
leojean890: moi je fais rarement plus e 3h de CG en un jour
jdeveil: non ça permettrait de dormir ;)
Zorg1: bah OoC et LoCaM se sont fait sur un moi
Julius2k17: et proches du divorce
Stilgart: moi je peux pas me le permettre au printemps
leojean890: donc 1 mois ça va
Zorg1: le pb c'est pas trop glander et se concentrer
Stilgart: mais je peux faire le contest si la durée est de 1 mois
leojean890: 1 mois si je fais 3h par jour j'arrive à 90h et c good
Julius2k17: oui pas faux, sur 1 mois ca laisse le temps et on se met moins la pression aussi
Zorg1: mais je trouve ça nettement plus tranquille un contest d'un mois
Julius2k17: je pourrais coder un mcts en 1 mois :D
Stilgart: et de gérer son calendrier
leojean890: je dépasse parfois 3h en un jour de weekend mais pas si souvent
jdeveil: clair...
Oioi: Heu... je comprends rien à ce classement !
Stilgart: Julius2k17: pour ça, il y a les multis
BlaiseEbuth: Nan mais on va pas vous payer des serveurs pendant un mois. Calmos
Julius2k17: Stilgart oui je vais continuer
Stilgart: Oioi: tu es 110e, gg
leojean890: je pense que je suis à 25h de CG sur ce contest environ
leojean890: Stilgart il était #1 pendant un petit moment :)
Oioi: Ok, 110eme je comprends
leojean890: après les simus ont démbarqué
Julius2k17: Stilgart j'avais repris sur fall challenge il y a qq semaines
Stilgart: leojean890: j'ai fais 1 que sur UTTT je crois
Stilgart: mais euler m'a pas laissé le temps de faire un screenshot
leojean890: Stilgart 1h seulement ?
leojean890: ah premier
leojean890: ok
Oioi: Mais en dessous, ya un classement où j'apparais 9ème Oo
Julius2k17: 1h c recurse dimanche matin
leojean890: c'était un contest ?
Stilgart: plutôt 1min :)
leojean890: ou multi
Zorg1: UTTT c'était un multi
Luksis: AH LA VACHE c'est chaud comment recurse il écrase tout le monde
leojean890: je croyais que uttt était multi d'abord
Stilgart: sur ce contest, j'ai du y passer 10h
Zorg1: jamais contest
Stilgart: mais carrément pas efficace
leojean890: Luksis vive les réseaux de neurones hehe
Luksis: il a fait un réseau de neurone ?
Stilgart: j'ai codé le moteur en heure sup faute de pouvoir tester des heuristiques :/
leojean890: moi c'est 25h par contest et presque 100 sur OOC ^^
Luksis: comment tu sais ? il y a le PM sur le forum ?
Oioi: Oh, pardon, j'ai compris, c'est les codingamers suivis, désolé
jdeveil: OOC ?
leojean890: ocean of code
Julius2k17: facile 30 h sur celui-ci
leojean890: j'y ai bien oassé 100h xD
Zorg1: il en a parlé sur le chat world, il va faire un PM si j'ai bien compris
jdeveil: merci leojean890
leojean890: 255 h par semaine 4 semaines mdr
Luksis: ok d'accord
Thyl: la il faut qu'on comprenne
Zorg1: mais y en a ils bossent à fond sur les contests
leojean890: reseau de neurones on avait deviné :)
leojean890: comme fenrir
Julius2k17: c son métier aussi à reCurse non ?
leojean890: je pensais pas qu'en aussi peu de temps ils pouvaient avoir des résultas aussi bons
leojean890: résultats
leojean890: 10j à peine
Stilgart: c'est beaucoup en vrai pour entrainer
jdeveil: si c'est bien entrainé
leojean890: 25h par semaine 4 semaines*
Stilgart: le NN n'est qu'une brique, et les jeux se ressemblent
Stilgart: leojean890: sur OoC je saurais pas estimé mon temps
Stilgart: j'ai souvenir d'avoir bien bullé au milieu
Zorg1: ouaip je note pas mes heures
Luksis: mdr je vais sur le profil de recurse : il gagne lus de points dans les challenge que la base
leojean890: je dis ça approximativement
leojean890: j'ai gardé la cadence moi^^
Luksis: genre : 9900 / 9500 :D
Luksis: il est tellement fort qu'il a cassé CG
leojean890: Luksis bah ouais il enchaine les top 3 hehe
Stilgart: Luksis: oui, c'est le rendu qui est cassé
leojean890: non mais ça c'est parce que ça a été calculé la veille
Zorg1: enfin je pense qu'il y a un sacré investissement de travail de sa part
Stilgart: il faut faire +500 partout sur le 2e nombre
leojean890: oui il y passe du temps je pense:)mais ça paye!
Stilgart: tant que SC21 n'est pas crédité
Luksis: ah oui je vois
BlaiseEbuth: C'est typiquement le mec qui a mis tout ses points de compétences sur INT et aucun sur HUM.
Luksis: je vois je vois
leojean890: OOC j'avais baissé ma quantité la dernière semaine mais ça restait pas mal
Stilgart: ça reste un bug ;)
leojean890: ils auraient pu garder /10000 jusqu'à 2h du mat
leojean890: et switcher le dénom en même temps que le numérateur
Julius2k17: moi c le multi CSB sur lequel j'ai passé le plus de temps
leojean890: mais bon ce n'est que du détail hehe
BlaiseEbuth: héhé
jdeveil: et demain tout sera rentré dans l'ordre
Zorg1: ouaip demain on sera plus que 10 à troller sur ce chat ^^
BlaiseEbuth: Enfin
Zorg1: ah oui c'est vrai t'es un modo agoraphobe ^^
Bon[]Crayon: On n'est plus chez soi !
BlaiseEbuth: Pas agoraphobe, misanthrope.
Bon[]Crayon: Automaton2000 code::++
Automaton2000: je crois pas qu'on ait su ce que c'était un problème de perf
Zorg1: bah crée toi ton chan #toutseul
philRG: Là on dirait que ça a été un peu plus long pour voir débarquer les simus
BlaiseEbuth: Non. Je préfère rester ici et exprimer mon mécontentement à ceux qui me déplaisent.
Zorg1: les heuristiques avaient leur chance
philRG: c cool ça attire de nouveaux clients ;)
leojean890: ah Agade a tenté le NN et n'a pas eu le tps dommage
leojean890: miklla de la prog dynamique wow on voit vraiment de tout:p
TidyMaze: en fait le NN c'est mainstream, on est sûr que reC*rse a pas utilisé un truc encore plus hipster et compliqué ?
philRG: j'avoue que les heuristiques, ça fait aussi suer lol
leojean890: il en a parlé sur world je crois
leojean890: j'ai pas lu encore
BlaiseEbuth: DUCT + NN en eval
jdeveil: c'est quoi DUCT ?
leojean890: ça fait le taf^^
leojean890: BrunoFelthes en GA, je pensais que c'était chaud de faire un GA sur ce sujet
k4ng0u: decoupled uct
Zorg1: DUCT : une méthode pour faire un MCTS avec des joueurs en simultané
leojean890: avec une liste de legal moves qui change tlt, comment muter ?
BlaiseEbuth: Une variation de MCTS plus adapté au jeu simultané
Zorg1: (et pas l'un après l'autre)
philRG: ah ouais du coup il a entraîné son NN pour faire ensuite un DUCT, quand le sujet s'est dégrossi après les win des pythonistes
philRG: de voir que c'était casse bonbon de faire une eval correcte
jdeveil: le NN lui permet de définir quels sont les moves à privilégier ?
leojean890: quoi que Saeylos avait fait un GA pour pacman alors que la liste de legal moves change tlt aussi
Zorg1: j'avais même capté le coup de ne pas planter à côté de ses arbres ^^
leojean890: taurais gagné en rollouts pertinents hehe
Zorg1: bah je me suis débrouillé
philRG: et en fait le MTCS se prête bien car ça me paraît difficile de définir une vraie stratégie
leojean890: skotz aussi en minmax
philRG: moi j'ai planté à côté des arbres adverses et jamais dans l'alignement des miens
leojean890: Zorg1 ouais bon classement qd même mais t'aurais ptet encore fait mieux:)
Zorg1: oui mon j'ai passé deux jours sur un bug à la con
leojean890: ouais tkt je connais ce genre de pbms^^
Zorg1: jten foutrais de dév pendant une réunion tiens
leojean890: parfois ça démotive
philRG: c rude
leojean890: mdr
jdeveil: Zorg1 faut pas se faire choper ;)
Zorg1: avec Skype ça va ^^
TidyMaze: on sait ce qui marche bien pour entrainer un NN ? Un algo genetique sur les poids du reseau + du self play entre les differents chromosomes, c'est ça ?
jdeveil: c'est plus simple déjà oui
BlaiseEbuth: C'est un sujet extrêmement complexe TidyMaze...
philRG: j'ai pas tout capté au stream de R4, mais c cool d'avoir des streams pendant le contest quand on a un petit coup de mou
Zorg1: enfin R4 il faisait plus des vidéos que des streams
TidyMaze: je me doute BlaiseEbuth ^^ quelques mots clefs a googler me suffiront
Zorg1: TidyMaze : t'as énormément de méthodes en plus j'ai l'impression
BlaiseEbuth: Différents types de NN...
-TheWalder-: Les NN c'est un monde à part mdr
Bon[]Crayon: Les NeuNeux sont l'avenir de l'humanité.
BlaiseEbuth: Commence par là TidyMaze https://www.codingame.com/forum/t/neural-network-ressources/1667
TidyMaze: merci :)
philRG: Zorg1 oui exact il a fait tryhard sur les explications et méthodologie, le C reste un langage universel
philRG: bon langage pour l'apprentissage
Zorg1: *hum* pas vraiment sûr de ça philRG ...
Zorg1: le C pour l'apprentisssage, je reste sceptique
**BlaiseEbuth attends l'alternative proposée pour doser le sel de sa réponse.
philRG: enfin pour moi, je préfère lire un stream en C qu'en C++/C#/Java avec plein de mots verbeux
philRG: je suis pas assez pratiquant
Julius2k17: le C j'arrive plus à le lire
philRG: idem
Julius2k17: le C++ non plus d'ailleurs
BlaiseEbuth: infidèle philRG
BlaiseEbuth: au bûcher
philRG: hehe
Thyl: le C c de l'entrainement
Thyl: les defines de 15 km c'est dur
Julius2k17: j'en faisais ya 20 ans et j'ai l'impression que la syntaxe a évolué en c++
BlaiseEbuth: les defines c'est pas du C
Thyl: ça en fait partie :D
BlaiseEbuth: Non
Thyl: #define SIZE 2
philRG: mon frère faisait du C à donf, me dit que le C++ il connaît pas enfin il veut pas s'y mettre ou m'expliquer lol
philRG: pour ça qu'il m'a dit de me mettre à python
BlaiseEbuth: C'est des instructions préprocesseur, ça ne fait pas partie du langage
philRG: #defin SIZE 2 c'est beau
Julius2k17: tu chipotes Blaise
philRG: e
**Thyl /slap /me
philRG: toute ma jeunesse
BlaiseEbuth: Bah non...
Thyl: le preprocesseur fait partie du langage
Zorg1: bah disons que le préprocesseur a été utilisé pour combler un manque du C ...
Thyl: un compilateur C sans preposséceur
Thyl: ...
Thyl: c'est un hamburger sans steak haché
Rip: végan ;)
Thyl: mais si tu le dis BlaiseEbuth
Zorg1: tu peux très bien utiliser un autre macroprocesseur que cpp
Zorg1: avec C
BlaiseEbuth: voilà
Zorg1: ça sera moins standard mais c'est possible
Thyl: bon
Thyl: j'ai riend dit
Zorg1: contrairement à un langage + moderne C ne sait pas ce que c'est un "import"
Thyl: Zorg1
Thyl: sur le proporcesseur
Zorg1: macroprocesseur ou préprocesseur
Vry: Pas d'import, C peut le faire tout seul ! :p
nicola: #define, ça manque en Python.
Thyl: ça existte import
Thyl: regarde dans l'ide CG
BlaiseEbuth: lel
nicola: Ce n’est pas la même chose.
Zorg1: gné ? un #include ?
nicola: :)
nicola: Des macros, quoi.
Zorg1: ouaip ^^
Thyl: import
Thyl: #import
Zorg1: c'est du C++ ça non ?
Thyl: non
nicola: import, c’est comme #include.
Bon[]Crayon: Du D
-TheWalder-: Quand est-ce qu'il est préférable d'utiliser minimax au lieu de MCTS ?
Zorg1: ça n'existe pas dans le préprocesseur standard du C, #import
Zorg1: -TheWalder- moi je vois MCTS comme une version "probabiliste" du minimax
Zorg1: et justement un MCTS converge vers un minmax dans la théorie
-TheWalder-: Ah d'accord donc autant utiliser MCTS directement
Zorg1: bah le MCTS ça t'impose d'aller jusqu'au bout, et d'explorer un peu au hasard, c'est surtout si tu veux pas faire d'éval
BlaiseEbuth: Pas forcément... J'aurais tendance à dire qu'un minmax sera moins gourmand qu'un MCTS, donc si le jeu le permet autant faire un minmax
Zorg1: Minmax il te faudra une éval, tu n'explorera jamais jusqu'à la fin du jeu
francois: bah oui si j'ai bien compris, MCTS : tu vas jusqu'à la fin de la partie, Minimax : tu t'arrêtes avant mais pour compenser il te faut une fonction d'évaluation.
francois: mais dans la pratique il y a des gens qui arrêtent leur MCTS à une profondeur max ?
Vry: MCTS a clairement ma préférence ...
Vry: ... faut juste optimiser le rollout :)
-TheWalder-: Après ça dépend peut-être de celui qu'on préfère en soi les deux fonctionnent
Thyl: c'est permis en C d'alloeur dans une fonction et de désallouer dans une autre fonction ???
BlaiseEbuth: Après c'est une question de possibilité. Perso, si je vois que le jeu se prette au minmax je me fait pas chier avec un MCTS... :3
Vry: Par contre il faut que je regarde du côté des NN, ça peut être sympa
Vry: Thyl : oui le tout c'est de ne pas perdre l'adresse mémoire
Zorg1: thyl : si tu alloues sur le tas (malloc) oui
Vry: (je ne connais que malloc ... lol ou pas ...)
francois: NN c'est sympa quand tu as une ferme de GPU pour faire 10000 parties en // ?
Zorg1: bah t'as le fameux alloc qui alloue sur la pile ...
Vry: C'est pour CG ou en général ?
GeoBlack: Le problème n'est pas MinMax, BFS ou MCTS, je trouve.
Thyl: merci
Vry: Non francois, le premier du contest l'a fait sur son PC perso (certe un gros PC) mais pas besoin de ferme
GeoBlack: Perso, mon plus gros problème c'est comment dépasser 100 noeuds à simuler en 50ms
Zorg1: un PC de gamer devrait suffire ^^
Zorg1: GeoBlack : en quel langage ?
Vry: un i7 truc muche et un 3080 je crois ...
GeoBlack: en c#
GeoBlack: je sais ce n'est pas top
Vry: On avait 100ms
francois: oui j'ai lu, un bon PC de gamer OK mais faut déjà savoir où tu vas sur ta structure.
Zorg1: bah le truc c'est déjà d'éviter d'allouer et de désallouer sans cesse de la mémoire, d'allouer un seul bloc et d'utiliser ça comme un pool de mémoire
GeoBlack: mais je devrais réussir à simuler au moins 2000 noeuds
Vry: 100 noeuds c'est peu, je pensais que c# était plus rapide que Python
GeoBlack: non c'est moi
Zorg1: vry : ça dépend comment t'utilises ta mémoire
BlaiseEbuth: C'est un vrai faux problème GeoBlack. Tu peux avoir 30k rollouts si ton algo/eval/pruning est mauvais ça n'avance à rien.
GeoBlack: on fait j'ai commencé avec un heuristic classique (ce que je sais faire)
GeoBlack: => gold mercredi
Zorg1: hé hé ça me rappelle quand je fais WAIT WAIT j'ai un nombre de rollout impressionnant ^^
Zorg1: par contre bon c'est un peu inutile
GeoBlack: mais depuis j'ai essayé d'implémenter MCTS
GeoBlack: et pas moyen
GeoBlack: BlaiseEbuth, je suis d'accord
Zorg1: bah MCTS t'as deux problèmes : la simu (pour les rollouts) et la gestion de l'arbre
Zorg1: (je vois ça comme ça)
BlaiseEbuth: L'avantage du MCTS c'est que t'as pas besoin d'optimiser la copie d'état
Vry: Pour debug mon MCTS j'ai fait un Bruteforce pour comparer les arbres ... et j'ai vu que mon MCTS partait à l'infini est au delà ...
GeoBlack: mais là en lisant les différents PM (je remercie d'ailleur ceux qui passe du temps à les rédiger) j'avais toutes les idées.
GeoBlack: sauf que mes simulations sont carrément trop lente
BlaiseEbuth: Tu fais combien de rollouts par tour GeoBlack ?
rafaelSorel: ce n'est plus possible de jouer encore sur spring chanllenge 2021 ?
francois: Tiens d'ailleurs pour les simulations, est-ce que vous visez la simu strictement exacte ou vous vous autorisez certaines approximations pour aller plus vite ?
BlaiseEbuth: rafaelSorel ça va venir (demain ?)
rafaelSorel: Ok super thx ;)
GeoBlack: allez je vais être gentil 200 rollouts
GeoBlack: bien trop peu
BlaiseEbuth: C'est pas ouf. tiouz qui a fait top legend avec un MCTS en python fait dans les 800 il me semble.
Zorg1: après il te faut une idée de savoir où tu bouffes le plus de temps
GeoBlack: et je vois peu d'astuce à part partir sur du bitwise
Zorg1: en général c'est à la génération des actions possible
BlaiseEbuth: Pas pertinent pour du MCTS GeoBlack
BlaiseEbuth: Tu n'as pas besoin de copier ton état de jeu.
BlaiseEbuth: (si tu le fais c'est LE truc à améliorer ^^)
GeoBlack: Noeud: Ombres int[37], Arbres List, quelques entiers
Zorg1: oui l'état n'a même pas à se trouver dans les noeuds de ton arbre
GeoBlack: mes actions sont précalculées
Zorg1: t'as une variable état à côté que tu mets à jour pendant que tu parcours ton arbre et fait ton rollout
Zorg1: *un objet état
BlaiseEbuth: Ou pas ?
GeoBlack: pour être honnete j'ai commencé avec un bfs
BlaiseEbuth: Ou est-ce que t'as une copie de l'état dans chaqur node ?
BlaiseEbuth: *chaque
GeoBlack: oui
BlaiseEbuth: Voilà
BlaiseEbuth: Ca ça mange tes perfs
GeoBlack: l'état : la map et la liste arbres et une map ombre
GeoBlack: effectivement
Zorg1: oui l'état représente ton board, avec éventuellement des indications 'en plus' tel le score, le jour ...
GeoBlack: il fut bien garder les etats calculé sur child par terminer pour pouvoir repartir de ces childs
GeoBlack: non ?
BlaiseEbuth: Vu qu'avec un MCTS tu joues chaque partie jusque au bout, tu copie l'état une fois au début, puis tu le modifie pour arriver à la fin de la partie, et tu refais une copie propre pour le rollout suivant.
GeoBlack: pardon ce n'est pas francais
BlaiseEbuth: Mais pas à chaque noeud
GeoBlack: pour pouvoir repartir (selection noeud) il faut garder les états des noeuds qui ne sont pas terminés
GeoBlack: pour pouvoir repartir de ces derniers au moment de la selection
BlaiseEbuth: *Je suis en train de m'emmeler les pinceaux. My bad.
GeoBlack: du coup il y a quoi dans vos noeuds ?
BlaiseEbuth: Oui il y'a des infos à copier. Mais tu en a trop.
BlaiseEbuth: La map reste la même toute la partie, pas besoin.
GeoBlack: oui on est d'accord
GeoBlack: mais l'ombre et les arbres ?
BlaiseEbuth: Et les ombres changent chaque jour, et ne servent qu'une fois au début, vaut mieux les precalc et les utiliser quand t'en a besoin que de te les coltiner partout
pardouin: bordel je lance le chat et première phrase que je lis "du coup il y a quoi dans vos noeuds ?"
pardouin: D:
pardouin: moi j'ai total échoué au mcts, faudra que je regarde ça de plus près
pardouin: je stockais bien trop de trucs dans chaque noeud
GeoBlack: l'ombre est liée aux arbres
BlaiseEbuth: Comment ça
GeoBlack: je précalcule les ombres pour chaque taille et case de la map
pardouin: j'essaierai de le refaire avec un max de modifications en place
BlaiseEbuth: Ca c'est bien, mais du coup c'est quoi l'ombre dans tes noeuds
BlaiseEbuth: ?
GeoBlack: mais ensuite par tour cela te donne une ombre que tu dois additioner entre chaque arbre
GeoBlack: ?
BlaiseEbuth: Comment ça additionner ?
BlaiseEbuth: Tu veux dire l'ombre portée ?
GeoBlack: oui
GeoBlack: avec la force de l'ombre de 1 à 3
pardouin: tu peux utiliser un bitboard avec des | je pense que c'est pas si long
BlaiseEbuth: Mais ça te sert à quoi de l'avoir dans ton état ?
BlaiseEbuth: Quand c'est un nouveau jour, les ombres changent, on calcul le sun avec, et elles servent plus jamais après.
GeoBlack: pour éviter de la recalculer quand tu en a besoin
GeoBlack: attribution des sun, savoir si tu peux couper un arbre etc ...
Magus: ah donc Saelyos était en DUCT
Magus: ah ah
Magus: ah ah ah ...
Magus: je vais insulter mon code pour me calmer
GeoBlack: oui je suis d'accord
GeoBlack: je vais revoir ma copie
Magus: Automaton2000, ta mère la mono core
Automaton2000: déjà 800 en or le 1er jour du contest
Magus: (voila, j'ai insulté mon code)
GeoBlack: mais c'est con, à chaque fois j'ai les idées mais je bloque sur de la perf et les piste d'optimisation.
GeoBlack: finalement merci à toi
BrainSolver: gg Automaon2000, l'or est déjà ouvert le 1er jour ?
BrainSolver: Automaton2000
Automaton2000: et ne pas avoir à faire de la peine
GeoBlack: je vois les erreurs que j'ai commise
BlaiseEbuth: Question de pratique et d'habitude GeoBlack. Fais des multis. ^^
GeoBlack: Par contre, on d'accord je selectionne avec un UCT, je trouve les enfants et je rollout (je vais jusque au bout) et ensuite backpropage le score
OldJohn: Y a t'il un terme français pour rollout ?
BlaiseEbuth: GeoBlack https://int8.io/monte-carlo-tree-search-beginners-guide/ si tu l'as pas déjà
GeoBlack: oui merci j'ai déjà regardé
GeoBlack: rollout = je vais jusqu'à d=24 (ou autre si on veux raccourcir)
b0n5a1: re
BlaiseEbuth: Bonne question OldJohn, déjà que personne n'est d'accord sur la définition du terme anglais... ^^
GeoBlack: en mode semi random
b0n5a1: rétropropagation (rollout)
GeoBlack: non
GeoBlack: c'est pas ça si ?
GeoBlack: ça c'est le Backpropagation
b0n5a1: sélection/expansion/simulation/rétropropagation
b0n5a1: backpropagation pareil
GeoBlack: rollout c'est simulation
GeoBlack: non
GeoBlack: ?
OldJohn: @BlaiseEbuth si je comprends bien c'est la phase 'marche aléatoire jusqu'à la fin de la partie'
GeoBlack: oui
GeoBlack: pour moi c'est cela
OldJohn: pour moi MCTS c'est selection/expansion/marche aléatoire/retropropagation
b0n5a1: oups simu rollout oui
GeoBlack: pour moi aussi
GeoBlack: ok merci
OldJohn: Attendez je regarde dans le Russel
GeoBlack: je vais retravailler mes simu car j'en ai un peu marre de faire des heuristic à chaque fois
OldJohn: OK en anglais la phase se nomme SIMULATE pour Russell et Norvig
OldJohn: Donc pas Roll-out qui est un terme anglais un peu fourre tout
OldJohn: Si finalement il y a simulation (also called a playout or rollout) Page 161
b0n5a1: simulation/playout/rollout en fonction des docs
OldJohn: Random walk till the end chez les bons auteurs...
Stilgart: il y a du MCTS dans le Russel et Narvig ?
b0n5a1: je crois ouais
OldJohn: Oui dans la dernière édition
Stilgart: faudrait peut-être que je le lise ce bouquin
Stilgart: ha... je dois avoir l'ancienne édition moi
Stilgart: et ça me dit rien
b0n5a1: bon j'ai l'édition 3 en français mais quasi sûr que c'est dedans
OldJohn: Ils ont augmenté la partie deep learning
b0n5a1: ha bin non, j'ai peut être mal cherché (vite fait) mais pas dans l'édition 3 que j'ai en fait
b0n5a1: en même temps elle est de 2010 celle là je crois
b0n5a1: ha cool la version anglaise de mai 2021 est à moins de 20 balles au format kindle
OldJohn: Oui la version papier est chère et lourde!
b0n5a1: ouais je l'ai payée 70 balles je crois l'édition 3
b0n5a1: et je confirme c'est du pavé pesant ^^
b0n5a1: ouch la dernère édition (4) de 2021 est à 230 balles en format papier
OldJohn: Ouaips c'est le boulot qui a payé (donc nos impots, désolé)
b0n5a1: le truc pas mal en version numérique c'est aussi la facilité de recherche et les mises à jour (normalement) en cas de d'erreurs à corriger
DrGrognon: @BlaiseEbuth merci pour la ref int8 j'avais pas moi ;)
4046568: ca a l'air moins cher ici ;)
4046568: (enfin pour le papier)
BlaiseEbuth: 159$ C'est cher la déforestation.
BlaiseEbuth: Faudrait que je fasse un post type "community resources" pour les articles/references qui ressortent tout le temps...
Zorg1: donc en couverture : un grec, Turing, Ada Lovelace un joueur d'échec et deux robots :thinking:
Zorg1: m'ouais c'est assez bateau
OldJohn: C'est Gary le joueur d'échecs
Zorg1: sacré Gary
mapapin: Hey, il y a déjà eu des post mortem ? Si oui, vous avez les liens svp ? :)
BlaiseEbuth: Y'a un thread sur le forum mapapin
b0n5a1: par contre bizarre au format kindle y'a une version à 20 balles, l'autre à 65
BlaiseEbuth: "Y'a un forum ?! :o"
b0n5a1: celle à 20 balles mai 2021, l'autre avril 2021
mapapin: Je n'arrive pas à trouver la page, est-ce que tu pourrais me filer le lien stp ? :)
BlaiseEbuth: https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies/190849/60
mapapin: Merci !
Zorg1: ah ok la règle qu'ils implémente c'est "no wait if a seed" j'ai fait quasiment l'opposé "no wait if a grow" :D
Zorg1: c'est amusant ^^
BrainSolver: J'ai un "no wait if complete" au tour 23 :grinning:
Zorg1: oui ça aussi ^^
Zorg1: mais j'ai carrément raté les heuristiques les + communes sauf "no seed if already one"
Zorg1: ça fait un paquet de truc à essayer ^^
JBM: ah je dois avoir une 3e qui traine et j'ai meme pas pensé à véëifier
Vry: Il faut que je regarde le bitboard avec padding de 3 du coup, BrainSolver valid ! :p
Vry: *valide
BrainSolver: oui, padding 3 c'est mieux
BrainSolver: le pire c'est que j'y ai pensé en rédigeant mon post-mortem :grinning:
JBM: ouais alors y'a mcts, mais 1) pas sous ce nom et 2) 1 paragraphe sur un bouquin de 1100 pages
JBM: (par contre y'a la meilleur explication que j'aie encore vue sur pourquoi ça s'appelle “rollout”)
Vry: Si j'ai bien compris c'est super pratique pour les shadow mais en revanche pour les seed ça n'est pas utilisable
BrainSolver: Je pense que si. Mais je ne l'ai pas fait.
BlaiseEbuth: Fait moi rêver JBM. Pourquoi rollout ?
BrainSolver: pour les seed j'ai pre-calculé.
Zorg1: ça doit être un bonhomme qui s'appelle comma ça ^^
Zorg1: disons Lord James Rollout, 4eme Comte du Softwishire
Vry: Moi aussi, mais toujours obligé de traiter les arbres un par un, niveau par niveau.
JBM: BlaiseEbuth: ça vient de backgammon
**BlaiseEbuth fouille dans ses souvenirs lointains de backgamon...
Vry: Je me demande ce qui ce cache derrière _bit_scan_forward : moi j'ai un ctzll
BlaiseEbuth: Ah bah la version du dé je connaissais. Mais pourquoi backgamon spécifiquement ?
JBM: parce qu'ils galéraient à évaluer les positions j'imagine
Zorg1: bah c'est pas l'un des rares jeux "nobles" avec une certain antiquité où tu fais avancer qqch avec un dé ?
JBM: j'ai jamais pratiqué, je saurais pas
Zorg1: bah tu simules une course de chevaux, un peu plus sophistiqué que les petits chevaux ^^
JBM: plus sophistiqué comment?
Zorg1: bah les règles de blocage
JBM: (posément: en quoi le gagnant n'est pas celui qui se trouve avoir jeté le plus de points aux dés)
BrainSolver: http://chat.codingame.com/pastebin/1880c083-c077-4699-9bda-da4dc4c8066e
BrainSolver: Vry, je parcour les abres un par un avec __builtin_ctzll aussi.
Vry: Ok, ça pique un peu le t^1ULL<<i au début
Zorg1: << est plus prioritaire que ^ ?
Zorg1: j'aurais mis des parenthèses
BrainSolver: oui, ca l'est
Vry: Moi aussi, mais j'ai testé et ça marche, ça donne bien les positions des trois 1
Vry: Ma version :
Vry: uint64_t t = 0b10101;
Vry: while (t)
Vry: {
Vry: int i = __builtin_ctzll(t);
Syj: un jour, j'avais remarqué que les perf de ou exclusif était vraiment dégueulasse en Java
Vry: t = t & (t-1);
Vry: cerr << i << endl;
Vry: }
BlaiseEbuth: Y'a les perfs de certains trucs qui ne le sont pas en java ?
Vry: Du coup ça revient au même, sauf que j'ai une ligne de plus au final
Syj: BrainSolver , tu as comparé ta formule en remplaçant par un &
Syj: enfin pas en remplaçant mais en utilisant une loop qui valide chaque nombre avec un &
BrainSolver: non, j'ai pas comparé
BrainSolver: t &= --t; :grinning:
BrainSolver: je ne sais pas si ca marche ca..
Zorg1: b0n5a1 : là ce que montre Alexandre c'est son jeu ?
Syj: je voulais essayer dans un puzzle mais la , çà rame chez moi et je ne suis pas sous mon Linux...
b0n5a1: Zorg1 oui
Zorg1: ok merci ^^
pardouin: https://www.youtube.com/watch?v=10WoPFtKPv8
Rajh: Bonsoir, j'ai entendu dire que certains utilisaient des NN du coup sur codingame. Quelqu'un peut m'en dire plus svp ?
pardouin: (moi je jouais au backgammon avec un pote sur msn c'est trop bien en fait :D)
pardouin: c'est surtout du selfplay j'ai l'impression
pardouin: mais il y a un tuto quelque part d'Euler (je crois?) pour récupérer des données de parties directement, jamais trop regardé de près
b0n5a1: Rajh : https://www.codingame.com/forum/t/spring-challenge-2021-feedbacks-strategies (voir Robostac par exemple)
BabelO: ou comme l'a dit quelqu'un plus haut, le NN avec MCTS pour le rollout http://int8.io/monte-carlo-tree-search-beginners-guide/
Rajh: J'ai vu oui, mais j'ai plus l'habitude d'utiliser des framework. Ici ca veux dire qu'il a recoder un NN en partant de rien ? Ya des infos sur le web pour faire des NN tenant dans 36k charactères ?
Rajh: Ah je vais regarder merci BabelO
BabelO: la partie lourde c'est le lerning, le plahy c'est leger
BabelO: tu as des libraries comme convnetjs qui prennent a peine 33Ko en minifié
pardouin: https://www.codingame.com/forum/t/how-to-download-the-json-files-used-to-store-replays-on-cg/2894
BabelO: c'est la partie en blouge qui parle d alpha go
Rajh: Ok intéresant
pardouin: (pour récup des données)
pardouin: mais bon tu récupèreras pas des centaines de milliers de parties :)
BabelO: le mode reinforcement est interessant sans les parties joué
Rajh: Par contre ça vous gènes pas les NN dans les contest ?
BabelO: j'ai vu que quelqu'un avait fait avec du qlearning ? reinforcement learning
pardouin: personnellement je trouve pas ça intéressant car trop boîte noire
BlaiseEbuth: raciste
pardouin: mais certains ont réussi à trouver de bonnes heuristiques en regardant des parties de recurse par ex
pardouin: donc c'est pas inintéressant dans l'absolu
Rajh: Au final si les top des contests vont se résumer a celui qui a la plus grande force de calcul ... :D
ranaili: bonsoir a tous, je viens de faire un clash mais je n'ai pas réussi a trouver la réponse .. c'est possible de la trouver quelque part ?
BabelO: pareil j'utilise au travail les reseaux de neurone / CNN / RNN mais bonca reste plus interessant les algos :) puis quand je vois des personnes arriver en legende avec des language JS ou meme perl ...
pardouin: ça marche quand même rarement je pense, la perf de recurse là c'est assez rare ce genre de truc
pardouin: à part recurse les gens qui avaient un NN ont pas spécialement mieux réussi que sans, il y a de tout dans le top
BabelO: tout depend comment il a fait :) un CNN est tres rapide en run, en plus si c'est codé et optimisé pour une taille specifique
BabelO: il a fait un retour recurse ?
Skygge: reCurse a publié son PM à l'instant :wink:
Rajh: Bah a priori c'est quand même l'état de l'art non ?
BabelO: la en ce moment en recherche c'est les transformer
Rajh: Les decepticons ?
pardouin: TotoZero
jdeveil: non les autobots
BlaiseEbuth: rollout !
BabelO: https://www.wikiwand.com/en/Transformer_(machine_learning_model)
pardouin: c'est bon on a trouvé le nom du contest
BabelO: model d attention, .. sur le site de tensorflow il y a de bon exemple
pardouin: je vote à 100% pour TotoZero, c'est catchy et hommage à la perf de recurse
pardouin: 1.3 millions de selfplay awiquandmême
BabelO: Inference was done through extensive use of C++ templates, AVX2 intrinsics, and verification through disassembly.
BabelO: tout en CNN surement un CNN par type d'entree opposant / joueur / tree opp /tree joueur .
Rajh: For those concerned about the asymmetry of “AI hiding”, believe me or not I have run zero batches during this competition.
Rajh: c'est quoi ?
BabelO: ben qu'il a juste soumis, il a pas masque sa vrai AI
BabelO: enfin ce que j'en comprend
Rajh: Je comprends pas moi xD Masquer quoi comment ?
Zorg1: il dit qu'il n'a pas testé en douce son IA toujours chez lui avec les IA du top
JBM: plutôt qu'il a pas été se mesurer avec les IA de l'arène avant d'y avoir soumis lui-même
JBM: (je dis ça avant d'avoir lu)
Bon[]Crayon: Sa rame encore cg ?
Zorg1: Rajh : en gros le hiding c'est entrainé ton IA uniquement via l'IDE (ou un outil qui automatise ça) contre les IA du top et adapté ta technique sans que eux sans doute
BabelO: pas trop de detail c'est tres bien !
JBM: pour moi le hiding c'est juste «ne pas soumettre»
JBM: c'est indépendent de «se mesurer aux autres»
Zorg1: et ensuite quelques heures avant la fin du contest tu te raménes et les autres ont à peine une heure pour s'adaper
Rajh: C'est pas un peu ce qu'il a fait ? Il a submit tard non ?
JBM: il l'a juste fait de manière [qui lui parait] juste
Zorg1: après ça dépend de la définition de chacun
Zorg1: mais c'est vrai qu'il y a eu de long débat sur le sujet ^^
BabelO: ben il a soumis depuis un momoent pas 5h avant on l'a vu apparaitre en haut samedi il me semble
Zorg1: mais c'est vrai que si tu montres pas ton IA les gens ne risque pas de s'adapter contre
JBM: c'est l'autre côté de l'asymétrie
pardouin: oui je pense pas qu'il y ait eu de volonté de cacher plus que ça, il a juste attendu que son truc soit vraiment prêt
Rajh: Ca semble tellement inatteignable c'est déprimant par contre :s
jolindien: ok, aucun détail technique
jolindien: dommage
pardouin: rigolo que son truc performait très mal contre les trop faibles ^^
reCurse: Tu voulais savoir quoi jolindien?
jolindien: archi, algo, tout :)
Rajh: Les sources !
Rajh: lol
pardouin: ton eval :o ?
jolindien: Value / Q ?
JBM: poids des nœuds (0,0) à (512,512)
jolindien: one hot encode ?
reCurse: Je crois avoir déjà donné, alphazero, convolution, etc
Skygge: Perso ça me déprime pas, ça me donne envie de me mettre aux NN :wink:
Skygge: gg
JBM: convolution hexagonale ça envoie du rêve
pb4: ^
Rajh: Comparé à RoboStac c'est la même approche ou c'est différent ?
JBM: je serai fort, je lirai pas avant demain
pardouin: :hugging:
pardouin: :blushes:
BabelO: robotstac il a fait avec MCTS + NN
BabelO: la c'est que du CNN il me semble
Rajh: Il parle de MC au début
Rajh: et DUCT
Gilde: C'est vraiment impressionant
BabelO: pour l apprentissage et jouer des coup
BabelO: il faut les trouver les parties :)
Rajh: Il a codé 2 bots ?
Rajh: Mais il est pas sensé selfplay ? la jsuis perdu
BabelO: tu fais pareil pour les echecs tu en trouve des millier de partie
BrainSolver: gg reCurse, impressionnant !
BabelO: moi ce qui m'impressionne c'est d arriver a tenir le code + les weight dans 70ko
reCurse: Merci
BabelO: tu as appris super vite !
Rajh: "It all started in 2019" quand même ^^
Pedrito_B: Vive Bellmann
VincentBab: Trop bien à lire ton PM reCurse ! GG
leojean890: mdr je peux même pas aller sur le forum ;) 429 Too Many Requests
Rajh: Bon bref, Bravo reCurse c'est beaucoup de travail et c'est une écrasante victoire
leojean890: il va faire pareil pour son jeu chess et va tous nous tuer^^
Rajh: Son jeu chess ?
leojean890: il a fait une contribution sur codingame
BabelO: il y a des papier sur les echecs ! http://vision.stanford.edu/teaching/cs231n/reports/2015/pdfs/ConvChess.pdf
leojean890: https://www.codingame.com/ide/puzzle/chess
leojean890: made by reCurse :)
Rajh: Oh j'ai jamais regardé je savais pas qu'il y avait des multi commu
leojean890: y'en a plein, tu peux même en créer si t'as de bonnes idées;)
Rajh: C'est plutôt le temps qui (comme souvent) pose problème :D
jdeveil: ouaip je cherche une idée sympa pour en créer un (avis à la commu ;)
leojean890: il a tjr pas submit sur son jeu mais je sens la dérouillée :)
Zorg1: "rigolo que son truc performait très mal contre les trop faibles ^^" : ça me fait penser à ces articles au sujet des "poisons des NNs" des images bricolés pour être mal interprétés par un NN (alors que toi tu vois un poisson, le NN va te dire "fer à repasser")
reCurse: Très juste
leojean890: il faut faire attention à la précision ET au rappel !
Rajh: Oui ou juste avec des lunettes tu peux te faire passer pour qqun d'autre sur les reconnaissances faciales
BabelO: oui ou le tshirt que tunporte qui te masque des detecteur comme yolo
Rajh: (des lunettes truqués bien sûr)
leojean890: fauc positifs, faux négatifs, vrais positifs, vrais négatifs,
leojean890: mais souvent tu tunes ton truc vers l'un ou l'autre
leojean890: selon ton objectif
b0n5a1: bah c'est comme nous Zorg1 : tu vois quelquechose que t'as jamais vu et inconnu (quand t'es tout jeune gosse par exemple) t'associe ce que tu vois à ce que tu connais pour lui attribuer un nom/catégorie ^^
b0n5a1: jusqu'à ce que t'aies appris
VincentBab: reCurse tu estimes à combien le temps que tu as passé sur ce contest ?
reCurse: 11 jours pour le contest, 2.3 années pour le reste
leojean890: l'experience paie :)
Rajh: Ya des contests anti simu ?
b0n5a1: t'as jamais vu un lapin mais que des chiens quand t'es môme tu le pointes du dou
b0n5a1: igt
b0n5a1: et dis "chien?"
VincentBab: 11 jour full time ?
leojean890: Rajh va faire ghost in the cell ou fireworks
leojean890: (sujets où le top est en full heuristique)
Rajh: leojean890 wow ca ressemble à un ordre ! lol
reCurse: Disons 90% de mon temps libre oui
leojean890: bah tu demandes des sujets anti simu
leojean890: je t'en file
leojean890: ;)
leojean890: game of drones aussi tiens
3141948: If not winning(): winning_quand_meme() :-D
Rajh: Mais full heuristique sans aucune simu ?
VincentBab: GG pour tout le boulot en tout cas c'est impressionnant ^^
reCurse: Merci
3141948: Bravo reCurse
leojean890: Rajh chaque personne est libre de faire heuristique ou simu, je te donne juste des exemples de sujets où tu affronteras des heuristiques
leojean890: reCurse en effet le diable se cache dans les détails, toujours^^^^
Zorg1: c'est vraiment si anti simu que ça Game Of Drone ?
leojean890: Zorg1 y'a de la simu partielle j'avoue :p
leojean890: mais bon légende peut se faire en heuristique je pense :)
leojean890: les gagnants du contests écrivaient des listes d'objectifs
Rajh: Game of Drones et Ghost in the Cell ça se ressemble comme jeu non ?
leojean890: pas vraiment les mêmes objectifs :)
Zorg1: pas du tout
leojean890: mais bon c'est des sujets à dominante heuristique
leojean890: GITC le gagnant du contest était en heuristique
Zorg1: oui enfin dbdr est parvenu à la légende avec un MC je crois sur Ghost in the cell
leojean890: ah oui ?:) bon bah ok:P
Zorg1: de même j'avais entendu dire qu'un MC pouvait marcher sur GoD
leojean890: après quand je dis dominante heuristique, ça n'empêche pas que certains soient en simu^^
BabelO: moi le premier que j'avais adore c'est les algo genetiaue sur les drones game of drone ?
Zorg1: c'est pas CSB les algos génétiques ?
Rajh: Mais est-ce qu'une eval sur un MCTS ou un BS est considéré comme heuristique ? :D
leojean890: cultist-wars ou bottlers-of-the-galaxy y'a pas mal d'heuristiques aussi
Zorg1: Rajh : ils disent "méta heuristique" :p
Luksis: botters of the galaxy c'est full heuristique ouais
leojean890: code à la mode aussi
leojean890: cf BlaiseEbuth en légende en heuristique
Luksis: ah code à la mode c'est heuristique ?
leojean890: ouais
Luksis: j'ai jamais joué celui là
Luksis: et je suis un heuristicien
leojean890: après y'a ptet qq mecs en simu aussi
Luksis: héhé là tu me donnes la prochaine cible :D
leojean890: moi je donnais juste les exemples les plus pertinents :p
leojean890: après y'a des sujets vec bcp plus de simus
BabelO: oui tu as raison ! CSB
BabelO: https://www.codingame.com/blog/genetic-algorithms-coders-strike-back-game/
Zorg1: c'est nettement plus simple que BotG aussi
leojean890: avec*
leojean890: BOTG est plus dur on est d'accord
leojean890: code royale pas mal pour heuristiques je pense
Rajh: Tiens je suis persuadé avoir jouer a BOTG mais je vois aucun historique sur mon compte
Luksis: je confirme
Luksis: j'allais ire code royale
Luksis: c'est le meilleur challenge que j'ai fait jusque là
leojean890: pas simple à simuler:)
Luksis: et j'ai fait full heuri
leojean890: Luksis dommage t'as pas fait russian AI cup 2020:)
leojean890: enfin peut être l'as tu fait ?^^
Luksis: non
Luksis: je connaissais pas
leojean890: c'est un jeu style age of empires ou warcraft:p
Luksis: OOOH !!
Luksis: shit
leojean890: ils vont peut être les sortir en multis
3141948: Bon moi je vais aller reposer mon NN
3141948: Bonne nuit
leojean890: bonne nuit:)
Bon[]Crayon: Bonne Nuit
leojean890: Luksis ça m'a l'air d'être ton style de jeu^^
Luksis: bonne nuit
Luksis: si si
Luksis: ça l'est justement
Luksis: je disais mer** parce que justement j'ai loupé ça
Luksis: j'ai lu ça m'a PAS l'air *
leojean890: regarde les events passés de RAIC:)
Luksis: en fait moi aussi faut que j'aille me coucher :D
leojean890: bah si je t'en parle c'est au vu de la conv ça semblait adéquat:)
Zorg1: en fait GoD tu peux faire du smitimax ... :thinking:
leojean890: mais les events passés y'a de la simu miitaire, un truc LOL-like aussi
leojean890: BOTG en plus compliqué
leojean890: de la baston en 2D avec flingues avec sauts etc
leojean890: du rocket league
leojean890: tout ça
Luksis: ok
Rajh: C'est où tu dis ?
leojean890: reCurse pourrait faire un NN là dessus, le contest dure 1 mois, ce serait un beau challenge ^^
Luksis: faudra que je regarde russian ai cup
leojean890: sur des jeux bcp plus compliqués :)
leojean890: le site est russianaicup.ru je crcois
Rajh: Ah le site est moche, vive codingame
leojean890: c'est moins ergonomique que CG de loin^^
leojean890: et on peut moins faire de matchs
Zorg1: Da petit français, ça site russe ^^
leojean890: ça encourage l'arène localee
leojean890: t'as une grossse limite de matchs
leojean890: les jeux sont moins beaux aussi je dirais
Rajh: Et t'es limité dans ton algo en taille et temps aussi ?
leojean890: mais plus complexes
leojean890: ouais limité en durée comme ici
leojean890: taille je sais plus
leojean890: je crois qu'on peut plus de 100ko
leojean890: R4N4R4M4 avait plus de 100ko
Zorg1: bah surtout trop riche, je sais pas à quels niveaux sont les IAs
leojean890: sur RAIC y'a un bon niveau au top^^
Zorg1: genre est-ce que des heuristiques ou des trucs plus riches ?
leojean890: les mecs lachent pas pendant 1 mois
R4N4R4M4: 166ko le dernier RAIC :D
leojean890: ^^
leojean890: tu connais la limite ?
leojean890: Zorg1 au top ça simule oui^^
Rajh: Kovi a fini 2eme
leojean890: Kovi a pas lâché ouais^^
Zorg1: t'avais quoi comme genre d'algo R4N4R4M4 pour le RAIC à la fin ?
leojean890: je vais vous filer des PM de RAIC
R4N4R4M4: 4945 lignes
Luksis: bon je vous laisse
Luksis: bonne soirée :)
leojean890: https://habr.com/ru/post/345458/
leojean890: PM du premier d'un RAIC
Rajh: Euh
leojean890: à traduire en FR automatiquement
Rajh: Da
leojean890: c'est comprehensible
Rajh: Mouai je traduis jamais c'est toujours nimp
leojean890: là ça va je trouve
leojean890: http://chat.codingame.com/pastebin/6403baca-92c1-4f20-98e4-d1fdc0663fad
leojean890: tu vois ça se comprend ^^
R4N4R4M4: Zorg1 des micros simulations avec beaucoup d'heuristiques
Zorg1: merci ^^
Rajh: Bon sur ce, goodnight !
R4N4R4M4: BFS pour trouver les meilleurs chemins, simu pour éviter les tirs adverses, ...
leojean890: les PM des premiers sont assez ouf
R4N4R4M4: T'as des nouvelles des T-shirt leojean890 ?
leojean890: pas encore^^
leojean890: toi non plus du coup vu la question ?:)
R4N4R4M4: non plus, je viens de revérifier mes mails, j'y pensais plus trop
leojean890: je regarde souvent mes mails pour voir globalement ce qui y passe^^
leojean890: mais pas vu non plus:)
leojean890: toi tu vas avoir un pull:p
leojean890: et un t shirt :)
leojean890: vu que 2nd round et finale
R4N4R4M4: Oui, bon ça mettra le temps que ça faut. Le dernier, c'était 1 an après, mais on a fini par les recevoir :D
leojean890: je vois hihi
Zorg1: c'est lent la poste russe ^^
leojean890: tu reçois ça quand le suivant commence ;)
R4N4R4M4: Bah c'était le CoViD
Zorg1: bah même avant je me souviens qu'Euler avait poireauté pour recevoir son prix
Zorg1: sur le jeu avec un champs de bataille
R4N4R4M4: Voici le message reçu en avril : http://chat.codingame.com/pastebin/24eaabd6-9540-48a4-b9bf-e854910b5434
Zorg1: ou le foot en 3D
R4N4R4M4: Ah mince, ça traduit automatiquement, c'est pas rigolo :D
leojean890: tu as eu ça où ?
leojean890: mail ?
leojean890: j'ai pas eu ça moi^^
R4N4R4M4: C'était l'an dernier
leojean890: ah ok:)
leojean890: foot en 3D avec voitures ouais:p
leojean890: rocket league
leojean890: ça devait tellement être chaud:)
R4N4R4M4: C'était le CodeSide en 2019
leojean890: ceux qui recoivent de l'argent en direct l'ont probablement reçu rapidement
Zorg1: ça devait être la simu de champs de bataille alors
leojean890: 2019 c'est le jeu de tir j'avais vu des vidéos
leojean890: tir en 2D
Zorg1: un truc incompréhensible où tu pilotais des chars, des hélicos ...
Zorg1: ah oui les bonhommes qui sautaient partout et qui se tiraient dessus
leojean890: ^^
leojean890: j'aimerais bien un petit advence wars:p
Zorg1: oui Euler avait fait ça aussi
leojean890: strat en temps réel j'ai tjr été plus mauvais qu'en tour par tour:p
R4N4R4M4: Je l'ai pas fait celui-là, j'ai fait le 2018 CodeBall et le 2019 CodeSide (https://youtu.be/da6NcqUknNg)
Zorg1: advence wars ?
R4N4R4M4: et le 2020 aussi
leojean890: c'est un jeu vidéo^^
leojean890: les jeux de strat tour par tour j'aimais ça
leojean890: (advence awrs, fire emblem, final fantasy tactics, etc)
leojean890: j'ai pas encore vu de sujet d'ia du genre ici ou raic
Zorg1: bah ça peut devenir assez compliqué comme jeu si tu veux que ça soit intéressant
R4N4R4M4: Tu parles de celui-là Zorg1 ? C'est le 2017 : https://youtu.be/P-uQKVe1Svc
leojean890: oui je confirme^^
Zorg1: c'est ça R4N4R4M4 ^^
leojean890: compliqué !
Zorg1: ah j'avais oublié la zique
R4N4R4M4: Y a le PM du vainqueur ici : https://habr.com/ru/post/345458/
Zorg1: après halite essaie de faire des trucs plus abstrait mais j'ai jamais eu le courage de m'y lancer
leojean890: R4 ah oui je l'ai partagé tout à l'heure, j'ai fait fuir qqn car en russe xD
leojean890: mais la trad auto est correcte