SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
1
ALGORITHMIQUE LI311
Licence 3
Mini-Projet : Arbre Steiner
Rapport sur la partie théorique
Réalisé par : - Julien GOURRAUD
- Belkacem KAID
Encadré par : - Olivier SPANJAARD
04/12/14
2
Question 1 :
On cherche à monter qu’un arbre Steiner minimum d’un graphe G est :
Un sous graphe de G
 Car un arbre est un sous graphe
Il est connexe
 Car un arbre est toujours connexe
Son cout est min
 Car pour couvrir des sommets, il suffit de prendre les arêtes de cout
minimum en utilisant des algorithmes qui génère des arbres
couvrant de poids minimum (par exemple Prim).
Il contient tous les terminaux
 Car d’après la définition, les terminaux N sont inclus dans les
sommets S’ qui est lui-même inclus dans les sommets S du graphe
G.
 De plus, si on suppose qu’il n’existe aucun sommet Steiner dans le
graphe il devrait forcément contenir tous les sommets terminaux
Question 2 :
Déterminer le routage d’alimentation revient à chercher un arbre Steiner car c’est un
arbre qui couvre tous les terminaux (les composantes du circuit nécessaires), et qui
atteint les bornes de l’alimentation (sommets Steiner). Ainsi lors du premier parcours
en partant du « + » (respectivement du « - »), on choisit le minimum des sommets
Steiner. On aura alors fait deux parcours et on obtiendra deux arbres Steiner
minimaux.
Question 3 :
Soit la plus courte chaine entre x et y est l’arête (x,y) alors d(x,y) = c(x,y) . Soit il
existe une autre chaine entre x et y dont la valeur est inférieur au coût de l’arête alors
d(x,y) < c(x, y). Donc d(x,y) <= c(x,y)
Question 4 :
Soit la chaine empruntée pour calculer la distance d(x,z) passe par le sommet y,
alors d(x,z) = d(x,y) + d(y,z).
Soit la chaine empruntée pour calculer la distance d(x,z) ne passe pas par le sommet
y, alors d(x,z) < d(x,y) + d(y,z).
3
Donc d(x,z) <= d(x,y) + d(y,z).
Question 5 :
On suppose qu’on a une chaine qui relie deux sommets x et y qui est de cout min,
sachant que cette chaine n’est pas inclue dans notre graphe D(S), or il existe un arbre
Steiner min inférieur à l’arbre Steiner min obtenu à partir du graphe des distances
D(S), alors que TD est l’arbre Steiner min de D(S), autrement dit il n’existe aucune
arête autre que celle reliant x et y dans D(S) (représentant un chemin ou une chaine
de distance minimale reliant un couple de sommets ), et cela contredit notre
supposition.
Donc toute arête de D(S) représente exactement la plus courte distance entre tout
couple de sommets, ainsi d(TD) est la somme des substitutions des arêtes de T (arbre
Steiner min de G). Donc le parcours constituant un arbre Steiner min dans G est
exactement le même dans D(S) (car D(S) contient tous les sommets terminaux de G).
On obtient donc :
c(T) = d(TD) avec c(T) = ∑ (x,y) ∈ T c(x,y) et d(TD) = ∑ (x,y) ∈ TD d(x,y)
Question 6 :
Dans cet algorithme, on construit un graphe H, contenant les plus courtes chaînes
reliant tous couple de sommets, en faisant la substitution des arêtes {x,y} de TD par
une plus courte chaîne de x à y dans G. Ainsi H contient exactement les distances
minimales entre tous couple de sommet.
L’arbre couvrant minimum T dans H est obtenu suite au parcours fait par un algorithme
qui retourne un arbre couvrant de poids minimum (Prim par exemple) qui contient
tous les sommets terminaux. Puis le fait d’ôter les sommets Steiner de degré 1 répond
toujours aux propriétés d’un arbre Steiner de cout minimum.
Question 7 :
i) On a |N|=S
Considérons alors l'algorithme Transfert suivant pour un sous-ensemble 𝑆′ ∈ 𝑆 contenant tous
les terminaux ( 𝑁 ⊂ 𝑆′).
- Remplacer chaque arête {x,y} de TD par une plus courte chaîne de x à y dans G. On nomme
H le graphe résultant de cette opération (une même arête n'apparaissant qu'au plus une fois
dans H). Ici, on appelle m fois l’algorithme de Prim. Pour un arbre couvrant M =
N-1. Donc la complexité est en O(n-1) * O(n2) = O(n3) (en supposant que
l’on utilise pas la structure de Tas pour l’algorithme de Dijkstra)
- Trouver un arbre couvrant minimum T dans H : (Algorithme de Prime) (O(n log n))
- Ôter itérativement de T les sommets Steiner de degré 1 (O(n))
4
La complexité est donc de O(n) + (O(n log n)) + O(n3) = O(n3) .
ii) On a |N|=2
Cela consiste à faire un parcours du premier sommet au deuxième sommet
terminal, et cela en utilisant l’algorithme de Dijkstra avec une matrice d’adjacence
comme structure de donnée, ce qui donne une complexité de O(n3).
Question 8 :
On suppose qu’on a un sommet Steiner transitoire pour au moins trois sommets
terminaux, or le passage par ce sommet Steiner nous ramène à avoir un cout min pour
atteindre les sommets terminaux, ainsi dans notre arbre si chaque sommet Steiner
répond à cette condition, on pourrait avoir un arbre Steiner de cout mini du graphe
des distances D(S) ou chaque sommet Steiner est de degré au moins 3, donc il pourrait
exister un tel arbre Steiner min.
Par exemple :
Les sommets terminaux sont sphères de bleu.
Les sommets Steiner sont des cercles bleus.
Question 9 :
On suppose qu’on a K sommet Steiner, or (|N|+K-1) arête (nombre d’arêtes d’un
arbre), et chaque sommet Steiner est de degré 3 ou chaque arête est connectée à un
sommet terminal. Le nombre des arêtes est donc : (3K+|N|)/2 : La division par 2 est
due au fait que chaque arête contient 2 sommets.
Ainsi :
|N|+K-1 ≥ (3K+|N|)/2
2|N|+2K-2 ≥ 3K+|N|
Donc |N|-2 ≥ K
5
Un arbre Steiner contenant au maximum |N|-2 sommets Steiner est appelé un arbre
Steiner complet ainsi, son existence est démontrée.
Question 10 :
On peut déduire de la question précédente que l'algorithme suivant fournit un arbre Steiner
minimum pour G.
- Énumérer tous les ensembles S⊂ (S  N) d'au plus |N| - 2 sommets Steiner : 2|N| -1 ( -1 pour
l’ensemble vide )
- Pour chacun de ses sous-ensembles S0, déterminer un arbre couvrant minimum dans le
graphe des distances D(N U S’). O((n log n)m)
- Retenir l'arbre couvrant minimum parmi tous. O(1) car on prend l’arbre pour lequel
l’algorithme de Prim a renvoyé le plus petit cout.
- Par l'algorithme transfert, transformer cet arbre en un arbre Steiner de G de même
coût. O(n3)
Donc la complexité est en 2|N| -1 + O(1) + O((n log n)m)+ O((n)m) = (2|N|-1)
Si |N| = O(1) alors il n’y aura qu’un seul appel à l’algorithme de Prim. La complexité
sera alors en O(1) + O(1) + O(n log n) + O((n)) = O(n log n)
Question 11 :
Si on a 1000 sommets, dont 500 terminaux, l’algorithme durera (2500-1)*0,01 = >
impossible
Si on dispose d’un ordinateur 100 fois plus rapide, l’algorithme durera (2500-
1)*0,0001 =>impossible
Question 12 :
Algorithme Méthode approchée :
_ Construire le graphe des distances D(N) limité aux sommets terminaux. (O(n*m))
_ Déterminer un arbre couvrant minimum TD de D(N). O(n log n) (Algorithme de Prim)
_ Remplacer chaque arête fx; yg de TD par une plus courte chaîne de x à y dans G. On
nomme H le graphe résultant de cette opération (une même arête n'apparaissant qu'au
plus une fois dans H). O(n2 log n)
_ Trouver un arbre couvrant minimum T dans H. O(n log n)
_ Ôter itérativement de T les sommets Steiner de degré 1. O(1)
Complexité :O(n²logn).

Más contenido relacionado

La actualidad más candente

Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court cheminSana Aroussi
 
JIM-2022 3 Puissances et racines
JIM-2022 3 Puissances et racinesJIM-2022 3 Puissances et racines
JIM-2022 3 Puissances et racinesClément Boulonne
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statiqueSana Aroussi
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancésmohamed_SAYARI
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerSana Aroussi
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximationWael Ismail
 
Cnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrigeCnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrigeOtman Aberkane
 
Introduction à la transformée en z et convolution discrète (GEII MA32)
Introduction à la transformée en z et convolution discrète (GEII MA32)Introduction à la transformée en z et convolution discrète (GEII MA32)
Introduction à la transformée en z et convolution discrète (GEII MA32)Frédéric Morain-Nicolier
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrentsmohamed_SAYARI
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnesTRIKI BILEL
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivationsSana Aroussi
 
Presentation of SOMbrero
Presentation of SOMbreroPresentation of SOMbrero
Presentation of SOMbrerotuxette
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 

La actualidad más candente (19)

Chapitre 2 plus court chemin
Chapitre 2 plus court cheminChapitre 2 plus court chemin
Chapitre 2 plus court chemin
 
JIM-2022 3 Puissances et racines
JIM-2022 3 Puissances et racinesJIM-2022 3 Puissances et racines
JIM-2022 3 Puissances et racines
 
Chapitre 6 hachage statique
Chapitre 6 hachage statiqueChapitre 6 hachage statique
Chapitre 6 hachage statique
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximation
 
Cnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrigeCnc mp-2017-maths-2-corrige
Cnc mp-2017-maths-2-corrige
 
Introduction à la transformée en z et convolution discrète (GEII MA32)
Introduction à la transformée en z et convolution discrète (GEII MA32)Introduction à la transformée en z et convolution discrète (GEII MA32)
Introduction à la transformée en z et convolution discrète (GEII MA32)
 
Fourier
FourierFourier
Fourier
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrents
 
47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes47811458 exercices-systemes-echantillonnes
47811458 exercices-systemes-echantillonnes
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
Chapitre i introduction et motivations
Chapitre i introduction et motivationsChapitre i introduction et motivations
Chapitre i introduction et motivations
 
Presentation of SOMbrero
Presentation of SOMbreroPresentation of SOMbrero
Presentation of SOMbrero
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 

Destacado

Voip simulation
Voip simulation Voip simulation
Voip simulation Anas ABANA
 
Présentation Sec_res_OK
Présentation Sec_res_OKPrésentation Sec_res_OK
Présentation Sec_res_OKBelkacem KAID
 
Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006
Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006
Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006guestae5d52d
 
Jeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentation
Jeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentationJeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentation
Jeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentation6x7 ASBL
 
Sécuriser votre voix sur IP (VoIP)
Sécuriser votre voix sur IP (VoIP)Sécuriser votre voix sur IP (VoIP)
Sécuriser votre voix sur IP (VoIP)Techso
 

Destacado (6)

Voip simulation
Voip simulation Voip simulation
Voip simulation
 
Présentation Sec_res_OK
Présentation Sec_res_OKPrésentation Sec_res_OK
Présentation Sec_res_OK
 
Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006
Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006
Slides Securite Voip Attaque Blackbox Nbareil Jssi Celar 2006
 
Jeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentation
Jeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentationJeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentation
Jeudis du Libre S02E01 : La VoIP avec Asterisk - Support de présentation
 
Rapport de fin d'etude
Rapport  de fin d'etudeRapport  de fin d'etude
Rapport de fin d'etude
 
Sécuriser votre voix sur IP (VoIP)
Sécuriser votre voix sur IP (VoIP)Sécuriser votre voix sur IP (VoIP)
Sécuriser votre voix sur IP (VoIP)
 

Similar a Rapport - Partie th‚orique

Convex Multi-Task Feature Learning
Convex Multi-Task Feature LearningConvex Multi-Task Feature Learning
Convex Multi-Task Feature LearningSakher BELOUADAH
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Hitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithmHitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithmVictor Bontemps
 
Algebre1 s1 par www.etudecours.com
Algebre1 s1 par www.etudecours.comAlgebre1 s1 par www.etudecours.com
Algebre1 s1 par www.etudecours.cometude cours
 
Algebre 1 (annales)
Algebre 1 (annales)Algebre 1 (annales)
Algebre 1 (annales)Med Bijou
 
Intégrations sur des espaces produits
Intégrations sur des espaces produitsIntégrations sur des espaces produits
Intégrations sur des espaces produitsNIDAL SABI
 
Généralisation du théorème de weierstrass et application
Généralisation du théorème de weierstrass et applicationGénéralisation du théorème de weierstrass et application
Généralisation du théorème de weierstrass et applicationKamel Djeddi
 
Bases de la Théorie des graphes
Bases de la Théorie des graphes Bases de la Théorie des graphes
Bases de la Théorie des graphes Idriss22
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0guest8b8369
 

Similar a Rapport - Partie th‚orique (18)

Convex Multi-Task Feature Learning
Convex Multi-Task Feature LearningConvex Multi-Task Feature Learning
Convex Multi-Task Feature Learning
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
TG-Lasse9[1].pdf
TG-Lasse9[1].pdfTG-Lasse9[1].pdf
TG-Lasse9[1].pdf
 
Video
VideoVideo
Video
 
Hitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithmHitting time for bessel processes and WOMS algorithm
Hitting time for bessel processes and WOMS algorithm
 
10677467.ppt
10677467.ppt10677467.ppt
10677467.ppt
 
Algebre1 s1 par www.etudecours.com
Algebre1 s1 par www.etudecours.comAlgebre1 s1 par www.etudecours.com
Algebre1 s1 par www.etudecours.com
 
Algebre 1 (annales)
Algebre 1 (annales)Algebre 1 (annales)
Algebre 1 (annales)
 
Intégrations sur des espaces produits
Intégrations sur des espaces produitsIntégrations sur des espaces produits
Intégrations sur des espaces produits
 
Généralisation du théorème de weierstrass et application
Généralisation du théorème de weierstrass et applicationGénéralisation du théorème de weierstrass et application
Généralisation du théorème de weierstrass et application
 
csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
 
01 lois-à-densité
01 lois-à-densité01 lois-à-densité
01 lois-à-densité
 
Ben Arous2
Ben Arous2Ben Arous2
Ben Arous2
 
Exercice intégrales
Exercice intégralesExercice intégrales
Exercice intégrales
 
S2- Math
S2- Math S2- Math
S2- Math
 
Bases de la Théorie des graphes
Bases de la Théorie des graphes Bases de la Théorie des graphes
Bases de la Théorie des graphes
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0
 

Más de Belkacem KAID

Mannuel_Attaque_VoIP
Mannuel_Attaque_VoIPMannuel_Attaque_VoIP
Mannuel_Attaque_VoIPBelkacem KAID
 
PSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinal
PSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinalPSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinal
PSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinalBelkacem KAID
 
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalPCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalBelkacem KAID
 
Rapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEKRapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEKBelkacem KAID
 
exposé_LI352_KAID_SHI
exposé_LI352_KAID_SHIexposé_LI352_KAID_SHI
exposé_LI352_KAID_SHIBelkacem KAID
 

Más de Belkacem KAID (8)

Mannuel_Attaque_VoIP
Mannuel_Attaque_VoIPMannuel_Attaque_VoIP
Mannuel_Attaque_VoIP
 
PSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinal
PSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinalPSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinal
PSECRES2017-Projet11-KHATOUN_RIDA-Secu_VoIP-RapFinal
 
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinalPCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
PCONT2016-Projet1.3-Fourmaux-AnalCodecParamVideo-RapFinal
 
Rapport_PRES__Copy_
Rapport_PRES__Copy_Rapport_PRES__Copy_
Rapport_PRES__Copy_
 
Rapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEKRapport TME_semaine_7_KAID_NHEK
Rapport TME_semaine_7_KAID_NHEK
 
SEMAINE_6 LI350
SEMAINE_6 LI350SEMAINE_6 LI350
SEMAINE_6 LI350
 
kaid_nhek
kaid_nhekkaid_nhek
kaid_nhek
 
exposé_LI352_KAID_SHI
exposé_LI352_KAID_SHIexposé_LI352_KAID_SHI
exposé_LI352_KAID_SHI
 

Rapport - Partie th‚orique

  • 1. 1 ALGORITHMIQUE LI311 Licence 3 Mini-Projet : Arbre Steiner Rapport sur la partie théorique Réalisé par : - Julien GOURRAUD - Belkacem KAID Encadré par : - Olivier SPANJAARD 04/12/14
  • 2. 2 Question 1 : On cherche à monter qu’un arbre Steiner minimum d’un graphe G est : Un sous graphe de G  Car un arbre est un sous graphe Il est connexe  Car un arbre est toujours connexe Son cout est min  Car pour couvrir des sommets, il suffit de prendre les arêtes de cout minimum en utilisant des algorithmes qui génère des arbres couvrant de poids minimum (par exemple Prim). Il contient tous les terminaux  Car d’après la définition, les terminaux N sont inclus dans les sommets S’ qui est lui-même inclus dans les sommets S du graphe G.  De plus, si on suppose qu’il n’existe aucun sommet Steiner dans le graphe il devrait forcément contenir tous les sommets terminaux Question 2 : Déterminer le routage d’alimentation revient à chercher un arbre Steiner car c’est un arbre qui couvre tous les terminaux (les composantes du circuit nécessaires), et qui atteint les bornes de l’alimentation (sommets Steiner). Ainsi lors du premier parcours en partant du « + » (respectivement du « - »), on choisit le minimum des sommets Steiner. On aura alors fait deux parcours et on obtiendra deux arbres Steiner minimaux. Question 3 : Soit la plus courte chaine entre x et y est l’arête (x,y) alors d(x,y) = c(x,y) . Soit il existe une autre chaine entre x et y dont la valeur est inférieur au coût de l’arête alors d(x,y) < c(x, y). Donc d(x,y) <= c(x,y) Question 4 : Soit la chaine empruntée pour calculer la distance d(x,z) passe par le sommet y, alors d(x,z) = d(x,y) + d(y,z). Soit la chaine empruntée pour calculer la distance d(x,z) ne passe pas par le sommet y, alors d(x,z) < d(x,y) + d(y,z).
  • 3. 3 Donc d(x,z) <= d(x,y) + d(y,z). Question 5 : On suppose qu’on a une chaine qui relie deux sommets x et y qui est de cout min, sachant que cette chaine n’est pas inclue dans notre graphe D(S), or il existe un arbre Steiner min inférieur à l’arbre Steiner min obtenu à partir du graphe des distances D(S), alors que TD est l’arbre Steiner min de D(S), autrement dit il n’existe aucune arête autre que celle reliant x et y dans D(S) (représentant un chemin ou une chaine de distance minimale reliant un couple de sommets ), et cela contredit notre supposition. Donc toute arête de D(S) représente exactement la plus courte distance entre tout couple de sommets, ainsi d(TD) est la somme des substitutions des arêtes de T (arbre Steiner min de G). Donc le parcours constituant un arbre Steiner min dans G est exactement le même dans D(S) (car D(S) contient tous les sommets terminaux de G). On obtient donc : c(T) = d(TD) avec c(T) = ∑ (x,y) ∈ T c(x,y) et d(TD) = ∑ (x,y) ∈ TD d(x,y) Question 6 : Dans cet algorithme, on construit un graphe H, contenant les plus courtes chaînes reliant tous couple de sommets, en faisant la substitution des arêtes {x,y} de TD par une plus courte chaîne de x à y dans G. Ainsi H contient exactement les distances minimales entre tous couple de sommet. L’arbre couvrant minimum T dans H est obtenu suite au parcours fait par un algorithme qui retourne un arbre couvrant de poids minimum (Prim par exemple) qui contient tous les sommets terminaux. Puis le fait d’ôter les sommets Steiner de degré 1 répond toujours aux propriétés d’un arbre Steiner de cout minimum. Question 7 : i) On a |N|=S Considérons alors l'algorithme Transfert suivant pour un sous-ensemble 𝑆′ ∈ 𝑆 contenant tous les terminaux ( 𝑁 ⊂ 𝑆′). - Remplacer chaque arête {x,y} de TD par une plus courte chaîne de x à y dans G. On nomme H le graphe résultant de cette opération (une même arête n'apparaissant qu'au plus une fois dans H). Ici, on appelle m fois l’algorithme de Prim. Pour un arbre couvrant M = N-1. Donc la complexité est en O(n-1) * O(n2) = O(n3) (en supposant que l’on utilise pas la structure de Tas pour l’algorithme de Dijkstra) - Trouver un arbre couvrant minimum T dans H : (Algorithme de Prime) (O(n log n)) - Ôter itérativement de T les sommets Steiner de degré 1 (O(n))
  • 4. 4 La complexité est donc de O(n) + (O(n log n)) + O(n3) = O(n3) . ii) On a |N|=2 Cela consiste à faire un parcours du premier sommet au deuxième sommet terminal, et cela en utilisant l’algorithme de Dijkstra avec une matrice d’adjacence comme structure de donnée, ce qui donne une complexité de O(n3). Question 8 : On suppose qu’on a un sommet Steiner transitoire pour au moins trois sommets terminaux, or le passage par ce sommet Steiner nous ramène à avoir un cout min pour atteindre les sommets terminaux, ainsi dans notre arbre si chaque sommet Steiner répond à cette condition, on pourrait avoir un arbre Steiner de cout mini du graphe des distances D(S) ou chaque sommet Steiner est de degré au moins 3, donc il pourrait exister un tel arbre Steiner min. Par exemple : Les sommets terminaux sont sphères de bleu. Les sommets Steiner sont des cercles bleus. Question 9 : On suppose qu’on a K sommet Steiner, or (|N|+K-1) arête (nombre d’arêtes d’un arbre), et chaque sommet Steiner est de degré 3 ou chaque arête est connectée à un sommet terminal. Le nombre des arêtes est donc : (3K+|N|)/2 : La division par 2 est due au fait que chaque arête contient 2 sommets. Ainsi : |N|+K-1 ≥ (3K+|N|)/2 2|N|+2K-2 ≥ 3K+|N| Donc |N|-2 ≥ K
  • 5. 5 Un arbre Steiner contenant au maximum |N|-2 sommets Steiner est appelé un arbre Steiner complet ainsi, son existence est démontrée. Question 10 : On peut déduire de la question précédente que l'algorithme suivant fournit un arbre Steiner minimum pour G. - Énumérer tous les ensembles S⊂ (S N) d'au plus |N| - 2 sommets Steiner : 2|N| -1 ( -1 pour l’ensemble vide ) - Pour chacun de ses sous-ensembles S0, déterminer un arbre couvrant minimum dans le graphe des distances D(N U S’). O((n log n)m) - Retenir l'arbre couvrant minimum parmi tous. O(1) car on prend l’arbre pour lequel l’algorithme de Prim a renvoyé le plus petit cout. - Par l'algorithme transfert, transformer cet arbre en un arbre Steiner de G de même coût. O(n3) Donc la complexité est en 2|N| -1 + O(1) + O((n log n)m)+ O((n)m) = (2|N|-1) Si |N| = O(1) alors il n’y aura qu’un seul appel à l’algorithme de Prim. La complexité sera alors en O(1) + O(1) + O(n log n) + O((n)) = O(n log n) Question 11 : Si on a 1000 sommets, dont 500 terminaux, l’algorithme durera (2500-1)*0,01 = > impossible Si on dispose d’un ordinateur 100 fois plus rapide, l’algorithme durera (2500- 1)*0,0001 =>impossible Question 12 : Algorithme Méthode approchée : _ Construire le graphe des distances D(N) limité aux sommets terminaux. (O(n*m)) _ Déterminer un arbre couvrant minimum TD de D(N). O(n log n) (Algorithme de Prim) _ Remplacer chaque arête fx; yg de TD par une plus courte chaîne de x à y dans G. On nomme H le graphe résultant de cette opération (une même arête n'apparaissant qu'au plus une fois dans H). O(n2 log n) _ Trouver un arbre couvrant minimum T dans H. O(n log n) _ Ôter itérativement de T les sommets Steiner de degré 1. O(1) Complexité :O(n²logn).