Suomi

Kaavio (graafiteoria)

Kaavio (graafiteoria)

Tämä artikkeli on saatavana myös äänitiedostona.
Wikipediasta, ilmaisesta tietosanakirjasta
Siirry navigointiin Siirry hakuun

Graafiteoriassa graafi on abstrakti rakenne, joka edustaa objektijoukkoa yhdessä näiden objektien välisten yhteyksien kanssa. Objektien matemaattisia abstraktioita kutsutaan graafin solmuiksi (tai kulmiksi ). Solmujen välisiä parittaisia ​​yhteyksiä kutsutaan reunoiksi (joskus myös kaariksi ). Reunat voivat olla suunnattuja tai suuntaamattomia . Kaaviot piirretään usein graafisesti esittämällä solmut pisteillä ja reunat viivoilla. [1]

Sukupuun kaavamainen rakenne
Wienin metron suunnitelma

Kuvaavia esimerkkejä kaavioista ovat sukupuu tai kaupungin metroverkko (katso kuvat). Sukupuussa jokainen solmu edustaa perheenjäsentä ja jokainen reuna on yhteys vanhemman ja lapsen välillä. Metroverkossa jokainen solmu edustaa metroasemaa ja jokainen reuna edustaa suoraa junayhteyttä kahden aseman välillä.

kaavioiden tyypit

Suuntaamaton kaavio

Suuntaamattomissa graafisissa solmujen väliset yhteydet on merkitty reunoilla . Reunoilla ei ole suuntaa. Kukin reuna voidaan ajaa molempiin suuntiin.

Suunnattu kaavio (digraafi)

Digrafeissa reunat merkitään nuolilla viivojen sijaan , ja nuoli osoittaa niiden alusta niiden päätesolmuun. Tämä tekee selväksi, että graafin jokainen reuna voidaan kulkea vain yhteen suuntaan. [2]

puu

Graafiteoriassa puu on erityinen graafi, joka on yhdistetty eikä sisällä suljettuja polkuja , eli syklejä , joiden pituus on suurempi tai yhtä suuri kuin 3. Kaikilla puilla kärkien lukumäärä on selvästi 1 suurempi kuin reunojen lukumäärä.

Puilla on monia käytännön käyttötarkoituksia, varsinkin tietojenkäsittelytieteessä . Monet algoritmit ohjelmoidaan puiden avulla . Esimerkiksi verkot , liikenneverkot tai sähköverkot voidaan kulkea tehokkaasti leveys- tai syvyyshakulla . Tekoäly- ja strategiapelien alalla alfabeta-haku on tärkeä. Se perustuu hakupuihin .

monikuvaaja

Multigrafi: Useat reunat visualisoidaan painotetulla reunalla

Ns. multigrafeissa kaksi solmua voidaan yhdistää myös useilla reunoilla [3] , mikä ei ole sallittua yksinkertaisissa graafisissa graafisissa muodoissa . Lisäksi multigrafit saavat sisältää silmukoita: reunoja, jotka johtavat samaan kärkeen, josta ne ovat peräisin. [1]

Jos solmuja yhdistää useita reunoja [3] , piirretään usein vain yksi reuna ja näiden kahden solmun välinen reunojen lukumäärä kirjoitetaan yhden reunan reunapainoksi. Esimerkissä solmujen A ja D välillä on 60 reunaa . Sen sijaan, että piirrettäisiin kaikki 60 reunaa, piirretään reuna, jonka reunapaino on 60.

tasokaavio

Tasograafi on graafi , joka voidaan piirtää tasolle ja jossa on pisteet solmuille ja viivat reunoille siten, että mikään reuna ei leikkaa. Jokaisella tasograafilla on kaksoisgraafi . Tämä on kaavio, jossa kaavion jokainen pinta liittyy solmuun , joka sijaitsee kyseisen pinnan sisällä, ja päinvastoin. Tasograafien duaalisuus on aina molemminpuolinen, eli minkä tahansa tasograafin duaaligraafin duaaligraafi on alkuperäinen tasograafi.

Eulerin monitahoteoreema pätee tasokaavioihin, jotka usein esitetään yhtälöllä

hypergrafia

Hypergrafeissa reuna (kutsutaan myös hyperedgeksi ) ei yhdistä vain kahta, vaan useita solmuja samanaikaisesti. Esimerkiksi hypergraafit voidaan esittää useilla tasokaavioilla , joissa on reunaindeksointi . Vähäreunaiset hypergraafit (ns. harvat graafit ) piirretään piirtämällä joukko pisteitä, jotka vastaavat huippuja, ja sitten hyperreunaan kuuluvat pisteet ympäröidään suljetulla viivalla, joka on siten osajoukko .siihen kuuluvista solmuista kaikissa solmuissa. Hypergrafeissa, joissa on useita reunoja, tämä esitys tulee kuitenkin nopeasti hämmentäväksi. On vähemmän intuitiivista, mutta selvempää esittää hypergrafia kaksiosaisena metagraafina, jossa toinen kahdesta kaksiosaisesta joukosta vastaa hypergraafin solmuja ja toinen kaksiosaisuus on asetettu hypergraafin hyperreunoihin. Näiden kahden bipartitiojoukon väliset reunat symboloivat sitten solmujen liittymistä hyperreunoihin.

Stephen Wolframin fysiikkaprojekti (katso myös: Wolfram Research and Mathematica ) fysiikan perusteiden selittämiseksi perustuu muun muassa hypergraafien sääntöavaruuteen: "Ja ainakin tietyllä likiarvolla voimme sitten sanoa, että energia liittyy aktiivisuuteen hypergrafissa, joka levittää tietoa ajan kuluessa, kun taas liikemäärä liittyy toimintaan, joka levittää tietoa avaruudessa." [4]

määritelmät

Graafi on järjestetty pari , joka tarkoittaa joukkoa solmuja ( kärkipisteitä , joskus kutsutaan myös kulmiksi ) ja joukkoa reunoja ( reuna /reunat , joskus kutsutaan myös kaariksi ). missä on

  • suuntaamattomat graafit ilman useita reunoja kaikkien 2-elementtisten osajoukkojen [ 1] osajoukko ,
  • suunnatut graafit ilman useita reunoja kaikkien parien (i, j) osajoukko, joka saadaan karteesisesta tulosta , [5]
  • suuntaamattomat graafit, joissa on yhdistetty useita reunoja, monijoukko kaikkien 2-elementtisten osajoukkojen joukossa , eli funktio ,
  • suunnatut graafit , joissa on yhdistetty useita reunoja multiset yli karteesisen tuotteen , eli funktio
  • suunnatut graafit, joissa on itsessään useita reunoja , joiden elementtejä pidetään reunoina kahden funktion avulla, jotka antavat elementeille lähde- ja kohdepisteen (sellainen graafi on sama kuin funktori , jossa melko hallittava kategoria kahdella esineitä ja kaksi erinomaista nuolta)
  • Hypergraafit ovat osajoukko potenssijoukosta . [1]

Lisäys "ilman useita reunoja" jätetään yleensä pois ja kaavioita, joissa on useita reunoja, kutsutaan multigrafeiksi . Lisäksi attribuutti "ohjaamaton" jätetään yleensä pois ja vain suunnatut graafit merkitään eksplisiittisesti. Suuntaamattomia kuvaajia, joissa ei ole useita reunoja, kutsutaan usein myös tavallisiksi tai yksinkertaisiksi . Suunnattujen graafien toinen nimi on digraph (suunnattu graafi).

Johdetut termit

Sen sijaan , että tunnistaisit graafin kärkijoukot ja reunat symboleilla ja , voidaan myös määritellä yleisiä karttoja , jotka kuvaavat graafin sen kärkijoukkoon tai reunaan. Kahdelle kaaviolle ja merkitse ja sekä ja .

Epäselvyys ja hyväksytään tällä merkinnällä, vaikka kuvaukset edustavat jotain muuta kuin niihin liittyvää solmu- ja reunajoukkoa. Käytännössä on suositeltavaa merkitä solmujen tai reunojen joukko argumentin kanssa tai ilman , tai määritetyt kuvaukset argumentilla.

Jos on graafi, niin sanotaan yleensä olevan solmu tai kärki , jos kuuluu . Reunat merkitään myös nimellä

  • if :n suuntaamaton reuna on suuntaamaton graafi.
  • if :n suunnattu reuna on suunnattu graafi.
  • If :n hyperedge on hypergraafi.

Suuntaamattomassa reunassa merkitsemme ja -kohdan loppusolmuina . Suunnatussa reunassa kutsumme aloitussolmua ja loppusolmua . _ _

Multigraphs tarkoittaa moninkertaisuutta . _ Tarvittaessa puhutaan moni- tai monireunasta .

Jos suunnattujen graafien reunalla on muoto , sitä kutsutaan silmukaksi . Jos monigraafin silmukka on myös monireuna , sitä kutsutaan monisilmukaksi . Suunnattuja kaavioita ilman silmukoita kutsutaan silmukattomiksi tai silmukattomiksi .

Graafin solmujen lukumäärä on sen solmujen lukumäärä ja reunojen määrä sen reunojen lukumäärä (multigrafeissa yksi summautuu reunojen moninaisuuteen).

Kahta solmua kutsutaan vierekkäisiksi , jos reuna yhdistää ne.

erikoistapaukset

Jos reuna yhdistää kaksi solmua suunnatussa graafissa ja reuna yhdistää samat solmut vastakkaiseen suuntaan, voidaan myös pitää molempia yhdessä suuntaamattomana reunana suunnatussa graafissa. Jos särmiä on useita, molempien reunojen kertoimien on vastattava toisiaan.

Jos suunnatun graafin jokaisella reunalla on tällainen vastakkainen reuna graafissa, niin se on symmetrinen graafi .

Graafia, jonka solmujoukko on äärellinen, kutsutaan äärelliseksi graafiksi . Sitä vastoin graafia, jonka solmujoukko on ääretön, kutsutaan äärettömäksi graafiksi . Yleensä otetaan huomioon vain äärelliset graafit ja siksi jätetään pois attribuutti "finite", kun taas äärettömät graafit merkitään eksplisiittisesti.

Aligraafit, polut ja syklit

Suunnattu graafi ja sykli
Suunnattu graafi ilman sykliä

Graafin aligraafi sisältää vain solmut ja reunat, jotka myös sisältyvät . Solmujoukosta U indusoitu aligraafi sisältää U :n solmut ja kaikki G :n reunat näiden solmujen välillä.

Pareittain erillisten solmujen sarjaa , jossa peräkkäiset solmut ja graafissa on yhdistetty reunalla, kutsutaan poluksi , joskus myös poluksi . Jos , ja tämä on ainoa kaksoissolmu, sitä kutsutaan sykliksi tai ympyräksi . Vierekkäisten solmujen sekvenssiä, jossa solmut saavat toistaa, kutsutaan reunasekvenssiksi . Käsitteet tie, polku, reunasekvenssi, ympyrä ja sykli on joskus määritelty kirjallisuudessa eri tavalla.

Jos suunnattu graafi ei sisällä sykliä, sitä kutsutaan asykliseksi tai syklittömäksi – eli suunnatuksi asykliseksi graafiksi ( DAG, suunnattu asyklinen graafi ). Tällainen graafi voidaan laajentaa (äärelliseen ja diskreettiin) osittaiseen järjestykseen lisäämällä poluiksi kaikki reunat, joilla on samat aloitus- ja loppusolmut , eli lyhentämällä kiertoteitä muiden reunojen kautta kohdesolmuun . Tätä prosessia kutsutaan transitiivisen sulkeutumisen muodostukseksi . Hasse - kaavio on suunnattu asyklinen graafi, jossa transitiivisuuden lain mukaan implisiittiset reunat jätetään pois ( transitiivinen vähennys ).

Perustoiminnot

Graafin ominaisuuksia tarkasteltaessa käy usein niin, että graafiin joutuu soveltamaan yksinkertaisia ​​operaatioita voidakseen kirjoittaa mahdollisimman tiiviisti ja siten helpommin ymmärrettävästi. Joukkoteorian tavanomaisia ​​operaatioita (liitto, leikkaus, ero ja komplementti) sovelletaan erityisen usein graafien solmujoukkoon tai reunoihin, jolloin ne määritellään suoraan graafissa.

Ovat ja kuvaajat ovat samaa tyyppiä , niin merkitty

  • kaavio, joka saadaan yhdistämällä joukko solmuja ja reunoja,
  • kaavio, joka saadaan vähentämällä ja reunajoukosta
  • graafi, joka saadaan vähentämällä kärkijoukosta ja poistamalla kaikki kärjet sisältävät reunat arvosta .

Huomaa joukon ja monijoukon termien liitto ja ero erilaiset määritelmät . Kirjoitat myös lyhennettynä

  • , jos on osajoukko ,
  • , jos on tyhjä tai osajoukko ,
  • , jos ,
  • , jos ,
  • , jos ja
  • jos .

Reunojen supistuminen ja komplementtigraafin muodostaminen ovat muita perustoimintoja.

Huomautukset

Suuntaamattomat graafit ilman useita reunoja ovat hypergraafien erikoistapauksia. Multigrafit, joissa ei esiinny useita reunoja, eivät ole muodollisesti vastaavia graafien kanssa, joissa ei ole useita reunoja, mutta ne ovat deskriptiivisesti ekvivalentteja, minkä vuoksi niitä kutsutaan myös graafiksi ilman useita reunoja. Kahden muunnelman välillä on bijektiivinen kartoitus. Tässä mielessä graafit ilman useita reunoja ovat erikoistapauksia graafista, jossa on useita reunoja. Vastaavasti suuntaamattomat graafit ovat tietyssä mielessä suunnattujen graafien erikoistapauksia. Jos suunnattu graafi on symmetrinen ja ilman silmukoita, sitä kutsutaan myös suuntaamattomaksi , koska näiden kahden muunnelman välillä on myös yksinkertainen yksi-yhteen osoitus (katso myös viereisyysmatriisi ).

Tietenkin on myös mahdollista määritellä ohjaamattomia graafeja silmukoilla, jolloin ne on luultavasti helpoimmin määritelty suunnattujen graafien (muodollisiksi) erikoistapauksiksi ja silmukattomuuden ehto jätetään pois. Tällaiset graafit ovat kuitenkin harvoin graafiteorian harkinnan kohteena.

Yleisin graafityyppi on suunnattu hypergraafi , jossa on useita reunoja. Jokaista edellä määriteltyä kaaviotyyppiä voidaan sitten pitää tämän erikoistapauksena. Tällaisia ​​graafisia graafisia piirteitä ei kuitenkaan juuri koskaan tarkastella graafiteoriassa, minkä vuoksi niitä ei selitetä tässä tarkemmin.

Jos kaavioiden on tarkoitus toimia tosiasian esityksenä, tarvitaan algoritmeja, joita tarvitaan kaavioiden piirtämiseen . Tämä tietojenkäsittelytieteen tieteenala on edelleen kehittynyt viime vuosina ja tarjoaa ratkaisuja erilaisiin graafiin perustuviin visualisointeihin.

laajennuksia

Kaavioita voidaan täydentää lisäominaisuuksilla tai tiedoilla.

Värilliset kaaviot

Graafeiden laajennus solmuvärisiin kaavioihin saadaan täydentämällä monikko muodostamaan kolminkertainen . on kartoitus luonnollisten lukujen joukkoon . On selvää, että jokaiselle solmulle on annettu väri.

Solmujen sijasta voidaan myös värjätä graafien reunat ilman useita reunoja ja hypergrafeissa ja sitten puhua reunavärisestä graafista . Tätä varten myös monikko laajennetaan kolmiosaiseksi , mutta missä on kartoitus numerosta (sen sijaan ) luonnollisten lukujen joukkoon . On selvää, että jokaiselle reunalle on annettu väri. Periaatteessa tämä on mahdollista myös monireunaisissa kaavioissa, mutta sitä on vaikeampi määritellä, varsinkin jos useille reunuksille on määrä antaa useita eri värejä niiden moninkertaisuuden mukaan.

Huomaa, että termeillä "värjätä" ja "värjätä" on myös tarkempi merkitys graafiteoriassa. Täsmälleen yksi puhuu kelvollista väritystä , mutta yleensä jättää pois attribuutin "valid".

Vastaavasti on olemassa myös nimettyjä kaavioita , joissa solmuilla ja/tai reunoilla on nimi, ja kuvaukset tai solmut tai reunat antavat nimen. Aiemmin esitetyt esimerkit ovat nimettyjä kaavioita, joissa solmut on nimetty kirjaimilla. Tämä tehdään usein visualisoinneilla, jotta kaaviosta voidaan keskustella paremmin.

Painotetut kaaviot

Solmu- tai reunavärillisten graafien sijaan puhutaan solmu- tai reunapainotetuista graafista, jos ne kartoitetaan luonnollisiin lukuihin, vaan ne kartoitetaan todellisiin lukuihin . Solmu- tai reunaväriset graafit ovat siksi solmu- tai reunapainotettujen graafien erikoistapauksia.

Kutsumme tai myös solmun tai reunan painoa . Erottamiseksi puhutaan myös solmun painosta tai reunapainosta . Tällainen painotus tulee välttämättömäksi, kun tiedot solmusuhteista ovat riittämättömiä. Jos esimerkiksi tieverkostoa tarkastellaan (yksinkertaistettuna) graafina (paikat ovat solmuja, paikkoja yhdistävät kadut ovat reunoja), reunojen painotus voisi antaa tietoa kahden paikan välisestä etäisyydestä. Graafin reunapainot voidaan kerätä neliöpainomatriisiin, viereisyysmatriisiin .

Kartoituksia kaavioiden välillä

Lopuksi voidaan myös määritellä kuvaajien välisiä kartoituksia. Erityisen kiinnostavia ovat ne, jotka ovat yhteensopivia näiden kahden rakenteen kanssa , niin kutsutut "homomorfismit" .

Olkoon ja samantyyppisiä kuvaajia. Kartoitusta kutsutaan homomorfismiksi välillä ja jos :

  • Suuntaamattomissa graafisissa, joissa ei ole useita reunoja : Jos
    reuna , niin reuna .
  • Suunnatuissa kaavioissa, joissa ei ole useita reunoja: jos
    reuna , niin reuna .
  • Suuntaamattomissa graafisissa useissa reunoissa : , i. H. mitkä tahansa kaksi kärkeä on yhdistetty enintään niin monella reunalla kuin niiden kuvapisteet.
  • Suunnatuissa kaavioissa, joissa on useita reunoja: .
  • Suunnatuissa graafeissa, joissa on erilliset useat reunat: on assosioitunut kumppani ja kaikille reunoille ja ( ja niitä pidetään funktionaaleina, graafin homomorfismi on vain luonnollinen muunnos ).
  • Hypergrafeissa : jos reuna , niin reuna .

Kuva p ( G1 ) on tällöin G2 : n osagraafi . Jos p on käännettävä ja käänteisfunktio on myös homomorfismi, niin p on graafien isomorfismi .

Huomaa, että kärjet ovat etusijalla reunoihin nähden määrittämällä p funktiona vain kärkipisteille , mikä vaikuttaa vain reunoihin.

kombinatoriikka

Yksinkertaisten suuntaamattomien graafien, joissa on solmuja , määrä kasvaa nopeasti solmujen määrän myötä ja on yhtä suuri kuin . Joten se kasvaa eksponentiaalisesti koko graafin reunojen lukumäärän mukaan . Jos solmuja ei ole numeroitu, eli isomorfisia graafeja ei lasketa, tämä luku on likimäärin verrannollinen , koska useimmissa isomorfismiluokissa kaikki numeroitujen solmujen permutaatiosta johtuvat graafit ovat erilaisia. Alla oleva taulukko näyttää tietokoneen käytön tietyt numerot : [6]

Tietorakenteet

Graafeiden esittämiseen tietokoneessa on olennaisesti kaksi yleistä muotoa : viereisyysmatriisi (myös naapurimatriisi) ja viereisyysluettelo (naapuriluettelo). Kahden esityksen tärkeys piilee siinä, että käytännössä jokainen graafiteoreettisten ongelmien algoritminen ratkaisu pätee ainakin toiseen kahdesta esityksestä. Toinen, mutta harvemmin käytetty tapa esittää kuvaajia tietokoneessa on esiintymismatriisi , joka tunnetaan myös solmureunamatriisina.

Vaikka esiintymismatriisit ovat kalliimpia toteuttaa ja ylläpitää, ne tarjoavat joukon etuja viereisyysmatriiseihin verrattuna. Toisaalta kiinteällä määrällä reunoja ne vievät aina vain lineaarisen määrän tallennustilaa suhteessa solmujen määrään, mikä on erityisen edullista ohuille graafiille (eli graafiille, joissa on vähän reunaa), kun taas vierekkäisyysmatriisi vaatii neliötilaa suhteessa solmujen määrään (mutta on kompaktimpi tiheissä graafisissa eli monireunaisissa graafisissa). Toisaalta monet graafiteoreettiset ongelmat voidaan ratkaista vain vierekkäisyyslistoilla lineaarisessa ajassa . Käytännössä siis yleensä käytetään tätä esitystapaa.

ohjelmointi

Seuraava esimerkki C++- ohjelmointikielellä näyttää ohjatun graafin toteutuksen vierekkäisyysluetteloilla . Suunnattu graafi ilmoitetaan DirectedGraph - luokaksi . Päämenetelmää käytetään ohjelmaa suoritettaessa . [7]

#include <iostream> 

käyttäen nimiavaruutta std ;  

// Ilmoittaa datatyypin 
graafirakenteen  Solmu solmuille
{
    int indeksi ; 
    merkkijonoarvot ; _ 
    solmu * seuraava ; 
};

// Ilmoita tietotyyppi 
graafirakenteen  Edge reunuksille
{
    int aloitushakemisto ; 
    int endIndex ; 
};

// Ilmoita ohjatun graafin 
luokan  DirectedGraph luokka
{
julkinen :
    solmu ** headNode ; 

    // Tämä menetelmä lisää uuden solmun graafin viereisyysluetteloon ja palauttaa sen palautusarvona 
Node * insertNewNode ( int index , string value , Node * node )          
    {
        Node * newNode = uusi solmu ; // Luo uuden solmun tyyppiä Node newNode -> index = index ; // asettaa indeksin newNode -> arvo = arvo ; // asettaa arvon newNode -> next = node ; // asettaa osoittimen seuraajalle return newNode ;     
           
           
           
         
    }

    // konstruktori, joka luo suunnatun graafin annetuilla solmuilla ja reunoilla 
DirectedGraph ( Solmusolmut [ ], Edge edges [], int numberOfEdges , int numberOfNodes )           
    {
        headNode = uusi solmu * [ numberOfNodes ](); // alustaa osoittimien joukon solmuja varten ( int i = 0 ; i < numberOfEdges ; i ++ ) // silmukan iterointia varten graafin kaikkien reunojen yli {    
                 
        
            int startIndex = reunat [ i ]. startIndex ; // Reunan aloitussolmun indeksi int endIndex = reunat [ i ]. endIndex ; // Reunamerkkijonon loppusolmun indeksi = solmut [ endIndex ] . arvot ; // reunan loppusolmun arvo Solmu * newNode = insertNewNode ( endIndex , value , headNode [ startIndex ]);    
                
                
                  // kutsua insertNewNode-metodi lisätäksesi uuden solmun 
headNode [ startIndex ] = newNode ; // asettaa osoittimen uuteen solmuun }               
        
    }
};

// tulostaa konsolin kaikki vierekkäiset solmun solmut 
void writeAdjacencyList ( Node * node , int i )    
{
    cout << "solmu" << ( i + 1 ) << ":" ;        
    while ( solmu != nullptr )   
    {
        cout << "(" << solmu -> indeksi << ", " << solmu -> arvo << ")" ;          
        solmu = solmu -> seuraava ;  
    }
    cout << endl ;  
}

// päämenetelmä, joka suorittaa ohjelman 
int main () 
{
    // Ilmoittaa ja alustaa taulukot solmuille ja reunoille 
Solmusolmut [ ] = { { 0 , "A" },{ 1 , "B" },{ 2 , "C" },{ 3 , "D" },{ 4 , "E" } };         
    Reunareunat [ ] = { { 0 , 1 }, { 0 , 2 }, { 1 , 4 }, { 2 , 3 }, { 3 , 1 }, { 4 , 3 } };     
    int numberOfNodes = koko ( solmut ) / koko ( solmut [ 0 ]); // Hanki solmujen lukumäärä int numberOfEdges = sizeof ( reunat ) / sizeof ( reunat [ 0 ]); // Hae reunojen lukumäärä DirectedGraph directedGraph ( solmut , reunat , numberOfEdges , numberOfNodes ); // Luo suunnatun graafin annetuilla pisteillä ja reunoilla      
          
         
    for ( int i = 0 ; i < numberOfNodes ; i ++ ) // silmukan iterointiin graafin kaikkien solmujen läpi {         
    
        Node * headNode = suunnattuGraph . headNode [ i ];   
        writeAdjacencyList ( headNode , i ); // tulostaa solmun headNode viereisyysluettelon }  
    
}

Katso myös

kirjallisuus

erittelyt

  1. a b c d Reinhard Diestel : Graafiteoria . 4. painos. Springer, Berlin et ai. 2010, ISBN 978-3-642-14911-5 , s . 1–34 ( verkossa: 4. sähköinen painos 2010 – ensimmäinen painos: 1996).
  2. Suunnatut graafit . Julkaisussa: Claude Sammut, Geoffrey I. Webb (toim.): Encyclopedia of Machine Learning . Springer USA, 2010, s. 279 , doi : 10.1007/978-0-387-30164-8_218 .
  3. a b suunnatuille kaavioille: samaan suuntaan
  4. [< https://writings.stephenwolfram.com/2020/04/finally-we-may-have-a-path-to-the-fundamental-theory-of-physics-and-its-beautiful/?dateline= ei >]
  5. Brigitte Werners: Operaatiotutkimuksen perusteet . 3. painos. Springer, Berliini Heidelberg 2013, ISBN 978-3-642-40101-5 , s. 175-209 .
  6. Jakso A000088 OEIS : ssä
  7. Ohjelmiston testausohje: Graafisen toteutus C++:ssa vierekkäisyysluettelon avulla