09:56 <debnet> Je déteste déjà l'AoC du jour.
09:56 <debnet> Et j'ai pas envie de le faire.
10:20 <entwanne> Ah oui c'est perché
10:29 <debnet> Oui c'est tordu car il faut prendre en compte les plus courts chemins, de ce fait >>v est plus court que >v>.
10:30 <debnet> Ça va être relou et j'ai vraiment pas envie de passer mon weekend dessus. 😂
10:48 <entwanne> et potentiellement v>> est plus court que >>v suivant ce que tu as fait avant :D
11:13 <discord_afpy> <lythari59> J ai réussi le 1 mais tellement crade que ça passe pas le 2... Je suis parti conduire la grande a l équitation. Je rework ça à 13h.
11:32 <entwanne> pour l'instant je fais le 1 en backtracking, sur les exemples ça a l'air de passer mais je suis pas spécialement confiant
11:41 <entwanne> Allez la P1 passe en 0,04s, la confiance revient
11:42 <entwanne> (espérons que la P2 ne soit pas d'ajouter 100 claviers supplémentaires 🤞)
11:42 <entwanne> Ah ben c'est presque ça…
11:45 <entwanne> je vais le laisser tourner quelques minutes voir si ça arrive à quelque chose ou s'il faut tout repenser
11:55 <entwanne> Bon a priori je fais environ ×10 chaque fois que j'ajoute un pad donc ça prendrait 4 billards d'années, je vais peut-être pas attendre aussi longtemps
12:07 <discord_afpy> <lythari59> Ça fait plus long qu un weekend.
12:07 <discord_afpy> <lythari59> Je serais chez moi dans 35min. Tic tac
12:25 <entwanne> j'ai pas envie
12:26 <debnet> Pas envie non plus.
12:28 <entwanne> En plus c'est le week-end
12:29 <debnet> Voilà.
12:29 <debnet> T'as déjà été plus loin que moi cependant.
12:31 <entwanne> La partie 1 encore ça me va, quand ça peut être résolu par un algorithme qui parcourt plutôt qu'un algorithme qui calcule ou estime :D
12:31 <debnet> Comme vient de dire ma femme à l'instant "il faut que ça reste un plaisir". :D
12:31 <alain_afpy> WARNING !!! YAKAFOKON DETECTED !!!!
12:31 <debnet> Ta gueule alain_afpy.
12:32 <entwanne> à cette heure ci mon plaisir c'est de manger, pour l'AoC je verrai peut-être dans l'après-midi
12:41 <entwanne> alain_afpy: te laisse pas faire
12:41 <alain_afpy> entwanne: y a pas de nouvelles annonces à valider ?
12:42 <entwanne> je crois pas
13:09 <discord_afpy> <lythari59> voilà j'ai fini :p
13:10 <discord_afpy> <lythari59> pas d'estimation juste du calcul récursif et de la mise en cache.
13:10 <discord_afpy> <lythari59> c'est encore un peu crado mais ça passe.
13:11 <entwanne> Ah donc y a peut-être un espoir (mais j'ai déjà de la mise en cache 😭)
13:30 <debnet> @entwanne Bon sur l'exemple, le dernier code marche pas pour moi, alors que les 4 premiers oui. xD
13:30 <debnet> Envie de décéder.
13:30 <debnet> On a bien pas le droit de survoler la case vide sur le pad hein ?
13:33 <discord_afpy> <lythari59> pas le droit
13:34 <discord_afpy> <lythari59> Aller de < à ^ ne peut se faire que par droite haut.
13:34 <discord_afpy> <lythari59> alors qu'aller de v à A peut se faire droite haut ou haut droite.
13:34 <debnet> Je me demande bien ce que j'ai glandé pour que ça déconne.
13:58 <discord_afpy> <lythari59> ça passe sur 100 claviers, ma solution semble pas mal, je clean et je push sur git si ça peut aider.
14:05 <discord_afpy> <lythari59> Attention Spoiler : https://github.com/lythari/aoc2024/blob/main/ex21/main.py
14:38 <entwanne> Je pense qu'il faut que je renverse le problème : actuellement je pars du clavier utilisateur et je descends jusqu'au clavier final pour trouver la meilleure solution, alors qu'il faudrait plutôt que j'identifie les meilleurs solutions du clavier final, que je remonte d'un cran pour identifier les meilleures solutions qui mènent à ces meilleures solutions, etc.
14:38 <alain_afpy> WARNING !!! YAKAFOKON DETECTED !!!!
14:38 <entwanne> Mais je verrai ça plus tard ^^
14:38 <entwanne> alain_afpy: Ça suffit !
14:38 <alain_afpy> entwanne: certainement.
15:23 <debnet> En foutant des @cache partout, c'est instantané.
15:23 <debnet> J'ai l'impression d'avoir triché.
15:27 <debnet> https://github.com/debnet/AdventOfCode2024/blob/main/Day21.ipynb
17:13 <entwanne> bon j'ai un truc qui commence à donner les mêmes résultats que mon code de la P1, mais qui prend beaucoup trop de mémoire
17:23 <debnet> entwanne: Qu'est ce que tu conserves en mémoire ?
17:23 <entwanne> tous les chemins solutions
17:25 <entwanne> Donc faut que je retravaille encore le truc pour ne pas avoir à les garder en mémoire pour les filtrer
17:25 <alain_afpy> WARNING !!! YAKAFOKON DETECTED !!!!
17:25 <debnet> entwanne: Généralement y a très peu de branches différentes, les seules fois où ça m'était utile à conserver c'est quand je n'étais pas sûr que ">>v" serait plus rapide à traiter que "v>>" pour le robot suivant.
17:25 <entwanne> alain_afpy: oui on sait
17:25 <alain_afpy> entwanne: tu penses quoi du script de mouuu ?, il va te remplacer le garçon !
17:28 <entwanne> debnet: Effectivement et c'est pour ça que je les conserve toutes, parce que j'en suis jamais vraiment sûr au niveau du dessus
17:34 <entwanne> mais je crois que le problème c'est que je raisonne avec le chemin de résolution complet d'une étape avant de le faire résoudre par le niveau du dessus, donc je bénéficie moins de mon cache que si je découpais le chemin en segments d'une touche vers une autre
17:35 <debnet> entwanne: C'est comme ça que j'ai procédé, en utilisant une méthode récursive pour représenter les différentes chaînes de robots. Chaque fois qu'un code était traduit en deux segments, j'évaluais le coût des deux branches pour le robot d'après et je prenais la solution qui avait la résolution minimale.
17:40 <mdk> Mise à jour de Discourse en cours.
18:20 <entwanne> bon à force de tripatouiller le truc dans tous les sens je crois que j'ai fini par avoir une solution qui fonctionne pour la P2 😅
18:55 <debnet> entwanne: Hardest puzzle so far eh?
18:55 <entwanne> ouais -_-'
18:56 <debnet> J'approuve.
18:57 <debnet> En fait les 2 trucs qui m'ont foutu dedans: 1) le gap dans les deux claviers qui forcent à gérer manuellement les directions même si c'est facile de calculer le plus court chemin. 2) le fait qu'un chemin choisi peut avoir deux versions possibles et qu'il faille les sélectionner à l'aune du coût pour le robot suivant.
19:01 <entwanne> Le 1) m'a pas trop posé problème sur ma première solution parce que je ne calculais pas le plus court chemin entre les touches :D, je me déplaçais juste sur le clavier au plus proche jusqu'à tomber sur la touche, comme un parcours de labyrinthe (mais c'était pas très efficace)
19:03 <debnet> J'ai plus ou moins fait la même chose en vrai, sachant qu'au maximum tu allais chercher une touche à 3 de distance.
19:04 <entwanne> moi là où je me suis surtout emmêlé les pinceaux c'est que j'imaginais un algo doublement récursif : pour chaque clavier trouver le meilleur chemin possible (récursivement) puis recommencer avec le clavier suivant, et j'arrivais pas à sortir de cette modélisation du problème
19:06 <entwanne> enfin bon, maintenant j'ai juste envie de tout oublier et que demain il faille juste résoudre un labyrinthe :D
19:08 <debnet> @entwanne Amen.