Mathematical model¶
Variables¶
Incidents¶
Les incidents sont listés dans le conteneur \(INCIDENT\). Nous noterons \(inc\) un élément de cette liste. Ce dernier peut provoquer :
l’ouverture d’un certain nombre de lignes \(DEFAUTQUAD_{inc}\) ;
l’ouverture d’un certain nombre de LCCs \(DEFAUTLCC_{inc}\) ;
et/ou l’arrêt de certains groupes \(DEFAUTGRP_{inc}\).
Parallèlement, afin de corriger cet incident, certains moyens curatifs pourront être utilisés. Ils sont stockés dans la liste \(CURATIF_{inc}\) et contiennent des groupes, des consommations, des TDs, des HVDCs et/ou des parades.
Enfin, cet incident a une certaine probabilité de survenir, notée \(proba_{inc}\). Cet incident sera forcément appliqué sur le réseau lors de la simulation de METRIX, mais cette probabilité permet de pondérer le coût d’utilisation des actions curatives.
Groupes¶
Les groupes du réseau modélisé dans METRIX sont stockés dans une liste \(GROUPE\). La production d’un groupe peut être modifiée en Adequacy phase, en Redispatching phase, les deux ou aucune. Nous ne considérerons dans les équations, que les groupes modifiables en toute circonstance.
Définition des variables¶
Soit \(i\) un groupe de \(GROUPE\).
Sa production se définit par une valeur initiale \(P_i^0\) et des valeurs minimum et maximum \(P_{i}^{min}\) et \(P_{i}^{max}\). Il existe deux valeurs pour la puissance minimum : \(P_{i_{ad}}^{min}\) et \(P_{i_{red}}^{min}\), représentant les minimums pour l’Adequacy et le Redispatching tels que :
La variation de puissance du groupe \(i\) est décrite dans les problèmes d’Adequacy et de Redispatching en N par deux variables : \(p_i^+\) et \(p_i^-\), toutes deux positives, et représentant respectivement la hausse et la baisse de la production du groupe \(i\). De même, pour chaque incident \(inc\), nous disposons de deux variables \(p_{i_{inc}}^{-}\) et \(p_{i_{inc}}^{+}\) représentant la variation de la puissance en curatif sur cet incident \(inc\), et d’une variable booléenne d’activation du curatif sur l’incident \(actP_{i}^{inc}\). Ces trois variables curatives sont ainsi reliées de la manière suivante :
Avec \(M\) une très grande valeur.
Domaines de définition des variables¶
Les domaines de définitions pour les variables liées à la production sont :
Adequacy phase (EOD - Équilibre Offre Demande) :
Redispatching phase en préventif :
Les variables et paramètres sont modifiés à partir du résultat de l’Adequacy phase pour les intégrer dans la Redispatching phase : \(P_i^0 = p_i^+ - p_i^- + P_i^0\). Autrement dit, la puissance de consigne en préventif prend pour valeur le résultat de l’Adequacy phase et les variables de production à la hausse ou à la baisse sont ensuite réinitialisées (N.B. : c’est un comportement propre aux groupes). Les bornes sont alors les suivantes :
Redispatching phase en curatif :
Coûts¶
En outre, la modification des variables de production des groupes a un coût. Plus précisément, nous allons associer des coûts à la hausse et à la baisse en Adequacy phase : \(\Gamma_{i_{ad}}^{-}\) et \(\Gamma_{i_{ad}}^{+}\) ; et en Redispatching phase : \(\Gamma_{i_{red}}^{-}\) et \(\Gamma_{i_{red}}^{+}\).
Appartenance à une zone synchrone¶
Chaque groupe est rattaché à un unique nœud du réseau, appartenant, lui-même, à une unique zone synchrone. Pour chaque zone synchrone \(zc \in ZC\), nous notons \(GROUPE_{zc}\) l’ensemble des groupes appartenant à cette zone synchrone.
Contrainte de couplage des groupes¶
Lors de la Redispatching phase, nous pouvons définir dans le réseau un ensemble de groupes dont la production en N doit varier de façon proportionnelle. Notons \(COUPLAGE^{GRP}\) l’ensemble des couplages groupés. Afin de définir cette variation, nous allons définir une valeur de référence pour chacun des groupes de cet ensemble. Cette valeur de référence peut être \(P^{max}\), \(P^{min}\), \(P^{0}\) ou encore \(P^{max} - P^{0}\). Celle-ci sera notée \(P^{ref}\).
Soit \(i_0\) le premier groupe de cet ensemble. \(\forall i \in COUPLAGE^{GRP}\), \(i \not = i_0\) :
Contrainte de limitation des changements curatifs¶
Cette contrainte est facultative, il faut indiquer dans les données METRIX que nous souhaitons l’appliquer (avec le paramètre LimiteCurGroupe). Cette contrainte permet de limiter la baisse cumulée de la production en curatif sur un incident \(inc\) :
Note : la contrainte ne considère que les variations à la baisse afin de prendre en compte le délestage de consommation.
Données
Ensembles : \(GROUPE\), \(COUPLAGE^{GRP}\), \(GROUPE_{zc}\)
Valeurs :
LimiteCurGroupe
\(\forall i \in GROUPE : P_{i}^{max}, P_{i_{ad}}^{min}, P_{i_{red}}^{min}, P_{i}^{ref}, \Gamma_{i_{ad}}^{-}, \Gamma_{i_{ad}}^{+}, \Gamma_{i_{red}}^{-}, \Gamma_{i_{red}}^{+}\)
Variables
\(\forall i \in GROUPE, \forall inc \in INCIDENT : p_{i}^{+}, p_{i}^{-}, p_{i_{inc}}^{+}, p_{i_{inc}}^{-}, actP_{i}^{inc}\)
Contraintes
Contraintes des domaines de définition
Contrainte de couplage des groupes
Contrainte de limitation des changements curatifs
Consommations¶
Les centres de consommations (appelés consommations) sont dans la liste \(CONSO\). La puissance utilisée par une consommation peut être modifiée aussi bien en Adequacy qu’en Redispatching phase.
Définition des variables¶
Soit \(i\) une consommation du groupe \(CONSO\).
\(C_{i}^{0}\) définit la puissance consommée à l’état initial ; le délestage est représenté en Adequacy phase et en préventif par la variable \(c_i^{-}\) et en curatif sur un incident \(inc\) par la variable \(c_{i_{inc}}^{-}\) et la variable booléenne d’activation \(actC_i^{inc}\). Tel que :
Avec \(M\) une valeur très élevée.
Domaines de définition des variables¶
Pour fixer la valeur maximale du délestage, un pourcentage est utilisé. Celui-ci est défini par les paramètres \(\Phi_i\) en Adequacy phase et en préventif, et \(\Phi_{i_{cur}}\) en curatif. Ainsi, nous obtenons les encadrements suivants :
Pour l’Adequacy phase et le préventif :
Pour le curatif :
Définition des coûts¶
Pout chaque groupe, nous définissons un coût pour l’Adequacy phase et le préventif \(\Gamma_i^{conso}\) et un autre pour le curatif \(\Gamma_{i_{cur}}^{conso}\).
Appartenance à une zone synchrone¶
Chaque consommation se rattache à un unique nœud du réseau, qui fait lui-même parti d’une unique zone synchrone. Pour chaque zone synchrone \(zc \in ZC\), nous notons \(CONSO_{zc}\) les consos appartenant à cette zone synchrone.
Contrainte de couplage des consos¶
Tout comme pour les groupes, des consommations peuvent être couplées afin que leur délestage en N soient proportionnels. Notons \(COUPLAGE_{CONSO}\) la liste de ces consommations couplées.
Soit i\(_0\) le premier groupe de cette liste. \(\forall i \in COUPLAGE_{CONSO}, i \neq i_0\) :
Données
Ensembles : \(CONSO\), \(COUPLAGE_{CONSO}\), \(CONSO_{zc}\)
Valeurs : \(\forall i \in CONSO : C_i^{0}, \Phi_i, \Phi_{i_{cur}}\)
Variables
Contraintes Contrainte de couplage des consos.
Transformateur-Déphaseur (TD)¶
Les TDs sont stockés dans une liste \(TD\). Soit \(i\) un élément de cette liste.
Valeurs min et max des TDs¶
Dans METRIX, le déphasage se fera sans passer d’une prise à l’autre de manière discrète, mais avec des variables continues évoluant entre une puissance min et une puissance max. Les listes des prises de déphasage d’un TD sont toutefois utilisées afin de fixer ces puissances min et max, notées \(TD_i^{min}\) et \(TD_i^{max}\).
Ces valeurs pourront être tirées des données d’entrée si les bornes de changement de prises à la hausse et à la baisse ne sont pas définies.
Définition des variables¶
La puissance de consigne transmise par \(i\) du nœud Or au nœud Nf va être représentée par le paramètre \(TD^{0}_i\). La variation de cette puissance en préventif va être représentée par les variables positives \(td^{+}_i\) à la hausse et \(td^{-}_i\) à la baisse. De même, si le TD est autorisé à agir en curatif sur l’incident \(inc\), nous allons utiliser les variables curatives positives \(td^{+}_{i_{inc}}\) et \(td^{-}_{i_{inc}}\) et la vraiable booléenne \(actTD_{i}^{inc}\). Ces trois variables sont reliées par la contrainte suivante :
Avec \(M\) ue valeur très élevée.
Domaines de définition des variables¶
Chaque TD est pilotable de quatre manières différentes :
En puissance imposée
En puissance optimisée
En angle imposé
En angle optimisé
Les pilotages imposés impliquent que le TD échangera toujours la même puissance entre les deux nœuds Or et Nf : \(td^{+}_{i} = td^{-}_{i} = td^{+}_{i_{inc}} = td^{-}_{i_{inc}} = 0\).
Pour les pilotages en puissance (imposée et optimisée), le quadFictif est ouvert : seule la puissance du TD sera transmise entre les nœuds Or et Nf.
Pour le pilotage optimisé (en angle ou en puissance), les paramètres \(TD_i^{min}\) et \(TD_i^{max}\) définis précédemment, sont utilisés tels que :
Pour l’encadrement curatif, les contraintes suivantes sont ajoutées :
Domaines de définition des variables¶
En ce qui concerne le coût, les TDs ont tous le même coût d’utilisation en préventif \(\Gamma^{TD}\), défini dans les paramètres de METRIX. En curatif, ce coût est pondéré par la probabilité d’apparition de l’incident, et va donc dépendre de chaque incident.
En résumé : Les TDs permettent de modifier le transit des lignes pour éviter les surcharges, sans modifier l’équilibrage offre-demande.
Données
Ensembles : \(TD\)
Valeurs : \(TD^{0}_i\), \(TD^{max}_i\), \(TD^{min}_i\), \(\Gamma^{TD}\)
Variables
Lignes à Courant Continu (LCC)¶
Les LCCs du réseau simulé par METRIX sont stockées dans l’ensemble \(LCC\).
Variables et encadrement¶
Soit \(i \in LCC\), notons :
\(Lcc_i^{0}\) sa puissance de consigne ;
\(Lcc_i^{min}\) sa puissance minimale ;
et \(Lcc_i^{max}\) sa puissance maximale.
Les variations de \(i\) sont représentées :
en préventif par les variables positives \(lcc_i^{+}\) et \(lcc_i^{-}\) ;
et en curatif par les variables positives \(lcc_{i_{inc}}^{+}\) et \(lcc_{i_{inc}}^{-}\) ainsi que par la variable booléenne \(actLCC_{i}^{inc}\).
Ces trois variables sont reliées pâr la contrainte suivante :
Avec \(M\) une valeur très grande.
Les variables représentant les variations de puissance de la LCC ont l’encadrement suivant :
Si le pilotage est en puissance optimisée ou en émulation AC optimisée :
Sinon, il est imposé :
En curatif, les encadrements pour les pilotages optimisés sont les suivants :
Définition des coûts¶
En ce qui concerne le coût, les LCCs ont toutes le même coût d’utilisation en préventif \(\Gamma^{LCC}\), défini dans les paramètres de METRIX. En curatif, ce coût est pondéré par la probabilité d’apparition de l’incident, et dépendra donc de chaque incident.
Lien entre zones synchrones¶
Notons \(\forall zc \in ZC\) , \(LCC_{zc}^+\) l’ensemble des LCCs transportant le courant de la zone synchrone \(zc\) vers une autre zone synchrone. De même, \(LCC_{zc}^-\) est l’ensemble des LCCs prélevant de la puissance à la zone synchrone \(zc\) pour l’envoyer vers une autre zone synchrone.
LCC en émulation AC¶
Le TD fictif ne pourra jamais agir en préventif : \(\forall inc \in INCIDENT\), une contrainte d’activation relie les variables préventives du TD à la variable d’activation en curatif du même TD sur cet incident (\(actLCC_{inc}^i\)) ; et cette variable d’activation va être bloquée à \(0\), empêchant toute variation des variables préventives. Plus tard, si la variable d’activation est débloquée, les variables préventives ne seront utilisées par le problème que dans le calcul du transit sur quadripôle, et de toute façon le coefficient associé sera nul. Quant aux variables curatives (linéaires et booléennes), elles sont reliées par une contrainte d’activation. Soit \(i \in TD, inc \in INCIDENT\) :
La variable d’activation est bloquée à \(0\), à moins que le quadripôle quad0 soit en contrainte. Dans ce cas, la variable est libre de changer de valeur.
Ce TD fictif aura un coût d’utilisation nul. Il aura le même encadrement en préventif que les TDs normaux, avec des puissances max et min issues de la LCC en émulation AC. Il aura également comme encadrement en curatif :
Les TDs fictifs sont stockés dans l’ensemble \(TDF\).
Données
Ensembles : \(LCC\), \(TDF\), \(\forall zc \in ZC: LCC_{zc}^+, LCC_{zc}^-\)
Valeurs : \(\forall i \in LCC : Lcc_i^{0}, Lcc_i^{max}, Lcc_i^{min}, \Gamma^{LCC}\)
Variables
Parades¶
Les parades sont listées dans \(PARADE\). Soit \(prd \in PARADE\). Chaque parade est associée à un unique incident \(inc \in INCIDENT\).
\(prd\) possède en paramètre la liste des couplages qu’elle ferme (\(COUPLAGEFERMER_{prd}\)) et ceux qu’elle ouvre (\(COUPLAGEOUVRIR_{prd}\)).
Nous définissons, pour un incident \(inc\) et une parade \(prd\), la variable d’activation de la parade sur cet incident \(actPRD_{prd}^{inc}\), de coût dans la fonction objectif \(\Gamma^{PRD}\).
Contrainte d’unicité des parades¶
Pour chaque incident, une parade unique est applicable, \(\forall inc \in INDICENT\) :
Dans le code, l’inégalité de cette contrainte est transformée en une égalité, par l’intermédiaire de l’introduction d’une parade “Ne Rien Faire” pour chaque incident possédant des parades topologiques en actions curatives. Cette parade n’a aucune action sur le réseau.
Contrainte d’utilisation des parades¶
L’activation d’une parade \(prd\) peut être empêchée s’il n’existe aucune ligne, parmi un certain ensemble de lignes, non contrainte. Notons \(QUADNECESSAIRES_{prd}\) cet ensemble.
Notons \(QUADENCONTRAINTE_{inc}\) la liste des lignes en surtension suite à l’incident \(inc\). Alors \(\forall inc \in INCIDENT, \forall prd \in PARADE \cap CURATIF_{inc}\) :
Contrainte de valorisation des poches perdues¶
Lors de son utilisation, il est possible qu’une parade rompe la connexité du réseau en déconnectant des nœuds de ce dernier. Les productions et consommations présentes sur ces nœuds vont alors être perdues. Si cela survient, une sanction économique dans la fonction objectif doit être appliquée.
Soit \(inc \in INCIDENT\) et \(prd \in PARADE\) une parade rompant la connexité du réseau en déconnectant certains nœuds de celui-ci.
Notons :
\(\Gamma^{ENE}\) le coût de l’énergie non évacuée
\(\Gamma^{END}\) le coût de l’énergie non distribuée
\(GRPDECO\) l’ensemble des groupes liés aux nœuds de la poche perdue
\(CONSODECO\) l’ensemble des consos liées aux nœuds de la poche perdue
\(VALOMax = proba_{inc} \cdot (\Gamma_{ENE} \cdot \sum_{i \in GRPDECO} (|P_i^0| + P_i^{max}) + \Gamma^{END} \cdot \sum_{i \in CONSODECO} C_i^0)\)
Afin de quantifier la sanction économique, une nouvelle variable positive est introduite telle que : \(val_{prd}^{inc} \in [0; max(0; VALOMax)]\).
Données
Ensembles : \(PARADE\), \(\forall prd \in PARADE\) :
Valeur : \(\Gamma^{PRD}\)
Variables
\(\forall inc \in INCIDENT, \forall prd \in PARADE : actPRD_{prd}^{inc}, val_{prd}^{inc}\)
Contraintes
Contrainte d’unicité des parades
Contrainte d’utilisation des parades
Contrainte de valorisation des poches perdues
Problèmes d’optimisation¶
Ci-après, les modèles mathématiques des deux phases d’optimisation :
l’Adequacy phase (i.e. équilibrage production - consommation);
et la Redispatching phase (i.e. résolution des contraintes réseau).
Modèle mathématique de l’Adequacy phase¶
Lors de cette phase, nous ne nous occupons que de l’équilibrage production - consommation, sans tenir compte du réseau électrique en lui-même.
Contraintes¶
Équilibrage Offre-Demande global
L’équilibrage du réseau revient à avoir une égalité entre la production et la consommation afin que la demande soit satisfaite sans aucun excès de prodution :
Équilibrage Offre-Demande par zone synchrone
Le réseau est composé de nœuds, se répartissant dans des zones synchrones. Les Lignes à Courant Continu peuvent servir d’interconnexion entre ces zones synchrones, et il est possible de faire varier la puissance transmise par ces interconnexions.
Dès lors, \(\forall zc \in ZC\) :
Fonction objectif
Modèle mathématique de la Redispatching phase¶
Lors de cette phase, nous ajoutons la prise en compte du réseau via la gestion des flux sur les lignes. L’ensemble des
données, variables et contraintes du problème d’Adequacy sont gardées et nous y ajoutons certains éléments : aucune
des contraintes précédentes n’est affectée.
De ce fait, les contraintes de transit apparaissent, mais aussi sur les TDs, LCCs, parades et incidents.
Contraintes¶
Définies dans la section Groupes¶
Définies dans la section Consommations¶
Définies dans la section Parades¶
Nouvelles contraintes¶
Équilibrage Offre-Demande en curatif
Au sein de cette phase, l’équilibre entre production et consommation doit aussi être respecté en curatif, quel que soit l’incident.
\(\forall inc \in INCIDENT, \forall zc \in ZC\) :
N.B. : Exprimée ainsi, cette contrainte devrait être fausse en cas de perte d’un groupe, car elle maintient l’EOD alors qu’une perte de groupe briserait l’équilibre. Dans les faits, METRIX prévoit en pré-traitement une “demi-bande de réglage” sur chaque groupe, en fonction de l’incident groupe le plus dimensionnant. Avant chaque résolution, METRIX abaisse la Pmax de chaque groupe de sa “demi-bande de réglage”. Lors de la perte d’un groupe, on ventile alors la production perdue sur l’ensemble des autres groupes disponibles.
Contraintes des seuils de transit
Le transit sur les lignes notifiées dans les données comme étant “À surveiller” va être calculé à chaque micro-itération de la résolution. En effet, ces lignes doivent respecter trois seuils :
En N
En N-k après actions curatives
En N-k après incident, mais avant les actions curatives ou manœuvres (i.e. seuil ITAM)
Si un de ces seuils n’est pas respecté à la fin de la micro-itération, la contrainte associée est rajoutée. Pour chacune de ces situations (notée \(situ\)), et \(\forall i \in QUADRIPOLE\) (i.e. pour toute ligne) :
Ce transit est déterminé via l’influence d’un ensemble de variables \(VARINFLU^{situ}\) sur le transit de \(i\). Cet ensemble dépendra de la situation \(situ\) considérée et, dans le cas d’une situtation de type N-k, de l’incident concerné. Chaque variable de cete ensemble va ainsi être associée à un coefficient d’influence. Ces coefficients dépendent de la tologie du réseau en situation \(situ\) et sont stockés dans l’ensemble \(COEFINFLU_i^{situ}\). Ces deux ensembles sont de même cardinalité, notée \(N\), puisque toute variable a, par définition, une influence et donc un coefficient d’influence. De ce fait :
Pour une même ligne, la valeur du maximum \(Max_i^{situ}\), les coefficients d’influence \(COEFINFLU_i^{situ}\) (car la topologie du réseau peut changer avec les incidents), et surtout l’ensemble \(VARINFLU^{situ}\), vont changer d’une situation à l’autre. Plus précisément, selon la situation l’ensemble \(VARINFLU^{situ}\) contient :
En N : toutes les variables préventives des groupes, consommations, HVDCs et TDs.
En N-k après actions curatives : toutes les variables préventives continues des groupes, consommations, HVDCs et TDs pouvant agir en préventif, ainsi que les variables curatives continues de ces mêmes éléments pouvant agir en curatif sur l’incident concerné.
En N-k après un incident, mais avant les actions curatives : toutes les variables préventives des groupes, consommations, HVDCs et TDs, ainsi que les variables curatives continues de tous les TDs fictifs des HVDCs en émulation AC.
Cas des incidents avec parades provoquant des surcharges
La formulation de la contrainte de transit va être différente lorsque des parades peuvent être utilisées.
Tout comme les autres contraintes de transit, ces contraintes seront ajoutées au fur et à mesure des micro-itérations, dès qu’une contrainte sur une ligne à surveiller est détectée. Si un incident possédant des parades en actions curatives engendre une contrainte sur un quadripôle, alors des contraintes pour chaque parade de cet incident seront également ajoutées. Soit \(inc \in INCIDENT\) un tel incident, \(quad \in QUADRIPOLE\) le quadripôle en contrainte et \(prd \in PARADE \cap CURATIF_{inc}\) une parade qui est curative de cet incident. Posons aussi \(M\) une très grande valeur, et \(situ\) la situation “N-k après actions curatives”. Deux scénarios sont possibles :
soit la parade \(prd\) ouvre le quadripôle \(quad\), dans ce cas il n’y a pas de raison d’introduire une contrainte de transit liant \(quad\) et \(prd\).
sinon, la contrainte suivante est introduite :
Avec \(transit_{quad}^{situ}\) le transit sur \(quad\) lorsque \(prd\) est activée. Le transit sur \(quad\) est donc seulement contraint (par rapport à \(Max_{quad}^{situ}\)) si \(prd\) est activée (qui peut être la parade “Ne rien faire”).
En outre, si la parade possède une liste \(QUADNECESSAIRES_{prd}\) non vide (i.e. un ensemble de lignes dont au moins une doit être en contrainte pour que \(prd\) soit activable) :
Si \(quad \notin QUADNECESSAIRES_{prd}\), alors \(prd\) n’est, dans un premier temps, pas activable sur \(inc\) : \(act_{prd}^{inc} = 0\). \(prd\) redeviendra activable, dès lors que \(inc\) provoquera une surcharge sur un autre quadripôle \(quad' \in QUADNECESSAIRES_{prd}\).
Sinon, la contrainte d’activation de la parade suivante est ajoutée :
Cette contrainte n’a de sens que si \(quad\) est en surcharge.
Si les conditions nécessaires pour avoir les deux contraintes de transit précédentes sont réunies, alors utiliser la parade revient à avoir la contrainte \(transit_{quad}^{situ} = Max_{quad}^{situ}\). Ce qui se traduit informatiquement par \(transit_{quad}^{situ} \in [Max_{quad}^{situ} - \epsilon; Max_{quad}^{situ} + \epsilon]\) avec \(\epsilon > 0 \) et très petit. Cela se traduit fonctionnellement par le fait qu’il faille être très proche de la surcharge afin de pouvoir utiliser la parade sans vraiment l’être.
Cas des parades provoquant des surcharges
En étant utilisée pour corriger une surcharge générée par un incident \(inc\), une parade peut également provoquer des surcharges sur un autre quadripôle \(quad\). Ainsi, \(\forall prd \in PARADE \cap CURATIF_{inc}\) tq \(prd\) ne coupe pas \(quad\), la contrainte suivante est ajoutée :
Nous ne nous préoccupons pas des variables d’activation ou des contraintes d’activation puisque ce n’est pas un incident qui provoque la surcharge, mais une parade. Seules les contraintes permettant de respecter le seuil de transit du quadripôle sont ajoutées si les parades sont utilisées.
Contrainte sur le nombre d’actions curatives
METRIX impose un nombre maximal d’actions curatives par incident. Les TD fictifs ne sont pas comptabilisés, et les lignes coupées ou fermées par les parades sont comptabilisées plutôt que les parades activées.
Soit \(inc \in INCIDENT, prd \in PARADE \cap CURATIF_{inc}\). Notons respectivement \(NbLignesACouper\), \(NbLignesAFermer\) et \(NbLignesCoupees\) les cardinalités des ensembles \(COUPLAGEOUVRIR_{prd}\), \(COUPLAGEFERMER_{prd}\) et \(DEFAUTQUAD_{inc}\).
Nous obtenons ainsi le nombre d’actions : \(NbActions = NbLignesACouper + NbLignesAFermer - NbLignesCoupees\).
De même, notons :
\(ECSTF = CURATIF_{inc}/TDF\) l’ensemble des éléments curatifs de l’incident sans les TDs fictifs.
\(CoutAction\) un ensemble de coefficients, de même cardinalité que \(ECSTF\), tq \(\forall j \in ECSTF\) :
\(CoutAction[j] = 0.5\) si \(j\) est un groupe ou une conso ;
\(CoutAction[j] = 1\) sinon.
Enfin, notons \(NbMaxActCur\) le nombre maximum d’actions curatives autorisées sur un incident.
La contrainte de formule ainsi :
Fonction objectif¶
Notons, \(\forall inc \in INCIDENT, NbCtre_{inc}\) le nombre de contraintes dues à \(inc\). Posons également :
Nous obtenons la fonction objectif suivante :