rouvez L(G) d’une chaine de 4 nœuds. L(G) = 10/6 =...
बनाया गया: 17 जनवरी 2026
बनाया गया: 17 जनवरी 2026
rouvez L(G) d’une chaine de 4 nœuds.
L(G) = 10/6 = 1.66 KIFHH JAT
Pour une chaîne (path) de 4 nœuds :
Donc si est la distance moyenne :
✅ Conclusion : (ton résultat est correct).
Pour “KIFHH JAT” : ça ressemble à un texte chiffré (César/Vigenère, etc.). Si tu me dis le type de chiffrement ou la clé/décalage, je te le décode.
Voici des questions typiques que le prof peut donner en contrôle (basées sur Cours 6→9, Chapitre 2 : Optimisation de la Topologie).
Exercice probable (Cours 6)
10) On te donne des positions (ou distances) + un . Construire le graphe orienté, repérer les liens symétriques/asymétriques, dire si c’est fortement connexe.
Exercice probable (Cours 7)
8) On te donne 4 nœuds + distances . Choisir pour permettre/empêcher les transmissions simultanées (concept capacité). (Cours7.pdf)
Exercices probables (Cours 8)
12) On te donne des points (ou un graphe complet pondéré) :
Exercice très probable (Cours 9)
7) On te donne un max-power graph pondéré : appliquer LMST pour obtenir et . (C’est exactement le type d’exercice montré). (Cours9.pdf)
Si tu veux, envoie-moi une photo/énoncé de ton TD ou du dernier contrôle, et je te prépare une mini-série “contrôle blanc” (10 questions + corrigé).
pythonimport itertools, math, networkx as nx, pandas as pd # define graph edges = [ (1,2,5),(2,8,2),(2,9,3),(9,8,2),(1,7,3), (7,6,3),(6,5,2),(5,4,2),(7,3,5),(7,4,5),(7,5,4), (3,5,3),(3,6,5),(4,6,4),(4,3,2),(1,3,4) ] G=nx.Graph() G.add_weighted_edges_from(edges) nodes=sorted(G.nodes()) nodes [1, 2, 3, 4, 5, 6, 7, 8, 9]
pythonfrom heapq import heappush, heappop def local_mst_edges(u): VN=set(G.neighbors(u)) V=set(VN)|{u} # Prim starting from u inA={u} edges_mst=[] # heap items: (weight, outside_id, inside_id) ??? tie as described: compare endpoint outside A then inside heap=[] for v in VN: w=G[u][v]['weight'] # outside=v, inside=u heappush(heap,(w, v, u, u, v)) while heap and len(inA)<len(V): w, outside, inside, a,b = heappop(heap) if outside in inA and inside in inA: continue # determine which is outside/inside now if a in inA and b not in inA: inside=a; outside=b elif b in inA and a not in inA: inside=b; outside=a else: continue # add edge inA.add(outside) edges_mst.append((inside,outside,w)) # push new crossing edges for nbr in G.neighbors(outside): if nbr in V and nbr not in inA: ww=G[outside][nbr]['weight'] # inside=outside, outside=nbr heappush(heap,(ww, nbr, outside, outside, nbr)) return edges_mst def NT(u): mst=local_mst_edges(u) nt=set() for a,b,w in mst: if a==u: nt.add(b) elif b==u: nt.add(a) return nt, mst nts={} msts={} for u in nodes: nt,mst=NT(u) nts[u]=sorted(nt) msts[u]=mst nts {1: [2, 3, 7], 2: [1, 8], 3: [4], 4: [3, 5], 5: [4, 6], 6: [5, 7], 7: [1, 6], 8: [2, 9], 9: [8]}
pythonGL=nx.DiGraph() for u,vs in nts.items(): for v in vs: GL.add_edge(u,v,weight=G[u][v]['weight']) # Determine bidirectional bid=set() uni=set() for u,v in GL.edges(): if GL.has_edge(v,u): bid.add((u,v)) else: uni.add((u,v)) len(GL.edges()), uni (17, {(1, 3)})
pythondef undirected_edges_from_digraph(D): s=set() for u,v in D.edges(): s.add(tuple(sorted((u,v)))) return sorted(s) Gminus=GL.copy() Gminus.remove_edge(1,3) # For Gplus: add reverse of unidirectional edges Gplus=GL.copy() for u,v in uni: if not Gplus.has_edge(v,u): Gplus.add_edge(v,u,weight=G[u][v]['weight']) und_plus=undirected_edges_from_digraph(Gplus) und_minus=undirected_edges_from_digraph(Gminus) und_plus, und_minus ([(1, 2), (1, 3), (1, 7), (2, 8), (3, 4), (4, 5), (5, 6), (6, 7), (8, 9)], [(1, 2), (1, 7), (2, 8), (3, 4), (4, 5), (5, 6), (6, 7), (8, 9)])
OK — l’exercice de la dernière page (LMST) de ton cours demande de trouver et à partir du max-power graph (liste des arêtes + poids) (Cours9.pdf).
À partir des arêtes données (Cours9.pdf) :
Règle LMST : chaque nœud construit son MST local (Prim) puis garde les voisins directement reliés à lui dans ce MST :
(Cours9.pdf)
Résultats :
Donc le graphe orienté contient toutes les arêtes pour . (Cours9.pdf)
On vérifie les liens :
Donc on supprime .
Arêtes (en non-orienté / liens) de :
Donc on ajoute pour rendre bidirectionnel. (Cours9.pdf)
Liens (non-orientés) de :
Si tu veux, je peux aussi te dessiner le graphe final (même à la main façon “corrigé”) en me disant si ton prof veut orienté (flèches) ou non-orienté (liens).
Nous voulons faire un résumé du chapitre 1 de notre cours. Remplir le tableau suivant
par :
P_E (qui signifie « un algorithme polynomial existe pour trouver le chemin (ou
l’arbre) optimal»)
P_D_E (qui signifie « il n’existe pas d’algorithme polynomial pour trouver le
chemin (ou l’arbre) optimal »)
Métrique
Type de
Routage
Délai Distance Coût de
location
Distance
avec
contrainte
de délai
Coût de
location
avec
contrainte
de délai
Unicast
Multicast
Broadcast THISSS
Parfait, on remplit l’Exercice 2 (résumé du chapitre 1) exactement comme le prof l’attend.
👉 Règle clé du cours (Chapitre 1)
| Type de routage | Délai | Distance | Coût de location | Distance avec contrainte de délai | Coût de location avec contrainte de délai |
|---|---|---|---|---|---|
| Unicast | P_E | P_E | P_E | P_D_E | P_D_E |
| Multicast | P_E | P_E | P_E | P_D_E | P_D_E |
| Broadcast | P_E | P_E | P_E | P_D_E | P_D_E |
Unicast
Multicast
Broadcast
“L’ajout d’une contrainte de délai rend le problème NP-complet, donc il n’existe pas d’algorithme polynomial pour trouver la solution optimale.”
Si tu veux, je peux aussi te donner la version ultra-courte à apprendre par cœur ou te faire un contrôle blanc avec ce tableau.
ET EXE 1
Parfait 👍
On fait EXERCICE 1 pas à pas, exactement comme au contrôle.
Graphe (poids = délai) :
Source : A
Source : A
Destinations : B, C, D, H
Objectif : minimiser le délai
👉 On cherche les plus courts chemins depuis A vers chaque destination, puis on prend l’union des chemins.
Vers B :
A → B = 3
Vers C :
A → B → C = 3 + 3 = 6
Vers D :
A → B → C → D = 3 + 3 + 1 = 7
Vers H :
A → H = 1
Arêtes de l’arbre :
📌 C’est un arbre de plus courts chemins (SPT).
✅ Réponse (a)
L’arbre multicast optimal est :
A–B–C–D et A–H
Source : A
Destinations : tous les autres nœuds
Objectif : minimiser le délai
👉 En broadcast avec optimisation du délai → on construit l’arbre des plus courts chemins depuis A (SPT).
Arêtes retenues :
📌 Tous les nœuds sont atteints avec délai minimal depuis A.
✅ Réponse (b)
L’arbre optimal de broadcast est l’arbre des plus courts chemins depuis A : A–F–G–E–D–C, A–B, A–H–I
Si tu veux, je peux te faire le dessin exact de l’arbre comme sur copie, ou te donner la version ultra-courte à réciter 📝
Voilà un QSM (QCM) prêt pour contrôle, basé sur Chapitre 1 : Optimisation du routage (exos + contrainte de délai) et un peu sur l’intro “Research Methodology” si ton prof mélange.
Je mets les réponses à la fin (comme ça tu peux t’entraîner).
A. Un arbre couvrant minimum
B. Un plus court chemin
C. Un arbre de Steiner
D. Un graphe complet
A. Prim
B. Kruskal
C. Dijkstra
D. Bellman-Ford uniquement
A. MST (Minimum Spanning Tree)
B. Plus court chemin
C. Arbre de Steiner avec délai
D. Max-flow
A. MST
B. Arbre de Steiner
C. BFS
D. Clique maximale
A. Toujours polynomial
B. NP-complet
C. Linéaire
D. Impossible même avec heuristiques
A. Deux sources
B. Coût + délai
C. Degré + distance
D. Puissance + ID
A. Non orienté
B. NP-complet
C. Trop grand en mémoire
D. Non connexe
A. Unicast
B. Multicast
C. Broadcast (MST avec contrainte de délai)
D. Routage IP
A. Un arbre couvrant qui respecte le délai, puis réduire le coût sans casser le délai
B. Un MST puis ajouter un délai
C. Un plus court chemin puis supprimer des nœuds
D. Un graphe complet
A. Le coût de location
B. Le délai
C. La bande passante
D. Le nombre de sauts
A. Union des plus courts chemins vers les destinations
B. Un MST global
C. Un arbre aléatoire
D. Un arbre complet
A. MST
B. Arbre des plus courts chemins depuis la source (SPT)
C. Arbre de Steiner
D. Cycle hamiltonien
A. A–B–C–D–E
B. A–H–I–E
C. A–B–F–G–E
D. A–F–G–E
A. Algorithme exponentiel existe
B. Algorithme polynomial existe pour l’optimal
C. On ne peut pas résoudre
D. C’est un graphe complet
A. Algorithme polynomial n’existe pas (pour l’optimal)
B. Distance égale au délai
C. Problème linéaire
D. Route unique
A. P_E
B. P_D_E
C. Toujours P_E si graphe petit
D. Toujours P_E si non orienté
A. P_D_E
B. P_E
C. NP-dur
D. Non défini
A. Construire le MST sur le graphe original directement
B. Construire un graphe complet sur le groupe multicast avec coût = meilleur chemin contraint
C. Supprimer les arêtes chères
D. Faire un BFS
A. Trouver un MST (avec contrainte de délai) dans le graphe complet
B. Trouver un plus court chemin simple
C. Trouver un matching parfait
D. Trier les sommets
A. Remplacer chaque arête du MST du graphe complet par son chemin correspondant dans le graphe original
B. Inverser les arêtes
C. Ajouter un délai constant
D. Supprimer les destinations
Si tu veux, je te fais aussi un QSM “Exercice 1” (avec mini-calculs sur le graphe) ou un QSM “Vrai/Faux” (le prof aime ça souvent).