Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,555 changes: 1,166 additions & 389 deletions MyIA.AI.Notebooks/Search/Part2-CSP/CSP-1-Fundamentals-CSharp.ipynb

Large diffs are not rendered by default.

750 changes: 387 additions & 363 deletions MyIA.AI.Notebooks/Search/Part2-CSP/CSP-2-Consistency-CSharp.ipynb

Large diffs are not rendered by default.

482 changes: 360 additions & 122 deletions MyIA.AI.Notebooks/Search/Part2-CSP/CSP-3-Advanced-CSharp.ipynb

Large diffs are not rendered by default.

717 changes: 557 additions & 160 deletions MyIA.AI.Notebooks/Search/Part2-CSP/CSP-5-Optimization-CSharp.ipynb

Large diffs are not rendered by default.

1,004 changes: 820 additions & 184 deletions MyIA.AI.Notebooks/Search/Part2-CSP/CSP-7-Soft-CSharp.ipynb

Large diffs are not rendered by default.

404 changes: 226 additions & 178 deletions MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-Csharp.ipynb

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
bridge_verdict: SOTA-OK
bridge_verdict_reason: 'Les DEUX jumeaux atteignent le meme moteur de production Choco (parite lib-vs-lib stricte, mandat owner #10382 ''lib vs lib c''est encore mieux''). C# = Choco-solver 4.10.17 (Java, Apache-2.0) via IKVM 8.15.0 home shade DLL (recette #4711). Python = pychoco (binding Python officiel de Choco, PyPI MIT), section 6bis ajoutee 2026-08-19 (#10382) : les trois demonstrations du jumeau C# sont rejouees avec le meme modele (IntVar par etat 0..2 + arithm ''!='' pour l''Australie ; boucle solve() pour l''enumeration ; all_different + scalar/arithm diagonales pour les 8-Reines). Convergence mesuree : enumeration Australie = 18 solutions des deux cotes ; solutions valides sur les memes instances. Socle pedagogique from-scratch (classe CSP, backtracking, MRV, LCV) conserve intact des deux cotes ; python-constraint reste en section 6 cote Python comme moteur leger avant le pont industriel. Visualisation : Python = matplotlib, C# = rendu ASCII (inchange).'
known_differences:
- "2026-09-27 (drift unilateral, session cloud d'agnosticisme hors flotte) : cote C# seul. La cellule de configuration IKVM codait le RID win-x64 en dur (ikvmRid = win-x64, plus une reference NuGet IKVM.Image.runtime.win-x64) : sous Linux et macOS, l'init de la JVM IKVM echouait au premier appel Java (TypeInitializationException sur IKVM.Runtime.LibJava, mesure sur CSP-1 avant correctif). Le RID est desormais derive de OperatingSystem et RuntimeInformation.ProcessArchitecture ; IKVM.Image 8.15.0 depend deja des onze paquets IKVM.Image.runtime.<rid>, la reference explicite win-x64 est retiree. Re-execution complete sous Linux (dotnet-interactive 1.0.617701) : 0 erreur, sorties identiques a la base hors RID du home IKVM, separateur decimal (culture) et temps mesures. Jumeau Python inchange. Strips outilles appliques avant l'attestation (probe banner, papermill). Prose : la duree du brute force epinglee (3,9 ms) remplacee par un descripteur machine-dependant (#9434)."
- 'Re-baseline 2026-09-11 (myia-po-2023:CoursIA, #15447 / chore #15429) : normalisation str->list des cellules `source` -- re-encodage de representation, aucun contenu pedagogique touche. Verifie firsthand : le SHA canonique du carnet (toutes listes-de-chaines jointes, metadata de niveau carnet exclue) est IDENTIQUE base vs head, et les champs `text` des sorties sont inchanges ; seul le content_sha du registre bouge. Le garde #8057 demande une attestation de parite, pas une reparation.'
- 'Correction 2026-08-19 (myia-po-2025:CoursIA-2, review #11789 / NanoClaw + ai-01 re-derive) : la contrainte anti-diagonale 8-Reines etait mal ecrite dans les DEUX jumeaux (q_i + q_j != i + j au lieu de q_i + i != q_j + j) ; les solutions committees etaient invalides (Python : 6 paires en attaque, C# : 1 paire). Fixe des deux cotes en `scalar [1,-1] + arithm != j-i` (equivalent exact de q_i + i != q_j + j) puis re-execute : Python [4,6,1,5,2,0,7,3] et C# [4,6,1,5,2,0,3,7], toutes deux 0 attaque (verifie).'
- 'Edition 2026-08-19 (myia-po-2025:CoursIA-2, #10382 tranche lib-vs-lib) : section 6bis ajoutee au jumeau Python -- Choco via pychoco (binding officiel PyPI MIT), miroir de la section 6 du jumeau C# (Choco via IKVM). Memes modeles, memes instances : enumeration Australie = 18 solutions des deux cotes (convergence verifiee sur grandeur observable), 8-Reines solution valide. La premiere solution 8-Reines differe potentiellement entre jumeaux (ordre de creation des variables auxiliaires diagonales influence lheuristique par defaut) -- documente dans la cellule dinterpretation. Temps de resolution en prose = descripteurs machine-dep renvoyant aux sorties live (regle #9434). Re-exec complete du notebook (86 cellules, 33 code, 0 erreur). Verdict RECOVERABLE-LOCAL -> SOTA-OK.'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-09-27'
by: claude-cloud:hors-flotte
python_sha: ce501ad216fd553b300a18947a08aab49f6a861a
csharp_sha: 546b3c5a4b1131014757a78555180cd123475d3a
content_python_sha: dc94006e6ee45a38fbadbd1067a27c1e1f09fa5224c6e2b2a9dba739202807bd
content_csharp_sha: c6bb4365ab659d764c2458fe1fa2ca20d6d4f9cc5d8688c2b9547601212d5ef4
1 change: 1 addition & 0 deletions scripts/notebook_tools/twin_pairs.d/csp-2-consistency.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
bridge_verdict: SOTA-OK
bridge_verdict_reason: "Les DEUX jumeaux atteignent le meme moteur de production Choco (parite lib-vs-lib stricte, mandat owner #10382 'lib vs lib c'est encore mieux'). C# = Choco-solver 4.10.17 (Apache-2.0) via IKVM 8.15.0 home shade DLL (recette #4711) : propagation AC-3 + fixpoint + bench AC-3 vs backtracking + coloration Australie. Python = socle from-scratch conserve (AC-3 sur `collections.deque`, forward checking, MAC — c'est le choix pedagogique du notebook : implementer AC-3 a la main) + section 3.6 ajoutee 2026-08-19 (#10382) : Choco via **pychoco** (binding Python officiel, PyPI MIT), meme modele Australie (7 IntVar 1..3, `arithm !=` sur adjacences, `WA = 1`) rejoue en un `solve()` — propagation integree du solveur observee cote a cote avec l'AC-3 maison de la cellule precedente. Solution unique valide des deux cotes. Viz : Python = matplotlib + networkx, C# = Console.WriteLine. `parity_level: semantic` preserve."
known_differences:
- "2026-09-27 (drift unilateral, session cloud d'agnosticisme hors flotte) : cote C# seul. La cellule de configuration IKVM codait le RID win-x64 en dur (ikvmRid = win-x64, plus une reference NuGet IKVM.Image.runtime.win-x64) : sous Linux et macOS, l'init de la JVM IKVM echouait au premier appel Java (TypeInitializationException sur IKVM.Runtime.LibJava, mesure sur CSP-1 avant correctif). Le RID est desormais derive de OperatingSystem et RuntimeInformation.ProcessArchitecture ; IKVM.Image 8.15.0 depend deja des onze paquets IKVM.Image.runtime.<rid>, la reference explicite win-x64 est retiree. Re-execution complete sous Linux (dotnet-interactive 1.0.617701) : 0 erreur, sorties identiques a la base hors RID du home IKVM, separateur decimal (culture) et temps mesures. Jumeau Python inchange. Strips outilles appliques avant l'attestation (probe banner, papermill)."
- "Edition 2026-08-19 (myia-po-2025:CoursIA-2, #10382 tranche lib-vs-lib) : section 3.6 ajoutee au jumeau Python -- propagation native Choco via pychoco (binding officiel PyPI MIT), miroir de la section 4 du jumeau C# (AC-3 avec Choco via IKVM). Meme modele Australie (7 IntVar 1..3, arithm '!=' sur adjacences, WA=1) : solve() retourne une solution valide des deux cotes. L'assignation exacte des variables non-fixees peut differer entre jumeaux et vs l'AC-3 maison (heuristique de recherche par defaut du solveur) -- documente dans la cellule d'interpretation du notebook. Temps de resolution en prose = descripteurs machine-dep renvoyant aux sorties live (regle #9434). Re-exec complete du notebook (70 cellules, 28 code, 0 erreur). Verdict RECOVERABLE-LOCAL -> SOTA-OK."
- "Socle pedagogique commun : node consistency + AC-3 + Forward Checking + MAC, implementes from-scratch des deux cotes."
- "Cote C# : extension Choco-solver 4.10.17 via IKVM 8.15.0 (memes recettes infrastructure que CSP-1) pour comparer les algorithmes custom avec la propagation native de Choco (variable x, contrainte arithmetique, model.getSolver().propagate())."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-09-27'
by: claude-cloud:hors-flotte
python_sha: fe54d361efc1a2b747cc2d4614502957fb47b0f3
csharp_sha: c2531ac105b90598b7ea3fd93f7769bc9a112725
content_python_sha: 6028275fae847c7e0525f6b14a9bf42ab07fbc2d291056e7e6f000fc1c807f5e
content_csharp_sha: 8f212919f0d6f80407059dfc85f9ff4d2a1dbb75700c2254b5c0bc03e875b800
1 change: 1 addition & 0 deletions scripts/notebook_tools/twin_pairs.d/csp-3-advanced.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
bridge_verdict: SOTA-OK
bridge_verdict_reason: "REBRIDGE LIVRE 2026-08-19 (annexe 'parite lib-vs-lib', cote Python du notebook) : `pychoco` (binding Python officiel de Choco, PyPI, MIT) rejoue les 5 demonstrations Choco du jumeau C# sur le MEME moteur -- instances exactes du twin C# (Mini-Sudoku 4x4 allDifferent, Cumulative [3,4,2,5] cap 2, TSP 5 villes matrice symetrique, Table 3 tuples, Reification XOR). Convergence mesuree : makespan optimal 9 = 9, cout TSP 18 = 18 avec tour identique 0->1->3->4->2->0, solution Table HDD+16GB+750W identique, solution Reif x=0,y=1,b=1,c=0 identique. Les sections principales preservent le pattern double-lib pedagogique (PY = python-constraint academique + OR-Tools CP-SAT industriel, C# = Choco 4.10.17 via IKVM 8.15.0 shade DLL recette #4711) ; l'annexe ajoute la comparaison lib-vs-lib sur les instances du C#. Les DEUX cotes atteignent desormais le meme moteur industriel (Choco) -- le critere SOTA-OK (vrai outil SOTA execute des deux cotes, sorties reelles committees) est satisfait. `parity_level: semantic` preserve pour le corps du notebook ; l'annexe porte la parite numerique exacte."
known_differences:
- "2026-09-27 (drift unilateral, session cloud d'agnosticisme hors flotte) : cote C# seul. La cellule de configuration IKVM codait le RID win-x64 en dur (ikvmRid = win-x64, plus une reference NuGet IKVM.Image.runtime.win-x64) : sous Linux et macOS, l'init de la JVM IKVM echouait au premier appel Java (TypeInitializationException sur IKVM.Runtime.LibJava, mesure sur CSP-1 avant correctif). Le RID est desormais derive de OperatingSystem et RuntimeInformation.ProcessArchitecture ; IKVM.Image 8.15.0 depend deja des onze paquets IKVM.Image.runtime.<rid>, la reference explicite win-x64 est retiree. Re-execution complete sous Linux (dotnet-interactive 1.0.617701) : 0 erreur, sorties identiques a la base hors RID du home IKVM, separateur decimal (culture) et temps mesures. Jumeau Python inchange. Strips outilles appliques avant l'attestation (probe banner, papermill)."
- '2026-08-31 : ATTESTATION UNILATERALE (PR #13659, lane myia-ai-01:CoursIA) -- reparation d''echappements JSON manges dans le markdown du cote Python. CAUSE : dans le .ipynb, la sequence dollar-\bot-dollar ecrite avec UN SEUL antislash est lue par le parseur JSON comme l''echappement \b (backspace, U+0008) ; la source chargee porte un caractere de controle et le notebook rend un dollar-ot-dollar prive de sa commande LaTeX. FIX : doubler l''antislash (\\bot). Le DRIFT est UNILATERAL parce que le DEFAUT l''est : la contrepartie CSP-3-Advanced-CSharp.ipynb (C#), 14 cellules markdown, a ete scannee sous controle positif (le litteral defectueux passe a json.loads doit rendre U+0008 -- assertion verifiee avant le scan) et ne porte AUCUN caractere de controle U+0008/U+000B/U+000C. Il n''y a donc rien a reparer de ce cote : l''attestation ne consacre aucune asymetrie de contenu. PORTEE DU DIFF cote repare (comparaison des JSON parses origin/main -> HEAD) : markdown uniquement, 0 cellule code touchee, 0 sortie modifiee, 0 execution_count deplace, 0 cellule ajoutee ou retiree.'
- "Socle pedagogique commun : global constraints (all_different, sum, element) + backtracking avec propagation globale + symetrie breaking (lexicographique)."
- "Cote C# : Choco-solver (memes recettes infrastructure) - global constraints implementes en Python pur (classe AllDifferent via matching de Hall), cote C# delegue a Choco.IntVar+Constraint via IKVM."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-09-27'
by: claude-cloud:hors-flotte
python_sha: 3b3c1bed277c5b013d59757b24ad950f0f1b9ccf
csharp_sha: f922f2a1217d3484470537c4e3ce116170925595
content_python_sha: 2b422e9b601d4daf79a6f0f14c5c332b549be13bd9d3ccc9aa9a04612a4abd48
content_csharp_sha: ecb80ad982bb4762096f01ae39b972f19be635ece1417029d17c9f8bf00dcf89
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
bridge_verdict: SOTA-OK
bridge_verdict_reason: "DEUX PONTS LIVRES 2026-08-20, fermeture par les deux bouts de la meme asymetrie de machinerie. (a) Cote Python -- annexe 'parite lib-vs-lib' (myia-po-2025:CoursIA-2, PR #11891) : `pychoco` (binding Python officiel de Choco, PyPI, MIT) rejoue les 4 demos Choco du jumeau C# sur les instances exactes des cellules 6/8/10/12 (BPP [2,5,4,7,2] cap 10 reification+scalar, Knapsack 5 objets cap 10, Cutting Stock 13 pieces via contrainte GLOBALE bin_packing, Portfolio lineaire 5 actifs). Convergence 4/4 : 3 bins = 3, valeur 31 = 31 avec selection identique {0,1,3}, 10 barres = 10 avec meme decomposition 3x[9] + 4x[7] + 3x[4,4], rendement 27 = 27 avec meme choix {0,1,4}. Re-exec complete (25 cellules code, 0 erreur, nbconvert --execute). (b) Cote C# -- section 5.1 'CP-SAT natif .NET' (myia-po-2024:CoursIA, PR #11976) : `#r \"nuget: Google.OrTools, 9.11.4210\"` sans IKVM + formulation booleenne miroir du Python (x[i,j]/y[j], capacite linearisee, symmetry breaking, Minimize(sum(y))) sur les memes donnees [2,5,4,7,2]/cap 10. Re-exec .NET Interactive : status Optimal, 3 bins -- meme optimum que Choco section 1 et que solve_bin_packing_cp Python (optimum verifie independamment : aucun sous-ensemble de [2,5,4,7,2] ne somme a exactement 10, donc 2 bins est infaisable et 3 est optimal). Consequence sur parity_level : `native-both` est desormais atteint PAR L'AXE CP-SAT -- chaque cote invoque CP-SAT dans son ecosysteme natif (Python `ortools.sat.python.cp_model`, C# NuGet `Google.OrTools` sans pont IKVM), ce qui est la definition retenue par l'arbitrage #11200. L'axe Choco reste asymetrique (pychoco natif cote Python, IKVM shade cote C#) et n'est pas ce qui porte le verdict. Le `semantic` inscrit par (a) etait correct AVANT que (b) n'existe ; il est superseded, pas contredit. Les sections principales preservent le pattern double-lib pedagogique (PY = OR-Tools CP-SAT, C# = Choco 4.10.17 via IKVM 8.15.0 recette #4711). --- Etat precedent (2026-08-04) : verdict RECOVERABLE-LOCAL, ASYMETRIE DE MACHINERIE -- PY = Google OR-Tools CP-SAT vs C# = Choco via IKVM. Les deux remedes nommes a l'epoque (`pychoco` pour aligner sur Choco, `Google.OrTools` NuGet pour aligner sur OR-Tools) ont ete appliques, chacun par une lane differente."
known_differences:
- "2026-09-27 (drift unilateral, session cloud d'agnosticisme hors flotte) : cote C# seul. La cellule de configuration IKVM codait le RID win-x64 en dur (ikvmRid = win-x64, plus une reference NuGet IKVM.Image.runtime.win-x64) : sous Linux et macOS, l'init de la JVM IKVM echouait au premier appel Java (TypeInitializationException sur IKVM.Runtime.LibJava, mesure sur CSP-1 avant correctif). Le RID est desormais derive de OperatingSystem et RuntimeInformation.ProcessArchitecture ; IKVM.Image 8.15.0 depend deja des onze paquets IKVM.Image.runtime.<rid>, la reference explicite win-x64 est retiree. Re-execution complete sous Linux (dotnet-interactive 1.0.617701) : 0 erreur, sorties identiques a la base hors RID du home IKVM, separateur decimal (culture) et temps mesures. Jumeau Python inchange. Strips outilles appliques avant l'attestation (probe banner, papermill)."
- "Pont 2026-08-20 (myia-po-2024:CoursIA, #10382 bucket 1 OR-Tools) : le twin C# ajoute une section 5.1 CP-SAT natif (Google.OrTools 9.11.4210 NuGet, sans IKVM) qui reprend la formulation booleenne du Python (x[i,j]/y[j], Minimize(sum(y))) sur les memes donnees BPP. Sortie executee : Optimal, 3 bins -- convergence avec Choco section 1 et avec le twin Python. Combinee a l'annexe pychoco cote Python (entree ci-dessus, meme date, autre lane), cette section porte parity_level a native-both sur l'axe CP-SAT. L'entree 'Idiomes framework' ci-dessous decrit l'etat pre-ponts (sections 1-4 Choco/IKVM cote C#, inchangees)."
- "Rebridge 2026-08-20 (myia-po-2025:CoursIA-2, #10382) : annexe 'parite lib-vs-lib' ajoutee au twin Python (9 cellules avant References, ids annexe-libvslib-*) -- pychoco rejoue les 4 demos Choco du twin C# (BPP reification+scalar, Knapsack scalar, Cutting Stock bin_packing globale, Portfolio lineaire) sur les instances exactes des cellules 6/8/10/12 du C#. Re-exec complete du notebook (25 cellules code, 0 erreur, nbconvert --execute). Convergence 4/4 : 3 bins, 31/{0,1,3}, 10 barres meme structure, 27/{0,1,4}. Verdict flip RECOVERABLE-LOCAL -> SOTA-OK (le remede nomme dans le verdict precedent -- pychoco pour aligner les 2 jambes sur Choco -- est applique). Twin C# non modifie."
- "Edition 2026-08-17 (myia-po-2025:CoursIA, #9434) : le twin Python a evacue ses durees wall-clock machine-dependantes de la prose d'interpretation de la cellule 33 (benchmark FFD vs CP-SAT, pins ~20 ms / ~0,5 s / limite 30 s / < 1 ms / n <= 50 en une seconde) au profit d'ordres de grandeur + renvois vers la sortie du benchmark (cellule 32 ci-dessus), avec note mandat #9377/#9434. Les resultats deterministes (gaps 50 %/0 %/7 %, statuts OPTIMAL/FEASIBLE) sont conserves verbatim. Markdown-only, pas de re-exec (exception C.2). Twin C# non modifie (pins absents cote C#, 19 cellules sans benchmark scaling). Parite semantique tenue : socle optimisation, modelisation, contraintes, benchmark empirique inchanges."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-09-27'
by: claude-cloud:hors-flotte
python_sha: eac3772a8ef97842d1ccc49e826e66da45bbfffe
csharp_sha: 0de8e26d6064d4e90d2bba406f905bebd7c0af40
content_python_sha: fdcaed3d179ea47a6f57910e921c11b4ad2f787edfa64095c4325694fd2ff940
content_csharp_sha: 4d036661dc6483f3b90967f888f0b72311d3aeec3e0d3b5a0ea16104b21c3adf
Loading
Loading