• [^] # Re: jour 23 - cracra

    Posté par . En réponse au journal Advent of code 2024. Évalué à 2.

    Alors, j'ai fini par m'y remettre APRÈS les fêtes, car il me manque actuellement les deux parties du 21 (le numpad) et les secondes parties des 22 et 23. Et alors autant, chaque année, les premiers exercices de l'AoC apparaissent « bugués » jusqu'à ce qu'on lise les petites lignes et que l'on saisisse la subtilité, autant je sèche un peu sur la deuxième partie de celui-ci.

    J'ai également constaté que le degré de chaque machine était exactement 13 partout. On ne peut pas rechercher un graphe K14 car il serait isolé du reste du réseau (mais pourquoi pas, après tout).

    Un peu fatigué à ce stade, j'ai choisi de faire une exploration en n*(n-1)/2 pour comparer toutes les paires possibles et déterminer le nombre maximum de nœuds en commun pour chaque partie, puis voir si l'on peut retrouver une clique de cette taille, quitte à redescendre dans la négative. Et je suis également arrivé à 11 voisins.

    En sélectionnant toutes les machines qui ont exactement onze voisins, et en triant ceux-ci dans chaque liste, j'obtiens ceci :

    bk [ 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'ie' ]
    du ['bk', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'ds' ]
    dv ['bk', 'du', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'ij' ]
    gm ['bk', 'du', 'dv', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'ga' ]
    hc ['bk', 'du', 'dv', 'gm', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'ky' ]
    ny ['bk', 'du', 'dv', 'gm', 'hc', 'ot', 'um', 'xl', 'ze', 'zy', 'jx' ]
    ot ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'um', 'xl', 'ze', 'zy', 'lp' ]
    um ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'xl', 'ze', 'zy', 'nq' ]
    xl ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'ze', 'zy', 'kr' ]
    ze ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'zy', 'if' ]
    zy ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'kf' ]
    

    La diagonale correspond à la « connexion de loopback » (avec soi-même) qui bien sûr n'existe pas, et la colonne de droite est le nœud qui comble le trou en temps normal, qui permet de maintenir treize voisins et accessoirement maintient la connectivité avec le reste du réseau.

    J'ai soumis « bk,du,dv,gm,hc,ny,ot,um,xl,ze,zy » (onze nœuds, donc) mais ce n'est pas la bonne réponse...

    On remarque que les listes ci-dessus contiennent en fait onze nœuds et pas treize. En effet, la liste complète est en réalité

    bk [ 'du', 'dv', 'gm', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'zy', 'ie' ]
    du ['bk', 'dv', 'gm', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'zy', 'ds' ]
    dv ['bk', 'du', 'gm', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'zy', 'ij' ]
    gm ['bk', 'du', 'dv', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'zy', 'ga' ]
    hc ['bk', 'du', 'dv', 'gm', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'zy', 'ky' ]
    ny ['bk', 'du', 'dv', 'gm', 'hc', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'zy', 'jx' ]
    of ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'fp', 'kv' ] *********
    ot ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'of', 'um', 'uy', 'xl', 'ze', 'zy', 'lp' ]
    um ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'of', 'ot', 'uy', 'xl', 'ze', 'zy', 'nq' ]
    uy ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'ot', 'um', 'xl', 'ze', 'zy', 'ce', 'pp' ] *********
    xl ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'ze', 'zy', 'kr' ]
    ze ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'zy', 'if' ]
    zy ['bk', 'du', 'dv', 'gm', 'hc', 'ny', 'of', 'ot', 'um', 'uy', 'xl', 'ze', 'kf' ]
    

    On remarque que les colonnes of et uy sont partagées par presque tous les nœuds sauf deux (matérialisés par les trous hors diagonale). Ces deux trous correspond précisément à un seul lien manquant entre ces deux machines, ce qui suffit à briser la clique.

    J'ai malgré tout ajouté ces deux machines à la liste ci-dessus (en préservant l'ordre alphabétique), mais ce n'est pas la bonne réponse non plus.

    À ce stade, je veux bien un indice si quelqu'un voit la faille.