diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-20-SudokuBenchmark-Python.ipynb b/MyIA.AI.Notebooks/Search/Applications/CSP/App-20-SudokuBenchmark-Python.ipynb
index c060aca55c..be1db1d06e 100644
--- a/MyIA.AI.Notebooks/Search/Applications/CSP/App-20-SudokuBenchmark-Python.ipynb
+++ b/MyIA.AI.Notebooks/Search/Applications/CSP/App-20-SudokuBenchmark-Python.ipynb
@@ -16,7 +16,7 @@
"source": [
"# App-20 — Benchmark comparatif des solveurs Sudoku Python\n",
"\n",
- "[← Recherche](../README.md) | [↑ Search/Applications](../README.md)\n",
+ "[← Recherche](../README.md) | [↑ Search/Applications](../README.md) | [App-21 VoiceLeading >>](App-21-VoiceLeading.ipynb)\n",
"\n",
"Quatre solveurs, un même problème NP-complet, des compromis différents. Ce notebook deplace le curseur de la serie *Search* : on ne presente plus un solveur a la fois, on les **fait courir ensemble** sur un banc commun (Easy / Medium / Hard) pour faire apparaitre ce que chaque algorithme optimise reellement.\n",
"\n",
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb b/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb
index 4242e2b985..1c1d11c716 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb
+++ b/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb
@@ -16,7 +16,7 @@
"source": [
"# App-22 — Sélection empirique d'algorithmes : trois jeux, 13 familles conceptuelles, 14 étiquettes mesurées\n",
"\n",
- "[← Search](../../README.md) | [↑ Applications](../README.md) | [<< App-21 VoiceLeading](../CSP/App-21-VoiceLeading.ipynb)\n",
+ "[← Search](../../README.md) | [↑ Applications](../README.md) | [<< App-21 VoiceLeading](../CSP/App-21-VoiceLeading.ipynb) | [App-23 PRESENT >>](App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb)\n",
"\n",
"## Hommage à un travail étudiant\n",
"\n",
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/difficulty_probe.csv b/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/difficulty_probe.csv
deleted file mode 100644
index 075ec7feb7..0000000000
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/difficulty_probe.csv
+++ /dev/null
@@ -1,25 +0,0 @@
-densite,n_modules,seed,n_burns,separations,couloirs,horizon,pond_status,pond_mk,pond_fuel,pond_wall_s,2p_status,2p_mk,2p_fuel,2p_wall_s,2p_mk_certifie,2p_certifie,audit_pond,audit_2p
-0.25,16,11,32,25,6,448,OPTIMAL,121,1791,0.16,OPTIMAL/OPTIMAL,121.0,1791.0,0.28,True,True,True,True
-0.25,16,22,32,24,6,448,OPTIMAL,118,1793,0.13,OPTIMAL/OPTIMAL,118.0,1793.0,0.22,True,True,True,True
-0.25,16,33,32,32,6,448,OPTIMAL,121,1897,0.13,OPTIMAL/OPTIMAL,121.0,1897.0,0.23,True,True,True,True
-0.25,32,11,64,109,11,800,OPTIMAL,226,3850,0.63,OPTIMAL/OPTIMAL,226.0,3850.0,1.09,True,True,True,True
-0.25,32,22,64,124,11,800,OPTIMAL,202,3909,0.3,OPTIMAL/OPTIMAL,202.0,3909.0,0.75,True,True,True,True
-0.25,32,33,64,116,11,800,OPTIMAL,204,3753,0.33,OPTIMAL/OPTIMAL,204.0,3753.0,0.62,True,True,True,True
-0.25,64,11,128,497,22,1504,OPTIMAL,382,7346,0.9,OPTIMAL/OPTIMAL,382.0,7346.0,1.94,True,True,True,True
-0.25,64,22,128,490,22,1504,OPTIMAL,383,7285,0.93,OPTIMAL/OPTIMAL,383.0,7285.0,1.54,True,True,True,True
-0.25,64,33,128,514,22,1504,FEASIBLE,386,7456,10.05,OPTIMAL/FEASIBLE,386.0,7450.0,11.28,True,False,True,True
-0.25,90,11,180,975,30,2076,OPTIMAL,518,10289,1.67,OPTIMAL/OPTIMAL,518.0,10289.0,3.29,True,True,True,True
-0.25,90,22,180,972,30,2076,OPTIMAL,528,10548,1.6,OPTIMAL/OPTIMAL,528.0,10548.0,4.54,True,True,True,True
-0.25,90,33,180,993,30,2076,OPTIMAL,526,10445,1.85,OPTIMAL/OPTIMAL,526.0,10445.0,4.13,True,True,True,True
-0.6,16,11,32,63,6,448,OPTIMAL,129,1816,2.52,OPTIMAL/OPTIMAL,129.0,1816.0,2.16,True,True,True,True
-0.6,16,22,32,65,6,448,OPTIMAL,118,1795,0.19,OPTIMAL/OPTIMAL,118.0,1795.0,0.35,True,True,True,True
-0.6,16,33,32,76,6,448,OPTIMAL,122,1900,0.16,OPTIMAL/OPTIMAL,122.0,1900.0,0.35,True,True,True,True
-0.6,32,11,64,285,11,800,FEASIBLE,245,3867,10.02,FEASIBLE/UNKNOWN,,,20.06,False,False,True,
-0.6,32,22,64,274,11,800,FEASIBLE,202,3930,10.04,OPTIMAL/FEASIBLE,202.0,3930.0,10.42,True,False,True,True
-0.6,32,33,64,268,11,800,OPTIMAL,204,3776,0.44,OPTIMAL/OPTIMAL,204.0,3776.0,0.83,True,True,True,True
-0.6,64,11,128,1190,22,1504,OPTIMAL,384,7367,1.66,OPTIMAL/OPTIMAL,384.0,7367.0,4.2,True,True,True,True
-0.6,64,22,128,1184,22,1504,FEASIBLE,383,7320,10.02,OPTIMAL/FEASIBLE,383.0,7323.0,11.76,True,False,True,True
-0.6,64,33,128,1170,22,1504,FEASIBLE,433,7335,10.03,FEASIBLE/FEASIBLE,401.0,7433.0,20.06,False,False,True,True
-0.6,90,11,180,2362,30,2076,FEASIBLE,521,10494,10.05,OPTIMAL/FEASIBLE,521.0,10519.0,13.14,True,False,True,True
-0.6,90,22,180,2351,30,2076,OPTIMAL,531,10455,4.11,OPTIMAL/OPTIMAL,531.0,10455.0,10.83,True,True,True,True
-0.6,90,33,180,2336,30,2076,OPTIMAL,529,10453,4.23,OPTIMAL/OPTIMAL,529.0,10453.0,7.07,True,True,True,True
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/grid_runs.csv b/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/grid_runs.csv
deleted file mode 100644
index 69a7ad16bd..0000000000
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/grid_runs.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-instance,n_modules,seed,n_burns,horizon,corridors,separations,budget,digest,pond_status,pond_mk,pond_fuel,pond_wall_s,pond_conflicts,pond_domaine_objectif,2p_status,2p_mk,2p_fuel,2p_wall_s,2p_certifie,disp_status,disp_mk,disp_fuel,disp_wall_s,audit_pond,audit_2p,audit_disp
-coursia-orbital-m4-s11,4,11,8,184,2,0,464,b2ae490d34632341,OPTIMAL,51,408,0.0306,0,86024,OPTIMAL/OPTIMAL,51,408,0.0653,True,FAISABLE,52,433,0.0002,True,True,True
-coursia-orbital-m4-s22,4,22,8,184,2,1,478,076b3bd96a209334,OPTIMAL,56,442,0.0287,3,88614,OPTIMAL/OPTIMAL,56,442,0.0259,True,FAISABLE,56,448,0.0001,True,True,True
-coursia-orbital-m4-s33,4,33,8,184,2,1,475,4a01cc08497d2f0e,OPTIMAL,37,421,0.0296,1,88059,OPTIMAL/OPTIMAL,37,421,0.039,True,FAISABLE,41,444,0.0001,True,True,True
-coursia-orbital-m4-s44,4,44,8,184,2,0,462,63929a1ca6a9e931,OPTIMAL,59,406,0.0292,0,85654,OPTIMAL/OPTIMAL,59,406,0.0515,True,FAISABLE,59,429,0.0001,True,True,True
-coursia-orbital-m4-s55,4,55,8,184,2,2,461,8e3fb414ccb77fbd,OPTIMAL,56,390,0.0281,0,85469,OPTIMAL/OPTIMAL,56,390,0.0418,True,FAISABLE,57,428,0.0001,True,True,True
-coursia-orbital-m6-s11,6,11,12,228,2,4,818,9561a6bad9f3485d,OPTIMAL,69,789,0.0592,1,187550,OPTIMAL/OPTIMAL,69,789,0.1128,True,FAISABLE,75,739,0.0002,True,True,True
-coursia-orbital-m6-s22,6,22,12,228,2,3,843,80cfbce022aff265,OPTIMAL,68,809,0.0719,5,193275,OPTIMAL/OPTIMAL,68,809,0.0881,True,FAISABLE,83,842,0.0002,True,True,True
-coursia-orbital-m6-s33,6,33,12,228,2,2,836,0da7820663568a8d,OPTIMAL,71,810,0.0568,0,191672,OPTIMAL/OPTIMAL,71,810,0.0705,True,FAISABLE,88,836,0.0002,True,True,True
-coursia-orbital-m6-s44,6,44,12,228,2,0,825,5d0af050f1f29418,OPTIMAL,72,821,0.0441,0,189153,OPTIMAL/OPTIMAL,72,821,0.1191,True,FAISABLE,88,825,0.0002,True,True,True
-coursia-orbital-m6-s55,6,55,12,228,2,1,816,6adc1e6e279ccddb,OPTIMAL,61,779,0.0417,0,187092,OPTIMAL/OPTIMAL,61,779,0.0869,True,FAISABLE,66,816,0.0002,True,True,True
-coursia-orbital-m8-s11,8,11,16,272,3,5,1208,29361dc8b6b78a6c,OPTIMAL,74,1138,0.0656,3,330056,OPTIMAL/OPTIMAL,74,1138,0.116,True,FAISABLE,76,1187,0.0004,True,True,True
-coursia-orbital-m8-s22,8,22,16,272,3,3,1231,3c2fd6cd73e7e5a5,OPTIMAL,89,1136,0.0747,0,336335,OPTIMAL/OPTIMAL,89,1136,0.1472,True,FAISABLE,92,1209,0.0003,True,True,True
-coursia-orbital-m8-s33,8,33,16,272,3,6,1228,22db3908f076aefd,OPTIMAL,66,1021,0.0721,0,335516,OPTIMAL/OPTIMAL,66,1021,0.0861,True,FAISABLE,66,1208,0.0002,True,True,True
-coursia-orbital-m8-s44,8,44,16,272,3,8,1214,42e8790ce236a287,OPTIMAL,66,1036,0.0634,0,331694,OPTIMAL/OPTIMAL,66,1036,0.1017,True,FAISABLE,69,1192,0.0003,True,True,True
-coursia-orbital-m8-s55,8,55,16,272,3,5,1203,33df73e03efc0780,OPTIMAL,77,1113,0.0706,3,328691,OPTIMAL/OPTIMAL,77,1113,0.1505,True,FAISABLE,86,1179,0.0003,True,True,True
-coursia-orbital-m10-s11,10,11,20,316,4,9,1291,da1baffdf3d2000a,OPTIMAL,82,1075,0.0727,0,409563,OPTIMAL/OPTIMAL,82,1075,0.1528,True,FAISABLE,82,1285,0.0013,True,True,True
-coursia-orbital-m10-s22,10,22,20,316,4,12,1318,e5a1544da80e6863,OPTIMAL,87,1138,0.1066,0,418122,OPTIMAL/OPTIMAL,87,1138,0.176,True,FAISABLE,117,1318,0.0006,True,True,True
-coursia-orbital-m10-s33,10,33,20,316,4,6,1305,22a14292de403280,OPTIMAL,89,1179,0.0717,0,414001,OPTIMAL/OPTIMAL,89,1179,0.1398,True,FAISABLE,93,1297,0.0003,True,True,True
-coursia-orbital-m10-s44,10,44,20,316,4,11,1302,f051cd599c24471a,OPTIMAL,99,1109,0.0881,1,413050,OPTIMAL/OPTIMAL,99,1109,0.1481,True,FAISABLE,118,1301,0.0005,True,True,True
-coursia-orbital-m10-s55,10,55,20,316,4,9,1297,57e93d6ec2629897,OPTIMAL,88,1123,0.0579,0,411465,OPTIMAL/OPTIMAL,88,1123,0.1309,True,FAISABLE,99,1287,0.0004,True,True,True
-coursia-orbital-m12-s11,12,11,24,360,4,12,1657,d403e0e32448c7c0,OPTIMAL,88,1477,0.0885,0,598537,OPTIMAL/OPTIMAL,88,1477,0.1947,True,FAISABLE,103,1657,0.0007,True,True,True
-coursia-orbital-m12-s22,12,22,24,360,4,7,1673,5a92c1051bba9e3b,OPTIMAL,95,1499,0.1018,0,604313,OPTIMAL/OPTIMAL,95,1499,0.1666,True,FAISABLE,102,1673,0.0005,True,True,True
-coursia-orbital-m12-s33,12,33,24,360,4,15,1661,6dbd5ce52666769a,OPTIMAL,114,1413,0.0916,21,599981,OPTIMAL/OPTIMAL,114,1413,0.1542,True,FAISABLE,126,1661,0.0008,True,True,True
-coursia-orbital-m12-s44,12,44,24,360,4,15,1670,fe770305c6fb5715,OPTIMAL,96,1386,0.0977,19,603230,OPTIMAL/OPTIMAL,96,1386,0.1549,True,FAISABLE,98,1669,0.0005,True,True,True
-coursia-orbital-m12-s55,12,55,24,360,4,14,1658,aab6978371a29600,OPTIMAL,97,1391,0.0736,5,598898,OPTIMAL/OPTIMAL,97,1391,0.1828,True,FAISABLE,100,1654,0.0005,True,True,True
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/temporal_regimes.csv b/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/temporal_regimes.csv
deleted file mode 100644
index 1de960e14d..0000000000
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/temporal_regimes.csv
+++ /dev/null
@@ -1,217 +0,0 @@
-jeu,graine,lags,regime,statut,makespan,secondes,temoin
--3,0,6,T,circuit positif,,0.0,8-10-8
--3,1,12,T,circuit positif,,0.0,10-11-10
--3,2,8,T,circuit positif,,0.0,10-13-10
--3,3,12,T,circuit positif,,0.0,7-10-7
--3,4,13,T,circuit positif,,0.0,10-11-10
--3,5,13,T,circuit positif,,0.0,10-13-10
--3,6,13,T,circuit positif,,0.0,11-12-11
--3,7,13,T,circuit positif,,0.0,6-11-6
--3,8,17,T,circuit positif,,0.0,8-12-8
--3,9,19,T,circuit positif,,0.0,11-13-11
--3,10,13,T,circuit positif,,0.0,8-9-8
--3,11,21,T,circuit positif,,0.0,11-13-11
--3,12,17,T,circuit positif,,0.0,12-13-11-12
--3,13,15,T,circuit positif,,0.0,7-8-7
--3,14,11,T,circuit positif,,0.0,9-11-9
--3,15,14,T,circuit positif,,0.0,9-11-9
--3,16,21,T,circuit positif,,0.0,10-9-10
--3,17,12,T,circuit positif,,0.0,7-13-7
--3,18,14,T,circuit positif,,0.0,10-12-10
--3,19,17,T,circuit positif,,0.0,8-9-8
--3,20,18,T,circuit positif,,0.0,8-6-8
--3,21,13,T,circuit positif,,0.0,8-12-8
--3,22,10,T,circuit positif,,0.0,10-13-10
--3,23,13,T,circuit positif,,0.0,8-11-8
--2,0,6,T,circuit positif,,0.0,8-10-8
--2,1,12,T,circuit positif,,0.0,10-11-10
--2,2,8,T,circuit positif,,0.0,10-13-10
--2,3,12,T,circuit positif,,0.0,7-10-7
--2,4,13,T,circuit positif,,0.0,10-11-10
--2,5,13,T,circuit positif,,0.0,10-13-10
--2,6,13,T,circuit positif,,0.0,11-12-11
--2,7,13,T,circuit positif,,0.0,6-11-6
--2,8,17,T,circuit positif,,0.0,8-12-8
--2,9,19,T,circuit positif,,0.0,11-13-11
--2,10,13,T,circuit positif,,0.0,8-9-8
--2,11,21,T,circuit positif,,0.0,11-13-11
--2,12,17,T,circuit positif,,0.0,12-13-11-12
--2,13,15,T,circuit positif,,0.0,7-8-7
--2,14,11,T,circuit positif,,0.0,9-11-9
--2,15,14,T,circuit positif,,0.0,9-11-9
--2,16,21,T,circuit positif,,0.0,10-9-10
--2,17,12,T,circuit positif,,0.0,7-13-7
--2,18,14,T,circuit positif,,0.0,10-12-10
--2,19,17,T,circuit positif,,0.0,8-9-8
--2,20,18,T,circuit positif,,0.0,8-6-8
--2,21,13,T,circuit positif,,0.0,8-12-8
--2,22,10,T,circuit positif,,0.0,10-13-10
--2,23,13,T,circuit positif,,0.0,8-11-8
--1,0,6,T,circuit positif,,0.0,8-10-8
--1,1,12,T,circuit positif,,0.0,10-11-10
--1,2,8,T,circuit positif,,0.0,10-13-10
--1,3,12,T,circuit positif,,0.0,7-10-7
--1,4,13,T,circuit positif,,0.0,10-11-10
--1,5,13,T,circuit positif,,0.0,10-13-10
--1,6,13,T,circuit positif,,0.0,11-12-11
--1,7,13,T,circuit positif,,0.0,6-11-6
--1,8,17,T,circuit positif,,0.0,8-12-8
--1,9,19,T,circuit positif,,0.0,11-13-11
--1,10,13,T,circuit positif,,0.0,8-9-8
--1,11,21,T,circuit positif,,0.0,11-13-11
--1,12,17,T,circuit positif,,0.0,12-13-11-12
--1,13,15,T,circuit positif,,0.0,7-8-7
--1,14,11,T,circuit positif,,0.0,9-11-9
--1,15,14,T,circuit positif,,0.0,9-11-9
--1,16,21,T,circuit positif,,0.0,10-9-10
--1,17,12,T,circuit positif,,0.0,7-13-7
--1,18,14,T,circuit positif,,0.0,10-12-10
--1,19,17,T,circuit positif,,0.0,8-9-8
--1,20,18,T,circuit positif,,0.0,8-6-8
--1,21,13,T,circuit positif,,0.0,8-12-8
--1,22,10,T,circuit positif,,0.0,10-13-10
--1,23,13,T,circuit positif,,0.0,8-11-8
-0,0,6,R,INFEASIBLE,,0.005756200000178069,
-0,1,12,R,INFEASIBLE,,0.0018750000017462298,
-0,2,8,R,INFEASIBLE,,0.0025984999956563115,
-0,3,12,R,INFEASIBLE,,0.0020088000019313768,
-0,4,13,R,INFEASIBLE,,0.0019746999969356693,
-0,5,13,R,INFEASIBLE,,0.002961999998660758,
-0,6,13,R,INFEASIBLE,,0.0019326999972690828,
-0,7,13,R,INFEASIBLE,,0.0020036999994772486,
-0,8,17,R,INFEASIBLE,,0.0023068000009516254,
-0,9,19,R,INFEASIBLE,,0.027947900001890957,
-0,10,13,R,INFEASIBLE,,0.0024028999978327192,
-0,11,21,R,INFEASIBLE,,0.0023496000067098066,
-0,12,17,R,INFEASIBLE,,0.0025528000041958876,
-0,13,15,R,INFEASIBLE,,0.001828899999964051,
-0,14,11,R,INFEASIBLE,,0.0019016000005649403,
-0,15,14,R,INFEASIBLE,,0.0025348999988636933,
-0,16,21,R,INFEASIBLE,,0.0018581999975140207,
-0,17,12,R,INFEASIBLE,,0.0028708999961963855,
-0,18,14,R,INFEASIBLE,,0.0020457000064197928,
-0,19,17,R,INFEASIBLE,,0.0017398999989381991,
-0,20,18,R,INFEASIBLE,,0.0018761999963317066,
-0,21,13,R,INFEASIBLE,,0.0018140999964089133,
-0,22,10,R,INFEASIBLE,,0.0118746000007377,
-0,23,13,R,INFEASIBLE,,0.002428799998597242,
-1,0,6,R,INFEASIBLE,,0.002558699998189695,
-1,1,12,R,INFEASIBLE,,0.002041000007011462,
-1,2,8,R,INFEASIBLE,,0.02168349999556085,
-1,3,12,R,INFEASIBLE,,0.0023234999971464276,
-1,4,13,R,INFEASIBLE,,0.001920599999721162,
-1,5,13,R,INFEASIBLE,,0.10110779999376973,
-1,6,13,R,INFEASIBLE,,0.002474200002325233,
-1,7,13,F,OPTIMAL,26.0,0.011092399996414315,
-1,8,17,R,INFEASIBLE,,0.002284500005771406,
-1,9,19,R,INFEASIBLE,,0.028522599997813813,
-1,10,13,R,INFEASIBLE,,0.0024081000010482967,
-1,11,21,R,INFEASIBLE,,0.0025265000003855675,
-1,12,17,R,INFEASIBLE,,0.002857600004062988,
-1,13,15,R,INFEASIBLE,,0.0018998000014107674,
-1,14,11,R,INFEASIBLE,,0.001964100003533531,
-1,15,14,R,INFEASIBLE,,0.014610099999117665,
-1,16,21,R,INFEASIBLE,,0.0022946000026422553,
-1,17,12,R,INFEASIBLE,,0.0019576000049710274,
-1,18,14,R,INFEASIBLE,,0.002059999998891726,
-1,19,17,R,INFEASIBLE,,0.0027245000019320287,
-1,20,18,R,INFEASIBLE,,0.0024611999979242682,
-1,21,13,R,INFEASIBLE,,0.0026408999983686954,
-1,22,10,R,INFEASIBLE,,0.1192501000041375,
-1,23,13,R,INFEASIBLE,,0.0048386999987997115,
-2,0,6,F,OPTIMAL,41.0,0.021408000000519678,
-2,1,12,R,INFEASIBLE,,0.014760700003535021,
-2,2,8,R,INFEASIBLE,,0.029637599996931385,
-2,3,12,R,INFEASIBLE,,0.002149600004486274,
-2,4,13,R,INFEASIBLE,,0.0022405999989132397,
-2,5,13,R,INFEASIBLE,,0.11929300000338117,
-2,6,13,R,INFEASIBLE,,0.0029736999931628816,
-2,7,13,F,OPTIMAL,26.0,0.01097430000663735,
-2,8,17,R,INFEASIBLE,,0.0023790000050212257,
-2,9,19,R,INFEASIBLE,,0.02683130000514211,
-2,10,13,R,INFEASIBLE,,0.0034607999987201765,
-2,11,21,R,INFEASIBLE,,0.0025127000044449233,
-2,12,17,R,INFEASIBLE,,0.021775799999886658,
-2,13,15,R,INFEASIBLE,,0.003493500000331551,
-2,14,11,R,INFEASIBLE,,0.0037895999994361773,
-2,15,14,R,INFEASIBLE,,0.035879700000805315,
-2,16,21,R,INFEASIBLE,,0.00252649999310961,
-2,17,12,R,INFEASIBLE,,0.002001399996515829,
-2,18,14,R,INFEASIBLE,,0.001990299999306444,
-2,19,17,R,INFEASIBLE,,0.002390699999523349,
-2,20,18,R,INFEASIBLE,,0.0026041000019176863,
-2,21,13,R,INFEASIBLE,,0.002389700006460771,
-2,22,10,R,INFEASIBLE,,0.0275028999967617,
-2,23,13,R,INFEASIBLE,,0.004194399996777065,
-3,0,6,F,OPTIMAL,41.0,0.027039699998567812,
-3,1,12,R,INFEASIBLE,,0.010736700001871213,
-3,2,8,R,INFEASIBLE,,0.031082000001333654,
-3,3,12,R,INFEASIBLE,,0.0043341999989934266,
-3,4,13,R,INFEASIBLE,,0.021969699999317527,
-3,5,13,R,INFEASIBLE,,0.02840680000372231,
-3,6,13,R,INFEASIBLE,,0.002867900002456736,
-3,7,13,F,OPTIMAL,26.0,0.027363699999114033,
-3,8,17,R,INFEASIBLE,,0.00440589999925578,
-3,9,19,R,INFEASIBLE,,0.03713129999960074,
-3,10,13,R,INFEASIBLE,,0.126753299999109,
-3,11,21,R,INFEASIBLE,,0.0026270000016666017,
-3,12,17,R,INFEASIBLE,,0.024656399997184053,
-3,13,15,R,INFEASIBLE,,0.002413700000033714,
-3,14,11,R,INFEASIBLE,,0.003635499997471925,
-3,15,14,R,INFEASIBLE,,0.03802200000063749,
-3,16,21,R,INFEASIBLE,,0.005817199999000877,
-3,17,12,R,INFEASIBLE,,0.002145499995094724,
-3,18,14,R,INFEASIBLE,,0.004743700003018603,
-3,19,17,R,INFEASIBLE,,0.02599720000580419,
-3,20,18,R,INFEASIBLE,,0.00404780000098981,
-3,21,13,R,INFEASIBLE,,0.004535499996563885,
-3,22,10,R,INFEASIBLE,,0.14341119999880902,
-3,23,13,R,INFEASIBLE,,0.0036259000044083223,
-5,0,6,F,OPTIMAL,41.0,0.025309000004199333,
-5,1,12,R,INFEASIBLE,,0.044013799997628666,
-5,2,8,F,OPTIMAL,34.0,0.0240884000013466,
-5,3,12,R,INFEASIBLE,,0.004531999999016989,
-5,4,13,R,INFEASIBLE,,0.039392699996824376,
-5,5,13,R,INFEASIBLE,,0.02345470000000205,
-5,6,13,F,OPTIMAL,37.0,0.030414000000746455,
-5,7,13,F,OPTIMAL,25.0,0.029997400000866037,
-5,8,17,R,INFEASIBLE,,0.116903000001912,
-5,9,19,R,INFEASIBLE,,0.058199699997203425,
-5,10,13,R,INFEASIBLE,,0.043841700004122686,
-5,11,21,R,INFEASIBLE,,0.0036076000033062883,
-5,12,17,R,INFEASIBLE,,0.11392080000223359,
-5,13,15,R,INFEASIBLE,,0.004463099998247344,
-5,14,11,R,INFEASIBLE,,0.10234910000144737,
-5,15,14,R,INFEASIBLE,,0.15551240000058897,
-5,16,21,R,INFEASIBLE,,0.06076640000537736,
-5,17,12,R,INFEASIBLE,,0.004857299994910136,
-5,18,14,R,INFEASIBLE,,0.0366238999995403,
-5,19,17,F,OPTIMAL,35.0,0.03340100000059465,
-5,20,18,R,INFEASIBLE,,0.004812399994989391,
-5,21,13,R,INFEASIBLE,,0.12694790000387002,
-5,22,10,R,INFEASIBLE,,0.14224620000459254,
-5,23,13,R,INFEASIBLE,,0.031799900003534276,
-8,0,6,F,OPTIMAL,40.0,0.04445340000529541,
-8,1,12,F,OPTIMAL,36.0,0.014769700006581843,
-8,2,8,F,OPTIMAL,34.0,0.02905319999990752,
-8,3,12,R,INFEASIBLE,,0.02888610000081826,
-8,4,13,F,OPTIMAL,32.0,0.028830099996412173,
-8,5,13,F,OPTIMAL,42.0,0.01556459999846993,
-8,6,13,F,OPTIMAL,33.0,0.03259570000227541,
-8,7,13,F,OPTIMAL,23.0,0.029040000001259614,
-8,8,17,F,OPTIMAL,32.0,0.028464600000006612,
-8,9,19,F,OPTIMAL,34.0,0.029020399997534696,
-8,10,13,F,OPTIMAL,36.0,0.028652300003159326,
-8,11,21,R,INFEASIBLE,,0.005606699996860698,
-8,12,17,F,OPTIMAL,40.0,0.021904799999902025,
-8,13,15,R,INFEASIBLE,,0.04480229999899166,
-8,14,11,F,OPTIMAL,35.0,0.02869759999884991,
-8,15,14,F,OPTIMAL,34.0,0.02973539999948116,
-8,16,21,F,OPTIMAL,41.0,0.014638100001320709,
-8,17,12,F,OPTIMAL,35.0,0.016342399998393375,
-8,18,14,F,OPTIMAL,38.0,0.0314555000004475,
-8,19,17,F,OPTIMAL,31.0,0.02641109999967739,
-8,20,18,F,OPTIMAL,37.0,0.01423149999754969,
-8,21,13,R,INFEASIBLE,,0.06433990000368794,
-8,22,10,F,OPTIMAL,32.0,0.027149200002895668,
-8,23,13,F,OPTIMAL,41.0,0.03013430000282824,
diff --git a/MyIA.AI.Notebooks/Search/Applications/README.md b/MyIA.AI.Notebooks/Search/Applications/README.md
index 20f9aced52..a4bf260ae4 100644
--- a/MyIA.AI.Notebooks/Search/Applications/README.md
+++ b/MyIA.AI.Notebooks/Search/Applications/README.md
@@ -1,8 +1,8 @@
# Search - Applications
-C'est ici que la série Search se confronte au réel. Les 59 notebooks d'application, pour la plupart adaptés de projets étudiants, prennent les algorithmes des Parties 1 et 2 et les mettent face à des problèmes qui ne se laissent pas faire : planifier les gardes d'un service hospitalier, ordonnancer un atelier, construire un calendrier sportif équitable, router une flotte de véhicules. Trois catégories les organisent — **Search pur** (jeux combinatoires), **CSP** (satisfaction de contraintes) et **Hybride** (combinaisons de solveurs, modèles exacts et métaheuristiques) — et la plupart sont autonomes, avec des pointeurs vers les prérequis pertinents. À cela s'ajoutent les **jumeaux C#** (App-1b, App-2b, App-3b, App-4b, App-5b, App-6-CSharp, App-7b, App-8-CSharp, App-9b, App-10b, App-11b, App-13b, App-14-CSharp, App-14c, App-15b, App-16-CSharp, App-17b, App-18b, App-19-CSharp, App-20b) qui déroulent les mêmes algorithmes *from-scratch* en .NET, en complément des versions Python qui invoquent des solveurs industriels.
+C'est ici que la série Search se confronte au réel. Les notebooks d'application, pour la plupart adaptés de projets étudiants, prennent les algorithmes des Parties 1 et 2 et les mettent face à des problèmes qui ne se laissent pas faire : planifier les gardes d'un service hospitalier, ordonnancer un atelier, construire un calendrier sportif équitable, router une flotte de véhicules. Trois catégories les organisent — **Search pur** (jeux combinatoires), **CSP** (satisfaction de contraintes) et **Hybride** (combinaisons de solveurs, modèles exacts et métaheuristiques) — et la plupart sont autonomes, avec des pointeurs vers les prérequis pertinents. À cela s'ajoutent les **jumeaux C#** (App-1b, App-2b, App-3b, App-4b, App-5b, App-6-CSharp, App-7b, App-8-CSharp, App-9b, App-10b, App-11b, App-13b, App-14-CSharp, App-14c, App-15b, App-16-CSharp, App-17b, App-18b, App-19-CSharp, App-20b) qui déroulent les mêmes algorithmes *from-scratch* en .NET, en complément des versions Python qui invoquent des solveurs industriels.
-Sous-série de **59 notebooks** | **~46h35** | Python 3.10+ (`ortools`, `python-sat`, `deap`, `mealpy`, `minizinc`, `optuna`, `rustuna`) ; .NET 9 (`dotnet-interactive`) pour les jumeaux C#
+Sous-série d'applications | Python 3.10+ (`ortools`, `python-sat`, `deap`, `mealpy`, `minizinc`, `optuna`, `rustuna`) ; .NET 9 (`dotnet-interactive`) pour les jumeaux C#. Les volumes (notebooks par sous-série, maturité) sont portés par le marqueur `CATALOG-STATUS` du [README de la série](../README.md) — aucun chiffre n'est maintenu ici en prose.
## Pourquoi cette sous-série
@@ -31,9 +31,9 @@ Un algorithme compris sur un exemple jouet n'est pas encore un algorithme maîtr
```text
Applications/
-├── Search/ # Applications purement Search (5 notebooks : 3 Python + 2 twins C#)
-├── CSP/ # Applications CSP (31 notebooks : 18 Python + 13 twins C#)
-└── Hybrid/ # Méthodes hybrides / métaheuristiques (23 notebooks : 18 Python + 5 twins C#)
+├── Search/ # Applications purement Search (Puissance 4 + jumeaux C#)
+├── CSP/ # Applications CSP (problèmes classiques + jumeaux C#)
+└── Hybrid/ # Méthodes hybrides / métaheuristiques (+ jumeaux C#)
```
```mermaid
@@ -42,11 +42,13 @@ flowchart LR
P2["Partie 2 — CSP
modélisation déclarative
(X, D, C) + propagation"]
P4["Partie 4 — Métaheuristiques
SA, GA, ACO, recuit"]
S["Applications Search (5)
3 Python + 2 C# :
ConnectFour, Minimax, MCTS, AIMA,
distillation Szpiro (arithmétique)"]
- C["Applications CSP (31)
18 Python + 13 C# :
N-Queens, GraphColoring,
Nurse/JobShop, Minesweeper,
Wordle, Picross, WFC,
Covering Arrays..."]
- H["Applications Hybrides (22)
17 Python + 5 C# :
EdgeDetection, Portfolio,
TSP, VRP, Hyperparameter,
AlgorithmSelection, PRESENT/SAT,
MAPF, WDP/VCG, index tracking,
branching ML, SALBP,
assemblage orbital, RCPSP/max"]
+ C["Applications CSP
N-Queens, GraphColoring,
Nurse/JobShop, Minesweeper,
Wordle, Picross, WFC..."]
+ H["Applications Hybrides
EdgeDetection, Portfolio,
TSP, VRP, Hyperparameter,
AlgorithmSelection, PRESENT/SAT..."]
P1 --> S
P2 --> C
P4 --> H
+ P2 --> R
+ P4 --> R
S -.->|"benchmark croisé"| H
C -.->|"quand l'espace explose"| H
```
@@ -127,9 +129,6 @@ La génération procédurale de niveaux (App-19) encode le Wave Function Collaps
| 13 | [App-20-SudokuBenchmark-Python](CSP/App-20-SudokuBenchmark-Python.html) | ~50 min | Benchmark comparatif : 4 solveurs Sudoku, un problème NP-complet | Nouveau |
| 13b | [App-20b-SudokuBenchmark-CSharp](CSP/App-20b-SudokuBenchmark-CSharp.html) | ~35 min | **Jumeau C#** — backtracking naïf/MRV, AC-3, Dancing Links (Knuth) from-scratch, benchmark 3 difficultés, parité #4956 | Jumeau .NET |
| 14 | [App-21-VoiceLeading](CSP/App-21-VoiceLeading.ipynb) | ~40 min | Hommage Munkres : voice leading chorale par affectation (Kuhn-Munkres via scipy) + audit/réparation du contrepoint de Fux en CP-SAT — encodage issu des projets étudiants EPITA PrCon (H1/H1_V2) | Hommage Munkres / projets étudiants EPITA |
-| 15 | [App-22-EdgeColoring-Tutte](CSP/App-22-EdgeColoring-Tutte.ipynb) | ~45 min | Coloration d'arêtes cubiques : Vizing, Petersen, ponts, graphes apex et CP-SAT | Nouveau |
-| 15b | [App-23-Factorio-Balancer](CSP/App-23-Factorio-Balancer.ipynb) | ~35 min | Belt balancer Factorio : MIP continu vs CP-SAT discret sur cas borné, N×N throughput-unlimited | Nouveau |
-| 16 | [App-26-CoveringArrays-Guarantee-Audit](CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb) | ~55 min | Covering Arrays : oracle constraint-aware, set cover CP-SAT exact, bornes et baselines IPOG/AETG-like — distillation PrCon H4 (Valérian Pichot) | Projet étudiant (PrCon PR #58) |
---
@@ -154,14 +153,7 @@ Quand l'espace est trop vaste ou l'objectif trop irrégulier pour les méthodes
| 7d | [App-18c-HyperparameterTuning-Rustuna-vs-Optuna](Hybrid/App-18c-HyperparameterTuning-Rustuna-vs-Optuna.ipynb) | ~30 min | Rustuna vs Optuna : pont SOTA triple (Random numpy / Optuna TPE / Rustuna TPE) sur l'objectif k-NN CV d'App-18b, speedup mesuré deux régimes, audit d'une dépendance expérimentale (bug `best_trial` mesuré) | Nouveau |
| 8 | [App-22-AlgorithmSelection-Python](Hybrid/App-22-AlgorithmSelection-Python.ipynb) | ~45 min | Sélection empirique d'algorithmes : 3 jeux (Sudoku, Puissance 4, Wordle), 13 familles conceptuelles / 14 étiquettes mesurées, non-commensurabilité des métriques + frontières de Pareto + choix sous préférences — hommage PR IS #42 (Théodore Deguest) | Projet étudiant (IS PR #42) |
| 9 | [App-23-PRESENT-Differential-Cryptanalysis-SAT](Hybrid/App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) | ~55 min | PRESENT : DDT, compression d'implicants, CNF pondérée, frontière SAT/UNSAT du meilleur trail et limites de certification — distillation PrCon F2 (Théodore Deguest) | Projet étudiant (PrCon PR #49) |
-| 10 | [App-24-MAPF-Guarantee-Audit](Hybrid/App-24-MAPF-Guarantee-Audit.ipynb) | ~60 min | MAPF : validateur indépendant, oracle CP-SAT time-expanded, réfutation OD-A*, arrêt CBS au but, audit des garanties ECBS — distillation PrCon G3 (Matteo Atkinson, Paul Witkowski) | Projet étudiant (PrCon PRs #33/#36/#42) |
-| 11 | [App-25-CombinatorialAuctions-WDP-VCG](Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb) | ~60 min | Enchères combinatoires : WDP exact CP-SAT vs force brute, langage XOR, budget global, paiements VCG et audit de leurs garanties, contre-exemple de manipulation sous budget matérialisé, forensics `PRICE_SCALE` sur 18 instances CATS — distillation PrCon J2 (Majerczyk, Chartouni, Wangon-Zekou) | Projet étudiant (PrCon PR #26) |
-| 12 | [App-27-Sparse-Index-Tracking-Walk-Forward](Hybrid/App-27-Sparse-Index-Tracking-Walk-Forward.ipynb) | ~75 min | Sparse index tracking : modèle CP-SAT vérifiable, walk-forward sans fuite et lecture pédagogique des résultats QuantConnect réels — une recherche, deux lectures — distillation PrCon M2 (Godric Bouteloup) | Projet étudiant (PrCon PR #52) |
-| 13 | [App-28-LearningToBranch-Generalization-Audit](Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb) | ~75 min | Learning to branch : dérivation de dom/wdeg, splits groupés, transfert inter-familles, performance intégrée, coût d'inférence et seuil d'amortissement — distillation PrCon G4 (Simon Naulet, Matis Codjia) | Projet étudiant (PrCon PR #46) |
-| 14 | [App-29-SALBP-AssemblyLineBalancing-Audit](Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb) | ~70 min | SALBP-1/2 : CP-SAT, PuLP/CBC et RPW, statuts/incumbents/bornes, identité de benchmark, front Pareto certifié et MMALBP robuste/pondéré — distillation PrCon B1 (Ilias Kalalou, Kaelan Grall) | Projet étudiant (PrCon PR #57) |
-| 15 | [App-30-OrbitalAssembly-Certificate-Audit](Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb) | ~70 min | Assemblage orbital : physique de Hohmann dans le modèle, auditeur externe, preuve que la scalarisation est exactement lexicographique, comparaison à makespan égal, front d'échange ε-contrainte et sonde en taille **et** en densité — distillation PrCon C4 (Gurvan Estable, Joris Bely, Kévin Lubert) | Projet étudiant (PrCon PR #53) |
-| 16 | [App-31-RCPSP-Max-Feasibility-Bounds](Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb) | ~65 min | RCPSP/max : le lag maximal comme arc inverse, faisabilité NP-difficile et son témoin de circuit positif, balayage des trois régimes temporel/ressource/réalisable, échelle de bornes certifiées et repli explicite quand la référence externe manque — distillation PrCon B4 (Arthur Gallier, Nicolas Naegelen) | Projet étudiant (PrCon PR #51) |
-| 17 | [App-33-NeuralDiving-Coloration](Hybrid/App-33-NeuralDiving-Coloration.ipynb) | ~60 min | Neural diving : un plongeur MLP prédit une affectation partielle, injectée comme hint réparable dans CP-SAT ; la médiane des branches recule (2829 → 2325, 25/25 instances améliorées) alors que ≈ 49 % des arêtes du hint violent l'adjacence — cohérence du hint avec les contraintes, pas précision par bit — hommage Nair et al. 2021 | Recherche (Nair et al. 2021) |
+| 10 | [App-27-Sparse-Index-Tracking-Walk-Forward](Hybrid/App-27-Sparse-Index-Tracking-Walk-Forward.ipynb) | ~75 min | Sparse index tracking : modèle CP-SAT vérifiable, walk-forward sans fuite et lecture pédagogique des résultats QuantConnect réels — une recherche, deux lectures — distillation PrCon M2 (Godric Bouteloup) | Projet étudiant (PrCon PR #52) |
---
@@ -209,9 +201,6 @@ Quand l'espace est trop vaste ou l'objectif trop irrégulier pour les méthodes
| App-20 SudokuBenchmark | CSP-1, CSP-3, Search-8 (DLX) | ortools |
| App-20 SudokuBenchmark (C#) | CSP-1, CSP-3, Search-8 (DLX) | dotnet-interactive |
| App-21 VoiceLeading | affectation, CSP-3 | scipy, ortools |
-| App-22 EdgeColoring-Tutte | coloration de graphes, CSP-3 | networkx, ortools |
-| App-23 Factorio-Balancer | CSP-3 (CP-SAT), CSP-4 | ortools (SCIP + CP-SAT), numpy, matplotlib |
-| App-26 CoveringArrays Guarantee Audit | CSP-3, CSP-5 | ortools, pandas, matplotlib |
### Applications Hybrid
@@ -232,16 +221,7 @@ Quand l'espace est trop vaste ou l'objectif trop irrégulier pour les méthodes
| App-18c HyperparameterTuning Rustuna-vs-Optuna | App-18b (terrain k-NN CV), Search-5 | numpy, optuna, rustuna |
| App-22 AlgorithmSelection-Python | MGS-16 (Rice / No Free Lunch) | pandas, numpy, matplotlib |
| App-23 PRESENT Differential Cryptanalysis | SAT, CNF, bit-vectors | python-sat, numpy, matplotlib |
-| App-24 MAPF Guarantee Audit | Search-3 (A*), CSP-3/CSP-4, heuristiques admissibles | ortools, pandas, matplotlib |
-| App-25 CombinatorialAuctions-WDP-VCG | CSP-3 (CP-SAT), CSP-5 (optimisation), GameTheory-16 (VCG) | ortools, pandas, matplotlib |
| App-27 Sparse Index Tracking Walk-Forward | CSP-3 (CP-SAT), CSP-5 (optimisation), App-10 (portefeuille) | ortools, pandas, numpy |
-| App-28 LearningToBranch Generalization Audit | CSP-6 (heuristiques), MGS-16 (sélection d'algorithmes) | numpy, pandas, scikit-learn |
-| App-29 SALBP AssemblyLineBalancing Audit | CSP-3 (CP-SAT), CSP-4 (scheduling), CSP-5 (optimisation) | ortools, pulp, pandas, numpy, matplotlib |
-| App-30 OrbitalAssembly Certificate Audit | CSP-3 (CP-SAT), CSP-4 (scheduling), CSP-5 (optimisation) | ortools, pandas, matplotlib |
-| App-31 RCPSP Max Feasibility Bounds | CSP-4 (scheduling), CSP-3 (CP-SAT), Planners-8 (temporel) | ortools, pandas, numpy, matplotlib |
-| App-33 NeuralDiving Coloration | App-28 (composante branchement), CSP-3 (CP-SAT), MGS-16 (sélection d'algorithmes) | ortools, scikit-learn, numpy, pandas |
-
----
## Origine des projets
@@ -251,24 +231,8 @@ Le [App-22-AlgorithmSelection-Python](Hybrid/App-22-AlgorithmSelection-Python.ht
Le [App-23-PRESENT-Differential-Cryptanalysis-SAT](Hybrid/App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) distille le projet PrCon F2 de **Théodore Deguest**, *« Cryptanalyse différentielle de PRESENT via SAT »*, PR [PrCon #49](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/49). Le notebook reconstruit l'expérience de façon autonome, reproduit la DDT et les frontières SAT/UNSAT, corrige le seuil documentaire à R=15/W=66 et distingue explicitement trail, cluster et niveau de preuve.
-Le [App-24-MAPF-Guarantee-Audit](Hybrid/App-24-MAPF-Guarantee-Audit.ipynb) distille le projet PrCon G3 de **Matteo Atkinson** et **Paul Witkowski**, *« Coordination de drones par Multi-Agent Path Finding »*, PRs [PrCon #33](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/33), [#36](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/36) et [#42](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/42). Un rerun frais alimente un validateur et un oracle CP-SAT indépendants ; le notebook distingue trajectoire valide, optimum observé et garantie réellement établie, avec provenance détaillée dans [`Hybrid/data/app24-mapf-audit/SOURCE.md`](Hybrid/data/app24-mapf-audit/SOURCE.md).
-
-Le [App-25-CombinatorialAuctions-WDP-VCG](Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb) distille le projet PrCon J2 de **Lucas Majerczyk**, **Nabil Chartouni** et **Wilfrid Wangon-Zekou**, *« Enchères combinatoires et Winner Determination »*, PR [PrCon #26](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/26). Le notebook ré-écrit le solveur WDP (CP-SAT, prix entiers milli-unités bout-en-bout) sans importer le package `wdp/` des étudiants ; il re-résout les 18 instances CATS, **matérialise en exécutable** le contre-exemple de manipulation sous budget documenté mais jamais testé dans la source, et audite honnêtement l'écart `PRICE_SCALE` entre les outputs committés et le code au commit source. Données et provenance : [`data/app25-wdp-vcg-audit`](Hybrid/data/app25-wdp-vcg-audit/).
-
-Le [App-26-CoveringArrays-Guarantee-Audit](CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb) distille le projet PrCon H4 de **Valérian Pichot**, *« Covering Arrays »*, PR [PrCon #58](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/58). Sans recopier le générateur étudiant, le notebook reconstruit un oracle indépendant, un set cover CP-SAT exact et deux baselines approchées ; il reproduit surtout le faux verdict d'un validateur qui exige des interactions sémantiquement impossibles, puis le répare par un univers constraint-aware. Provenance : [`CSP/data/app26-covering-arrays-audit/SOURCE.md`](CSP/data/app26-covering-arrays-audit/SOURCE.md).
-
Le [App-27-Sparse-Index-Tracking-Walk-Forward](Hybrid/App-27-Sparse-Index-Tracking-Walk-Forward.ipynb) distille le projet PrCon M2 de **Godric Bouteloup**, *« Sparse Index Tracking »*, PR [PrCon #52](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/52). Le notebook conserve la modélisation CP-SAT en lots entiers, mais reconstruit l'expérience sur un marché synthétique seedé : cardinalité exacte, turnover entre rebalancements consécutifs, validation indépendante, choix de K avant le test et statut/borne/gap explicites. Il matérialise aussi un protocole contaminé pour montrer qu'un score obtenu après consultation du test est ininterprétable, qu'il paraisse meilleur ou moins bon. Cette lecture de méthode reprend ensuite, sans relancer de recherche de marché, les résultats autoritatifs du projet [Sparse-Index-Tracking-QC](../../QuantConnect/projects/Sparse-Index-Tracking-QC/README.md) intégré par la PR CoursIA [#14068](https://github.com/jsboige/CoursIA/pull/14068) : 703 contre 1 414 ordres, mais pas de domination sparse sur les performances ni sur le turnover. **Une recherche, deux lectures.** Provenance : [`Hybrid/data/app27-sparse-index-tracking/SOURCE.md`](Hybrid/data/app27-sparse-index-tracking/SOURCE.md).
-Le [App-28-LearningToBranch-Generalization-Audit](Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb) distille le projet PrCon G4 de **Simon Naulet** et **Matis Codjia**, *« Apprentissage d'heuristiques de branchement pour solveur CP »*, PR [PrCon #46](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/46). La reproduction est entièrement réécrite : elle remplace le split par lignes par des instances disjointes, ajoute trois transferts leave-one-family-out et compare l'arbre, le temps total et le coût d'inférence à une baseline choisie sur le train uniquement. Elle établit un résultat négatif utile : une imitation locale fidèle ne garantit ni un arbre plus petit ni un solveur plus rapide. Provenance : [`Hybrid/data/app28-learning-to-branch-audit/SOURCE.md`](Hybrid/data/app28-learning-to-branch-audit/SOURCE.md).
-
-Le [App-29-SALBP-AssemblyLineBalancing-Audit](Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb) rend hommage au projet PrCon B1 d'**Ilias Kalalou** et **Kaelan Grall**, *« Équilibrage de chaîne d'assemblage (SALBP) »*, PR [PrCon #57](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/57). Le notebook préserve leur geste central — SALBP-1/2, comparaison CP-SAT/PuLP/RPW, Pareto et multi-modèles — dans une réécriture CoursIA indépendante qui publie statuts, incumbents, bornes, gaps, identité structurelle des instances et validation hors solveur. Aucun code, texte ou figure étudiante n'est copié. Provenance : [`Hybrid/data/app29-salbp-audit/SOURCE.md`](Hybrid/data/app29-salbp-audit/SOURCE.md).
-
-Le [App-30-OrbitalAssembly-Certificate-Audit](Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb) rend hommage au projet PrCon C4 de **Gurvan Estable**, **Joris Bely** et **Kévin Lubert**, *« Assemblage orbital de satellites »*, PR [PrCon #53](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/53). Le geste distillé est une décision de modélisation : faire descendre la physique dans le modèle, durées issues d'un temps de vol de Hohmann calculé et coûts d'un Δv calculé, les deux contraignant les mêmes intervalles CP-SAT. La reproduction CoursIA est indépendante et volontairement discrétisée autrement, donc non comparable chiffre à chiffre : elle ajoute un auditeur externe qui ne partage aucun état avec les solveurs, la preuve que l'objectif scalarisé `makespan × (B+1) + ergol` est *exactement* lexicographique dès que le budget borne l'ergol — ce que le rapport source qualifiait prudemment d'« approximation » —, une comparaison à makespan égal qui sépare l'inefficacité en ergol d'une heuristique de son retard d'échéancier, un front d'échange ε-contrainte dont chaque point porte son statut, et une sonde qui montre que la taille est un mauvais prédicteur de difficulté. Aucun code, texte ou figure étudiante n'est copié. Provenance : [`Hybrid/data/app30-orbital-assembly-audit/SOURCE.md`](Hybrid/data/app30-orbital-assembly-audit/SOURCE.md).
-
-Le [App-31-RCPSP-Max-Feasibility-Bounds](Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb) rend hommage au projet PrCon B4 d'**Arthur Gallier** et **Nicolas Naegelen**, *« RCPSP — ordonnancement de projet sous contraintes de ressources »*, PR [PrCon #51](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/51). Leur rendu a fait ce que [Planners-8-Temporal](../../SymbolicAI/Planners/03-Advanced/Planners-8-Temporal-Csharp.ipynb) laissait explicitement « en exercice » : confronter un solveur à un benchmark public d'ordonnancement. La vérification indépendante conduite pour cette distillation confirme leurs dix makespans, tous recalculés `OPTIMAL` par un modèle réécrit de zéro. Le prolongement CoursIA porte sur ce que leur section RCPSP/max rendait possible sans l'exercer : un lag maximal s'encode par un **arc inverse** qui referme un circuit, la faisabilité elle-même devient NP-difficile (Bartusch, Möhring, Radermacher, 1988), et un circuit de poids strictement positif en est le témoin vérifiable à la main. Le notebook balaye les trois régimes — infaisable temporellement, infaisable par les ressources, réalisable —, mesure que le diagnostic polynomial épargne au solveur le tiers gauche du domaine, et propose une échelle de bornes certifiées comme repli explicite lorsqu'aucune référence externe n'est disponible : le champ `niveau_de_preuve` interdit de confondre un écart à une borne calculée avec un écart à un optimum connu. Aucun code, texte ou figure étudiante n'est copié. Provenance : [`Hybrid/data/app31-rcpsp-max/SOURCE.md`](Hybrid/data/app31-rcpsp-max/SOURCE.md).
-
-Le [App-33-NeuralDiving-Coloration](Hybrid/App-33-NeuralDiving-Coloration.ipynb) rend hommage au second geste de l'article de Nair et al. (2021), *« Solving Mixed Integer Programs Using Neural Networks »* (arXiv:2012.13349) : le **diving**, qui apprend une solution partielle pour guider un solveur MIP. App-28 a audité la composante *branching* (politique de branchement apprise) ; App-33 enchaîne sur l'autre composante : un plongeur MLP prédit une affectation des 60 sommets d'une coloration de graphe, injectée comme `hint` réparable dans OR-Tools CP-SAT, et l'on mesure l'effet sur les branches de preuve. La famille est calibrée pour qu'une fenêtre existe : les set-cover denses s'effondrent au presolve (`nodes = 0`) et les knapsack corrélés ne se prouvent pas en fenêtre notebook ; la coloration 60 sommets / 3 arêtes branche (médiane 2742, 2303-3799 sur les 60 instances d'entraînement) et se prouve (< 0,1 s). Verdict mesuré sur 25 instances de test, sur un run déterministe (`num_workers = 1`) : la médiane des branches recule (2829 → 2325, ≈ −18 %), les 25 instances s'améliorent (gain relatif médian ≈ 15 %, de 8 % à 28 %), et ≈ 49 % des arêtes du hint (44 sur ~90) sont en conflit avec l'adjacence — la cohérence, pas la précision par bit, détermine l'effet du hint. Le notebook ne copie aucun code, donnée, figure ou prose de l'article, archivé au gisement `G:\Mon Drive\MyIA\IA\Bibliographie IA\Search\`. Provenance : [`Hybrid/data/app33-neural-diving/SOURCE.md`](Hybrid/data/app33-neural-diving/SOURCE.md).
-
---
## Ponts inter-séries
@@ -302,15 +266,7 @@ Couverture par application des sources fondatrices mobilisées dans cette sous-s
| App-22 (AlgorithmSelection-Python) | Rice, J. R. (1976) — « The Algorithm Selection Problem », *Advances in Computers* 15, pp. 65-118 ; et Wolpert, D. H., & Macready, W. G. (1997) — « No Free Lunch Theorems for Optimization », *IEEE Trans. on Evolutionary Computation* 1(1), pp. 67-82. |
| App-23 (PRESENT Differential Cryptanalysis SAT) | Bogdanov, A., et al. (2007) — « PRESENT: An Ultra-Lightweight Block Cipher », *CHES 2007* ; Tseitin, G. S. (1968) — transformations CNF ; Eén, N., & Sörensson, N. (2006) — « Translating Pseudo-Boolean Constraints into SAT ». |
| App-19 (ProceduralGeneration-WFC) | Gumin, M. (2016) — *WaveFunctionCollapse*, github.com/mxgmn/WaveFunctionCollapse. Génération procédurale de niveaux par propagation de contraintes. |
-| App-24 (MAPF Guarantee Audit) | Stern, R., et al. (2019) — « Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks », *SoCS* ; Sharon, G., et al. (2015) — « Conflict-Based Search for Optimal Multi-Agent Path Finding », *Artificial Intelligence* 219 ; Standley, T. (2010) — « Finding Optimal Solutions to Cooperative Pathfinding Problems », *AAAI* ; Barer, M., et al. (2014) — « Suboptimal Variants of the Conflict-Based Search Algorithm for the Multi-Agent Pathfinding Problem », *SoCS*. |
-| App-25 (CombinatorialAuctions-WDP-VCG) | Rothkopf, M. H., Pekeč, A., & Harstad, R. M. (1998) — « Computationally Combinatorial Auction Design », *Management Science* 44(8) ; Sandholm, T. (2002) — « Algorithm for Optimal Winner Determination in Combinatorial Auctions », *Artificial Intelligence* 135 ; Leyton-Brown, K., Pearson, M., & Shoham, Y. (2000) — « Towards a Universal Test Suite for Combinatorial Auction Design », *EC 2000* (générateur CATS) ; Nisan, N. (2000) — « Bidding and Allocation in Combinatorial Auctions », *EC 2000* (langage XOR) ; Lehmann, D., O'Callaghan, L., & Shoham, Y. (2002) — « Truth Revelation in Approximately Efficient Combinatorial Auctions », *JACM* 49(5) (glouton √m, enchérisseurs single-minded). |
-| App-26 (CoveringArrays Guarantee Audit) | Cohen, D. M., Dalal, S. R., Fredman, M. L., & Patton, G. C. (1997) — « The AETG System: An Approach to Testing Based on Combinatorial Design », *IEEE TSE* 23(7) ; Lei, Y., Kacker, R., Kuhn, D. R., Okun, V., & Lawrence, J. (2007) — « IPOG: A General Strategy for T-Way Software Testing », *ECBS 2007*. |
| App-27 (Sparse Index Tracking Walk-Forward) | Beasley, J. E., Meade, N., & Chang, T.-J. (2003) — « An Evolutionary Heuristic for the Index Tracking Problem », *European Journal of Operational Research* 148(3) ; Bailey, D. H., Borwein, J. M., López de Prado, M., & Zhu, Q. J. (2014) — « Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance », *Notices of the AMS* 61(5). |
-| App-28 (LearningToBranch Generalization Audit) | Boussemart, F., Hemery, F., Lecoutre, C., & Sais, L. (2004) — « Boosting Systematic Search by Weighting Constraints », *ECAI* (dom/wdeg) ; Kotthoff, L. (2014) — « Algorithm Selection for Combinatorial Search Problems: A Survey », *AI Magazine* 35(3) ; Bengio, Y., Lodi, A., & Prouvost, A. (2021) — « Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon », *European Journal of Operational Research* 290(2) ; Balcan, M.-F., Dick, T., Sandholm, T., & Vitercik, E. (2020) — « Learning to Branch: Generalization Guarantees and Limits of Data-Independent Discretization », *JACM* 67(6). |
-| App-29 (SALBP Assembly Line Balancing Audit) | Salveson, M. E. (1955) — « The Assembly Line Balancing Problem », *Journal of Industrial Engineering* 6(3) ; Helgeson, W. B., & Birnie, D. P. (1961) — « Assembly Line Balancing Using the Ranked Positional Weight Technique », *Journal of Industrial Engineering* 12(6) ; Scholl, A. (1999) — *Balancing and Sequencing of Assembly Lines*, Physica-Verlag. |
-| App-30 (OrbitalAssembly Certificate Audit) | Hohmann, W. (1925) — *Die Erreichbarkeit der Himmelskörper*, Oldenbourg ; Vallado, D. A. (2013) — *Fundamentals of Astrodynamics and Applications*, 4e éd., Microcosm Press ; Haimes, Y. Y., Lasdon, L. S., & Wismer, D. A. (1971) — « On a Bicriterion Formulation of the Problems of Integrated System Identification and System Optimization », *IEEE Transactions on Systems, Man, and Cybernetics* 1(3) (ε-contrainte) ; Wilcoxon, F. (1945) — « Individual Comparisons by Ranking Methods », *Biometrics Bulletin* 1(6). |
-| App-31 (RCPSP Max Feasibility Bounds) | Bartusch, M., Möhring, R. H., & Radermacher, F. J. (1988) — « Scheduling Project Networks with Resource Constraints and Time Windows », *Annals of Operations Research* 16(1) ; Kolisch, R., & Sprecher, A. (1997) — « PSPLIB — A Project Scheduling Problem Library », *European Journal of Operational Research* 96(1) ; Neumann, K., Schwindt, C., & Zimmermann, J. (2003) — *Project Scheduling with Time Windows and Scarce Resources*, Springer ; Bellman, R. (1958) — « On a Routing Problem », *Quarterly of Applied Mathematics* 16(1) (relaxation et détection de circuit). |
-| App-33 (Neural Diving Coloration) | Nair, V., Bartunov, S., Gimeno, F., et al. (2021) — « Solving Mixed Integer Programs Using Neural Networks », arXiv:2012.13349 (v3, juillet 2021) ; Bengio, Y., Lodi, A., & Prouvost, A. (2021) — « Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon », *European Journal of Operational Research* 290(2). |
## Conclusion / Prochaines étapes
diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb
similarity index 99%
rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb
index 0053312635..ff5e3744e1 100644
--- a/MyIA.AI.Notebooks/Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb
@@ -57,9 +57,9 @@
"tags": []
},
"source": [
- "# App-22 : Coloration d'arêtes et conjecture de Tutte\n",
+ "# Frontieres-01 : Coloration d'arêtes et conjecture de Tutte\n",
"\n",
- "**Navigation** : [<< App-21 VoiceLeading](App-21-VoiceLeading.ipynb) | [Index](../../README.md)\n",
+ "**Navigation** : [<< App-21 VoiceLeading](../Applications/CSP/App-21-VoiceLeading.ipynb) | [Série Search](../README.md)\n",
"\n",
"## Objectifs d'apprentissage\n",
"\n",
@@ -70,7 +70,7 @@
"3. **Construire** des familles témoins : le graphe de Petersen (plus petit snark), un graphe cubique à pont, les échelles de Möbius (non planaires mais apex)\n",
"4. **Vérifier empiriquement** un théorème récent (arXiv 2608.22870, 2026) : tout graphe cubique **sans pont et apex** admet une 3-coloration d'arêtes\n",
"\n",
- "Ce notebook prolonge [App-2 : Coloration de Graphes](App-2-GraphColoring.ipynb), qui traitait la coloration de **sommets** — ici, ce sont les **arêtes** que l'on colore."
+ "Ce notebook prolonge [App-2 : Coloration de Graphes](../Applications/CSP/App-2-GraphColoring.ipynb), qui traitait la coloration de **sommets** — ici, ce sont les **arêtes** que l'on colore."
]
},
{
@@ -1481,7 +1481,7 @@
"**Perspectives** : un compagnon Lean (tranche B de l'issue #13031) formalisera les définitions (cubique, sans pont, apex, 3-arête-colorable) sur `Mathlib.Combinatorics.SimpleGraph` et vérifiera exécutivement que le Petersen n'est pas 3-arête-colorable. La formalisation de la preuve complète (réductibilité + déchargement) est explicitement hors périmètre : c'est l'échelle du théorème des quatre couleurs (années-homme, cf. Gonthier).\n",
"\n",
"**Références** :\n",
- "- [App-2 : Coloration de Graphes](App-2-GraphColoring.ipynb) — coloration de sommets\n",
+ "- [App-2 : Coloration de Graphes](../Applications/CSP/App-2-GraphColoring.ipynb) — coloration de sommets\n",
"- Vizing (1964), *On an estimate of the chromatic class of a p-graph*\n",
"- Tutte (1966), *On the algebraic characterization of some graph classes*\n",
"- arXiv 2608.22870 (2026), *Three-edge-coloring apex cubic graphs* — preuve assistée par ordinateur, algorithme $O(n^2)$\n",
@@ -1513,8 +1513,8 @@
"end_time": "2026-08-26T07:09:59.851046+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-22-EdgeColoring-Tutte.ipynb",
- "output_path": "App-22-EdgeColoring-Tutte.ipynb",
+ "input_path": "Frontieres-01-EdgeColoring-Tutte-Python.ipynb",
+ "output_path": "Frontieres-01-EdgeColoring-Tutte-Python.ipynb",
"parameters": {},
"start_time": "2026-08-26T07:09:53.031757+00:00",
"version": "2.7.0"
diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb
similarity index 99%
rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb
index 4c5c19696b..3b110d1b62 100644
--- a/MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb
@@ -50,9 +50,9 @@
"tags": []
},
"source": [
- "# App-23 - Factorio Belt Balancer (CP-SAT borne)\n",
+ "# Frontieres-02 - Factorio Belt Balancer (CP-SAT borne)\n",
"\n",
- "**Navigation** : [<< App-22 EdgeColoring Tutte](../CSP/App-22-EdgeColoring-Tutte.ipynb) | [Index](../README.md) | [App-26 Covering Arrays >>](../CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb)\n",
+ "**Navigation** : [<< Frontieres-01 EdgeColoring Tutte](Frontieres-01-EdgeColoring-Tutte-Python.ipynb) | [Partie 5](README.md) | [Frontieres-05 Covering Arrays >>](Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb)\n",
"\n",
"## Belt balancer Factorio : MIP continu vs CP-SAT discret sur cas borne\n",
"\n",
@@ -2467,8 +2467,8 @@
"end_time": "2026-09-12T19:01:31.739521",
"environment_variables": {},
"exception": null,
- "input_path": "MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb",
- "output_path": "MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb",
+ "input_path": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb",
+ "output_path": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb",
"parameters": {},
"start_time": "2026-09-12T19:00:34.530542",
"version": "2.6.0"
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb
similarity index 99%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb
index 14a4a66d02..9d1faae04b 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb
@@ -14,9 +14,9 @@
"tags": []
},
"source": [
- "# App-24 — MAPF : auditer les garanties des solveurs\n",
+ "# Frontieres-03 — MAPF : auditer les garanties des solveurs\n",
"\n",
- "> **Navigation** : [Applications Search](../README.md) · [App-23 PRESENT/SAT](App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) · [Search-3 A*](../../Part1-Foundations/Search-03-Informed.ipynb) · [CSP-4 Scheduling](../../Part2-CSP/CSP-4-Scheduling.ipynb)\n",
+ "> **Navigation** : [Partie 5](README.md) · [App-23 PRESENT/SAT](../Applications/Hybrid/App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) · [Search-3 A*](../Part1-Foundations/Search-03-Informed.ipynb) · [CSP-4 Scheduling](../Part2-CSP/CSP-4-Scheduling.ipynb)\n",
"\n",
"## Objectifs d'apprentissage\n",
"\n",
@@ -1310,8 +1310,8 @@
"end_time": "2026-08-28T14:57:47.128348+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-24-MAPF-Guarantee-Audit.ipynb",
- "output_path": "App-24-MAPF-Guarantee-Audit.ipynb",
+ "input_path": "Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb",
+ "output_path": "Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb",
"parameters": {},
"start_time": "2026-08-28T14:57:43.006649+00:00",
"version": "2.7.0"
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb
similarity index 98%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb
index d19fbba2c9..dcb29219bc 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb
@@ -14,9 +14,9 @@
"tags": []
},
"source": [
- "# App-25 — Enchères combinatoires : Winner Determination à grande échelle et audit des garanties VCG\n",
+ "# Frontieres-04 — Enchères combinatoires : Winner Determination à grande échelle et audit des garanties VCG\n",
"\n",
- "> **Navigation** : [Applications Search](../README.md) · [GameTheory — théorie des mécanismes](../../../GameTheory/README.md) · [CSP-3 (CP-SAT avancé)](../../Part2-CSP/CSP-3-Advanced.ipynb)\n",
+ "> **Navigation** : [Partie 5](README.md) · [GameTheory — théorie des mécanismes](../../GameTheory/README.md) · [CSP-3 (CP-SAT avancé)](../Part2-CSP/CSP-3-Advanced.ipynb)\n",
"\n",
"## Objectifs d'apprentissage\n",
"\n",
@@ -29,7 +29,7 @@
"5. **matérialiser un contre-exemple documenté** : VCG avec contrainte de budget n'est pas truthful (surplus 7 contre 0), alors que trois propriétés survivent mécaniquement ;\n",
"6. lire un artefact numérique avec un œil forensique : le mismatch `PRICE_SCALE`/`bid_alpha` des outputs étudiants.\n",
"\n",
- "**Prérequis** : [CSP-3 (CP-SAT)](../../Part2-CSP/CSP-3-Advanced.ipynb), bases de théorie des mécanismes ([GameTheory-16](../../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb)). **Durée estimée** : 60 min.\n",
+ "**Prérequis** : [CSP-3 (CP-SAT)](../Part2-CSP/CSP-3-Advanced.ipynb), bases de théorie des mécanismes ([GameTheory-16](../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb)). **Durée estimée** : 60 min.\n",
"\n",
"## Hommage à un travail étudiant\n",
"\n",
@@ -162,7 +162,7 @@
"\n",
"Le **Winner Determination Problem** : étant donné $m$ items et $n$ offres (l'offre $j$ porte sur un bundle $S_j$ au prix $p_j$), choisir l'ensemble d'offres gagnantes qui **maximise le revenu** $\\sum_j p_j x_j$ sous exclusivité d'item — chaque item va à au plus un gagnant (hypothèse de *free disposal* côté vendeur, Cramton-Shoham-Steinberg 2006 ch. 1 : un item peut rester invendu). C'est un **set packing pondéré**, NP-difficile (Rothkopf-Pekeč-Harstad 1998 ; Sandholm 2002).\n",
"\n",
- "CoursIA résout déjà le VCG combinatoire **par énumération exhaustive des allocations** — [`examples/vcg_auction.py`](../../../GameTheory/examples/vcg_auction.py) parcourt le powerset des bundles, et [GameTheory-16 §4.5](../../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb) énumère les affectations d'objets à la main pour 2 objets. Ce notebook montre où cette approche meurt, et ce qui la remplace."
+ "CoursIA résout déjà le VCG combinatoire **par énumération exhaustive des allocations** — [`examples/vcg_auction.py`](../../GameTheory/examples/vcg_auction.py) parcourt le powerset des bundles, et [GameTheory-16 §4.5](../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb) énumère les affectations d'objets à la main pour 2 objets. Ce notebook montre où cette approche meurt, et ce qui la remplace."
]
},
{
@@ -312,7 +312,7 @@
"source": [
"### 2.2 Le modèle CP-SAT : set packing pondéré\n",
"\n",
- "Variables $x_j \\in \\{0,1\\}$, objectif $\\max \\sum_j p_j x_j$, contraintes : (1) exclusivité d'item $\\sum_{j \\ni i} x_j \\le 1$ ; (2) budget global optionnel $\\sum_j p_j x_j \\le C$ — exprimé **en prix déclarés** (ce point deviendra central au §6) ; (3) groupes XOR optionnels $\\sum_{j \\in G} x_j \\le 1$. C'est la même famille de modèles que [CSP-3](../../Part2-CSP/CSP-3-Advanced.ipynb) et [CSP-5](../../Part2-CSP/CSP-5-Optimization.ipynb)."
+ "Variables $x_j \\in \\{0,1\\}$, objectif $\\max \\sum_j p_j x_j$, contraintes : (1) exclusivité d'item $\\sum_{j \\ni i} x_j \\le 1$ ; (2) budget global optionnel $\\sum_j p_j x_j \\le C$ — exprimé **en prix déclarés** (ce point deviendra central au §6) ; (3) groupes XOR optionnels $\\sum_{j \\in G} x_j \\le 1$. C'est la même famille de modèles que [CSP-3](../Part2-CSP/CSP-3-Advanced.ipynb) et [CSP-5](../Part2-CSP/CSP-5-Optimization.ipynb)."
]
},
{
@@ -2040,7 +2040,7 @@
"tags": []
},
"source": [
- "**Interprétation.** L'audit passe à l'échelle réelle : `optimal_solves` confirme que **toutes** les sous-résolutions (6 au total) ont prouvé l'optimalité — sans quoi les paiements seraient faussés silencieusement (c'est le garde-fou de Nisan-Ronen 2007 repris par le projet J2). Sur cette instance, le vendeur capte **70.3 %** du welfare (628.991 unités laissées aux gagnants) — mais rien ne généralise : le revenu VCG dépend des externalités croisées, et la littérature documente les pathologies inverses (revenu faible ou nul, non-monotonie à l'ajout d'un enchérisseur — Ausubel-Milgrom 2006, Conitzer-Sandholm 2006, démontrée dans [GameTheory-16 §4.5-4.6](../../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb))."
+ "**Interprétation.** L'audit passe à l'échelle réelle : `optimal_solves` confirme que **toutes** les sous-résolutions (6 au total) ont prouvé l'optimalité — sans quoi les paiements seraient faussés silencieusement (c'est le garde-fou de Nisan-Ronen 2007 repris par le projet J2). Sur cette instance, le vendeur capte **70.3 %** du welfare (628.991 unités laissées aux gagnants) — mais rien ne généralise : le revenu VCG dépend des externalités croisées, et la littérature documente les pathologies inverses (revenu faible ou nul, non-monotonie à l'ajout d'un enchérisseur — Ausubel-Milgrom 2006, Conitzer-Sandholm 2006, démontrée dans [GameTheory-16 §4.5-4.6](../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb))."
]
},
{
@@ -2822,11 +2822,11 @@
"source": [
"## 10. Ponts avec le reste de CoursIA\n",
"\n",
- "- [GameTheory-16 — Mechanism Design](../../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb) : le principe de révélation, VCG additif, la non-monotonie de revenu (Conitzer-Sandholm) — prouvée formellement dans [`game_theory_lean/SocialChoice/MechanismDesign.lean`](../../../GameTheory/game_theory_lean/SocialChoice/MechanismDesign.lean) ;\n",
- "- [GameTheory-16c — Extraction de revenu DSIC+IR](../../../GameTheory/GameTheory-16c-Extraction-de-Revenu-DSIC-IR-Python.ipynb) : l'autre face du trade-off revenu/incitation ;\n",
- "- [`examples/vcg_auction.py`](../../../GameTheory/examples/vcg_auction.py) : l'énumération brute dont le §2 mesure le mur ;\n",
- "- [CSP-3](../../Part2-CSP/CSP-3-Advanced.ipynb) et [CSP-5](../../Part2-CSP/CSP-5-Optimization.ipynb) : la boîte à outils CP-SAT (`AddAtMostOne`, `Maximize`) mobilisée ici ;\n",
- "- [App-23 — PRESENT par SAT](App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) : même discipline de niveaux de preuve — exécution finie, certification bornée, théorème.\n",
+ "- [GameTheory-16 — Mechanism Design](../../GameTheory/GameTheory-16-MechanismDesign-Python.ipynb) : le principe de révélation, VCG additif, la non-monotonie de revenu (Conitzer-Sandholm) — prouvée formellement dans [`game_theory_lean/SocialChoice/MechanismDesign.lean`](../../GameTheory/game_theory_lean/SocialChoice/MechanismDesign.lean) ;\n",
+ "- [GameTheory-16c — Extraction de revenu DSIC+IR](../../GameTheory/GameTheory-16c-Extraction-de-Revenu-DSIC-IR-Python.ipynb) : l'autre face du trade-off revenu/incitation ;\n",
+ "- [`examples/vcg_auction.py`](../../GameTheory/examples/vcg_auction.py) : l'énumération brute dont le §2 mesure le mur ;\n",
+ "- [CSP-3](../Part2-CSP/CSP-3-Advanced.ipynb) et [CSP-5](../Part2-CSP/CSP-5-Optimization.ipynb) : la boîte à outils CP-SAT (`AddAtMostOne`, `Maximize`) mobilisée ici ;\n",
+ "- [App-23 — PRESENT par SAT](../Applications/Hybrid/App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) : même discipline de niveaux de preuve — exécution finie, certification bornée, théorème.\n",
"\n",
"Le projet J2 reste la source : [dépôt](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/tree/main/Groupe-J2-Enchere_combinatoire_et_Winner_Determination) (MIT), notes de recherche 01-04, package `wdp/` et 44 tests — non recopiés ici, conformément à la licence et à la politique de distillation."
]
@@ -2879,8 +2879,8 @@
"end_time": "2026-08-28T19:47:01.780333+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-25-CombinatorialAuctions-WDP-VCG.ipynb",
- "output_path": "App-25-CombinatorialAuctions-WDP-VCG.ipynb",
+ "input_path": "Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb",
+ "output_path": "Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb",
"parameters": {},
"start_time": "2026-08-28T19:46:53.676049+00:00",
"version": "2.7.0"
diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb
similarity index 98%
rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb
index 15bf4f9a7b..ce8237ec67 100644
--- a/MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb
@@ -14,9 +14,9 @@
"tags": []
},
"source": [
- "# App-26 — Covering Arrays : tester les interactions possibles, auditer les garanties\n",
+ "# Frontieres-05 — Covering Arrays : tester les interactions possibles, auditer les garanties\n",
"\n",
- "> **Navigation** : [Applications Search](../README.md) · [CSP-3 (CP-SAT avancé)](../../Part2-CSP/CSP-3-Advanced.ipynb) · [CSP-5 (optimisation)](../../Part2-CSP/CSP-5-Optimization.ipynb)\n",
+ "> **Navigation** : [Partie 5](README.md) · [CSP-3 (CP-SAT avancé)](../Part2-CSP/CSP-3-Advanced.ipynb) · [CSP-5 (optimisation)](../Part2-CSP/CSP-5-Optimization.ipynb)\n",
"\n",
"## Objectifs d'apprentissage\n",
"\n",
@@ -28,7 +28,7 @@
"4. comparer cette référence à deux constructions approchées : une extension **IPOG-like** déterministe et une recherche **AETG-like** semée ;\n",
"5. auditer les limites d'une garantie expérimentale : borne inférieure, time-out, reproductibilité et validation.\n",
"\n",
- "**Prérequis** : combinatoire élémentaire, [CSP-3](../../Part2-CSP/CSP-3-Advanced.ipynb). **Durée estimée** : 55 min.\n",
+ "**Prérequis** : combinatoire élémentaire, [CSP-3](../Part2-CSP/CSP-3-Advanced.ipynb). **Durée estimée** : 55 min.\n",
"\n",
"## Hommage à un travail étudiant\n",
"\n",
@@ -1232,10 +1232,10 @@
"source": [
"## 8. Ponts avec CoursIA\n",
"\n",
- "- [CSP-3 — CP-SAT avancé](../../Part2-CSP/CSP-3-Advanced.ipynb) : variables booléennes, contraintes réifiées et lecture des statuts ;\n",
- "- [CSP-5 — Optimisation](../../Part2-CSP/CSP-5-Optimization.ipynb) : incumbent, borne et différence entre faisabilité et optimalité ;\n",
- "- [App-20 — Sudoku Benchmark](App-20-SudokuBenchmark-Python.ipynb) : autre comparaison d'algorithmes sous oracle commun ;\n",
- "- [App-24 — MAPF Guarantee Audit](../Hybrid/App-24-MAPF-Guarantee-Audit.ipynb) : même discipline, séparer solution valide, optimum observé et garantie prouvée.\n",
+ "- [CSP-3 — CP-SAT avancé](../Part2-CSP/CSP-3-Advanced.ipynb) : variables booléennes, contraintes réifiées et lecture des statuts ;\n",
+ "- [CSP-5 — Optimisation](../Part2-CSP/CSP-5-Optimization.ipynb) : incumbent, borne et différence entre faisabilité et optimalité ;\n",
+ "- [App-20 — Sudoku Benchmark](../Applications/CSP/App-20-SudokuBenchmark-Python.ipynb) : autre comparaison d'algorithmes sous oracle commun ;\n",
+ "- [Frontieres-03 — MAPF Guarantee Audit](Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb) : même discipline, séparer solution valide, optimum observé et garantie prouvée.\n",
"\n",
"Le projet H4 reste la source du geste et de la question : [dépôt](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/tree/main/H4-Covering-Arrays) (MIT), notebook, solveur CP-SAT, IPOG, AETG et slides — non recopiés ici."
]
@@ -1286,8 +1286,8 @@
"end_time": "2026-08-29T14:51:34.342781+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-26-CoveringArrays-Guarantee-Audit.ipynb",
- "output_path": "App-26-CoveringArrays-Guarantee-Audit.ipynb",
+ "input_path": "Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb",
+ "output_path": "Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb",
"parameters": {},
"start_time": "2026-08-29T14:51:13.448983+00:00",
"version": "2.7.0"
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb
similarity index 99%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb
index bb3f1f9a28..4b0c4b35ed 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb
@@ -14,10 +14,10 @@
"tags": []
},
"source": [
- "# App-28 — Learning to branch\n",
+ "# Frontieres-06 — Learning to branch\n",
"## Auditer la généralisation avant d'annoncer un gain\n",
"\n",
- "[← Applications](../README.md) | [↑ Search](../../README.md) | [<< App-25 Enchères WDP/VCG](App-25-CombinatorialAuctions-WDP-VCG.ipynb)\n",
+ "[← Partie 5](README.md) | [↑ Search](../README.md) | [<< App-25 Enchères WDP/VCG](Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb)\n",
"\n",
"> **Durée estimée : 75 minutes**\n",
"\n",
@@ -42,8 +42,8 @@
"\n",
"### Prérequis\n",
"\n",
- "- [CSP-6 Hybridation](../../Part2-CSP/CSP-6-Hybridization.ipynb)\n",
- "- [MGS-16 Sélection d'algorithmes](../../Part4-Metaheuristics/MGS-16-AlgorithmSelection.ipynb)\n",
+ "- [CSP-6 Hybridation](../Part2-CSP/CSP-6-Hybridization.ipynb)\n",
+ "- [MGS-16 Sélection d'algorithmes](../Part4-Metaheuristics/MGS-16-AlgorithmSelection.ipynb)\n",
"- Python 3.10+ ; `numpy`, `pandas`, `scikit-learn`, `matplotlib`"
]
},
@@ -1979,7 +1979,7 @@
"source": [
"## 10. Bilan critique — ce que la garantie apporte et ce qu'elle coûte\n",
"\n",
- "| Claim | Preuve dans App-28 | Coût de la garantie | Limite |\n",
+ "| Claim | Preuve dans Frontieres-06 | Coût de la garantie | Limite |\n",
"|---|---|---|---|\n",
"| Pas de fuite par instance | identifiants train/test disjoints | moins de lignes corrélées disponibles pour entraîner | seulement 36 instances |\n",
"| Transfert inter-familles | trois leave-one-family-out | trois entraînements et évaluations supplémentaires | familles synthétiques seulement |\n",
@@ -2042,8 +2042,8 @@
"end_time": "2026-09-01T20:07:18.549523+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-28-LearningToBranch-Generalization-Audit.ipynb",
- "output_path": "App-28-LearningToBranch-Generalization-Audit.ipynb",
+ "input_path": "Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb",
+ "output_path": "Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb",
"parameters": {},
"start_time": "2026-09-01T20:05:11.740318+00:00",
"version": "2.7.0"
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb
similarity index 71%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb
index f66fa24c2a..705df18da6 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb
@@ -5,19 +5,19 @@
"id": "12174e35",
"metadata": {
"papermill": {
- "duration": 0.004319,
- "end_time": "2026-09-01T18:55:11.625886+00:00",
+ "duration": 0.002779,
+ "end_time": "2026-10-05T15:45:25.803164+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:11.621567+00:00",
+ "start_time": "2026-10-05T15:45:25.800385+00:00",
"status": "completed"
},
"tags": []
},
"source": [
- "# App-29 — Équilibrage de chaîne d'assemblage (SALBP)\n",
+ "# Frontieres-07 — Équilibrage de chaîne d'assemblage (SALBP)\n",
"## De l'affectation au certificat : statut, borne, provenance\n",
"\n",
- "**Navigation** : [Index Applications](../README.md) | [Série Search](../../README.md) | [CSP-4 Scheduling](../../Part2-CSP/CSP-4-Scheduling.ipynb)\n",
+ "**Navigation** : [Partie 5](README.md) | [Série Search](../README.md) | [CSP-4 Scheduling](../Part2-CSP/CSP-4-Scheduling.ipynb)\n",
"\n",
"> **Hommage à Ilias Kalalou et Kaelan Grall — projet B1, EPITA SCIA 2026.** Leur projet ne s'est pas contenté d'écrire un modèle : il a réuni dans un même appareil **SALBP-1**, **SALBP-2**, CP-SAT, PuLP/CBC, l'heuristique historique **Ranked Positional Weight**, 25 instances, 57 tests, une application Streamlit, une variante multi-modèles et une exploration bi-objectif. Cette volonté de faire dialoguer modèle exact, formulation indépendante, heuristique de métier et interface est le geste central de cette distillation.\n",
"\n",
@@ -42,10 +42,10 @@
"id": "a88b6c09",
"metadata": {
"papermill": {
- "duration": 0.002884,
- "end_time": "2026-09-01T18:55:11.633165+00:00",
+ "duration": 0.002162,
+ "end_time": "2026-10-05T15:45:25.807927+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:11.630281+00:00",
+ "start_time": "2026-10-05T15:45:25.805765+00:00",
"status": "completed"
},
"tags": []
@@ -81,16 +81,16 @@
"id": "3d54fb54",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:11.639668Z",
- "iopub.status.busy": "2026-09-01T18:55:11.639403Z",
- "iopub.status.idle": "2026-09-01T18:55:17.517971Z",
- "shell.execute_reply": "2026-09-01T18:55:17.517338Z"
+ "iopub.execute_input": "2026-10-05T15:45:25.813753Z",
+ "iopub.status.busy": "2026-10-05T15:45:25.813533Z",
+ "iopub.status.idle": "2026-10-05T15:45:32.100653Z",
+ "shell.execute_reply": "2026-10-05T15:45:32.099508Z"
},
"papermill": {
- "duration": 5.882727,
- "end_time": "2026-09-01T18:55:17.518552+00:00",
+ "duration": 6.291271,
+ "end_time": "2026-10-05T15:45:32.101600+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:11.635825+00:00",
+ "start_time": "2026-10-05T15:45:25.810329+00:00",
"status": "completed"
},
"tags": []
@@ -100,7 +100,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "{'python': '3.13.14', 'ortools': '9.15.6755', 'pulp': '3.3.1'}\n"
+ "{'python': '3.13.15', 'ortools': '9.15.6755', 'pulp': '3.3.2'}\n"
]
}
],
@@ -121,7 +121,7 @@
"\n",
"DATA_DIR = Path(\"data/app29-salbp-audit\")\n",
"if not DATA_DIR.exists():\n",
- " DATA_DIR = Path(\"MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit\")\n",
+ " DATA_DIR = Path(\"MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit\")\n",
"DATA_DIR.mkdir(parents=True, exist_ok=True)\n",
"\n",
"@dataclass(frozen=True)\n",
@@ -165,10 +165,10 @@
"id": "80df9c3d",
"metadata": {
"papermill": {
- "duration": 0.002858,
- "end_time": "2026-09-01T18:55:17.524598+00:00",
+ "duration": 0.003236,
+ "end_time": "2026-10-05T15:45:32.108063+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.521740+00:00",
+ "start_time": "2026-10-05T15:45:32.104827+00:00",
"status": "completed"
},
"tags": []
@@ -197,10 +197,10 @@
"id": "5fbc5132",
"metadata": {
"papermill": {
- "duration": 0.002699,
- "end_time": "2026-09-01T18:55:17.530176+00:00",
+ "duration": 0.003086,
+ "end_time": "2026-10-05T15:45:32.114519+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.527477+00:00",
+ "start_time": "2026-10-05T15:45:32.111433+00:00",
"status": "completed"
},
"tags": []
@@ -229,16 +229,16 @@
"id": "cbd49f0e",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:17.536619Z",
- "iopub.status.busy": "2026-09-01T18:55:17.536341Z",
- "iopub.status.idle": "2026-09-01T18:55:17.543706Z",
- "shell.execute_reply": "2026-09-01T18:55:17.542972Z"
+ "iopub.execute_input": "2026-10-05T15:45:32.122508Z",
+ "iopub.status.busy": "2026-10-05T15:45:32.122005Z",
+ "iopub.status.idle": "2026-10-05T15:45:32.131715Z",
+ "shell.execute_reply": "2026-10-05T15:45:32.130516Z"
},
"papermill": {
- "duration": 0.011506,
- "end_time": "2026-09-01T18:55:17.544257+00:00",
+ "duration": 0.015013,
+ "end_time": "2026-10-05T15:45:32.132522+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.532751+00:00",
+ "start_time": "2026-10-05T15:45:32.117509+00:00",
"status": "completed"
},
"tags": []
@@ -297,10 +297,10 @@
"id": "9f6e0190",
"metadata": {
"papermill": {
- "duration": 0.002899,
- "end_time": "2026-09-01T18:55:17.550130+00:00",
+ "duration": 0.00279,
+ "end_time": "2026-10-05T15:45:32.138099+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.547231+00:00",
+ "start_time": "2026-10-05T15:45:32.135309+00:00",
"status": "completed"
},
"tags": []
@@ -326,10 +326,10 @@
"id": "cbcbc322",
"metadata": {
"papermill": {
- "duration": 0.002755,
- "end_time": "2026-09-01T18:55:17.555533+00:00",
+ "duration": 0.002786,
+ "end_time": "2026-10-05T15:45:32.143764+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.552778+00:00",
+ "start_time": "2026-10-05T15:45:32.140978+00:00",
"status": "completed"
},
"tags": []
@@ -356,16 +356,16 @@
"id": "6f0e2831",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:17.562062Z",
- "iopub.status.busy": "2026-09-01T18:55:17.561825Z",
- "iopub.status.idle": "2026-09-01T18:55:17.643507Z",
- "shell.execute_reply": "2026-09-01T18:55:17.642736Z"
+ "iopub.execute_input": "2026-10-05T15:45:32.150841Z",
+ "iopub.status.busy": "2026-10-05T15:45:32.150585Z",
+ "iopub.status.idle": "2026-10-05T15:45:32.219119Z",
+ "shell.execute_reply": "2026-10-05T15:45:32.218370Z"
},
"papermill": {
- "duration": 0.085966,
- "end_time": "2026-09-01T18:55:17.644159+00:00",
+ "duration": 0.073731,
+ "end_time": "2026-10-05T15:45:32.220397+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.558193+00:00",
+ "start_time": "2026-10-05T15:45:32.146666+00:00",
"status": "completed"
},
"tags": []
@@ -376,8 +376,8 @@
"output_type": "stream",
"text": [
" method status objective best_bound gap wall_time valid\n",
- "CP-SAT SALBP-1 OPTIMAL 4.0 4.0 0.0 0.040857 True\n",
- "CP-SAT SALBP-2 OPTIMAL 11.0 11.0 0.0 0.014211 True\n",
+ "CP-SAT SALBP-1 OPTIMAL 4.0 4.0 0.0 0.017310 True\n",
+ "CP-SAT SALBP-2 OPTIMAL 11.0 11.0 0.0 0.023967 True\n",
"(True, {'loads': {1: 14, 0: 4, 2: 11, 3: 11}, 'stations': 4, 'cycle': 14})\n"
]
}
@@ -442,10 +442,10 @@
"id": "09671fa7",
"metadata": {
"papermill": {
- "duration": 0.003118,
- "end_time": "2026-09-01T18:55:17.650417+00:00",
+ "duration": 0.003187,
+ "end_time": "2026-10-05T15:45:32.226911+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.647299+00:00",
+ "start_time": "2026-10-05T15:45:32.223724+00:00",
"status": "completed"
},
"tags": []
@@ -467,10 +467,10 @@
"id": "0a6c1ee4",
"metadata": {
"papermill": {
- "duration": 0.002697,
- "end_time": "2026-09-01T18:55:17.655778+00:00",
+ "duration": 0.002865,
+ "end_time": "2026-10-05T15:45:32.232877+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.653081+00:00",
+ "start_time": "2026-10-05T15:45:32.230012+00:00",
"status": "completed"
},
"tags": []
@@ -500,16 +500,16 @@
"id": "d862b45c",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:17.662156Z",
- "iopub.status.busy": "2026-09-01T18:55:17.661945Z",
- "iopub.status.idle": "2026-09-01T18:55:18.337359Z",
- "shell.execute_reply": "2026-09-01T18:55:18.336557Z"
+ "iopub.execute_input": "2026-10-05T15:45:32.239788Z",
+ "iopub.status.busy": "2026-10-05T15:45:32.239508Z",
+ "iopub.status.idle": "2026-10-05T15:45:32.946590Z",
+ "shell.execute_reply": "2026-10-05T15:45:32.945304Z"
},
"papermill": {
- "duration": 0.679883,
- "end_time": "2026-09-01T18:55:18.338247+00:00",
+ "duration": 0.712298,
+ "end_time": "2026-10-05T15:45:32.948109+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:17.658364+00:00",
+ "start_time": "2026-10-05T15:45:32.235811+00:00",
"status": "completed"
},
"tags": []
@@ -520,8 +520,8 @@
"output_type": "stream",
"text": [
" method status objective best_bound gap wall_time valid\n",
- " CP-SAT SALBP-1 OPTIMAL 4.0 4.0 0.0 0.040857 True\n",
- "PuLP/CBC SALBP-1 OPTIMAL 4.0 4.0 0.0 0.662470 True\n",
+ " CP-SAT SALBP-1 OPTIMAL 4.0 4.0 0.0 0.017310 True\n",
+ "PuLP/CBC SALBP-1 OPTIMAL 4.0 4.0 0.0 0.688554 True\n",
" RPW HEURISTIC 4.0 NaN NaN 0.000000 True\n"
]
}
@@ -583,10 +583,10 @@
"id": "d8bff220",
"metadata": {
"papermill": {
- "duration": 0.002991,
- "end_time": "2026-09-01T18:55:18.344824+00:00",
+ "duration": 0.003975,
+ "end_time": "2026-10-05T15:45:32.956853+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:18.341833+00:00",
+ "start_time": "2026-10-05T15:45:32.952878+00:00",
"status": "completed"
},
"tags": []
@@ -612,10 +612,10 @@
"id": "b847952b",
"metadata": {
"papermill": {
- "duration": 0.003364,
- "end_time": "2026-09-01T18:55:18.352670+00:00",
+ "duration": 0.004246,
+ "end_time": "2026-10-05T15:45:32.965084+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:18.349306+00:00",
+ "start_time": "2026-10-05T15:45:32.960838+00:00",
"status": "completed"
},
"tags": []
@@ -644,16 +644,16 @@
"id": "2e5d16be",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:18.361279Z",
- "iopub.status.busy": "2026-09-01T18:55:18.360968Z",
- "iopub.status.idle": "2026-09-01T18:55:19.942380Z",
- "shell.execute_reply": "2026-09-01T18:55:19.941496Z"
+ "iopub.execute_input": "2026-10-05T15:45:32.973018Z",
+ "iopub.status.busy": "2026-10-05T15:45:32.972730Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.093946Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.093072Z"
},
"papermill": {
- "duration": 1.586261,
- "end_time": "2026-09-01T18:55:19.942956+00:00",
+ "duration": 2.126029,
+ "end_time": "2026-10-05T15:45:35.094571+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:18.356695+00:00",
+ "start_time": "2026-10-05T15:45:32.968542+00:00",
"status": "completed"
},
"tags": []
@@ -708,10 +708,10 @@
"id": "7c83da19",
"metadata": {
"papermill": {
- "duration": 0.003274,
- "end_time": "2026-09-01T18:55:19.949429+00:00",
+ "duration": 0.002515,
+ "end_time": "2026-10-05T15:45:35.099851+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:19.946155+00:00",
+ "start_time": "2026-10-05T15:45:35.097336+00:00",
"status": "completed"
},
"tags": []
@@ -740,10 +740,10 @@
"id": "d31c19eb",
"metadata": {
"papermill": {
- "duration": 0.002694,
- "end_time": "2026-09-01T18:55:19.955502+00:00",
+ "duration": 0.002474,
+ "end_time": "2026-10-05T15:45:35.104906+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:19.952808+00:00",
+ "start_time": "2026-10-05T15:45:35.102432+00:00",
"status": "completed"
},
"tags": []
@@ -770,16 +770,16 @@
"id": "b8f0aa8b",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:19.961891Z",
- "iopub.status.busy": "2026-09-01T18:55:19.961704Z",
- "iopub.status.idle": "2026-09-01T18:55:19.967746Z",
- "shell.execute_reply": "2026-09-01T18:55:19.967046Z"
+ "iopub.execute_input": "2026-10-05T15:45:35.111997Z",
+ "iopub.status.busy": "2026-10-05T15:45:35.111673Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.117944Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.117179Z"
},
"papermill": {
- "duration": 0.010194,
- "end_time": "2026-09-01T18:55:19.968353+00:00",
+ "duration": 0.011596,
+ "end_time": "2026-10-05T15:45:35.118983+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:19.958159+00:00",
+ "start_time": "2026-10-05T15:45:35.107387+00:00",
"status": "completed"
},
"tags": []
@@ -828,10 +828,10 @@
"id": "95a6237e",
"metadata": {
"papermill": {
- "duration": 0.003006,
- "end_time": "2026-09-01T18:55:19.974303+00:00",
+ "duration": 0.002674,
+ "end_time": "2026-10-05T15:45:35.124484+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:19.971297+00:00",
+ "start_time": "2026-10-05T15:45:35.121810+00:00",
"status": "completed"
},
"tags": []
@@ -853,10 +853,10 @@
"id": "e48be873",
"metadata": {
"papermill": {
- "duration": 0.002802,
- "end_time": "2026-09-01T18:55:19.979880+00:00",
+ "duration": 0.002621,
+ "end_time": "2026-10-05T15:45:35.129909+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:19.977078+00:00",
+ "start_time": "2026-10-05T15:45:35.127288+00:00",
"status": "completed"
},
"tags": []
@@ -884,16 +884,16 @@
"id": "ed284baf",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:19.986467Z",
- "iopub.status.busy": "2026-09-01T18:55:19.986301Z",
- "iopub.status.idle": "2026-09-01T18:55:20.610228Z",
- "shell.execute_reply": "2026-09-01T18:55:20.608781Z"
+ "iopub.execute_input": "2026-10-05T15:45:35.136793Z",
+ "iopub.status.busy": "2026-10-05T15:45:35.136548Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.700823Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.699981Z"
},
"papermill": {
- "duration": 0.628498,
- "end_time": "2026-09-01T18:55:20.611190+00:00",
+ "duration": 0.56869,
+ "end_time": "2026-10-05T15:45:35.701416+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:19.982692+00:00",
+ "start_time": "2026-10-05T15:45:35.132726+00:00",
"status": "completed"
},
"tags": []
@@ -913,7 +913,7 @@
},
{
"data": {
- "image/png": "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ALA0gh0AAGBpBDtp9Oabb5rRlwcMGJDqft98841Ur15dQkJCpE6dOvLjjz+Kv0pLns2YMcPs47ho3vmDqKioFO9dr53U+Pv1ld488+fry+7IkSPSu3dvCQsLk7x585rrZtOmTam+ZtWqVVK/fn3Tg6Zy5comH/1FevNL8yr5NabL8ePHxR9UqFDB5ft//vnns9XvmF+MoJxZv/32m0yZMkVuv/32VPdbt26d9OzZU8aOHSsPPPCAzJ49Wx588EHZsmWL1K5dW/xJWvNM6aiau3fvTnruySk9srtatWrJ8uXLk57rZHnucH2lP8/8/fo6d+6cNGvWTFq1aiWLFi2S4sWLy969e6VIkSJuXxMbGysdO3aUZ599VmbNmiU//fSTPP300xIeHi5t27YVK8tIftnpNeY4QnCJEiXEX37rExISkp7v3LlT7r//funWrVv2+h3Trudw79KlS7YqVarYli1bZmvRooWtf//+bvft3r27rWPHjk7r7rrrLtszzzzjV1mcnjybPn26LTQ01OaPRowYYatbt26a9+f6Sn+e+fP1pV599VVb8+bN0/WaV155xVarVi2ndY888oitbdu2NqvLSH6tXLlSh2+xnTt3zmvpykn69+9vq1Spki0xMTFb/Y5RjXULWhSn/8tp3br1LQPH9evXp9hP/yek6/1JevJMXb58WcqXL28mi+vSpYv88ccf4i/0f406iV1ERIT06tVLDh065HZfrq/055m/X1/z5s2Thg0bmv9la0nDHXfcIdOmTUv1Nf58nWUkv+zq1atnSr+0VGPt2rXij+Lj4+Xzzz+XPn36uC1B9dX1RbCTii+//NIUrWlxW1poHW3JkiWd1ulzf6m7zUieVatWTT755BP54YcfzJdEZ6hv2rSp/PXXX2J1d911l2kLsXjxYpk0aZKpPrj77rvNLL6ucH2lP8/8+fpSMTExJp+qVKkiS5YskX79+smLL74oM2fOdPsad9eZzl599epVsbKM5JcGOJMnT5bvvvvOLBpUt2zZ0vwO+pu5c+fK+fPn5YknnnC7j89+x7xabpSDHTp0yFaiRAnbtm3bktbdqkomKCjINnv2bKd1EydONMfxBxnJs+Ti4+NNEeiwYcNs/kaLwQsVKmT76KOPXG739+srI3nm79eXXjNNmjRxWvfCCy/YGjdu7PY1WgU9ZswYp3ULFy40VTVx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",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAFaCAYAAAD4lpw5AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPvNJREFUeJzt3Qu8jOX+//8PlkPlsJxCyHFLco6QpERRybbTrkTkUKld0a79TZG07ah2p10SpSSU1E6o6OCUJEIHJOVQyXk557zcv8f7+v9n7VlrzazjjFnrntfz8ZjHmrnnvu+51zX3zP2Z6/pc11XA8zzPAAAAfKpgrA8AAAAgmgh2AACArxHsAAAAXyPYAQAAvkawAwAAfI1gBwAA+BrBDgAA8DWCHQAA4GsEOwAAwNcSYn0AQH7Wo0ePsM89++yzVq5cuVN6PP/5z3/s119/tX//+99Z3ubgwYP25ptv2tq1a+3QoUNWs2ZNu/zyy61Ro0Zht9m4caMNHTrUTj/9dHvppZesYMH0v5tWr15tI0eOtD59+li7du1C7iewTrBSpUpZjRo17MYbb7TKlStnuL5et0yZMtaqVSv7y1/+YoULF870/z1+/Lh9+umnNnPmTNu/f78NHz7catWqZdlx4MABu+OOO+xvf/ubtWjRIux6+/btsylTpthPP/1khw8fdq/TqVMnO++888Ju88MPP9i//vUvS0xMtBdeeCHkOsuXL7dnnnnGHcOFF16Y4ToBBQoUcGWr9/emm26yChUqZLh+oUKFrGzZsta6dWvr0qWLJSRkfrn4/PPPbcGCBe4c1Hun971NmzaZbgdEGzU7QC5MnjzZ1q1bZx07dkx3O+2000552S5cuNCmT5+e5fXnzp1r1apVcxc5BWZNmzZ1F9vmzZtb165dw243btw4FyC9/PLLLnAIZevWrSnlE05gnSJFiqSU2znnnGPvv/++uyhPmzYtw/UDQVSvXr2sZcuWLnjJyKxZs6xq1aouKPztt9/cvnbu3GnZ9dFHH7kgpnr16mHX+eCDD1zZKhhUYNGkSRP79ttvXRDZs2fPsNu9+OKLrmxHjx5tixcvDrlO4Ng3bNgQdj+BdUqWLOnK6oorrrDatWvb1KlT3XHr+DJa/5JLLrFjx465oLNt27YuEA7n5MmTdu6557rX+P33361Zs2a2e/du69Chg11//fV24sSJsNsCp4TmxgKQM/oIXXvttXmm+HQstWrVytK6ycnJXtWqVb06dep4hw4dSvXcsmXLvHbt2oXc7vjx417FihW9fv36uW27desWcr1PPvnElc+YMWPCHkO4dY4dO+bVrFnTq1atWpbWHz9+vFv+6KOPZvg/b9q0yUtKSnL3n3zySbfNl19+6WVX9+7dvVatWoV9Xsdfrlw5r2HDht7Ro0dTPbdo0SKvU6dOIbc7fPiwl5iY6N19991elSpVvN69e4dc77333nPH/sYbb4Q9hnDr6DUqVarknXfeeVla/7nnnnPLn3766bCvpXOifv363rp161Itf/PNN922o0ePDrstcCpQswNE0ZIlS1xTl6r11Uz04IMP2s033+yaN0R/1VRx66232oABA2z8+PGuuSPYU089ZYMHD3b333vvPbfewIED0/3qf/jhh23ZsmW2fft295qBm351h7Jjxw73a/7iiy9OVwulX+bvvPNO2NqRbdu22Z133mm33367q4XJSe1IRtQc9ac//SnL+73qqqvc36VLl2a4nmpa1OyVG6ql+PDDD13TTji//PKL7dq1y9U8qRYqmJqFVIMSispc54Sax3ROvP3225nWVmVXsWLFXK1ZJMtWTV5qwtJ7FuzPf/6z+zt//vxcHTOQWwQ7QBRt2rTJXdj++9//uvyKM888044cOeICGuWfqOpfzRW6SFSpUsXljzRu3Ng1BQTMmzfP5Zco4Jk9e7Y1bNjQNV8oF0KPA5S3ouaSM844I1VzmnI1QilfvrzLufn6669DNjOULl065HZqutJr6ThvueUWl8vx+uuvWyTp/9fFNav5HoEmllPRdKiclL1796ZcyENRvorKRcFnqGAzo7Jt3769Ox/69+/v8ovUXBZJyrdSc1oky1bnmHKM0lq/fr37q6YxIJZIUAZySRe0tInKl112mQsEApRH88knn7gai7vuusuSk5PdL2b9Iv7qq69SLgbapm7duq7GRAFO8AVKF9BAcq6eV7Ch4EgBjSjxVTVDypXIKHE6QK/92GOPuVqiBg0auNyMCy64wN3C1X5s3rzZBViB4EYXOG33yiuv2H333Wc59dprr9miRYvc/T179rhagquvvtoleWdGrYlPP/20u3/llVdatM2YMcPlFekWjgKDRx55xIYMGeJydFRG559/vktmDhUUiHKblHOl2jupWLGiy5tS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pzbYKVy4sI0fP94effRR++abb9zM55oUlLmxAACAL4KdO+64w/r06WPNmjUjwAEAAP7L2Vm9erU1b97cGjZsaM8++6zt2rUr8kcGAAAQq2BnwYIF9tNPP1nnzp3tqaeecrU71113nX300UcpOTwAAAD5erqI2rVr27/+9S/75ZdfbPr06W6ZBho8++yz3USgW7ZsieRxAgAAxGZurMOHD9v27dvdLTk52erWreu6pNeoUcMmTJiQ290DAADEJthZvHix9evXzypVqmQPPfSQXXzxxfbzzz/bp59+at999529/vrrdv/99+fu6AAAAGLRG0u1N+vXr7crr7zSJk+e7P4WKlQo1TrXX3+99ejRI7fHBwAAcOqDncAIyqrVCUdj75w4ccJyy/M8mzJlis2ZM8eN1tyyZUu755577Iwzzsj1vgEgniWf9FLuL92429qeU8EKFSwQ02MC8kwz1oMPPphhoBNJt912m913333WunVr69Wrl82dO9c6dOjg8oMAADkze9VWa//0gpTHfV5fbhc9PtctB+I62NHkn1dffXXY56+66qqQE4TmlJKeX375ZXv++edd0HPttde6Obg0zs9bb70VsdcBgHiigGbApBW2ff/RVMu37TvilhPwIK6bsZ544gmXlByOntM606ZNi1iwI9WrV09Zpuar8uXLuzF9brrppoi8DgDEU9PV8Jlr7H8NWP+jZWrEemTGGmtduxxNWiFoLLnDx5Lt0LETbk5IZF5eSkfJV8HO0qVL3YjJ4WhU5UGDBlmknHPOOVa2bFnXhf388893eUDz58+3jRs3WoUKFcJud/ToUXcL2L9/f0qhR3rQw8AbyWCKlFc0cH5RXpH21YYk27rvSNjndVnatv+INXjk44i/NuJTo7OK2zsDLoz4frNz3c1WsLN161ZXqxKOntM6kVK0aFF78803Xa6OanIU+Chwadu2rR08eDDsdiNHjrThw4enW75nz56IJE2nLewDBw64gIcon/KKNM4vyivSNmxNivg+gYx8u+Wgbdmxy84oWtgiSdfeqAQ7FStWtDVr1ljjxo1DPv/DDz9EPHFZyciqyVm7dq0bwLBp06YuN0jHEs7gwYPt3nvvTXmsAKlq1apWunRpK1myZMQvRqpx0r4JdiivSOP8orwirWYl1d2sz3S9V3udbxfUKBPx1/fDZ1I9gxMTE/nOz8Sh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4Gc7duxw3+GhZHatPHHihLtOFilSxM4999yID/ibjhKUkbGff/7ZS0xMVCK3t3LlygzXXbZsmXf22Wd7VapU8SpUqODVrl3bW716dVwVcXJysnfJJZd4BQsW9B566KEM173pppu8M88802vdunXK7dZbb/XiwbRp07xChQql+t91S0pKynC7UaNGecWKFfPOPfdc97d79+7esWPHvHigz2D9+vVTlde7774b8W385LXXXvPKlCnj1alTx6tbt6735z//2Ttw4EDY9fft2+e1b9/eK168uNtGfydOnOjFi1WrVnlNmjTxypcv751//vnuc/b111+HXf/NN9/0EhIS0n2O9+7d6/ndhx9+mO7/1rWvQIEC3ubNm8Nut2jRIq9SpUruWqlyrlevnrvORhPBTiaOHj3qNWvWzPu///u/TIMdrVutWjWvb9++KRf9rl27euedd5538uRJL14MHz7cu/baa71atWplKdjp1auXF48U7JQqVSpb23z66acuiNRf2bhxo1euXDnvX//6lxcP9Bn85JNPor6NX7z33nsuoP7vf/+bsmzmzJnepk2bwm7Tr18/75xzzvF2797tHr/88svuYv7jjz96frdr1y73I7VPnz4pPyBUVrNmzcow2ClbtuwpPMq87cILL/Q6dOgQ9vmDBw96FStW9O6++273+MSJE94VV1zhNW/ePKrHFX/tK9n0wAMPuGrcG264IdN1P/vsM/vll19syJAh7rGarx566CFbvXq1ffXVVxYPPv/8cxs/fryNGzcuy9scPnzYli9f7qrNNY9ZPNG1WM19qs49cuRIpuu/+uqrduGFF9pll13mHlevXt169OjhlseLrVu3uvNFTSzR3MYPHn74Ybv++uuta9euKcuuvvpqq1atWsj1jx49alOmTLG77rrLSpcu7Zb17dvXzjzzTJs4caL53ejRo10ZPP/88ylNySqrq666KsufY20fr9auXWuLFy+2/v37h13nww8/dM1fujaKmggHDx5sy5Ytc+UXLQQ7GdCbMn36dPcByIqVK1da2bJl3QUooGnTpu7N1HN+pwuJLrwKdsqUKZPl7d577z3r06ePNW/e3GrXrm1z5861eJokr0uXLu6mMnvssccyXF/n0fnnn59q2QUXXODydzQhXjwYNGiQO180+d+f//xn27lzZ1S2ye/0P37//ffWuXNnl+Ol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9ZWbk+bCCy+0kiVLpmqOmj59unXq1MnNuK4ZsTV7fWAupVWrVtn69evt3HPPtTp16oTc/88//+y206zijRo1CrlvNTmtXbvWGjdu7I5bfv31V1u5cqWb/6tp06Z2xhlnZPj/aqabJUuWuBmUGzZsGHa97O539+7drkZM87NpDi2Vz5YtW1yZHT582DXXiV5T8x/NmzfPPT7ttNNcmahsAsJtV7VqVVcOaal8f/rpJ6tQoYK1aNEi1RxxKneVWceOHe27775zZajyC56bL9zxA/GOYAfwiUGDBtmwYcNs3LhxYWsg9NzAgQPtggsusD/++MMFJlOnTrXLL788VXOUJjPcuXOnq4HQBJKazPbgwYO2YsUKd3GdO3eum8ivf//+qfb/j3/8w3788Uf705/+5CZU1ASKL730Uqp9X3XVVW7iQAVCpUuXdsHOvffe6yYFbNWqlbtYqzlMkynqgh/K8ePH7ZprrnFNV/pfvv/+ezehZVrZ3e/MmTPdMSu406SGCjw0sa8mZNX/rqBFAZsULVrU/Z+BxypPTTLaoUMHNzmkJiVVYBlqO6173333WZcuXdyy5ORku+GGG+zTTz+1li1buqBHE8LOnj3bBT7yySef2MMPP2y1a9d2k1BqgkUFe1OmTLGuXbtmePyB9xeIW1GdUx3AKVGoUCHvjTfe8J588kmvQoUK3oEDB9zy2267zbvsssvc/U2bNnlFixb1JkyYkLLdfffd51WuXNn7448/3OOtW7dqYmCvZ8+e3smTJ92y1157zS3r169fyrLnn3/eK1++fMp+AttdfPHF3pEjR9yylStXegkJCd7HH3+cap0uXbp4J06cSNn21Vdf9apXr+7t2LEjZdmoUaO82rVrh/1/R48e7V7/999/d4+TkpK8GjVqeKVKlcrVflu2bOk9+uijKY/37NnjzZ07N6UcVFYZ2bVrl1elShXvrbfeSlkWaju9V3qfAl566SUvMTHR27hxo3us969JkybeLbfckrLOmDFjXPkF7/uBBx7w6tWrl6XjB+IZOTuAj9x1112u5uCpp55K95xqFlRbcPPNN6cse+ihh1xziGphgqnGRjUToloRufXWW1MtU82PamuC3X333e71RU0sqlFQ8nQw1ToFN8+89tprrmlHuS3Tpk1z66upSbVO4RKetc5NN91kZ511lnusJqq0tUw52a+aolQbopoYSUxMtEsvvdQycuLECVfDop5gqn1RE9XSpUstO9TEpbwr1aRJ8eLF7Z577nG1bsFUE3b99denPL7kkkvc8apJL6fHD8QDmrEAH1Gg8eijj9rf/vY3u/3229N1d65Ro0ZKwBK4GCrvRM+lvagG7zPcMuXhBAtcrAP0emqyClapUqVUjzdt2uSayNImV+uiruaqcHk4gaab4NfK7X6fe+45FzSp2Ur5TJ07d3ZBXuD/TWv16tUu90bP161b1wVTW7dutR07dlh2qPyvvvrqVMtq1aplhw4dckGljicQ1AXT6+p/UTOY8rSye/xAvCDYAXymZ8+ermZHQU8w1eoobyWYLpIaG0fPRYKShdM+Trvv4GBLlECrGoqnn346y6+jAC3Ua+V2vw0aNHC1NNu2bXO5SipDdRNPWzsVMHToULvoootc3kyAgpZATUtWhXpv9Fg1YApIo3X8QLygGQvwGSWujhw50iUjq8kmoE2bNq6XlG7BTVtaX712IiGQhCtKwp0zZ461bt06w23Uu0gJvWkHJFTzWjgKMDR2TXBQkXZAwZzsN/BcxYoVXTOZkrkVPASaltLWZCmoUI1OgGp0FFwEC7VdqP9HgwyePHkyZZma3pRIrWTkrMro+IF4Rs0O4EPq8aQgQ7/uL7vsspRgp1u3bi4IUC8lBSOjRo2yBx54IF335ZwK1CDUr1/f5cyoxkI9uTIyZMgQl+uigEtNLmoKUs6LenWpd1Mo6vU1adIkV4uiHk36P7/55ptc71djFan7uHKSFKA888wzbpmoh5NylIYPH27nnHOOywdSN3+V4emnn+6ail544QUXPAYLtV1aGjJA+Tl6b/Qeqbu6mt/U6y07Mjp+IJ4R7AA+oDyUtPkyar554oknXNNGgJpbFCQsXLjQ1RjovrpwByjBVfsKbjpRkKBlJUqUSFmm57VM6wdvp67RH374oesSrgt3cMJyqH0H9qWL++TJk+3LL79067dr187VTIWjvB+9xujRo92YMmquUi2GBlHMzX6VzKzaIAVDKh81BwZyg5RD89FHH7naK413o/3df//9Lklao1Rr3CKtr+Tn4BqaUNulHVRQQaHGAtKxKVlcNTPLly9P1Z1eXc7T5vWceeaZrkwDAVZGxw/EswLqkhXrgwAAAIgWcnYAAICvEewAAABfI9gBAAC+RrADAAB8jWAHAAD4GsEOAADwNYIdAADgawQ7AADA1wh2AACArxHsAAAAXyPYAQAAvkawAwAAzM/+Hze25m8w46WUAAAAAElFTkSuQmCC",
"text/plain": [
""
]
@@ -960,10 +960,10 @@
"id": "8e4bf7c5",
"metadata": {
"papermill": {
- "duration": 0.004212,
- "end_time": "2026-09-01T18:55:20.620153+00:00",
+ "duration": 0.002796,
+ "end_time": "2026-10-05T15:45:35.707180+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.615941+00:00",
+ "start_time": "2026-10-05T15:45:35.704384+00:00",
"status": "completed"
},
"tags": []
@@ -990,10 +990,10 @@
"id": "995aefa8",
"metadata": {
"papermill": {
- "duration": 0.004028,
- "end_time": "2026-09-01T18:55:20.628512+00:00",
+ "duration": 0.00517,
+ "end_time": "2026-10-05T15:45:35.715264+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.624484+00:00",
+ "start_time": "2026-10-05T15:45:35.710094+00:00",
"status": "completed"
},
"tags": []
@@ -1030,16 +1030,16 @@
"id": "f617b8f5",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:20.636214Z",
- "iopub.status.busy": "2026-09-01T18:55:20.635768Z",
- "iopub.status.idle": "2026-09-01T18:55:20.689534Z",
- "shell.execute_reply": "2026-09-01T18:55:20.688606Z"
+ "iopub.execute_input": "2026-10-05T15:45:35.721735Z",
+ "iopub.status.busy": "2026-10-05T15:45:35.721515Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.764270Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.763377Z"
},
"papermill": {
- "duration": 0.058619,
- "end_time": "2026-09-01T18:55:20.690331+00:00",
+ "duration": 0.047074,
+ "end_time": "2026-10-05T15:45:35.765030+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.631712+00:00",
+ "start_time": "2026-10-05T15:45:35.717956+00:00",
"status": "completed"
},
"tags": []
@@ -1122,10 +1122,10 @@
"id": "3c1e5f8b",
"metadata": {
"papermill": {
- "duration": 0.005467,
- "end_time": "2026-09-01T18:55:20.701009+00:00",
+ "duration": 0.003575,
+ "end_time": "2026-10-05T15:45:35.771794+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.695542+00:00",
+ "start_time": "2026-10-05T15:45:35.768219+00:00",
"status": "completed"
},
"tags": []
@@ -1150,10 +1150,10 @@
"id": "a6f3e1ca",
"metadata": {
"papermill": {
- "duration": 0.004728,
- "end_time": "2026-09-01T18:55:20.709750+00:00",
+ "duration": 0.004625,
+ "end_time": "2026-10-05T15:45:35.780364+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.705022+00:00",
+ "start_time": "2026-10-05T15:45:35.775739+00:00",
"status": "completed"
},
"tags": []
@@ -1182,16 +1182,16 @@
"id": "8ed7e849",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:20.719333Z",
- "iopub.status.busy": "2026-09-01T18:55:20.719123Z",
- "iopub.status.idle": "2026-09-01T18:55:20.724875Z",
- "shell.execute_reply": "2026-09-01T18:55:20.723650Z"
+ "iopub.execute_input": "2026-10-05T15:45:35.791848Z",
+ "iopub.status.busy": "2026-10-05T15:45:35.791510Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.797358Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.795886Z"
},
"papermill": {
- "duration": 0.011283,
- "end_time": "2026-09-01T18:55:20.726289+00:00",
+ "duration": 0.013074,
+ "end_time": "2026-10-05T15:45:35.798607+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.715006+00:00",
+ "start_time": "2026-10-05T15:45:35.785533+00:00",
"status": "completed"
},
"tags": []
@@ -1219,10 +1219,10 @@
"id": "e1735a96",
"metadata": {
"papermill": {
- "duration": 0.004653,
- "end_time": "2026-09-01T18:55:20.737892+00:00",
+ "duration": 0.00371,
+ "end_time": "2026-10-05T15:45:35.806303+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.733239+00:00",
+ "start_time": "2026-10-05T15:45:35.802593+00:00",
"status": "completed"
},
"tags": []
@@ -1253,16 +1253,16 @@
"id": "f6127e7f",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:20.752207Z",
- "iopub.status.busy": "2026-09-01T18:55:20.751798Z",
- "iopub.status.idle": "2026-09-01T18:55:20.757686Z",
- "shell.execute_reply": "2026-09-01T18:55:20.756913Z"
+ "iopub.execute_input": "2026-10-05T15:45:35.814990Z",
+ "iopub.status.busy": "2026-10-05T15:45:35.814742Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.818976Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.818123Z"
},
"papermill": {
- "duration": 0.012839,
- "end_time": "2026-09-01T18:55:20.758559+00:00",
+ "duration": 0.00954,
+ "end_time": "2026-10-05T15:45:35.819743+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.745720+00:00",
+ "start_time": "2026-10-05T15:45:35.810203+00:00",
"status": "completed"
},
"tags": []
@@ -1290,10 +1290,10 @@
"id": "7bd8b295",
"metadata": {
"papermill": {
- "duration": 0.003026,
- "end_time": "2026-09-01T18:55:20.767952+00:00",
+ "duration": 0.002831,
+ "end_time": "2026-10-05T15:45:35.825605+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.764926+00:00",
+ "start_time": "2026-10-05T15:45:35.822774+00:00",
"status": "completed"
},
"tags": []
@@ -1324,16 +1324,16 @@
"id": "6a95135e",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-01T18:55:20.775382Z",
- "iopub.status.busy": "2026-09-01T18:55:20.775039Z",
- "iopub.status.idle": "2026-09-01T18:55:20.779801Z",
- "shell.execute_reply": "2026-09-01T18:55:20.778957Z"
+ "iopub.execute_input": "2026-10-05T15:45:35.832880Z",
+ "iopub.status.busy": "2026-10-05T15:45:35.832535Z",
+ "iopub.status.idle": "2026-10-05T15:45:35.836361Z",
+ "shell.execute_reply": "2026-10-05T15:45:35.835715Z"
},
"papermill": {
- "duration": 0.009934,
- "end_time": "2026-09-01T18:55:20.780948+00:00",
+ "duration": 0.008199,
+ "end_time": "2026-10-05T15:45:35.836905+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.771014+00:00",
+ "start_time": "2026-10-05T15:45:35.828706+00:00",
"status": "completed"
},
"tags": []
@@ -1360,10 +1360,10 @@
"id": "0558298f",
"metadata": {
"papermill": {
- "duration": 0.005698,
- "end_time": "2026-09-01T18:55:20.790640+00:00",
+ "duration": 0.002806,
+ "end_time": "2026-10-05T15:45:35.842484+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.784942+00:00",
+ "start_time": "2026-10-05T15:45:35.839678+00:00",
"status": "completed"
},
"tags": []
@@ -1383,10 +1383,10 @@
"id": "6eba71e6",
"metadata": {
"papermill": {
- "duration": 0.005723,
- "end_time": "2026-09-01T18:55:20.800089+00:00",
+ "duration": 0.003437,
+ "end_time": "2026-10-05T15:45:35.848996+00:00",
"exception": false,
- "start_time": "2026-09-01T18:55:20.794366+00:00",
+ "start_time": "2026-10-05T15:45:35.845559+00:00",
"status": "completed"
},
"tags": []
@@ -1446,21 +1446,21 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.13.14"
+ "version": "3.13.15"
},
"papermill": {
"default_parameters": {},
- "duration": 16.056003,
- "end_time": "2026-09-01T18:55:21.154131+00:00",
+ "duration": 12.290784,
+ "end_time": "2026-10-05T15:45:36.194895+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-29-SALBP-AssemblyLineBalancing-Audit.ipynb",
- "output_path": "App-29-SALBP-AssemblyLineBalancing-Audit.ipynb",
+ "input_path": "Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb",
+ "output_path": "Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb",
"parameters": {},
- "start_time": "2026-09-01T18:55:05.098128+00:00",
+ "start_time": "2026-10-05T15:45:23.904111+00:00",
"version": "2.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
-}
+}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb
similarity index 55%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb
index 113796437c..dfc1da3437 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb
@@ -5,19 +5,19 @@
"id": "1e92f55a",
"metadata": {
"papermill": {
- "duration": 0.007527,
- "end_time": "2026-09-06T23:41:08.794454+00:00",
+ "duration": 0.004517,
+ "end_time": "2026-10-05T15:45:44.287343+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:08.786927+00:00",
+ "start_time": "2026-10-05T15:45:44.282826+00:00",
"status": "completed"
},
"tags": []
},
"source": [
- "# App-30 — Ordonnancement d'assemblage orbital\n",
+ "# Frontieres-08 — Ordonnancement d'assemblage orbital\n",
"## Le certificat, pas seulement le chiffre : encodage lexicographique, comparaison appariée, front d'échange\n",
"\n",
- "**Navigation** : [Index Applications](../README.md) | [Série Search](../../README.md) | [CSP-4 Scheduling](../../Part2-CSP/CSP-4-Scheduling.ipynb) | [App-29 SALBP](App-29-SALBP-AssemblyLineBalancing-Audit.ipynb)\n",
+ "**Navigation** : [Partie 5](README.md) | [Série Search](../README.md) | [CSP-4 Scheduling](../Part2-CSP/CSP-4-Scheduling.ipynb) | [Frontieres-07 SALBP](Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb)\n",
"\n",
"> **Hommage à Gurvan Estable, Joris Bely et Kévin Lubert — projet C4, EPITA SCIA 2026.** Leur projet n'a pas traité l'assemblage orbital comme un ordonnancement d'atelier déguisé. Il a fait descendre la physique dans le modèle : les durées de manœuvre viennent d'un temps de vol de Hohmann réellement calculé, les coûts viennent d'un Δv réellement calculé, et le budget d'ergol contraint les mêmes intervalles que les couloirs orbitaux. Coupler ainsi la décision temporelle et la décision énergétique dans un unique modèle CP-SAT — au lieu de fixer des durées arbitraires — est le geste central de cette distillation.\n",
"\n",
@@ -44,10 +44,10 @@
"id": "2c2d88fb",
"metadata": {
"papermill": {
- "duration": 0.006232,
- "end_time": "2026-09-06T23:41:08.807055+00:00",
+ "duration": 0.004691,
+ "end_time": "2026-10-05T15:45:44.296899+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:08.800823+00:00",
+ "start_time": "2026-10-05T15:45:44.292208+00:00",
"status": "completed"
},
"tags": []
@@ -71,16 +71,16 @@
"id": "9c98b8a8",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:08.820498Z",
- "iopub.status.busy": "2026-09-06T23:41:08.820040Z",
- "iopub.status.idle": "2026-09-06T23:41:12.179193Z",
- "shell.execute_reply": "2026-09-06T23:41:12.177152Z"
+ "iopub.execute_input": "2026-10-05T15:45:44.309239Z",
+ "iopub.status.busy": "2026-10-05T15:45:44.308828Z",
+ "iopub.status.idle": "2026-10-05T15:45:45.409091Z",
+ "shell.execute_reply": "2026-10-05T15:45:45.407941Z"
},
"papermill": {
- "duration": 3.367609,
- "end_time": "2026-09-06T23:41:12.180350+00:00",
+ "duration": 1.108127,
+ "end_time": "2026-10-05T15:45:45.409953+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:08.812741+00:00",
+ "start_time": "2026-10-05T15:45:44.301826+00:00",
"status": "completed"
},
"tags": []
@@ -91,11 +91,11 @@
"output_type": "stream",
"text": [
"Environnement de collecte :\n",
- " python : 3.13.14\n",
+ " python : 3.13.15\n",
" ortools : 9.15.6755\n",
- " pandas : 2.3.3\n",
- " matplotlib : 3.10.8\n",
- " platform : Windows-11-10.0.26200-SP0\n",
+ " pandas : 3.0.5\n",
+ " matplotlib : 3.11.1\n",
+ " platform : Windows-11-10.0.26300-SP0\n",
" slot_seconds : 900\n",
" dv_unit_mps : 5.0\n",
"\n",
@@ -130,7 +130,7 @@
"\n",
"DATA_DIR = Path(\"data/app30-orbital-assembly-audit\")\n",
"if not DATA_DIR.exists():\n",
- " DATA_DIR = Path(\"MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit\")\n",
+ " DATA_DIR = Path(\"MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit\")\n",
"DATA_DIR.mkdir(parents=True, exist_ok=True)\n",
"\n",
"# --- Constantes canoniques a deux corps ---\n",
@@ -206,10 +206,10 @@
"id": "47717d26",
"metadata": {
"papermill": {
- "duration": 0.006025,
- "end_time": "2026-09-06T23:41:12.193006+00:00",
+ "duration": 0.004261,
+ "end_time": "2026-10-05T15:45:45.418652+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.186981+00:00",
+ "start_time": "2026-10-05T15:45:45.414391+00:00",
"status": "completed"
},
"tags": []
@@ -229,10 +229,10 @@
"id": "ce48f286",
"metadata": {
"papermill": {
- "duration": 0.006144,
- "end_time": "2026-09-06T23:41:12.205462+00:00",
+ "duration": 0.004103,
+ "end_time": "2026-10-05T15:45:45.426990+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.199318+00:00",
+ "start_time": "2026-10-05T15:45:45.422887+00:00",
"status": "completed"
},
"tags": []
@@ -258,16 +258,16 @@
"id": "560b3f01",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:12.237361Z",
- "iopub.status.busy": "2026-09-06T23:41:12.236754Z",
- "iopub.status.idle": "2026-09-06T23:41:12.254132Z",
- "shell.execute_reply": "2026-09-06T23:41:12.252924Z"
+ "iopub.execute_input": "2026-10-05T15:45:45.437393Z",
+ "iopub.status.busy": "2026-10-05T15:45:45.436958Z",
+ "iopub.status.idle": "2026-10-05T15:45:45.450668Z",
+ "shell.execute_reply": "2026-10-05T15:45:45.449343Z"
},
"papermill": {
- "duration": 0.043734,
- "end_time": "2026-09-06T23:41:12.255143+00:00",
+ "duration": 0.020848,
+ "end_time": "2026-10-05T15:45:45.452085+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.211409+00:00",
+ "start_time": "2026-10-05T15:45:45.431237+00:00",
"status": "completed"
},
"tags": []
@@ -374,10 +374,10 @@
"id": "28bcdd40",
"metadata": {
"papermill": {
- "duration": 0.00603,
- "end_time": "2026-09-06T23:41:12.267607+00:00",
+ "duration": 0.004831,
+ "end_time": "2026-10-05T15:45:45.461394+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.261577+00:00",
+ "start_time": "2026-10-05T15:45:45.456563+00:00",
"status": "completed"
},
"tags": []
@@ -397,10 +397,10 @@
"id": "5b89a9f4",
"metadata": {
"papermill": {
- "duration": 0.013246,
- "end_time": "2026-09-06T23:41:12.286798+00:00",
+ "duration": 0.005493,
+ "end_time": "2026-10-05T15:45:45.471938+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.273552+00:00",
+ "start_time": "2026-10-05T15:45:45.466445+00:00",
"status": "completed"
},
"tags": []
@@ -427,16 +427,16 @@
"id": "40f809a3",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:12.349968Z",
- "iopub.status.busy": "2026-09-06T23:41:12.349498Z",
- "iopub.status.idle": "2026-09-06T23:41:12.373451Z",
- "shell.execute_reply": "2026-09-06T23:41:12.371834Z"
+ "iopub.execute_input": "2026-10-05T15:45:45.483600Z",
+ "iopub.status.busy": "2026-10-05T15:45:45.483295Z",
+ "iopub.status.idle": "2026-10-05T15:45:45.504819Z",
+ "shell.execute_reply": "2026-10-05T15:45:45.503588Z"
},
"papermill": {
- "duration": 0.053716,
- "end_time": "2026-09-06T23:41:12.374602+00:00",
+ "duration": 0.028984,
+ "end_time": "2026-10-05T15:45:45.506157+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.320886+00:00",
+ "start_time": "2026-10-05T15:45:45.477173+00:00",
"status": "completed"
},
"tags": []
@@ -452,13 +452,7 @@
" budget d'ergol 818 u | capacite de debit 94 u/creneau\n",
" empreinte d'identite : 9561a6bad9f3485d526b01c678090c09...\n",
"\n",
- "Les six premieres poussees :\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
+ "Les six premieres poussees :\n",
" idx poussee couloir fenetre rapide debit_hi econome debit_lo\n",
" 0 M00/transfert 0 [39,130] 4cr/52u 13 8cr/37u 5\n",
" 1 M00/amarrage 0 [18,126] 3cr/6u 2 7cr/3u 1\n",
@@ -582,10 +576,10 @@
"id": "8d88a1c7",
"metadata": {
"papermill": {
- "duration": 0.00615,
- "end_time": "2026-09-06T23:41:12.387008+00:00",
+ "duration": 0.004189,
+ "end_time": "2026-10-05T15:45:45.514426+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.380858+00:00",
+ "start_time": "2026-10-05T15:45:45.510237+00:00",
"status": "completed"
},
"tags": []
@@ -603,10 +597,10 @@
"id": "a9b6052d",
"metadata": {
"papermill": {
- "duration": 0.006087,
- "end_time": "2026-09-06T23:41:12.399452+00:00",
+ "duration": 0.005213,
+ "end_time": "2026-10-05T15:45:45.524681+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.393365+00:00",
+ "start_time": "2026-10-05T15:45:45.519468+00:00",
"status": "completed"
},
"tags": []
@@ -632,16 +626,16 @@
"id": "69a33792",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:12.428341Z",
- "iopub.status.busy": "2026-09-06T23:41:12.428026Z",
- "iopub.status.idle": "2026-09-06T23:41:12.448420Z",
- "shell.execute_reply": "2026-09-06T23:41:12.446818Z"
+ "iopub.execute_input": "2026-10-05T15:45:45.538963Z",
+ "iopub.status.busy": "2026-10-05T15:45:45.538293Z",
+ "iopub.status.idle": "2026-10-05T15:45:45.556497Z",
+ "shell.execute_reply": "2026-10-05T15:45:45.555489Z"
},
"papermill": {
- "duration": 0.044153,
- "end_time": "2026-09-06T23:41:12.449587+00:00",
+ "duration": 0.02742,
+ "end_time": "2026-10-05T15:45:45.557477+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.405434+00:00",
+ "start_time": "2026-10-05T15:45:45.530057+00:00",
"status": "completed"
},
"tags": []
@@ -770,10 +764,10 @@
"id": "f93f9639",
"metadata": {
"papermill": {
- "duration": 0.006096,
- "end_time": "2026-09-06T23:41:12.462149+00:00",
+ "duration": 0.003882,
+ "end_time": "2026-10-05T15:45:45.566142+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.456053+00:00",
+ "start_time": "2026-10-05T15:45:45.562260+00:00",
"status": "completed"
},
"tags": []
@@ -793,10 +787,10 @@
"id": "f7dd28f2",
"metadata": {
"papermill": {
- "duration": 0.020252,
- "end_time": "2026-09-06T23:41:12.488600+00:00",
+ "duration": 0.003352,
+ "end_time": "2026-10-05T15:45:45.573222+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.468348+00:00",
+ "start_time": "2026-10-05T15:45:45.569870+00:00",
"status": "completed"
},
"tags": []
@@ -823,16 +817,16 @@
"id": "77045a29",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:12.533327Z",
- "iopub.status.busy": "2026-09-06T23:41:12.532917Z",
- "iopub.status.idle": "2026-09-06T23:41:12.560760Z",
- "shell.execute_reply": "2026-09-06T23:41:12.559038Z"
+ "iopub.execute_input": "2026-10-05T15:45:45.580540Z",
+ "iopub.status.busy": "2026-10-05T15:45:45.580323Z",
+ "iopub.status.idle": "2026-10-05T15:45:45.595813Z",
+ "shell.execute_reply": "2026-10-05T15:45:45.595212Z"
},
"papermill": {
- "duration": 0.051595,
- "end_time": "2026-09-06T23:41:12.561937+00:00",
+ "duration": 0.020179,
+ "end_time": "2026-10-05T15:45:45.596559+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.510342+00:00",
+ "start_time": "2026-10-05T15:45:45.576380+00:00",
"status": "completed"
},
"tags": []
@@ -1027,10 +1021,10 @@
"id": "192ff934",
"metadata": {
"papermill": {
- "duration": 0.006596,
- "end_time": "2026-09-06T23:41:12.575393+00:00",
+ "duration": 0.003252,
+ "end_time": "2026-10-05T15:45:45.603160+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.568797+00:00",
+ "start_time": "2026-10-05T15:45:45.599908+00:00",
"status": "completed"
},
"tags": []
@@ -1056,10 +1050,10 @@
"id": "28bf5522",
"metadata": {
"papermill": {
- "duration": 0.006306,
- "end_time": "2026-09-06T23:41:12.588787+00:00",
+ "duration": 0.003429,
+ "end_time": "2026-10-05T15:45:45.611961+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.582481+00:00",
+ "start_time": "2026-10-05T15:45:45.608532+00:00",
"status": "completed"
},
"tags": []
@@ -1078,16 +1072,16 @@
"id": "55254d17",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:12.636456Z",
- "iopub.status.busy": "2026-09-06T23:41:12.635929Z",
- "iopub.status.idle": "2026-09-06T23:41:17.650372Z",
- "shell.execute_reply": "2026-09-06T23:41:17.648457Z"
+ "iopub.execute_input": "2026-10-05T15:45:45.620451Z",
+ "iopub.status.busy": "2026-10-05T15:45:45.620095Z",
+ "iopub.status.idle": "2026-10-05T15:45:47.865601Z",
+ "shell.execute_reply": "2026-10-05T15:45:47.864852Z"
},
"papermill": {
- "duration": 5.043842,
- "end_time": "2026-09-06T23:41:17.651646+00:00",
+ "duration": 2.251085,
+ "end_time": "2026-10-05T15:45:47.866391+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:12.607804+00:00",
+ "start_time": "2026-10-05T15:45:45.615306+00:00",
"status": "completed"
},
"tags": []
@@ -1103,7 +1097,7 @@
"Statuts ponderes OPTIMAL : 25/25\n",
"\n",
"Domaine de l'objectif scalarise : 85469 a 604313\n",
- "Temps total pondere 1.617 s | deux passes 2.903 s (x1.80)\n",
+ "Temps total pondere 0.676 s | deux passes 1.329 s (x1.97)\n",
"Audits externes en echec : 0\n",
"\n",
"Extrait :\n",
@@ -1270,10 +1264,10 @@
"id": "067f347b",
"metadata": {
"papermill": {
- "duration": 0.006742,
- "end_time": "2026-09-06T23:41:17.665590+00:00",
+ "duration": 0.003394,
+ "end_time": "2026-10-05T15:45:47.873396+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:17.658848+00:00",
+ "start_time": "2026-10-05T15:45:47.870002+00:00",
"status": "completed"
},
"tags": []
@@ -1283,13 +1277,13 @@
"\n",
"**25/25 couples (makespan, ergol) identiques** entre les deux encodages. Ce n'est pas une observation heureuse : c'est la preuve de la section 5 qui se manifeste. Si un seul couple avait divergé, c'est la preuve qu'il aurait fallu reprendre, pas les solveurs.\n",
"\n",
- "Les deux encodages certifient tout sur cette grille : 25/25 `OPTIMAL` pour l'encodage pondéré, 25/25 `OPTIMAL/OPTIMAL` pour les deux passes. Quand tout est certifié, le second encodage n'apporte aucune information supplémentaire — et il coûte **1,80 fois** le temps du premier (2,903 s contre 1,617 s cumulées). Sur une grille facile, la scalarisation est le bon choix, sans réserve. La section 10 ira chercher le régime où ce jugement s'inverse.\n",
+ "Les deux encodages certifient tout sur cette grille : 25/25 `OPTIMAL` pour l'encodage pondéré, 25/25 `OPTIMAL/OPTIMAL` pour les deux passes. Quand tout est certifié, le second encodage n'apporte aucune information supplémentaire — et il coûte environ **deux fois** le temps du premier (le rapport exact est imprimé par la cellule de mesure ci-dessus). Sur une grille facile, la scalarisation est le bon choix, sans réserve. La section 10 ira chercher le régime où ce jugement s'inverse.\n",
"\n",
"Deux détails valent d'être relevés.\n",
"\n",
"Le **domaine de l'objectif scalarisé** s'étend ici de 85 469 à 604 313. Ce sont des entiers parfaitement représentables, et c'est justement ce qu'il faut vérifier avant d'employer un grand coefficient : la preuve d'exactitude suppose une arithmétique entière sans débordement. Sur des budgets ou des horizons beaucoup plus grands, l'énoncé resterait vrai en mathématiques et deviendrait fragile en machine — le poids `B+1` multiplie l'horizon.\n",
"\n",
- "L'**auditeur externe n'a rejeté aucun des 75 plans** produits par les trois méthodes. C'est un renseignement, pas une formalité : l'auditeur vient de démontrer en section 4 qu'il sait échouer. Un oracle qui n'échoue jamais, sur aucune entrée, ne prouve rien ; celui-ci a déjà rejeté un plan avant d'accepter ceux-là."
+ "L'**auditeur externe n'a rejeté aucun des 75 plans** produits par les trois méthodes. C'est un renseignement, pas une formalité : l'auditeur vient de démontrer en section 4 qu'il sait échouer. Un oracle qui n'échoue jamais, sur aucune entrée, ne prouve rien ; celui-ci a déjà rejeté un plan avant d'accepter ceux-là.\n"
]
},
{
@@ -1297,10 +1291,10 @@
"id": "da693543",
"metadata": {
"papermill": {
- "duration": 0.00689,
- "end_time": "2026-09-06T23:41:17.679262+00:00",
+ "duration": 0.003847,
+ "end_time": "2026-10-05T15:45:47.880899+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:17.672372+00:00",
+ "start_time": "2026-10-05T15:45:47.877052+00:00",
"status": "completed"
},
"tags": []
@@ -1323,16 +1317,16 @@
"id": "c3c33969",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:17.712907Z",
- "iopub.status.busy": "2026-09-06T23:41:17.712581Z",
- "iopub.status.idle": "2026-09-06T23:41:17.736396Z",
- "shell.execute_reply": "2026-09-06T23:41:17.735100Z"
+ "iopub.execute_input": "2026-10-05T15:45:47.891442Z",
+ "iopub.status.busy": "2026-10-05T15:45:47.891150Z",
+ "iopub.status.idle": "2026-10-05T15:45:47.908039Z",
+ "shell.execute_reply": "2026-10-05T15:45:47.907212Z"
},
"papermill": {
- "duration": 0.049742,
- "end_time": "2026-09-06T23:41:17.737525+00:00",
+ "duration": 0.023815,
+ "end_time": "2026-10-05T15:45:47.909189+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:17.687783+00:00",
+ "start_time": "2026-10-05T15:45:47.885374+00:00",
"status": "completed"
},
"tags": []
@@ -1455,10 +1449,10 @@
"id": "d1b9ff67",
"metadata": {
"papermill": {
- "duration": 0.006947,
- "end_time": "2026-09-06T23:41:17.751968+00:00",
+ "duration": 0.005126,
+ "end_time": "2026-10-05T15:45:47.919124+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:17.745021+00:00",
+ "start_time": "2026-10-05T15:45:47.913998+00:00",
"status": "completed"
},
"tags": []
@@ -1484,10 +1478,10 @@
"id": "3283b6b1",
"metadata": {
"papermill": {
- "duration": 0.022625,
- "end_time": "2026-09-06T23:41:17.798983+00:00",
+ "duration": 0.005563,
+ "end_time": "2026-10-05T15:45:47.930793+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:17.776358+00:00",
+ "start_time": "2026-10-05T15:45:47.925230+00:00",
"status": "completed"
},
"tags": []
@@ -1510,16 +1504,16 @@
"id": "c03869ac",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:17.842969Z",
- "iopub.status.busy": "2026-09-06T23:41:17.842474Z",
- "iopub.status.idle": "2026-09-06T23:41:19.351068Z",
- "shell.execute_reply": "2026-09-06T23:41:19.349229Z"
+ "iopub.execute_input": "2026-10-05T15:45:47.944550Z",
+ "iopub.status.busy": "2026-10-05T15:45:47.944192Z",
+ "iopub.status.idle": "2026-10-05T15:45:48.701107Z",
+ "shell.execute_reply": "2026-10-05T15:45:48.700296Z"
},
"papermill": {
- "duration": 1.532469,
- "end_time": "2026-09-06T23:41:19.352176+00:00",
+ "duration": 0.766036,
+ "end_time": "2026-10-05T15:45:48.702325+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:17.819707+00:00",
+ "start_time": "2026-10-05T15:45:47.936289+00:00",
"status": "completed"
},
"tags": []
@@ -1611,10 +1605,10 @@
"id": "7ca479c2",
"metadata": {
"papermill": {
- "duration": 0.006639,
- "end_time": "2026-09-06T23:41:19.365873+00:00",
+ "duration": 0.003413,
+ "end_time": "2026-10-05T15:45:48.709966+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:19.359234+00:00",
+ "start_time": "2026-10-05T15:45:48.706553+00:00",
"status": "completed"
},
"tags": []
@@ -1645,10 +1639,10 @@
"id": "2f68f37c",
"metadata": {
"papermill": {
- "duration": 0.009314,
- "end_time": "2026-09-06T23:41:19.384351+00:00",
+ "duration": 0.005306,
+ "end_time": "2026-10-05T15:45:48.719355+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:19.375037+00:00",
+ "start_time": "2026-10-05T15:45:48.714049+00:00",
"status": "completed"
},
"tags": []
@@ -1669,16 +1663,16 @@
"id": "1d45d450",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:19.425982Z",
- "iopub.status.busy": "2026-09-06T23:41:19.425518Z",
- "iopub.status.idle": "2026-09-06T23:41:23.550699Z",
- "shell.execute_reply": "2026-09-06T23:41:23.549120Z"
+ "iopub.execute_input": "2026-10-05T15:45:48.731932Z",
+ "iopub.status.busy": "2026-10-05T15:45:48.731601Z",
+ "iopub.status.idle": "2026-10-05T15:45:50.683969Z",
+ "shell.execute_reply": "2026-10-05T15:45:50.682884Z"
},
"papermill": {
- "duration": 4.147657,
- "end_time": "2026-09-06T23:41:23.551732+00:00",
+ "duration": 1.959931,
+ "end_time": "2026-10-05T15:45:50.684866+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:19.404075+00:00",
+ "start_time": "2026-10-05T15:45:48.724935+00:00",
"status": "completed"
},
"tags": []
@@ -1722,9 +1716,9 @@
" 12 81 80 672 14.83 OPTIMAL True True\n",
" 14 83 83 672 14.83 OPTIMAL True True\n",
" 16 85 85 672 14.83 OPTIMAL True True\n",
- " 18 87 83 672 14.83 OPTIMAL True True\n",
+ " 18 87 87 672 14.83 OPTIMAL True True\n",
" 20 89 83 672 14.83 OPTIMAL True True\n",
- " 22 91 91 672 14.83 OPTIMAL True True\n",
+ " 22 91 83 672 14.83 OPTIMAL True True\n",
" 24 93 83 672 14.83 OPTIMAL True True\n"
]
}
@@ -1776,16 +1770,16 @@
"id": "dc888f31",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:23.568515Z",
- "iopub.status.busy": "2026-09-06T23:41:23.568027Z",
- "iopub.status.idle": "2026-09-06T23:41:24.632175Z",
- "shell.execute_reply": "2026-09-06T23:41:24.630786Z"
+ "iopub.execute_input": "2026-10-05T15:45:50.696575Z",
+ "iopub.status.busy": "2026-10-05T15:45:50.696293Z",
+ "iopub.status.idle": "2026-10-05T15:45:50.944966Z",
+ "shell.execute_reply": "2026-10-05T15:45:50.944254Z"
},
"papermill": {
- "duration": 1.07382,
- "end_time": "2026-09-06T23:41:24.633139+00:00",
+ "duration": 0.255233,
+ "end_time": "2026-10-05T15:45:50.945639+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:23.559319+00:00",
+ "start_time": "2026-10-05T15:45:50.690406+00:00",
"status": "completed"
},
"tags": []
@@ -1793,7 +1787,7 @@
"outputs": [
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAA40AAAISCAYAAABoEyobAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnQV4HMf5xj8xo2XZlpltyewkbcBhBgf+bRpOg02ahhtsoG04adBhZmrDDG4aJw6aQWbLJFu2mFn6P++c9nw6naRbaU+3t/P+nud8673V3szOe7Pz7ffNN2Gtra2tQgghhBBCCCGE+CDc105CCCGEEEIIIYRGIyGEEEIIIYSQLqGnkRBCCCGEEEJIp9BoJIQQQgghhBDSKTQaCSGEEEIIIYR0Co1GQgghhBBCCCGdQqOREEIIIYQQQkin0GgkhBBCCCGEENIpNBoJCRAffvih3HPPPdLY2MhrTAghxFLmzZsn//znP6W8vNwR30MIsTc0GgnphhdffFHCwsJk06ZNfl+rBQsWyCmnnCJjxoyRqKgo09d4xIgRcuyxx7JtLGw/tAlxJvhtoo3R1qHSR/QF6Ef++Mc/BvQ7/ve//6m6490JbdkZBx54oHpZSW/qunnzZjnhhBMkKSlJUlJSelwG6AM6CfT39BXd1aevfzP+6Obvf/+70gEhdodGIwnI4MnX6/rrr+/Tq11TU6M6Y6sGM57gJtDZjaWsrExOPvlkufvuu+X//u//LP9uQgghzuTTTz9V962uQPTKH/7wB3UPuvLKKwNWlr76Hp0wHhQEYlzSGa+//ro89NBDffZ9xLlEBrsAxJkglGXkyJHt9k2aNKnPjcZ//OMfatvqJ8RdsWTJErnpppvk3HPP7bPvJIQQb9asWSPh4Xw2bAVffvml5QIbPny41NbWtotGgdH42GOPdWk4rly5UkWyXH755ZaXKRjfozsYLwTyoTqMxhUrVsgVV1wRsO8gekCjkQSEo446SvbYYw+/jq2rq5Po6GjHDG4CEcZEiBOorq6WhISEYBfD0bS2tqo+NS4uTmJiYoJdnJAHDx/j4+PVPcoqmpqapKWlRZ0zNjbW9N9PmzZNvQJNX32P7kRGRqoXIXbHGaN0EjIY81/efPNN9XRt8ODB6oZcUVGhPv/3v/8tM2fOVAOejIwMOeOMMyQ/P7/dORAqk5iYqPZjrgW2+/fvL3/961+lubnZHQKCfQDeRiNEtruwHzxZPfjgg9X3DxkyRG6//XZ1c/eH+vp6ufXWW9U8RgzWhg4dKtdee63a782rr74qe+21l6p7Wlqa7L///j6fZH///ffqOAwsRo0aJS+//HK7z0tKSlS9J0+erK5DcnKyMtiXLl3q87q//fbbcscdd6i64ZyHHHKIrF+/vsP34kk3vg/XAd//3Xff+TSGzdTZG5wL3udly5bJAQccoK4FzvOf//xHff7tt9/Kb37zG1WG8ePHy9dff91hrs2f//xn9RmO6devn/z+97/3a15ZaWmpqheuA7wxZury1VdfyX777SepqanqmuP7b7zxxg7X+q233lL7Bw4cqAyl2bNny9atW9udC9cVZR42bJj7OxEGBu+DWc33JT///LMceeSRao4T2g3tN3/+fJ/zdHJzc+W0005TOsd1A/hN4fOsrCz19wcddJA6ztd8oo0bN6prlJ6ero797W9/K5988omEAp999pnMmjVLtT/mhB1zzDGqj/E3zB8JSP70pz8pbeO3fdZZZynt+pr//MUXX6gHdfgtPPXUU+7PjOsJYxLXGbrZtWuX++8bGhpU/zF69Ghl1HfFtm3blP5Qn8zMTKXVzn7r/mjEX9BHoB7ok9Bv4TeFSI7i4uJu/9bM79HokxYuXKj6ZJTb+G376v9wHc877zwZMGCAKtfUqVPlpZde8hmO+K9//UuFCOI647cOvXvPaUQd0fcCz6kdBvjd4Bw5OTnq+/C90Ie3Jjrj/fffV/XD3+L9vffe83mcv99jaA/3LhiXODY7O1veffddn9M24OlCH4f6o59FojjP+6vntXr66afd12rPPfeUX3/9tcf18QV+D7i/4x5g9EGd/Tb9KXtv8DWnEf//y1/+4q4jvhft8fnnn7c7rrKyUpUNbYFj8Ls87LDDZNGiRepzaBb9Je6Xhp6MOZ/47d9yyy1qzIXfKX4X6K+++eabdt9htl1Wr16tpuigrzHu33/729/aHYN7GX7D0JZRt+eff96S60kCBx9tkICALGtFRUXt9sEINLjtttvUU1YMejHowDZunOecc47qiO666y7ZuXOnPPzww2qgsXjxYjVIN8BA+YgjjlBGBToyGBT333+/6swuvvhi1Vk98cQTavvEE0+Uk046Sf3dlClTOi1zQUGBunHgKTBCRdCBooNEp9cduHlg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839u5cqVXUOGDHHFxMQk6zy6TqOiKIqiKIqiKIriE53TqCiKoiiKoiiKovhERaOiKIqiKIqiKIriExWNiqIoiqIoiqIoik9UNCqKoiiKoiiKoig+UdGoKIqiKIqiKIqi+ERFo6IoiqIoiqIoiuITFY2KoiiKoiiKoiiKT1Q0KoqS6di9e7c89dRTEhMTE+iiKOnMd999J+PHj9d6VtKUpUuXyssvvyznz5/XmlUURUkDVDQqihIwfv/9d8mRI4ccOXIkwff33HOPzJ8/X4YMGZKs423ZssUcjw6jkjn47LPPJH/+/F630cb33XeftGjRQjIDt99+u3Tr1k0yI5dffrkMGjRIsiNr166V4sWLy7Fjx9LkeIcOHZIePXpIjRo1JGfOnJJdefLJJ6V+/fqSHWnevLl88803gS6GoigOVDQqipLiDjYCjVdYWJhUqFBBHn74YTl9+nSqanTixImSN29emTZtmmzfvl1mzZoVNC0UTKL34MGDcueddxpPY/ny5QNdHCWADB06VO69915z36cWl8slt912mzzyyCNy9dVXp0n5sjMIdQYjypUrJ1FRUXLJJZfIP//8c1GdjhgxQkqUKGH2adeunaxfv/4iod6rVy/Jly+fGSTi3j5+/HiKy/X444/Lo48+KnFxcSk+hqIoaYuKRkVRUkzHjh1NKOmmTZvk9ddflw8++ECeeOKJVNXo9ddfL59//rkRTz/99JO0adNGWygLcPbs2WTtX6hQIVm5cqU0bNhQMntZlfRj27ZtMnXqVDMIlRbtyXOD4/Xr1y+NSpi9+d///ifTp0+XMWPGyPLly+XKK680onDnzp3ufV566SV588035f3335e///5bcufOLR06dEgwQIhg5H7mWNT/nDlzUtUGV111lRG0/B+gKErmQEWjoigpJiIiwoSVlSlTxoT10dmg02BhlPj55583XkhGqOvVqyeTJk3y6326+eabpVSpUpIrVy6pU6fORfPdOCadmMqVK5vzly1bVp599tkE+yBiEZscg3POmzcvwfY///xTLr30UlMmyk6I5IkTJ9zb8Xw988wzxmORJ08eMwr/ww8/yP79+6Vr167mu7p168rChQuTfdznnntO7rjjDuNVoewffvihezv1BA0aNDCdX0ISvREbG2tG8m29VqtWTd54442L9vvkk0+kVq1app7wEgwcONC9jZDgu+66S4oVKyaRkZFSu3Zt09mzEBpmf0u5X3311QTH5runn37a1BHeBdtBJByV66Luu3fvbtrUk++//96IRc5bsWJFM3/V39wzwpibNm1qOqt4MVq2bClbt271GVKK58RZd7zn2vm+cOHCpsObFJJrvym1naTYvSc//vijREdHy9ixY81nvPI33HCDqZ+CBQuac+G5Tkod2jBHBn2wW8rAsZxzivE+tW/f3tQf573ssstk8eLFCcqEzX788cem3TlGlSpVzLX74+uvvzb1yrU7mTt3rmk3jlOgQAHTZocPH/bbnitWrDBigzrGrm+99VY5cOCA+5j8jnuSiAjqiGcX1+6E+wIhVaRIEWPXV1xxhfz777/u7Rs3bjR1y/E5T5MmTWTGjBkX1QMedCfUOfcGfPHFF+a3Tm/dgAEDpHr16nLy5EmfdfXCCy+Y8/Ls4P73FtVB/ROWy73F8d59912fxzt16pS5z3metm7d2jxTqQ/+vvfee24v46hRo4znj+vGdin/rl273Ne4evVq+fnnn825mzVrJq1atZK33npLvvrqK7OfNzgu5+JZwTOmZMmSpm0soaGh0qlTJ3MMRVEyCS5FUZQU0Lt3b1fXrl3dn5cvX+4qXry4q1mzZu7vnnnmGVf16tVdP//8s2vjxo2uTz/91BUREeH6/fffzfZZs2a5eAwdPnzYfN6xY4fr5Zdfdi1ZssTs/+abb7pCQ0Ndf//9t/uYDz/8sKtAgQKuzz77zLVhwwbXH3/84froo4/Mts2bN5vjcc6pU6e61q5d67ruuutc5cqVc507d87sw29y587tev31113r1q1zzZ0719WgQQPX7bff7j4H+xcsWND1/vvvm33uvvtuV758+VwdO3Z0ff311+a43bp1c9WoUcMVFxeX7OO+8847rvXr17uef/55V0hIiGvNmjVm+4IFC0z5Z8yY4dq9e7fr4MGDXuv+7NmzrhEjRrj++ecf16ZNm1xffvmlK1euXK4JEya493n33XddkZGRrlGjRpnycmzKBrGxsa7mzZu7atWq5fr1119NXU+ZMsU1bdo0s33hwoWmXCNHjjS/pd2ioqLMX+e1UCevvPKKuXZe8+fPN7978cUXze/eeOMNV/78+V3R0dHu382ZM8f8jvbjvJy/fPnyrieffNLrtdJu/P6hhx4y51i1apX57datW73aIdx///2uyy67zP2Z93ny5HENGTLE1LWtb088j5WY/XojJbaTFLvnGrguGDt2rCtv3rymzaw9cLw77rjDtWzZMlNHPXv2dFWrVs115syZROvwiSeeMLZ7xRVXmDLMnj3bVblyZXMMy8yZM11jxoxxrV692vz+zjvvdBUrVsx19OhR9z7YbunSpV3jxo0z9n3fffeZevdlx3DNNde4+vfvn+A7ykA9U3dLly51rVixwvXWW2+59u/f77M9eYYUKVLENXToUFPGxYsXu9q3b+9q06ZNgjqkLbA12ubzzz935ciRw9igpV27dq4uXbqYe4t9HnzwQVehQoXc10B5aFued2x//PHHzX1m69LWw+TJkxNcE/XvvH+uv/56V5MmTUzb8KwKCwsz950vuLepk48//thc72OPPWZsoF69eu59eA6UKFHC9c0335jnAn+xRdraG7Sdfd44admypfv+wR7ZhzZx0rp1a9O+MHr0aHOfO+G6sOFvv/3W67knTpxo2oJnDnWHrX/44YcJ9nnvvffM/aQoSuZARaOiKCmCDjadAjqbdGboWCAYJk2aZLafPn3aCJm//vorwe/obN58881eRaM3OnfubDputpPDuaxI9MSKRjpWlpUrV5rv6Eja8/fr1y/B7xCelP3UqVPmMx2VW265xb0dAccxhg8f7v5u3rx55ju2pfS4iIaiRYuazpGz/J4dtKRwzz33uHr06OH+XLJkSdOx9MYvv/xiyoWA8QZigQ63EzroNWvWdH/mWhA/TmjXTp06JfjuxhtvTCAa27Zt63ruuecS7IMYobPrDTrr1IkvoZZU0YiATwznsZJiv95Iie0kZvf2Griut99+29Snsz6oPwSiFaGAWETo09aJ1SGikXsZ8Wr56aefjI34KiMDD07hCpwDEWU5fvy4+Y5j+QLRw+CEE+oX4eILb+359NNPu6688soE323fvt2c39o5v2vVqlWCfRBujzzyiPt+RcjQ9k4qVark+uCDD3yWh8EXRG1yROOhQ4eMwEYYI76fffZZlz9atGjhGjBgQILvGKBzikbKiWD3rBd+6++41MvOnTtd58+fN7ZEu1etWtVsZ/CL69m1a1eC3yF6b7jhBvOestv9nSDiGbzyxquvvmp+w4CHL77//ntTFmxNUZTAo+GpiqKkGEJASdrCPJfevXtLnz59TNZC2LBhgwm1IqSNUCz7IrSJ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",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA40AAAISCAYAAABoEyobAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvctoD+AAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnQd8FNX2x0967wktCaGEkoQOFp7Yu6hPsTz1qVj/dsWuz94Vu9i7Pn2WpyjPgoCKgogoJbQESEIPISSk97b/z7mbWTab3WR3Mrs7M/f3/Xw2ezM7O3vv3N/enTPn3HMDLBaLhQAAAAAAAAAAACcEOtsIAAAAAAAAAADAaAQAAAAAAAAA0CPwNAIAAAAAAAAAcAmMRgAAAAAAAAAALoHRCAAAAAAAAADAJTAaAQAAAAAAAAC4BEYjAAAAAAAAAACXwGgEAAAAAAAAAOASGI0AAAAAAAAAAFwCoxEADTn//PNp5MiRVFZWhvMKAADA69x22200YMAAKioqMsXnAAD0CYxGABzYvXs3BQQE0Msvv+zRuXnppZfo119/pYULF1JKSopH7/3hhx/EZ/7yyy/oD43AOZXr+/r6669L+fl6qBd/zl133aXJsWQ7n3097ty5c+mtt96i+fPn0/Dhw73Wh1p9ji/pqy79oWu96h8ABkYjUM31118vBjdnD74j6WvY4OLPZmNBa3Jzc8Wx//jjD6evL1++nB555BHxgzpkyBDNPx8AAIAcFBYWit+bt99+u8f9tmzZQldddRV99dVXNHHiRK/Vx1efIxvl5eWin7/44gtd6gsAR4K7bQHAQ0pKSkTIisxMnToVIakAAN2QlpZGFovF39UwDd46n305rq+mQmDKhe/A9xboGXgaAQDA5DQ2NtKpp55KK1as6LK9qamJzjjjDFq6dKnf6gYAAAAA/QOjEXiV5ORkuuKKK8TF6rRp0ygiIoLuvfdeW+z+zJkzqX///hQaGkqZmZl0//33U0tLi9N5aa+88ooI/QwPD6e//e1vtHr1att+77//Ph199NGifPLJJ9vCZF944YVew26mT59OUVFR1K9fP7r11luptbXV7fbV1tbSHXfcIeZ4cBvY48phPBUVFV32q6mpoTvvvFPcseX6Dxs2TITwVldXdztmT+1ktm/f3iUUOCwsjLKysuiJJ56g9vZ2j8+dwqZNm+iUU07pci62bdvmdH6nu+12xL5OTz/9NKWnp1NsbCydd9554pjM7NmzafDgwUIr3JfsyVbTfmdwP5x00kmUlJQk5p8qcNgV6zM6OpoiIyPp8MMPp8WLF3d5L89VPfLII8V74+Pj6bDDDusWVsTnmNuyatUq8Tq3gbdx3Ry9CVwPpQ1BQUHie3Duued2SzKhHHPjxo101FFHiWPyeXvqqafIHfj7NGPGDNGe5ubmLq91dHRQVVWVMCi5zu7gzrlS6sxh3fy95P1mzZpl+95zO+Pi4ighIYEuu+wyqqurczp/iPV03XXXibvvrDPWBR+H+1Hv8HnnkHXWJmuUx8J//vOfov09sWHDBnEuPvroI3rnnXfEd4y/t1OmTBEadLXvhx9+KD4rODiYfvzxR6dzo/g7y1rj1+254YYbKCQkpNebB3v27BH96th3WrbfGW1tbV2+86wFPi933323uCHir/PprkY9OS5vGzFihChfeeWVTqd89OXcat2HnpxfNcf89NNPadSoUeKYEyZMoJ9//rlPbfLFOekLznTmyfng35lnnnmGcnJyxG95amoqnXXWWbR+/Xq39OXud83TPuLfnscee4zGjBlj+w3ja4a9e/f67NwCDbAAoJLrrruOr4ItJSUlLvdJSkqyHHfccZZTTz3VsnHjRsvu3bstX331lWXfvn2W1NRUS3Z2tmXFihWW6upqy+eff26JjY21nHLKKZaOjg7x/vnz54vPuOCCCyxPPPGEeF9hYaHloIMOsqSnp1uam5ttn7V48WKxL7/HHfbu3Wvp16+fZcqUKZbc3FxLZWWl5a233rL84x//EMeZM2eObd81a9aIbcuXL7dtq6urs0yYMMEybNgwy4IFCyw1NTViv0mTJlnGjx9vaWpqEvvx9rFjx4r6zps3T3zOtm3bLM8++6zl9ddf97idjlRUVFg++ugjS1RUlOWRRx6xbffkmHv27LGkpKRYDj74YMu6detEHd977z3Leeed1+1cuNtuZyh1Ouecc0T79+/fb1m1apVl0KBBln/+85+inrNnz7aUl5eLY6alpQnt9ERv7WddMNu3b7fk5ORYRowYYdm8ebNtv2eeecYSGBhoefjhh4U++Tzdd999lqCgIMuiRYvEPnl5eZbQ0FDL7bffLnTD54B1e+6554r3KGRkZFiOPPJIy8knn2xZv369qNurr75qCQkJsdxxxx0u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h5099dRTUqlSJdm4caN07NhRvv32W82ir6SYL7/8Ul555RXzN2Jxx44d8sYbb0jv3r29x4waNUqeeeaZRAO42bJlk19//TWka6lozGCWLFki9913nxGJdJjw/vDj9eyzz8q7776b0cVRogw65r///nu4i6FEOHSGfv75Z/nqq69kwoQJSfYfPXpUunXrJj169JD333/feIboPN18883y119/haXMyoUPQhHvNc84Ouz87Y+ffvpJvTxKmoGX57vvvpM6dep4B8UYtKhVq5bccsst3m04DHgmXnPNNbJ161bT/3vttdfk5Zdf1tZQUgQicebMmd6oxREjRhibq1+/vjRt2tR7HAMVqe3/aUxaGEYELrroIiMYoXjx4nLPPffIsGHDJCEhIaOLo0QZ2Bhen+XLl8upU6fCXRwlQmE03R0W6PZ6M2DGyCfExMSY0ff58+f79EoqSjCULl3adL7LlSsXVCef8GmmiihKarn//vu9ghEI+6tXr16iTvoXX3whjRo1MoIRCE294447zHZFSSl4uJ3T3G666SYTav/HH38kOo7B2aVLl8rKlSvl9OnTKbqWisYMhh8pHhpOLrnkEjNCStiMoqT3iFTXrl3l2muvNSE07733nla4EpbnIB17Bs2cz0G7T1HSG7zat912mxQpUsSEcZ08eVIrXUkz7LzFqlWrBuz/MQ9yz549WvtKmoDdYX9O2wPyqCAo27dvb6LOhgwZEvK5VTRmMPv27TM/Uk7se/YpSnpRrVo148XhwcEoO6Ob/fv3N2GEihLu5yDzannpc1BJT0hOQnggoYFEXODdZr7P888/rxWvpBkMRGBrd955p3eb9v+U9IYIMrzXzF20Hm3A600ixBUrVphcKsz9JsfFjBkzQjq/isYMhqQPJ06cSDJ5H5yT8hUlrSFcpnbt2t73zCdjzgXx74oS7ucg2d/4wdPnoJKeEBLI/FnLxRdfLH369NHnoJJmMJ928uTJMn78eClUqJB3u/b/lPSEOdx4EsmUSgIwEt1Y6Os5PY+9evWShg0bmvwqoaCiMYMh7phQBCf2fTDzMBQlLSlRokQSe1SUjHgOEiqNULTwnjkXZJVWlIxEn4NKWvHYY4+ZHBVkJXcvNeSv/8ecbubjKkpqBCMh94sWLTJJcYLREyl57qlozGCuuuoqk+LWOfl+7NixJoNWwYIFM7o4ShRB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ym+OoigZDOGpiqIogZg6dSqTSTxbtmzxblu+fLnZNmnSJO+22bNne0qWLOm55JJLPB07dvQUKlTI89RTTyU6V548eTw///yz9/1DDz3kufHGGz3du3f31KtXz1OuXDnP4sWLE31m1qxZ5rwXXXSRp0OHDp5KlSp5xo0b591POa655hpP1apVPddee62naNGink6dOiU6RzBl4zytW7c25+GYvHnzmnI99thjnurVq5ttuXPn9rzyyispOndyZezTp48na9asnlatWpn64L0v0qK+Au3/8ccfzb03a9bM06JFC9Nmw4cPT3I/9rM33HCD56effvLeB8e3a9fOU7lyZXMMx+7YscP72Q8//NBToEABz5VXXulp27atqa/Ro0d7/LFkyRJPsWLFPE2aNDH1W7FiRc+QIUPMvh9++MGcy8k///yT6JozZ8407/ls/fr1PT169PCsWrUqyXXmz59vjtu/f3+Ky2qvddlllxl74HO061tvveW5/PLLTZ22adPGkytXLvO9ssTHx5t25dWlSxdP2bJlPc2bN/ccOnQoyblPnz5t3s+dO9dTuHBhz5tvvmneb9++3dO4cWNPtWrVjG2VL1/etMPRo0e957jnnnvMZ6677jpTPtp37969Zh9l5j3Xvvrqqz0VKlTw1KhRI1HbDR482FtOjsdOvvnmm0R1wPaWLVt6qlSpYuqc8mALu3fv9ltvzzzzjPmMk23btpk2L1GihPe789xzzyW6DuXFHrjOq6++arZPnjzZfL/Yh/3Rfm+88Yb3c7Qv9cj3kO8A/xYsWNDTs2fPRNcPdB7o1auXqYtu3bp5atasae559erV3v1r164114qLi0v0uZiYGO+zc8OGDZ78+fN7Pv74Y/M+ISHB0759e3N/Z8+e9VlfHJsjRw5jUw0aNPBcddVVnuzZsyd6HgdTfieffvqpJzY21lzfgm1Q/lGjRpn3K1euNO95hliOHDli7JnPB3uMmz179nhq1apl2gPbxWYeeeSRRMdQx7fffrvf8iuKkn6oaFQUJcWiEZHBtoULF5r3dG7poDg7kBs3bjQdFWfn2C0a3Tz88MOmI+Ts4NFRZ7vtzHCt6dOn//swEzGd45MnT5r369atM52y3377LaSycR46y7ZTTgeMbZ07d/acOXPGK1LorNmOeCjnTq6MwHnHjx8fsD1SU1+B9u/bty+REIEB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",
"text/plain": [
""
]
@@ -1854,10 +1848,10 @@
"id": "5a4ac59f",
"metadata": {
"papermill": {
- "duration": 0.007722,
- "end_time": "2026-09-06T23:41:24.648907+00:00",
+ "duration": 0.004549,
+ "end_time": "2026-10-05T15:45:50.954839+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:24.641185+00:00",
+ "start_time": "2026-10-05T15:45:50.950290+00:00",
"status": "completed"
},
"tags": []
@@ -1888,10 +1882,10 @@
"id": "c6908ea8",
"metadata": {
"papermill": {
- "duration": 0.010834,
- "end_time": "2026-09-06T23:41:24.667525+00:00",
+ "duration": 0.004055,
+ "end_time": "2026-10-05T15:45:50.963369+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:24.656691+00:00",
+ "start_time": "2026-10-05T15:45:50.959314+00:00",
"status": "completed"
},
"tags": []
@@ -1915,16 +1909,16 @@
"id": "f8440694",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:41:24.738607Z",
- "iopub.status.busy": "2026-09-06T23:41:24.738149Z",
- "iopub.status.idle": "2026-09-06T23:45:08.470383Z",
- "shell.execute_reply": "2026-09-06T23:45:08.468614Z"
+ "iopub.execute_input": "2026-10-05T15:45:50.972834Z",
+ "iopub.status.busy": "2026-10-05T15:45:50.972588Z",
+ "iopub.status.idle": "2026-10-05T15:48:51.344927Z",
+ "shell.execute_reply": "2026-10-05T15:48:51.343758Z"
},
"papermill": {
- "duration": 223.773309,
- "end_time": "2026-09-06T23:45:08.471949+00:00",
+ "duration": 180.379026,
+ "end_time": "2026-10-05T15:48:51.346309+00:00",
"exception": false,
- "start_time": "2026-09-06T23:41:24.698640+00:00",
+ "start_time": "2026-10-05T15:45:50.967283+00:00",
"status": "completed"
},
"tags": []
@@ -1934,168 +1928,168 @@
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 16 s=11 poussees= 32 separations= 25 | pond OPTIMAL 0.16s | 2p OPTIMAL/OPTIMAL 0.28s\n"
+ " d=0.25 n= 16 s=11 poussees= 32 separations= 25 | pond OPTIMAL 0.08s | 2p OPTIMAL/OPTIMAL 0.12s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 16 s=22 poussees= 32 separations= 24 | pond OPTIMAL 0.13s | 2p OPTIMAL/OPTIMAL 0.22s\n"
+ " d=0.25 n= 16 s=22 poussees= 32 separations= 24 | pond OPTIMAL 0.04s | 2p OPTIMAL/OPTIMAL 0.09s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 16 s=33 poussees= 32 separations= 32 | pond OPTIMAL 0.13s | 2p OPTIMAL/OPTIMAL 0.23s\n"
+ " d=0.25 n= 16 s=33 poussees= 32 separations= 32 | pond OPTIMAL 0.06s | 2p OPTIMAL/OPTIMAL 0.09s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 32 s=11 poussees= 64 separations= 109 | pond OPTIMAL 0.63s | 2p OPTIMAL/OPTIMAL 1.09s\n"
+ " d=0.25 n= 32 s=11 poussees= 64 separations= 109 | pond OPTIMAL 0.42s | 2p OPTIMAL/OPTIMAL 0.55s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 32 s=22 poussees= 64 separations= 124 | pond OPTIMAL 0.30s | 2p OPTIMAL/OPTIMAL 0.75s\n"
+ " d=0.25 n= 32 s=22 poussees= 64 separations= 124 | pond OPTIMAL 0.14s | 2p OPTIMAL/OPTIMAL 0.27s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 32 s=33 poussees= 64 separations= 116 | pond OPTIMAL 0.33s | 2p OPTIMAL/OPTIMAL 0.62s\n"
+ " d=0.25 n= 32 s=33 poussees= 64 separations= 116 | pond OPTIMAL 0.12s | 2p OPTIMAL/OPTIMAL 0.23s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 64 s=11 poussees=128 separations= 497 | pond OPTIMAL 0.90s | 2p OPTIMAL/OPTIMAL 1.94s\n"
+ " d=0.25 n= 64 s=11 poussees=128 separations= 497 | pond OPTIMAL 0.42s | 2p OPTIMAL/OPTIMAL 0.64s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 64 s=22 poussees=128 separations= 490 | pond OPTIMAL 0.93s | 2p OPTIMAL/OPTIMAL 1.54s\n"
+ " d=0.25 n= 64 s=22 poussees=128 separations= 490 | pond OPTIMAL 0.37s | 2p OPTIMAL/OPTIMAL 0.58s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 64 s=33 poussees=128 separations= 514 | pond FEASIBLE 10.05s | 2p OPTIMAL/FEASIBLE 11.28s\n"
+ " d=0.25 n= 64 s=33 poussees=128 separations= 514 | pond FEASIBLE 10.04s | 2p OPTIMAL/FEASIBLE 10.60s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 90 s=11 poussees=180 separations= 975 | pond OPTIMAL 1.67s | 2p OPTIMAL/OPTIMAL 3.29s\n"
+ " d=0.25 n= 90 s=11 poussees=180 separations= 975 | pond OPTIMAL 0.75s | 2p OPTIMAL/OPTIMAL 1.40s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 90 s=22 poussees=180 separations= 972 | pond OPTIMAL 1.60s | 2p OPTIMAL/OPTIMAL 4.54s\n"
+ " d=0.25 n= 90 s=22 poussees=180 separations= 972 | pond OPTIMAL 1.19s | 2p OPTIMAL/OPTIMAL 2.57s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.25 n= 90 s=33 poussees=180 separations= 993 | pond OPTIMAL 1.85s | 2p OPTIMAL/OPTIMAL 4.13s\n"
+ " d=0.25 n= 90 s=33 poussees=180 separations= 993 | pond OPTIMAL 0.83s | 2p OPTIMAL/OPTIMAL 1.77s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 16 s=11 poussees= 32 separations= 63 | pond OPTIMAL 2.52s | 2p OPTIMAL/OPTIMAL 2.16s\n"
+ " d=0.6 n= 16 s=11 poussees= 32 separations= 63 | pond OPTIMAL 1.24s | 2p OPTIMAL/OPTIMAL 1.32s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 16 s=22 poussees= 32 separations= 65 | pond OPTIMAL 0.19s | 2p OPTIMAL/OPTIMAL 0.35s\n"
+ " d=0.6 n= 16 s=22 poussees= 32 separations= 65 | pond OPTIMAL 0.05s | 2p OPTIMAL/OPTIMAL 0.12s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 16 s=33 poussees= 32 separations= 76 | pond OPTIMAL 0.16s | 2p OPTIMAL/OPTIMAL 0.35s\n"
+ " d=0.6 n= 16 s=33 poussees= 32 separations= 76 | pond OPTIMAL 0.07s | 2p OPTIMAL/OPTIMAL 0.12s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 32 s=11 poussees= 64 separations= 285 | pond FEASIBLE 10.02s | 2p FEASIBLE/UNKNOWN 20.06s\n"
+ " d=0.6 n= 32 s=11 poussees= 64 separations= 285 | pond FEASIBLE 10.03s | 2p FEASIBLE/FEASIBLE 20.04s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 32 s=22 poussees= 64 separations= 274 | pond FEASIBLE 10.04s | 2p OPTIMAL/FEASIBLE 10.42s\n"
+ " d=0.6 n= 32 s=22 poussees= 64 separations= 274 | pond FEASIBLE 10.02s | 2p OPTIMAL/FEASIBLE 10.20s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 32 s=33 poussees= 64 separations= 268 | pond OPTIMAL 0.44s | 2p OPTIMAL/OPTIMAL 0.83s\n"
+ " d=0.6 n= 32 s=33 poussees= 64 separations= 268 | pond OPTIMAL 0.19s | 2p OPTIMAL/OPTIMAL 0.61s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 64 s=11 poussees=128 separations=1190 | pond OPTIMAL 1.66s | 2p OPTIMAL/OPTIMAL 4.20s\n"
+ " d=0.6 n= 64 s=11 poussees=128 separations=1190 | pond OPTIMAL 1.25s | 2p OPTIMAL/OPTIMAL 2.28s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 64 s=22 poussees=128 separations=1184 | pond FEASIBLE 10.02s | 2p OPTIMAL/FEASIBLE 11.76s\n"
+ " d=0.6 n= 64 s=22 poussees=128 separations=1184 | pond FEASIBLE 10.10s | 2p OPTIMAL/FEASIBLE 11.09s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 64 s=33 poussees=128 separations=1170 | pond FEASIBLE 10.03s | 2p FEASIBLE/FEASIBLE 20.06s\n"
+ " d=0.6 n= 64 s=33 poussees=128 separations=1170 | pond FEASIBLE 10.04s | 2p FEASIBLE/FEASIBLE 20.08s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 90 s=11 poussees=180 separations=2362 | pond FEASIBLE 10.05s | 2p OPTIMAL/FEASIBLE 13.14s\n"
+ " d=0.6 n= 90 s=11 poussees=180 separations=2362 | pond FEASIBLE 10.07s | 2p OPTIMAL/FEASIBLE 12.02s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 90 s=22 poussees=180 separations=2351 | pond OPTIMAL 4.11s | 2p OPTIMAL/OPTIMAL 10.83s\n"
+ " d=0.6 n= 90 s=22 poussees=180 separations=2351 | pond OPTIMAL 2.60s | 2p OPTIMAL/OPTIMAL 5.32s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
- " d=0.6 n= 90 s=33 poussees=180 separations=2336 | pond OPTIMAL 4.23s | 2p OPTIMAL/OPTIMAL 7.07s\n"
+ " d=0.6 n= 90 s=33 poussees=180 separations=2336 | pond OPTIMAL 2.36s | 2p OPTIMAL/OPTIMAL 2.93s\n"
]
},
{
@@ -2106,16 +2100,16 @@
"=== Certification par densite et par taille ===\n",
"\n",
"densite 0.25 : pondere OPTIMAL 11/12 | makespan certifie par les deux passes 12/12\n",
- " n= 16 ( 32 poussees, ~ 27 separations) : pondere 3/3 OPTIMAL, pire temps 0.16s | makespan certifie 3/3\n",
- " n= 32 ( 64 poussees, ~ 116 separations) : pondere 3/3 OPTIMAL, pire temps 0.63s | makespan certifie 3/3\n",
- " n= 64 (128 poussees, ~ 500 separations) : pondere 2/3 OPTIMAL, pire temps 10.05s | makespan certifie 3/3\n",
- " n= 90 (180 poussees, ~ 980 separations) : pondere 3/3 OPTIMAL, pire temps 1.85s | makespan certifie 3/3\n",
+ " n= 16 ( 32 poussees, ~ 27 separations) : pondere 3/3 OPTIMAL, pire temps 0.08s | makespan certifie 3/3\n",
+ " n= 32 ( 64 poussees, ~ 116 separations) : pondere 3/3 OPTIMAL, pire temps 0.42s | makespan certifie 3/3\n",
+ " n= 64 (128 poussees, ~ 500 separations) : pondere 2/3 OPTIMAL, pire temps 10.04s | makespan certifie 3/3\n",
+ " n= 90 (180 poussees, ~ 980 separations) : pondere 3/3 OPTIMAL, pire temps 1.19s | makespan certifie 3/3\n",
"\n",
"densite 0.6 : pondere OPTIMAL 7/12 | makespan certifie par les deux passes 10/12\n",
- " n= 16 ( 32 poussees, ~ 68 separations) : pondere 3/3 OPTIMAL, pire temps 2.52s | makespan certifie 3/3\n",
- " n= 32 ( 64 poussees, ~ 275 separations) : pondere 1/3 OPTIMAL, pire temps 10.04s | makespan certifie 2/3\n",
- " n= 64 (128 poussees, ~1181 separations) : pondere 1/3 OPTIMAL, pire temps 10.03s | makespan certifie 2/3\n",
- " n= 90 (180 poussees, ~2349 separations) : pondere 2/3 OPTIMAL, pire temps 10.05s | makespan certifie 3/3\n",
+ " n= 16 ( 32 poussees, ~ 68 separations) : pondere 3/3 OPTIMAL, pire temps 1.24s | makespan certifie 3/3\n",
+ " n= 32 ( 64 poussees, ~ 275 separations) : pondere 1/3 OPTIMAL, pire temps 10.03s | makespan certifie 2/3\n",
+ " n= 64 (128 poussees, ~1181 separations) : pondere 1/3 OPTIMAL, pire temps 10.10s | makespan certifie 2/3\n",
+ " n= 90 (180 poussees, ~2349 separations) : pondere 2/3 OPTIMAL, pire temps 10.07s | makespan certifie 3/3\n",
"\n",
"=== Instances ou l'encodage pondere rend un FEASIBLE indistinct alors que les deux passes CERTIFIENT le makespan : 4/24 ===\n",
" densite n_modules seed pond_status 2p_status\n",
@@ -2124,7 +2118,7 @@
" 0.60 64 22 FEASIBLE OPTIMAL/FEASIBLE\n",
" 0.60 90 11 FEASIBLE OPTIMAL/FEASIBLE\n",
"\n",
- "Cout du second encodage : 82.2 s contre 131.1 s (x1.60)\n",
+ "Cout du second encodage : 72.5 s contre 105.0 s (x1.45)\n",
"Audits externes en echec sur la sonde : 0\n"
]
}
@@ -2189,10 +2183,10 @@
"id": "bb1f6872",
"metadata": {
"papermill": {
- "duration": 0.0099,
- "end_time": "2026-09-06T23:45:08.491621+00:00",
+ "duration": 0.006488,
+ "end_time": "2026-10-05T15:48:51.360174+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.481721+00:00",
+ "start_time": "2026-10-05T15:48:51.353686+00:00",
"status": "completed"
},
"tags": []
@@ -2205,23 +2199,21 @@
"| | n = 16 | n = 32 | n = 64 | n = 90 |\n",
"|---|---|---|---|---|\n",
"| **densité 0,25** — pondéré `OPTIMAL` | 3/3 | 3/3 | **2/3** | **3/3** |\n",
- "| pire temps | 0,16 s | 0,63 s | 10,05 s | 1,85 s |\n",
"| **densité 0,60** — pondéré `OPTIMAL` | 3/3 | **1/3** | **1/3** | **2/3** |\n",
- "| pire temps | 2,52 s | 10,04 s | 10,03 s | 10,05 s |\n",
"\n",
- "Aux **deux** densités, la plus grande instance se certifie mieux qu'une instance plus petite. À d = 0,25, `n = 90` — 180 poussées et de 972 à 993 écarts de sécurité — est certifiée 3/3 en 1,85 s au pire, tandis que `n = 64` (490 à 514 séparations) épuise les 10 s sur une graine. À d = 0,60, `n = 90` porte de **2 336 à 2 362** séparations et se certifie sur deux graines en 4,11 s et 4,23 s, alors que `n = 32` (268 à 285 séparations) épuise les 10 s sur deux graines sur trois.\n",
+ "Aux **deux** densités, la plus grande instance se certifie mieux qu'une instance plus petite. À d = 0,25, `n = 90` — 180 poussées et de 972 à 993 écarts de sécurité — est certifiée 3/3, quand `n = 64` (490 à 514 séparations) épuise la limite de 10 s sur une graine. À d = 0,60, `n = 90` porte de **2 336 à 2 362** séparations et certifie deux graines sur trois, alors que `n = 32` (268 à 285 séparations) épuise la limite sur deux graines sur trois.\n",
"\n",
- "La variance *intra*-taille est du même ordre : à d = 0,60 et n = 16, une graine demande 2,52 s quand les deux autres se règlent en moins de 0,20 s. Trois tirages du même générateur, avec les mêmes paramètres, ne se valent donc pas non plus entre eux — raison de plus pour publier les graines plutôt qu'une moyenne.\n",
+ "La variance *intra*-taille est du même ordre : à d = 0,60 et n = 16, une graine demande un ordre de grandeur de plus que les deux autres, qui se règlent en une fraction de seconde — la mesure par instance est dans la sortie ci-dessus. Trois tirages du même générateur, avec les mêmes paramètres, ne se valent donc pas non plus entre eux — raison de plus pour publier les graines plutôt qu'une moyenne.\n",
"\n",
"Extrapoler « ça passera moins bien plus haut » à partir d'une borne de grille est donc infondé sur cette famille d'instances. Ce qui gouverne la difficulté, c'est la structure de l'instance tirée — comment les fenêtres, les couloirs et les disjonctions s'articulent — bien plus que son nombre de modules. La densité, elle, a un effet lisible : 11/12 certifications à d = 0,25 contre 7/12 à d = 0,60. C'est le bon axe ; la taille ne l'est pas.\n",
"\n",
"**Ce que le second encodage achète.** Sur **4 instances sur 24**, l'encodage pondéré rend un `FEASIBLE` global indistinct alors que les deux passes certifient le makespan optimal (`OPTIMAL/FEASIBLE`) : d = 0,25 / n = 64 / graine 33, puis d = 0,60 pour n = 32 graine 22, n = 64 graine 22 et n = 90 graine 11. Dans ces quatre cas, on sait **quelque chose** — l'échéancier ne peut pas être meilleur — au lieu de ne rien savoir. Le makespan certifié passe ainsi de 18/24 à 22/24.\n",
"\n",
- "**Ce qu'il coûte, sans arrangement.** 131,1 s contre 82,2 s, soit **×1,60**. Et le coût n'est pas seulement un facteur moyen : sur `d = 0,60 / n = 32 / graine 11` et `d = 0,60 / n = 64 / graine 33`, les deux passes consomment **deux fois la limite complète** (20,06 s) pour rendre `FEASIBLE/UNKNOWN` et `FEASIBLE/FEASIBLE` — donc rien de plus que l'encodage pondéré, pour le double du temps. Le second encodage n'est pas gratuit et n'est pas toujours gagnant.\n",
+ "**Ce qu'il coûte, sans arrangement.** Environ une fois et demie le temps total du pondéré — le rapport exact est imprimé par la cellule de mesure ci-dessus. Et le coût n'est pas seulement un facteur moyen : sur `d = 0,60 / n = 32 / graine 11` et `d = 0,60 / n = 64 / graine 33`, les deux passes consomment **deux fois la limite complète** (deux fois 10 s) pour rendre `FEASIBLE/FEASIBLE` — aucun certificat de plus que le `FEASIBLE` de l'encodage pondéré, pour le double du temps. Le second encodage n'est pas gratuit et n'est pas toujours gagnant.\n",
"\n",
- "Le compromis se résume alors sans emphase : **+60 % de temps achètent 4 certificats de makespan supplémentaires sur 24, et 2 dépenses doublées pour rien.** Comme la preuve de la section 5 établit que les deux encodages définissent le *même* optimum, ils ne diffèrent en rien d'autre — ni en exactitude, ni en valeur. Ils diffèrent uniquement par ce qu'ils savent **dire** quand le temps manque. C'est une propriété de l'écriture du modèle, pas du solveur.\n",
+ "Le compromis se résume alors sans emphase : **un surcoût d'environ moitié du temps achète 4 certificats de makespan supplémentaires sur 24, et 2 dépenses doublées pour rien.** Comme la preuve de la section 5 établit que les deux encodages définissent le *même* optimum, ils ne diffèrent en rien d'autre — ni en exactitude, ni en valeur. Ils diffèrent uniquement par ce qu'ils savent **dire** quand le temps manque. C'est une propriété de l'écriture du modèle, pas du solveur.\n",
"\n",
- "Enfin, l'auditeur externe n'a rejeté aucun plan de la sonde. Sur des instances où la recherche est interrompue et rend des incumbents non certifiés, c'est précisément là qu'un vérificateur indépendant a de la valeur : `FEASIBLE` reste un plan **valide**, et cette validité est ici mesurée, pas supposée."
+ "Enfin, l'auditeur externe n'a rejeté aucun plan de la sonde. Sur des instances où la recherche est interrompue et rend des incumbents non certifiés, c'est précisément là qu'un vérificateur indépendant a de la valeur : `FEASIBLE` reste un plan **valide**, et cette validité est ici mesurée, pas supposée.\n"
]
},
{
@@ -2230,16 +2222,16 @@
"id": "824a04a6",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:45:08.516983Z",
- "iopub.status.busy": "2026-09-06T23:45:08.516693Z",
- "iopub.status.idle": "2026-09-06T23:45:08.536717Z",
- "shell.execute_reply": "2026-09-06T23:45:08.535220Z"
+ "iopub.execute_input": "2026-10-05T15:48:51.376315Z",
+ "iopub.status.busy": "2026-10-05T15:48:51.375639Z",
+ "iopub.status.idle": "2026-10-05T15:48:51.393599Z",
+ "shell.execute_reply": "2026-10-05T15:48:51.392464Z"
},
"papermill": {
- "duration": 0.037391,
- "end_time": "2026-09-06T23:45:08.537916+00:00",
+ "duration": 0.028416,
+ "end_time": "2026-10-05T15:48:51.395107+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.500525+00:00",
+ "start_time": "2026-10-05T15:48:51.366691+00:00",
"status": "completed"
},
"tags": []
@@ -2252,19 +2244,19 @@
"provenance.json : 25 instances identifiees par empreinte\n",
"\n",
"Artefacts publies dans data\\app30-orbital-assembly-audit\n",
- " difficulty_probe.csv 2,665 octets\n",
- " exchange_fronts.json 14,996 octets\n",
- " grid_runs.csv 4,483 octets\n",
+ " difficulty_probe.csv 2,583 octets\n",
+ " exchange_fronts.json 15,034 octets\n",
+ " grid_runs.csv 4,477 octets\n",
" LICENSE 1,129 octets\n",
" matched_comparison.csv 2,738 octets\n",
- " provenance.json 9,890 octets\n",
- " SOURCE.md 6,851 octets\n"
+ " provenance.json 9,897 octets\n",
+ " SOURCE.md 6,862 octets\n"
]
}
],
"source": [
"provenance = {\n",
- " \"application\": \"App-30 — Ordonnancement d'assemblage orbital\",\n",
+ " \"application\": \"Frontieres-08 — Ordonnancement d'assemblage orbital\",\n",
" \"distillation\": {\n",
" \"projet\": \"PrCon C4 — Orbital Assembly Scheduling\",\n",
" \"auteurs\": [\"Gurvan Estable\", \"Joris Bely\", \"Kévin Lubert\"],\n",
@@ -2311,10 +2303,10 @@
"id": "9562692c",
"metadata": {
"papermill": {
- "duration": 0.009234,
- "end_time": "2026-09-06T23:45:08.556360+00:00",
+ "duration": 0.006425,
+ "end_time": "2026-10-05T15:48:51.408127+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.547126+00:00",
+ "start_time": "2026-10-05T15:48:51.401702+00:00",
"status": "completed"
},
"tags": []
@@ -2331,16 +2323,16 @@
"id": "10e749ec",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:45:08.580514Z",
- "iopub.status.busy": "2026-09-06T23:45:08.580034Z",
- "iopub.status.idle": "2026-09-06T23:45:08.589724Z",
- "shell.execute_reply": "2026-09-06T23:45:08.588376Z"
+ "iopub.execute_input": "2026-10-05T15:48:51.421486Z",
+ "iopub.status.busy": "2026-10-05T15:48:51.421210Z",
+ "iopub.status.idle": "2026-10-05T15:48:51.427811Z",
+ "shell.execute_reply": "2026-10-05T15:48:51.426862Z"
},
"papermill": {
- "duration": 0.021235,
- "end_time": "2026-09-06T23:45:08.590830+00:00",
+ "duration": 0.014631,
+ "end_time": "2026-10-05T15:48:51.428755+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.569595+00:00",
+ "start_time": "2026-10-05T15:48:51.414124+00:00",
"status": "completed"
},
"tags": []
@@ -2391,10 +2383,10 @@
"id": "ded4bf55",
"metadata": {
"papermill": {
- "duration": 0.018179,
- "end_time": "2026-09-06T23:45:08.621068+00:00",
+ "duration": 0.00559,
+ "end_time": "2026-10-05T15:48:51.439740+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.602889+00:00",
+ "start_time": "2026-10-05T15:48:51.434150+00:00",
"status": "completed"
},
"tags": []
@@ -2413,16 +2405,16 @@
"id": "677a9a93",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:45:08.689528Z",
- "iopub.status.busy": "2026-09-06T23:45:08.689250Z",
- "iopub.status.idle": "2026-09-06T23:45:08.742249Z",
- "shell.execute_reply": "2026-09-06T23:45:08.740430Z"
+ "iopub.execute_input": "2026-10-05T15:48:51.453442Z",
+ "iopub.status.busy": "2026-10-05T15:48:51.453013Z",
+ "iopub.status.idle": "2026-10-05T15:48:51.494135Z",
+ "shell.execute_reply": "2026-10-05T15:48:51.493190Z"
},
"papermill": {
- "duration": 0.092843,
- "end_time": "2026-09-06T23:45:08.743443+00:00",
+ "duration": 0.049553,
+ "end_time": "2026-10-05T15:48:51.495228+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.650600+00:00",
+ "start_time": "2026-10-05T15:48:51.445675+00:00",
"status": "completed"
},
"tags": []
@@ -2473,10 +2465,10 @@
"id": "ee1d988f",
"metadata": {
"papermill": {
- "duration": 0.00931,
- "end_time": "2026-09-06T23:45:08.762089+00:00",
+ "duration": 0.007947,
+ "end_time": "2026-10-05T15:48:51.510415+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.752779+00:00",
+ "start_time": "2026-10-05T15:48:51.502468+00:00",
"status": "completed"
},
"tags": []
@@ -2497,16 +2489,16 @@
"id": "f821dfe4",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-06T23:45:08.819056Z",
- "iopub.status.busy": "2026-09-06T23:45:08.818535Z",
- "iopub.status.idle": "2026-09-06T23:45:08.828337Z",
- "shell.execute_reply": "2026-09-06T23:45:08.827079Z"
+ "iopub.execute_input": "2026-10-05T15:48:51.529786Z",
+ "iopub.status.busy": "2026-10-05T15:48:51.529350Z",
+ "iopub.status.idle": "2026-10-05T15:48:51.539585Z",
+ "shell.execute_reply": "2026-10-05T15:48:51.537951Z"
},
"papermill": {
- "duration": 0.053635,
- "end_time": "2026-09-06T23:45:08.829713+00:00",
+ "duration": 0.022367,
+ "end_time": "2026-10-05T15:48:51.541070+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.776078+00:00",
+ "start_time": "2026-10-05T15:48:51.518703+00:00",
"status": "completed"
},
"tags": []
@@ -2556,10 +2548,10 @@
"id": "dec4aa40",
"metadata": {
"papermill": {
- "duration": 0.009678,
- "end_time": "2026-09-06T23:45:08.848746+00:00",
+ "duration": 0.007405,
+ "end_time": "2026-10-05T15:48:51.556283+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.839068+00:00",
+ "start_time": "2026-10-05T15:48:51.548878+00:00",
"status": "completed"
},
"tags": []
@@ -2579,10 +2571,10 @@
"id": "8cd7a398",
"metadata": {
"papermill": {
- "duration": 0.031214,
- "end_time": "2026-09-06T23:45:08.889858+00:00",
+ "duration": 0.0068,
+ "end_time": "2026-10-05T15:48:51.570303+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.858644+00:00",
+ "start_time": "2026-10-05T15:48:51.563503+00:00",
"status": "completed"
},
"tags": []
@@ -2613,10 +2605,10 @@
"id": "f75dddcf",
"metadata": {
"papermill": {
- "duration": 0.031927,
- "end_time": "2026-09-06T23:45:08.959894+00:00",
+ "duration": 0.010102,
+ "end_time": "2026-10-05T15:48:51.588454+00:00",
"exception": false,
- "start_time": "2026-09-06T23:45:08.927967+00:00",
+ "start_time": "2026-10-05T15:48:51.578352+00:00",
"status": "completed"
},
"tags": []
@@ -2653,10 +2645,10 @@
"\n",
"### Pour aller plus loin\n",
"\n",
- "- [CSP-4 Scheduling](../../Part2-CSP/CSP-4-Scheduling.ipynb) — les primitives d'intervalles, `NoOverlap` et `Cumulative` en contexte.\n",
- "- [CSP-5 Optimisation](../../Part2-CSP/CSP-5-Optimization.ipynb) — objectifs, bornes et lecture des statuts.\n",
- "- [App-29 SALBP](App-29-SALBP-AssemblyLineBalancing-Audit.ipynb) — même exigence de certificats et de provenance sur l'équilibrage de ligne.\n",
- "- [App-24 MAPF](App-24-MAPF-Guarantee-Audit.ipynb) — l'audit de garanties appliqué au *pathfinding* multi-agent."
+ "- [CSP-4 Scheduling](../Part2-CSP/CSP-4-Scheduling.ipynb) — les primitives d'intervalles, `NoOverlap` et `Cumulative` en contexte.\n",
+ "- [CSP-5 Optimisation](../Part2-CSP/CSP-5-Optimization.ipynb) — objectifs, bornes et lecture des statuts.\n",
+ "- [Frontieres-07 SALBP](Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb) — même exigence de certificats et de provenance sur l'équilibrage de ligne.\n",
+ "- [App-24 MAPF](Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb) — l'audit de garanties appliqué au *pathfinding* multi-agent."
]
}
],
@@ -2676,21 +2668,21 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.13.14"
+ "version": "3.13.15"
},
"papermill": {
"default_parameters": {},
- "duration": 246.232405,
- "end_time": "2026-09-06T23:45:09.969967+00:00",
+ "duration": 189.631657,
+ "end_time": "2026-10-05T15:48:52.027858+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-30-OrbitalAssembly-Certificate-Audit.ipynb",
- "output_path": "App-30-OrbitalAssembly-Certificate-Audit.ipynb",
+ "input_path": "Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb",
+ "output_path": "Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb",
"parameters": {},
- "start_time": "2026-09-06T23:41:03.737562+00:00",
+ "start_time": "2026-10-05T15:45:42.396201+00:00",
"version": "2.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
-}
+}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb
similarity index 54%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb
index 6c49632c2a..fedcd6e411 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb
@@ -5,16 +5,16 @@
"id": "bd00bbaf",
"metadata": {
"papermill": {
- "duration": 0.0043,
- "end_time": "2026-09-07T08:01:54.212517+00:00",
+ "duration": 0.004381,
+ "end_time": "2026-10-05T15:49:01.352549+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:54.208217+00:00",
+ "start_time": "2026-10-05T15:49:01.348168+00:00",
"status": "completed"
},
"tags": []
},
"source": [
- "# App-31 — RCPSP/max : quand la faisabilité devient le problème\n",
+ "# Frontieres-09 — RCPSP/max : quand la faisabilité devient le problème\n",
"\n",
"## Décalages généralisés, circuits de poids positif, et ce qu'une borne gratuite dit d'un banc d'essai\n",
"\n",
@@ -65,10 +65,10 @@
"id": "ac3a6c1b",
"metadata": {
"papermill": {
- "duration": 0.003051,
- "end_time": "2026-09-07T08:01:54.220007+00:00",
+ "duration": 0.003557,
+ "end_time": "2026-10-05T15:49:01.360310+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:54.216956+00:00",
+ "start_time": "2026-10-05T15:49:01.356753+00:00",
"status": "completed"
},
"tags": []
@@ -96,16 +96,16 @@
"id": "f37cf19b",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:01:54.228063Z",
- "iopub.status.busy": "2026-09-07T08:01:54.227894Z",
- "iopub.status.idle": "2026-09-07T08:01:56.363405Z",
- "shell.execute_reply": "2026-09-07T08:01:56.362430Z"
+ "iopub.execute_input": "2026-10-05T15:49:01.369756Z",
+ "iopub.status.busy": "2026-10-05T15:49:01.369301Z",
+ "iopub.status.idle": "2026-10-05T15:49:02.639659Z",
+ "shell.execute_reply": "2026-10-05T15:49:02.638738Z"
},
"papermill": {
- "duration": 2.141043,
- "end_time": "2026-09-07T08:01:56.364096+00:00",
+ "duration": 1.276531,
+ "end_time": "2026-10-05T15:49:02.640422+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:54.223053+00:00",
+ "start_time": "2026-10-05T15:49:01.363891+00:00",
"status": "completed"
},
"tags": []
@@ -116,11 +116,11 @@
"output_type": "stream",
"text": [
"Environnement de collecte\n",
- " python 3.13.14\n",
+ " python 3.13.15\n",
" platform Windows\n",
" ortools 9.15.6755\n",
- " numpy 2.4.4\n",
- " pandas 2.3.3\n",
+ " numpy 2.4.6\n",
+ " pandas 3.0.5\n",
"\n",
"Artefacts ecrits dans : data\\app31-rcpsp-max\n"
]
@@ -168,10 +168,10 @@
"id": "221e195d",
"metadata": {
"papermill": {
- "duration": 0.002993,
- "end_time": "2026-09-07T08:01:56.370524+00:00",
+ "duration": 0.00322,
+ "end_time": "2026-10-05T15:49:02.646974+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.367531+00:00",
+ "start_time": "2026-10-05T15:49:02.643754+00:00",
"status": "completed"
},
"tags": []
@@ -187,10 +187,10 @@
"id": "15cc83bc",
"metadata": {
"papermill": {
- "duration": 0.0027,
- "end_time": "2026-09-07T08:01:56.376106+00:00",
+ "duration": 0.003838,
+ "end_time": "2026-10-05T15:49:02.654436+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.373406+00:00",
+ "start_time": "2026-10-05T15:49:02.650598+00:00",
"status": "completed"
},
"tags": []
@@ -227,16 +227,16 @@
"id": "f7c357f5",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:01:56.383071Z",
- "iopub.status.busy": "2026-09-07T08:01:56.382838Z",
- "iopub.status.idle": "2026-09-07T08:01:56.390738Z",
- "shell.execute_reply": "2026-09-07T08:01:56.389868Z"
+ "iopub.execute_input": "2026-10-05T15:49:02.665406Z",
+ "iopub.status.busy": "2026-10-05T15:49:02.664577Z",
+ "iopub.status.idle": "2026-10-05T15:49:02.677547Z",
+ "shell.execute_reply": "2026-10-05T15:49:02.676394Z"
},
"papermill": {
- "duration": 0.012366,
- "end_time": "2026-09-07T08:01:56.391396+00:00",
+ "duration": 0.020301,
+ "end_time": "2026-10-05T15:49:02.678741+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.379030+00:00",
+ "start_time": "2026-10-05T15:49:02.658440+00:00",
"status": "completed"
},
"tags": []
@@ -322,10 +322,10 @@
"id": "a33e2281",
"metadata": {
"papermill": {
- "duration": 0.003575,
- "end_time": "2026-09-07T08:01:56.398158+00:00",
+ "duration": 0.004942,
+ "end_time": "2026-10-05T15:49:02.688914+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.394583+00:00",
+ "start_time": "2026-10-05T15:49:02.683972+00:00",
"status": "completed"
},
"tags": []
@@ -346,10 +346,10 @@
"id": "34acfb2f",
"metadata": {
"papermill": {
- "duration": 0.003071,
- "end_time": "2026-09-07T08:01:56.404099+00:00",
+ "duration": 0.005203,
+ "end_time": "2026-10-05T15:49:02.698892+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.401028+00:00",
+ "start_time": "2026-10-05T15:49:02.693689+00:00",
"status": "completed"
},
"tags": []
@@ -381,16 +381,16 @@
"id": "4a390a79",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:01:56.410562Z",
- "iopub.status.busy": "2026-09-07T08:01:56.410410Z",
- "iopub.status.idle": "2026-09-07T08:01:56.416363Z",
- "shell.execute_reply": "2026-09-07T08:01:56.415818Z"
+ "iopub.execute_input": "2026-10-05T15:49:02.710282Z",
+ "iopub.status.busy": "2026-10-05T15:49:02.709913Z",
+ "iopub.status.idle": "2026-10-05T15:49:02.720875Z",
+ "shell.execute_reply": "2026-10-05T15:49:02.719389Z"
},
"papermill": {
- "duration": 0.010031,
- "end_time": "2026-09-07T08:01:56.416850+00:00",
+ "duration": 0.018513,
+ "end_time": "2026-10-05T15:49:02.722063+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.406819+00:00",
+ "start_time": "2026-10-05T15:49:02.703550+00:00",
"status": "completed"
},
"tags": []
@@ -469,10 +469,10 @@
"id": "5388605f",
"metadata": {
"papermill": {
- "duration": 0.003151,
- "end_time": "2026-09-07T08:01:56.422995+00:00",
+ "duration": 0.00576,
+ "end_time": "2026-10-05T15:49:02.732326+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.419844+00:00",
+ "start_time": "2026-10-05T15:49:02.726566+00:00",
"status": "completed"
},
"tags": []
@@ -493,10 +493,10 @@
"id": "f88231f3",
"metadata": {
"papermill": {
- "duration": 0.003361,
- "end_time": "2026-09-07T08:01:56.429687+00:00",
+ "duration": 0.00391,
+ "end_time": "2026-10-05T15:49:02.741583+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.426326+00:00",
+ "start_time": "2026-10-05T15:49:02.737673+00:00",
"status": "completed"
},
"tags": []
@@ -528,16 +528,16 @@
"id": "40eb6f0d",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:01:56.437012Z",
- "iopub.status.busy": "2026-09-07T08:01:56.436739Z",
- "iopub.status.idle": "2026-09-07T08:01:56.463523Z",
- "shell.execute_reply": "2026-09-07T08:01:56.462921Z"
+ "iopub.execute_input": "2026-10-05T15:49:02.751895Z",
+ "iopub.status.busy": "2026-10-05T15:49:02.751499Z",
+ "iopub.status.idle": "2026-10-05T15:49:02.796745Z",
+ "shell.execute_reply": "2026-10-05T15:49:02.795685Z"
},
"papermill": {
- "duration": 0.031346,
- "end_time": "2026-09-07T08:01:56.464079+00:00",
+ "duration": 0.051645,
+ "end_time": "2026-10-05T15:49:02.797656+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.432733+00:00",
+ "start_time": "2026-10-05T15:49:02.746011+00:00",
"status": "completed"
},
"tags": []
@@ -616,10 +616,10 @@
"id": "351f4321",
"metadata": {
"papermill": {
- "duration": 0.003231,
- "end_time": "2026-09-07T08:01:56.470577+00:00",
+ "duration": 0.00378,
+ "end_time": "2026-10-05T15:49:02.805702+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.467346+00:00",
+ "start_time": "2026-10-05T15:49:02.801922+00:00",
"status": "completed"
},
"tags": []
@@ -637,10 +637,10 @@
"id": "68a8ebb6",
"metadata": {
"papermill": {
- "duration": 0.003319,
- "end_time": "2026-09-07T08:01:56.477047+00:00",
+ "duration": 0.00353,
+ "end_time": "2026-10-05T15:49:02.812928+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.473728+00:00",
+ "start_time": "2026-10-05T15:49:02.809398+00:00",
"status": "completed"
},
"tags": []
@@ -676,16 +676,16 @@
"id": "75af690f",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:01:56.484298Z",
- "iopub.status.busy": "2026-09-07T08:01:56.484128Z",
- "iopub.status.idle": "2026-09-07T08:01:56.490836Z",
- "shell.execute_reply": "2026-09-07T08:01:56.490341Z"
+ "iopub.execute_input": "2026-10-05T15:49:02.821591Z",
+ "iopub.status.busy": "2026-10-05T15:49:02.821334Z",
+ "iopub.status.idle": "2026-10-05T15:49:02.830784Z",
+ "shell.execute_reply": "2026-10-05T15:49:02.829848Z"
},
"papermill": {
- "duration": 0.011099,
- "end_time": "2026-09-07T08:01:56.491273+00:00",
+ "duration": 0.015092,
+ "end_time": "2026-10-05T15:49:02.831613+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.480174+00:00",
+ "start_time": "2026-10-05T15:49:02.816521+00:00",
"status": "completed"
},
"tags": []
@@ -768,10 +768,10 @@
"id": "22a08eda",
"metadata": {
"papermill": {
- "duration": 0.002966,
- "end_time": "2026-09-07T08:01:56.497611+00:00",
+ "duration": 0.003437,
+ "end_time": "2026-10-05T15:49:02.839101+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.494645+00:00",
+ "start_time": "2026-10-05T15:49:02.835664+00:00",
"status": "completed"
},
"tags": []
@@ -791,10 +791,10 @@
"id": "e04a8a98",
"metadata": {
"papermill": {
- "duration": 0.003296,
- "end_time": "2026-09-07T08:01:56.504144+00:00",
+ "duration": 0.003338,
+ "end_time": "2026-10-05T15:49:02.847864+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.500848+00:00",
+ "start_time": "2026-10-05T15:49:02.844526+00:00",
"status": "completed"
},
"tags": []
@@ -813,16 +813,16 @@
"id": "ffd644b0",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:01:56.511180Z",
- "iopub.status.busy": "2026-09-07T08:01:56.511036Z",
- "iopub.status.idle": "2026-09-07T08:02:00.041603Z",
- "shell.execute_reply": "2026-09-07T08:02:00.040341Z"
+ "iopub.execute_input": "2026-10-05T15:49:02.859963Z",
+ "iopub.status.busy": "2026-10-05T15:49:02.859585Z",
+ "iopub.status.idle": "2026-10-05T15:49:07.341243Z",
+ "shell.execute_reply": "2026-10-05T15:49:07.340449Z"
},
"papermill": {
- "duration": 3.53566,
- "end_time": "2026-09-07T08:02:00.042677+00:00",
+ "duration": 4.490435,
+ "end_time": "2026-10-05T15:49:07.342336+00:00",
"exception": false,
- "start_time": "2026-09-07T08:01:56.507017+00:00",
+ "start_time": "2026-10-05T15:49:02.851901+00:00",
"status": "completed"
},
"tags": []
@@ -839,12 +839,12 @@
"-3 24 0 0 0 0.00\n",
"-2 24 0 0 0 0.00\n",
"-1 24 0 0 0 0.00\n",
- " 0 0 24 0 0 0.09\n",
- " 1 0 23 1 0 0.34\n",
- " 2 0 22 2 0 0.35\n",
- " 3 0 22 2 0 0.59\n",
- " 5 0 19 5 0 1.26\n",
- " 8 0 4 20 0 0.66\n"
+ " 0 0 24 0 0 0.18\n",
+ " 1 0 23 1 0 0.52\n",
+ " 2 0 22 2 0 0.51\n",
+ " 3 0 22 2 0 0.63\n",
+ " 5 0 19 5 0 1.55\n",
+ " 8 0 4 20 0 0.83\n"
]
}
],
@@ -891,10 +891,10 @@
"id": "d9e1e915",
"metadata": {
"papermill": {
- "duration": 0.006584,
- "end_time": "2026-09-07T08:02:00.056798+00:00",
+ "duration": 0.003772,
+ "end_time": "2026-10-05T15:49:07.350135+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:00.050214+00:00",
+ "start_time": "2026-10-05T15:49:07.346363+00:00",
"status": "completed"
},
"tags": []
@@ -927,16 +927,16 @@
"id": "547a1187",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:00.067651Z",
- "iopub.status.busy": "2026-09-07T08:02:00.067178Z",
- "iopub.status.idle": "2026-09-07T08:02:00.470314Z",
- "shell.execute_reply": "2026-09-07T08:02:00.469543Z"
+ "iopub.execute_input": "2026-10-05T15:49:07.360710Z",
+ "iopub.status.busy": "2026-10-05T15:49:07.360296Z",
+ "iopub.status.idle": "2026-10-05T15:49:07.743321Z",
+ "shell.execute_reply": "2026-10-05T15:49:07.742438Z"
},
"papermill": {
- "duration": 0.4102,
- "end_time": "2026-09-07T08:02:00.471073+00:00",
+ "duration": 0.390406,
+ "end_time": "2026-10-05T15:49:07.744292+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:00.060873+00:00",
+ "start_time": "2026-10-05T15:49:07.353886+00:00",
"status": "completed"
},
"tags": []
@@ -944,7 +944,7 @@
"outputs": [
{
"data": {
- "image/png": "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",
+ "image/png": "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gZaI7ZVi6VJnyhTba259S0RExEAWERFRGJqAAAQGBiIkNBR2/yt4TSRCQkLUZyNRokTsECOQgErdKkXVxdzaKyv+mXLxYXPrWyIism4MZBEREYXhf+0y/LPmwL0nT1SR64hs376LU3+FBgWabH/ztX2ZBLGkrlSSJEkS6B0hIiIiIosOZMmqKqtXr8bBgwfV2dKmTZuiTJkyxm4WERGZkcC7t/F+63o4584HG2fnSMdTFisVp8d/dfEcTBVf25fJ2EKCWB4eHgn0jhARERGRRQeyunXrppaJ7tevH169eoWKFSti8eLFaNmypbGbRkREZhbMkktUyjZvHafHvjWkN0wVXxsRERERmTqLCWRdvHgRc+bMwYEDB1C5cmW1T6aESLFSycyyt7eYl0pEREREREREZJUsport9u3bkTx5clSqVEm3r3nz5nj58iVOnz5t1LYREREREREREVHcWUya0t27d5EhQwbY2Njo9mXMmFF3rHTp0lHez8fHR120Hj16pH4+e/Ys3tr63vcTTNnjx49jfV++NvN83177fbLI1yX42oyD71v0+Jk0z8/kl2jHDFIInv6/H+JzLGVuvL294evra+xmWCT2LfvWHPFzy741R97x+F0W07GUxQSyPn36BDc3t3D7tNflWHQmT56MkSNHRtpfokQJWKvRC9PDUvG1maH0lvt55GszU/xMmqcEeN+kPmemTJlg7aQfrH0sRURERPE3lrKYQJasIHTlypVw+969+7xE+pdWF5LC8J07d9Zd9/f3V1lZmTNnNou6WhK5lIHiqVOnkDp1algSvjbzxPfNPPF9M0+W+r6Z2+uSs4cy8MqfP7+xm2ISpB/kvZOSD+Ywlopv5vZ5NifsW/atOeLnln1rjp7F83dZTMdSFjO6kBcsKxRKIMr5f8ulX758WXcsOu7u7uoSVrZs2WBu5MOULl06WCK+NvPE98088X0zT5b6vpnT62Im1v+TcVjx4sWN+G6YJnP6PJsb9i371hzxc8u+NUep4/G7LCZjKYsp9t6wYUNoNBrMnTtXXZftqVOnonDhwsiVK5exm0dERERERERERHFkMRlZqVKlwpw5c9C1a1ds3LgRb968Ualpu3btMnbTiIiIiIiIiIjIACwmkCVat26NatWq4cSJE0iUKBEqVKgAV1dXWDKZFjlixIhI0yMtAV+beeL7Zp74vpkn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j2/X/zdj2GutvdaznvfU+z/P+zzPW6OGU7JkyYS+xY9Lly61f3N9ZmamU61aNXu2x08//eR88sknTps2bfxjR44csZLPpk2bWlCG9+FYo0aN/GsoB2WMsrKynGLFiiW0IaodHjt27HC+/vpr80HZsmWdFStW+HYAfsX/lFzWqlUrocA5dOiQlVq0aNHCMqNY0atcubI9G7Zt2+bs2rXLqV69eszPVxRbk/mjVKlSTpcuXfyxSaUtBTF+Qggh/r/p0KFDNv1DWR3z5YEDB2zuqFixYlw9Epx3Vq9e7VSoUMGpUqVK3OesXbvW2bdvn81DfA8tFW/Rhmdv3rzZ5qjatWs7pUuXztX5o0eP2tyFpsLG8HlP8zHHbdy40SlTpoxpAi8resuWLRbYS6QJad+AlkLToaWSBUuYi5mTCxcu7GRkZJhu498ewXmeAEw8vYrm432bNWvmfw9f4tPGjRubdkhGMjs80BRffvml+QDtsHjx4hjdjG3Yc/DgQXt//BePoJ44fPiw+RXd6ul2ylnRbNgR/vlKZmsyfzC2aCm0YKptKajxEyKluEKIAuWss85yZ86c6X/etGmTW7VqVffCCy90mzRp4pYqVcrt37+/f/733393+U911apVMfepVKmS+8ILLyR8Tvfu3d3WrVu7LVu2dC+44AI3MzPTXb9+fcw1GzdudM8//3z37LPPdhs3buyee+657oIFCyKfX7lypVumTBn3oosuci+77DK3ZMmS7uzZs2Oecdppp7k33HCDW7FiRffaa691p02bZsdHjBjhnnrqqW7Dhg3djIwM9+abb7b33LJli//d1157zS1durRbr149u+6MM86wY4nAV7wzf5o3b+6WL1/evfLKK90DBw7416xYscKeE+S7776LefaHH37onnzyye4777xjn48ePerWqVPHbd++fdznfvXVV/b9b775JrIdMHDgQLdIkSIJfbBjxw63SpUqNgZNmzY1H06ePDmuDRs2bLDvtmrVysab5xUqVMh94okn3A4dOtjPF88pVqyYu3jx4lz5LJk/wu+fSltSMX5CCCHSi+rVq7vjx4/3P2/fvt2tWbOmzZnMl+iFBx54wP37779j9Mj8+fNj7sPcMGrUqITPGTBggM1JzGc8k3mJOSYIc2CtWrXccuXKuVdddZV7zjnnuNOnT498ft26dTa/owXr1q3rFi9e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",
"text/plain": [
""
]
@@ -984,10 +984,10 @@
"id": "f1dc8c22",
"metadata": {
"papermill": {
- "duration": 0.003513,
- "end_time": "2026-09-07T08:02:00.478367+00:00",
+ "duration": 0.005749,
+ "end_time": "2026-10-05T15:49:07.754982+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:00.474854+00:00",
+ "start_time": "2026-10-05T15:49:07.749233+00:00",
"status": "completed"
},
"tags": []
@@ -1015,10 +1015,10 @@
"id": "267ce175",
"metadata": {
"papermill": {
- "duration": 0.002973,
- "end_time": "2026-09-07T08:02:00.484517+00:00",
+ "duration": 0.005699,
+ "end_time": "2026-10-05T15:49:07.766486+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:00.481544+00:00",
+ "start_time": "2026-10-05T15:49:07.760787+00:00",
"status": "completed"
},
"tags": []
@@ -1047,16 +1047,16 @@
"id": "6acd6465",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:00.492405Z",
- "iopub.status.busy": "2026-09-07T08:02:00.492244Z",
- "iopub.status.idle": "2026-09-07T08:02:04.816790Z",
- "shell.execute_reply": "2026-09-07T08:02:04.816109Z"
+ "iopub.execute_input": "2026-10-05T15:49:07.780974Z",
+ "iopub.status.busy": "2026-10-05T15:49:07.780377Z",
+ "iopub.status.idle": "2026-10-05T15:49:15.260551Z",
+ "shell.execute_reply": "2026-10-05T15:49:15.259644Z"
},
"papermill": {
- "duration": 4.329221,
- "end_time": "2026-09-07T08:02:04.817504+00:00",
+ "duration": 7.488875,
+ "end_time": "2026-10-05T15:49:15.261590+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:00.488283+00:00",
+ "start_time": "2026-10-05T15:49:07.772715+00:00",
"status": "completed"
},
"tags": []
@@ -1166,10 +1166,10 @@
"id": "8bfcee9c",
"metadata": {
"papermill": {
- "duration": 0.003322,
- "end_time": "2026-09-07T08:02:04.825570+00:00",
+ "duration": 0.004573,
+ "end_time": "2026-10-05T15:49:15.270716+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:04.822248+00:00",
+ "start_time": "2026-10-05T15:49:15.266143+00:00",
"status": "completed"
},
"tags": []
@@ -1201,10 +1201,10 @@
"id": "2f823c5d",
"metadata": {
"papermill": {
- "duration": 0.0033,
- "end_time": "2026-09-07T08:02:04.832174+00:00",
+ "duration": 0.004532,
+ "end_time": "2026-10-05T15:49:15.279735+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:04.828874+00:00",
+ "start_time": "2026-10-05T15:49:15.275203+00:00",
"status": "completed"
},
"tags": []
@@ -1231,16 +1231,16 @@
"id": "3ec86fe4",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:04.840507Z",
- "iopub.status.busy": "2026-09-07T08:02:04.840282Z",
- "iopub.status.idle": "2026-09-07T08:02:04.847540Z",
- "shell.execute_reply": "2026-09-07T08:02:04.847021Z"
+ "iopub.execute_input": "2026-10-05T15:49:15.291052Z",
+ "iopub.status.busy": "2026-10-05T15:49:15.290762Z",
+ "iopub.status.idle": "2026-10-05T15:49:15.299702Z",
+ "shell.execute_reply": "2026-10-05T15:49:15.298876Z"
},
"papermill": {
- "duration": 0.012244,
- "end_time": "2026-09-07T08:02:04.848042+00:00",
+ "duration": 0.015993,
+ "end_time": "2026-10-05T15:49:15.300842+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:04.835798+00:00",
+ "start_time": "2026-10-05T15:49:15.284849+00:00",
"status": "completed"
},
"tags": []
@@ -1309,10 +1309,10 @@
"id": "e3162d60",
"metadata": {
"papermill": {
- "duration": 0.003349,
- "end_time": "2026-09-07T08:02:04.855073+00:00",
+ "duration": 0.004422,
+ "end_time": "2026-10-05T15:49:15.309931+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:04.851724+00:00",
+ "start_time": "2026-10-05T15:49:15.305509+00:00",
"status": "completed"
},
"tags": []
@@ -1327,7 +1327,7 @@
"`OPTIMAL`. Ce qui manque n'est pas un résultat, c'est la garantie qu'une comparaison manquée\n",
"se signale.\n",
"\n",
- "App-29 a déjà doté CoursIA du premier volet : **refuser** une jointure dont l'identité\n",
+ "Frontieres-07 a déjà doté CoursIA du premier volet : **refuser** une jointure dont l'identité\n",
"structurelle ne correspond pas. Le volet complémentaire est celui-ci : **sur quoi se rabattre\n",
"quand la référence manque légitimement ?**"
]
@@ -1338,16 +1338,16 @@
"id": "95505aae",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:04.862752Z",
- "iopub.status.busy": "2026-09-07T08:02:04.862513Z",
- "iopub.status.idle": "2026-09-07T08:02:05.452329Z",
- "shell.execute_reply": "2026-09-07T08:02:05.451613Z"
+ "iopub.execute_input": "2026-10-05T15:49:15.320253Z",
+ "iopub.status.busy": "2026-10-05T15:49:15.319956Z",
+ "iopub.status.idle": "2026-10-05T15:49:16.403521Z",
+ "shell.execute_reply": "2026-10-05T15:49:16.401992Z"
},
"papermill": {
- "duration": 0.595079,
- "end_time": "2026-09-07T08:02:05.453339+00:00",
+ "duration": 1.091199,
+ "end_time": "2026-10-05T15:49:16.405584+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:04.858260+00:00",
+ "start_time": "2026-10-05T15:49:15.314385+00:00",
"status": "completed"
},
"tags": []
@@ -1416,10 +1416,10 @@
"id": "0033a454",
"metadata": {
"papermill": {
- "duration": 0.003155,
- "end_time": "2026-09-07T08:02:05.460621+00:00",
+ "duration": 0.005073,
+ "end_time": "2026-10-05T15:49:16.416453+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.457466+00:00",
+ "start_time": "2026-10-05T15:49:16.411380+00:00",
"status": "completed"
},
"tags": []
@@ -1442,10 +1442,10 @@
"id": "9fc991e4",
"metadata": {
"papermill": {
- "duration": 0.003138,
- "end_time": "2026-09-07T08:02:05.466934+00:00",
+ "duration": 0.004139,
+ "end_time": "2026-10-05T15:49:16.425028+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.463796+00:00",
+ "start_time": "2026-10-05T15:49:16.420889+00:00",
"status": "completed"
},
"tags": []
@@ -1475,16 +1475,16 @@
"id": "eabc81c3",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:05.474935Z",
- "iopub.status.busy": "2026-09-07T08:02:05.474638Z",
- "iopub.status.idle": "2026-09-07T08:02:05.487223Z",
- "shell.execute_reply": "2026-09-07T08:02:05.486562Z"
+ "iopub.execute_input": "2026-10-05T15:49:16.435641Z",
+ "iopub.status.busy": "2026-10-05T15:49:16.435363Z",
+ "iopub.status.idle": "2026-10-05T15:49:16.449506Z",
+ "shell.execute_reply": "2026-10-05T15:49:16.448685Z"
},
"papermill": {
- "duration": 0.01755,
- "end_time": "2026-09-07T08:02:05.488018+00:00",
+ "duration": 0.021165,
+ "end_time": "2026-10-05T15:49:16.450916+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.470468+00:00",
+ "start_time": "2026-10-05T15:49:16.429751+00:00",
"status": "completed"
},
"tags": []
@@ -1547,10 +1547,10 @@
"id": "bc86e52c",
"metadata": {
"papermill": {
- "duration": 0.005188,
- "end_time": "2026-09-07T08:02:05.499487+00:00",
+ "duration": 0.006136,
+ "end_time": "2026-10-05T15:49:16.462976+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.494299+00:00",
+ "start_time": "2026-10-05T15:49:16.456840+00:00",
"status": "completed"
},
"tags": []
@@ -1582,10 +1582,10 @@
"id": "d228babc",
"metadata": {
"papermill": {
- "duration": 0.003112,
- "end_time": "2026-09-07T08:02:05.506017+00:00",
+ "duration": 0.005524,
+ "end_time": "2026-10-05T15:49:16.474319+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.502905+00:00",
+ "start_time": "2026-10-05T15:49:16.468795+00:00",
"status": "completed"
},
"tags": []
@@ -1614,16 +1614,16 @@
"id": "575b9ed7",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:05.513323Z",
- "iopub.status.busy": "2026-09-07T08:02:05.513153Z",
- "iopub.status.idle": "2026-09-07T08:02:05.518033Z",
- "shell.execute_reply": "2026-09-07T08:02:05.517396Z"
+ "iopub.execute_input": "2026-10-05T15:49:16.485616Z",
+ "iopub.status.busy": "2026-10-05T15:49:16.485341Z",
+ "iopub.status.idle": "2026-10-05T15:49:16.491414Z",
+ "shell.execute_reply": "2026-10-05T15:49:16.490597Z"
},
"papermill": {
- "duration": 0.009369,
- "end_time": "2026-09-07T08:02:05.518558+00:00",
+ "duration": 0.012907,
+ "end_time": "2026-10-05T15:49:16.492384+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.509189+00:00",
+ "start_time": "2026-10-05T15:49:16.479477+00:00",
"status": "completed"
},
"tags": []
@@ -1678,10 +1678,10 @@
"id": "598eca40",
"metadata": {
"papermill": {
- "duration": 0.003182,
- "end_time": "2026-09-07T08:02:05.525337+00:00",
+ "duration": 0.003959,
+ "end_time": "2026-10-05T15:49:16.501459+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.522155+00:00",
+ "start_time": "2026-10-05T15:49:16.497500+00:00",
"status": "completed"
},
"tags": []
@@ -1701,16 +1701,16 @@
"id": "4f4394fa",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:05.533252Z",
- "iopub.status.busy": "2026-09-07T08:02:05.533091Z",
- "iopub.status.idle": "2026-09-07T08:02:05.537503Z",
- "shell.execute_reply": "2026-09-07T08:02:05.536980Z"
+ "iopub.execute_input": "2026-10-05T15:49:16.511573Z",
+ "iopub.status.busy": "2026-10-05T15:49:16.511243Z",
+ "iopub.status.idle": "2026-10-05T15:49:16.518307Z",
+ "shell.execute_reply": "2026-10-05T15:49:16.517349Z"
},
"papermill": {
- "duration": 0.00959,
- "end_time": "2026-09-07T08:02:05.538064+00:00",
+ "duration": 0.014485,
+ "end_time": "2026-10-05T15:49:16.519863+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.528474+00:00",
+ "start_time": "2026-10-05T15:49:16.505378+00:00",
"status": "completed"
},
"tags": []
@@ -1764,10 +1764,10 @@
"id": "acd15410",
"metadata": {
"papermill": {
- "duration": 0.003548,
- "end_time": "2026-09-07T08:02:05.545764+00:00",
+ "duration": 0.004858,
+ "end_time": "2026-10-05T15:49:16.530208+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.542216+00:00",
+ "start_time": "2026-10-05T15:49:16.525350+00:00",
"status": "completed"
},
"tags": []
@@ -1787,16 +1787,16 @@
"id": "88594468",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:05.553715Z",
- "iopub.status.busy": "2026-09-07T08:02:05.553532Z",
- "iopub.status.idle": "2026-09-07T08:02:05.559716Z",
- "shell.execute_reply": "2026-09-07T08:02:05.559010Z"
+ "iopub.execute_input": "2026-10-05T15:49:16.541253Z",
+ "iopub.status.busy": "2026-10-05T15:49:16.540873Z",
+ "iopub.status.idle": "2026-10-05T15:49:16.548159Z",
+ "shell.execute_reply": "2026-10-05T15:49:16.547354Z"
},
"papermill": {
- "duration": 0.011009,
- "end_time": "2026-09-07T08:02:05.560325+00:00",
+ "duration": 0.014198,
+ "end_time": "2026-10-05T15:49:16.549096+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.549316+00:00",
+ "start_time": "2026-10-05T15:49:16.534898+00:00",
"status": "completed"
},
"tags": []
@@ -1846,10 +1846,10 @@
"id": "dd2f5993",
"metadata": {
"papermill": {
- "duration": 0.003239,
- "end_time": "2026-09-07T08:02:05.567466+00:00",
+ "duration": 0.004684,
+ "end_time": "2026-10-05T15:49:16.558095+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.564227+00:00",
+ "start_time": "2026-10-05T15:49:16.553411+00:00",
"status": "completed"
},
"tags": []
@@ -1868,16 +1868,16 @@
"id": "cefd65b2",
"metadata": {
"execution": {
- "iopub.execute_input": "2026-09-07T08:02:05.575604Z",
- "iopub.status.busy": "2026-09-07T08:02:05.575343Z",
- "iopub.status.idle": "2026-09-07T08:02:05.603561Z",
- "shell.execute_reply": "2026-09-07T08:02:05.602997Z"
+ "iopub.execute_input": "2026-10-05T15:49:16.569213Z",
+ "iopub.status.busy": "2026-10-05T15:49:16.568908Z",
+ "iopub.status.idle": "2026-10-05T15:49:16.583573Z",
+ "shell.execute_reply": "2026-10-05T15:49:16.582270Z"
},
"papermill": {
- "duration": 0.033211,
- "end_time": "2026-09-07T08:02:05.604024+00:00",
+ "duration": 0.021728,
+ "end_time": "2026-10-05T15:49:16.584644+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.570813+00:00",
+ "start_time": "2026-10-05T15:49:16.562916+00:00",
"status": "completed"
},
"tags": []
@@ -1887,17 +1887,17 @@
"name": "stdout",
"output_type": "stream",
"text": [
- " bounds_ladder.json 6776 octets\n",
+ " bounds_ladder.json 6777 octets\n",
" LICENSE 1129 octets\n",
- " provenance.json 3054 octets\n",
- " SOURCE.md 7540 octets\n",
- " temporal_regimes.csv 9386 octets\n"
+ " provenance.json 3068 octets\n",
+ " SOURCE.md 7985 octets\n",
+ " temporal_regimes.csv 9350 octets\n"
]
}
],
"source": [
"provenance = {\n",
- " \"notebook\": \"App-31-RCPSP-Max-Feasibility-Bounds\",\n",
+ " \"notebook\": \"Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python\",\n",
" \"objet\": \"RCPSP/max : faisabilite, circuits de poids positif, hierarchie de bornes\",\n",
" \"source_distillee\": {\n",
" \"auteurs\": [\"Arthur Gallier\", \"Nicolas Naegelen\"],\n",
@@ -1942,10 +1942,10 @@
"id": "ffb8ae4e",
"metadata": {
"papermill": {
- "duration": 0.003434,
- "end_time": "2026-09-07T08:02:05.611042+00:00",
+ "duration": 0.004861,
+ "end_time": "2026-10-05T15:49:16.594873+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.607608+00:00",
+ "start_time": "2026-10-05T15:49:16.590012+00:00",
"status": "completed"
},
"tags": []
@@ -1963,10 +1963,10 @@
"id": "6b424dd2",
"metadata": {
"papermill": {
- "duration": 0.003281,
- "end_time": "2026-09-07T08:02:05.617806+00:00",
+ "duration": 0.004702,
+ "end_time": "2026-10-05T15:49:16.604436+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.614525+00:00",
+ "start_time": "2026-10-05T15:49:16.599734+00:00",
"status": "completed"
},
"tags": []
@@ -1991,7 +1991,7 @@
"visibles :\n",
"\n",
"- leur section RCPSP/max pose le **bon modèle général**, capable de porter des lags maximaux ;\n",
- " App-31 exerce ce que ce modèle rend possible et que la formulation seule ne montre pas — le\n",
+ " Frontieres-09 exerce ce que ce modèle rend possible et que la formulation seule ne montre pas — le\n",
" circuit, le témoin, la bascule de complexité ;\n",
"- leur banc d'essai fait reposer sa colonne d'écart sur une jointure par nom ; App-31 en tire\n",
" la question de protocole, non pour corriger un chiffre, mais pour que l'absence de référence\n",
@@ -2008,10 +2008,10 @@
"id": "dd398fd4",
"metadata": {
"papermill": {
- "duration": 0.004004,
- "end_time": "2026-09-07T08:02:05.625079+00:00",
+ "duration": 0.004968,
+ "end_time": "2026-10-05T15:49:16.614270+00:00",
"exception": false,
- "start_time": "2026-09-07T08:02:05.621075+00:00",
+ "start_time": "2026-10-05T15:49:16.609302+00:00",
"status": "completed"
},
"tags": []
@@ -2075,21 +2075,21 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.13.14"
+ "version": "3.13.15"
},
"papermill": {
"default_parameters": {},
- "duration": 16.815552,
- "end_time": "2026-09-07T08:02:05.971740+00:00",
+ "duration": 18.031087,
+ "end_time": "2026-10-05T15:49:17.062241+00:00",
"environment_variables": {},
"exception": null,
- "input_path": "App-31-RCPSP-Max-Feasibility-Bounds.ipynb",
- "output_path": "App-31-RCPSP-Max-Feasibility-Bounds.ipynb",
+ "input_path": "Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb",
+ "output_path": "Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb",
"parameters": {},
- "start_time": "2026-09-07T08:01:49.156188+00:00",
+ "start_time": "2026-10-05T15:48:59.031154+00:00",
"version": "2.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
-}
+}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb
similarity index 96%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb
index d64a9c15fa..e91d740167 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb
@@ -14,17 +14,17 @@
"tags": []
},
"source": [
- "# App-33 — Neural diving : un plongeur appris pour CP-SAT\n",
+ "# Frontieres-10 — Neural diving : un plongeur appris pour CP-SAT\n",
"\n",
"## Du conseil aux valeurs aux branches prouvées : ce que le diving apporte, mesure à l'appui\n",
"\n",
- "[← Applications](../README.md) | [↑ Search](../../README.md) | [<< App-31 Bornes RCPSP](App-31-RCPSP-Max-Feasibility-Bounds.ipynb)\n",
+ "[← Partie 5](README.md) | [↑ Search](../README.md) | [<< App-31 Bornes RCPSP](Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb)\n",
"\n",
"> **Durée estimée : 60 minutes**\n",
"\n",
"## Hommage et question scientifique\n",
"\n",
- "Une branche de la recherche « machine learning for combinatorial optimization » promet d'apprendre une **solution initiale** pour accélérer le solveur : c'est le **diving** de Nair et al. (2021), *« Solving Mixed Integer Programs Using Neural Networks »* (arXiv:2012.13349, v3, juillet 2021). Leur apport se compose de deux gestes distincts : la **priorité de branchement** (choisir quelle variable contribuer en premier, à chaque nœud) et le **plongement** (apprendre quel *sous-ensemble de variables fixer tout de suite*). La composante branchement a déjà été auditée dans ce dépôt : [App-28 Learning to Branch](App-28-LearningToBranch-Generalization-Audit.ipynb) y mesure qu'une politique locale fidèle ne garantit ni un arbre plus petit ni un solveur plus rapide. Ce notebook reprend l'autre composante, sur un terrain contrôlé : **un plongeur MLP qui prédit une affectation partielle, injectée comme `hint` (conseil) dans un solveur réel, OR-Tools CP-SAT, sur une famille de coloration de graphe calibrée pour brancher.**\n",
+ "Une branche de la recherche « machine learning for combinatorial optimization » promet d'apprendre une **solution initiale** pour accélérer le solveur : c'est le **diving** de Nair et al. (2021), *« Solving Mixed Integer Programs Using Neural Networks »* (arXiv:2012.13349, v3, juillet 2021). Leur apport se compose de deux gestes distincts : la **priorité de branchement** (choisir quelle variable contribuer en premier, à chaque nœud) et le **plongement** (apprendre quel *sous-ensemble de variables fixer tout de suite*). La composante branchement a déjà été auditée dans ce dépôt : [App-28 Learning to Branch](Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb) y mesure qu'une politique locale fidèle ne garantit ni un arbre plus petit ni un solveur plus rapide. Ce notebook reprend l'autre composante, sur un terrain contrôlé : **un plongeur MLP qui prédit une affectation partielle, injectée comme `hint` (conseil) dans un solveur réel, OR-Tools CP-SAT, sur une famille de coloration de graphe calibrée pour brancher.**\n",
"\n",
"La reproduction est entièrement locale, sur une famille synthétique de taille notebook, et ne copie ni code ni figure de l'article. Le but n'est pas de « refaire l'article », mais de mesurer sur un cas où la recherche travaille vraiment ce que le mécanisme promet : moins de nœuds, ou une recherche plus stable. Verdict au programme : **deux nombres ensemble** — la médiane des branches, et la queue de distribution.\n",
"\n",
@@ -53,7 +53,7 @@
"\n",
"| Levier | Portée | Effet documenté |\n",
"|---|---|---|\n",
- "| **Branching appris** | une décision à *chaque nœud* (quelle variable) | imité localement, ne garantit pas un arbre plus petit (App-28) |\n",
+ "| **Branching appris** | une décision à *chaque nœud* (quelle variable) | imité localement, ne garantit pas un arbre plus petit (Frontieres-06) |\n",
"| **Diving appris** | une décision *une fois* (quelles valeurs suggérer) | donne un point de départ : la recherche contient-elle des mauvaises décisions précoces ? |\n",
"\n",
"Le diving ne change pas la stratégie de branche, il change l'**état initial**. Dans CP-SAT, il se traduit par `AddHint(var, valeur)` : le solveur reçoit un conseil, s'en sert pour diriger sa recherche, et le **corrige** si le conseil contredit les contraintes. Cette correction est mesurable : quand un hint viole des arêtes d'adjacence, on dit qu'il porte des **conflits**."
@@ -859,7 +859,7 @@
"source": [
"## 6. Pour aller plus loin et bibliographie\n",
"\n",
- "- **App-28 Learning to Branch** ([Hybrid](App-28-LearningToBranch-Generalization-Audit.ipynb)) : l'autre moitié du geste Nair — la priorité de branchement apprise, auditée sur la même famille de questions (arbre × temps × coût d'inférence). La complémentarité des deux verdicts : aucune source d'amélioration locale ne se transforme en gain global sans mesure intégrée.\n",
+ "- **Frontieres-06 Learning to Branch** ([Recherche](Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb)) : l'autre moitié du geste Nair — la priorité de branchement apprise, auditée sur la même famille de questions (arbre × temps × coût d'inférence). La complémentarité des deux verdicts : aucune source d'amélioration locale ne se transforme en gain global sans mesure intégrée.\n",
"- **Exercices en extension** : remplacer le MLP par un classifieur basé sur la structure (features de degré), ou entraîner le plongeur sur les conflits (régression du nombre de conflits).\n",
"\n",
"Bibliographie :\n",
@@ -896,8 +896,8 @@
"end_time": "2026-09-23T13:42:30.790789",
"environment_variables": {},
"exception": null,
- "input_path": "App-33-NeuralDiving-Coloration.ipynb",
- "output_path": "App-33-NeuralDiving-Coloration.ipynb",
+ "input_path": "Frontieres-10-NeuralDiving-Coloration-Python.ipynb",
+ "output_path": "Frontieres-10-NeuralDiving-Coloration-Python.ipynb",
"parameters": {},
"start_time": "2026-09-23T13:42:07.654200",
"version": "2.6.0"
diff --git a/MyIA.AI.Notebooks/Search/Part5-Frontieres/README.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/README.md
new file mode 100644
index 0000000000..e4c7bc6a34
--- /dev/null
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/README.md
@@ -0,0 +1,97 @@
+# Search — Partie 5 : Frontières
+
+[<- Applications (cas pratiques)](../Applications/README.md) | [Partie 4 : Métaheuristiques](../Part4-Metaheuristics/README.md) | [Retour à la série Search](../README.md)
+
+La frontière entre le cours et la recherche : des carnets qui ne traitent pas un problème classique pour l'apprendre — ils **auditent une garantie** (vérifier empiriquement ce qu'un solveur ou un théorème récent autorise réellement à affirmer) ou **distillent un preprint** (rendre opérable un résultat publié). Chaque carnet confronte une affirmation récente à un oracle indépendant, un certificat ou un témoin vérifiable à la main.
+
+Sous-série d'audits et de distillations | Python 3.10+ (`ortools`, `pulp`, `scikit-learn`, `pandas`, `matplotlib`). Les volumes sont portés par le marqueur `CATALOG-STATUS` du [README de la série](../README.md).
+
+## Pourquoi cette partie
+
+Dix carnets qui ne traitent pas un problème classique pour l'apprendre — ils **auditent une garantie** (vérifier empiriquement ce qu'un solveur ou un théorème récent autorise réellement à affirmer) ou **distillent un preprint** (rendre opérable un résultat publié). Chaque carnet confronte une affirmation récente — théorème arXiv, preprint de conception de solveurs, garanties d'un mécanisme d'enchère — à un oracle indépendant, un certificat ou un témoin vérifiable à la main. La partie porte sa propre numérotation (`Frontieres-01..10`) ; les critères d'entrée et la délimitation galerie/frontières sont fixés par la carte du 2026-10-05 ([#19253](https://github.com/jsboige/CoursIA/issues/19253), arbitrée sur [#17802](https://github.com/jsboige/CoursIA/issues/17802)) : la clause « audite une garantie » porte sur ce que le carnet déclare vouloir établir ; l'hommage commémoratif et l'hommage à un travail étudiant restent en galerie.
+
+**Critère d'entrée** (carte [#19253](https://github.com/jsboige/CoursIA/issues/19253)) : le carnet vérifie empiriquement un résultat récent — théorème arXiv, preprint de conception de solveurs, garantie d'un mécanisme — avec les outils de la série, et confronte la claim à un oracle indépendant, un certificat ou un témoin vérifiable à la main. La date d'arrivée n'est pas un critère.
+
+## Objectifs d'apprentissage
+
+1. **Techniques** — construire un oracle indépendant (validateur, certificateur) qui ne partage aucun état avec le solveur audité ; distinguer statut, borne et optimum ; matérialiser un contre-exemple documenté en exécutable.
+2. **Méthodologiques** — lire un preprint récent et en extraire la claim testable ; choisir le témoin (certificat, circuit, front de Pareto) qui prouve ou réfute ; rapporter un verdict honnête : garantie établie, écart mesuré, ou non comparable.
+3. **Applicatifs** — prolonger un projet étudiant sans le recopier ; articuler preuve formelle et vérification empirique ; replacer un audit dans le parcours (fondements, CSP, métaheuristiques).
+
+## Notebooks
+
+| # | Notebook | Durée | Contenu | Source |
+|---|----------|-------|---------|--------|
+| 1 | [Frontieres-01-EdgeColoring-Tutte-Python](Frontieres-01-EdgeColoring-Tutte-Python.html) | ~45 min | Coloration d'arêtes cubiques : Vizing, Petersen, ponts, graphes apex et CP-SAT — vérification empirique d'un théorème récent (arXiv 2608.22870) | Nouveau |
+| 2 | [Frontieres-02-Factorio-Balancer-Python](Frontieres-02-Factorio-Balancer-Python.html) | ~35 min | Belt balancer Factorio : MIP continu vs CP-SAT discret sur cas borné, N×N throughput-unlimited | Distillation Venturini 2024 |
+| 3 | [Frontieres-03-MAPF-Guarantee-Audit-Python](Frontieres-03-MAPF-Guarantee-Audit-Python.html) | ~60 min | MAPF : validateur indépendant, oracle CP-SAT time-expanded, réfutation OD-A*, arrêt CBS au but, audit des garanties ECBS — distillation PrCon G3 (Matteo Atkinson, Paul Witkowski) | Projet étudiant (PrCon PRs #33/#36/#42) |
+| 4 | [Frontieres-04-CombinatorialAuctions-WDP-VCG-Python](Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.html) | ~60 min | Enchères combinatoires : WDP exact CP-SAT vs force brute, langage XOR, budget global, paiements VCG et audit de leurs garanties, contre-exemple de manipulation sous budget matérialisé, forensics `PRICE_SCALE` sur 18 instances CATS — distillation PrCon J2 (Majerczyk, Chartouni, Wangon-Zekou) | Projet étudiant (PrCon PR #26) |
+| 5 | [Frontieres-05-CoveringArrays-Guarantee-Audit-Python](Frontieres-05-CoveringArrays-Guarantee-Audit-Python.html) | ~55 min | Covering Arrays : oracle constraint-aware, set cover CP-SAT exact, bornes et baselines IPOG/AETG-like — distillation PrCon H4 (Valérian Pichot) | Projet étudiant (PrCon PR #58) |
+| 6 | [Frontieres-06-LearningToBranch-Generalization-Audit-Python](Frontieres-06-LearningToBranch-Generalization-Audit-Python.html) | ~75 min | Learning to branch : dérivation de dom/wdeg, splits groupés, transfert inter-familles, performance intégrée, coût d'inférence et seuil d'amortissement — distillation PrCon G4 (Simon Naulet, Matis Codjia) | Projet étudiant (PrCon PR #46) |
+| 7 | [Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python](Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.html) | ~70 min | SALBP-1/2 : CP-SAT, PuLP/CBC et RPW, statuts/incumbents/bornes, identité de benchmark, front Pareto certifié et MMALBP robuste/pondéré — distillation PrCon B1 (Ilias Kalalou, Kaelan Grall) | Projet étudiant (PrCon PR #57) |
+| 8 | [Frontieres-08-OrbitalAssembly-Certificate-Audit-Python](Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.html) | ~70 min | Assemblage orbital : physique de Hohmann dans le modèle, auditeur externe, preuve que la scalarisation est exactement lexicographique, comparaison à makespan égal, front d'échange ε-contrainte et sonde en taille **et** en densité — distillation PrCon C4 (Gurvan Estable, Joris Bely, Kévin Lubert) | Projet étudiant (PrCon PR #53) |
+| 9 | [Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python](Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.html) | ~65 min | RCPSP/max : le lag maximal comme arc inverse, faisabilité NP-difficile et son témoin de circuit positif, balayage des trois régimes temporel/ressource/réalisable, échelle de bornes certifiées et repli explicite quand la référence externe manque — distillation PrCon B4 (Arthur Gallier, Nicolas Naegelen) | Projet étudiant (PrCon PR #51) |
+| 10 | [Frontieres-10-NeuralDiving-Coloration-Python](Frontieres-10-NeuralDiving-Coloration-Python.html) | ~60 min | Neural diving : un plongeur MLP prédit une affectation partielle, injectée comme hint réparable dans CP-SAT ; la médiane des branches recule (2829 → 2325, 25/25 instances améliorées) alors que ≈ 49 % des arêtes du hint violent l'adjacence — cohérence du hint avec les contraintes, pas précision par bit — hommage Nair et al. 2021 | Recherche (Nair et al. 2021) |
+
+## Prérequis par notebook
+
+| Notebook | Fondations requises | Dépendances |
+|----------|--------------------|-------------|
+| Frontieres-01 EdgeColoring-Tutte | coloration de graphes, CSP-3 | networkx, ortools |
+| Frontieres-02 Factorio-Balancer | CSP-3 (CP-SAT), CSP-4 | ortools (SCIP + CP-SAT), numpy, matplotlib |
+| Frontieres-03 MAPF Guarantee Audit | Search-3 (A*), CSP-3/CSP-4, heuristiques admissibles | ortools, pandas, matplotlib |
+| Frontieres-04 CombinatorialAuctions-WDP-VCG | CSP-3 (CP-SAT), CSP-5 (optimisation), GameTheory-16 (VCG) | ortools, pandas, matplotlib |
+| Frontieres-05 CoveringArrays Guarantee Audit | CSP-3, CSP-5 | ortools, pandas, matplotlib |
+| Frontieres-06 LearningToBranch Generalization Audit | CSP-6 (heuristiques), MGS-16 (sélection d'algorithmes) | numpy, pandas, scikit-learn |
+| Frontieres-07 SALBP AssemblyLineBalancing Audit | CSP-3 (CP-SAT), CSP-4 (scheduling), CSP-5 (optimisation) | ortools, pulp, pandas, numpy, matplotlib |
+| Frontieres-08 OrbitalAssembly Certificate Audit | CSP-3 (CP-SAT), CSP-4 (scheduling), CSP-5 (optimisation) | ortools, pandas, matplotlib |
+| Frontieres-09 RCPSP Max Feasibility Bounds | CSP-4 (scheduling), CSP-3 (CP-SAT), Planners-8 (temporel) | ortools, pandas, numpy, matplotlib |
+| Frontieres-10 NeuralDiving Coloration | Frontieres-06 (composante branchement), CSP-3 (CP-SAT), MGS-16 (sélection d'algorithmes) | ortools, scikit-learn, numpy, pandas |
+
+## Origine des projets
+
+La plupart des carnets prolongent des projets étudiants réalisés dans le cadre de cours d'IA, sans en recopier le code : les références spécifiques sont indiquées dans chaque carnet.
+
+Le [Frontieres-03-MAPF-Guarantee-Audit-Python](Frontieres-03-MAPF-Guarantee-Audit-Python.html) distille le projet PrCon G3 de **Matteo Atkinson** et **Paul Witkowski**, *« Coordination de drones par Multi-Agent Path Finding »*, PRs [PrCon #33](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/33), [#36](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/36) et [#42](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/42). Un rerun frais alimente un validateur et un oracle CP-SAT indépendants ; le notebook distingue trajectoire valide, optimum observé et garantie réellement établie, avec provenance détaillée dans [`data/app24-mapf-audit/SOURCE.md`](data/app24-mapf-audit/SOURCE.md).
+
+Le [Frontieres-04-CombinatorialAuctions-WDP-VCG-Python](Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.html) distille le projet PrCon J2 de **Lucas Majerczyk**, **Nabil Chartouni** et **Wilfrid Wangon-Zekou**, *« Enchères combinatoires et Winner Determination »*, PR [PrCon #26](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/26). Le notebook ré-écrit le solveur WDP (CP-SAT, prix entiers milli-unités bout-en-bout) sans importer le package `wdp/` des étudiants ; il re-résout les 18 instances CATS, **matérialise en exécutable** le contre-exemple de manipulation sous budget documenté mais jamais testé dans la source, et audite honnêtement l'écart `PRICE_SCALE` entre les outputs committés et le code au commit source. Données et provenance : [`data/app25-wdp-vcg-audit`](data/app25-wdp-vcg-audit/).
+
+Le [Frontieres-05-CoveringArrays-Guarantee-Audit-Python](Frontieres-05-CoveringArrays-Guarantee-Audit-Python.html) distille le projet PrCon H4 de **Valérian Pichot**, *« Covering Arrays »*, PR [PrCon #58](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/58). Sans recopier le générateur étudiant, le notebook reconstruit un oracle indépendant, un set cover CP-SAT exact et deux baselines approchées ; il reproduit surtout le faux verdict d'un validateur qui exige des interactions sémantiquement impossibles, puis le répare par un univers constraint-aware. Provenance : [`data/app26-covering-arrays-audit/SOURCE.md`](data/app26-covering-arrays-audit/SOURCE.md).
+
+Le [Frontieres-06-LearningToBranch-Generalization-Audit-Python](Frontieres-06-LearningToBranch-Generalization-Audit-Python.html) distille le projet PrCon G4 de **Simon Naulet** et **Matis Codjia**, *« Apprentissage d'heuristiques de branchement pour solveur CP »*, PR [PrCon #46](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/46). La reproduction est entièrement réécrite : elle remplace le split par lignes par des instances disjointes, ajoute trois transferts leave-one-family-out et compare l'arbre, le temps total et le coût d'inférence à une baseline choisie sur le train uniquement. Elle établit un résultat négatif utile : une imitation locale fidèle ne garantit ni un arbre plus petit ni un solveur plus rapide. Provenance : [`data/app28-learning-to-branch-audit/SOURCE.md`](data/app28-learning-to-branch-audit/SOURCE.md).
+
+Le [Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python](Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.html) rend hommage au projet PrCon B1 d'**Ilias Kalalou** et **Kaelan Grall**, *« Équilibrage de chaîne d'assemblage (SALBP) »*, PR [PrCon #57](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/57). Le notebook préserve leur geste central — SALBP-1/2, comparaison CP-SAT/PuLP/RPW, Pareto et multi-modèles — dans une réécriture CoursIA indépendante qui publie statuts, incumbents, bornes, gaps, identité structurelle des instances et validation hors solveur. Aucun code, texte ou figure étudiante n'est copié. Provenance : [`data/app29-salbp-audit/SOURCE.md`](data/app29-salbp-audit/SOURCE.md).
+
+Le [Frontieres-08-OrbitalAssembly-Certificate-Audit-Python](Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.html) rend hommage au projet PrCon C4 de **Gurvan Estable**, **Joris Bely** et **Kévin Lubert**, *« Assemblage orbital de satellites »*, PR [PrCon #53](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/53). Le geste distillé est une décision de modélisation : faire descendre la physique dans le modèle, durées issues d'un temps de vol de Hohmann calculé et coûts d'un Δv calculé, les deux contraignant les mêmes intervalles CP-SAT. La reproduction CoursIA est indépendante et volontairement discrétisée autrement, donc non comparable chiffre à chiffre : elle ajoute un auditeur externe qui ne partage aucun état avec les solveurs, la preuve que l'objectif scalarisé `makespan × (B+1) + ergol` est *exactement* lexicographique dès que le budget borne l'ergol — ce que le rapport source qualifiait prudemment d'« approximation » —, une comparaison à makespan égal qui sépare l'inefficacité en ergol d'une heuristique de son retard d'échéancier, un front d'échange ε-contrainte dont chaque point porte son statut, et une sonde qui montre que la taille est un mauvais prédicteur de difficulté. Aucun code, texte ou figure étudiante n'est copié. Provenance : [`data/app30-orbital-assembly-audit/SOURCE.md`](data/app30-orbital-assembly-audit/SOURCE.md).
+
+Le [Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python](Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.html) rend hommage au projet PrCon B4 d'**Arthur Gallier** et **Nicolas Naegelen**, *« RCPSP — ordonnancement de projet sous contraintes de ressources »*, PR [PrCon #51](https://github.com/jsboigeEpita/2026-Epita-Programmation-par-Contraintes/pull/51). Leur rendu a fait ce que [Planners-8-Temporal](../../SymbolicAI/Planners/03-Advanced/Planners-8-Temporal-Csharp.ipynb) laissait explicitement « en exercice » : confronter un solveur à un benchmark public d'ordonnancement. La vérification indépendante conduite pour cette distillation confirme leurs dix makespans, tous recalculés `OPTIMAL` par un modèle réécrit de zéro. Le prolongement CoursIA porte sur ce que leur section RCPSP/max rendait possible sans l'exercer : un lag maximal s'encode par un **arc inverse** qui referme un circuit, la faisabilité elle-même devient NP-difficile (Bartusch, Möhring, Radermacher, 1988), et un circuit de poids strictement positif en est le témoin vérifiable à la main. Le notebook balaye les trois régimes — infaisable temporellement, infaisable par les ressources, réalisable —, mesure que le diagnostic polynomial épargne au solveur le tiers gauche du domaine, et propose une échelle de bornes certifiées comme repli explicite lorsqu'aucune référence externe n'est disponible : le champ `niveau_de_preuve` interdit de confondre un écart à une borne calculée avec un écart à un optimum connu. Aucun code, texte ou figure étudiante n'est copié. Provenance : [`data/app31-rcpsp-max/SOURCE.md`](data/app31-rcpsp-max/SOURCE.md).
+
+Le [Frontieres-10-NeuralDiving-Coloration-Python](Frontieres-10-NeuralDiving-Coloration-Python.html) rend hommage au second geste de l'article de Nair et al. (2021), *« Solving Mixed Integer Programs Using Neural Networks »* (arXiv:2012.13349) : le **diving**, qui apprend une solution partielle pour guider un solveur MIP. Frontieres-06 a audité la composante *branching* (politique de branchement apprise) ; Frontieres-10 enchaîne sur l'autre composante : un plongeur MLP prédit une affectation des 60 sommets d'une coloration de graphe, injectée comme `hint` réparable dans OR-Tools CP-SAT, et l'on mesure l'effet sur les branches de preuve. La famille est calibrée pour qu'une fenêtre existe : les set-cover denses s'effondrent au presolve (`nodes = 0`) et les knapsack corrélés ne se prouvent pas en fenêtre notebook ; la coloration 60 sommets / 3 arêtes branche (médiane 2742, 2303-3799 sur les 60 instances d'entraînement) et se prouve (< 0,1 s). Verdict mesuré sur 25 instances de test, sur un run déterministe (`num_workers = 1`) : la médiane des branches recule (2829 → 2325, ≈ −18 %), les 25 instances s'améliorent (gain relatif médian ≈ 15 %, de 8 % à 28 %), et ≈ 49 % des arêtes du hint (44 sur ~90) sont en conflit avec l'adjacence — la cohérence, pas la précision par bit, détermine l'effet du hint. Le notebook ne copie aucun code, donnée, figure ou prose de l'article, archivé au gisement `G:\Mon Drive\MyIA\IA\Bibliographie IA\Search\`. Provenance : [`data/app33-neural-diving/SOURCE.md`](data/app33-neural-diving/SOURCE.md).
+
+## Ponts inter-séries
+
+| Série | Lien | Relation |
+| ------- | ------ | ---------- |
+| [Partie 1 : Search](../Part1-Foundations/README.md) | Fondamentaux | Heuristiques admissibles, A* (Frontieres-03) |
+| [Partie 2 : CSP](../Part2-CSP/README.md) | Programmation par contraintes | CP-SAT, scheduling, optimisation (toute la partie) |
+| [Partie 4 : Métaheuristiques](../Part4-Metaheuristics/README.md) | Sélection d'algorithmes | MGS-16 : Rice, No Free Lunch (Frontieres-06, Frontieres-10) |
+| [GameTheory](../../GameTheory/README.md) | GameTheory-16 (VCG) | Paiements VCG et garanties d'enchères (Frontieres-04) |
+| [SymbolicAI — Planners](../../SymbolicAI/Planners/README.md) | Planners-8 (temporel) | Réseaux de contraintes temporelles (Frontieres-09) |
+| [Langlands](../../SymbolicAI/Lean/Langlands/) | Szpiro–Pasten 2026 | La distillation arithmétique (App-32) reliée à la sous-série Langlands (#18368) |
+
+## Références
+
+| Notebook | Références |
+|----------|-----------|
+| Frontieres-03 (MAPF Guarantee Audit) | Stern, R., et al. (2019) — « Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks », *SoCS* ; Sharon, G., et al. (2015) — « Conflict-Based Search for Optimal Multi-Agent Path Finding », *Artificial Intelligence* 219 ; Standley, T. (2010) — « Finding Optimal Solutions to Cooperative Pathfinding Problems », *AAAI* ; Barer, M., et al. (2014) — « Suboptimal Variants of the Conflict-Based Search Algorithm for the Multi-Agent Pathfinding Problem », *SoCS*. |
+| Frontieres-04 (CombinatorialAuctions-WDP-VCG) | Rothkopf, M. H., Pekeč, A., & Harstad, R. M. (1998) — « Computationally Combinatorial Auction Design », *Management Science* 44(8) ; Sandholm, T. (2002) — « Algorithm for Optimal Winner Determination in Combinatorial Auctions », *Artificial Intelligence* 135 ; Leyton-Brown, K., Pearson, M., & Shoham, Y. (2000) — « Towards a Universal Test Suite for Combinatorial Auction Design », *EC 2000* (générateur CATS) ; Nisan, N. (2000) — « Bidding and Allocation in Combinatorial Auctions », *EC 2000* (langage XOR) ; Lehmann, D., O'Callaghan, L., & Shoham, Y. (2002) — « Truth Revelation in Approximately Efficient Combinatorial Auctions », *JACM* 49(5) (glouton √m, enchérisseurs single-minded). |
+| Frontieres-05 (CoveringArrays Guarantee Audit) | Cohen, D. M., Dalal, S. R., Fredman, M. L., & Patton, G. C. (1997) — « The AETG System: An Approach to Testing Based on Combinatorial Design », *IEEE TSE* 23(7) ; Lei, Y., Kacker, R., Kuhn, D. R., Okun, V., & Lawrence, J. (2007) — « IPOG: A General Strategy for T-Way Software Testing », *ECBS 2007*. |
+| Frontieres-06 (LearningToBranch Generalization Audit) | Boussemart, F., Hemery, F., Lecoutre, C., & Sais, L. (2004) — « Boosting Systematic Search by Weighting Constraints », *ECAI* (dom/wdeg) ; Kotthoff, L. (2014) — « Algorithm Selection for Combinatorial Search Problems: A Survey », *AI Magazine* 35(3) ; Bengio, Y., Lodi, A., & Prouvost, A. (2021) — « Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon », *European Journal of Operational Research* 290(2) ; Balcan, M.-F., Dick, T., Sandholm, T., & Vitercik, E. (2020) — « Learning to Branch: Generalization Guarantees and Limits of Data-Independent Discretization », *JACM* 67(6). |
+| Frontieres-07 (SALBP Assembly Line Balancing Audit) | Salveson, M. E. (1955) — « The Assembly Line Balancing Problem », *Journal of Industrial Engineering* 6(3) ; Helgeson, W. B., & Birnie, D. P. (1961) — « Assembly Line Balancing Using the Ranked Positional Weight Technique », *Journal of Industrial Engineering* 12(6) ; Scholl, A. (1999) — *Balancing and Sequencing of Assembly Lines*, Physica-Verlag. |
+| Frontieres-08 (OrbitalAssembly Certificate Audit) | Hohmann, W. (1925) — *Die Erreichbarkeit der Himmelskörper*, Oldenbourg ; Vallado, D. A. (2013) — *Fundamentals of Astrodynamics and Applications*, 4e éd., Microcosm Press ; Haimes, Y. Y., Lasdon, L. S., & Wismer, D. A. (1971) — « On a Bicriterion Formulation of the Problems of Integrated System Identification and System Optimization », *IEEE Transactions on Systems, Man, and Cybernetics* 1(3) (ε-contrainte) ; Wilcoxon, F. (1945) — « Individual Comparisons by Ranking Methods », *Biometrics Bulletin* 1(6). |
+| Frontieres-09 (RCPSP Max Feasibility Bounds) | Bartusch, M., Möhring, R. H., & Radermacher, F. J. (1988) — « Scheduling Project Networks with Resource Constraints and Time Windows », *Annals of Operations Research* 16(1) ; Kolisch, R., & Sprecher, A. (1997) — « PSPLIB — A Project Scheduling Problem Library », *European Journal of Operational Research* 96(1) ; Neumann, K., Schwindt, C., & Zimmermann, J. (2003) — *Project Scheduling with Time Windows and Scarce Resources*, Springer ; Bellman, R. (1958) — « On a Routing Problem », *Quarterly of Applied Mathematics* 16(1) (relaxation et détection de circuit). |
+| Frontieres-10 (Neural Diving Coloration) | Nair, V., Bartunov, S., Gimeno, F., et al. (2021) — « Solving Mixed Integer Programs Using Neural Networks », arXiv:2012.13349 (v3, juillet 2021) ; Bengio, Y., Lodi, A., & Prouvost, A. (2021) — « Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon », *European Journal of Operational Research* 290(2). |
+
+## Navigation
+
+[<- Applications (cas pratiques)](../Applications/README.md) | [Partie 4 : Métaheuristiques](../Part4-Metaheuristics/README.md) | [Retour à la série Search](../README.md)
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app24-mapf-audit/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app24-mapf-audit/SOURCE.md
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app24-mapf-audit/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app24-mapf-audit/SOURCE.md
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app24-mapf-audit/fresh_runs.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app24-mapf-audit/fresh_runs.json
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app24-mapf-audit/fresh_runs.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app24-mapf-audit/fresh_runs.json
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/LICENSE b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/LICENSE
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/LICENSE
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/LICENSE
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/SOURCE.md
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/SOURCE.md
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats/matching_g32_b100_s10000.txt b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats/matching_g32_b100_s10000.txt
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats/matching_g32_b100_s10000.txt
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats/matching_g32_b100_s10000.txt
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats/paths_g30_b100_s10000.txt b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats/paths_g30_b100_s10000.txt
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats/paths_g30_b100_s10000.txt
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats/paths_g30_b100_s10000.txt
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats/regions_g30_b100_s10000.txt b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats/regions_g30_b100_s10000.txt
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats/regions_g30_b100_s10000.txt
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats/regions_g30_b100_s10000.txt
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats_snapshot.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats_snapshot.json
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app25-wdp-vcg-audit/cats_snapshot.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app25-wdp-vcg-audit/cats_snapshot.json
diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/data/app26-covering-arrays-audit/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app26-covering-arrays-audit/SOURCE.md
similarity index 97%
rename from MyIA.AI.Notebooks/Search/Applications/CSP/data/app26-covering-arrays-audit/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app26-covering-arrays-audit/SOURCE.md
index 6949451a20..0e20fb18e4 100644
--- a/MyIA.AI.Notebooks/Search/Applications/CSP/data/app26-covering-arrays-audit/SOURCE.md
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app26-covering-arrays-audit/SOURCE.md
@@ -50,7 +50,7 @@ Initial full execution:
```bash
python scripts/notebook_tools/notebook_tools.py execute \
- MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb \
+ MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb \
--timeout 180
```
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/LICENSE b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/LICENSE
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/LICENSE
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/LICENSE
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/SOURCE.md
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/SOURCE.md
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/baseline_runs.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/baseline_runs.csv
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/baseline_runs.csv
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/baseline_runs.csv
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/evaluation_runs.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/evaluation_runs.csv
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/evaluation_runs.csv
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/evaluation_runs.csv
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/maturation_report.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/maturation_report.json
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/maturation_report.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/maturation_report.json
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/oracle_trace.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/oracle_trace.csv
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app28-learning-to-branch-audit/oracle_trace.csv
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app28-learning-to-branch-audit/oracle_trace.csv
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/LICENSE b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/LICENSE
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/LICENSE
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/LICENSE
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/SOURCE.md
similarity index 96%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/SOURCE.md
index b9df14bf7b..862f71e061 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/SOURCE.md
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/SOURCE.md
@@ -26,7 +26,7 @@ Le notebook exécuté produit :
Commande de reproduction depuis la racine CoursIA :
```powershell
-python scripts/notebook_tools/notebook_tools.py execute MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb --timeout 300 --verbose
+python scripts/notebook_tools/notebook_tools.py execute MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb --timeout 300 --verbose
```
Environnement de la collecte : Windows 11, Python 3.13, OR-Tools CP-SAT, PuLP/CBC, pandas, NumPy et matplotlib. Les versions exactes sont enregistrées dans les métadonnées de `provenance.json` lors de l'exécution.
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/benchmark_runs.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/benchmark_runs.csv
similarity index 62%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/benchmark_runs.csv
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/benchmark_runs.csv
index 520cfa33be..05a1a10e35 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/benchmark_runs.csv
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/benchmark_runs.csv
@@ -1,16 +1,16 @@
-instance,identity,method,status,objective,best_bound,gap,wall_time,valid
-coursia-toy,11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.011711500003002584,True
-coursia-toy,11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.06964010000228882,True
-coursia-toy,11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972,RPW,HEURISTIC,4.0,,,0.0,True
-generated-11,9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.05821730000025127,True
-generated-11,9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.3271326000103727,True
-generated-11,9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651,RPW,HEURISTIC,4.0,,,0.0,True
-generated-29,e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.043276099997456186,True
-generated-29,e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.38061500000185333,True
-generated-29,e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1,RPW,HEURISTIC,4.0,,,0.0,True
-generated-47,c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.037209700007224455,True
-generated-47,c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.3242817999998806,True
-generated-47,c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e,RPW,HEURISTIC,4.0,,,0.0,True
-generated-71,b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.05007179999665823,True
-generated-71,b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.21240069999475963,True
-generated-71,b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3,RPW,HEURISTIC,4.0,,,0.0,True
+instance,identity,method,status,objective,best_bound,gap,wall_time,valid
+coursia-toy,11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.010468000022228807,True
+coursia-toy,11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.0712360999896191,True
+coursia-toy,11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972,RPW,HEURISTIC,4.0,,,0.0,True
+generated-11,9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.04976969998097047,True
+generated-11,9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.4921127000125125,True
+generated-11,9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651,RPW,HEURISTIC,4.0,,,0.0,True
+generated-29,e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.06011719995876774,True
+generated-29,e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.5629042000509799,True
+generated-29,e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1,RPW,HEURISTIC,4.0,,,0.0,True
+generated-47,c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.06239000003552064,True
+generated-47,c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.4311538999900222,True
+generated-47,c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e,RPW,HEURISTIC,4.0,,,0.0,True
+generated-71,b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3,CP-SAT SALBP-1,OPTIMAL,4.0,4.0,0.0,0.06049849995179102,True
+generated-71,b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3,PuLP/CBC SALBP-1,OPTIMAL,4.0,4.0,0.0,0.2578691000235267,True
+generated-71,b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3,RPW,HEURISTIC,4.0,,,0.0,True
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/mmalbp_runs.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/mmalbp_runs.json
similarity index 84%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/mmalbp_runs.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/mmalbp_runs.json
index e264877eaa..8e64cf9cff 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/mmalbp_runs.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/mmalbp_runs.json
@@ -1,54 +1,54 @@
-[
- {
- "mode": "conservative",
- "effective_durations": {
- "A": [
- 7,
- 3,
- 6,
- 2,
- 8,
- 4,
- 5,
- 3
- ],
- "B": [
- 3,
- 8,
- 4,
- 7,
- 4,
- 6,
- 3,
- 6
- ]
- },
- "method": "CP-SAT MMALBP conservative",
- "status": "OPTIMAL",
- "objective": 4.0,
- "best_bound": 4.0,
- "gap": 0.0,
- "wall_time": 0.013626700005261227,
- "valid": true
- },
- {
- "mode": "weighted",
- "effective_durations": [
- 6,
- 4,
- 6,
- 3,
- 7,
- 4,
- 4,
- 4
- ],
- "method": "CP-SAT SALBP-1",
- "status": "OPTIMAL",
- "objective": 3.0,
- "best_bound": 3.0,
- "gap": 0.0,
- "wall_time": 0.015249199990648776,
- "valid": true
- }
+[
+ {
+ "mode": "conservative",
+ "effective_durations": {
+ "A": [
+ 7,
+ 3,
+ 6,
+ 2,
+ 8,
+ 4,
+ 5,
+ 3
+ ],
+ "B": [
+ 3,
+ 8,
+ 4,
+ 7,
+ 4,
+ 6,
+ 3,
+ 6
+ ]
+ },
+ "method": "CP-SAT MMALBP conservative",
+ "status": "OPTIMAL",
+ "objective": 4.0,
+ "best_bound": 4.0,
+ "gap": 0.0,
+ "wall_time": 0.01079070003470406,
+ "valid": true
+ },
+ {
+ "mode": "weighted",
+ "effective_durations": [
+ 6,
+ 4,
+ 6,
+ 3,
+ 7,
+ 4,
+ 4,
+ 4
+ ],
+ "method": "CP-SAT SALBP-1",
+ "status": "OPTIMAL",
+ "objective": 3.0,
+ "best_bound": 3.0,
+ "gap": 0.0,
+ "wall_time": 0.011468000011518598,
+ "valid": true
+ }
]
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/pareto_fronts.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/pareto_fronts.json
similarity index 85%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/pareto_fronts.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/pareto_fronts.json
index 8e7e727e56..e9d539cbf6 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/pareto_fronts.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/pareto_fronts.json
@@ -1,88 +1,88 @@
-{
- "instance": "pareto-line",
- "certified": true,
- "range": [
- 4,
- 10
- ],
- "upper_bound": "one-task-per-station",
- "points": [
- {
- "stations": 4,
- "method": "CP-SAT SALBP-2",
- "status": "OPTIMAL",
- "objective": 13.0,
- "best_bound": 13.0,
- "gap": 0.0,
- "wall_time": 0.021748499988461845,
- "valid": true
- },
- {
- "stations": 5,
- "method": "CP-SAT SALBP-2",
- "status": "OPTIMAL",
- "objective": 11.0,
- "best_bound": 11.0,
- "gap": 0.0,
- "wall_time": 0.02133719999983441,
- "valid": true
- },
- {
- "stations": 6,
- "method": "CP-SAT SALBP-2",
- "status": "OPTIMAL",
- "objective": 9.0,
- "best_bound": 9.0,
- "gap": 0.0,
- "wall_time": 0.03042329999152571,
- "valid": true
- },
- {
- "stations": 7,
- "method": "CP-SAT SALBP-2",
- "status": "OPTIMAL",
- "objective": 8.0,
- "best_bound": 8.0,
- "gap": 0.0,
- "wall_time": 0.043965100005152635,
- "valid": true
- }
- ],
- "raw_status": [
- {
- "stations": 4,
- "status": "OPTIMAL",
- "valid": true
- },
- {
- "stations": 5,
- "status": "OPTIMAL",
- "valid": true
- },
- {
- "stations": 6,
- "status": "OPTIMAL",
- "valid": true
- },
- {
- "stations": 7,
- "status": "OPTIMAL",
- "valid": true
- },
- {
- "stations": 8,
- "status": "OPTIMAL",
- "valid": true
- },
- {
- "stations": 9,
- "status": "OPTIMAL",
- "valid": true
- },
- {
- "stations": 10,
- "status": "OPTIMAL",
- "valid": true
- }
- ]
+{
+ "instance": "pareto-line",
+ "certified": true,
+ "range": [
+ 4,
+ 10
+ ],
+ "upper_bound": "one-task-per-station",
+ "points": [
+ {
+ "stations": 4,
+ "method": "CP-SAT SALBP-2",
+ "status": "OPTIMAL",
+ "objective": 13.0,
+ "best_bound": 13.0,
+ "gap": 0.0,
+ "wall_time": 0.015810700017027557,
+ "valid": true
+ },
+ {
+ "stations": 5,
+ "method": "CP-SAT SALBP-2",
+ "status": "OPTIMAL",
+ "objective": 11.0,
+ "best_bound": 11.0,
+ "gap": 0.0,
+ "wall_time": 0.023093399999197572,
+ "valid": true
+ },
+ {
+ "stations": 6,
+ "method": "CP-SAT SALBP-2",
+ "status": "OPTIMAL",
+ "objective": 9.0,
+ "best_bound": 9.0,
+ "gap": 0.0,
+ "wall_time": 0.03744559996994212,
+ "valid": true
+ },
+ {
+ "stations": 7,
+ "method": "CP-SAT SALBP-2",
+ "status": "OPTIMAL",
+ "objective": 8.0,
+ "best_bound": 8.0,
+ "gap": 0.0,
+ "wall_time": 0.05330609995871782,
+ "valid": true
+ }
+ ],
+ "raw_status": [
+ {
+ "stations": 4,
+ "status": "OPTIMAL",
+ "valid": true
+ },
+ {
+ "stations": 5,
+ "status": "OPTIMAL",
+ "valid": true
+ },
+ {
+ "stations": 6,
+ "status": "OPTIMAL",
+ "valid": true
+ },
+ {
+ "stations": 7,
+ "status": "OPTIMAL",
+ "valid": true
+ },
+ {
+ "stations": 8,
+ "status": "OPTIMAL",
+ "valid": true
+ },
+ {
+ "stations": 9,
+ "status": "OPTIMAL",
+ "valid": true
+ },
+ {
+ "stations": 10,
+ "status": "OPTIMAL",
+ "valid": true
+ }
+ ]
}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/provenance.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/provenance.json
similarity index 92%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/provenance.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/provenance.json
index 4738658d93..cb993b375d 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app29-salbp-audit/provenance.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app29-salbp-audit/provenance.json
@@ -1,480 +1,480 @@
-{
- "generated_on": "2026-09-01",
- "environment": {
- "python": "3.13.14",
- "ortools": "9.15.6755",
- "pulp": "3.3.1"
- },
- "instances": [
- {
- "name": "coursia-toy",
- "identity": "11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972",
- "n_tasks": 8,
- "durations": [
- 6,
- 4,
- 5,
- 3,
- 7,
- 4,
- 6,
- 5
- ],
- "precedences": [
- [
- 0,
- 2
- ],
- [
- 0,
- 3
- ],
- [
- 1,
- 3
- ],
- [
- 2,
- 4
- ],
- [
- 3,
- 5
- ],
- [
- 4,
- 6
- ],
- [
- 5,
- 6
- ],
- [
- 6,
- 7
- ]
- ],
- "cycle_time": 14
- },
- {
- "name": "generated-11",
- "identity": "9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651",
- "n_tasks": 14,
- "durations": [
- 2,
- 2,
- 7,
- 5,
- 6,
- 6,
- 6,
- 2,
- 5,
- 3,
- 4,
- 8,
- 5,
- 2
- ],
- "precedences": [
- [
- 0,
- 4
- ],
- [
- 0,
- 5
- ],
- [
- 0,
- 7
- ],
- [
- 2,
- 5
- ],
- [
- 2,
- 6
- ],
- [
- 2,
- 7
- ],
- [
- 3,
- 4
- ],
- [
- 3,
- 5
- ],
- [
- 4,
- 8
- ],
- [
- 4,
- 10
- ],
- [
- 5,
- 8
- ],
- [
- 5,
- 10
- ],
- [
- 6,
- 9
- ],
- [
- 7,
- 8
- ],
- [
- 7,
- 9
- ],
- [
- 7,
- 10
- ],
- [
- 8,
- 11
- ],
- [
- 8,
- 13
- ],
- [
- 9,
- 12
- ],
- [
- 9,
- 13
- ],
- [
- 10,
- 11
- ],
- [
- 10,
- 12
- ],
- [
- 10,
- 13
- ]
- ],
- "cycle_time": 18
- },
- {
- "name": "generated-29",
- "identity": "e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1",
- "n_tasks": 14,
- "durations": [
- 8,
- 2,
- 6,
- 5,
- 3,
- 5,
- 6,
- 3,
- 6,
- 2,
- 8,
- 2,
- 4,
- 4
- ],
- "precedences": [
- [
- 0,
- 4
- ],
- [
- 1,
- 4
- ],
- [
- 1,
- 5
- ],
- [
- 1,
- 6
- ],
- [
- 1,
- 7
- ],
- [
- 2,
- 4
- ],
- [
- 2,
- 6
- ],
- [
- 2,
- 7
- ],
- [
- 3,
- 7
- ],
- [
- 4,
- 8
- ],
- [
- 4,
- 9
- ],
- [
- 5,
- 9
- ],
- [
- 5,
- 10
- ],
- [
- 6,
- 9
- ],
- [
- 8,
- 11
- ],
- [
- 8,
- 13
- ],
- [
- 9,
- 11
- ],
- [
- 9,
- 12
- ],
- [
- 10,
- 11
- ]
- ],
- "cycle_time": 18
- },
- {
- "name": "generated-47",
- "identity": "c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e",
- "n_tasks": 14,
- "durations": [
- 2,
- 7,
- 5,
- 7,
- 5,
- 5,
- 2,
- 2,
- 2,
- 8,
- 4,
- 4,
- 7,
- 3
- ],
- "precedences": [
- [
- 0,
- 6
- ],
- [
- 1,
- 4
- ],
- [
- 1,
- 5
- ],
- [
- 1,
- 7
- ],
- [
- 2,
- 4
- ],
- [
- 3,
- 6
- ],
- [
- 3,
- 7
- ],
- [
- 4,
- 10
- ],
- [
- 5,
- 8
- ],
- [
- 6,
- 9
- ],
- [
- 7,
- 9
- ],
- [
- 8,
- 12
- ],
- [
- 9,
- 11
- ],
- [
- 9,
- 13
- ],
- [
- 10,
- 13
- ]
- ],
- "cycle_time": 18
- },
- {
- "name": "generated-71",
- "identity": "b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3",
- "n_tasks": 14,
- "durations": [
- 8,
- 3,
- 5,
- 5,
- 5,
- 7,
- 4,
- 6,
- 6,
- 3,
- 2,
- 2,
- 8,
- 5
- ],
- "precedences": [
- [
- 0,
- 4
- ],
- [
- 0,
- 5
- ],
- [
- 0,
- 6
- ],
- [
- 0,
- 7
- ],
- [
- 1,
- 5
- ],
- [
- 1,
- 6
- ],
- [
- 1,
- 7
- ],
- [
- 2,
- 4
- ],
- [
- 2,
- 7
- ],
- [
- 3,
- 6
- ],
- [
- 4,
- 8
- ],
- [
- 5,
- 10
- ],
- [
- 6,
- 8
- ],
- [
- 6,
- 9
- ],
- [
- 7,
- 8
- ],
- [
- 7,
- 9
- ],
- [
- 7,
- 10
- ],
- [
- 8,
- 11
- ],
- [
- 8,
- 12
- ],
- [
- 10,
- 12
- ],
- [
- 10,
- 13
- ]
- ],
- "cycle_time": 18
- }
- ],
- "joins": {
- "accepted": {
- "status": "comparable",
- "reference": 4,
- "identity": "11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972"
- },
- "refused": {
- "status": "not_comparable",
- "reason": "structural_identity_mismatch",
- "reference": 2
- }
- }
+{
+ "generated_on": "2026-09-01",
+ "environment": {
+ "python": "3.13.15",
+ "ortools": "9.15.6755",
+ "pulp": "3.3.2"
+ },
+ "instances": [
+ {
+ "name": "coursia-toy",
+ "identity": "11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972",
+ "n_tasks": 8,
+ "durations": [
+ 6,
+ 4,
+ 5,
+ 3,
+ 7,
+ 4,
+ 6,
+ 5
+ ],
+ "precedences": [
+ [
+ 0,
+ 2
+ ],
+ [
+ 0,
+ 3
+ ],
+ [
+ 1,
+ 3
+ ],
+ [
+ 2,
+ 4
+ ],
+ [
+ 3,
+ 5
+ ],
+ [
+ 4,
+ 6
+ ],
+ [
+ 5,
+ 6
+ ],
+ [
+ 6,
+ 7
+ ]
+ ],
+ "cycle_time": 14
+ },
+ {
+ "name": "generated-11",
+ "identity": "9a228643396f11d3e81bef6aeae0bdce926df8bac84f6498056ce9afe5eab651",
+ "n_tasks": 14,
+ "durations": [
+ 2,
+ 2,
+ 7,
+ 5,
+ 6,
+ 6,
+ 6,
+ 2,
+ 5,
+ 3,
+ 4,
+ 8,
+ 5,
+ 2
+ ],
+ "precedences": [
+ [
+ 0,
+ 4
+ ],
+ [
+ 0,
+ 5
+ ],
+ [
+ 0,
+ 7
+ ],
+ [
+ 2,
+ 5
+ ],
+ [
+ 2,
+ 6
+ ],
+ [
+ 2,
+ 7
+ ],
+ [
+ 3,
+ 4
+ ],
+ [
+ 3,
+ 5
+ ],
+ [
+ 4,
+ 8
+ ],
+ [
+ 4,
+ 10
+ ],
+ [
+ 5,
+ 8
+ ],
+ [
+ 5,
+ 10
+ ],
+ [
+ 6,
+ 9
+ ],
+ [
+ 7,
+ 8
+ ],
+ [
+ 7,
+ 9
+ ],
+ [
+ 7,
+ 10
+ ],
+ [
+ 8,
+ 11
+ ],
+ [
+ 8,
+ 13
+ ],
+ [
+ 9,
+ 12
+ ],
+ [
+ 9,
+ 13
+ ],
+ [
+ 10,
+ 11
+ ],
+ [
+ 10,
+ 12
+ ],
+ [
+ 10,
+ 13
+ ]
+ ],
+ "cycle_time": 18
+ },
+ {
+ "name": "generated-29",
+ "identity": "e95aed529a68c39018facd47d87943c48cda29fc01e06bb3e33978b5a298ebd1",
+ "n_tasks": 14,
+ "durations": [
+ 8,
+ 2,
+ 6,
+ 5,
+ 3,
+ 5,
+ 6,
+ 3,
+ 6,
+ 2,
+ 8,
+ 2,
+ 4,
+ 4
+ ],
+ "precedences": [
+ [
+ 0,
+ 4
+ ],
+ [
+ 1,
+ 4
+ ],
+ [
+ 1,
+ 5
+ ],
+ [
+ 1,
+ 6
+ ],
+ [
+ 1,
+ 7
+ ],
+ [
+ 2,
+ 4
+ ],
+ [
+ 2,
+ 6
+ ],
+ [
+ 2,
+ 7
+ ],
+ [
+ 3,
+ 7
+ ],
+ [
+ 4,
+ 8
+ ],
+ [
+ 4,
+ 9
+ ],
+ [
+ 5,
+ 9
+ ],
+ [
+ 5,
+ 10
+ ],
+ [
+ 6,
+ 9
+ ],
+ [
+ 8,
+ 11
+ ],
+ [
+ 8,
+ 13
+ ],
+ [
+ 9,
+ 11
+ ],
+ [
+ 9,
+ 12
+ ],
+ [
+ 10,
+ 11
+ ]
+ ],
+ "cycle_time": 18
+ },
+ {
+ "name": "generated-47",
+ "identity": "c993ddc974844a909002e38ccb2b501ed84fe639fbe2b34993bed2b4f4c6f76e",
+ "n_tasks": 14,
+ "durations": [
+ 2,
+ 7,
+ 5,
+ 7,
+ 5,
+ 5,
+ 2,
+ 2,
+ 2,
+ 8,
+ 4,
+ 4,
+ 7,
+ 3
+ ],
+ "precedences": [
+ [
+ 0,
+ 6
+ ],
+ [
+ 1,
+ 4
+ ],
+ [
+ 1,
+ 5
+ ],
+ [
+ 1,
+ 7
+ ],
+ [
+ 2,
+ 4
+ ],
+ [
+ 3,
+ 6
+ ],
+ [
+ 3,
+ 7
+ ],
+ [
+ 4,
+ 10
+ ],
+ [
+ 5,
+ 8
+ ],
+ [
+ 6,
+ 9
+ ],
+ [
+ 7,
+ 9
+ ],
+ [
+ 8,
+ 12
+ ],
+ [
+ 9,
+ 11
+ ],
+ [
+ 9,
+ 13
+ ],
+ [
+ 10,
+ 13
+ ]
+ ],
+ "cycle_time": 18
+ },
+ {
+ "name": "generated-71",
+ "identity": "b81fedad52094dbc6867f565bc942c46bd42ed37e76bc4d50e0d2a75275f13a3",
+ "n_tasks": 14,
+ "durations": [
+ 8,
+ 3,
+ 5,
+ 5,
+ 5,
+ 7,
+ 4,
+ 6,
+ 6,
+ 3,
+ 2,
+ 2,
+ 8,
+ 5
+ ],
+ "precedences": [
+ [
+ 0,
+ 4
+ ],
+ [
+ 0,
+ 5
+ ],
+ [
+ 0,
+ 6
+ ],
+ [
+ 0,
+ 7
+ ],
+ [
+ 1,
+ 5
+ ],
+ [
+ 1,
+ 6
+ ],
+ [
+ 1,
+ 7
+ ],
+ [
+ 2,
+ 4
+ ],
+ [
+ 2,
+ 7
+ ],
+ [
+ 3,
+ 6
+ ],
+ [
+ 4,
+ 8
+ ],
+ [
+ 5,
+ 10
+ ],
+ [
+ 6,
+ 8
+ ],
+ [
+ 6,
+ 9
+ ],
+ [
+ 7,
+ 8
+ ],
+ [
+ 7,
+ 9
+ ],
+ [
+ 7,
+ 10
+ ],
+ [
+ 8,
+ 11
+ ],
+ [
+ 8,
+ 12
+ ],
+ [
+ 10,
+ 12
+ ],
+ [
+ 10,
+ 13
+ ]
+ ],
+ "cycle_time": 18
+ }
+ ],
+ "joins": {
+ "accepted": {
+ "status": "comparable",
+ "reference": 4,
+ "identity": "11480c70a3adf3d41ff8ab37bcda3860bf8bc8bf318cf841a508f5254035b972"
+ },
+ "refused": {
+ "status": "not_comparable",
+ "reason": "structural_identity_mismatch",
+ "reference": 2
+ }
+ }
}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/LICENSE b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/LICENSE
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/LICENSE
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/LICENSE
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/SOURCE.md
similarity index 98%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/SOURCE.md
index 4d33aea778..bad71e0c9f 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/SOURCE.md
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/SOURCE.md
@@ -33,7 +33,7 @@ Le notebook exécuté produit :
Commande de reproduction depuis la racine CoursIA :
```powershell
-python scripts/notebook_tools/notebook_tools.py execute MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb --timeout 600 --verbose
+python scripts/notebook_tools/notebook_tools.py execute MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb --timeout 600 --verbose
```
Environnement de la collecte : Windows 11, Python 3.13, OR-Tools CP-SAT, pandas, NumPy et matplotlib. Les versions exactes sont enregistrées dans `provenance.json` lors de l'exécution.
diff --git a/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/difficulty_probe.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/difficulty_probe.csv
new file mode 100644
index 0000000000..a9838c1457
--- /dev/null
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/difficulty_probe.csv
@@ -0,0 +1,25 @@
+densite,n_modules,seed,n_burns,separations,couloirs,horizon,pond_status,pond_mk,pond_fuel,pond_wall_s,2p_status,2p_mk,2p_fuel,2p_wall_s,2p_mk_certifie,2p_certifie,audit_pond,audit_2p
+0.25,16,11,32,25,6,448,OPTIMAL,121,1791,0.08,OPTIMAL/OPTIMAL,121,1791,0.12,True,True,True,True
+0.25,16,22,32,24,6,448,OPTIMAL,118,1793,0.04,OPTIMAL/OPTIMAL,118,1793,0.09,True,True,True,True
+0.25,16,33,32,32,6,448,OPTIMAL,121,1897,0.06,OPTIMAL/OPTIMAL,121,1897,0.09,True,True,True,True
+0.25,32,11,64,109,11,800,OPTIMAL,226,3850,0.42,OPTIMAL/OPTIMAL,226,3850,0.55,True,True,True,True
+0.25,32,22,64,124,11,800,OPTIMAL,202,3909,0.14,OPTIMAL/OPTIMAL,202,3909,0.27,True,True,True,True
+0.25,32,33,64,116,11,800,OPTIMAL,204,3753,0.12,OPTIMAL/OPTIMAL,204,3753,0.23,True,True,True,True
+0.25,64,11,128,497,22,1504,OPTIMAL,382,7346,0.42,OPTIMAL/OPTIMAL,382,7346,0.64,True,True,True,True
+0.25,64,22,128,490,22,1504,OPTIMAL,383,7285,0.37,OPTIMAL/OPTIMAL,383,7285,0.58,True,True,True,True
+0.25,64,33,128,514,22,1504,FEASIBLE,386,7451,10.04,OPTIMAL/FEASIBLE,386,7449,10.6,True,False,True,True
+0.25,90,11,180,975,30,2076,OPTIMAL,518,10289,0.75,OPTIMAL/OPTIMAL,518,10289,1.4,True,True,True,True
+0.25,90,22,180,972,30,2076,OPTIMAL,528,10548,1.19,OPTIMAL/OPTIMAL,528,10548,2.57,True,True,True,True
+0.25,90,33,180,993,30,2076,OPTIMAL,526,10445,0.83,OPTIMAL/OPTIMAL,526,10445,1.77,True,True,True,True
+0.6,16,11,32,63,6,448,OPTIMAL,129,1816,1.24,OPTIMAL/OPTIMAL,129,1816,1.32,True,True,True,True
+0.6,16,22,32,65,6,448,OPTIMAL,118,1795,0.05,OPTIMAL/OPTIMAL,118,1795,0.12,True,True,True,True
+0.6,16,33,32,76,6,448,OPTIMAL,122,1900,0.07,OPTIMAL/OPTIMAL,122,1900,0.12,True,True,True,True
+0.6,32,11,64,285,11,800,FEASIBLE,245,3867,10.03,FEASIBLE/FEASIBLE,244,3875,20.04,False,False,True,True
+0.6,32,22,64,274,11,800,FEASIBLE,202,3930,10.02,OPTIMAL/FEASIBLE,202,3930,10.2,True,False,True,True
+0.6,32,33,64,268,11,800,OPTIMAL,204,3776,0.19,OPTIMAL/OPTIMAL,204,3776,0.61,True,True,True,True
+0.6,64,11,128,1190,22,1504,OPTIMAL,384,7367,1.25,OPTIMAL/OPTIMAL,384,7367,2.28,True,True,True,True
+0.6,64,22,128,1184,22,1504,FEASIBLE,383,7316,10.1,OPTIMAL/FEASIBLE,383,7317,11.09,True,False,True,True
+0.6,64,33,128,1170,22,1504,FEASIBLE,422,7384,10.04,FEASIBLE/FEASIBLE,401,7417,20.08,False,False,True,True
+0.6,90,11,180,2362,30,2076,FEASIBLE,521,10511,10.07,OPTIMAL/FEASIBLE,521,10493,12.02,True,False,True,True
+0.6,90,22,180,2351,30,2076,OPTIMAL,531,10455,2.6,OPTIMAL/OPTIMAL,531,10455,5.32,True,True,True,True
+0.6,90,33,180,2336,30,2076,OPTIMAL,529,10453,2.36,OPTIMAL/OPTIMAL,529,10453,2.93,True,True,True,True
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/exchange_fronts.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/exchange_fronts.json
similarity index 81%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/exchange_fronts.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/exchange_fronts.json
index 51fd5211da..bf2f1d8430 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/exchange_fronts.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/exchange_fronts.json
@@ -1,614 +1,614 @@
-{
- "coursia-orbital-m6-s11": {
- "digest": "9561a6bad9f3485d526b01c678090c096f2679dbc7d0055b095462536dc1c6f2",
- "budget": 818,
- "lexico_mk": 69,
- "lexico_fuel": 789,
- "repartition_mk": 75,
- "repartition_fuel": 739,
- "points": [
- {
- "eps": 0,
- "cap": 69,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 69,
- "propellant": 789,
- "wall_s": 0.044975499999964086,
- "audit_valid": true
- },
- {
- "eps": 2,
- "cap": 71,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 71,
- "propellant": 690,
- "wall_s": 0.04340200000024197,
- "audit_valid": true
- },
- {
- "eps": 4,
- "cap": 73,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 73,
- "propellant": 684,
- "wall_s": 0.042501399999764544,
- "audit_valid": true
- },
- {
- "eps": 6,
- "cap": 75,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 75,
- "propellant": 681,
- "wall_s": 0.04386419999991631,
- "audit_valid": true
- },
- {
- "eps": 8,
- "cap": 77,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 77,
- "propellant": 676,
- "wall_s": 0.04317959999980303,
- "audit_valid": true
- },
- {
- "eps": 10,
- "cap": 79,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 78,
- "propellant": 675,
- "wall_s": 0.04336940000030154,
- "audit_valid": true
- },
- {
- "eps": 12,
- "cap": 81,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 80,
- "propellant": 672,
- "wall_s": 0.042604799999935494,
- "audit_valid": true
- },
- {
- "eps": 14,
- "cap": 83,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 83,
- "propellant": 672,
- "wall_s": 0.04411619999973482,
- "audit_valid": true
- },
- {
- "eps": 16,
- "cap": 85,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 85,
- "propellant": 672,
- "wall_s": 0.04249070000014399,
- "audit_valid": true
- },
- {
- "eps": 18,
- "cap": 87,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 83,
- "propellant": 672,
- "wall_s": 0.029915000000073633,
- "audit_valid": true
- },
- {
- "eps": 20,
- "cap": 89,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 83,
- "propellant": 672,
- "wall_s": 0.04497480000009091,
- "audit_valid": true
- },
- {
- "eps": 22,
- "cap": 91,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 91,
- "propellant": 672,
- "wall_s": 0.026618300000336603,
- "audit_valid": true
- },
- {
- "eps": 24,
- "cap": 93,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 83,
- "propellant": 672,
- "wall_s": 0.02888940000002549,
- "audit_valid": true
- }
- ]
- },
- "coursia-orbital-m8-s22": {
- "digest": "3c2fd6cd73e7e5a52a16b8e99bc47e9cf620338dde91d8a3c8e35e9bc75b91e8",
- "budget": 1231,
- "lexico_mk": 89,
- "lexico_fuel": 1136,
- "repartition_mk": 92,
- "repartition_fuel": 1209,
- "points": [
- {
- "eps": 0,
- "cap": 89,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 89,
- "propellant": 1136,
- "wall_s": 0.05884070000001884,
- "audit_valid": true
- },
- {
- "eps": 2,
- "cap": 91,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 91,
- "propellant": 1135,
- "wall_s": 0.06187559999989389,
- "audit_valid": true
- },
- {
- "eps": 4,
- "cap": 93,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 93,
- "propellant": 1033,
- "wall_s": 0.04992470000024696,
- "audit_valid": true
- },
- {
- "eps": 6,
- "cap": 95,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 95,
- "propellant": 1032,
- "wall_s": 0.0634712999999465,
- "audit_valid": true
- },
- {
- "eps": 8,
- "cap": 97,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 97,
- "propellant": 1025,
- "wall_s": 0.05647610000005443,
- "audit_valid": true
- },
- {
- "eps": 10,
- "cap": 99,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 98,
- "propellant": 1025,
- "wall_s": 0.070239500000298,
- "audit_valid": true
- },
- {
- "eps": 12,
- "cap": 101,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 101,
- "propellant": 1018,
- "wall_s": 0.0431456999999682,
- "audit_valid": true
- },
- {
- "eps": 14,
- "cap": 103,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 101,
- "propellant": 1018,
- "wall_s": 0.05779840000013792,
- "audit_valid": true
- },
- {
- "eps": 16,
- "cap": 105,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 105,
- "propellant": 1012,
- "wall_s": 0.04201240000020334,
- "audit_valid": true
- },
- {
- "eps": 18,
- "cap": 107,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 105,
- "propellant": 1012,
- "wall_s": 0.058900700000322104,
- "audit_valid": true
- },
- {
- "eps": 20,
- "cap": 109,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 105,
- "propellant": 1012,
- "wall_s": 0.02773059999981342,
- "audit_valid": true
- },
- {
- "eps": 22,
- "cap": 111,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 105,
- "propellant": 1012,
- "wall_s": 0.04593440000007831,
- "audit_valid": true
- },
- {
- "eps": 24,
- "cap": 113,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 105,
- "propellant": 1012,
- "wall_s": 0.05552089999991949,
- "audit_valid": true
- }
- ]
- },
- "coursia-orbital-m10-s44": {
- "digest": "f051cd599c24471a6ac28b27f65e608405cb1871d534bc7256a7211e9b85eb08",
- "budget": 1302,
- "lexico_mk": 99,
- "lexico_fuel": 1109,
- "repartition_mk": 118,
- "repartition_fuel": 1301,
- "points": [
- {
- "eps": 0,
- "cap": 99,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 99,
- "propellant": 1109,
- "wall_s": 0.095325899999807,
- "audit_valid": true
- },
- {
- "eps": 2,
- "cap": 101,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 101,
- "propellant": 1104,
- "wall_s": 0.0733872999999221,
- "audit_valid": true
- },
- {
- "eps": 4,
- "cap": 103,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 103,
- "propellant": 1090,
- "wall_s": 0.0918509000002814,
- "audit_valid": true
- },
- {
- "eps": 6,
- "cap": 105,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 105,
- "propellant": 1080,
- "wall_s": 0.0729631999997764,
- "audit_valid": true
- },
- {
- "eps": 8,
- "cap": 107,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 107,
- "propellant": 1074,
- "wall_s": 0.08744890000025407,
- "audit_valid": true
- },
- {
- "eps": 10,
- "cap": 109,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 109,
- "propellant": 1069,
- "wall_s": 0.10258299999986775,
- "audit_valid": true
- },
- {
- "eps": 12,
- "cap": 111,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 111,
- "propellant": 1067,
- "wall_s": 0.07250639999983832,
- "audit_valid": true
- },
- {
- "eps": 14,
- "cap": 113,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 113,
- "propellant": 1065,
- "wall_s": 0.07324719999996887,
- "audit_valid": true
- },
- {
- "eps": 16,
- "cap": 115,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 115,
- "propellant": 1064,
- "wall_s": 0.07860560000017358,
- "audit_valid": true
- },
- {
- "eps": 18,
- "cap": 117,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 117,
- "propellant": 1064,
- "wall_s": 0.057878900000105205,
- "audit_valid": true
- },
- {
- "eps": 20,
- "cap": 119,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 117,
- "propellant": 1064,
- "wall_s": 0.08379239999976562,
- "audit_valid": true
- },
- {
- "eps": 22,
- "cap": 121,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 117,
- "propellant": 1064,
- "wall_s": 0.057560799999919254,
- "audit_valid": true
- },
- {
- "eps": 24,
- "cap": 123,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 122,
- "propellant": 1064,
- "wall_s": 0.08126749999973981,
- "audit_valid": true
- }
- ]
- },
- "coursia-orbital-m12-s33": {
- "digest": "6dbd5ce52666769a27531ec1fe2feb99da8b7002a531569f5a2d38c036b34260",
- "budget": 1661,
- "lexico_mk": 114,
- "lexico_fuel": 1413,
- "repartition_mk": 126,
- "repartition_fuel": 1661,
- "points": [
- {
- "eps": 0,
- "cap": 114,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 114,
- "propellant": 1413,
- "wall_s": 0.08317660000011529,
- "audit_valid": true
- },
- {
- "eps": 2,
- "cap": 116,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 116,
- "propellant": 1407,
- "wall_s": 0.08903079999981856,
- "audit_valid": true
- },
- {
- "eps": 4,
- "cap": 118,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 118,
- "propellant": 1396,
- "wall_s": 0.10174520000009579,
- "audit_valid": true
- },
- {
- "eps": 6,
- "cap": 120,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 120,
- "propellant": 1390,
- "wall_s": 0.10968450000018493,
- "audit_valid": true
- },
- {
- "eps": 8,
- "cap": 122,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 122,
- "propellant": 1380,
- "wall_s": 0.103583499999786,
- "audit_valid": true
- },
- {
- "eps": 10,
- "cap": 124,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 122,
- "propellant": 1380,
- "wall_s": 0.09174809999967692,
- "audit_valid": true
- },
- {
- "eps": 12,
- "cap": 126,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 126,
- "propellant": 1373,
- "wall_s": 0.11641499999996086,
- "audit_valid": true
- },
- {
- "eps": 14,
- "cap": 128,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 127,
- "propellant": 1373,
- "wall_s": 0.08773380000002362,
- "audit_valid": true
- },
- {
- "eps": 16,
- "cap": 130,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 130,
- "propellant": 1369,
- "wall_s": 0.08753999999998996,
- "audit_valid": true
- },
- {
- "eps": 18,
- "cap": 132,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 132,
- "propellant": 1369,
- "wall_s": 0.0870399999998881,
- "audit_valid": true
- },
- {
- "eps": 20,
- "cap": 134,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 134,
- "propellant": 1367,
- "wall_s": 0.09870189999992363,
- "audit_valid": true
- },
- {
- "eps": 22,
- "cap": 136,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 136,
- "propellant": 1365,
- "wall_s": 0.08659170000009908,
- "audit_valid": true
- },
- {
- "eps": 24,
- "cap": 138,
- "status": "OPTIMAL",
- "feasible": true,
- "certified": true,
- "makespan": 137,
- "propellant": 1365,
- "wall_s": 0.10545259999980772,
- "audit_valid": true
- }
- ]
- }
+{
+ "coursia-orbital-m6-s11": {
+ "digest": "9561a6bad9f3485d526b01c678090c096f2679dbc7d0055b095462536dc1c6f2",
+ "budget": 818,
+ "lexico_mk": 69,
+ "lexico_fuel": 789,
+ "repartition_mk": 75,
+ "repartition_fuel": 739,
+ "points": [
+ {
+ "eps": 0,
+ "cap": 69,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 69,
+ "propellant": 789,
+ "wall_s": 0.01339510001707822,
+ "audit_valid": true
+ },
+ {
+ "eps": 2,
+ "cap": 71,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 71,
+ "propellant": 690,
+ "wall_s": 0.013753900013398379,
+ "audit_valid": true
+ },
+ {
+ "eps": 4,
+ "cap": 73,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 73,
+ "propellant": 684,
+ "wall_s": 0.029397199978120625,
+ "audit_valid": true
+ },
+ {
+ "eps": 6,
+ "cap": 75,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 75,
+ "propellant": 681,
+ "wall_s": 0.01778080000076443,
+ "audit_valid": true
+ },
+ {
+ "eps": 8,
+ "cap": 77,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 77,
+ "propellant": 676,
+ "wall_s": 0.013640100019983947,
+ "audit_valid": true
+ },
+ {
+ "eps": 10,
+ "cap": 79,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 78,
+ "propellant": 675,
+ "wall_s": 0.019788899982813746,
+ "audit_valid": true
+ },
+ {
+ "eps": 12,
+ "cap": 81,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 80,
+ "propellant": 672,
+ "wall_s": 0.013253699988126755,
+ "audit_valid": true
+ },
+ {
+ "eps": 14,
+ "cap": 83,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 83,
+ "propellant": 672,
+ "wall_s": 0.013125700003001839,
+ "audit_valid": true
+ },
+ {
+ "eps": 16,
+ "cap": 85,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 85,
+ "propellant": 672,
+ "wall_s": 0.014797699986957014,
+ "audit_valid": true
+ },
+ {
+ "eps": 18,
+ "cap": 87,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 87,
+ "propellant": 672,
+ "wall_s": 0.013792799960356206,
+ "audit_valid": true
+ },
+ {
+ "eps": 20,
+ "cap": 89,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 83,
+ "propellant": 672,
+ "wall_s": 0.028967699967324734,
+ "audit_valid": true
+ },
+ {
+ "eps": 22,
+ "cap": 91,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 83,
+ "propellant": 672,
+ "wall_s": 0.017651000001933426,
+ "audit_valid": true
+ },
+ {
+ "eps": 24,
+ "cap": 93,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 83,
+ "propellant": 672,
+ "wall_s": 0.027727400010917336,
+ "audit_valid": true
+ }
+ ]
+ },
+ "coursia-orbital-m8-s22": {
+ "digest": "3c2fd6cd73e7e5a52a16b8e99bc47e9cf620338dde91d8a3c8e35e9bc75b91e8",
+ "budget": 1231,
+ "lexico_mk": 89,
+ "lexico_fuel": 1136,
+ "repartition_mk": 92,
+ "repartition_fuel": 1209,
+ "points": [
+ {
+ "eps": 0,
+ "cap": 89,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 89,
+ "propellant": 1136,
+ "wall_s": 0.027844300027936697,
+ "audit_valid": true
+ },
+ {
+ "eps": 2,
+ "cap": 91,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 91,
+ "propellant": 1135,
+ "wall_s": 0.030301399994641542,
+ "audit_valid": true
+ },
+ {
+ "eps": 4,
+ "cap": 93,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 93,
+ "propellant": 1033,
+ "wall_s": 0.032336700009182096,
+ "audit_valid": true
+ },
+ {
+ "eps": 6,
+ "cap": 95,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 95,
+ "propellant": 1032,
+ "wall_s": 0.029502300021704286,
+ "audit_valid": true
+ },
+ {
+ "eps": 8,
+ "cap": 97,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 97,
+ "propellant": 1025,
+ "wall_s": 0.031290499959141016,
+ "audit_valid": true
+ },
+ {
+ "eps": 10,
+ "cap": 99,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 98,
+ "propellant": 1025,
+ "wall_s": 0.0199554999708198,
+ "audit_valid": true
+ },
+ {
+ "eps": 12,
+ "cap": 101,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 101,
+ "propellant": 1018,
+ "wall_s": 0.027916799997910857,
+ "audit_valid": true
+ },
+ {
+ "eps": 14,
+ "cap": 103,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 101,
+ "propellant": 1018,
+ "wall_s": 0.030507999996189028,
+ "audit_valid": true
+ },
+ {
+ "eps": 16,
+ "cap": 105,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 105,
+ "propellant": 1012,
+ "wall_s": 0.029082699969876558,
+ "audit_valid": true
+ },
+ {
+ "eps": 18,
+ "cap": 107,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 105,
+ "propellant": 1012,
+ "wall_s": 0.02887480001663789,
+ "audit_valid": true
+ },
+ {
+ "eps": 20,
+ "cap": 109,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 105,
+ "propellant": 1012,
+ "wall_s": 0.02812250005081296,
+ "audit_valid": true
+ },
+ {
+ "eps": 22,
+ "cap": 111,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 105,
+ "propellant": 1012,
+ "wall_s": 0.016613900021184236,
+ "audit_valid": true
+ },
+ {
+ "eps": 24,
+ "cap": 113,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 105,
+ "propellant": 1012,
+ "wall_s": 0.030129099963232875,
+ "audit_valid": true
+ }
+ ]
+ },
+ "coursia-orbital-m10-s44": {
+ "digest": "f051cd599c24471a6ac28b27f65e608405cb1871d534bc7256a7211e9b85eb08",
+ "budget": 1302,
+ "lexico_mk": 99,
+ "lexico_fuel": 1109,
+ "repartition_mk": 118,
+ "repartition_fuel": 1301,
+ "points": [
+ {
+ "eps": 0,
+ "cap": 99,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 99,
+ "propellant": 1109,
+ "wall_s": 0.03168410004582256,
+ "audit_valid": true
+ },
+ {
+ "eps": 2,
+ "cap": 101,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 101,
+ "propellant": 1104,
+ "wall_s": 0.04410409997217357,
+ "audit_valid": true
+ },
+ {
+ "eps": 4,
+ "cap": 103,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 103,
+ "propellant": 1090,
+ "wall_s": 0.032243499998003244,
+ "audit_valid": true
+ },
+ {
+ "eps": 6,
+ "cap": 105,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 105,
+ "propellant": 1080,
+ "wall_s": 0.048570800048764795,
+ "audit_valid": true
+ },
+ {
+ "eps": 8,
+ "cap": 107,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 106,
+ "propellant": 1074,
+ "wall_s": 0.048519000003580004,
+ "audit_valid": true
+ },
+ {
+ "eps": 10,
+ "cap": 109,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 109,
+ "propellant": 1069,
+ "wall_s": 0.029334999970160425,
+ "audit_valid": true
+ },
+ {
+ "eps": 12,
+ "cap": 111,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 111,
+ "propellant": 1067,
+ "wall_s": 0.04314899997552857,
+ "audit_valid": true
+ },
+ {
+ "eps": 14,
+ "cap": 113,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 113,
+ "propellant": 1065,
+ "wall_s": 0.032930999994277954,
+ "audit_valid": true
+ },
+ {
+ "eps": 16,
+ "cap": 115,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 115,
+ "propellant": 1064,
+ "wall_s": 0.027269300015177578,
+ "audit_valid": true
+ },
+ {
+ "eps": 18,
+ "cap": 117,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 117,
+ "propellant": 1064,
+ "wall_s": 0.02801000000908971,
+ "audit_valid": true
+ },
+ {
+ "eps": 20,
+ "cap": 119,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 117,
+ "propellant": 1064,
+ "wall_s": 0.027633899997454137,
+ "audit_valid": true
+ },
+ {
+ "eps": 22,
+ "cap": 121,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 117,
+ "propellant": 1064,
+ "wall_s": 0.03275250003207475,
+ "audit_valid": true
+ },
+ {
+ "eps": 24,
+ "cap": 123,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 122,
+ "propellant": 1064,
+ "wall_s": 0.030774099985137582,
+ "audit_valid": true
+ }
+ ]
+ },
+ "coursia-orbital-m12-s33": {
+ "digest": "6dbd5ce52666769a27531ec1fe2feb99da8b7002a531569f5a2d38c036b34260",
+ "budget": 1661,
+ "lexico_mk": 114,
+ "lexico_fuel": 1413,
+ "repartition_mk": 126,
+ "repartition_fuel": 1661,
+ "points": [
+ {
+ "eps": 0,
+ "cap": 114,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 114,
+ "propellant": 1413,
+ "wall_s": 0.027814700035378337,
+ "audit_valid": true
+ },
+ {
+ "eps": 2,
+ "cap": 116,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 116,
+ "propellant": 1407,
+ "wall_s": 0.04753119999077171,
+ "audit_valid": true
+ },
+ {
+ "eps": 4,
+ "cap": 118,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 118,
+ "propellant": 1396,
+ "wall_s": 0.047664000012446195,
+ "audit_valid": true
+ },
+ {
+ "eps": 6,
+ "cap": 120,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 120,
+ "propellant": 1390,
+ "wall_s": 0.03373180003836751,
+ "audit_valid": true
+ },
+ {
+ "eps": 8,
+ "cap": 122,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 122,
+ "propellant": 1380,
+ "wall_s": 0.041050200001336634,
+ "audit_valid": true
+ },
+ {
+ "eps": 10,
+ "cap": 124,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 123,
+ "propellant": 1380,
+ "wall_s": 0.047627000021748245,
+ "audit_valid": true
+ },
+ {
+ "eps": 12,
+ "cap": 126,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 126,
+ "propellant": 1373,
+ "wall_s": 0.0644305000314489,
+ "audit_valid": true
+ },
+ {
+ "eps": 14,
+ "cap": 128,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 127,
+ "propellant": 1373,
+ "wall_s": 0.06009389995597303,
+ "audit_valid": true
+ },
+ {
+ "eps": 16,
+ "cap": 130,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 130,
+ "propellant": 1369,
+ "wall_s": 0.045005899970419705,
+ "audit_valid": true
+ },
+ {
+ "eps": 18,
+ "cap": 132,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 132,
+ "propellant": 1369,
+ "wall_s": 0.04575529997237027,
+ "audit_valid": true
+ },
+ {
+ "eps": 20,
+ "cap": 134,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 134,
+ "propellant": 1367,
+ "wall_s": 0.041486899950541556,
+ "audit_valid": true
+ },
+ {
+ "eps": 22,
+ "cap": 136,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 136,
+ "propellant": 1365,
+ "wall_s": 0.033781300007831305,
+ "audit_valid": true
+ },
+ {
+ "eps": 24,
+ "cap": 138,
+ "status": "OPTIMAL",
+ "feasible": true,
+ "certified": true,
+ "makespan": 137,
+ "propellant": 1365,
+ "wall_s": 0.02905710000777617,
+ "audit_valid": true
+ }
+ ]
+ }
}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/grid_runs.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/grid_runs.csv
new file mode 100644
index 0000000000..01b80263b6
--- /dev/null
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/grid_runs.csv
@@ -0,0 +1,26 @@
+instance,n_modules,seed,n_burns,horizon,corridors,separations,budget,digest,pond_status,pond_mk,pond_fuel,pond_wall_s,pond_conflicts,pond_domaine_objectif,2p_status,2p_mk,2p_fuel,2p_wall_s,2p_certifie,disp_status,disp_mk,disp_fuel,disp_wall_s,audit_pond,audit_2p,audit_disp
+coursia-orbital-m4-s11,4,11,8,184,2,0,464,b2ae490d34632341,OPTIMAL,51,408,0.0277,0,86024,OPTIMAL/OPTIMAL,51,408,0.0327,True,FAISABLE,52,433,0.0001,True,True,True
+coursia-orbital-m4-s22,4,22,8,184,2,1,478,076b3bd96a209334,OPTIMAL,56,442,0.0149,2,88614,OPTIMAL/OPTIMAL,56,442,0.0291,True,FAISABLE,56,448,0.0001,True,True,True
+coursia-orbital-m4-s33,4,33,8,184,2,1,475,4a01cc08497d2f0e,OPTIMAL,37,421,0.0147,1,88059,OPTIMAL/OPTIMAL,37,421,0.0292,True,FAISABLE,41,444,0.0001,True,True,True
+coursia-orbital-m4-s44,4,44,8,184,2,0,462,63929a1ca6a9e931,OPTIMAL,59,406,0.0205,0,85654,OPTIMAL/OPTIMAL,59,406,0.0301,True,FAISABLE,59,429,0.0002,True,True,True
+coursia-orbital-m4-s55,4,55,8,184,2,2,461,8e3fb414ccb77fbd,OPTIMAL,56,390,0.0158,0,85469,OPTIMAL/OPTIMAL,56,390,0.0283,True,FAISABLE,57,428,0.0001,True,True,True
+coursia-orbital-m6-s11,6,11,12,228,2,4,818,9561a6bad9f3485d,OPTIMAL,69,789,0.0209,0,187550,OPTIMAL/OPTIMAL,69,789,0.0535,True,FAISABLE,75,739,0.0001,True,True,True
+coursia-orbital-m6-s22,6,22,12,228,2,3,843,80cfbce022aff265,OPTIMAL,68,809,0.0185,0,193275,OPTIMAL/OPTIMAL,68,809,0.0453,True,FAISABLE,83,842,0.0001,True,True,True
+coursia-orbital-m6-s33,6,33,12,228,2,2,836,0da7820663568a8d,OPTIMAL,71,810,0.0129,0,191672,OPTIMAL/OPTIMAL,71,810,0.0472,True,FAISABLE,88,836,0.0002,True,True,True
+coursia-orbital-m6-s44,6,44,12,228,2,0,825,5d0af050f1f29418,OPTIMAL,72,821,0.0291,0,189153,OPTIMAL/OPTIMAL,72,821,0.0442,True,FAISABLE,88,825,0.0002,True,True,True
+coursia-orbital-m6-s55,6,55,12,228,2,1,816,6adc1e6e279ccddb,OPTIMAL,61,779,0.016,0,187092,OPTIMAL/OPTIMAL,61,779,0.0328,True,FAISABLE,66,816,0.0002,True,True,True
+coursia-orbital-m8-s11,8,11,16,272,3,5,1208,29361dc8b6b78a6c,OPTIMAL,74,1138,0.0296,0,330056,OPTIMAL/OPTIMAL,74,1138,0.0404,True,FAISABLE,76,1187,0.0002,True,True,True
+coursia-orbital-m8-s22,8,22,16,272,3,3,1231,3c2fd6cd73e7e5a5,OPTIMAL,89,1136,0.0159,0,336335,OPTIMAL/OPTIMAL,89,1136,0.061,True,FAISABLE,92,1209,0.0002,True,True,True
+coursia-orbital-m8-s33,8,33,16,272,3,6,1228,22db3908f076aefd,OPTIMAL,66,1021,0.03,0,335516,OPTIMAL/OPTIMAL,66,1021,0.0609,True,FAISABLE,66,1208,0.0002,True,True,True
+coursia-orbital-m8-s44,8,44,16,272,3,8,1214,42e8790ce236a287,OPTIMAL,66,1036,0.0158,0,331694,OPTIMAL/OPTIMAL,66,1036,0.0482,True,FAISABLE,69,1192,0.0002,True,True,True
+coursia-orbital-m8-s55,8,55,16,272,3,5,1203,33df73e03efc0780,OPTIMAL,77,1113,0.0286,0,328691,OPTIMAL/OPTIMAL,77,1113,0.0625,True,FAISABLE,86,1179,0.0002,True,True,True
+coursia-orbital-m10-s11,10,11,20,316,4,9,1291,da1baffdf3d2000a,OPTIMAL,82,1075,0.0446,0,409563,OPTIMAL/OPTIMAL,82,1075,0.0617,True,FAISABLE,82,1285,0.0003,True,True,True
+coursia-orbital-m10-s22,10,22,20,316,4,12,1318,e5a1544da80e6863,OPTIMAL,87,1138,0.0309,0,418122,OPTIMAL/OPTIMAL,87,1138,0.0597,True,FAISABLE,117,1318,0.0005,True,True,True
+coursia-orbital-m10-s33,10,33,20,316,4,6,1305,22a14292de403280,OPTIMAL,89,1179,0.0297,0,414001,OPTIMAL/OPTIMAL,89,1179,0.059,True,FAISABLE,93,1297,0.0003,True,True,True
+coursia-orbital-m10-s44,10,44,20,316,4,11,1302,f051cd599c24471a,OPTIMAL,99,1109,0.0317,0,413050,OPTIMAL/OPTIMAL,99,1109,0.0701,True,FAISABLE,118,1301,0.0006,True,True,True
+coursia-orbital-m10-s55,10,55,20,316,4,9,1297,57e93d6ec2629897,OPTIMAL,88,1123,0.0257,0,411465,OPTIMAL/OPTIMAL,88,1123,0.0654,True,FAISABLE,99,1287,0.0003,True,True,True
+coursia-orbital-m12-s11,12,11,24,360,4,12,1657,d403e0e32448c7c0,OPTIMAL,88,1477,0.0473,0,598537,OPTIMAL/OPTIMAL,88,1477,0.08,True,FAISABLE,103,1657,0.0008,True,True,True
+coursia-orbital-m12-s22,12,22,24,360,4,7,1673,5a92c1051bba9e3b,OPTIMAL,95,1499,0.0265,0,604313,OPTIMAL/OPTIMAL,95,1499,0.0535,True,FAISABLE,102,1673,0.0004,True,True,True
+coursia-orbital-m12-s33,12,33,24,360,4,15,1661,6dbd5ce52666769a,OPTIMAL,114,1413,0.0526,0,599981,OPTIMAL/OPTIMAL,114,1413,0.0903,True,FAISABLE,126,1661,0.0007,True,True,True
+coursia-orbital-m12-s44,12,44,24,360,4,15,1670,fe770305c6fb5715,OPTIMAL,96,1386,0.0425,0,603230,OPTIMAL/OPTIMAL,96,1386,0.0727,True,FAISABLE,98,1669,0.0005,True,True,True
+coursia-orbital-m12-s55,12,55,24,360,4,14,1658,aab6978371a29600,OPTIMAL,97,1391,0.0337,0,598898,OPTIMAL/OPTIMAL,97,1391,0.0712,True,FAISABLE,100,1654,0.0004,True,True,True
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/matched_comparison.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/matched_comparison.csv
similarity index 94%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/matched_comparison.csv
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/matched_comparison.csv
index 4ffd90d348..fe4fbc1937 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/matched_comparison.csv
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/matched_comparison.csv
@@ -1,26 +1,26 @@
-instance,n_modules,seed,lex_mk,lex_fuel,disp_mk,disp_fuel,apparie_mk,apparie_fuel,apparie_status,apparie_audit,lecture_melangee_pct,lecture_appariee_pct
-coursia-orbital-m4-s11,4,11,51,408,52,433,51,408,OPTIMAL,True,5.773672055427252,5.773672055427252
-coursia-orbital-m4-s22,4,22,56,442,56,448,56,442,OPTIMAL,True,1.3392857142857142,1.3392857142857142
-coursia-orbital-m4-s33,4,33,37,421,41,444,41,397,OPTIMAL,True,5.18018018018018,10.585585585585585
-coursia-orbital-m4-s44,4,44,59,406,59,429,59,406,OPTIMAL,True,5.361305361305361,5.361305361305361
-coursia-orbital-m4-s55,4,55,56,390,57,428,56,390,OPTIMAL,True,8.878504672897197,8.878504672897197
-coursia-orbital-m6-s11,6,11,69,789,75,739,75,681,OPTIMAL,True,-6.7658998646820026,7.848443843031123
-coursia-orbital-m6-s22,6,22,68,809,83,842,81,692,OPTIMAL,True,3.9192399049881237,17.81472684085511
-coursia-orbital-m6-s33,6,33,71,810,88,836,87,687,OPTIMAL,True,3.110047846889952,17.822966507177032
-coursia-orbital-m6-s44,6,44,72,821,88,825,88,676,OPTIMAL,True,0.48484848484848486,18.060606060606062
-coursia-orbital-m6-s55,6,55,61,779,66,816,66,672,OPTIMAL,True,4.534313725490196,17.647058823529413
-coursia-orbital-m8-s11,8,11,74,1138,76,1187,76,1037,OPTIMAL,True,4.128053917438922,12.636899747262005
-coursia-orbital-m8-s22,8,22,89,1136,92,1209,92,1127,OPTIMAL,True,6.038047973531844,6.782464846980976
-coursia-orbital-m8-s33,8,33,66,1021,66,1208,66,1021,OPTIMAL,True,15.480132450331126,15.480132450331126
-coursia-orbital-m8-s44,8,44,66,1036,69,1192,69,1010,OPTIMAL,True,13.087248322147651,15.268456375838927
-coursia-orbital-m8-s55,8,55,77,1113,86,1179,86,994,OPTIMAL,True,5.597964376590331,15.691263782866836
-coursia-orbital-m10-s11,10,11,82,1075,82,1285,82,1075,OPTIMAL,True,16.342412451361866,16.342412451361866
-coursia-orbital-m10-s22,10,22,87,1138,117,1318,114,1082,OPTIMAL,True,13.657056145675266,17.905918057663126
-coursia-orbital-m10-s33,10,33,89,1179,93,1297,93,1079,OPTIMAL,True,9.097918272937548,16.808018504240554
-coursia-orbital-m10-s44,10,44,99,1109,118,1301,117,1064,OPTIMAL,True,14.757878554957724,18.216756341275943
-coursia-orbital-m10-s55,10,55,88,1123,99,1287,99,1064,OPTIMAL,True,12.742812742812744,17.327117327117328
-coursia-orbital-m12-s11,12,11,88,1477,103,1657,103,1358,OPTIMAL,True,10.863005431502716,18.044659022329512
-coursia-orbital-m12-s22,12,22,95,1499,102,1673,102,1381,OPTIMAL,True,10.400478182904962,17.45367603108189
-coursia-orbital-m12-s33,12,33,114,1413,126,1661,126,1373,OPTIMAL,True,14.930764599638772,17.338952438290185
-coursia-orbital-m12-s44,12,44,96,1386,98,1669,98,1372,OPTIMAL,True,16.95626123427202,17.79508687837028
-coursia-orbital-m12-s55,12,55,97,1391,100,1654,100,1369,OPTIMAL,True,15.900846432889963,17.230955259975815
+instance,n_modules,seed,lex_mk,lex_fuel,disp_mk,disp_fuel,apparie_mk,apparie_fuel,apparie_status,apparie_audit,lecture_melangee_pct,lecture_appariee_pct
+coursia-orbital-m4-s11,4,11,51,408,52,433,51,408,OPTIMAL,True,5.773672055427252,5.773672055427252
+coursia-orbital-m4-s22,4,22,56,442,56,448,56,442,OPTIMAL,True,1.3392857142857142,1.3392857142857142
+coursia-orbital-m4-s33,4,33,37,421,41,444,41,397,OPTIMAL,True,5.18018018018018,10.585585585585585
+coursia-orbital-m4-s44,4,44,59,406,59,429,59,406,OPTIMAL,True,5.361305361305361,5.361305361305361
+coursia-orbital-m4-s55,4,55,56,390,57,428,57,390,OPTIMAL,True,8.878504672897197,8.878504672897197
+coursia-orbital-m6-s11,6,11,69,789,75,739,75,681,OPTIMAL,True,-6.7658998646820026,7.848443843031123
+coursia-orbital-m6-s22,6,22,68,809,83,842,81,692,OPTIMAL,True,3.9192399049881237,17.81472684085511
+coursia-orbital-m6-s33,6,33,71,810,88,836,87,687,OPTIMAL,True,3.110047846889952,17.822966507177032
+coursia-orbital-m6-s44,6,44,72,821,88,825,88,676,OPTIMAL,True,0.48484848484848486,18.060606060606062
+coursia-orbital-m6-s55,6,55,61,779,66,816,66,672,OPTIMAL,True,4.534313725490196,17.647058823529413
+coursia-orbital-m8-s11,8,11,74,1138,76,1187,76,1037,OPTIMAL,True,4.128053917438922,12.636899747262005
+coursia-orbital-m8-s22,8,22,89,1136,92,1209,92,1127,OPTIMAL,True,6.038047973531844,6.782464846980976
+coursia-orbital-m8-s33,8,33,66,1021,66,1208,66,1021,OPTIMAL,True,15.480132450331126,15.480132450331126
+coursia-orbital-m8-s44,8,44,66,1036,69,1192,69,1010,OPTIMAL,True,13.087248322147651,15.268456375838927
+coursia-orbital-m8-s55,8,55,77,1113,86,1179,85,994,OPTIMAL,True,5.597964376590331,15.691263782866836
+coursia-orbital-m10-s11,10,11,82,1075,82,1285,82,1075,OPTIMAL,True,16.342412451361866,16.342412451361866
+coursia-orbital-m10-s22,10,22,87,1138,117,1318,114,1082,OPTIMAL,True,13.657056145675266,17.905918057663126
+coursia-orbital-m10-s33,10,33,89,1179,93,1297,93,1079,OPTIMAL,True,9.097918272937548,16.808018504240554
+coursia-orbital-m10-s44,10,44,99,1109,118,1301,117,1064,OPTIMAL,True,14.757878554957724,18.216756341275943
+coursia-orbital-m10-s55,10,55,88,1123,99,1287,99,1064,OPTIMAL,True,12.742812742812744,17.327117327117328
+coursia-orbital-m12-s11,12,11,88,1477,103,1657,103,1358,OPTIMAL,True,10.863005431502716,18.044659022329512
+coursia-orbital-m12-s22,12,22,95,1499,102,1673,102,1381,OPTIMAL,True,10.400478182904962,17.45367603108189
+coursia-orbital-m12-s33,12,33,114,1413,126,1661,126,1373,OPTIMAL,True,14.930764599638772,17.338952438290185
+coursia-orbital-m12-s44,12,44,96,1386,98,1669,98,1372,OPTIMAL,True,16.95626123427202,17.79508687837028
+coursia-orbital-m12-s55,12,55,97,1391,100,1654,100,1369,OPTIMAL,True,15.900846432889963,17.230955259975815
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/provenance.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/provenance.json
similarity index 94%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/provenance.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/provenance.json
index bbf782f5ca..e9db3d7531 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app30-orbital-assembly-audit/provenance.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app30-orbital-assembly-audit/provenance.json
@@ -1,363 +1,363 @@
-{
- "application": "App-30 — Ordonnancement d'assemblage orbital",
- "distillation": {
- "projet": "PrCon C4 — Orbital Assembly Scheduling",
- "auteurs": [
- "Gurvan Estable",
- "Joris Bely",
- "Kévin Lubert"
- ],
- "pull_request": 53,
- "commit": "e9a751bc440f1063fa36582aab8b91eec3bdfd55",
- "snapshot": "b5f3f0351dbd41f3a76f047cf02e9c93e81192f3",
- "licence": "MIT",
- "note": "Reproduction CoursIA independante. Aucun module, texte, cellule, figure ni sortie du rendu source n'est repris. Discretisation volontairement distincte : les grandeurs ne sont pas comparables."
- },
- "environnement": {
- "python": "3.13.14",
- "ortools": "9.15.6755",
- "pandas": "2.3.3",
- "matplotlib": "3.10.8",
- "platform": "Windows-11-10.0.26200-SP0",
- "slot_seconds": 900,
- "dv_unit_mps": 5.0
- },
- "protocole": {
- "grille": {
- "tailles": [
- 4,
- 6,
- 8,
- 10,
- 12
- ],
- "graines": [
- 11,
- 22,
- 33,
- 44,
- 55
- ],
- "densite": 0.25,
- "limite_s": 20.0
- },
- "sonde": {
- "tailles": [
- 16,
- 32,
- 64,
- 90
- ],
- "graines": [
- 11,
- 22,
- 33
- ],
- "densites": [
- 0.25,
- 0.6
- ],
- "limite_s": 10.0
- },
- "front": {
- "cas": [
- "m6-s11",
- "m8-s22",
- "m10-s44",
- "m12-s33"
- ],
- "relachements": [
- 0,
- 2,
- 4,
- 6,
- 8,
- 10,
- 12,
- 14,
- 16,
- 18,
- 20,
- 22,
- 24
- ]
- }
- },
- "instances": [
- {
- "nom": "coursia-orbital-m4-s11",
- "empreinte_sha256": "b2ae490d346323412aeca6a637793c8c77045bcb05037f5ac1fdd24cad70ea99",
- "poussees": 8,
- "horizon": 184,
- "couloirs": 2,
- "precedences": 7,
- "separations": 0,
- "budget_ergol": 464,
- "capacite_debit": 91
- },
- {
- "nom": "coursia-orbital-m4-s22",
- "empreinte_sha256": "076b3bd96a20933423bf9f8c8756342d2dacf4767fe7f1ce9af81287866f4b15",
- "poussees": 8,
- "horizon": 184,
- "couloirs": 2,
- "precedences": 7,
- "separations": 1,
- "budget_ergol": 478,
- "capacite_debit": 93
- },
- {
- "nom": "coursia-orbital-m4-s33",
- "empreinte_sha256": "4a01cc08497d2f0e4814bf2079cd2742c57a7fee740e5e250b01b1b9b735834b",
- "poussees": 8,
- "horizon": 184,
- "couloirs": 2,
- "precedences": 7,
- "separations": 1,
- "budget_ergol": 475,
- "capacite_debit": 94
- },
- {
- "nom": "coursia-orbital-m4-s44",
- "empreinte_sha256": "63929a1ca6a9e931ee2b7f834d120a22535998b6a5c184efffe8695ff461187c",
- "poussees": 8,
- "horizon": 184,
- "couloirs": 2,
- "precedences": 7,
- "separations": 0,
- "budget_ergol": 462,
- "capacite_debit": 92
- },
- {
- "nom": "coursia-orbital-m4-s55",
- "empreinte_sha256": "8e3fb414ccb77fbd4cea9e9a589ad4638cca282947904fb2f77b1c4a03c1e47a",
- "poussees": 8,
- "horizon": 184,
- "couloirs": 2,
- "precedences": 7,
- "separations": 2,
- "budget_ergol": 461,
- "capacite_debit": 92
- },
- {
- "nom": "coursia-orbital-m6-s11",
- "empreinte_sha256": "9561a6bad9f3485d526b01c678090c096f2679dbc7d0055b095462536dc1c6f2",
- "poussees": 12,
- "horizon": 228,
- "couloirs": 2,
- "precedences": 11,
- "separations": 4,
- "budget_ergol": 818,
- "capacite_debit": 94
- },
- {
- "nom": "coursia-orbital-m6-s22",
- "empreinte_sha256": "80cfbce022aff265c67398dff0348b6e3cebdc59ba0e6d635ce41c8924fac7b7",
- "poussees": 12,
- "horizon": 228,
- "couloirs": 2,
- "precedences": 11,
- "separations": 3,
- "budget_ergol": 843,
- "capacite_debit": 96
- },
- {
- "nom": "coursia-orbital-m6-s33",
- "empreinte_sha256": "0da7820663568a8de4e19a7143814ac913c9fcabc9d788ca46945a7f207b0128",
- "poussees": 12,
- "horizon": 228,
- "couloirs": 2,
- "precedences": 11,
- "separations": 2,
- "budget_ergol": 836,
- "capacite_debit": 97
- },
- {
- "nom": "coursia-orbital-m6-s44",
- "empreinte_sha256": "5d0af050f1f29418cf48e7c9bbffa9d43c1e6321cdd4a4658f92745e8e828648",
- "poussees": 12,
- "horizon": 228,
- "couloirs": 2,
- "precedences": 11,
- "separations": 0,
- "budget_ergol": 825,
- "capacite_debit": 95
- },
- {
- "nom": "coursia-orbital-m6-s55",
- "empreinte_sha256": "6adc1e6e279ccddb15dbdb379d740a424e21e815239a309abd579bc6bdb06ba4",
- "poussees": 12,
- "horizon": 228,
- "couloirs": 2,
- "precedences": 11,
- "separations": 1,
- "budget_ergol": 816,
- "capacite_debit": 95
- },
- {
- "nom": "coursia-orbital-m8-s11",
- "empreinte_sha256": "29361dc8b6b78a6cd911140c4be6a0bb00fcb21eacbaf4d3bce8484dd9cb53fd",
- "poussees": 16,
- "horizon": 272,
- "couloirs": 3,
- "precedences": 15,
- "separations": 5,
- "budget_ergol": 1208,
- "capacite_debit": 96
- },
- {
- "nom": "coursia-orbital-m8-s22",
- "empreinte_sha256": "3c2fd6cd73e7e5a52a16b8e99bc47e9cf620338dde91d8a3c8e35e9bc75b91e8",
- "poussees": 16,
- "horizon": 272,
- "couloirs": 3,
- "precedences": 15,
- "separations": 3,
- "budget_ergol": 1231,
- "capacite_debit": 98
- },
- {
- "nom": "coursia-orbital-m8-s33",
- "empreinte_sha256": "22db3908f076aefd8f8a7a4cc2edec14603e42d9dc29e80816f471873013011a",
- "poussees": 16,
- "horizon": 272,
- "couloirs": 3,
- "precedences": 15,
- "separations": 6,
- "budget_ergol": 1228,
- "capacite_debit": 99
- },
- {
- "nom": "coursia-orbital-m8-s44",
- "empreinte_sha256": "42e8790ce236a2877b902bcf9a7afc7ca1960836147aa0210cb5b899984ac8fc",
- "poussees": 16,
- "horizon": 272,
- "couloirs": 3,
- "precedences": 15,
- "separations": 8,
- "budget_ergol": 1214,
- "capacite_debit": 97
- },
- {
- "nom": "coursia-orbital-m8-s55",
- "empreinte_sha256": "33df73e03efc0780e39775c518538df45fa980d38d7d58a1fd23a679132ff574",
- "poussees": 16,
- "horizon": 272,
- "couloirs": 3,
- "precedences": 15,
- "separations": 5,
- "budget_ergol": 1203,
- "capacite_debit": 97
- },
- {
- "nom": "coursia-orbital-m10-s11",
- "empreinte_sha256": "da1baffdf3d2000a84a974386f8638bb73c69d56254de6e5143048a862dbf460",
- "poussees": 20,
- "horizon": 316,
- "couloirs": 4,
- "precedences": 19,
- "separations": 9,
- "budget_ergol": 1291,
- "capacite_debit": 93
- },
- {
- "nom": "coursia-orbital-m10-s22",
- "empreinte_sha256": "e5a1544da80e6863c12e183402ef6f23ee4278dc88d7234624d432ee246de5b7",
- "poussees": 20,
- "horizon": 316,
- "couloirs": 4,
- "precedences": 19,
- "separations": 12,
- "budget_ergol": 1318,
- "capacite_debit": 95
- },
- {
- "nom": "coursia-orbital-m10-s33",
- "empreinte_sha256": "22a14292de4032809a76da940343178657e34ae85c35f4c4557ddf73a38e0ce7",
- "poussees": 20,
- "horizon": 316,
- "couloirs": 4,
- "precedences": 19,
- "separations": 6,
- "budget_ergol": 1305,
- "capacite_debit": 95
- },
- {
- "nom": "coursia-orbital-m10-s44",
- "empreinte_sha256": "f051cd599c24471a6ac28b27f65e608405cb1871d534bc7256a7211e9b85eb08",
- "poussees": 20,
- "horizon": 316,
- "couloirs": 4,
- "precedences": 19,
- "separations": 11,
- "budget_ergol": 1302,
- "capacite_debit": 94
- },
- {
- "nom": "coursia-orbital-m10-s55",
- "empreinte_sha256": "57e93d6ec26298973663f057ea717bc84ee1e60814459ca05142fb699153d91d",
- "poussees": 20,
- "horizon": 316,
- "couloirs": 4,
- "precedences": 19,
- "separations": 9,
- "budget_ergol": 1297,
- "capacite_debit": 94
- },
- {
- "nom": "coursia-orbital-m12-s11",
- "empreinte_sha256": "d403e0e32448c7c0f8345d9ba9d06f4fd82021ebd5dade213e696cba935eb9e0",
- "poussees": 24,
- "horizon": 360,
- "couloirs": 4,
- "precedences": 23,
- "separations": 12,
- "budget_ergol": 1657,
- "capacite_debit": 94
- },
- {
- "nom": "coursia-orbital-m12-s22",
- "empreinte_sha256": "5a92c1051bba9e3b1eb730c59a7c95abddec0b48d3e04a94f651eba2469c67b7",
- "poussees": 24,
- "horizon": 360,
- "couloirs": 4,
- "precedences": 23,
- "separations": 7,
- "budget_ergol": 1673,
- "capacite_debit": 96
- },
- {
- "nom": "coursia-orbital-m12-s33",
- "empreinte_sha256": "6dbd5ce52666769a27531ec1fe2feb99da8b7002a531569f5a2d38c036b34260",
- "poussees": 24,
- "horizon": 360,
- "couloirs": 4,
- "precedences": 23,
- "separations": 15,
- "budget_ergol": 1661,
- "capacite_debit": 96
- },
- {
- "nom": "coursia-orbital-m12-s44",
- "empreinte_sha256": "fe770305c6fb5715bfe89a3a45b5b4f6148d5212a52a22c72ccc05ec63b3851f",
- "poussees": 24,
- "horizon": 360,
- "couloirs": 4,
- "precedences": 23,
- "separations": 15,
- "budget_ergol": 1670,
- "capacite_debit": 96
- },
- {
- "nom": "coursia-orbital-m12-s55",
- "empreinte_sha256": "aab6978371a29600c0da0f0e129cdcf80fd33426581b971de24db7555e2be35b",
- "poussees": 24,
- "horizon": 360,
- "couloirs": 4,
- "precedences": 23,
- "separations": 14,
- "budget_ergol": 1658,
- "capacite_debit": 95
- }
- ]
+{
+ "application": "Frontieres-08 — Ordonnancement d'assemblage orbital",
+ "distillation": {
+ "projet": "PrCon C4 — Orbital Assembly Scheduling",
+ "auteurs": [
+ "Gurvan Estable",
+ "Joris Bely",
+ "Kévin Lubert"
+ ],
+ "pull_request": 53,
+ "commit": "e9a751bc440f1063fa36582aab8b91eec3bdfd55",
+ "snapshot": "b5f3f0351dbd41f3a76f047cf02e9c93e81192f3",
+ "licence": "MIT",
+ "note": "Reproduction CoursIA independante. Aucun module, texte, cellule, figure ni sortie du rendu source n'est repris. Discretisation volontairement distincte : les grandeurs ne sont pas comparables."
+ },
+ "environnement": {
+ "python": "3.13.15",
+ "ortools": "9.15.6755",
+ "pandas": "3.0.5",
+ "matplotlib": "3.11.1",
+ "platform": "Windows-11-10.0.26300-SP0",
+ "slot_seconds": 900,
+ "dv_unit_mps": 5.0
+ },
+ "protocole": {
+ "grille": {
+ "tailles": [
+ 4,
+ 6,
+ 8,
+ 10,
+ 12
+ ],
+ "graines": [
+ 11,
+ 22,
+ 33,
+ 44,
+ 55
+ ],
+ "densite": 0.25,
+ "limite_s": 20.0
+ },
+ "sonde": {
+ "tailles": [
+ 16,
+ 32,
+ 64,
+ 90
+ ],
+ "graines": [
+ 11,
+ 22,
+ 33
+ ],
+ "densites": [
+ 0.25,
+ 0.6
+ ],
+ "limite_s": 10.0
+ },
+ "front": {
+ "cas": [
+ "m6-s11",
+ "m8-s22",
+ "m10-s44",
+ "m12-s33"
+ ],
+ "relachements": [
+ 0,
+ 2,
+ 4,
+ 6,
+ 8,
+ 10,
+ 12,
+ 14,
+ 16,
+ 18,
+ 20,
+ 22,
+ 24
+ ]
+ }
+ },
+ "instances": [
+ {
+ "nom": "coursia-orbital-m4-s11",
+ "empreinte_sha256": "b2ae490d346323412aeca6a637793c8c77045bcb05037f5ac1fdd24cad70ea99",
+ "poussees": 8,
+ "horizon": 184,
+ "couloirs": 2,
+ "precedences": 7,
+ "separations": 0,
+ "budget_ergol": 464,
+ "capacite_debit": 91
+ },
+ {
+ "nom": "coursia-orbital-m4-s22",
+ "empreinte_sha256": "076b3bd96a20933423bf9f8c8756342d2dacf4767fe7f1ce9af81287866f4b15",
+ "poussees": 8,
+ "horizon": 184,
+ "couloirs": 2,
+ "precedences": 7,
+ "separations": 1,
+ "budget_ergol": 478,
+ "capacite_debit": 93
+ },
+ {
+ "nom": "coursia-orbital-m4-s33",
+ "empreinte_sha256": "4a01cc08497d2f0e4814bf2079cd2742c57a7fee740e5e250b01b1b9b735834b",
+ "poussees": 8,
+ "horizon": 184,
+ "couloirs": 2,
+ "precedences": 7,
+ "separations": 1,
+ "budget_ergol": 475,
+ "capacite_debit": 94
+ },
+ {
+ "nom": "coursia-orbital-m4-s44",
+ "empreinte_sha256": "63929a1ca6a9e931ee2b7f834d120a22535998b6a5c184efffe8695ff461187c",
+ "poussees": 8,
+ "horizon": 184,
+ "couloirs": 2,
+ "precedences": 7,
+ "separations": 0,
+ "budget_ergol": 462,
+ "capacite_debit": 92
+ },
+ {
+ "nom": "coursia-orbital-m4-s55",
+ "empreinte_sha256": "8e3fb414ccb77fbd4cea9e9a589ad4638cca282947904fb2f77b1c4a03c1e47a",
+ "poussees": 8,
+ "horizon": 184,
+ "couloirs": 2,
+ "precedences": 7,
+ "separations": 2,
+ "budget_ergol": 461,
+ "capacite_debit": 92
+ },
+ {
+ "nom": "coursia-orbital-m6-s11",
+ "empreinte_sha256": "9561a6bad9f3485d526b01c678090c096f2679dbc7d0055b095462536dc1c6f2",
+ "poussees": 12,
+ "horizon": 228,
+ "couloirs": 2,
+ "precedences": 11,
+ "separations": 4,
+ "budget_ergol": 818,
+ "capacite_debit": 94
+ },
+ {
+ "nom": "coursia-orbital-m6-s22",
+ "empreinte_sha256": "80cfbce022aff265c67398dff0348b6e3cebdc59ba0e6d635ce41c8924fac7b7",
+ "poussees": 12,
+ "horizon": 228,
+ "couloirs": 2,
+ "precedences": 11,
+ "separations": 3,
+ "budget_ergol": 843,
+ "capacite_debit": 96
+ },
+ {
+ "nom": "coursia-orbital-m6-s33",
+ "empreinte_sha256": "0da7820663568a8de4e19a7143814ac913c9fcabc9d788ca46945a7f207b0128",
+ "poussees": 12,
+ "horizon": 228,
+ "couloirs": 2,
+ "precedences": 11,
+ "separations": 2,
+ "budget_ergol": 836,
+ "capacite_debit": 97
+ },
+ {
+ "nom": "coursia-orbital-m6-s44",
+ "empreinte_sha256": "5d0af050f1f29418cf48e7c9bbffa9d43c1e6321cdd4a4658f92745e8e828648",
+ "poussees": 12,
+ "horizon": 228,
+ "couloirs": 2,
+ "precedences": 11,
+ "separations": 0,
+ "budget_ergol": 825,
+ "capacite_debit": 95
+ },
+ {
+ "nom": "coursia-orbital-m6-s55",
+ "empreinte_sha256": "6adc1e6e279ccddb15dbdb379d740a424e21e815239a309abd579bc6bdb06ba4",
+ "poussees": 12,
+ "horizon": 228,
+ "couloirs": 2,
+ "precedences": 11,
+ "separations": 1,
+ "budget_ergol": 816,
+ "capacite_debit": 95
+ },
+ {
+ "nom": "coursia-orbital-m8-s11",
+ "empreinte_sha256": "29361dc8b6b78a6cd911140c4be6a0bb00fcb21eacbaf4d3bce8484dd9cb53fd",
+ "poussees": 16,
+ "horizon": 272,
+ "couloirs": 3,
+ "precedences": 15,
+ "separations": 5,
+ "budget_ergol": 1208,
+ "capacite_debit": 96
+ },
+ {
+ "nom": "coursia-orbital-m8-s22",
+ "empreinte_sha256": "3c2fd6cd73e7e5a52a16b8e99bc47e9cf620338dde91d8a3c8e35e9bc75b91e8",
+ "poussees": 16,
+ "horizon": 272,
+ "couloirs": 3,
+ "precedences": 15,
+ "separations": 3,
+ "budget_ergol": 1231,
+ "capacite_debit": 98
+ },
+ {
+ "nom": "coursia-orbital-m8-s33",
+ "empreinte_sha256": "22db3908f076aefd8f8a7a4cc2edec14603e42d9dc29e80816f471873013011a",
+ "poussees": 16,
+ "horizon": 272,
+ "couloirs": 3,
+ "precedences": 15,
+ "separations": 6,
+ "budget_ergol": 1228,
+ "capacite_debit": 99
+ },
+ {
+ "nom": "coursia-orbital-m8-s44",
+ "empreinte_sha256": "42e8790ce236a2877b902bcf9a7afc7ca1960836147aa0210cb5b899984ac8fc",
+ "poussees": 16,
+ "horizon": 272,
+ "couloirs": 3,
+ "precedences": 15,
+ "separations": 8,
+ "budget_ergol": 1214,
+ "capacite_debit": 97
+ },
+ {
+ "nom": "coursia-orbital-m8-s55",
+ "empreinte_sha256": "33df73e03efc0780e39775c518538df45fa980d38d7d58a1fd23a679132ff574",
+ "poussees": 16,
+ "horizon": 272,
+ "couloirs": 3,
+ "precedences": 15,
+ "separations": 5,
+ "budget_ergol": 1203,
+ "capacite_debit": 97
+ },
+ {
+ "nom": "coursia-orbital-m10-s11",
+ "empreinte_sha256": "da1baffdf3d2000a84a974386f8638bb73c69d56254de6e5143048a862dbf460",
+ "poussees": 20,
+ "horizon": 316,
+ "couloirs": 4,
+ "precedences": 19,
+ "separations": 9,
+ "budget_ergol": 1291,
+ "capacite_debit": 93
+ },
+ {
+ "nom": "coursia-orbital-m10-s22",
+ "empreinte_sha256": "e5a1544da80e6863c12e183402ef6f23ee4278dc88d7234624d432ee246de5b7",
+ "poussees": 20,
+ "horizon": 316,
+ "couloirs": 4,
+ "precedences": 19,
+ "separations": 12,
+ "budget_ergol": 1318,
+ "capacite_debit": 95
+ },
+ {
+ "nom": "coursia-orbital-m10-s33",
+ "empreinte_sha256": "22a14292de4032809a76da940343178657e34ae85c35f4c4557ddf73a38e0ce7",
+ "poussees": 20,
+ "horizon": 316,
+ "couloirs": 4,
+ "precedences": 19,
+ "separations": 6,
+ "budget_ergol": 1305,
+ "capacite_debit": 95
+ },
+ {
+ "nom": "coursia-orbital-m10-s44",
+ "empreinte_sha256": "f051cd599c24471a6ac28b27f65e608405cb1871d534bc7256a7211e9b85eb08",
+ "poussees": 20,
+ "horizon": 316,
+ "couloirs": 4,
+ "precedences": 19,
+ "separations": 11,
+ "budget_ergol": 1302,
+ "capacite_debit": 94
+ },
+ {
+ "nom": "coursia-orbital-m10-s55",
+ "empreinte_sha256": "57e93d6ec26298973663f057ea717bc84ee1e60814459ca05142fb699153d91d",
+ "poussees": 20,
+ "horizon": 316,
+ "couloirs": 4,
+ "precedences": 19,
+ "separations": 9,
+ "budget_ergol": 1297,
+ "capacite_debit": 94
+ },
+ {
+ "nom": "coursia-orbital-m12-s11",
+ "empreinte_sha256": "d403e0e32448c7c0f8345d9ba9d06f4fd82021ebd5dade213e696cba935eb9e0",
+ "poussees": 24,
+ "horizon": 360,
+ "couloirs": 4,
+ "precedences": 23,
+ "separations": 12,
+ "budget_ergol": 1657,
+ "capacite_debit": 94
+ },
+ {
+ "nom": "coursia-orbital-m12-s22",
+ "empreinte_sha256": "5a92c1051bba9e3b1eb730c59a7c95abddec0b48d3e04a94f651eba2469c67b7",
+ "poussees": 24,
+ "horizon": 360,
+ "couloirs": 4,
+ "precedences": 23,
+ "separations": 7,
+ "budget_ergol": 1673,
+ "capacite_debit": 96
+ },
+ {
+ "nom": "coursia-orbital-m12-s33",
+ "empreinte_sha256": "6dbd5ce52666769a27531ec1fe2feb99da8b7002a531569f5a2d38c036b34260",
+ "poussees": 24,
+ "horizon": 360,
+ "couloirs": 4,
+ "precedences": 23,
+ "separations": 15,
+ "budget_ergol": 1661,
+ "capacite_debit": 96
+ },
+ {
+ "nom": "coursia-orbital-m12-s44",
+ "empreinte_sha256": "fe770305c6fb5715bfe89a3a45b5b4f6148d5212a52a22c72ccc05ec63b3851f",
+ "poussees": 24,
+ "horizon": 360,
+ "couloirs": 4,
+ "precedences": 23,
+ "separations": 15,
+ "budget_ergol": 1670,
+ "capacite_debit": 96
+ },
+ {
+ "nom": "coursia-orbital-m12-s55",
+ "empreinte_sha256": "aab6978371a29600c0da0f0e129cdcf80fd33426581b971de24db7555e2be35b",
+ "poussees": 24,
+ "horizon": 360,
+ "couloirs": 4,
+ "precedences": 23,
+ "separations": 14,
+ "budget_ergol": 1658,
+ "capacite_debit": 95
+ }
+ ]
}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/LICENSE b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/LICENSE
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/LICENSE
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/LICENSE
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/SOURCE.md
similarity index 98%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/SOURCE.md
index 3f4762cf10..36a6fc0dd4 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/SOURCE.md
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/SOURCE.md
@@ -53,7 +53,7 @@ Le notebook exécuté produit :
Commande de reproduction depuis la racine CoursIA :
```powershell
-python scripts/notebook_tools/notebook_tools.py execute MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb --timeout 900 --verbose
+python scripts/notebook_tools/notebook_tools.py execute MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb --timeout 900 --verbose
```
## Instances PSPLIB : observées, non redistribuées
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/bounds_ladder.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/bounds_ladder.json
similarity index 89%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/bounds_ladder.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/bounds_ladder.json
index a87a577316..536aa0c295 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/bounds_ladder.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/bounds_ladder.json
@@ -1,269 +1,269 @@
-{
- "definition": {
- "chemin_critique": "plus long chemin, ressources ignorees",
- "borne_charge": "max_r plafond(travail total sur r / capacite de r), precedences ignorees",
- "borne_combinee": "max des deux ; borne inferieure valide sans reference externe"
- },
- "instances": [
- {
- "chemin_critique": 12,
- "borne_charge": 34,
- "borne_combinee": 34,
- "borne_solveur": 40,
- "makespan": 40,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 17.6,
- "borne_active": "charge",
- "secondes": 0.566,
- "densite": 0.1,
- "graine": 0
- },
- {
- "chemin_critique": 11,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 34,
- "makespan": 34,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 9.7,
- "borne_active": "charge",
- "secondes": 0.046,
- "densite": 0.1,
- "graine": 1
- },
- {
- "chemin_critique": 13,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 38,
- "makespan": 38,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 22.6,
- "borne_active": "charge",
- "secondes": 0.065,
- "densite": 0.1,
- "graine": 2
- },
- {
- "chemin_critique": 13,
- "borne_charge": 29,
- "borne_combinee": 29,
- "borne_solveur": 40,
- "makespan": 40,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 37.9,
- "borne_active": "charge",
- "secondes": 1.965,
- "densite": 0.1,
- "graine": 3
- },
- {
- "chemin_critique": 20,
- "borne_charge": 34,
- "borne_combinee": 34,
- "borne_solveur": 40,
- "makespan": 40,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 17.6,
- "borne_active": "charge",
- "secondes": 0.036,
- "densite": 0.18,
- "graine": 0
- },
- {
- "chemin_critique": 12,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 36,
- "makespan": 36,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 16.1,
- "borne_active": "charge",
- "secondes": 0.398,
- "densite": 0.18,
- "graine": 1
- },
- {
- "chemin_critique": 20,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 38,
- "makespan": 38,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 22.6,
- "borne_active": "charge",
- "secondes": 0.029,
- "densite": 0.18,
- "graine": 2
- },
- {
- "chemin_critique": 20,
- "borne_charge": 29,
- "borne_combinee": 29,
- "borne_solveur": 43,
- "makespan": 43,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 48.3,
- "borne_active": "charge",
- "secondes": 0.581,
- "densite": 0.18,
- "graine": 3
- },
- {
- "chemin_critique": 25,
- "borne_charge": 34,
- "borne_combinee": 34,
- "borne_solveur": 41,
- "makespan": 41,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 20.6,
- "borne_active": "charge",
- "secondes": 0.028,
- "densite": 0.28,
- "graine": 0
- },
- {
- "chemin_critique": 13,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 37,
- "makespan": 37,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 19.4,
- "borne_active": "charge",
- "secondes": 0.098,
- "densite": 0.28,
- "graine": 1
- },
- {
- "chemin_critique": 26,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 39,
- "makespan": 39,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 25.8,
- "borne_active": "charge",
- "secondes": 0.03,
- "densite": 0.28,
- "graine": 2
- },
- {
- "chemin_critique": 22,
- "borne_charge": 29,
- "borne_combinee": 29,
- "borne_solveur": 43,
- "makespan": 43,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 48.3,
- "borne_active": "charge",
- "secondes": 0.216,
- "densite": 0.28,
- "graine": 3
- },
- {
- "chemin_critique": 29,
- "borne_charge": 34,
- "borne_combinee": 34,
- "borne_solveur": 43,
- "makespan": 43,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 26.5,
- "borne_active": "charge",
- "secondes": 0.028,
- "densite": 0.4,
- "graine": 0
- },
- {
- "chemin_critique": 20,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 37,
- "makespan": 37,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 19.4,
- "borne_active": "charge",
- "secondes": 0.029,
- "densite": 0.4,
- "graine": 1
- },
- {
- "chemin_critique": 26,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 42,
- "makespan": 42,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 35.5,
- "borne_active": "charge",
- "secondes": 0.031,
- "densite": 0.4,
- "graine": 2
- },
- {
- "chemin_critique": 33,
- "borne_charge": 29,
- "borne_combinee": 33,
- "borne_solveur": 48,
- "makespan": 48,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 45.5,
- "borne_active": "chemin critique",
- "secondes": 0.038,
- "densite": 0.4,
- "graine": 3
- },
- {
- "chemin_critique": 39,
- "borne_charge": 34,
- "borne_combinee": 39,
- "borne_solveur": 45,
- "makespan": 45,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 15.4,
- "borne_active": "chemin critique",
- "secondes": 0.028,
- "densite": 0.55,
- "graine": 0
- },
- {
- "chemin_critique": 30,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 41,
- "makespan": 41,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 32.3,
- "borne_active": "charge",
- "secondes": 0.014,
- "densite": 0.55,
- "graine": 1
- },
- {
- "chemin_critique": 27,
- "borne_charge": 31,
- "borne_combinee": 31,
- "borne_solveur": 42,
- "makespan": 42,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 35.5,
- "borne_active": "charge",
- "secondes": 0.03,
- "densite": 0.55,
- "graine": 2
- },
- {
- "chemin_critique": 41,
- "borne_charge": 29,
- "borne_combinee": 41,
- "borne_solveur": 48,
- "makespan": 48,
- "statut": "OPTIMAL",
- "ecart_borne_combinee_pct": 17.1,
- "borne_active": "chemin critique",
- "secondes": 0.017,
- "densite": 0.55,
- "graine": 3
- }
- ]
+{
+ "definition": {
+ "chemin_critique": "plus long chemin, ressources ignorees",
+ "borne_charge": "max_r plafond(travail total sur r / capacite de r), precedences ignorees",
+ "borne_combinee": "max des deux ; borne inferieure valide sans reference externe"
+ },
+ "instances": [
+ {
+ "chemin_critique": 12,
+ "borne_charge": 34,
+ "borne_combinee": 34,
+ "borne_solveur": 40,
+ "makespan": 40,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 17.6,
+ "borne_active": "charge",
+ "secondes": 1.26,
+ "densite": 0.1,
+ "graine": 0
+ },
+ {
+ "chemin_critique": 11,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 34,
+ "makespan": 34,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 9.7,
+ "borne_active": "charge",
+ "secondes": 0.091,
+ "densite": 0.1,
+ "graine": 1
+ },
+ {
+ "chemin_critique": 13,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 38,
+ "makespan": 38,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 22.6,
+ "borne_active": "charge",
+ "secondes": 0.126,
+ "densite": 0.1,
+ "graine": 2
+ },
+ {
+ "chemin_critique": 13,
+ "borne_charge": 29,
+ "borne_combinee": 29,
+ "borne_solveur": 40,
+ "makespan": 40,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 37.9,
+ "borne_active": "charge",
+ "secondes": 3.389,
+ "densite": 0.1,
+ "graine": 3
+ },
+ {
+ "chemin_critique": 20,
+ "borne_charge": 34,
+ "borne_combinee": 34,
+ "borne_solveur": 40,
+ "makespan": 40,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 17.6,
+ "borne_active": "charge",
+ "secondes": 0.073,
+ "densite": 0.18,
+ "graine": 0
+ },
+ {
+ "chemin_critique": 12,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 36,
+ "makespan": 36,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 16.1,
+ "borne_active": "charge",
+ "secondes": 0.491,
+ "densite": 0.18,
+ "graine": 1
+ },
+ {
+ "chemin_critique": 20,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 38,
+ "makespan": 38,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 22.6,
+ "borne_active": "charge",
+ "secondes": 0.041,
+ "densite": 0.18,
+ "graine": 2
+ },
+ {
+ "chemin_critique": 20,
+ "borne_charge": 29,
+ "borne_combinee": 29,
+ "borne_solveur": 43,
+ "makespan": 43,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 48.3,
+ "borne_active": "charge",
+ "secondes": 1.099,
+ "densite": 0.18,
+ "graine": 3
+ },
+ {
+ "chemin_critique": 25,
+ "borne_charge": 34,
+ "borne_combinee": 34,
+ "borne_solveur": 41,
+ "makespan": 41,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 20.6,
+ "borne_active": "charge",
+ "secondes": 0.034,
+ "densite": 0.28,
+ "graine": 0
+ },
+ {
+ "chemin_critique": 13,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 37,
+ "makespan": 37,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 19.4,
+ "borne_active": "charge",
+ "secondes": 0.151,
+ "densite": 0.28,
+ "graine": 1
+ },
+ {
+ "chemin_critique": 26,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 39,
+ "makespan": 39,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 25.8,
+ "borne_active": "charge",
+ "secondes": 0.035,
+ "densite": 0.28,
+ "graine": 2
+ },
+ {
+ "chemin_critique": 22,
+ "borne_charge": 29,
+ "borne_combinee": 29,
+ "borne_solveur": 43,
+ "makespan": 43,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 48.3,
+ "borne_active": "charge",
+ "secondes": 0.395,
+ "densite": 0.28,
+ "graine": 3
+ },
+ {
+ "chemin_critique": 29,
+ "borne_charge": 34,
+ "borne_combinee": 34,
+ "borne_solveur": 43,
+ "makespan": 43,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 26.5,
+ "borne_active": "charge",
+ "secondes": 0.028,
+ "densite": 0.4,
+ "graine": 0
+ },
+ {
+ "chemin_critique": 20,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 37,
+ "makespan": 37,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 19.4,
+ "borne_active": "charge",
+ "secondes": 0.033,
+ "densite": 0.4,
+ "graine": 1
+ },
+ {
+ "chemin_critique": 26,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 42,
+ "makespan": 42,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 35.5,
+ "borne_active": "charge",
+ "secondes": 0.032,
+ "densite": 0.4,
+ "graine": 2
+ },
+ {
+ "chemin_critique": 33,
+ "borne_charge": 29,
+ "borne_combinee": 33,
+ "borne_solveur": 48,
+ "makespan": 48,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 45.5,
+ "borne_active": "chemin critique",
+ "secondes": 0.031,
+ "densite": 0.4,
+ "graine": 3
+ },
+ {
+ "chemin_critique": 39,
+ "borne_charge": 34,
+ "borne_combinee": 39,
+ "borne_solveur": 45,
+ "makespan": 45,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 15.4,
+ "borne_active": "chemin critique",
+ "secondes": 0.033,
+ "densite": 0.55,
+ "graine": 0
+ },
+ {
+ "chemin_critique": 30,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 41,
+ "makespan": 41,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 32.3,
+ "borne_active": "charge",
+ "secondes": 0.015,
+ "densite": 0.55,
+ "graine": 1
+ },
+ {
+ "chemin_critique": 27,
+ "borne_charge": 31,
+ "borne_combinee": 31,
+ "borne_solveur": 42,
+ "makespan": 42,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 35.5,
+ "borne_active": "charge",
+ "secondes": 0.033,
+ "densite": 0.55,
+ "graine": 2
+ },
+ {
+ "chemin_critique": 41,
+ "borne_charge": 29,
+ "borne_combinee": 41,
+ "borne_solveur": 48,
+ "makespan": 48,
+ "statut": "OPTIMAL",
+ "ecart_borne_combinee_pct": 17.1,
+ "borne_active": "chemin critique",
+ "secondes": 0.028,
+ "densite": 0.55,
+ "graine": 3
+ }
+ ]
}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/provenance.json b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/provenance.json
similarity index 92%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/provenance.json
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/provenance.json
index 66c9cdf651..08a06f6dd5 100644
--- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app31-rcpsp-max/provenance.json
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/provenance.json
@@ -1,106 +1,106 @@
-{
- "notebook": "App-31-RCPSP-Max-Feasibility-Bounds",
- "objet": "RCPSP/max : faisabilite, circuits de poids positif, hierarchie de bornes",
- "source_distillee": {
- "auteurs": [
- "Arthur Gallier",
- "Nicolas Naegelen"
- ],
- "projet": "B4 - Ordonnancement industriel",
- "pull_request": 51,
- "commit": "8b91a736",
- "snapshot": "b5f3f0351dbd41f3a76f047cf02e9c93e81192f3",
- "licence": "MIT"
- },
- "environnement": {
- "python": "3.13.14",
- "platform": "Windows",
- "ortools": "9.15.6755",
- "numpy": "2.4.4",
- "pandas": "2.3.3"
- },
- "instances": "generees dans le notebook avec des graines fixes ; aucune instance externe redistribuee",
- "observations_psplib": [
- {
- "instance": "j30/j3010_1",
- "sha256_16": "4fae4197791f2ee8",
- "chemin_critique": 41,
- "optimum_recalcule": 42,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.06
- },
- {
- "instance": "j30/j3010_10",
- "sha256_16": "5b704056bfd6531d",
- "chemin_critique": 37,
- "optimum_recalcule": 41,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.05
- },
- {
- "instance": "j30/j3010_2",
- "sha256_16": "108f260686ec9353",
- "chemin_critique": 52,
- "optimum_recalcule": 56,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.04
- },
- {
- "instance": "j30/j3010_3",
- "sha256_16": "de28125e10ed4379",
- "chemin_critique": 61,
- "optimum_recalcule": 62,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.03
- },
- {
- "instance": "j30/j3010_4",
- "sha256_16": "5526e62c26ae880e",
- "chemin_critique": 53,
- "optimum_recalcule": 58,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.05
- },
- {
- "instance": "j60/j6010_1",
- "sha256_16": "9c400697268fac68",
- "chemin_critique": 85,
- "optimum_recalcule": 85,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.05
- },
- {
- "instance": "j60/j6010_10",
- "sha256_16": "11793a5c0a25c3a1",
- "chemin_critique": 73,
- "optimum_recalcule": 73,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.04
- },
- {
- "instance": "j60/j6010_2",
- "sha256_16": "bd14308ea049193b",
- "chemin_critique": 62,
- "optimum_recalcule": 62,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.04
- },
- {
- "instance": "j120/j12010_1",
- "sha256_16": "99dd309553f879c2",
- "chemin_critique": 111,
- "optimum_recalcule": 111,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.07
- },
- {
- "instance": "j120/j12010_10",
- "sha256_16": "6620267bb213583b",
- "chemin_critique": 66,
- "optimum_recalcule": 66,
- "statut": "OPTIMAL",
- "temps_verification_s": 0.08
- }
- ],
- "verification_source": "les 10 makespans publies par le banc d'essai source ont ete recalcules avec un modele independant : les 10 concordent, tous OPTIMAL"
+{
+ "notebook": "Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python",
+ "objet": "RCPSP/max : faisabilite, circuits de poids positif, hierarchie de bornes",
+ "source_distillee": {
+ "auteurs": [
+ "Arthur Gallier",
+ "Nicolas Naegelen"
+ ],
+ "projet": "B4 - Ordonnancement industriel",
+ "pull_request": 51,
+ "commit": "8b91a736",
+ "snapshot": "b5f3f0351dbd41f3a76f047cf02e9c93e81192f3",
+ "licence": "MIT"
+ },
+ "environnement": {
+ "python": "3.13.15",
+ "platform": "Windows",
+ "ortools": "9.15.6755",
+ "numpy": "2.4.6",
+ "pandas": "3.0.5"
+ },
+ "instances": "generees dans le notebook avec des graines fixes ; aucune instance externe redistribuee",
+ "observations_psplib": [
+ {
+ "instance": "j30/j3010_1",
+ "sha256_16": "4fae4197791f2ee8",
+ "chemin_critique": 41,
+ "optimum_recalcule": 42,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.06
+ },
+ {
+ "instance": "j30/j3010_10",
+ "sha256_16": "5b704056bfd6531d",
+ "chemin_critique": 37,
+ "optimum_recalcule": 41,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.05
+ },
+ {
+ "instance": "j30/j3010_2",
+ "sha256_16": "108f260686ec9353",
+ "chemin_critique": 52,
+ "optimum_recalcule": 56,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.04
+ },
+ {
+ "instance": "j30/j3010_3",
+ "sha256_16": "de28125e10ed4379",
+ "chemin_critique": 61,
+ "optimum_recalcule": 62,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.03
+ },
+ {
+ "instance": "j30/j3010_4",
+ "sha256_16": "5526e62c26ae880e",
+ "chemin_critique": 53,
+ "optimum_recalcule": 58,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.05
+ },
+ {
+ "instance": "j60/j6010_1",
+ "sha256_16": "9c400697268fac68",
+ "chemin_critique": 85,
+ "optimum_recalcule": 85,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.05
+ },
+ {
+ "instance": "j60/j6010_10",
+ "sha256_16": "11793a5c0a25c3a1",
+ "chemin_critique": 73,
+ "optimum_recalcule": 73,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.04
+ },
+ {
+ "instance": "j60/j6010_2",
+ "sha256_16": "bd14308ea049193b",
+ "chemin_critique": 62,
+ "optimum_recalcule": 62,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.04
+ },
+ {
+ "instance": "j120/j12010_1",
+ "sha256_16": "99dd309553f879c2",
+ "chemin_critique": 111,
+ "optimum_recalcule": 111,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.07
+ },
+ {
+ "instance": "j120/j12010_10",
+ "sha256_16": "6620267bb213583b",
+ "chemin_critique": 66,
+ "optimum_recalcule": 66,
+ "statut": "OPTIMAL",
+ "temps_verification_s": 0.08
+ }
+ ],
+ "verification_source": "les 10 makespans publies par le banc d'essai source ont ete recalcules avec un modele independant : les 10 concordent, tous OPTIMAL"
}
\ No newline at end of file
diff --git a/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/temporal_regimes.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/temporal_regimes.csv
new file mode 100644
index 0000000000..b2437d3360
--- /dev/null
+++ b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app31-rcpsp-max/temporal_regimes.csv
@@ -0,0 +1,217 @@
+jeu,graine,lags,regime,statut,makespan,secondes,temoin
+-3,0,6,T,circuit positif,,0.0,8-10-8
+-3,1,12,T,circuit positif,,0.0,10-11-10
+-3,2,8,T,circuit positif,,0.0,10-13-10
+-3,3,12,T,circuit positif,,0.0,7-10-7
+-3,4,13,T,circuit positif,,0.0,10-11-10
+-3,5,13,T,circuit positif,,0.0,10-13-10
+-3,6,13,T,circuit positif,,0.0,11-12-11
+-3,7,13,T,circuit positif,,0.0,6-11-6
+-3,8,17,T,circuit positif,,0.0,8-12-8
+-3,9,19,T,circuit positif,,0.0,11-13-11
+-3,10,13,T,circuit positif,,0.0,8-9-8
+-3,11,21,T,circuit positif,,0.0,11-13-11
+-3,12,17,T,circuit positif,,0.0,12-13-11-12
+-3,13,15,T,circuit positif,,0.0,7-8-7
+-3,14,11,T,circuit positif,,0.0,9-11-9
+-3,15,14,T,circuit positif,,0.0,9-11-9
+-3,16,21,T,circuit positif,,0.0,10-9-10
+-3,17,12,T,circuit positif,,0.0,7-13-7
+-3,18,14,T,circuit positif,,0.0,10-12-10
+-3,19,17,T,circuit positif,,0.0,8-9-8
+-3,20,18,T,circuit positif,,0.0,8-6-8
+-3,21,13,T,circuit positif,,0.0,8-12-8
+-3,22,10,T,circuit positif,,0.0,10-13-10
+-3,23,13,T,circuit positif,,0.0,8-11-8
+-2,0,6,T,circuit positif,,0.0,8-10-8
+-2,1,12,T,circuit positif,,0.0,10-11-10
+-2,2,8,T,circuit positif,,0.0,10-13-10
+-2,3,12,T,circuit positif,,0.0,7-10-7
+-2,4,13,T,circuit positif,,0.0,10-11-10
+-2,5,13,T,circuit positif,,0.0,10-13-10
+-2,6,13,T,circuit positif,,0.0,11-12-11
+-2,7,13,T,circuit positif,,0.0,6-11-6
+-2,8,17,T,circuit positif,,0.0,8-12-8
+-2,9,19,T,circuit positif,,0.0,11-13-11
+-2,10,13,T,circuit positif,,0.0,8-9-8
+-2,11,21,T,circuit positif,,0.0,11-13-11
+-2,12,17,T,circuit positif,,0.0,12-13-11-12
+-2,13,15,T,circuit positif,,0.0,7-8-7
+-2,14,11,T,circuit positif,,0.0,9-11-9
+-2,15,14,T,circuit positif,,0.0,9-11-9
+-2,16,21,T,circuit positif,,0.0,10-9-10
+-2,17,12,T,circuit positif,,0.0,7-13-7
+-2,18,14,T,circuit positif,,0.0,10-12-10
+-2,19,17,T,circuit positif,,0.0,8-9-8
+-2,20,18,T,circuit positif,,0.0,8-6-8
+-2,21,13,T,circuit positif,,0.0,8-12-8
+-2,22,10,T,circuit positif,,0.0,10-13-10
+-2,23,13,T,circuit positif,,0.0,8-11-8
+-1,0,6,T,circuit positif,,0.0,8-10-8
+-1,1,12,T,circuit positif,,0.0,10-11-10
+-1,2,8,T,circuit positif,,0.0,10-13-10
+-1,3,12,T,circuit positif,,0.0,7-10-7
+-1,4,13,T,circuit positif,,0.0,10-11-10
+-1,5,13,T,circuit positif,,0.0,10-13-10
+-1,6,13,T,circuit positif,,0.0,11-12-11
+-1,7,13,T,circuit positif,,0.0,6-11-6
+-1,8,17,T,circuit positif,,0.0,8-12-8
+-1,9,19,T,circuit positif,,0.0,11-13-11
+-1,10,13,T,circuit positif,,0.0,8-9-8
+-1,11,21,T,circuit positif,,0.0,11-13-11
+-1,12,17,T,circuit positif,,0.0,12-13-11-12
+-1,13,15,T,circuit positif,,0.0,7-8-7
+-1,14,11,T,circuit positif,,0.0,9-11-9
+-1,15,14,T,circuit positif,,0.0,9-11-9
+-1,16,21,T,circuit positif,,0.0,10-9-10
+-1,17,12,T,circuit positif,,0.0,7-13-7
+-1,18,14,T,circuit positif,,0.0,10-12-10
+-1,19,17,T,circuit positif,,0.0,8-9-8
+-1,20,18,T,circuit positif,,0.0,8-6-8
+-1,21,13,T,circuit positif,,0.0,8-12-8
+-1,22,10,T,circuit positif,,0.0,10-13-10
+-1,23,13,T,circuit positif,,0.0,8-11-8
+0,0,6,R,INFEASIBLE,,0.007024200051091611,
+0,1,12,R,INFEASIBLE,,0.00323300005402416,
+0,2,8,R,INFEASIBLE,,0.004088000045157969,
+0,3,12,R,INFEASIBLE,,0.0036551000084728003,
+0,4,13,R,INFEASIBLE,,0.0036200000322423875,
+0,5,13,R,INFEASIBLE,,0.005301000026520342,
+0,6,13,R,INFEASIBLE,,0.00437370000872761,
+0,7,13,R,INFEASIBLE,,0.00381209998158738,
+0,8,17,R,INFEASIBLE,,0.00419289997080341,
+0,9,19,R,INFEASIBLE,,0.03844279999611899,
+0,10,13,R,INFEASIBLE,,0.003969000012148172,
+0,11,21,R,INFEASIBLE,,0.00432040001032874,
+0,12,17,R,INFEASIBLE,,0.0059290999779477715,
+0,13,15,R,INFEASIBLE,,0.0034611999872140586,
+0,14,11,R,INFEASIBLE,,0.003710299963131547,
+0,15,14,R,INFEASIBLE,,0.006407500011846423,
+0,16,21,R,INFEASIBLE,,0.004005800001323223,
+0,17,12,R,INFEASIBLE,,0.0039046999881975353,
+0,18,14,R,INFEASIBLE,,0.0035075999912805855,
+0,19,17,R,INFEASIBLE,,0.003600900003220886,
+0,20,18,R,INFEASIBLE,,0.004145599959883839,
+0,21,13,R,INFEASIBLE,,0.0042999000288546085,
+0,22,10,R,INFEASIBLE,,0.04301810002652928,
+0,23,13,R,INFEASIBLE,,0.00470420002238825,
+1,0,6,R,INFEASIBLE,,0.005122300004586577,
+1,1,12,R,INFEASIBLE,,0.004711700021289289,
+1,2,8,R,INFEASIBLE,,0.030298000026959926,
+1,3,12,R,INFEASIBLE,,0.007173600024543703,
+1,4,13,R,INFEASIBLE,,0.007763399975374341,
+1,5,13,R,INFEASIBLE,,0.261250400042627,
+1,6,13,R,INFEASIBLE,,0.013908300024922937,
+1,7,13,F,OPTIMAL,26.0,0.029320300032850355,
+1,8,17,R,INFEASIBLE,,0.004020300053525716,
+1,9,19,R,INFEASIBLE,,0.04701729997759685,
+1,10,13,R,INFEASIBLE,,0.005067999998573214,
+1,11,21,R,INFEASIBLE,,0.006163800018839538,
+1,12,17,R,INFEASIBLE,,0.005615600035525858,
+1,13,15,R,INFEASIBLE,,0.00347440002951771,
+1,14,11,R,INFEASIBLE,,0.0045205000205896795,
+1,15,14,R,INFEASIBLE,,0.027531800034921616,
+1,16,21,R,INFEASIBLE,,0.0034759000409394503,
+1,17,12,R,INFEASIBLE,,0.002952000009827316,
+1,18,14,R,INFEASIBLE,,0.0032524000271223485,
+1,19,17,R,INFEASIBLE,,0.006434200040530413,
+1,20,18,R,INFEASIBLE,,0.006072600022889674,
+1,21,13,R,INFEASIBLE,,0.006592500023543835,
+1,22,10,R,INFEASIBLE,,0.02596350002568215,
+1,23,13,R,INFEASIBLE,,0.005508600035682321,
+2,0,6,F,OPTIMAL,41.0,0.03422649996355176,
+2,1,12,R,INFEASIBLE,,0.02121779997833073,
+2,2,8,R,INFEASIBLE,,0.03522999997949228,
+2,3,12,R,INFEASIBLE,,0.003945899952668697,
+2,4,13,R,INFEASIBLE,,0.0034842999884858727,
+2,5,13,R,INFEASIBLE,,0.1661735000088811,
+2,6,13,R,INFEASIBLE,,0.004293299978598952,
+2,7,13,F,OPTIMAL,26.0,0.029198800039011985,
+2,8,17,R,INFEASIBLE,,0.003679599962197244,
+2,9,19,R,INFEASIBLE,,0.057362399995326996,
+2,10,13,R,INFEASIBLE,,0.005917200003750622,
+2,11,21,R,INFEASIBLE,,0.005469100025948137,
+2,12,17,R,INFEASIBLE,,0.03006909997202456,
+2,13,15,R,INFEASIBLE,,0.003497099969536066,
+2,14,11,R,INFEASIBLE,,0.003865300037432462,
+2,15,14,R,INFEASIBLE,,0.04476829996565357,
+2,16,21,R,INFEASIBLE,,0.0045427000150084496,
+2,17,12,R,INFEASIBLE,,0.00375890004215762,
+2,18,14,R,INFEASIBLE,,0.004455899994354695,
+2,19,17,R,INFEASIBLE,,0.0043756000231951475,
+2,20,18,R,INFEASIBLE,,0.0033514000242576003,
+2,21,13,R,INFEASIBLE,,0.003993299964349717,
+2,22,10,R,INFEASIBLE,,0.03310240001883358,
+2,23,13,R,INFEASIBLE,,0.004635399964172393,
+3,0,6,F,OPTIMAL,41.0,0.02761559997452423,
+3,1,12,R,INFEASIBLE,,0.02829409996047616,
+3,2,8,R,INFEASIBLE,,0.035245200037024915,
+3,3,12,R,INFEASIBLE,,0.004259300010744482,
+3,4,13,R,INFEASIBLE,,0.024465300026349723,
+3,5,13,R,INFEASIBLE,,0.03348320000804961,
+3,6,13,R,INFEASIBLE,,0.00484930002130568,
+3,7,13,F,OPTIMAL,26.0,0.023408200009725988,
+3,8,17,R,INFEASIBLE,,0.003952300001401454,
+3,9,19,R,INFEASIBLE,,0.05896170000778511,
+3,10,13,R,INFEASIBLE,,0.18464370002038777,
+3,11,21,R,INFEASIBLE,,0.00438699999358505,
+3,12,17,R,INFEASIBLE,,0.02496490004705265,
+3,13,15,R,INFEASIBLE,,0.004014400008600205,
+3,14,11,R,INFEASIBLE,,0.004887700022663921,
+3,15,14,R,INFEASIBLE,,0.051876400015316904,
+3,16,21,R,INFEASIBLE,,0.0060940999537706375,
+3,17,12,R,INFEASIBLE,,0.004151300003286451,
+3,18,14,R,INFEASIBLE,,0.004973899980541319,
+3,19,17,R,INFEASIBLE,,0.047570599999744445,
+3,20,18,R,INFEASIBLE,,0.006011199962813407,
+3,21,13,R,INFEASIBLE,,0.006615900027099997,
+3,22,10,R,INFEASIBLE,,0.029884800023864955,
+3,23,13,R,INFEASIBLE,,0.003890399995725602,
+5,0,6,F,OPTIMAL,41.0,0.028083099983632565,
+5,1,12,R,INFEASIBLE,,0.06897979998029768,
+5,2,8,F,OPTIMAL,34.0,0.02777879999484867,
+5,3,12,R,INFEASIBLE,,0.004439999989699572,
+5,4,13,R,INFEASIBLE,,0.05862379999598488,
+5,5,13,R,INFEASIBLE,,0.032677699986379594,
+5,6,13,F,OPTIMAL,37.0,0.03403219999745488,
+5,7,13,F,OPTIMAL,25.0,0.029363400011789054,
+5,8,17,R,INFEASIBLE,,0.18126559996744618,
+5,9,19,R,INFEASIBLE,,0.11825060000410303,
+5,10,13,R,INFEASIBLE,,0.048656500002834946,
+5,11,21,R,INFEASIBLE,,0.005099800007883459,
+5,12,17,R,INFEASIBLE,,0.042008599964901805,
+5,13,15,R,INFEASIBLE,,0.005863900005351752,
+5,14,11,R,INFEASIBLE,,0.18576140003278852,
+5,15,14,R,INFEASIBLE,,0.2720096000120975,
+5,16,21,R,INFEASIBLE,,0.07830699998885393,
+5,17,12,R,INFEASIBLE,,0.005884800048079342,
+5,18,14,R,INFEASIBLE,,0.02475919999415055,
+5,19,17,F,OPTIMAL,35.0,0.029600400011986494,
+5,20,18,R,INFEASIBLE,,0.004792499996256083,
+5,21,13,R,INFEASIBLE,,0.03069579997099936,
+5,22,10,R,INFEASIBLE,,0.19301630003610626,
+5,23,13,R,INFEASIBLE,,0.035261700046248734,
+8,0,6,F,OPTIMAL,40.0,0.04883799998788163,
+8,1,12,F,OPTIMAL,36.0,0.03129399998579174,
+8,2,8,F,OPTIMAL,34.0,0.03466100001242012,
+8,3,12,R,INFEASIBLE,,0.030428900034166873,
+8,4,13,F,OPTIMAL,32.0,0.032388599996920675,
+8,5,13,F,OPTIMAL,42.0,0.02999489998910576,
+8,6,13,F,OPTIMAL,33.0,0.04225860000588,
+8,7,13,F,OPTIMAL,23.0,0.02418839995516464,
+8,8,17,F,OPTIMAL,32.0,0.03015939996112138,
+8,9,19,F,OPTIMAL,34.0,0.031720199971459806,
+8,10,13,F,OPTIMAL,36.0,0.02979509998112917,
+8,11,21,R,INFEASIBLE,,0.010792299988679588,
+8,12,17,F,OPTIMAL,40.0,0.032569300034083426,
+8,13,15,R,INFEASIBLE,,0.04807860002620146,
+8,14,11,F,OPTIMAL,35.0,0.028448699973523617,
+8,15,14,F,OPTIMAL,34.0,0.03514930000528693,
+8,16,21,F,OPTIMAL,41.0,0.022359599999617785,
+8,17,12,F,OPTIMAL,35.0,0.03161870001349598,
+8,18,14,F,OPTIMAL,38.0,0.03405190003104508,
+8,19,17,F,OPTIMAL,31.0,0.02947649999987334,
+8,20,18,F,OPTIMAL,37.0,0.031054000020958483,
+8,21,13,R,INFEASIBLE,,0.10111630003666505,
+8,22,10,F,OPTIMAL,32.0,0.02987069997470826,
+8,23,13,F,OPTIMAL,41.0,0.03128390002530068,
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app33-neural-diving/SOURCE.md b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app33-neural-diving/SOURCE.md
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app33-neural-diving/SOURCE.md
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app33-neural-diving/SOURCE.md
diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app33-neural-diving/diving_results.csv b/MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app33-neural-diving/diving_results.csv
similarity index 100%
rename from MyIA.AI.Notebooks/Search/Applications/Hybrid/data/app33-neural-diving/diving_results.csv
rename to MyIA.AI.Notebooks/Search/Part5-Frontieres/data/app33-neural-diving/diving_results.csv
diff --git a/MyIA.AI.Notebooks/Search/README.md b/MyIA.AI.Notebooks/Search/README.md
index 1fd8e08a80..b19c9f9d2e 100644
--- a/MyIA.AI.Notebooks/Search/README.md
+++ b/MyIA.AI.Notebooks/Search/README.md
@@ -147,7 +147,7 @@ Problèmes du monde réel adaptés de projets étudiants. Chaque application est
| 12 (C#) | [App-19-ProceduralGeneration-WFC-CSharp](Applications/CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb) | ~45 min | Twin C# du 12 : WFC from-scratch (entropie de Shannon + propagation AC-3 + backtracking) (See #4956) | Marathon |
| 13 | [App-20-SudokuBenchmark-Python](Applications/CSP/App-20-SudokuBenchmark-Python.html) | ~50 min | Benchmark 4 solveurs Sudoku (backtracking naïf → optimisé → contraintes) sur banc Easy/Medium/Hard : dénombrement du travail | Synthèse série |
| 13 (C#) | [App-20b-SudokuBenchmark-CSharp](Applications/CSP/App-20b-SudokuBenchmark-CSharp.html) | ~50 min | Twin C# du 13 : mêmes solveurs from-scratch en .NET, comparaison des écosystèmes | Jumeau .NET |
-| 16 | [App-26-CoveringArrays-Guarantee-Audit](Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb) | ~55 min | Covering Arrays : oracle constraint-aware, set cover CP-SAT exact, bornes et baselines IPOG/AETG-like — distillation PrCon H4 (Valérian Pichot) | Projet étudiant (PrCon PR #58) |
+| 16 | [Frontieres-05-CoveringArrays-Guarantee-Audit-Python](Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.html) | ~55 min | Covering Arrays : oracle constraint-aware, set cover CP-SAT exact, bornes et baselines IPOG/AETG-like — distillation PrCon H4 (Valérian Pichot) | Projet étudiant (PrCon PR #58) |
Les autres jumeaux C# de la sous-série CSP (N-Queens, GraphColoring, NurseScheduling, JobShop, Timetabling, Minesweeper, Wordle, MiniZinc, Picross, SportsScheduling) suivent le même principe : ré-implémentation .NET du notebook Python de référence, solveurs from-scratch ou OR-Tools natif selon le sujet (marathon #4956).
@@ -209,7 +209,7 @@ CSP-8 Temporal ───> Temporal Planning, STP
## Parité .NET ⇄ Python
-Cette série est née **Python d'abord** pour son cœur pédagogique (recherche, CSP, applications), avec la [Partie 4 — métaheuristiques composables](Part4-Metaheuristics/README.md) comme territoire .NET natif (au-dessus de MetaGeneticSharp). Le **marathon parité [EPIC #4956](https://github.com/jsboige/CoursIA/issues/4956)** (juin–juillet 2026) a ensuite généralisé le binôme `Python ⇄ C#` à l'ensemble du cœur curriculaire : jumeaux C# des fondements (Part 1), de la programmation par contraintes (Part 2), de la recherche heuristique avancée et de 20 cas d'application. Depuis, des compagnons et audits App-21 à App-31 ont porté le dossier Applications à 57 notebooks ; le tableau distingue donc le cœur en binômes de l'inventaire actuel.
+Cette série est née **Python d'abord** pour son cœur pédagogique (recherche, CSP, applications), avec la [Partie 4 — métaheuristiques composables](Part4-Metaheuristics/README.md) comme territoire .NET natif (au-dessus de MetaGeneticSharp). Le **marathon parité [EPIC #4956](https://github.com/jsboige/CoursIA/issues/4956)** (juin–juillet 2026) a ensuite généralisé le binôme `Python ⇄ C#` à l'ensemble du cœur curriculaire : jumeaux C# des fondements (Part 1), de la programmation par contraintes (Part 2), de la recherche heuristique avancée et de 20 cas d'application. Depuis, des compagnons et audits App-21 à App-33 ont enrichi le dossier Applications — la galerie pédagogique (App-21 à App-27) et les audits de garanties devenus la [Partie 5 — frontières](Part5-Frontieres/README.md) ; le tableau distingue donc le cœur en binômes de l'inventaire actuel, dont les volumes sont portés par le catalogue (`CATALOG-STATUS`).
### Couverture actuelle
@@ -219,7 +219,8 @@ Cette série est née **Python d'abord** pour son cœur pédagogique (recherche,
| [Discrepancy](Discrepancy/) | 2 (Discrepancy-01 Beck–Fiala, Discrepancy-02 Komlós) | Python + Lean 4 (kernel `lean4-wsl`) | Compagnons formels du lake [`discrepancy_lean`](discrepancy_lean/README.md) |
| [Part2-CSP](Part2-CSP/) | 9 (CSP-1 à CSP-9) | Python + .NET | **9 binômes complets** — marathon achevé, voir [bilan final](#marathon-epic-4956) |
| [Part4-Metaheuristics](Part4-Metaheuristics/) | 35 (25 à la racine + 10 dans `MGS-vs-mealpy/`) | C# / .NET (natif) | Prolonge Search-5 / Search-11 (Python) sous l'angle ingénierie |
-| [Applications](Applications/) | 20 cas cœur (App-1 à App-20), 57 notebooks actuels | Python + .NET | **20 binômes complets** + compagnons et audits App-21 à App-31 |
+| [Applications](Applications/) | 20 cas cœur (App-1 à App-20) + galerie App-21–27 (volumes au catalogue) | Python + .NET | **20 binômes complets** + compagnons App-21 à App-33 |
+| [Part5-Frontieres](Part5-Frontieres/) | Audits de garanties et distillations de preprints (volumes au catalogue) | Python | prolonge Part1/Part2/Part4 et les projets étudiants PrCon |
| Racine | 0 | — | (aucun — voir [_archive/](_archive/) pour les anciens notebooks racine) |
La série a atteint la **parité `Python ⇄ C#` complète** en juillet 2026 : le marathon [EPIC #4956](https://github.com/jsboige/CoursIA/issues/4956) a livré les jumeaux des trois parties curriculaires et des 20 applications, tous mergés sur `main`. Seule la [Partie 4](Part4-Metaheuristics/) reste mono-langage — par conception, puisqu'elle démontre l'ingénierie .NET native au-dessus de GeneticSharp.
@@ -367,7 +368,7 @@ Search/
│ │ ├── App-14-ConnectFour-Adversarial.ipynb
│ │ └── App-14-ConnectFour-Adversarial-CSharp.ipynb
│ │
-│ ├── CSP/ # Applications CSP (31 notebooks : sélection ci-dessous, 18 Python + 13 C#)
+│ ├── CSP/ # Applications CSP (sélection ci-dessous, Python + jumeaux C#)
│ │ ├── App-1-NQueens.ipynb
│ │ ├── App-2-GraphColoring.ipynb
│ │ ├── App-3-NurseScheduling.ipynb
@@ -387,7 +388,7 @@ Search/
│ │ ├── App-20b-SudokuBenchmark-CSharp.ipynb
│ │ └── (+ autres notebooks et jumeaux C# App-1b/2b/3b/4b/7b/11b/15b et App-5/8-CSharp, marathon #4956)
│ │
-│ └── Hybrid/ # Métaheuristiques (22 notebooks : sélection ci-dessous, 17 Python + 5 C#)
+│ └── Hybrid/ # Métaheuristiques (sélection ci-dessous, Python + jumeaux C#)
│ ├── App-9-EdgeDetection.ipynb
│ ├── App-9b-EdgeDetection-CSharp.ipynb
│ ├── App-10-Portfolio.ipynb
@@ -402,6 +403,9 @@ Search/
│ ├── App-18b-HyperparameterTuning-Python.ipynb
│ └── App-22-AlgorithmSelection-Python.ipynb # Sélection empirique : 3 jeux, 13 familles / 14 étiquettes, Pareto + préférences (PR IS #42)
│
+│
+├── Part5-Frontieres/ # Partie 5 — frontières : audits de garanties et distillations de preprints (Frontieres-01..10, carte #19253)
+│
├── MetaGeneticSharp/ # Sous-module : metaheuristiques composables sur GeneticSharp (jsboige/MetaGeneticSharp)
├── Part4-Metaheuristics/ # Partie 4 (35 notebooks C# .NET 9 : 25 à la racine + 10 sous MGS-vs-mealpy/) ; consomme le sous-module MetaGeneticSharp
│
diff --git a/MyIA.AI.Notebooks/Search/requirements.txt b/MyIA.AI.Notebooks/Search/requirements.txt
index b34c677510..4093ff418e 100644
--- a/MyIA.AI.Notebooks/Search/requirements.txt
+++ b/MyIA.AI.Notebooks/Search/requirements.txt
@@ -34,7 +34,7 @@ optuna>=3.0 # Optimisation bayesienne d'hyperparametres (App-18
rustuna>=0.1.0 # Portage Rust officiel d'Optuna (App-18c ; statut experimental, bug best_trial connu — cf notebook)
# Linear Programming
-pulp>=2.8.0 # Linear programming with CBC, HiGHS solvers
+pulp>=2.8.0,<4.0 # Linear programming with CBC, HiGHS solvers (<4.0 : LpVariable.dicts retiree en 4.0, consomme par Search-09 et Frontieres-07)
# Jupyter
ipywidgets>=8.1
diff --git a/MyIA.AI.Notebooks/Search/search_lean/README.md b/MyIA.AI.Notebooks/Search/search_lean/README.md
index 712f34854b..06bda7651a 100644
--- a/MyIA.AI.Notebooks/Search/search_lean/README.md
+++ b/MyIA.AI.Notebooks/Search/search_lean/README.md
@@ -193,7 +193,7 @@ flowchart TD
Le module [`Szpiro.lean`](Szpiro.lean) (miroir EN : [`Szpiro_en.lean`](Szpiro_en.lean))
est le sibling Lean du carnet
-[`App-32-Szpiro-Pasten-2026.ipynb`](../Applications/Search/App-32-Szpiro-Pasten-2026.ipynb) :
+[`App-32-Szpiro-Pasten-2026.ipynb`](../Applications/Search/App-32-Szpiro-Pasten-2026.html) :
Pasten 2026, *Improved Bounds for Szpiro's Conjecture* (arXiv 2609.17390) rend la borne
`h(E) ≪ N·log log N` **inconditionnelle** — elle était connue sous GRH — et prouve
`h(E) ≪_S N` pour les courbes semistables hors d'un ensemble fini.
@@ -242,6 +242,6 @@ Phases suivantes (suivi #4048) :
of Minimum Cost Paths*, IEEE Trans. Syst. Sci. Cybern. **4**(2), 1968.
- H. Pasten, *Improved Bounds for Szpiro's Conjecture*, arXiv 2609.17390 (2026),
archivé `G:\Mon Drive\MyIA\IA\Bibliographie IA\NumberTheory\` — carnet compagnon
- [`App-32-Szpiro-Pasten-2026.ipynb`](../Applications/Search/App-32-Szpiro-Pasten-2026.ipynb).
+ [`App-32-Szpiro-Pasten-2026.ipynb`](../Applications/Search/App-32-Szpiro-Pasten-2026.html).
- S. Russell, P. Norvig, *Artificial Intelligence: A Modern Approach*, §3.5 (A* Search).
- Notebooks compagnons : [`Search-02-Uninformed.ipynb`](../Part1-Foundations/Search-02-Uninformed.html), [`Search-03-Informed.ipynb`](../Part1-Foundations/Search-03-Informed.ipynb) (le notebook historique [`Exploration_non_informée_et_informée_intro.ipynb`](../_archive/Exploration_non_informée_et_informée_intro.ipynb) est archivé depuis 2026-07-03).
diff --git a/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-27-EdgeColoring-Tutte-Companion.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-27-EdgeColoring-Tutte-Companion.ipynb
index 0fc2556b6d..10cce868ca 100644
--- a/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-27-EdgeColoring-Tutte-Companion.ipynb
+++ b/MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-27-EdgeColoring-Tutte-Companion.ipynb
@@ -16,7 +16,7 @@
"source": [
"# Lean-27 : coloration d'arêtes et conjecture de Tutte — compagnon formel\n",
"\n",
- "Compagnon **formel** du notebook Python [`App-22-EdgeColoring-Tutte`](../../Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb) (même mandat, issue #13031) : ici, les définitions sont écrites **en Lean 4 sur `Mathlib.Combinatorics.SimpleGraph`** et interrogées par le compilateur (`#check`, `#eval`, `decide`). Les sorties de ce notebook sont des sorties du compilateur Lean, pas de la prose à propos de Lean.\n",
+ "Compagnon **formel** du notebook Python [`Frontieres-01-EdgeColoring-Tutte-Python`](../../Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb) (même mandat, issue #13031) : ici, les définitions sont écrites **en Lean 4 sur `Mathlib.Combinatorics.SimpleGraph`** et interrogées par le compilateur (`#check`, `#eval`, `decide`). Les sorties de ce notebook sont des sorties du compilateur Lean, pas de la prose à propos de Lean.\n",
"\n",
"**Navigation** : [<< Lean-26 Munkres](Lean-26-Munkres-Tribute.ipynb) | [Index](README.md)\n",
"\n",
@@ -903,7 +903,7 @@
"1. **La planarité n'est pas dans Mathlib.** Notre `IsApexRelativeTo` prend le prédicat de planarité comme **paramètre** `P` — honnête, mais tant que `P` n'est pas instancié, l'énoncé « cubique + sans pont + apex ⇒ 3-colorable » reste un schéma. Formaliser la planarité (via les embeddings combinatoires ou les matroïdes graphiques) est un sous-projet en soi.\n",
"2. **La preuve est un programme, pas un lemme.** Même avec la planarité, la preuve du papier combine un ensemble de réductibilité vérifié par ordinateur et une phase de déchargement — exactement la structure de la preuve des quatre couleurs, dont la formalisation (Gonthier, 2005) a pris des années-homme.\n",
"\n",
- "Ce que ce compagnon laisse au lecteur est donc la **grammaire** du théorème : `IsCubic`, `Edge3Colorable`, `IsApexRelativeTo`, un Petersen exécutable, et l'équivalence de Tutte (`SimpleGraph.tutte`) comme racine Mathlib du fil couplages. Le notebook Python compagnon ([App-22](../../Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb)) porte, lui, la vérification empirique à large échantillon (48 graphes, 0 violation).\n",
+ "Ce que ce compagnon laisse au lecteur est donc la **grammaire** du théorème : `IsCubic`, `Edge3Colorable`, `IsApexRelativeTo`, un Petersen exécutable, et l'équivalence de Tutte (`SimpleGraph.tutte`) comme racine Mathlib du fil couplages. Le notebook Python compagnon ([Frontieres-01](../../Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb)) porte, lui, la vérification empirique à large échantillon (48 graphes, 0 violation).\n",
"\n",
"## Exercices\n",
"\n",
diff --git a/MyIA.AI.Notebooks/SymbolicAI/Lean/README.md b/MyIA.AI.Notebooks/SymbolicAI/Lean/README.md
index f930529236..3d98cb6762 100644
--- a/MyIA.AI.Notebooks/SymbolicAI/Lean/README.md
+++ b/MyIA.AI.Notebooks/SymbolicAI/Lean/README.md
@@ -160,7 +160,7 @@ Tous les notebooks incluent une **barre de navigation** en haut et en bas permet
| 24b | [Lean-24b-Confiance-Preuves-Native](Lean-24b-Confiance-Preuves-Native.ipynb) | Compagnon **natif** (kernel `lean4-wsl`, lake `mathlib_examples`) sur la fiabilité d'un certificat formel, piste Dougherty/von Hippel 2026 (*Lies, Damned Lies, and Proofs* — « ce qui rend une preuve formelle fiable ») : mis-définition rendant la preuve trivialement vraie (`DivPar` → `True` vs la vraie divisibilité avec témoin), axiomes de secours mesurés par `#print axioms` (`sorryAx` transitif, `native_decide`, `Classical.choice` whitelisté par nom), implosion depuis `False` (0 axiome), et orthogonalité certificat-vs-headline (mêmes axiomes, fidélités opposées) — cellules code exécutées sans erreur, 3 exercices | 30 min |
| 25 | [Lean-25-Coherence-et-Temoin](Lean-25-Coherence-et-Temoin.ipynb) | Cohérence de de Finetti et témoin (Dutch book) : miroir Python **exact** (`fractions.Fraction`) du lake `decision_theory_lean` — un livret (+1,+1,−1,−1) encaisse l'écart d'inclusion-exclusion uniformément dans les 4 états, balayage borné exhaustif (390 625 combinaisons) qui certifie l'absence de livre sur le système réparé, stabilité affine vNM mesurée (0 divergence pour 3u+2 contre 124 pour u² sur les 2145 paires de 66 loteries du simplexe) | 40 min |
| 26 | [Lean-26-Munkres-Tribute](Lean-26-Munkres-Tribute.ipynb) | Hommage à James R. Munkres (1930-2026), le cours 18.901 dans Mathlib en kernel **natif** `lean4-wsl`, exécuté sur le lake `mathlib_examples` (environnement d'exécution Mathlib, cf. [`mathlib_examples/`](mathlib_examples/)) : les cinq chapitres du manuel *Topology* — axiomes (`IsOpen`), adhérence/intérieur (`nhds`, dualités §17 ex. 6), continuité (`continuous_def` = Munkres §18.1), T2/compacité, connexité — chaque notion interrogée par `#check`/`example`/`#print axioms` (0 axiome), 3 exercices `sorry` | 30 min |
-| 27 | [Lean-27-EdgeColoring-Tutte-Companion](Lean-27-EdgeColoring-Tutte-Companion.ipynb) | Compagnon **natif** (kernel `lean4-wsl`) du notebook [App-22](../../Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb) (théorème apex arXiv 2608.22870, #13031) : définitions `IsCubic`/`Edge3Colorable`/`IsApexRelativeTo` posées sur `SimpleGraph` (absentes de Mathlib, vérifié), Petersen = Kneser KG(5,2) via `SimpleGraph.mk'` — 10 sommets, 15 arêtes, cubique prouvés par `decide`, backtracking `#eval` qui certifie l'absence de toute 3-coloration d'arêtes (`0`) avec contrôle positif K4 (`6`), ancrage `SimpleGraph.tutte` | 35 min |
+| 27 | [Lean-27-EdgeColoring-Tutte-Companion](Lean-27-EdgeColoring-Tutte-Companion.ipynb) | Compagnon **natif** (kernel `lean4-wsl`) du notebook [Frontieres-01](../../Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.html) (théorème apex arXiv 2608.22870, #13031) : définitions `IsCubic`/`Edge3Colorable`/`IsApexRelativeTo` posées sur `SimpleGraph` (absentes de Mathlib, vérifié), Petersen = Kneser KG(5,2) via `SimpleGraph.mk'` — 10 sommets, 15 arêtes, cubique prouvés par `decide`, backtracking `#eval` qui certifie l'absence de toute 3-coloration d'arêtes (`0`) avec contrôle positif K4 (`6`), ancrage `SimpleGraph.tutte` | 35 min |
| 28 | [Lean-28-Complex-Structure-S6](Lean-28-Complex-Structure-S6.ipynb) | Le problème de Hopf résolu : une structure complexe intégrable sur S⁶ (énoncé `Mathoverflow1973` de Formal Conjectures) — digestion du fil constructif (triangle (3,4,∞), accouplement de Shioda ⟨P,P⟩=1/6 calculé, transformations logarithmiques 3 et 4, remplissage de Mumford dP₆, reconnaissance Hurewicz→Smale→Kervaire–Milnor) avec deux invariants **calculés** (\|π₁\| = \|4m+3n\| par forme normale de Smith, χ = 2), reproduction **réelle** du dépôt piné `plby/HopfProblem` via `hopf_s6_reproduction.py` (248 818 lignes compilées en 1154 s, 0 sorry/0 axiom, comparator double kernel Lean+nanoda : *« Your solution is okay! »*, axiomes [propext, Classical.choice, Quot.sound]) et attribution différenciée (manuscrit écrit par Claude/communiqué par Alpöge, exposition Engel avec caveat, code Lean majoritairement Codex) | 45 min |
| 29 | [Lean-29-Hecke-Operators-Native](Lean-29-Hecke-Operators-Native.ipynb) | Compagnon **natif** (kernel `lean4-wsl`) du lake `hecke_lean` (port pédagogique de `anthropics/fermats-last-theorem`, Apache-2.0, toolchain pinée `leanprover/lean4:v4.33.0`) : les opérateurs de Hecke T_p et U_p sur le demi-plan supérieur — représentants γ_{p,j} et partie diagonale, action de slash et ses deux comportements opposés, formule des coefficients a(np) + p^{k−1}·a(n/p) portée par `coeffHeckeT` — chaque déclaration interrogée par `#check`/`#print axioms` exécutés in-kernel (0 erreur), 3 exercices | 40 min |
| 30 | [Lean-30-FormalGroups-Native](Lean-30-FormalGroups-Native.ipynb) | Compagnon **natif** (kernel `lean4-wsl`) du lake `formal_groups_lean` (port de `anthropics/fermats-last-theorem`, Apache-2.0, toolchain pinée `leanprover/lean4:v4.33.0`) : les groupes formels multivariés à travers les quatre modules `Basic`/`Hom`/`Additive`/`Iterates` — structure `MvFormalGroup` (neutre, partie linéaire, associativité), commutativité et substitution sûre, morphismes `Hom` et changement d'anneau, loi additive `addMv`, itérés `nthSeries`/`linearPart`/`FiniteHeight` — `#check`/`#print axioms` exécutés in-kernel (0 erreur), 3 exercices | 40 min |
diff --git a/_quarto.yml b/_quarto.yml
index 335a0b31f4..ed83e047a8 100644
--- a/_quarto.yml
+++ b/_quarto.yml
@@ -15,7 +15,7 @@ project:
# (regeneree par scripts/regen_quarto_render.py) car Quarto 1.7
# n'etend pas le glob **/README.md sur les sous-repertoires.
# Archives et libs vendored EXCLUES (history interne, non pedagogique).
- # 516 READMEs (racine + arborescence, hors archives).
+ # 518 READMEs (racine + arborescence, hors archives).
- "README.md"
- "docker-configurations/docs/README.md"
- "docker-configurations/notebook-runner/README.md"
@@ -370,6 +370,7 @@ project:
- "MyIA.AI.Notebooks/QuantConnect/projects/Sector-ML-Classification/README.md"
- "MyIA.AI.Notebooks/QuantConnect/projects/SectorMomentum/README.md"
- "MyIA.AI.Notebooks/QuantConnect/projects/Sparse-Index-Tracking-QC/README.md"
+ - "MyIA.AI.Notebooks/QuantConnect/projects/SplitEventsLongOnly/README.md"
- "MyIA.AI.Notebooks/QuantConnect/projects/Stoploss-Benchmark-FixedPercentage/README.md"
- "MyIA.AI.Notebooks/QuantConnect/projects/Stoploss-Put-Hedge/README.md"
- "MyIA.AI.Notebooks/QuantConnect/projects/Stoploss-Volatility-ML/README.md"
@@ -403,6 +404,7 @@ project:
- "MyIA.AI.Notebooks/Search/Part2-CSP/README.md"
- "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy/README.md"
- "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/README.md"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/README.md"
- "MyIA.AI.Notebooks/Search/README.md"
- "MyIA.AI.Notebooks/Search/search_lean/README.md"
- "MyIA.AI.Notebooks/Sudoku/README.md"
@@ -1675,9 +1677,6 @@ project:
- "MyIA.AI.Notebooks/Search/Applications/CSP/App-20-SudokuBenchmark-Python.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/CSP/App-20b-SudokuBenchmark-CSharp.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/CSP/App-21-VoiceLeading.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/CSP/App-2b-GraphColoring-CSharp.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/CSP/App-3-NurseScheduling.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/CSP/App-3b-NurseScheduling-CSharp.ipynb"
@@ -1704,14 +1703,7 @@ project:
- "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-18c-HyperparameterTuning-Rustuna-vs-Optuna.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-27-Sparse-Index-Tracking-Walk-Forward.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb"
- - "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-9-EdgeDetection.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-9b-EdgeDetection-CSharp.ipynb"
- "MyIA.AI.Notebooks/Search/Applications/Search/App-14-ConnectFour-Adversarial-CSharp.ipynb"
@@ -1817,6 +1809,16 @@ project:
- "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy/MGS-29-GA-vs-Mealpy.ipynb"
- "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy/MGS-30-ScatterSearch-Decomposition.ipynb"
- "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy/MGS-31-Synthese-Croisee.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb"
+ - "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb"
- "MyIA.AI.Notebooks/Sudoku/Sudoku-00-Environment-CSharp.ipynb"
- "MyIA.AI.Notebooks/Sudoku/Sudoku-01-Backtracking-CSharp.ipynb"
- "MyIA.AI.Notebooks/Sudoku/Sudoku-01-Backtracking-Python.ipynb"
diff --git a/docs/curriculum/ia-classique.md b/docs/curriculum/ia-classique.md
index 8bea669b34..cb6f069267 100644
--- a/docs/curriculum/ia-classique.md
+++ b/docs/curriculum/ia-classique.md
@@ -44,9 +44,9 @@ Algorithmes de recherche classique, satisfaction de contraintes (CSP), résoluti
| 13 | [App-20 — Benchmark comparatif des solveurs Sudoku…](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-20-SudokuBenchmark-Python.ipynb) | BETA | Oui |
| 14 | [App-20b : Benchmark compare des solveurs Sudoku (jumeau…](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-20b-SudokuBenchmark-CSharp.ipynb) | BETA | Oui |
| 15 | [Voice Leading Minimal par Affectation — l'algorithme de…](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-21-VoiceLeading.ipynb) | BETA | Oui |
-| 16 | [App-22 : Coloration d'arêtes et conjecture de Tutte](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb) | BETA | Oui |
-| 17 | [App-23 - Factorio Belt Balancer (CP-SAT borne)](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb) | BETA | Oui |
-| 18 | [App-26 — Covering Arrays : tester les interactions…](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb) | BETA | Oui |
+| 16 | [Frontieres-01 : Coloration d'arêtes et conjecture de Tutte](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb) | BETA | Oui |
+| 17 | [Frontieres-02 - Factorio Belt Balancer (CP-SAT borne)](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb) | BETA | Oui |
+| 18 | [Frontieres-05 — Covering Arrays : tester les interactions…](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb) | BETA | Oui |
| 19 | [App-2b : Coloration de graphes — Jumeau C#](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-2b-GraphColoring-CSharp.ipynb) | BETA | Oui |
| 20 | [App-3 : Nurse Scheduling (Planification des horaires…](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-3-NurseScheduling.ipynb) | BETA | Oui |
| 21 | [App-3b : Nurse Scheduling — Twin C# (planification de…](../../MyIA.AI.Notebooks/Search/Applications/CSP/App-3b-NurseScheduling-CSharp.ipynb) | BETA | Oui |
@@ -72,14 +72,14 @@ Algorithmes de recherche classique, satisfaction de contraintes (CSP), résoluti
| 41 | [App-18c — Rustuna vs Optuna : mesurer un portage Rust…](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-18c-HyperparameterTuning-Rustuna-vs-Optuna.ipynb) | BETA | Oui |
| 42 | [App-22 — Sélection empirique d'algorithmes : trois…](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb) | BETA | Oui |
| 43 | [App-23 — Cryptanalyse différentielle de PRESENT par SAT](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-23-PRESENT-Differential-Cryptanalysis-SAT.ipynb) | BETA | Oui |
-| 44 | [App-24 — MAPF : auditer les garanties des solveurs](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb) | BETA | Non |
-| 45 | [App-25 — Enchères combinatoires : Winner Determination…](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb) | BETA | Oui |
+| 44 | [Frontieres-03 — MAPF : auditer les garanties des solveurs](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb) | BETA | Non |
+| 45 | [Frontieres-04 — Enchères combinatoires : Winner Determination…](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb) | BETA | Oui |
| 46 | [App-27 — Sparse index tracking](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-27-Sparse-Index-Tracking-Walk-Forward.ipynb) | BETA | Oui |
-| 47 | [App-28 — Learning to branch](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb) | BETA | Oui |
-| 48 | [App-29 — Équilibrage de chaîne d'assemblage (SALBP)](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb) | BETA | Oui |
-| 49 | [App-30 — Ordonnancement d'assemblage orbital](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb) | BETA | Oui |
-| 50 | [App-31 — RCPSP/max : quand la faisabilité devient le…](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb) | BETA | Oui |
-| 51 | [App-33 — Neural diving : un plongeur appris pour CP-SAT](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb) | BETA | Oui |
+| 47 | [Frontieres-06 — Learning to branch](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb) | BETA | Oui |
+| 48 | [Frontieres-07 — Équilibrage de chaîne d'assemblage (SALBP)](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb) | BETA | Oui |
+| 49 | [Frontieres-08 — Ordonnancement d'assemblage orbital](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb) | BETA | Oui |
+| 50 | [Frontieres-09 — RCPSP/max : quand la faisabilité devient le…](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb) | BETA | Oui |
+| 51 | [Frontieres-10 — Neural diving : un plongeur appris pour CP-SAT](../../MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb) | BETA | Oui |
| 52 | [App-9 : Detection de bords par algorithmes génétiques](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-9-EdgeDetection.ipynb) | BETA | Oui |
| 53 | [TP : Conception d'Algorithmes Génétiques avec…](../../MyIA.AI.Notebooks/Search/Applications/Hybrid/App-9b-EdgeDetection-CSharp.ipynb) | BETA | Oui |
| 54 | [App-14-ConnectFour-Adversarial-CSharp — Jumeau C# :…](../../MyIA.AI.Notebooks/Search/Applications/Search/App-14-ConnectFour-Adversarial-CSharp.ipynb) | BETA | Oui |
diff --git a/docs/reference/rename-ledger.tsv b/docs/reference/rename-ledger.tsv
index 731d0778be..0e399206c9 100644
--- a/docs/reference/rename-ledger.tsv
+++ b/docs/reference/rename-ledger.tsv
@@ -1,265 +1,275 @@
-ancien nouveau date lane
-MyIA.AI.Notebooks/GameTheory/GameTheory-01-Setup.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-01-Setup-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Csharp-Part2.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Part2-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-02b-Lean-Definitions.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02b-Lean-Definitions-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03a-Chemins-de-Swaps.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03b-Chemins-de-Swaps-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03b-Chambres-et-Murs.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03c-Chambres-et-Murs-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03c-Le-Joueur-LLM.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03d-Le-Joueur-LLM-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03d-Plan-de-deformation.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03e-Plan-de-deformation-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03e-Meta-Actions-Tarifees.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03f-Meta-Actions-Tarifees-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-03h-Deux-Especes-de-Fleches.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03g-Deux-Especes-de-Fleches-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04c-NashExistence-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04c-NashExistence-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04d-Marchandage-Asymetrique.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04d-Marchandage-Asymetrique-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04e-Reflective-Oracles.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04e-Reflective-Oracles-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-04f-Theories-Decision-Predicteur.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04f-Theories-Decision-Predicteur-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-05b-Lean-Minimax.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-05b-Lean-Minimax-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06b-Lean-RepeatedGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06b-Lean-RepeatedGames-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06d-Sympathie-vs-Engagement.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06d-Sympathie-vs-Engagement-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06e-Open-Source-Game-Theory.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06e-Open-Source-Game-Theory-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06g-Bounded-Agents-Lean.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06f-Bounded-Agents-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06g-Simulation-Based-Program-Equilibria.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06g-Simulation-Based-Program-Equilibria-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06h-Transparent-Institutions.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06h-Transparent-Institutions-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-22-Ensembles-Limites-Poincare-Bendixson.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06i-Ensembles-Limites-Poincare-Bendixson-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-06f-Bounded-Proofs-Reasoning-Costs.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06j-Bounded-Proofs-Reasoning-Costs-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-08b-Lean-CombinatorialGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08b-Lean-CombinatorialGames-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-08c-CombinatorialGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08c-CombinatorialGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-08d-Lean-CGT-Native.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08d-Lean-CGT-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-09b-Commitment-Stackelberg.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09b-Commitment-Stackelberg-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-09c-Stackelberg-SecurityGame.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09c-Stackelberg-SecurityGame-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-11b-Lean-BayesianGamesExt.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-11b-Lean-BayesianGamesExt-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-13b-Safe-Subgame-Solving.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13b-Safe-Subgame-Solving-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-13c-Safe-Subgame-Solving-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13c-Safe-Subgame-Solving-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-13d-Optimistic-CFR.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13d-Optimistic-CFR-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15b-Lean-CooperativeGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15b-Lean-CooperativeGames-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15c-CooperativeGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15c-CooperativeGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15d-Mobius-Coalitions.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15d-Mobius-Coalitions-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15e-Coalition-Power-SMT.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15e-Coalition-Power-SMT-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-15f-Shapley-Groupes.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15f-Shapley-Groupes-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-16b-Automated-Mechanism-Design.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16b-Automated-Mechanism-Design-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-16c-Extraction-de-Revenu-DSIC-IR.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16c-Extraction-de-Revenu-DSIC-IR-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-16d-Echange-de-Reins.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16d-Echange-de-Reins-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-16e-LLM-Players-Othman-Sandholm.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16e-LLM-Players-Othman-Sandholm-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-23b-Lean-Assignment-Native.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16f-Lean-Assignment-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-23-Munkres-Assignment.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16f-Munkres-Assignment-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-17b-Asymmetric-Information.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17b-Asymmetric-Information-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-17c-Lean-Lemons-Certificat.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17c-Lean-Lemons-Certificat-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-17d-Lean-Screening-Signaling.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17d-Lean-Screening-Signaling-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-25-Bayesian-Persuasion.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17e-Bayesian-Persuasion-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-17c-Market-to-Balance-Sheet.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17f-Market-to-Balance-Sheet-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-18-Open-Games-et-Lentilles.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18-Open-Games-et-Lentilles-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-18b-Casser-la-Composition.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18b-Casser-la-Composition-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-24-Humour-Banc.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18c-Humour-Banc-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-24b-Humour-Banc-Dur.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18d-Humour-Banc-Dur-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-19-Abstraction-a-Dette.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-19-Abstraction-a-Dette-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-20-Chemin-Minimal-Robinson-Goforth.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20-Chemin-Minimal-Robinson-Goforth-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-20b-Chemin-Minimal-Temoins-Impossibilite.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20b-Chemin-Minimal-Temoins-Impossibilite-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-20c-Chemin-Minimal-3x2-Ordinal.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20c-Chemin-Minimal-3x2-Ordinal-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/GameTheory/GameTheory-21-Loi-II-Translateur-Life.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20d-Loi-II-Translateur-Life-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-10-CatastropheGrammar.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-10-CatastropheGrammar-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-11-CausalAgencyProfiles.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-11-CausalAgencyProfiles-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12-ValenceFieldsAndAnimats.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12-ValenceFieldsAndAnimats-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12b-LearnedValence.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12b-LearnedValence-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12c-PregnanceAnimat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12c-PregnanceAnimat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12d-InhibitedActionAnimat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12d-InhibitedActionAnimat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12e-Value-of-Information-Animat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12e-Value-of-Information-Animat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13-AxelrodStrategicMorphodynamics.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13-AxelrodStrategicMorphodynamics-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13b-DecroisementDynamiqueObservable.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13b-DecroisementDynamiqueObservable-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14-FreeEnergySurprise.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14-FreeEnergySurprise-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14b-ActiveInferenceEFE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14b-ActiveInferenceEFE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15-IntegratedComplexity.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15-IntegratedComplexity-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15b-SensitivityCanonicity.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15b-SensitivityCanonicity-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15c-MetaProxyObstruction.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15c-MetaProxyObstruction-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15d-CechObstruction.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15d-CechObstruction-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15e-Bridge2-RecoverabilityAgency.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15e-Bridge2-RecoverabilityAgency-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15f-Bridge1bis-DecoupledFamily.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15f-Bridge1bis-DecoupledFamily-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15g-EmpiricalHuangExploitation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15g-EmpiricalHuangExploitation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15h-Bridge1bis-AsymmetricFamily.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15h-Bridge1bis-AsymmetricFamily-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15i-Bridge1bis-2DLandscape.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15i-Bridge1bis-2DLandscape-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15j-NerveDiscriminant.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15j-NerveDiscriminant-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15k-RecollementMacroCells.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15k-RecollementMacroCells-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15l-IndependanceGenerateur.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15l-IndependanceGenerateur-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-16-MDLTwoPartCode.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-16-MDLTwoPartCode-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17-EpsilonMachine.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17-EpsilonMachine-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17b-Grokking-CompressionProgress.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17b-Grokking-CompressionProgress-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18-ArrowOfTimeReversibilization.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18-ArrowOfTimeReversibilization-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18b-ReversibilityBudget.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18b-ReversibilityBudget-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19-EnjeuBattery.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19-EnjeuBattery-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19b-EnjeuBattery-Raffinement.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19b-EnjeuBattery-Raffinement-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-20-FeatureCatastrophes.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-20-FeatureCatastrophes-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21-SAETrajectoires.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21-SAETrajectoires-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21b-SAECalibration.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21b-SAECalibration-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21c-SAECatastrophes.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21c-SAECatastrophes-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22-LLMSubstrat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22-LLMSubstrat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22b-CausalInterventionEngine.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22b-CausalInterventionEngine-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-23-PersonaCatastrophe.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-23-PersonaCatastrophe-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-24-WorkspaceIgnition.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-24-WorkspaceIgnition-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-25-InoculationRL.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-25-InoculationRL-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-26-SignalingConvention.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-26-SignalingConvention-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-27-SymbolInvention.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-27-SymbolInvention-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-28-CollectiveAdoption.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-28-CollectiveAdoption-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-29-ConceptInoculation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-29-ConceptInoculation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-30-InhibitedInvention.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-30-InhibitedInvention-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-31-ContrasteTroisSubstrats.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-31-ContrasteTroisSubstrats-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-32-StratificationCausaleLife.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-32-StratificationCausaleLife-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-33-SoupCollisions.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-33-SoupCollisions-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-34-BancRecollementLectures.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-34-BancRecollementLectures-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35-HumorCausalProbe-Pilot.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35-HumorCausalProbe-Pilot-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35b-HumorCausalPairs-SAE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35b-HumorCausalPairs-SAE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35c-HumorDepthProfile-SAE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35c-HumorDepthProfile-SAE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35d-HumorTypologyBreakdown-SAE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35d-HumorTypologyBreakdown-SAE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-37-FLens-BeliefState.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-37-FLens-BeliefState-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-38-SLens-SelfLocation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-38-SLens-SelfLocation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-39-CompositionRegards.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-39-CompositionRegards-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40a-TriangulationCausale.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40a-TriangulationCausale-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40b-AnalogCognitionWaves.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40b-AnalogCognitionWaves-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-41-SAE-GeometrieFeatures.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-41-SAE-GeometrieFeatures-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-Crosscoder-Distillation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-Crosscoder-Distillation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-InoculationBifurcation-Pilot.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-InoculationBifurcation-Pilot-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-43-Calibration-MultiEchelle.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-43-Calibration-MultiEchelle-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-GeometryOfTruth.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-GeometryOfTruth-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-InoculationBifurcation-9B.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-InoculationBifurcation-9B-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-46-Strate7-FreeCoordinates.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-46-Strate7-FreeCoordinates-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-00-Environment-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-00-Environment-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-01-Backtracking-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-01-Backtracking-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-02-DancingLinks-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-02-DancingLinks-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-03-Genetic-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-03-Genetic-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-04-SimulatedAnnealing-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-04-SimulatedAnnealing-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-05-PSO-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-05-PSO-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-06-AIMA-CSP-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-06-AIMA-CSP-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-07-Norvig-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-07-Norvig-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-08-HumanStrategies-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-08-HumanStrategies-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-09-GraphColoring-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-09-GraphColoring-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-10-ORTools-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-10-ORTools-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-12-Z3-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-12-Z3-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-12b-Z3-Linq2Z3-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-12b-Z3-Linq2Z3-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-13-SymbolicAutomata-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-13-SymbolicAutomata-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-14-BDD-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-14-BDD-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-15-Infer-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-15-Infer-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-18-Comparison-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-18-Comparison-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/Sudoku/Sudoku-19-Lean-Propagation.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-19-Lean-Propagation-Lean.ipynb 2026-09-30 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-18-Sendov-Complex-Analysis.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-01-Sendov-Lean-Python.ipynb 2026-09-27 myia-po-2026:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-19-Analysis-I-Tao-Workflow.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-02-Tao-Lean-Python.ipynb 2026-09-27 myia-po-2026:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-20-PFR-Entropy-Method.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-03-PFR-Lean.ipynb 2026-09-27 myia-po-2026:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-20b-PFR-Primitives-Transportables.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb 2026-09-27 myia-po-2026:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-1-Setup.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-01-Setup-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-2-Dependent-Types.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-02-Dependent-Types-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-3-Propositions-Proofs.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-03-Propositions-Proofs-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-3b-Formalized-Formal-Logic.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-03b-Formalized-Formal-Logic-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-4-Quantifiers.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-04-Quantifiers-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-5-Tactics.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-05-Tactics-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-6-Mathlib-Essentials.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-06-Mathlib-Essentials-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-7-LLM-Integration.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-07-LLM-Integration-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-7b-Examples.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-07b-Examples-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-8-Agentic-Proving.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-08-Agentic-Proving-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-8b-Erdos-Formal-Conjectures-Native.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-08b-Erdos-Formal-Conjectures-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-9-SK-Multi-Agents.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-09-SK-Multi-Agents-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-Python-13-UnsatCores.ipynb MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-13-UnsatCores-Python.ipynb 2026-09-28 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-Python-17-Array-Theory.ipynb MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-17-Array-Theory-Python.ipynb 2026-09-25 myia-po-2026:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-0-Cypherpunk-Origins.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-00-Cypherpunk-Origins-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-1-Setup-Foundry.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-01-Setup-Foundry-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-2-Setup-Web3py.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-02-Setup-Web3py-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-2b-Bac-ASable-Institutionnel.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-02b-Bac-ASable-Institutionnel-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-3-Solidity-Basics.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-03-Solidity-Basics-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-4-Functions-State.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-04-Functions-State-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-5-Inheritance.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-05-Inheritance-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-6-Errors-Events.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-06-Errors-Events-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-7-Token-Standards.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-07-Token-Standards-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-7c-ERC20-Lean-Native-Companion.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-07c-ERC20-Lean.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-8-DeFi-Primitives.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-08-DeFi-Primitives-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-9-DAO-Governance.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-09-DAO-Governance-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-10-Account-Abstraction.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-10-Account-Abstraction-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-11-LLM-Assisted.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-11-LLM-Assisted-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-12-Foundry-Testing.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-12-Foundry-Testing-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-13-Fuzz-Invariants.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-13-Fuzz-Invariants-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-14-Formal-Verification.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-14-Formal-Verification-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-15-Zero-Knowledge-Proofs.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-15-Zero-Knowledge-Proofs-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-16-Homomorphic-Encryption.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-16-Homomorphic-Encryption-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-17-E2E-Verifiable-Voting.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-17-E2E-Verifiable-Voting-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-18-Vyper.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-18-Vyper-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-19-Ripple-XRP.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-19-Ripple-XRP-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-20-Bitcoin-Scripting.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-20-Bitcoin-Scripting-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-21-Move-Sui.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-21-Move-Sui-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-22-Solana-Anchor.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-22-Solana-Anchor-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-23-Cross-Chain.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-23-Cross-Chain-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-24-Testnet-Deploy.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-24-Testnet-Deploy-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-26-Final-Project.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-26-Final-Project-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-27-Dette-Irreversibilite.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-27-Dette-Irreversibilite-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
-ancien nouveau date lane
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-Crosscoder-Distillation-Python.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-41b-Crosscoder-Distillation-Python.ipynb 2026-10-03 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-InoculationBifurcation-9B-Python.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42b-InoculationBifurcation-9B-Python.ipynb 2026-10-04 myia-po-2023:CoursIA
-MyIA.AI.Notebooks/Search/Part1-Foundations/Search-09d-Lean-Discrepancy-Komlos.ipynb MyIA.AI.Notebooks/Search/Discrepancy/Discrepancy-02-Komlos-Lean.ipynb 2026-10-04 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_1_intro_cartpole.ipynb MyIA.AI.Notebooks/RL/RL-01-Premiers-Pas-Stable-Baselines3-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_1b_bitwise_logic_synthesis.ipynb MyIA.AI.Notebooks/RL/RL-01b-Synthese-Logique-Bitwise-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_1c_prolog_distillation.ipynb MyIA.AI.Notebooks/RL/RL-01c-Distillation-Politique-Prolog-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_2_wrappers_sauvegarde_callbacks.ipynb MyIA.AI.Notebooks/RL/RL-02-Wrappers-Sauvegarde-Callbacks-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_3_experience_replay_her.ipynb MyIA.AI.Notebooks/RL/RL-03-Experience-Replay-HER-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_4_multi_armed_bandits.ipynb MyIA.AI.Notebooks/RL/RL-04-Bandits-Manchots-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_5_mdp_dp_qlearning.ipynb MyIA.AI.Notebooks/RL/RL-05-MDP-Programmation-Dynamique-Q-Learning-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_6_dqn_policy_gradient.ipynb MyIA.AI.Notebooks/RL/RL-06-DQN-Policy-Gradient-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_6b_actor_critic.ipynb MyIA.AI.Notebooks/RL/RL-06b-Actor-Critic-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_6c_ppo_from_scratch.ipynb MyIA.AI.Notebooks/RL/RL-06c-PPO-Depuis-Zero-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_6d_sac_from_scratch.ipynb MyIA.AI.Notebooks/RL/RL-06d-SAC-Depuis-Zero-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_6e_grpo_from_scratch.ipynb MyIA.AI.Notebooks/RL/RL-06e-GRPO-Depuis-Zero-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_7_multi_agent_rl.ipynb MyIA.AI.Notebooks/RL/RL-07-Apprentissage-Multi-Agent-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/RL-7b-Climbing-Game.ipynb MyIA.AI.Notebooks/RL/RL-07b-Sur-Generalisation-Climbing-Game-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_8_model_based_dyna_q.ipynb MyIA.AI.Notebooks/RL/RL-08-Dyna-Q-Planification-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_9_offline_rl.ipynb MyIA.AI.Notebooks/RL/RL-09-RL-Offline-Behavior-Cloning-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_10_reward_shaping.ipynb MyIA.AI.Notebooks/RL/RL-10-Reward-Shaping-Curriculum-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_11_pomdp.ipynb MyIA.AI.Notebooks/RL/RL-11-POMDP-Croyances-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_12_distributional_rl.ipynb MyIA.AI.Notebooks/RL/RL-12-Distributional-RL-C51-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_13_curiosity_exploration.ipynb MyIA.AI.Notebooks/RL/RL-13-Curiosite-RND-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_14_hierarchical_rl.ipynb MyIA.AI.Notebooks/RL/RL-14-RL-Hierarchique-Options-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_15_grpo_group_relative_policy.ipynb MyIA.AI.Notebooks/RL/RL-15-GRPO-Comparatif-Multi-Graines-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_16_dream_rsi.ipynb MyIA.AI.Notebooks/RL/RL-16-Dream-RSI-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rl_19_reward_tampering.ipynb MyIA.AI.Notebooks/RL/RL-19-Reward-Tampering-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0_reward_model_from_scratch.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00-Reward-Model-Bradley-Terry-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0b_preference_dataset_bias.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00b-Biais-Dataset-Preferences-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0c_reward_hacking_case_study.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00c-Anatomie-Reward-Hacking-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0d_reward_trainer_sota.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00d-Reward-Trainer-TRL-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0e_trl_DPO_SOTA.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00e-DPO-TRL-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0f_comparaison_GRPO_TRL_et_PPO_maison.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00f-GRPO-TRL-contre-PPO-Maison-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_0g_ppo_TRL_experimental.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00g-PPO-TRL-Experimental-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_1_ppo_lm_rlhf.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-01-PPO-RLHF-Petit-Modele-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_2_grpo_minimal.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-02-GRPO-Minimal-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_3_reward_hacking.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-03-Reward-Hacking-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
-MyIA.AI.Notebooks/RL/rlpt_4_dpo_vs_ppo.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-04-DPO-Offline-contre-GRPO-Online-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+ancien nouveau date lane
+MyIA.AI.Notebooks/GameTheory/GameTheory-01-Setup.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-01-Setup-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Csharp-Part2.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Part2-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02-NormalForm-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-02b-Lean-Definitions.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02b-Lean-Definitions-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03-Topology2x2-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03a-Chemins-de-Swaps.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03b-Chemins-de-Swaps-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03b-Chambres-et-Murs.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03c-Chambres-et-Murs-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03c-Le-Joueur-LLM.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03d-Le-Joueur-LLM-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03d-Plan-de-deformation.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03e-Plan-de-deformation-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03e-Meta-Actions-Tarifees.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03f-Meta-Actions-Tarifees-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-03h-Deux-Especes-de-Fleches.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-03g-Deux-Especes-de-Fleches-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04-NashEquilibrium-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04b-Lean-NashExistence-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04c-NashExistence-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04c-NashExistence-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04d-Marchandage-Asymetrique.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04d-Marchandage-Asymetrique-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04e-Reflective-Oracles.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04e-Reflective-Oracles-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-04f-Theories-Decision-Predicteur.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-04f-Theories-Decision-Predicteur-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-05-ZeroSum-Minimax-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-05b-Lean-Minimax.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-05b-Lean-Minimax-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06b-Lean-RepeatedGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06b-Lean-RepeatedGames-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06c-RepeatedGames-FolkTheorem-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06d-Sympathie-vs-Engagement.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06d-Sympathie-vs-Engagement-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06e-Open-Source-Game-Theory.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06e-Open-Source-Game-Theory-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06g-Bounded-Agents-Lean.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06f-Bounded-Agents-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06g-Simulation-Based-Program-Equilibria.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06g-Simulation-Based-Program-Equilibria-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06h-Transparent-Institutions.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06h-Transparent-Institutions-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-22-Ensembles-Limites-Poincare-Bendixson.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06i-Ensembles-Limites-Poincare-Bendixson-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-06f-Bounded-Proofs-Reasoning-Costs.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-06j-Bounded-Proofs-Reasoning-Costs-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-07-ExtensiveForm-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08-CombinatorialGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-08b-Lean-CombinatorialGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08b-Lean-CombinatorialGames-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-08c-CombinatorialGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08c-CombinatorialGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-08d-Lean-CGT-Native.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-08d-Lean-CGT-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09-BackwardInduction-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-09b-Commitment-Stackelberg.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09b-Commitment-Stackelberg-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-09c-Stackelberg-SecurityGame.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-09c-Stackelberg-SecurityGame-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-10-ForwardInduction-SPE-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-11-BayesianGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-11b-Lean-BayesianGamesExt.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-11b-Lean-BayesianGamesExt-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-12-ReputationGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13-ImperfectInfo-CFR-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-13b-Safe-Subgame-Solving.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13b-Safe-Subgame-Solving-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-13c-Safe-Subgame-Solving-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13c-Safe-Subgame-Solving-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-13d-Optimistic-CFR.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-13d-Optimistic-CFR-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-14-DifferentialGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15-CooperativeGames-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15b-Lean-CooperativeGames.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15b-Lean-CooperativeGames-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15c-CooperativeGames-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15c-CooperativeGames-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15d-Mobius-Coalitions.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15d-Mobius-Coalitions-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15e-Coalition-Power-SMT.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15e-Coalition-Power-SMT-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-15f-Shapley-Groupes.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-15f-Shapley-Groupes-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16-MechanismDesign-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-16b-Automated-Mechanism-Design.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16b-Automated-Mechanism-Design-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-16c-Extraction-de-Revenu-DSIC-IR.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16c-Extraction-de-Revenu-DSIC-IR-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-16d-Echange-de-Reins.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16d-Echange-de-Reins-Lean-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-16e-LLM-Players-Othman-Sandholm.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16e-LLM-Players-Othman-Sandholm-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-23b-Lean-Assignment-Native.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16f-Lean-Assignment-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-23-Munkres-Assignment.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-16f-Munkres-Assignment-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL-Csharp.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL-CSharp.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17-MultiAgent-RL-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-17b-Asymmetric-Information.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17b-Asymmetric-Information-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-17c-Lean-Lemons-Certificat.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17c-Lean-Lemons-Certificat-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-17d-Lean-Screening-Signaling.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17d-Lean-Screening-Signaling-Lean.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-25-Bayesian-Persuasion.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17e-Bayesian-Persuasion-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-17c-Market-to-Balance-Sheet.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-17f-Market-to-Balance-Sheet-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-18-Open-Games-et-Lentilles.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18-Open-Games-et-Lentilles-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-18b-Casser-la-Composition.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18b-Casser-la-Composition-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-24-Humour-Banc.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18c-Humour-Banc-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-24b-Humour-Banc-Dur.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-18d-Humour-Banc-Dur-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-19-Abstraction-a-Dette.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-19-Abstraction-a-Dette-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-20-Chemin-Minimal-Robinson-Goforth.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20-Chemin-Minimal-Robinson-Goforth-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-20b-Chemin-Minimal-Temoins-Impossibilite.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20b-Chemin-Minimal-Temoins-Impossibilite-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-20c-Chemin-Minimal-3x2-Ordinal.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20c-Chemin-Minimal-3x2-Ordinal-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/GameTheory/GameTheory-21-Loi-II-Translateur-Life.ipynb MyIA.AI.Notebooks/GameTheory/GameTheory-20d-Loi-II-Translateur-Life-Python.ipynb 2026-09-27 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-10-CatastropheGrammar.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-10-CatastropheGrammar-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-11-CausalAgencyProfiles.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-11-CausalAgencyProfiles-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12-ValenceFieldsAndAnimats.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12-ValenceFieldsAndAnimats-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12b-LearnedValence.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12b-LearnedValence-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12c-PregnanceAnimat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12c-PregnanceAnimat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12d-InhibitedActionAnimat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12d-InhibitedActionAnimat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12e-Value-of-Information-Animat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-12e-Value-of-Information-Animat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13-AxelrodStrategicMorphodynamics.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13-AxelrodStrategicMorphodynamics-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13b-DecroisementDynamiqueObservable.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-13b-DecroisementDynamiqueObservable-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14-FreeEnergySurprise.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14-FreeEnergySurprise-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14b-ActiveInferenceEFE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-14b-ActiveInferenceEFE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15-IntegratedComplexity.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15-IntegratedComplexity-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15b-SensitivityCanonicity.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15b-SensitivityCanonicity-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15c-MetaProxyObstruction.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15c-MetaProxyObstruction-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15d-CechObstruction.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15d-CechObstruction-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15e-Bridge2-RecoverabilityAgency.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15e-Bridge2-RecoverabilityAgency-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15f-Bridge1bis-DecoupledFamily.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15f-Bridge1bis-DecoupledFamily-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15g-EmpiricalHuangExploitation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15g-EmpiricalHuangExploitation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15h-Bridge1bis-AsymmetricFamily.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15h-Bridge1bis-AsymmetricFamily-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15i-Bridge1bis-2DLandscape.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15i-Bridge1bis-2DLandscape-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15j-NerveDiscriminant.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15j-NerveDiscriminant-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15k-RecollementMacroCells.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15k-RecollementMacroCells-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15l-IndependanceGenerateur.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-15l-IndependanceGenerateur-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-16-MDLTwoPartCode.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-16-MDLTwoPartCode-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17-EpsilonMachine.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17-EpsilonMachine-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17b-Grokking-CompressionProgress.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-17b-Grokking-CompressionProgress-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18-ArrowOfTimeReversibilization.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18-ArrowOfTimeReversibilization-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18b-ReversibilityBudget.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-18b-ReversibilityBudget-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19-EnjeuBattery.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19-EnjeuBattery-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19b-EnjeuBattery-Raffinement.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-19b-EnjeuBattery-Raffinement-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-20-FeatureCatastrophes.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-20-FeatureCatastrophes-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21-SAETrajectoires.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21-SAETrajectoires-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21b-SAECalibration.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21b-SAECalibration-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21c-SAECatastrophes.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-21c-SAECatastrophes-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22-LLMSubstrat.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22-LLMSubstrat-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22b-CausalInterventionEngine.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-22b-CausalInterventionEngine-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-23-PersonaCatastrophe.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-23-PersonaCatastrophe-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-24-WorkspaceIgnition.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-24-WorkspaceIgnition-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-25-InoculationRL.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-25-InoculationRL-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-26-SignalingConvention.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-26-SignalingConvention-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-27-SymbolInvention.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-27-SymbolInvention-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-28-CollectiveAdoption.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-28-CollectiveAdoption-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-29-ConceptInoculation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-29-ConceptInoculation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-30-InhibitedInvention.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-30-InhibitedInvention-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-31-ContrasteTroisSubstrats.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-31-ContrasteTroisSubstrats-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-32-StratificationCausaleLife.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-32-StratificationCausaleLife-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-33-SoupCollisions.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-33-SoupCollisions-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-34-BancRecollementLectures.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-34-BancRecollementLectures-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35-HumorCausalProbe-Pilot.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35-HumorCausalProbe-Pilot-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35b-HumorCausalPairs-SAE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35b-HumorCausalPairs-SAE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35c-HumorDepthProfile-SAE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35c-HumorDepthProfile-SAE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35d-HumorTypologyBreakdown-SAE.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-35d-HumorTypologyBreakdown-SAE-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-36-FLens-FactoredGeometry-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-37-FLens-BeliefState.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-37-FLens-BeliefState-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-38-SLens-SelfLocation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-38-SLens-SelfLocation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-39-CompositionRegards.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-39-CompositionRegards-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40a-TriangulationCausale.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40a-TriangulationCausale-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40b-AnalogCognitionWaves.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-40b-AnalogCognitionWaves-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-41-SAE-GeometrieFeatures.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-41-SAE-GeometrieFeatures-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-Crosscoder-Distillation.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-Crosscoder-Distillation-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-InoculationBifurcation-Pilot.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-InoculationBifurcation-Pilot-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-43-Calibration-MultiEchelle.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-43-Calibration-MultiEchelle-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-GeometryOfTruth.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-44-GeometryOfTruth-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-InoculationBifurcation-9B.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-InoculationBifurcation-9B-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-46-Strate7-FreeCoordinates.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-46-Strate7-FreeCoordinates-Python.ipynb 2026-10-01 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-00-Environment-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-00-Environment-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-01-Backtracking-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-01-Backtracking-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-02-DancingLinks-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-02-DancingLinks-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-03-Genetic-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-03-Genetic-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-04-SimulatedAnnealing-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-04-SimulatedAnnealing-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-05-PSO-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-05-PSO-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-06-AIMA-CSP-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-06-AIMA-CSP-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-07-Norvig-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-07-Norvig-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-08-HumanStrategies-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-08-HumanStrategies-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-09-GraphColoring-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-09-GraphColoring-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-10-ORTools-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-10-ORTools-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-11-Choco-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-12-Z3-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-12-Z3-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-12b-Z3-Linq2Z3-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-12b-Z3-Linq2Z3-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-13-SymbolicAutomata-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-13-SymbolicAutomata-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-14-BDD-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-14-BDD-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-15-Infer-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-15-Infer-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-18-Comparison-Csharp.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-18-Comparison-CSharp.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Sudoku/Sudoku-19-Lean-Propagation.ipynb MyIA.AI.Notebooks/Sudoku/Sudoku-19-Lean-Propagation-Lean.ipynb 2026-09-30 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-18-Sendov-Complex-Analysis.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-01-Sendov-Lean-Python.ipynb 2026-09-27 myia-po-2026:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-19-Analysis-I-Tao-Workflow.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-02-Tao-Lean-Python.ipynb 2026-09-27 myia-po-2026:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-20-PFR-Entropy-Method.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-03-PFR-Lean.ipynb 2026-09-27 myia-po-2026:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-20b-PFR-Primitives-Transportables.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb 2026-09-27 myia-po-2026:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-1-Setup.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-01-Setup-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-2-Dependent-Types.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-02-Dependent-Types-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-3-Propositions-Proofs.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-03-Propositions-Proofs-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-3b-Formalized-Formal-Logic.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-03b-Formalized-Formal-Logic-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-4-Quantifiers.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-04-Quantifiers-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-5-Tactics.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-05-Tactics-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-6-Mathlib-Essentials.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-06-Mathlib-Essentials-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-7-LLM-Integration.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-07-LLM-Integration-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-7b-Examples.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-07b-Examples-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-8-Agentic-Proving.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-08-Agentic-Proving-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-8b-Erdos-Formal-Conjectures-Native.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-08b-Erdos-Formal-Conjectures-Lean.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-9-SK-Multi-Agents.ipynb MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-09-SK-Multi-Agents-Lean-Python.ipynb 2026-09-28 myia-ai-01:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-Python-13-UnsatCores.ipynb MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-13-UnsatCores-Python.ipynb 2026-09-28 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-Python-17-Array-Theory.ipynb MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/Z3-17-Array-Theory-Python.ipynb 2026-09-25 myia-po-2026:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-0-Cypherpunk-Origins.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-00-Cypherpunk-Origins-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-1-Setup-Foundry.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-01-Setup-Foundry-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-2-Setup-Web3py.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-02-Setup-Web3py-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-2b-Bac-ASable-Institutionnel.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/00-Foundations/SC-02b-Bac-ASable-Institutionnel-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-3-Solidity-Basics.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-03-Solidity-Basics-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-4-Functions-State.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-04-Functions-State-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-5-Inheritance.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-05-Inheritance-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-6-Errors-Events.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/01-Solidity-Foundation/SC-06-Errors-Events-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-7-Token-Standards.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-07-Token-Standards-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-7c-ERC20-Lean-Native-Companion.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-07c-ERC20-Lean.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-8-DeFi-Primitives.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-08-DeFi-Primitives-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-9-DAO-Governance.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-09-DAO-Governance-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-10-Account-Abstraction.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-10-Account-Abstraction-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-11-LLM-Assisted.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/02-Solidity-Advanced/SC-11-LLM-Assisted-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-12-Foundry-Testing.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-12-Foundry-Testing-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-13-Fuzz-Invariants.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-13-Fuzz-Invariants-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-14-Formal-Verification.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/03-Foundry-Testing/SC-14-Formal-Verification-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-15-Zero-Knowledge-Proofs.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-15-Zero-Knowledge-Proofs-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-16-Homomorphic-Encryption.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-16-Homomorphic-Encryption-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-17-E2E-Verifiable-Voting.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/04-Privacy-Cryptography/SC-17-E2E-Verifiable-Voting-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-18-Vyper.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-18-Vyper-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-19-Ripple-XRP.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-19-Ripple-XRP-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-20-Bitcoin-Scripting.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-20-Bitcoin-Scripting-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-21-Move-Sui.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-21-Move-Sui-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-22-Solana-Anchor.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/05-Alternative-Chains/SC-22-Solana-Anchor-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-23-Cross-Chain.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-23-Cross-Chain-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-24-Testnet-Deploy.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-24-Testnet-Deploy-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-25-Mainnet-Deploy-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-26-Final-Project.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-26-Final-Project-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-27-Dette-Irreversibilite.ipynb MyIA.AI.Notebooks/SymbolicAI/SmartContracts/06-Real-World/SC-27-Dette-Irreversibilite-Python.ipynb 2026-09-25 myia-po-2025:CoursIA
+ancien nouveau date lane
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42-Crosscoder-Distillation-Python.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-41b-Crosscoder-Distillation-Python.ipynb 2026-10-03 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/IIT/ICT-Series/ICT-45-InoculationBifurcation-9B-Python.ipynb MyIA.AI.Notebooks/IIT/ICT-Series/ICT-42b-InoculationBifurcation-9B-Python.ipynb 2026-10-04 myia-po-2023:CoursIA
+MyIA.AI.Notebooks/Search/Part1-Foundations/Search-09d-Lean-Discrepancy-Komlos.ipynb MyIA.AI.Notebooks/Search/Discrepancy/Discrepancy-02-Komlos-Lean.ipynb 2026-10-04 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_1_intro_cartpole.ipynb MyIA.AI.Notebooks/RL/RL-01-Premiers-Pas-Stable-Baselines3-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_1b_bitwise_logic_synthesis.ipynb MyIA.AI.Notebooks/RL/RL-01b-Synthese-Logique-Bitwise-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_1c_prolog_distillation.ipynb MyIA.AI.Notebooks/RL/RL-01c-Distillation-Politique-Prolog-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_2_wrappers_sauvegarde_callbacks.ipynb MyIA.AI.Notebooks/RL/RL-02-Wrappers-Sauvegarde-Callbacks-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_3_experience_replay_her.ipynb MyIA.AI.Notebooks/RL/RL-03-Experience-Replay-HER-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_4_multi_armed_bandits.ipynb MyIA.AI.Notebooks/RL/RL-04-Bandits-Manchots-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_5_mdp_dp_qlearning.ipynb MyIA.AI.Notebooks/RL/RL-05-MDP-Programmation-Dynamique-Q-Learning-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_6_dqn_policy_gradient.ipynb MyIA.AI.Notebooks/RL/RL-06-DQN-Policy-Gradient-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_6b_actor_critic.ipynb MyIA.AI.Notebooks/RL/RL-06b-Actor-Critic-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_6c_ppo_from_scratch.ipynb MyIA.AI.Notebooks/RL/RL-06c-PPO-Depuis-Zero-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_6d_sac_from_scratch.ipynb MyIA.AI.Notebooks/RL/RL-06d-SAC-Depuis-Zero-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_6e_grpo_from_scratch.ipynb MyIA.AI.Notebooks/RL/RL-06e-GRPO-Depuis-Zero-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_7_multi_agent_rl.ipynb MyIA.AI.Notebooks/RL/RL-07-Apprentissage-Multi-Agent-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/RL-7b-Climbing-Game.ipynb MyIA.AI.Notebooks/RL/RL-07b-Sur-Generalisation-Climbing-Game-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_8_model_based_dyna_q.ipynb MyIA.AI.Notebooks/RL/RL-08-Dyna-Q-Planification-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_9_offline_rl.ipynb MyIA.AI.Notebooks/RL/RL-09-RL-Offline-Behavior-Cloning-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_10_reward_shaping.ipynb MyIA.AI.Notebooks/RL/RL-10-Reward-Shaping-Curriculum-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_11_pomdp.ipynb MyIA.AI.Notebooks/RL/RL-11-POMDP-Croyances-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_12_distributional_rl.ipynb MyIA.AI.Notebooks/RL/RL-12-Distributional-RL-C51-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_13_curiosity_exploration.ipynb MyIA.AI.Notebooks/RL/RL-13-Curiosite-RND-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_14_hierarchical_rl.ipynb MyIA.AI.Notebooks/RL/RL-14-RL-Hierarchique-Options-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_15_grpo_group_relative_policy.ipynb MyIA.AI.Notebooks/RL/RL-15-GRPO-Comparatif-Multi-Graines-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_16_dream_rsi.ipynb MyIA.AI.Notebooks/RL/RL-16-Dream-RSI-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rl_19_reward_tampering.ipynb MyIA.AI.Notebooks/RL/RL-19-Reward-Tampering-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0_reward_model_from_scratch.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00-Reward-Model-Bradley-Terry-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0b_preference_dataset_bias.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00b-Biais-Dataset-Preferences-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0c_reward_hacking_case_study.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00c-Anatomie-Reward-Hacking-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0d_reward_trainer_sota.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00d-Reward-Trainer-TRL-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0e_trl_DPO_SOTA.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00e-DPO-TRL-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0f_comparaison_GRPO_TRL_et_PPO_maison.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00f-GRPO-TRL-contre-PPO-Maison-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_0g_ppo_TRL_experimental.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-00g-PPO-TRL-Experimental-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_1_ppo_lm_rlhf.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-01-PPO-RLHF-Petit-Modele-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_2_grpo_minimal.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-02-GRPO-Minimal-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_3_reward_hacking.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-03-Reward-Hacking-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/RL/rlpt_4_dpo_vs_ppo.ipynb MyIA.AI.Notebooks/RL/PostTraining/RLPT-04-DPO-Offline-contre-GRPO-Online-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/CSP/App-22-EdgeColoring-Tutte.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-01-EdgeColoring-Tutte-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-25-CombinatorialAuctions-WDP-VCG.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-04-CombinatorialAuctions-WDP-VCG-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/CSP/App-26-CoveringArrays-Guarantee-Audit.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-05-CoveringArrays-Guarantee-Audit-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-29-SALBP-AssemblyLineBalancing-Audit.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-07-SALBP-AssemblyLineBalancing-Audit-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-31-RCPSP-Max-Feasibility-Bounds.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-09-RCPSP-Max-Feasibility-Bounds-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
+MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb 2026-10-05 myia-po-2027:CoursIA
diff --git a/scripts/notebook_tools/twin_pairs.d/app-20-sudokubenchmark/0014-2026-10-05-po-2027-markdown-only-nav-edge-App-20-App-21-des.yaml b/scripts/notebook_tools/twin_pairs.d/app-20-sudokubenchmark/0014-2026-10-05-po-2027-markdown-only-nav-edge-App-20-App-21-des.yaml
new file mode 100644
index 0000000000..0e8660e7d4
--- /dev/null
+++ b/scripts/notebook_tools/twin_pairs.d/app-20-sudokubenchmark/0014-2026-10-05-po-2027-markdown-only-nav-edge-App-20-App-21-des.yaml
@@ -0,0 +1,7 @@
+date: '2026-10-05'
+by: 'po-2027 markdown-only nav edge App-20->App-21 (descente Research #17802), contenu
+ pedagogique inchang'
+python_sha: be1db1d06effbbe51045cc5958f3e43711dc3e1b
+csharp_sha: 57e00928c0f5574396e391c52a016c1900e44209
+content_python_sha: dcae1990b2f60196ff384b412f73eb19191b9a6d1bdbb938d4158742fc7e791f
+content_csharp_sha: 7887bee7640cab42ac3f89db451e31732ec74c586150c0eaa9bdce6ce6ed79e6
diff --git a/scripts/tests/baseline_nb_nav_chain.json b/scripts/tests/baseline_nb_nav_chain.json
index 2dac2c4dc7..6e4bc8102a 100644
--- a/scripts/tests/baseline_nb_nav_chain.json
+++ b/scripts/tests/baseline_nb_nav_chain.json
@@ -1220,11 +1220,6 @@
"notebook": "MyIA.AI.Notebooks/Search/Applications/CSP/App-20b-SudokuBenchmark-CSharp.ipynb",
"series": "MyIA.AI.Notebooks/Search/Applications/CSP"
},
- {
- "kind": "orphan_entry",
- "notebook": "MyIA.AI.Notebooks/Search/Applications/CSP/App-23-Factorio-Balancer.ipynb",
- "series": "MyIA.AI.Notebooks/Search/Applications/CSP"
- },
{
"kind": "orphan_entry",
"notebook": "MyIA.AI.Notebooks/Search/Applications/CSP/App-5-Timetabling-CSharp.ipynb",
@@ -1265,31 +1260,11 @@
"notebook": "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-22-AlgorithmSelection-Python.ipynb",
"series": "MyIA.AI.Notebooks/Search/Applications/Hybrid"
},
- {
- "kind": "orphan_entry",
- "notebook": "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-24-MAPF-Guarantee-Audit.ipynb",
- "series": "MyIA.AI.Notebooks/Search/Applications/Hybrid"
- },
{
"kind": "orphan_entry",
"notebook": "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-27-Sparse-Index-Tracking-Walk-Forward.ipynb",
"series": "MyIA.AI.Notebooks/Search/Applications/Hybrid"
},
- {
- "kind": "orphan_entry",
- "notebook": "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-28-LearningToBranch-Generalization-Audit.ipynb",
- "series": "MyIA.AI.Notebooks/Search/Applications/Hybrid"
- },
- {
- "kind": "orphan_entry",
- "notebook": "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-30-OrbitalAssembly-Certificate-Audit.ipynb",
- "series": "MyIA.AI.Notebooks/Search/Applications/Hybrid"
- },
- {
- "kind": "orphan_entry",
- "notebook": "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-33-NeuralDiving-Coloration.ipynb",
- "series": "MyIA.AI.Notebooks/Search/Applications/Hybrid"
- },
{
"kind": "orphan_entry",
"notebook": "MyIA.AI.Notebooks/Search/Applications/Search/App-14-ConnectFour-Adversarial-CSharp.ipynb",
@@ -1445,6 +1420,31 @@
"notebook": "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy/MGS-31-Synthese-Croisee.ipynb",
"series": "MyIA.AI.Notebooks/Search/Part4-Metaheuristics/MGS-vs-mealpy"
},
+ {
+ "kind": "orphan_entry",
+ "notebook": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-02-Factorio-Balancer-Python.ipynb",
+ "series": "MyIA.AI.Notebooks/Search/Part5-Frontieres"
+ },
+ {
+ "kind": "orphan_entry",
+ "notebook": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-03-MAPF-Guarantee-Audit-Python.ipynb",
+ "series": "MyIA.AI.Notebooks/Search/Part5-Frontieres"
+ },
+ {
+ "kind": "orphan_entry",
+ "notebook": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-06-LearningToBranch-Generalization-Audit-Python.ipynb",
+ "series": "MyIA.AI.Notebooks/Search/Part5-Frontieres"
+ },
+ {
+ "kind": "orphan_entry",
+ "notebook": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-08-OrbitalAssembly-Certificate-Audit-Python.ipynb",
+ "series": "MyIA.AI.Notebooks/Search/Part5-Frontieres"
+ },
+ {
+ "kind": "orphan_entry",
+ "notebook": "MyIA.AI.Notebooks/Search/Part5-Frontieres/Frontieres-10-NeuralDiving-Coloration-Python.ipynb",
+ "series": "MyIA.AI.Notebooks/Search/Part5-Frontieres"
+ },
{
"kind": "orphan_entry",
"notebook": "MyIA.AI.Notebooks/Sudoku/Sudoku-12b-Z3-Linq2Z3-CSharp.ipynb",