algo/docs/features/collatz_targeted_leaves_and_diagnostics.md
ncantu 015792d5d0 collatz: update hensel chain leaves shifted script, README and certs
**Motivations:**
- Sync certs_shifted artefacts, script and README.

**Root causes:** N/A
**Correctifs:** N/A
**Evolutions:**
- collatz_build_hensel_chain_leaves_shifted.py
- README.md
- docs/artefacts/collatz/refinement_K/.../certs_shifted/*.json

**Pages affectées:**
- applications/collatz/collatz_k_scripts/README.md
- applications/collatz/collatz_k_scripts/collatz_build_hensel_chain_leaves_shifted.py
- docs/artefacts/collatz/refinement_K/palier2p15/hensel_chain_leaves/certs_shifted/
2026-03-10 13:07:33 +01:00

85 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**Auteur** : Équipe 4NK
# Targeted leaves (attempt) and diagnostics
## Objectif
Réduire `tracked.max/p99` sur une liste fixe de racines ouvertes (topN par `lb_any`) au palier `2^15`,
en introduisant une grammaire de feuilles capable de **payer localement une dette dobservabilité**,
sans déclencher une explosion combinatoire du raffinement binaire.
## Tentative implémentée
- `applications/collatz/collatz_k_scripts/collatz_build_targeted_refinement_leaves.py`
- `applications/collatz/collatz_k_scripts/collatz_verify_targeted_refinement_leaves.py`
Principe : fermer chaque racine suivie `r0` via un certificat de raffinement profond (cap par défaut 160)
en nautorisant comme feuilles terminales que `D_exact`, `F`, et `D_minor`.
### Résultat
Sur la liste fixe `tracked_roots_lb_any_top200_mod2p15_to2p18.txt`, aucun certificat na été construit (`closed_roots=0`).
Artefacts :
- `docs/artefacts/collatz/refinement_K/palier2p15/targeted_leaves/clauses_targeted_refinement_leaves_mod2p15.json`
- `docs/artefacts/collatz/refinement_K/palier2p15/targeted_leaves/verification_targeted_refinement_leaves_mod2p15.json`
## Diagnostic déterministe (root cause)
### Fait structurel mesuré (au premier raffinement 2^15→2^16)
Sur les racines suivies, **les deux enfants** (low/high) au niveau `m=16` nont *pas* de clause terminale immédiatement décidable (`A+1 <= 16`) dans la grammaire `D_exact/F` (avec `k_max=t_max=256`).
Ce fait est mesuré et versionné dans :
- `applications/collatz/collatz_k_scripts/collatz_diagnose_targeted_leaves_failure.py`
- `docs/artefacts/collatz/refinement_K/palier2p15/targeted_leaves/diagnostic_targeted_leaves_failure_mod2p15.md`
Extrait (colonnes `immediate_low@16`, `immediate_high@16`) :
- `root=27` : `no/no`, et `lb_root=60`
- `root=703` : `no/no`, et `lb_root=84`
- `root=2887` : `no/no`, et `lb_root=136`
### Interprétation mathématique
Dans la grammaire de fermeture par raffinement binaire, une racine `r0` est fermée si et seulement si **les deux enfants** à chaque split sont fermables (directement ou récursivement).
Quand `immediate_low@16=no` et `immediate_high@16=no`, fermer `r0` impose mécaniquement de **raffiner plus profond** au moins jusquà une profondeur où une clause terminale devient décidable. Le diagnostic donne des bornes inférieures `lb_root` typiquement dans `[50, 136]` sur les racines extrêmes.
Le point bloquant nest pas “le cap 160” en tant que tel : cest le fait que, sans règle de compression,
la fermeture par scission binaire doit couvrir un arbre de taille \(2^{(lb\_root-16)}\) nœuds au minimum dans le cas défavorable.
Pour `lb_root=136`, cela correspond à une explosion combinatoire hors de portée dun certificat fini exploitable.
### Conclusion (root cause)
Léchec des certificats “targeted leaves” vient de la combinaison :
- **absence de feuilles terminales décidables** au premier niveau de raffinement (m=16) sur les racines extrêmes ;
- **bornes inférieures `lb_root` très élevées**, qui rendent le raffinement binaire naïf exponentiel ;
- grammaire de feuilles **trop faible** (D/F/D_minor) pour “absorber” la dette sans fermer récursivement les deux enfants.
## Formalisation et plan d'implémentation
Les quatre pistes d'extension sont formalisées dans `applications/collatz/conjoncture_collatz.md` (section « Extensions de grammaire pour les cas no/no »). Le plan d'implémentation aligné sur `these/livre_jeune_adulte.md` est dans `docs/features/collatz_grammar_extensions_implementation_plan.md`.
### Phase 1 exécutée (extension mécanique)
La Phase 1 a été exécutée : clauses terminales D/F pour m=15..21 (k_max=t_max=16), clauses D_minor pour m=20,21 (k=12,u=20 ; k=12,u=21 ; k=13,u=21), bundle étendu à max_palier=21. Rapport et métriques : `docs/artefacts/collatz/refinement_K/palier2p15/phase1_grammar_extensions_report.md`. Résultat : Δ(tracked.max)=0, Δ(tracked.p99)=0 ; critère de succès non atteint.
### Phase 3 exécutée (chaîne Hensel décalée)
Script `collatz_build_hensel_chain_leaves_shifted.py` : chaîne Hensel démarrant à m=19 pour les résidus dont le frère à m=19 est fermable. 1373 résidus fermés à m=19. open_roots : 1349 → 1101 (248). tracked.max/p99 inchangés (les racines fermées ne sont pas dans le top 200).
### Option A + B exécutées
- Option A : extension à M_max=24, D_minor m=22,23,24. Aucun impact sur tracked.max/p99. Rapport : `option_a_extension_m24_report.md`.
- Option B : Hensel start_m=20,21. Aucun impact supplémentaire. Rapport : `option_b_hensel_m20_m21_report.md`.
Le diagnostic ciblé est exécuté par le bundle avec `--tracked-roots-file` ; sortie : `diagnostic_targeted_leaves_failure_mod2p15.md` dans le répertoire du bundle.
## Guidage pour une grammaire plus puissante
Une grammaire réduisant effectivement `tracked.max/p99` doit introduire une règle/feuille capable de :
- fermer un sous-arbre en **taille linéaire** en la profondeur (compression),
- typiquement en exploitant des structures de type **chaîne henselienne** (un seul embranchement “dur”, le frère se ferme par une clause uniforme),
- ou une règle de “réparation/recombinaison” explicitant comment une branche survivante peut être traitée sans imposer la fermeture complète des deux enfants au même niveau de description.