Méthode — cascade déterministe & couche de Markov
aesop_modelisation/docs/METHODS.md.
1. Cascade déterministe — les invariants
- Plancher intrinsèque. La santé de référence de chaque nœud est
figée au démarrage (
initial_state) et n'est abaissée que par les perturbations programmées :plancher(t) = f(instantané, perturbations ≤ t)— une fonction pure du numéro de tour, donc rejouable. - Un saut par tour. La santé effective du tour t se calcule depuis l'instantané figé du tour t−1 : une perturbation atteint un voisin direct au tour suivant, un voisin à deux sauts en deux tours — jamais d'emballement dans le même tour.
- Contribution dominante. Le déficit entrant d'un nœud est le maximum des contributions (pas la somme) : la dépendance la plus forte l'emporte, la cascade reste bornée et monotone.
contribution sectorielle : wS→T × moyenne(déficitprev du secteur S)
contribution nodale : wu→v × déficitprev(u)
déficit entrant(n) = max(contributions) (plafonné à 100)
santét(n) = max(0, planchert(n) − déficit entrant(n))
Indicateurs agrégés : IEG_nœuds = moyenne des santés ;
IEG_liaisons = santé des liaisons plafonnée par leurs extrémités ;
IEG_IS = (nœuds + liaisons) / 2 ; rollup PNAIV ; et
IEP = max(0, 100 − w × déficit moyen de l'IS source) pour chaque
dépendance inter-IS.
Aucun tirage Monte-Carlo n'est utilisé dans ce service — la
piste « Monte-Carlo sur scénarios de perturbation » (N rejeux à graines
variées → distribution des issues) est une évolution future documentée.
2. Couche de Markov (optionnelle, par session)
Chaque nœud porte un état dérivé de sa santé — Nominal → Dégradé → Critique → Défaillant — et, si la couche est activée, tire à chaque tour son prochain état dans la matrice de transition de son secteur. Un état tiré pire plafonne la santé à la bande correspondante ; un état meilleur est ignoré (dégradation seulement : le déterministe reste la borne haute).
- Bandes : Nominal ≥ 75 > Dégradé ≥ 50 > Critique ≥ 25 > Défaillant.
- Reproductibilité : chaque triplet (graine, tour, nœud) a son propre
générateur —
Random(f"{graine}:{tour}:{nœud}")— donc prévisualiser dix fois ne change rien, et la trajectoire est une fonction pure de (graine, graphe, perturbations). Prévision = exécution, garanti. - Matrices et graine verrouillées après le tour 0 (contrat d'audit).
Matrice par défaut
| 0.95 | 0.05 | 0.00 | 0.00 |
| 0.00 | 0.90 | 0.10 | 0.00 |
| 0.00 | 0.00 | 0.90 | 0.10 |
| 0.00 | 0.00 | 0.00 | 1.00 |
3. Couplages et dépendances chargés
Couplages sectoriels (ISCoupling)
| Source | Cible | Poids | Provenance |
|---|---|---|---|
| Electricity | Hydrocarbons | 0.40 | seed |
| Electricity | Telecom | 0.80 | seed |
| Electricity | Transport | 0.50 | seed |
| Electricity | Water | 0.70 | seed |
| Hydrocarbons | Electricity | 0.50 | seed |
| Hydrocarbons | Transport | 0.60 | seed |
| Telecom | Electricity | 0.30 | seed |
| Telecom | Transport | 0.30 | seed |
| Water | Electricity | 0.20 | seed |
Dépendances nodales (ISDependency)
| Source | Cible | Poids |
|---|---|---|
| Sodra Substation 330kV | Sodra District Load | 0.70 |
| Eastline Compressor | Sodra Substation 330kV | 0.50 |
4. Protocole humain dans la boucle
Avant chaque tour, la salle de contrôle affiche une prévision exacte du tour suivant (même code que l'exécution). L'opérateur peut : approuver (le tour s'exécute), suspendre (veto — rien ne s'exécute, la session passe en pause), injecter une perturbation pour le tour à venir, exécuter jusqu'à la fin, ou réinitialiser. Chaque action est journalisée (horodatage, opérateur, justification) et le journal survit aux réinitialisations.