Skip to content

TP1 MIS G03 — Search-01-StateSpace : exercice 2 (taille des taquins), relayé par mail - #22991

Open
jsboige wants to merge 1 commit into
mainfrom
tp1-mis-g03-search01-exercice2
Open

jsboige wants to merge 1 commit into
mainfrom
tp1-mis-g03-search01-exercice2

Conversation

@jsboige

@jsboige jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner

PR de TP étudiante relayée par l'enseignant. Le groupe a écrit ses solutions dans des scripts Python, hors du carnet, et les a envoyées par mail (archive reçue le 27/10/2026). J'ai replacé le script de l'exercice 2 dans la cellule prévue du carnet d'origine, sans rien changer à son code. Comme pour toute PR de TP, le tag Grain et les checklists internes ne s'appliquent pas.

Summary

  • Cours : EPF MSMIS5IN11, TP1, groupe G03. La correspondance entre code de groupe et membres est dans le registre privé de l'enseignant.
  • Notebook : MyIA.AI.Notebooks/Search/Part1-Foundations/Search-01-StateSpace.ipynb. Le groupe a réservé EX-0004 sur ce carnet (NB-002) et EX-0001 sur son jumeau C# (NB-001).
  • Exercice 2 — taille de l'espace d'états des taquins : factorial écrite à la main avec une boucle multiplicative, tableau de n! et n!/2 pour le 8-, le 15- et le 24-puzzle, estimation du temps d'exploration à 10⁹ états/s, puis une conclusion sur la faisabilité.
Taquin n!/2 (états atteignables) Temps à 10⁹ états/s
8-puzzle 181 440 0,18 ms
15-puzzle 10 461 394 944 000 2,9 h
24-puzzle 7 755 605 021 665 492 992 000 000 2,46·10⁸ ans

Contenu de l'archive

L'archive contenait deux scripts :

  1. Exercice 1 (missionnaires et cannibales) : identique, ligne pour ligne, à la cellule 38 de la PR résolution de l'exercie missionaire cannibale groupe 03 #22688 du même groupe. Il est déjà repris comme exemple guidé crédité dans Add(Search,#22688): Search-01 -- exemple guide credite (missionnaires et cannibales) et exercice 6 (cruches d'eau) #22746. Il n'est pas reproposé ici.
  2. Exercice 2 (taille des taquins) : nouveau. C'est le seul objet de cette PR.

Pourquoi la branche part de 1d3379fc, et non de main

Le groupe a travaillé sur le carnet tel qu'il était avant #22659 : on y retrouve l'en-tête # Exercice 2 : Taille de l'espace d'etats et la liste puzzles du squelette. Depuis, #22659 a transformé cet exercice en exemple guidé crédité à une autre PR de TP (#22645).

Changes

  • Une seule cellule modifiée, la 43 (id: exercise2-solution), +56/−43 dans le JSON. Les 54 autres cellules sont identiques octet pour octet, tout comme les métadonnées du carnet.
  • Source : le script du groupe, sans aucune modification.
  • Sortie : la sortie standard d'une exécution isolée du script. Le code n'utilise aucun objet du carnet.
  • Compteur d'exécution : conservé à 17 (la suite 15 à 19 reste continue).
  • Métadonnées de la cellule : j'ai retiré les horodatages papermill de l'exécution du 29/09, qui ne correspondent plus à cette sortie.
  • Fins de ligne LF, nbformat 4.5.

Test plan

  • Diff cellule par cellule contre 1d3379fc : 55 cellules de chaque côté, seule la cellule 43 diffère.
  • Ré-exécution intégrale d'une copie hors dépôt (nbclient, noyau python3, networkx, matplotlib, numpy, scipy) : 19 cellules de code, 19 avec sorties, 0 erreur. La sortie de la cellule 43 est identique à celle de l'exécution isolée. Aucun nom défini par la cellule n'est réutilisé plus loin dans le carnet. La copie ré-exécutée n'est pas commitée.
  • Aucun secret, aucun nom, aucune adresse, aucun chemin local dans le fichier.

Remarques pour la relecture

  • Valeurs vérifiées : 9!/2 = 181 440, 16!/2 = 10 461 394 944 000 et 25!/2 = 7 755 605 021 665 492 992 000 000.
  • Petite incohérence : la conclusion annonce « quelques ms » pour le 8-puzzle, alors que le tableau calcule 0,18 ms.
  • L'estimation en temps et la discussion de la mémoire (dizaines de To pour le 15-puzzle) vont au-delà de l'énoncé.

Suite attendue

Revue bienveillante, puis décision du coordinateur sur la digestion (exercise-example-labeling.md). La validation du bonus TP revient à l'enseignant. Le groupe a déjà été crédité pour l'exercice 1 via #22688/#22746.

🤖 Generated with Claude Code

…des taquins)

TP relaye par l'enseignant : le groupe a code hors du carnet et a envoye
ses scripts par mail le 27/10/2026. Le script de l'exercice 2 est place
tel quel dans la cellule `exercise2-solution` du carnet dans l'etat ou le
groupe l'a travaille (avant #22659). Sortie produite par execution isolee
du script ; aucune autre cellule ne change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #22991 (TP1 MIS G03 — Search-01-StateSpace : exercice 2 (taille des taquins), relayé par mail) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions github-actions Bot added the pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) label Oct 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR gate absent du rollup (advisory, #10928)

PR gate est absent du rollup de cette PR car elle est en conflit avec main (mergeable_state = dirty). Tant que le conflit n'est pas resolu, GitHub ne calcule pas de merge-ref, donc n'emet AUCUN workflow pull_request -- une re-poussee a vide est inerte (mesuree sur #14220, 2026-09-03 : un commit vide sous identite humaine n'a cree aucun run, issue #14477 cause 5).

  • Remede : resoudre le conflit -- git merge origin/main, resolution deliberee, push.
  • Ne pas depenser un commit vide : il ne sera pas lu tant que la PR reste dirty.

Cause mesuree : mergeable_state=dirty (PR en conflit avec main)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] review myia-ai-01 — TP1 G03 exercice 2, verification factuelle

Points forts, vérifiés sur les blobs :

  • Les trois valeurs sont exactes : 9!/2 = 181 440, 16!/2 = 10 461 394 944 000, 25!/2 = 7 755 605 021 665 492 992 000 000 — recalculées indépendamment, ainsi que les temps à 10⁹ états/s (0,181 ms / 2,906 h / 2,458·10⁸ ans) : le tableau committé est juste.
  • factorial à la main (boucle multiplicative, pas d'import math) : conforme à l'esprit de l'exercice C2→Python, et le commentaire sur les entiers Python sans overflow pour 25! est pertinent.
  • La sortie committée est authentique : ré-exécution isolée du script de la cellule → sortie identique octet pour octet au bloc committé.
  • Le message pédagogique final (croissance en n!, d'où A*/IDA*) fait bien le pont avec Search-3.
  • Base de branche propre : diff limité à la seule cellule 43 (exercise2-solution), les 54 autres cellules et les métadonnées sont identiques octet pour octet au blob 314a0f9 cité.

Remarque mineure (déjà notée par l'enseignant dans le corps de la PR) : la conclusion imprime « quelques ms » pour le 8-puzzle alors que le tableau calcule 0,18 ms — l'ordre de grandeur reste juste.

Merci au groupe G03 pour la boucle multiplicative propre et le tableau bien formaté.

@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 28, 2026
@jsboige

jsboige commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

Mesure avant merge — ne pas fusionner cette PR en l'état : l'exercice 2 est déjà sur main.

Le conflit porte sur une seule cellule (index 43) de Search-01-StateSpace.ipynb. Les deux côtés depuis la base commune 1d3379fc7 : main +651/−363, la branche +56/−43. Rien d'autre ne s'oppose.

Sur main, cette cellule 43 commence par :

# Exemple guide : taille de l'espace d'etats des taquins k x k
# (exercice 2 resolu dans la PR #22645)

#22645 est une PR étudiante (Emmajvx) fermée non mergée : sa solution a été convertie en exemple guidé crédité, et main porte désormais 59 cellules contre 55 dans la base — dont la nouvelle version non résolue de l'exercice.

Conséquence : merger cette branche écraserait l'exemple guidé par une seconde version du même exercice, sans rendre son crédit à #22645, et sans ajouter l'exercice non résolu que main a déjà. Le conflit n'est donc pas à résoudre : c'est un doublon pédagogique.

Ce que je ne tranche pas — c'est une décision d'enseignant, pas de lane : si le travail de ce groupe doit être crédité à son tour, le protocole exercise-example-labeling (conversion en exemple guidé crédité + ajout d'un nouvel exercice non résolu) reste la voie, mais elle réécrit du contenu pédagogique et je ne la prends pas d'office.

Mesure reproduite localement sur origin/main et sur la tête 2e3cca519 ; aucun fichier modifié.

@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 30, 2026
@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 30, 2026
@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 31, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants