EN minimum spannende tre (MST) er definert som en spennende tre som har den minste vekten blant alle mulige spenntrær
EN spennende tre er definert som en trelignende undergraf av en tilkoblet, urettet graf som inkluderer alle toppunktene i grafen. Eller, for å si med lekmanns ord, det er en delmengde av kantene på grafen som danner et tre ( asyklisk ) hvor hver node i grafen er en del av treet.
Minimumspenningstreet har alle egenskapene til et spenntre med en ekstra begrensning om å ha minst mulig vekt blant alle mulige spenntrær. Som et spenntre kan det også være mange mulige MST-er for en graf.

Egenskaper til et spannende tre:
Spenntreet holder prinsippene nedenfor :
- Antall hjørner ( I ) i grafen og spenningstreet er det samme.
- Det er et fast antall kanter i det spennede treet som er lik en mindre enn det totale antallet hjørner ( OG = V-1 ).
- Spenntreet skal ikke være det koblet fra , da det bare skal være en enkelt kilde til komponenten, ikke mer enn det.
- Spanningstreet skal være asyklisk, hvilken betyr at det ikke ville være noen syklus i treet.
- Den totale kostnaden (eller vekten) til spenntreet er definert som summen av kantvektene til alle kantene til spenntreet.
- Det kan være mange mulige spenntrær for en graf.
Minimum spannende tre:
EN minimum spannende tre (MST) er definert som en spennende tre som har den minste vekten blant alle mulige spenntrær.
vakreste smilet i verden
Minimumspenningstreet har alle egenskapene til et spenntre med en ekstra begrensning om å ha minst mulig vekt blant alle mulige spenntrær. Som et spenntre kan det også være mange mulige MST-er for en graf.
- La oss se på MST i eksempelgrafen ovenfor,

Minimum Spanning Tree
Algoritmer for å finne minimum spannning tre:
Det er flere algoritmer for å finne minimumspenningstreet fra en gitt graf, noen av dem er listet opp nedenfor:
hvor mange uker per måned
Kruskals Minimum Spanning Tree Algorithm:
Dette er en av de populære algoritmene for å finne minimumspenningstreet fra en tilkoblet, urettet graf. Dette er en Først sorterer den alle kantene på grafen etter vekten,
Denne algoritmen kan implementeres effektivt ved å bruke en DSU (Dijoint-Set) datastruktur for å holde styr på de tilkoblede komponentene i grafen. Dette brukes i en rekke praktiske applikasjoner som nettverksdesign, klynging og dataanalyse.
Følg artikkelen på Kruskals Minimum Spanning Tree Algorithm for en bedre forståelse og implementering av algoritmen.
Prims minimum spannning tre-algoritme:
Dette er også en grådig algoritme. Denne algoritmen har følgende arbeidsflyt:
- Det starter med å velge et vilkårlig toppunkt og deretter legge det til MST.
- Deretter sjekker den gjentatte ganger for minimumskantvekten som kobler ett toppunkt av MST til et annet toppunkt som ennå ikke er i MST.
- Denne prosessen fortsetter til alle toppunktene er inkludert i MST.
For å effektivt velge minimumsvektkanten for hver iterasjon, bruker denne algoritmen priority_queue for å lagre toppunktene sortert etter deres minimumskantvekt for øyeblikket. Den holder også samtidig styr på MST ved å bruke en matrise eller annen datastruktur som passer med tanke på datatypen den lagrer.
Denne algoritmen kan brukes i ulike scenarier som bildesegmentering basert på farge, tekstur eller andre funksjoner. For Ruting, som for å finne den korteste veien mellom to punkter for en varebil å følge.
Følg artikkelen på Prims Minimum Spanning Tree Algorithm for en bedre forståelse og implementering av denne algoritmen.
Boruvkas minimum spannning tre-algoritme:
Dette er også en grafoverløpsalgoritme som brukes til å finne minimumsspenningstreet til en tilkoblet, urettet graf. Dette er en av de eldste algoritmene. Algoritmen fungerer ved å iterativt bygge minimumspenningstreet, og starter med hvert toppunkt i grafen som sitt eget tre. I hver iterasjon finner algoritmen den billigste kanten som kobler et tre til et annet tre, og legger den kanten til minimumspenningstreet. Dette er nesten likt Prims algoritme for å finne minimumspenningstreet. Algoritmen har følgende arbeidsflyt:
'murerens formel'
- Initialiser en skog av trær, med hvert toppunkt i grafen som sitt eget tre.
- For hvert tre i skogen:
- Finn den billigste kanten som kobler den til et annet tre. Legg til disse kantene til minimumspenningstreet.
- Oppdater skogen ved å slå sammen trærne sammen med de ekstra kantene.
- Gjenta trinnene ovenfor til skogen inneholder bare ett tre, som er minimumsspenningstreet.
Algoritmen kan implementeres ved hjelp av en datastruktur som en prioritert kø for å effektivt finne den billigste kanten mellom trær. Boruvkas algoritme er en enkel og enkel å implementere algoritme for å finne minimumsspennende trær, men den er kanskje ikke like effektiv som andre algoritmer for store grafer med mange kanter.
Følg artikkelen på Boruvkas Minimum Spanning Tree Algorithm for en bedre forståelse og implementering av denne algoritmen.
For å vite mer om egenskapene og egenskapene til Minimum Spanning Tree, klikk her.
Anvendelser av minimumsspennende trær:
- Nettverksdesign : Spennende trær kan brukes i nettverksdesign for å finne minimum antall tilkoblinger som kreves for å koble til alle noder. Spesielt minimumsspennende trær kan bidra til å minimere kostnadene for forbindelsene ved å velge de billigste kantene.
- Bildebehandling : Spennende trær kan brukes i bildebehandling for å identifisere områder med lignende intensitet eller farge, noe som kan være nyttig for segmenterings- og klassifiseringsoppgaver.
- Biologi : Spennende trær og minimumsspennende trær kan brukes i biologi for å konstruere fylogenetiske trær for å representere evolusjonære forhold mellom arter eller gener.
- Analyse av sosiale nettverk : Spennende trær og minimumsspennende trær kan brukes i sosiale nettverksanalyser for å identifisere viktige forbindelser og relasjoner mellom individer eller grupper.
Noen populære intervjuproblemer på MST
| 1. | Finn minimumskostnaden for å koble til alle byer | Øve på |
Noen vanlige spørsmål om minimumsspennende trær:
1. Kan det være flere minimumsspennende trær for en gitt graf?
Ja, en graf kan ha flere minimumsspennende trær hvis det er flere sett med kanter med samme minste totalvekt.
hva er regex java
2. Kan Kruskals algoritme og Prims algoritme brukes til rettede grafer?
Nei, Kruskals algoritme og Prims algoritme er kun designet for urettede grafer.
3. Kan en frakoblet graf ha et minimumspenningstre?
Nei, en frakoblet graf kan ikke ha et spenntre fordi den ikke spenner over alle toppunktene. Derfor kan den heller ikke ha et minimumsspenningstre.
4. Kan et minimumsspenningstre finnes ved å bruke Dijkstras algoritme?
Nei, Dijkstras algoritme brukes til å finne den korteste veien mellom to hjørner i en vektet graf. Den er ikke designet for å finne et minimumsspenningstre.
5. Hva er tidskompleksiteten til Kruskals og Prims algoritmer?
Både Kruskals og Prims algoritmer har en tidskompleksitet på O(ElogE) , hvor E er antall kanter i grafen.