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
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -596,7 +596,7 @@
"// illustrer la CONDITION D'OPTIMALITE de Dijkstra — pour chaque sommet v, son predecesseur\n",
"// est l'unique voisin u tel que GetDistance(u) + poids(u, v) = GetDistance(v). C'est le seul\n",
"// site de la serie a rester manuel ; les autres utilisent l'observateur canonique\n",
"// VertexPredecessorRecorderObserver (cell 17 de ce notebook, Search-02b-NetworkX-Csharp cell 14, Search-3\n",
"// VertexPredecessorRecorderObserver (cell 17 de ce notebook, Search-02b-NetworkX-CSharp cell 14, Search-3\n",
"// cell 16, Search-2 cell 38), qui encapsule exactement cette condition.\n",
"\n",
"var dijkstra = new DijkstraShortestPathAlgorithm<string, STaggedEdge<string, double>>(\n",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -245,7 +245,7 @@
],
"source": [
"// Imports + structures communes (Node, Problem, GraphProblem, SearchResult).\n",
"// Identiques au jumeau Search-02-Csharp pour garder la serie coherente.\n",
"// Identiques au jumeau Search-02-CSharp pour garder la serie coherente.\n",
"using System;\n",
"using System.Collections.Generic;\n",
"using System.Diagnostics;\n",
Expand Down Expand Up @@ -469,7 +469,7 @@
}
],
"source": [
"// Graphe des villes francaises (13 villes, reutilise du jumeau Search-02-Csharp)\n",
"// Graphe des villes francaises (13 villes, reutilise du jumeau Search-02-CSharp)\n",
"// + coordonnees lat/lon + heuristique Haversine.\n",
"var franceGraph = new Dictionary<string, Dictionary<string, double>> {\n",
" [\"Bordeaux\"] = new() { [\"Paris\"] = 585, [\"Toulouse\"] = 245, [\"Nantes\"] = 350 },\n",
Expand Down Expand Up @@ -1866,7 +1866,7 @@
}
],
"source": [
"// Le piège Greedy sur Rennes -> Paris (miroir du piège BFS Paris->Rennes du Search-02-Csharp, See #5872).\n",
"// Le piège Greedy sur Rennes -> Paris (miroir du piège BFS Paris->Rennes du Search-02-CSharp, See #5872).\n",
"var problemRP = new GraphProblem(\"Rennes\", \"Paris\", franceGraph);\n",
"Func<string, double> hRennesParis = MakeH(\"Paris\");\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -912,7 +912,7 @@
],
"source": [
"// Visualisation ASCII du graphe de contraintes\n",
"// (les notebooks C# du projet n utilisent pas matplotlib -- le CSP-7-Soft-Csharp\n",
"// (les notebooks C# du projet n utilisent pas matplotlib -- le CSP-7-Soft-CSharp\n",
"// montre que les viz se font en matrice couleur ou en texte structure)\n",
"// Orientation AIMA-compatible : NT au nord, SA au centre (hub degré 5),\n",
"// WA à l ouest, Q au nord-est, NSW à l est, V au sud-est (sous NSW),\n",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -431,7 +431,7 @@
}
],
"source": [
"// Definition de la classe CSP en C# (meme structure que CSP-1-Fundamentals-Csharp.ipynb)\n",
"// Definition de la classe CSP en C# (meme structure que CSP-1-Fundamentals-CSharp.ipynb)\n",
"using System;\n",
"using System.Collections.Generic;\n",
"using System.Linq;\n",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -194,7 +194,7 @@
}
],
"source": [
"// Configuration du répertoire de travail (pattern FindCspDir, copié depuis CSP-4-Scheduling-Csharp.ipynb)\n",
"// Configuration du répertoire de travail (pattern FindCspDir, copié depuis CSP-4-Scheduling-CSharp.ipynb)\n",
"using System;\n",
"using System.IO;\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -267,7 +267,7 @@
}
],
"source": [
"// Configuration IKVM 8.15.0 pour Choco-solver (identique à CSP-4-Scheduling-Csharp.ipynb, cf. #4711)\n",
"// Configuration IKVM 8.15.0 pour Choco-solver (identique à CSP-4-Scheduling-CSharp.ipynb, cf. #4711)\n",
"#r \"nuget: IKVM, 8.15.0\"\n",
"#r \"nuget: IKVM.Image, 8.15.0\"\n",
"\n",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"cells": [
{
Expand Down Expand Up @@ -1007,7 +1007,7 @@
],
"source": [
"// Visualisation ScottPlot 5.x : barres du temps par configuration\n",
"// Pattern valide c189 CSP-2-Consistency-Csharp : display(HTML(plt.GetPngHtml(700, 400)))\n",
"// Pattern valide c189 CSP-2-Consistency-CSharp : display(HTML(plt.GetPngHtml(700, 400)))\n",
"#r \"nuget: ScottPlot, 5.0.55\"\n",
"using ScottPlot;\n",
"using Microsoft.DotNet.Interactive.Formatting;\n",
Expand Down
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:
- 'Re-baseline 2026-10-05 (myia-po-2026:CoursIA, #19245 -> #19259) : edition unilaterale cote C# seul, COMMENTAIRES UNIQUEMENT -- la casse canonique `-CSharp` des noms de carnets jumeaux etait perdue dans les commentaires de code (`CSP-7-Soft-Csharp` -> `CSP-7-Soft-CSharp` (cellule 11)). Aucune ligne executable touchee, aucun `execution_count` ni sortie modifie ; le cote Python est byte-identique a main. Parite semantique inchangee, seule la reference textuelle au jumeau redevient exacte : c''est une attestation de parite (le blob SHA du C# se deplace), pas une reparation. Re-baseline du csharp_sha.'
- 'Re-baseline 2026-09-30 (myia-po-2025:CoursIA, #18543 relais prose-counts #17636) : edition unilaterale cote C# seul, markdown uniquement -- une ligne du tableau comparatif manuel/Choco derivait de compteurs d''artefact en prose (lignes de modelisation ~50 vs ~10) remplaces par des descripteurs qualitatifs (plus verbeuse / plus concise). Aucune cellule code, sortie ou execution_count touchee (batterie byte-surgical : sources code byte-identiques). Statut epistemique et comparatif de fond inchanges ; parite tenue ; re-baseline du csharp_sha.'
- "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.'
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-10-05'
by: myia-po-2026:CoursIA
python_sha: 7edc121f78a9a487a202a2e5f49eaec43a245445
csharp_sha: 11ded4f0c14f37d453a3883521c1b5835abdfd05
content_python_sha: a76e4ad934031a4b7f24883b9c889c782f14bb0d17e7e031283e5e438c8ae826
content_csharp_sha: ce0635635961bcc2443f61e3e6afc18ee6125f7630850af1e0f4e59f1fc0cbbf
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:
- 'Re-baseline 2026-10-05 (myia-po-2026:CoursIA, #19245 -> #19259) : edition unilaterale cote C# seul, COMMENTAIRES UNIQUEMENT -- la casse canonique `-CSharp` des noms de carnets jumeaux etait perdue dans les commentaires de code (`CSP-1-Fundamentals-Csharp.ipynb` -> `CSP-1-Fundamentals-CSharp.ipynb` (cellule 6)). Aucune ligne executable touchee, aucun `execution_count` ni sortie modifie ; le cote Python est byte-identique a main. Parite semantique inchangee, seule la reference textuelle au jumeau redevient exacte : c''est une attestation de parite (le blob SHA du C# se deplace), pas une reparation. Re-baseline du csharp_sha.'
- "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."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-10-05'
by: myia-po-2026:CoursIA
python_sha: fe54d361efc1a2b747cc2d4614502957fb47b0f3
csharp_sha: aa105d97d8bd3f7e8dcd50c528a9c0d8f46a7a1b
content_python_sha: 6028275fae847c7e0525f6b14a9bf42ab07fbc2d291056e7e6f000fc1c807f5e
content_csharp_sha: c06a73f50e7475e218f59477be0d786df4c593a1b5eca5be448e740ba6f1f67f
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:
- 'Re-baseline 2026-10-05 (myia-po-2026:CoursIA, #19245 -> #19259) : edition unilaterale cote C# seul, COMMENTAIRES UNIQUEMENT -- la casse canonique `-CSharp` des noms de carnets jumeaux etait perdue dans les commentaires de code (`CSP-4-Scheduling-Csharp.ipynb` -> `CSP-4-Scheduling-CSharp.ipynb` (cellule 1)). Aucune ligne executable touchee, aucun `execution_count` ni sortie modifie ; le cote Python est byte-identique a main. Parite semantique inchangee, seule la reference textuelle au jumeau redevient exacte : c''est une attestation de parite (le blob SHA du C# se deplace), pas une reparation. Re-baseline du csharp_sha.'
- "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)."
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
date: '2026-10-05'
by: myia-po-2026:CoursIA
python_sha: 3b3c1bed277c5b013d59757b24ad950f0f1b9ccf
csharp_sha: 25f8633176e24bd41ac2cea6521c2604613c5a99
content_python_sha: 2b422e9b601d4daf79a6f0f14c5c332b549be13bd9d3ccc9aa9a04612a4abd48
content_csharp_sha: b82bdadc27f7b0a5d3a185599bc1476bd29d5b372b5b6a32bf979aa11192d172
Loading
Loading