Graphes orientés et optimisation d'un réseau électrique

Modéliser un réseau par un graphe · Loi des nœuds · Minimiser les pertes par effet Joule

Terminale — Ens. Scientifique Le futur des énergies Graphes · Fonctions Simulation interactive

1. Un problème concret

Enjeu — Transporter l'électricité sans la gaspiller

Transporter et distribuer l'électricité sur de longues distances engendre des pertes par effet Joule : une partie de l'énergie transportée est dissipée sous forme de chaleur dans les câbles, proportionnellement à $R \times I^2$ (résistance du câble, intensité au carré).

Minimiser ces pertes est un enjeu à la fois économique et écologique. Pour cela, les ingénieurs représentent le réseau électrique par un modèle mathématique : un graphe orienté, qui simplifie le circuit tout en conservant ses contraintes physiques essentielles.

2. Modéliser un réseau par un graphe orienté

Définition — Graphe orienté

Un graphe orienté est un ensemble de sommets reliés par des arcs (flèches). Dans un réseau électrique :

Centrale A Centrale B Sous- station Usine (cible) I₁, R₁ I₂, R₂ I₀ = I₁ + I₂

Graphe orienté d'un réseau à 2 sources, 1 nœud intermédiaire, 1 cible

Loi des nœuds (conservation du courant)

En un nœud intermédiaire, la somme des intensités qui entrent est égale à la somme des intensités qui sortent : dans l'exemple ci-dessus, $I_1 + I_2 = I_0$. C'est cette contrainte qui permet de réduire un problème à plusieurs variables à une seule.

3. Formuler et résoudre le problème d'optimisation

Méthode
  1. Exprimer les pertes par effet Joule de chaque arc : $P_{J,k} = R_k I_k^2$, puis la perte totale $P_J = \sum_k R_k I_k^2$.
  2. Utiliser la loi des nœuds pour exprimer une intensité en fonction des autres, et ainsi écrire $P_J$ comme une fonction d'une seule variable.
  3. Étudier les variations de cette fonction (tableur, calculatrice, ou dérivée en spécialité maths) pour trouver le minimum.
Exemple résolu

Deux centrales A et B alimentent une usine via une sous-station. Les résistances des lignes sont $R_1 = 2\,\Omega$ (centrale A) et $R_2 = 3\,\Omega$ (centrale B). L'usine a besoin d'une intensité totale $I_0 = 10\,\text{A}$.

1. Loi des nœuds : $I_1 + I_2 = 10$, donc $I_2 = 10 - I_1$.

2. Pertes totales : $P_J(I_1) = R_1 I_1^2 + R_2 I_2^2 = 2I_1^2 + 3(10-I_1)^2$.

3. En développant : $P_J(I_1) = 2I_1^2 + 3(100 - 20I_1 + I_1^2) = 5I_1^2 - 60I_1 + 300$.

4. C'est une fonction du second degré, de coefficient $a = 5 > 0$ : elle admet un minimum en $I_1 = -\dfrac{b}{2a} = \dfrac{60}{10} = 6\,\text{A}$. Alors $I_2 = 4\,\text{A}$ et $P_J(6) = 5\times36 - 60\times6 + 300 = 120\,\text{W}$.

4. Construire un réseau à plusieurs nœuds (arbre de poids minimal)

Un autre type de problème — relier plusieurs points au moindre coût

Quand un réseau doit relier plusieurs sommets (plusieurs centrales, plusieurs villes) et non plus seulement deux sources vers une cible, la question n'est plus « comment répartir un courant ? » mais « quelles lignes construire pour relier tous les sommets en dépensant le moins de résistance (ou de câble) possible ? ». On cherche alors un arbre couvrant de poids minimal : un ensemble d'arcs qui relie tous les sommets, sans former de boucle, et dont la somme des poids est la plus petite possible.

Méthode — Algorithme glouton (construction pas à pas)
  1. Classer tous les arcs possibles par poids croissant.
  2. Parcourir cette liste dans l'ordre : on ajoute un arc à l'arbre s'il relie un sommet déjà atteint à un sommet pas encore atteint (il ne crée pas de boucle).
  3. On rejette un arc si ses deux extrémités sont déjà reliées par l'arbre en construction (il créerait une boucle inutile).
  4. On s'arrête quand tous les sommets sont reliés : pour $n$ sommets, l'arbre final compte toujours exactement $n-1$ arcs.
Exemple résolu

Un réseau doit relier 5 postes A, B, C, D, E. Les résistances possibles de chaque ligne (en $\Omega$) sont : A–B : 4 ; A–C : 7 ; B–C : 2 ; B–D : 5 ; C–D : 6 ; C–E : 3 ; D–E : 8.

1. On classe les arcs par poids croissant : B–C(2), C–E(3), A–B(4), B–D(5), C–D(6), A–C(7), D–E(8).

2. On les examine dans cet ordre : B–C relie deux sommets neufs → ajouté. C–E relie E (neuf) → ajouté. A–B relie A (neuf) → ajouté. B–D relie D (neuf) → ajouté. On a déjà $5-1=4$ arcs : tous les sommets sont reliés, on s'arrête.

3. Les arcs C–D(6), A–C(7) et D–E(8) sont rejetés : leurs deux extrémités étaient déjà reliées par l'arbre en construction, les ajouter créerait une boucle sans relier de nouveau sommet.

4. Poids total de l'arbre optimal : $2+3+4+5 = 14\,\Omega$. C'est le réseau qui relie les 5 postes avec le moins de résistance cumulée possible.

Exercice 3 — Construire un arbre de poids minimal

Un réseau doit relier 4 postes P, Q, R, S. Les résistances possibles sont : P–Q : 3 ; P–R : 8 ; P–S : 6 ; Q–R : 5 ; Q–S : 9 ; R–S : 2.

a. Construire l'arbre de poids minimal en appliquant la méthode ci-dessus. b. Donner son poids total.

Voir la correction

a. Arcs classés par poids croissant : R–S(2), P–Q(3), Q–R(5), P–S(6), P–R(8), Q–S(9).

On examine dans l'ordre : R–S relie deux sommets neufs → ajouté. P–Q relie deux sommets neufs (composante différente) → ajouté. Q–R relie les deux composantes {P,Q} et {R,S} → ajouté ; on a $4-1=3$ arcs, tous les sommets sont reliés, on s'arrête. P–S, P–R et Q–S sont rejetés (boucles).

b. Poids total : $2+3+5 = 10$.

5. Simulation interactive — trouver le minimum

Déplace le curseur pour répartir le courant entre les deux centrales et observe l'effet sur les pertes totales.

3,0 A
$I_2$ (centrale B)
Pertes $P_J(I_1)$
Minimum théorique
120 W en I₁=6 A

🎯 Vérifie que tu as compris — Exercices WIMS

Pourcentages et proportions
Pourcentages · Coefficient multiplicateur · Évolution
▸ Coefficient multiplicateur ▸ Taux d'évolution ▸ Évolution réciproque
Lecture graphique — Fonctions
Lecture d'image · Sens de variation · Extremum
▸ Lecture graphique d'image ▸ Sens de variation

6. Exercices

Exercice 1 — Compléter un graphe orienté

Un poste de distribution est alimenté par 3 centrales et distribue le courant à 3 villes. Les intensités arrivant au poste sont $I_1 = 400\,\text{A}$, $I_2 = 240\,\text{A}$, $I_3 = 330\,\text{A}$. Les intensités sortantes mesurées sont $I_4 = 250\,\text{A}$, $I_5 = 300\,\text{A}$ et $I_6 = 150\,\text{A}$.

a. La loi des nœuds est-elle respectée ? b. Si non, que faut-il ajouter au graphe pour la rétablir ?

Voir la correction

a. Entrées : $400+240+330 = 970\,\text{A}$. Sorties : $250+300+150 = 700\,\text{A}$. Comme $970 \neq 700$, la loi des nœuds n'est pas respectée par ce graphe incomplet.

b. Il manque un sommet recevant le surplus de courant : $970 - 700 = 270\,\text{A}$. On ajoute donc un arc sortant du poste vers un nouveau sommet (ex. un dispositif de stockage, ou un autre poste de distribution) transportant ces 270 A.

Exercice 2 — Deux cibles

Reprendre l'exemple résolu du §3, mais en supposant que la sous-station alimente deux cibles : une usine nécessitant $6\,\text{A}$ et un lotissement nécessitant $4\,\text{A}$ (au lieu d'une seule cible à $10\,\text{A}$). Les résistances $R_1, R_2$ des lignes d'arrivée restent $2\,\Omega$ et $3\,\Omega$.

a. Que vaut $I_0$, le courant total à fournir par la sous-station ? b. Le problème d'optimisation change-t-il ?

Voir la correction

a. Par la loi des nœuds appliquée à la sous-station : $I_0 = 6 + 4 = 10\,\text{A}$, comme précédemment.

b. Non : seules les pertes sur les lignes d'arrivée (entre les centrales et la sous-station) dépendent de la répartition $I_1/I_2$ à optimiser. La répartition entre les deux cibles est fixée par leurs besoins respectifs et n'intervient pas dans cette optimisation. Le résultat ($I_1=6\,\text{A}$, $I_2=4\,\text{A}$, pertes minimales $=120\,\text{W}$) reste donc inchangé.

7. Code Python

Recherche du minimum par balayage (méthode numérique, sans dérivée) :

def pertes(I1, R1=2, R2=3, I0=10):
    """Pertes Joule totales, I2 déduit de la loi des nœuds."""
    I2 = I0 - I1
    return R1 * I1**2 + R2 * I2**2

# Balayage de I1 entre 0 et 10 A par pas de 0.01
meilleur_I1, meilleures_pertes = 0, pertes(0)
I1 = 0
while I1 <= 10:
    p = pertes(I1)
    if p < meilleures_pertes:
        meilleur_I1, meilleures_pertes = I1, p
    I1 += 0.01

print(f"Minimum en I1 = {meilleur_I1:.2f} A, pertes = {meilleures_pertes:.2f} W")
# Minimum en I1 = 6.00 A, pertes = 120.00 W

8. Ce qu'il faut retenir

Bilan