Graafityypit tietorakenteessa esimerkkien kanssa
โก รlykรคs yhteenveto
Tietorakenteiden graafit ovat epรคlineaarisia kokoelmia solmuja ja kaaria, jotka luokitellaan rakenteeseen perustuviin perheisiin, kuten suunnatut, suuntaamattomat, painotetut, sykliset, asykliset, tรคydelliset, yhdistetyt, kaksijakoiset, Eulerin ja Hamiltonin graafit.

Graafi on epรคlineaarinen tietorakenne, joka koostuu solmuista ja kaarista. Solmut sisรคltรคvรคt tiedon tai datan, ja kaaret toimivat linkkinรค solmuparin vรคlillรค.
Graafeja voi olla useita erityyppisiรค solmujen ja kaarien sijainnista riippuen. Tรคssรค on joitakin tรคrkeitรค graafien tyyppejรค:
Ohjattu graafi
Suunnatun graafin reunoilla on nuolia, jotka osoittavat suunnan. Nuoli mรครคrittรครค, mihin reuna osoittaa tai mihin se pรครคttyy. Tรคssรค on esimerkki suunnatusta graafista.
Ohjattu graafi
- Voimme siirtyรค solmusta A paikkaan D.
- Emme kuitenkaan voi siirtyรค solmusta D solmuun A, koska reuna osoittaa pisteestรค A pisteeseen D.
- Koska kaaviossa ei ole painoja, matkustaminen kรคrjestรค A paikkaan D maksaa saman verran kuin matkustaminen pisteestรค D paikkaan F.
Ohjaamaton kaavio
Suuntaamaton graafi sisรคltรครค viivoja ilman osoittimia. Tรคmรค tarkoittaa, ettรค voimme liikkua pรคinvastoin kahden kรคrjen vรคlillรค. Tรคssรค on yksinkertainen esimerkki suuntaamattomasta graafista.
Ohjaamaton kaavio
Yllรค olevassa kaaviossa
- Voimme siirtyรค pisteestรค A pisteeseen B.
- Voimme myรถs siirtyรค pisteestรค B pisteeseen A.
- Reunat eivรคt sisรคllรค ohjeita.
Se on esimerkki suuntaamattomasta graafista, jolla on รครคrellinen mรครคrรค solmuja ja kaaria ilman painoja.
Painotettu kaavio
Graafia, jonka kaarilla on painoja tai kustannuksia, kutsutaan painotetuksi graafiksi. Numeerinen arvo edustaa yleensรค siirtymiskustannuksia yhdestรค solmusta toiseen solmuun. Sekรค suunnatuilla ettรค suuntaamattomilla graafeilla voi olla painoja kaarilla. Tรคssรค on esimerkki painotetusta graafista (suuntattu).
Suunnattu graafi painolla
- A:sta B:hen on etu ja painoarvo on 5, mikรค tarkoittaa, ettรค siirtyminen pisteestรค A pisteeseen B maksaa meille 5.
- A osoittaa B:hen, mutta tรคssรค kaaviossa B:llรค ei ole suoraa reunaa A:han nรคhden. Joten emme voi matkustaa B:stรค A:han.
- Jos kuitenkin haluamme siirtyรค pisteestรค A pisteeseen F, on olemassa useita polkuja. Polut ovat ADF ja ABF. ADF maksaa (10 + 11) eli 21.
- Tรคssรค polku ABF maksaa (5 + 15) eli 20. Tรคssรค lisรคtรครคn polun jokaisen kaaren paino.
Tรคssรค on esimerkki suuntaamattomasta graafista painojen kanssa:
Ohjaamaton kaavio painolla
Tรคssรค reunalla on painoa, mutta ei suuntaa. Joten se tarkoittaa, ettรค matka pisteestรค A paikkaan D maksaa 10 ja pรคinvastoin.
Kaksisuuntainen kaavio
Kaksisuuntaisilla ja suuntaamattomilla graafeilla on yhteinen ominaisuus. Se on:
- Yleisesti ottaen suuntaamattomalla graafilla voi olla yksi kaari kahden kรคrjen vรคlillรค.
Esimerkiksi:
- Tรครคllรค siirtyminen paikasta A paikkaan D tai D paikkaan A maksaa 10.
- Kaksisuuntaisessa kuvaajassa voi olla kaksi reunaa kahden kรคrjen vรคlillรค.
Tรคssรค on esimerkki:
Kaksisuuntainen kaavio
Matkustaminen pisteestรค A pisteeseen D maksaa 17, mutta pisteestรค D pisteeseen A 12. Emme siis voi antaa kahta eri painoa, jos kyseessรค on suuntaamaton graafi.
รรคretรถn kaavio
Graafi sisรคltรครค รครคrettรถmรคn mรครคrรคn kaaria ja solmuja. Jos graafi on รครคretรถn ja se on myรถs yhtenรคinen graafi, se sisรคltรครค myรถs รครคrettรถmรคn mรครคrรคn kaaria. Tรคssรค laajennetut kaaret tarkoittavat, ettรค nรคihin solmuihin voi olla kaarien kautta yhteydessรค useampia kaaria. Tรคssรค on esimerkki รครคrettรถmรคstรค graafista:
รรคretรถn kaavio
Nollakuvaaja
Nullgraafi sisรคltรครค vain solmuja tai kรคrkipisteitรค, mutta ei kaaria. Jos annetaan graafi G = (V, E), jossa V on kรคrkipisteet ja E on kaaret, se on null, jos kaarien lukumรครคrรค E on nolla. Tรคssรค on esimerkki nullgraafista:
Nollakuvaaja
Triviaali kaavio
Graafitietorakennetta pidetรครคn triviaalina, jos siinรค on vain yksi solmu tai piste ilman kaaria. Tรคssรค on esimerkki triviaalisesta graafista:
Monikuvaaja
Graafia kutsutaan multigraafiksi, kun kahden kรคrkipisteen vรคlillรค on useita kaaria tai kรคrkipisteessรค on silmukka. Termi "silmukka" graafitietorakenteessa tarkoittaa kaaria, joka osoittaa samaan solmuun tai kรคrkipisteeseen. Multigraafi voi olla suunnattu tai suuntaamaton. Tรคssรค on esimerkki monigraafista:
Pisteen B ja A vรคlillรค on kaksi kaaria. Lisรคksi solmulla E on itsesilmukka. Yllรค oleva graafi on suunnattu graafi, jonka kaarilla ei ole painoja.
Tรคydellinen kaavio
Graafi on tรคydellinen, jos jokaisella kรคrjellรค on suunnattuja tai suuntaamattomia kaaria kaikkien muiden kรคrkien kanssa. Oletetaan, ettรค kรคrkien lukumรครคrรค on yhteensรค V ja jokaisella kรคrjellรค on tรคsmรคlleen V - 1 kaaria. Tรคllรถin tรคtรค graafia kutsutaan tรคydelliseksi graafiksi. Tรคllaisessa graafissa jokainen kรคrki on yhdistetty kaikkiin muihin kรคrkiin kaarien kautta. Tรคssรค on esimerkki tรคydellisestรค graafista, jossa on viisi kรคrkeรค:
Kuvassa nรคkyy, ettรค solmujen kokonaismรครคrรค on viisi ja kaikilla solmuilla on tรคsmรคlleen neljรค reunaa.
Yhdistetty kaavio
Graafia kutsutaan yhtenรคiseksi graafiksi, jos se alkaa yhdestรค solmusta tai kรคrkipisteestรค ja voi jatkaa kaikkiin solmuihin lรคhtรถsolmusta. Tรคtรค varten jokaisen solmu- tai kรคrkipisteparin vรคlillรค tulisi olla vรคhintรครคn yksi kaari. Tรคssรค on esimerkki yhtenรคisestรค graafista:
Tรคssรค on selitys yllรค olevasta yhdistetystรค graafista:
- Olettaen, ettei C:n ja F:n vรคlillรค ole reunaa, emme voi matkustaa pisteestรค A pisteeseen G. Reuna C:stรค F:รครคn kuitenkin mahdollistaa matkustamisen tietystรค solmusta mihin tahansa solmuun.
- Tรคydellinen Graafi on Yhdistetty Graafi, koska voimme siirtyรค solmusta mihin tahansa toiseen solmuun annetussa kaaviossa.
Syklinen kaavio
Graafia sanotaan sykliseksi, jos siinรค on yksi tai useampi sykli. Tรคssรค on esimerkki syklisestรค graafista:
Tรคssรค solmut A, B ja C muodostavat syklin. Graafi voi sisรคltรครค useita syklejรค sen sisรคllรค.
Suunnattu asyklinen kaavio (DAG)
Graafia kutsutaan suunnatuksi asykliseksi graafiksi eli DAG:ksi, jos graafin sisรคllรค ei ole syklejรค. DAG on tรคrkeรค tehtรคvรค suoritettaessa... Topologinen lajittelu tai suoritusjรคrjestyksen lรถytรคmiseksi. DAG on tรคrkeรค myรถs aikataulutusjรคrjestelmien luomisessa tai resurssien riippuvuuksien skannaamisessa jne. Yllรค oleva graafi ei kuitenkaan sisรคllรค sykliรค. Tรคssรค on yksinkertainen esimerkki suunnatusta asyklisestรค graafista (DAG):
Kiertokaavio
Syklikaavio ei ole sama asia kuin syklinen kaavio. Syklikaaviossa jokaisella solmulla on tรคsmรคlleen kaksi yhdistettyรค kaarraa, mikรค tarkoittaa, ettรค jokaisella solmulla on tรคsmรคlleen kaksi astetta. Tรคssรค on esimerkki syklikaaviosta:
Kahdenvรคlinen kaavio
Tรคllaiset Kuvaajat ovat erikoisia graafeja, joissa solmut on sijoitettu kahteen joukkoon. Kaksijakoisen graafin on noudatettava sรครคntรถรค:
- Kahden kรคrkijoukon tulee olla erilliset, mikรค tarkoittaa, ettรค kaikki kรคrkipisteet on jaettava kahteen ryhmรครคn tai joukkoon.
- Saman joukon kรคrkipisteiden ei tulisi muodostaa kaaria.
Euler-kaavio
Graafitietorakennetta pidetรครคn Eulerin graafina, jos kaikilla sen solmuilla on parillinen aste. Termi solmujen aste tarkoittaa tiettyyn solmuun osoittavien tai siitรค ulospรคin osoittavien kaarien lukumรครคrรครค. Tรคssรค on esimerkki Eulerin graafista:
Kaikilla kรคrkipisteillรค on parilliset asteet. Pisteillรค A, D, E ja H on kaksi astetta. Tรคssรค solmulla C on neljรค astetta, mikรค on parillinen luku.
Hamiltonin kaavio
Hamilton-graafi on yhtenรคinen graafi, jossa voit kรคydรค kaikissa tietyn pisteen solmuissa palaamatta samaan solmuun tai kรคyttรคmรคttรค samaa kaarea. Tรคmรคn tyyppistรค yhtenรคistรค graafia kutsutaan "Hamilton-graafiksi". Polkua, jota pitkin tarkistat, onko annettu graafi Hamilton-graafi vai ei, kutsutaan Hamiltonin poluksi. Tรคssรค on yksinkertainen esimerkki Hamiltonin graafista:
Tรคssรค kuvassa voimme vierailla kaikissa yllรค olevan kaavion solmupisteissรค. Yksi poluista voi olla ADCHBEOn myรถs mahdollista lรถytรครค Hamiltonin sykli. Hamiltonin sykli alkaa ja pรครคttyy samaan kรคrkeen. Joten Hamiltonin sykli on ADCHBEA.


















