Silta on graafiteoriassa reuna , jonka poistaminen lisää kytkettyjen komponenttien määrää [1] . Tällaisia kylkiluita kutsutaan myös leikkausripeiksi , leikkauskaareiksi tai kannaksiksi . Vastaava määritelmä on, että reuna on silta silloin ja vain, jos se ei sisälly mihinkään sykliin .
Graafi, jossa on pisteet, voi sisältää korkeintaan siltoja, koska yhden reunan lisääminen johtaa väistämättä syklin esiintymiseen. Kuvaajat, joissa on täsmälleen siltoja, tunnetaan puina , ja kuvaajat, joissa mikä tahansa reuna on silta, ovat metsiä .
Missä tahansa suuntaamattomassa graafissa on kärkiekvivalenssirelaatio , jonka mukaan kaksi kärkeä on ekvivalenttinen , jos niitä yhdistää kaksi polkua, jotka eivät leikkaa reunoja pitkin (mikä tahansa kärki katsotaan vastaavaksi itselleen). Tämän suhteen ekvivalenssiluokkia kutsutaan 2-edge-connected komponenteiksi ja graafin siltoja ovat juuri ne reunat, joiden päät kuuluvat eri komponentteihin. Graafin siltauslohkokaaviossa on kärkipiste mille tahansa ei-triviaalille komponentille ja kullekin sillalle reuna [2] .
Sillat liittyvät läheisesti saranoiden käsitteeseen, pisteisiin , jotka menevät mihin tahansa polkuun, joka yhdistää kaksi kärkeä. Sillan kaksi päätypistettä ovat saranoituja, elleivät ne ole astetta 1, vaikka myös ei-sillan reunat voidaan saranoida molemmista päistä. Kuten kaaviot ilman siltoja, jotka on yhdistetty 2 reunaan, graafit ilman saranoita ovat vertex-2-kytkettyjä .
Kuutiokaavioissa mikä tahansa sarana on vähintään yhden sillan päätepiste.
Kuten nimestä voi päätellä, sillaton graafi on graafi, jossa ei ole siltoja. Vastaavia ehtoja ovat, että jokaisella graafin yhdistetyllä komponentilla on avoin korvahajotus [3] , että jokainen yhdistetty komponentti on 2-särmäinen tai ( Robbinsin lauseen mukaan ), että jokaisella yhdistetyllä komponentilla on vahva orientaatio [3 ] .
Tärkeä siltoihin liittyvä avoin ongelma on Seymourin ja Székeresin (vuosina 1978 ja 1979 itsenäisesti) ehdottama kaksinkertaisen syklin peittooletus , jonka mukaan mikä tahansa sillaton graafi voidaan kattaa yksinkertaisilla syklillä, jotka sisältävät kunkin reunan kahdesti [4] .
Ensimmäisen algoritmin siltojen löytämiseksi graafista, jossa on lineaarinen ajoaika , kuvasi Robert Tarjan vuonna 1974 [5] . Algoritmi toimii näin:
Merkitsemme puun sisältämää reunaa (v,w) muodossa , mutta ei sisällä muodossa .
.
Jos on silta, niin on selvää, että alipuusta, joka on juurtunut, ei pitäisi olla mitään mahdollisuutta mennä kärkeen, joka ei kuulu tähän alipuuhun. Tämän tarkistamiseksi riittää tarkistaa L(w), H(w) - ehto tarkoittaa, että emme mene kärkeen, joka sijaitsee lähempänä juuria, ja ehto tarkoittaa, että emme mene toiseen alipuuhun.
Hyvin yksinkertainen siltahakualgoritmi [6] perustuu ketjun hajotukseen. Ketjun hajottaminen ei ainoastaan tuota kaikkia siltoja, se tuottaa myös kaikki graafin G saranat (ja kaksinkertaisesti kytketyt komponentit) , mikä tarjoaa perustan reunan ja vertex 2 -liitettävyyden testaamiseen (ja tätä menetelmää voidaan laajentaa lineaariseen ajassa varmennukseen). reuna- ja kärki 3-yhteydestä).
Ketjuhajotus on korvahajottamisen erikoistapaus, joka perustuu graafin G puun T syvähakuun, ja se voidaan tehdä hyvin yksinkertaisesti:
merkitään kaikki kärjet vierailemattomiksi. Kaikille kärkipisteille v nousevassa järjestyksessä läpikulkunumeroiden 1... n läpi, kuljemme jokaisen takaperin (eli reunan, joka ei kuulu läpikulkupuuhun), joka tulee v :lle , ja seuraa puun reunoja juureen, kunnes kohdata vieraillun huippupisteen. Tämän ohituksen aikana merkitsemme kaikki ohitetut kärjet käydyiksi. Tämä kulku päättyy joko polkuun tai silmukkaan, joka alkaa kohdasta v , kutsumme tätä poluksi tai silmukaksi ketjuksi . Merkitsemme i :ttä merkkijonoa, joka on saatu sellaisella menettelyllä kuin C i . C=C 1 ,C 2 ,... on tällöin graafin G osio ketjuiksi .
Seuraavat ominaisuudet mahdollistavat jonkin graafin G : n tiedon saamisen C:stä tehokkaasti , mukaan lukien kaikki sillat [6] :
Olkoon C yksinkertaisen yhdistetyn graafin G=(V,E) ketjuhajotelma .