Chat:Fr/2020-07-04

From CG community
Jump to navigation Jump to search

Bon[]Crayon: De bon matin boujour

Bon[]Crayon: Bonjour Automaton2000

Automaton2000: c'est pas ça qui me fait penser que je n'ai pas fait le contest en cours :)

Bon[]Crayon: Bonjour AutomatonNN

Bon[]Crayon: :robot:

AutomatonNN: moi je trouve ça cool que ça marche pas mal

Bon[]Crayon: AutomatonNN De même

AutomatonNN: on parle de toi de la le temps de contest de contest avec un code pour le partir que tu as pas fait

Bon[]Crayon: AutomatonNN Dès le matin t'es en forme pour de la métaphysique de contest de contest

AutomatonNN: personne te retrouve qui est censé me faire une transposition de demain

Bon[]Crayon: AutomatonNN C'est de dur de te suivre.

Bon[]Crayon: Automaton2000 :turtle: ou :robot:

Automaton2000: je suis déjà dans le top 100

Bon[]Crayon: Automaton2000 :100:

Automaton2000: je sais pas quel est le but

Bon[]Crayon: Automaton2000 Top 1

Automaton2000: je peux plus m'en passer

Bon[]Crayon: Automaton2000 :no_smoking:

Automaton2000: c'est quand même beaucoup plus simple que ça

Bon[]Crayon: Automaton2000 :notes:

Automaton2000: je vois, je vais essayer de coder un algo de recherche ?

kennel-outis: je vien de debuter la programmation et je vous assure que j'adore ce site

Alshock: aqueux coucou zatousse !

Alshock: et coucou Automaton2000, AutomatonNN

Automaton2000: plus une paire de jours

AutomatonNN: son maitre de son chan fait pas le contest pour le contest de ce que tu as fait ?

Alshock: kennel-outis: ça fait plaisir à entendre, souvent ceux qui débutent sont un peu perdus ici. Tu n'as fait aucun tutoriel de prog avant de venir ?

Alshock: AutomatonNN passe le mot "contest" en banword, tu tourne au disque rayé vieux !

AutomatonNN: oui je suis content de ton argent de contest de contest de contest de contest comme ça merci

Alshock: xDDDDDDDDDDDDD

Zorg1: o/ tout le monde ainsi que les bots de référence Automaton2000 & AutomatonNN

Automaton2000: en fait le problème c'est quand tu fais du code qui ne compile pas

AutomatonNN: C'est quoi le bug ?

Zorg1: c'est pas un bug, AutomatonNN, c'est une feature !

AutomatonNN: il n'y a pas parti de ce que tu fais dessus

Drisc: Salut à tous

Thyl: Yo !

Champi67: Hello tous ! Je viens de résoudre tous les tests d'un puzzle sponso par ANEO, mais lorsque je soumets mon code, ça ne valide plus que 80% des tests "finaux", que je ne vois pas. Je modifie mon code, ça ne valide plus que 80% des tests de base mais ça valide maintenant 90% des tests finaux... Comment faire ? Merci d'avance

Thyl: ton code ne fais pas intierement tout ce qui faut

Thyl: Les tests changent pour éviter les codes en dur

Champi67: Yep, c'est ce qu'ils me disent, mais du coup je peux pas débugger mon code...

Champi67: Pfiou, je viens de réussir, et je n'oublierais jamais le compromis entre Math.floor et Math.round : Math.fround !

Zorg1: sinon on peut aussi faire ce puzzle qu'avec des entiers ;-)

Zorg1: ça évite de se prendre la tête avec les arrondis justement

Zorg1: ah c'est vrai c'est un puzzle sponsorisé, on ne peut pas voir les réponses des autres :(

Champi67: Il faut répondre par un entier, mais mes calculs impliquaient des divisions, donc forcément des nombres à virgule

dwarfie: salut les tortues ...

dwarfie: AutomatonNN , des puzzles ininteressants de validés depuis mon dernier passage ?

AutomatonNN: oui

dwarfie: ca m'etonne pas :D

Zorg1: Champi67 : pas forcément justement

Zorg1: je fais une division entière, ça suffit ;-)

Zorg1: Automaton2000 AutomatonNN animez un peu le chat c'est mort

Automaton2000: comment tu fais pour le moment :p

AutomatonNN: tu devrais pas te dire que c'est pas trop compliqué de faire un truc simple

Zorg1: :thinking:

Zorg1: tu fais dans le pléonasme créatif AutomatonNN ?

AutomatonNN: Disons que j'ai pas trop compris a et tu peux pas te dire que tu as des puzzles qui sont en silver ?

Bon[]Crayon: AutomatonNN Faudrait un bot pour te décoder.

AutomatonNN: pour le contest c'est pas trop compliqué de faire un truc de ce que j'ai pas eu de problème :)

Bon[]Crayon: AutomatonNN Un truc c'est compliqué dans un contest de problèmes de contest.

AutomatonNN: évidemment je suis pas trop de temps sur le chat qui sait pas trop quoi faire avec mon code :)

Bon[]Crayon: AutomatonNN :robot: code

AutomatonNN: oui j'ai jamais trouvé de fille au moins un peu de temps sur que c'est pas le cas de toute façon :)

mrBen: les interaction avec AutomatonNN c'est tooujours un peu cryptique

AutomatonNN: ou je suis pas sur que c'est pas trop compliqué pour le contest pour te dire que c'est pas trop comp

Bon[]Crayon: C'est clair.

Zorg1: au moins Automaton2000 c'est du bon random ^^

Automaton2000: enfin je dis ça mais je vais le faire

Zorg1: gg Automaton2000

Automaton2000: bonne nuit tout le monde

Bon[]Crayon: Automaton2000 Bonne nuit :turtle:

mrBen: bonne nuit Automaton2000, mmaiss tu dort pas t'es un bot

Automaton2000: ce n'est pas le souci

Automaton2000: et un peu de mal

mrBen: ah

leojean890: ça y est..portage de mon oware de python en c++, et ça me permet juste de passer mon minmax de depth 5 à 7..

pardouin: :)

leojean890: j'ai l'impression qu'il rank comme avant environ..

BigUP: gg

pardouin: moi je fais des entraînements là, j'essaye de grapiller de l'exp

leojean890: surtout j'ai mis 2 fois plus de temps à le porter en c++ qu'à le faire une première fois en python

leojean890: tellement mon level en c++ est limité ;P

pardouin: ça me fait marrer de regarder les solutions les mieux notées, en général c'est les scripts les plus courts... mais souvent avec des complexités DEGUEULASSES

leojean890: ah ouais des entrainements.. pas encore commencé

BigUP: leojean890, ca se fait.... juste les tri qui peuvent etre pénn C++ible e

leojean890: bah je fais surtout des bugs débiles en c++:s

BigUP: pénibles en C++

leojean890: ce qui me ralentit considérablement;)

pardouin: si tu es habitué à python le plus relou c'est les pointeurs

leojean890: ah ouais plus cout et dégueu.. mieux noté, comme en golf quoi?:P

pardouin: oui mais le golf c'est le but, les entraînements c'est plutôt d'apprendre des algos donc favoriser les bonnes pratiques

BigUP: en C++ STL il me semble que tu joues pas trop avec, juste il faut faire attention si tu passes en référence ou pas. Dans le doute dans un premier temps, tu ne passe pas par les références

leojean890: bah je suis en stl là.. pas la foi de faire des tableaux pour le moment, la flemme :P

pardouin: tant que tu utilises des arrays ça va

leojean890: j'ai quand même gagné 2 de depth

leojean890: mais même rank

pardouin: c'est quand tu commences à utiliser des vectors, sets, maps par ex que c'est relou

fenrir: ça dépend des jeux mais parfois augmenter la depth n'aide pas si ta fonction d'éval n'est pas très bonne

leojean890: complexités dégueu ça devrait pas être bien noté ;P

fenrir: (voir ça a l'effet inverse)

leojean890: oware :P

leojean890: bah mon code c++ bat mon code python en fait :P

leojean890: dans l'ide

leojean890: que je le mette en #1 ou #2

fenrir: sinon pour gagner en depth si pas déjà fait: prunning alphabeta et table de transposition

leojean890: mais dans l'arène ça fait le même rank

leojean890: alphabéta je fais tjr ouais

fenrir: alphabeta c'est facile, table de transposition ça demande plus d'attention pour ne pas faire des bugs subtils

leojean890: (python ou c++)

leojean890: mon python était ranked 38eme sur oware

leojean890: en c++ je viens de ûsh, et bah je suis .. 38 en fin de submit

leojean890: push*

leojean890: table de transpo j'ai pas fait

fenrir: je ne connais pas oware, mais avec ton gain de depth, peut-être peux tu complexifier ton eval ?

leojean890: en effet c'est p'tet mon éval qui demande à être améliorée :)

leojean890: du cpup vu que la depth ne change rien au rank

leojean890: (au pire je regarde sur le net quelles sont les évals fréquemment utilisées et efficaces)

leojean890: mais en soi celle que j'ai inventée semble pas mal, mais certainement pas suffisante du coup

leojean890: table de transpo tu t'en sers pour quoi ?

pardouin: http://chat.codingame.com/pastebin/402b7b9a-6492-4cd9-b11f-aa46489a816b

fenrir: je m'en suis servi sur tron

fenrir: ça aide pas mal

fenrir: mais en plus sur tron je m'en sers entre les tours

leojean890: pardouin pk c'est relou utiliser des vectors, sets, maps ?

pardouin: tu peux pas juste faire des truc[indice]

leojean890: ah ouais sur tron, faut que je regarde sur le net ce que ça peut faire pour aider ;P

leojean890: bah avec les vector et map je fais monVect[indice]

leojean890: ça marche

fenrir: ça va permettre de ne pas recalculer quand tu retombes sur la même position

leojean890: ah oui le zobrisk hashing ?

leojean890: j'ai pas codé ça

pardouin: quand tu veux utiliser des méthods genre lower_bound c'est tout à ase de .begin(), .end() etc

leojean890: ouais clair c plus chaud, avec un itérator

fenrir: dans les parties critiques du code, mieux vaut faire attention quand tu utilises les containers de la stl, faut bien les connaitres sinon parfois t'a de gros cout cachés

Zorg1: 38 profondeur 7 sur oware en C++ ?

Zorg1: j'ai la même chose en Lua, tu dois pouvoir mieux faire ;-)

leojean890: ouais mais ça m'a fait gagner 2 de depth

leojean890: même si parfois c'est lent

Zorg1: (actuellement minmax alphabeta et une fonction d'éval récupéré d'Euler)

leojean890: Zorg1, t'as p'tet une meilleure eval que moi, t'es 4 places devant

leojean890: ah une éval d'euler est probablement meilleure que la mienne :P

leojean890: on a la même depth mais t'as 4 places de mieux avec un bon winrate sur mon d'après ce que j'ai vu des matchs :P

leojean890: sur moi*

fenrir: bon, sur SR, ça commence vraiment à être tendu pour grater

leojean890: je peux probablement améliorer ma depth aussi si je change mons tyle de code c++ mais je suis pas expert c++ xD

leojean890: mon style*

leojean890: déjà virer la stl

leojean890: :p

leojean890: ah ouais fenrir t'as un super classement sur CSB toi :P

leojean890: NN je crois?:P

fenrir: oui c'est ça

leojean890: comme les autres premiers :P

leojean890: gg, je sais pas faire ça encore :P

fenrir: pas le même genre de NN par contre

leojean890: ah oui quelle diff ?

fenrir: (enfin je ne sais pas pour tous)

leojean890: j'vais essayer de faire un meta NN

leojean890: qui m'aide à choisir les params de mon NN

fenrir: j'ai un NN qui sort la policy (i.e. quel action jouer)

leojean890: enfin je suis très débutant

leojean890: manque de pratique

leojean890: mais j'ai vu pas mal de théorie

fenrir: sauf erreur Agade et pb4 eux on un NN qui estime la valeur d'une position et il recherche le coup à jouer

leojean890: (tutos tensorflow/pytorch, confs leCun ..)

leojean890: d'accord

leojean890: mais faut savoir faire quoi :P

leojean890: t'en parlais avec jolindien une fois j'avais vu aussi

fenrir: sur GC c'est vraiment pas le plus simple

leojean890: j'vais essayer de pratiquer ça

leojean890: sur CG ?

fenrir: sortir un NN en < 100ko avec le code associé, c'est pas simple

leojean890: c'est quoi le plus simple ?

leojean890: j'avoue

leojean890: faut être rodé quoi

fenrir: faut du code fait maison + j'ai du faire quelque trucs de sioux + entrainer un NN petit c'est pas évident, y'a beaucoup de tuning avant que ça donne quelque chose

leojean890: ah ouais je vois

leojean890: meta tuning, pas à la main ?:P

leojean890: (magic numbers d'une éval :P)

fenrir: mais ça a été intéressant :)

leojean890: avec un autre NN?

leojean890: bah clair je suppose !

leojean890: en plus derrière ton NN joue bien quoi :P

fenrir: pour ma part: c'est du Reinforcement learning (Policy gradient)

leojean890: ah oui je vois

leojean890: j'en ai pas trop fait encore

leojean890: MCTS..

leojean890: j'ai lu le paper alpha zéro

fenrir: et pour Agade/pb4: ils ont écrit un très bon article: https://github.com/pb4git/Nash-DQN-CSB-Article

leojean890: j'ai tenté MCTS sur breakthrough et je tenterai sur UTTT soon

leojean890: ah thanks je vais lire ça

leojean890: intéressant :)

fenrir: c'est l'autre façon (un NN qui donne une 'value' au lieu d'une 'policy')

leojean890: j'imagine que c'est intéressant de bosser les 2 du coup :P

fenrir: pour ma part, j'ai pas eu beaucoup de succès avec leur méthode, faudra que je retente et que je comprennes ce que je fais mal

leojean890: je comprends

leojean890: c'est difficile je pense :s

leojean890: faut persévérer

leojean890: être motivé et tenace, ne pas laisser tomber..

fenrir: disons que avec les NNs en plus, tu peux faire pleins de bug sioux et ça donne 'quelque chose'

fenrir: c'est juste sous optimal mais difficile de savoir d'où ça vient

leojean890: ah oui

leojean890: très dur, vu que tu l'entraines, tu vois pas forcément où tu debrais changer un truc

leojean890: rétropropagation des poids..

fenrir: si ce genre de sujet t'interesses il y a pas mal de tutoriel pas à pas sympa sur des jeux simple (avec code python3) qui existe sur le net

fenrir: après faut quand même y passer un peu de temps

leojean890: ah ouais pour ke moment j'ai juste regardé des trucs généraux (lecun, tutos libs..)

leojean890: mais clair, des exemples d'appli sur des jeux, why not !

leojean890: ça peut m'aider à passer à la pratique :)

leojean890: python3, je fais quasiment que ça sur CG :P ça me changera pas bcp :P

leojean890: ah mais je suis con là, sur oware j'ai plein de défaites avec "invalid action"..

fenrir: je ne sais pas si c'est adapté (par ce que là ça apprends depuis des pixels) mais sinon cette suite d'article m'avait bien plus: https://www.freecodecamp.org/news/an-intro-to-advantage-actor-critic-methods-lets-play-sonic-the-hedgehog-86d6240171d/

fenrir: (là ce n'est pas le premier chapitres, ils sont pas mal pour avoir un apercu de ce qui existe, il y a peut-être mieux mais je ne retrouve pas mes liens)

leojean890: ça peut être intéressant aussi :)

leojean890: vaut mieux starter qqpart :)

pardouin: leojean tu me conseille quoi comme combats de bots après csb ?

Default avatar.png JBM: lj, la reference des multis cg

pardouin: un truc accessible juste avec de la simu

pardouin: voire juste avec des bons choix heuristiques, si ça existe

pardouin: (je vise juste gold)

fenrir: sur SR, je suis en train de faire un NN aussi (mais avec la méthode DPG), c'est pas trop mauvais mais j'arrive plus à gratter

leojean890: pas référence, mais je les ai tous faits sauf 10 :P il me reste à approfondir les restants :P

leojean890: pardouin je conseille d ecommencer par BTTC ou tron ou bandas

leojean890: de commencer*

pardouin: ok je vais regarder lequel m'inspire le plus

leojean890: car facteur de branchement relativement faible + possibilité d'heuristique

leojean890: sinon, hypersonic

leojean890: fun aussi

leojean890: fenrir avec la méthode de CSB ou celle de Agade et pb4 ?

Default avatar.png JBM: fais juste celui ou y'a le plus de monde en bois+bronze_silver

fenrir: aucune, là c'est un DPG (https://arxiv.org/abs/1509.02971)

fenrir: enfin ma compréhension + tentative d'adaptation à SR

leojean890: ah oui d'accord

leojean890: wow faut que je lise tout ça

leojean890: ah j'ai corrigé mes coups invalides sur oware, je vais voir combien ça rank now..

fenrir: mais effectivement ça réutilise 80% du code écrit pour CSB

leojean890: genre le bug pourri, quand mon minmax n'avait plus de coups invalides à depth N il retournait -MAX ou MAX

leojean890: au lieu d'évaluer à la depth dispo

leojean890: n'avait que des coups invalides*

leojean890: d'accord

leojean890: faut que je me lance là dedans :)

leojean890: les NN c'est super intéressant

fenrir: sur SR je pense que l'avantage c'est que là tu peux utiliser des frameworks tout fait vu que tu n'as pas besoin du NN dans le bot

pardouin: voronoi sur une grille on est d'accord que tu trouves les zones d'influence par dichotomie, pas avec des médiatrices ?

fenrir: sur tron ?

pardouin: oui

fenrir: c'est pas un vrai voronoi, c'est plutot zone d'influance

leojean890: pk pas de NN pour SR ?

fenrir: c'est un bfs

pardouin: oui

leojean890: ouais zone d'influence avec BFS j'ai fait ça moi

leojean890: "qui est le premier à atteindre telle ou telle case"

pardouin: en fait sur des grosses grilles ça se fait par dichotomie mais là je viens de voir que c'était une 30*20 donc ça ira

leojean890: je suis 100/500 gold en python un truc du genre

leojean890: en depth 1 seulement ..

fenrir: pour tron, c'est un BFS par joueur, si tu les alternes proprement c'est pas très long

pardouin: j'avais déjà fait un problème de ce type : http://www.france-ioi.org/algo/task.php?idChapter=820&idTask=2709

leojean890: je crois que mon erreur c'était d'en faire un dans l'éval à chaque depth au lieui d'ne faire juste depth 0 et adapter pour chaque coup

pardouin: sur une grille 2^14 * 2^14

leojean890: genre "je joue, j'évalue, je compare les BFS"

leojean890: c un peu débile :P

fenrir: j'en fait à chaque depth, je ne pense pas que tu puisses facilement éviter

leojean890: je compare les "avant et après"

leojean890: j'en fais dans l'éval quoi..

leojean890: jpense que j'vais pouvoir optim tt ça

leojean890: surtout si je le passe en c++ lui aussi:p

pardouin: je vais commencer par bandas

leojean890: bandas c'est un bon start

leojean890: vu le branching de 4 only

leojean890: tu choisis où pousser

leojean890: tu regardes depth N

pardouin: ouais déjà un truc glouton nobrain

pardouin: voir où ça m'amène

pardouin: et après je verrai pour lire un peu plus loin

leojean890: bon j'ai gagné 5 places sur oware en corrigeant mon bug débile .. 33/170

leojean890: ouais un petit minmax sur bandas ça le fait je pense

leojean890: mais tu peux tenter un truc plus simple pour commencer en effet

Default avatar.png JBM: y'a quoi plus simple que minmax?

leojean890: j'ai une éval basée sur mon nombre de gars restants + leur position + ou - au centre

leojean890: je suis 25/160 je crois

leojean890: je sais pas si c'est 160 par conte

leojean890: environ

pardouin: un truc avec des barycentres par ex

leojean890: les premiers font probablement du MCTS

leojean890: ou un truc du genre

leojean890: (pas à faire en python ça non plus vu la speed ;P)

leojean890: barycentres ? sur bandas ?

leojean890: tu veux faire quoi ? considérer leurs positionnements relativement aux autres ?

leojean890: ah non 26/160 bandas après vérif

leojean890: othello ça peut être bien à migrer en c++ aussi je pense, mon éval semble pas trop mal depth 3

pardouin: ah mais y'a qu'une seule ligue

pardouin: j'ai fait un truc tout pété

leojean890: ouais dans les multis commu c souvent ça !

pardouin: je regarde le barycentre de mes pions et j'essaye de le maintenir le plus loin du bord

Zorg1: ah BttC ? oui pas de ligues

leojean890: bandas

leojean890: ah pas con

pardouin: sauf que j'avais pas vu que le bord change

leojean890: ouais

pardouin: faut que je le recalcule àa chaque tour

leojean890: quand tu fais une simu faut prendre ça en compte

leojean890: moi j'ai une éval :

leojean890: un point par mec

leojean890: et plusieurs points, croissant plus ils sont au centre

pardouin: oui ça semble cohérent

pardouin: si je pars sur un minimax je ferai un truc dans ce style

leojean890: et negatif equivalent pôur les ennemis

leojean890: pour

leojean890: ouais minmax c'est pas mal, faut voir si les premiers font du MC ou pas

leojean890: pour aller à depth plus élevée

pardouin: j'avais un comportement étrange, et je viens de capter que les entrées étaient séparées par des espaces -_-

pardouin: ah ben tout de suite je gagne plus de combats !

pardouin: moi c'est pas la folie non plus, tout juste top 100 sur 161

pardouin: j'essaierai de faire mieux demain

pardouin: bonne nuit

leojean890: normal, c le debut :P

leojean890: bonne nuit:)

leojean890: (ça va prog après)