Pli 2 de l'EPIC Origami #18706 (sous-série Compression), déplié par le coordinateur après vérification du pli 1 : Compression-01-ShannonFano-Prefixe-Python.ipynb est sur main depuis #18729 (02/10), avec le README de la sous-série.
Livrable
MyIA.AI.Notebooks/Compression/Compression-02-HuffmanCanonique-Python.ipynb (niveau Découverte, noyau Python), plus sa ligne et sa section dans MyIA.AI.Notebooks/Compression/README.md.
Ce que la marche ajoute à Compression-01
Compression-01 construit déjà l'arbre de Huffman et le compare à Shannon-Fano. Ce carnet ne refait pas cette construction : il la cite et part de ses longueurs de code. Il ajoute ce qu'il faut pour passer d'un code optimal à un code utilisable :
- la forme canonique (Schwartz et Kallick 1964) : seules les longueurs se transmettent, les mots du code s'en déduisent ;
- la table de décodage à $2^L$ entrées (une lecture de $L$ bits donne symbole et longueur), et le coût mémoire de $L$ ;
- une mesure de débit encodage et décodage en Mo/s, sur un corpus nommé et reproductible ; le texte du carnet compare cette mesure à l'ordre de grandeur publié par la source R-pivco §1.2.
Sources
- R-pivco : Żukowski, PivCo-Huffman v1.0, arXiv 2606.05765 (2026-06-04), §1.2. Les débits qu'il publie (Huff0, Oodle Huffman sur M4) se citent comme ceux de l'article. Ils ne deviennent jamais des mesures du carnet : le carnet mesure son propre code, sur la machine qui l'exécute, et le dit.
- Archivage de la publication :
G:\Mon Drive\MyIA\IA\Bibliographie IA (règle bibliography-hygiene), chemin complet cité dans la PR. Pas de PDF dans le dépôt.
Préconditions et conventions
Acceptance
- Le carnet s'exécute de bout en bout (Papermill) :
execution_count contigus, 0 erreur, sorties committées.
- Un aller-retour encode puis décode rend le texte d'origine octet pour octet, vérifié par un
assert exécuté.
- La table canonique reconstruite depuis les seules longueurs donne les mêmes mots que l'arbre de Compression-01 sur le même corpus, au réordonnancement canonique près ; le carnet le montre.
- Les débits mesurés sont présentés comme tels (machine, taille du corpus, nombre de répétitions), et distingués des chiffres cités de l'article.
- Le README de la sous-série porte la ligne du carnet et sa section. Les totaux du README ne se mettent pas à jour à la main.
- Verdict SOTA dans le body de la PR (
sota-not-workaround) : l'implémentation est pédagogique et déclarée comme telle. La comparaison au SOTA passe par les chiffres cités de l'article.
Le pli 3 (Compression-03, LZ77) s'ouvrira à la livraison de celui-ci.
See #18706
Pli 2 de l'EPIC Origami #18706 (sous-série
Compression), déplié par le coordinateur après vérification du pli 1 :Compression-01-ShannonFano-Prefixe-Python.ipynbest surmaindepuis #18729 (02/10), avec le README de la sous-série.Livrable
MyIA.AI.Notebooks/Compression/Compression-02-HuffmanCanonique-Python.ipynb(niveau Découverte, noyau Python), plus sa ligne et sa section dansMyIA.AI.Notebooks/Compression/README.md.Ce que la marche ajoute à Compression-01
Compression-01 construit déjà l'arbre de Huffman et le compare à Shannon-Fano. Ce carnet ne refait pas cette construction : il la cite et part de ses longueurs de code. Il ajoute ce qu'il faut pour passer d'un code optimal à un code utilisable :
Sources
G:\Mon Drive\MyIA\IA\Bibliographie IA(règlebibliography-hygiene), chemin complet cité dans la PR. Pas de PDF dans le dépôt.Préconditions et conventions
Compression/, suffixe de noyau-Python(D7).Complexity/: au moins trois exercices progressifs, stubs sans erreur volontaire (C.1), exécution de bout en bout avec sorties committées (C.2).text8) est trop lourd pour une exécution en CI, un extrait déterministe convient, et le carnet en donne la taille.Acceptance
execution_countcontigus, 0 erreur, sorties committées.assertexécuté.sota-not-workaround) : l'implémentation est pédagogique et déclarée comme telle. La comparaison au SOTA passe par les chiffres cités de l'article.Le pli 3 (Compression-03, LZ77) s'ouvrira à la livraison de celui-ci.
See #18706