A gráfszínezés egy gráfelméleti konstrukció, a gráfjelölés egy speciális esete . Színezéskor a gráfelemekhez bizonyos korlátozások mellett címkéket rendelnek; ezeket a címkéket hagyományosan "színeknek" nevezik. A legegyszerűbb esetben a gráf csúcsainak színezésének azt a módját, amelyben bármely két szomszédos csúcs különböző színeknek felel meg, csúcsszínezésnek nevezzük. Hasonlóképpen az élszínezés minden élhez hozzárendel egy színt, így bármely két szomszédos él eltérő színű [1] . Végül egy síkgráf régiószínezése minden régióhoz hozzárendel egy színt, így minden két, egy határon áteső régió nem lehet azonos színű.
A csúcsszínezés a gráfszínezés fő problémája, minden egyéb probléma ezen a területen erre redukálható. Például egy gráf éleinek színezése a vonalgráfja csúcsainak színezése, a síkgráf régióinak színezése pedig a duális gráf csúcsainak színezése [1] . Azonban más grafikonszínezési problémákat gyakran az eredeti beállításokban vetnek fel és oldanak meg. Ennek egyrészt az az oka, hogy jobb képet ad arról, hogy mi történik, és sokkal leleplezőbb, másrészt az, hogy bizonyos problémákat kényelmesebb így megoldani (például élszínezés).
A grafikon színezése számos gyakorlati területen alkalmazható, és nem csak elméleti problémákban. A klasszikus típusú problémákon kívül a grafikonon, a színek hozzárendelésének módjára vagy magukra a színekre is különféle korlátozások helyezhetők. Ezt a módszert például a népszerű Sudoku rejtvényben használják . Még mindig aktív kutatás folyik ezen a területen.
Az első eredményeket a térképszínezési feladatban síkgráfokra kaptuk. Az angliai megyék térképének kiszínezésére tett kísérletben Francis Guthrie megfogalmazta a négyszín problémát , megjegyezve, hogy négy szín elegendő a térkép színezéséhez, hogy bármely két szomszédos régió eltérő színű legyen. Bátyja a kérdést matematikatanárának, Augustus de Morgannek utalta, aki William Hamiltonnak írt levelében 1852-ben említette. Arthur Cayley felvetette ezt a problémát a Londoni Matematikai Társaság 1878-as ülésén . Ugyanebben az évben Tate javasolta az első megoldást erre a problémára. Az eredeti gráf csúcsainak színezését a duális gráf éleinek színezésére redukálta, és azt javasolta, hogy ennek a problémának mindig van megoldása [2] . 1880-ban Alfred Kempe publikált egy cikket, amelyben azt állította, hogy sikerült megállapítania az eredményt, és egy évtizedig a négy szín problémáját megoldottnak tekintették. Emiatt az eredményért Kempét a Londoni Királyi Társaság tagjává, majd a Londoni Matematikai Társaság elnökévé választották [3] .
1890-ben Heawood hibát talált Kempe bizonyításában. Ugyanebben a cikkben bebizonyította az öt szín tételt , megmutatva, hogy bármely lapos térkép legfeljebb öt színnel színezhető. Ennek során Kempe elképzeléseire támaszkodott. A következő évszázadban számos elméletet dolgoztak ki a színek minimális számának csökkentésére. A Négyszínű tételt végül 1977-ben Kenneth Appel és Wolfgang Haken tudósok számítógépes felsorolással bizonyították. A bizonyítás ötlete nagymértékben támaszkodott Heawood és Kempe gondolataira, és figyelmen kívül hagyta a köztes tanulmányok többségét [4] . A négy szín tételének bizonyítása az egyik első olyan bizonyítás, amelyben számítógépet használtak.
1912-ben George David Birkhoff javasolta a kromatikus polinom használatát, amely az algebrai gráfelmélet fontos részét képezi a színezési problémák tanulmányozására . A kromatikus polinomot ezt követően William Tutt általánosította ( Tutt polinomja ). Kempe már 1879-ben felhívta a figyelmet arra az általános esetre, amikor a gráf nem síkbeli [5] . A XX. század elején számos eredmény jelent meg a magasabb rendű felületeken színező síkgrafikonok általánosításának.
1960-ban Claude Burge megfogalmazta a tökéletes gráfsejtést , amelyet egy információelméleti fogalom, nevezetesen a Shannon által bevezetett gráfkapacitás nulla hiba [6] motivált . Ezt az állítást 40 évig nem erősítették meg, mígnem Chudnovskaya , Robertson , Seymour és Thomas matematikusok 2002-ben bebizonyították, mint a híres szigorú tökéletes gráftételt .
A gráfszínezést, mint algoritmikus problémát az 1970-es évek óta tanulmányozzák: a kromatikus szám meghatározása Karp 21 NP-teljes feladatának egyike (1972). Ezzel egy időben különféle algoritmusokat fejlesztettek ki a visszalépésen és a Zykov -féle rekurzív törlésen és összehúzódáson [7] . 1981 óta használják a gráfszínezést a fordítóprogramok regiszterek kiosztására [8] .
Amikor az emberek a gráfok színezéséről beszélnek, akkor szinte mindig a csúcsaik színezésére gondolnak, vagyis a gráf csúcsaihoz színcímkéket rendelnek úgy, hogy bármely két csúcs, amelynek közös éle eltérő színű legyen. Mivel a hurkolt gráfokat így nem lehet színezni, szóba sem jöhet.
A terminológia, amelyben a címkéket színeknek nevezik, a politikai térképek színezéséből származik. A piros vagy kék címkéket csak akkor használják, ha a színek száma kicsi, de a címkéket általában egész számoknak tekintik .
A színekkel való színezést -színezésnek nevezzük . A gráf színezéséhez szükséges legkisebb számú színt kromatikus számnak nevezzük, és gyakran úgy írják, hogy . Néha használják , mivel az Euler - karakterisztikát jelöli . A csúcsok egy színnel kiemelt részhalmazát színosztálynak nevezzük , minden ilyen osztály független halmazt alkot . Így a -színezés ugyanaz, mint a csúcsok független halmazokra való felosztása [1] .
Legyen tetszőleges gráf csúcskészlettel . Rögzítünk két pozitív valós számot , és metrikus térnek fogjuk tekinteni , amelyben a szomszédos csúcsok távolsága egyenlő , és minden más nem nulla távolság egyenlő -vel . Jelölje a metrikus térrel, amely egymástól távolsággal elválasztott pontokból áll . Végül bármely két és metrikus térre jelölje a Gromov-Hausdorff távolságot és között . Ekkor a következő eredmény érvényes.
Tétel (A.O. Ivanov, A.A. Tuzhilin) [9] : Legyen az a legnagyobb természetes szám, amelyre (ha nem léteznek ilyen természetes számok, akkor beállítjuk ). Akkor .Megjegyzés.
A kromatikus polinom egy függvény , amely megszámolja a gráf t -színezéseinek számát . A névből az következik, hogy adott esetén ez a függvény t -től függő polinom .
Ezt a tényt Birkhoff és Lewis fedezte fel, miközben megpróbálta bizonyítani a négy szín sejtést [10] .
Például a jobb oldali képen látható grafikon 12 féleképpen színezhető 3 szín használatával. Két színnel elvileg nem festhető. 4 színt használva 24+4*12 = 72 színezési lehetőséget kapunk: mind a 4 szín felhasználása esetén 4! = 24 helyes mód ( minden 4 szín hozzárendelése bármely 4 csúcsból álló gráfhoz helyes); és ebből a 4-ből minden 3 színhez 12 mód van a színezésre. Ezután a példában szereplő grafikonnál a helyes színezések számtáblázata így kezdődik:
Elérhető színek száma | egy | 2 | 3 | négy | … |
A színezési módok száma | 0 | 0 | 12 | 72 | … |
A példában szereplő grafikonhoz és természetesen a .
Egy kromatikus polinom legalább annyi színezhetőségi információt tartalmaz, mint egy kromatikus szám. Valójában az a legkisebb pozitív egész szám, amely nem egy kromatikus polinom gyöke.
Háromszög alakú | |
Teljes grafikon | |
bordás fa _ | |
Ciklus | |
Petersen grófja |
A gráf élszínezése azt jelenti, hogy az élekhez színeket rendelünk oly módon, hogy két azonos színű él ne tartozzon ugyanahhoz a csúcshoz. Ez a probléma megegyezik az arcok halmazának független laphalmazokra való felosztásával . Egy gráf élszínezéséhez szükséges legkisebb színszám a kromatikus indexe vagy élkromatikus száma .
A teljes színezés a gráf csúcsainak és éleinek színezésének egy fajtája. Ez alatt a színek olyan hozzárendelését értjük, hogy sem a szomszédos csúcsok, sem a szomszédos élek, sem az őket összekötő csúcsok és élek nem azonos színűek. A gráf teljes kromatikus száma a színek legkisebb száma, amely a teljes színezéshez szükséges.
Annak a síknak a kromatikus száma, amelyben két pont szomszédos, ha egységnyi távolság van közöttük. Ez lehet 5, 6 vagy 7. A gráfok kromatikus számával kapcsolatos további nyitott kérdések közé tartozik a Hadwiger-sejtés , amely kimondja, hogy minden k kromatikus számú gráfnak van egy teljes gráfja k csúcsból , az Erdős-Faber-Lovas. sejtés , amely korlátozza azoknak a teljes gráfoknak a kromatikus számát, amelyeknek pontosan egy közös csúcsa van minden gráfpárnak, valamint Albertson sejtése, hogy a k - kromatikus gráfok közül a legkevesebb metszésponttal rendelkező gráfok teljesek .
Amikor Birkov és Lewis bevezette a kromatikus polinomot a Négyszín Tétel megoldására, azzal érveltek, hogy síkgráfok esetében a polinomnak nincsenek nullák a tartományban . Bár ismert, hogy egy ilyen kromatikus polinomnak nincs nullája a tartományban , és ez , állításuk nem bizonyított. Nyitott kérdés marad az is, hogyan lehet megkülönböztetni az azonos kromatikus polinommal rendelkező gráfokat, és hogyan lehet meghatározni, hogy egy polinom kromatikus-e.
Kétrészes gráf esetén a színezési probléma lineáris időben kerül kiszámításra a szélesség -első keresés segítségével . Tökéletes gráfok esetén a kromatikus szám és a hozzá tartozó színezés polinomiális időben , félig meghatározott programozással megkereshető . A kromatikus szám meghatározására szolgáló pontos képletek számos gráfosztályhoz ismertek (erdők, ciklusok , kerekek , akkordgráfok ), és polinomiális időben is kiszámíthatók.
A k-színezés esetére kimerítő keresési algoritmus figyelembe veszi a színelrendezések összes kombinációját egy n csúcsú gráfban, és ellenőrzi azok helyességét. A kromatikus szám és a kromatikus polinom kiszámításához ez az algoritmus minden k-t figyelembe vesz 1-től n-ig. A gyakorlatban egy ilyen algoritmus csak kis gráfokra alkalmazható.
Dinamikus programozással és a legnagyobb független halmaz méretének becslésével időben megoldható a k-színezés lehetősége egy gráfban [18] . A 3 és 4 színezéshez ismertek gyorsabb algoritmusok, amelyek időben futnak [19] , illetve [20] .
A csúcsösszehúzás egy olyan művelet, amely gráfot készít gráfból úgy, hogy azonosítja a csúcsokat , és eltávolítja az őket összekötő éleket, és egy csúcsra cseréli őket , ahol az élek a csúcsokhoz esnek , és átirányítják őket . Ez a művelet fontos szerepet játszik a gráf színezésének elemzésében.
A kromatikus szám kielégíti az ismétlődési relációt
,
ahol és a nem szomszédos csúcsok, egy gráf hozzáadott éllel . Egyes algoritmusok ezen az arányon alapulnak, és ennek eredményeként fát hoznak létre, amelyet néha Zykov-fának is neveznek. A végrehajtási idő a csúcskiválasztási módszertől és a .
A kromatikus polinom kielégíti az ismétlődési relációt
,
ahol és a szomszédos csúcsok, egy gráf, amelynek éle eltávolítva . a gráf lehetséges helyes színezéseinek számát jelenti, amikor a és csúcsok azonos vagy eltérő színűek lehetnek. Ha és különböző színűek, akkor tekinthetünk egy gráfot, ahol és szomszédosak. Ha a és ugyanazok a színek, akkor fontolóra vehetünk egy olyan grafikont, ahol és összevonják.
A fent megadott kifejezések egy rekurzív eljáráshoz vezetnek, az úgynevezett eltávolítási és szerződéskötési algoritmushoz , amely számos gráfszínező algoritmus alapját képezte. A futási idő ugyanazt az ismétlődési relációt elégíti ki, mint a Fibonacci-számok , így a legrosszabb esetben az algoritmus időben futni fog n csúcson és m élen [21] . A gyakorlatban az elágazó és kötött módszer és az izomorf gráfok elutasítása elkerüli a rekurzív hívásokat, a futási idő a csúcspár kiválasztásának módszerétől függ.
A mohó algoritmus rendezi a ,… csúcsokat, és sorrendben hozzárendeli a csúcshoz azt a legkisebb elérhető színt, amelyet nem használtak a ,…, , szomszédok színezésére , vagy hozzáad egy újat. A kapott színezés minősége a választott sorrendtől függ. Mindig van egy sorrend, amely a mohó algoritmust az optimális színszámra hozza . Másrészt egy mohó algoritmus tetszőlegesen rossz lehet; például egy n csúcsú koronát 2 színnel lehet színezni, de van olyan csúcssorrend, ami a színek mohó színezését eredményezi.
Egy akkordgráfnál és speciális eseteinél (például intervallumgráfnál ) a mohó színezési algoritmus használható az optimális színezés megtalálására polinomiális időben, ha a csúcsok sorrendjét a tökéletes eliminációs sorrend fordítottjaként választjuk meg . Ez az algoritmus a gráfok szélesebb osztályára alkalmazható ( teljesen rendezhető gráfok ), de ilyen sorrend megtalálása az ilyen gráfokhoz NP-nehéz probléma.
Ha a csúcsokat fokuk szerint rendezzük, akkor a mohó színező algoritmus legfeljebb színeket használ, ami legfeljebb 1-gyel több, mint (itt a csúcs foka ). Ezt a heurisztikus algoritmust néha Welsh-Powell algoritmusnak is nevezik [22] . Egy másik algoritmus dinamikusan állítja be a sorrendet, kiválasztva a következő csúcsot abból a csúcsból, amelyiknek a legszomszédosabb, különböző színű csúcsai vannak. Sok más gráfszínező algoritmus mohó színezésen alapul, és statikus vagy dinamikus csúcsrendezési stratégiákat használ.
Hasonló probléma jelentkezik az elosztott algoritmusok területén is. Tegyük fel, hogy a gráf csúcsai olyan számítógépek, amelyek képesek kommunikálni egymással, ha éllel vannak összekötve. A cél az, hogy minden számítógép válasszon egy "színt" magának, így a szomszédos számítógépek más-más színt választanak. Ez a probléma szorosan összefügg a szimmetriatörés problémájával . A legfejlettebb valószínűségi algoritmusok gyorsabbak, mint a determinisztikus algoritmusok kellően nagy maximális csúcsfokozatú gráfokhoz . A leggyorsabb valószínűségi algoritmusok a többszörös próbálkozás technikáját használják [23] .
A szimmetrikus gráfokban a determinisztikus elosztott algoritmusok nem találják meg az optimális csúcsszínezést. További információra van szükség a szimmetria elkerülése érdekében. Egy szabványos feltételezés szerint kezdetben minden csúcsnak van egy egyedi azonosítója, például a halmazból . Más szóval, feltételezzük, hogy n -színezést kapunk. A feladat a színek számának csökkentése n -ről például -re . Minél több színt használunk (például a helyett ), annál kevesebb üzenetváltásra lesz szükség [23] .
A színezés elosztott mohó algoritmusának egyszerű változata a legrosszabb esetben kommunikációs köröket igényel – előfordulhat, hogy az információnak a hálózat egyik végéről a másikra kell eljutnia.
A legegyszerűbb érdekes eset az n - ciklus. Richard Cole és Uzi Vishkin [24] kimutatta, hogy létezik egy elosztott algoritmus, amely n -ről -re csökkenti a színek számát , egyetlen szomszédos üzenetküldéssel. Ugyanezt az eljárást megismételve kaphatunk n -ciklusú 3-színezést a kapcsolódási körökben (feltéve, hogy egyedi csomópontazonosítókat adunk meg).
A függvény , az iterált logaritmus , egy rendkívül lassan növekvő függvény, "majdnem állandó". Ezért Cole és Vishkin eredményei felvetik a kérdést, hogy létezik-e elosztott n-ciklusú 3 színezési algoritmus, amely állandó időben fut. Nathan Linial megmutatta, hogy ez lehetetlen: minden determinisztikus elosztott algoritmushoz kommunikációs körökre van szükség ahhoz, hogy egy N -színezést 3-as színezésre redukáljon egy n-ciklusban [25] .
Cole és Vishkin technikája alkalmazható tetszőleges, korlátos fokú csúcsokkal rendelkező gráfra is, ebben az esetben a futási idő [26] . Ezt a módszert Schneider és munkatársai általánosították az egységkör gráfra [27] .
Az élszínezés problémáját elosztott modellben is tanulmányozták. Pansonezzi és Rizzi elérte a színezést ebben a modellben [28] . Az elosztott csúcsszínezés Linial által elért alsó korlátja az elosztott élszínezés problémájára is alkalmazható [25] .
A decentralizált algoritmusokat olyan algoritmusoknak nevezzük, amelyekben a belső üzenettovábbítás nem engedélyezett (ellentétben az elosztott algoritmusokkal , ahol a folyamatok adatokat cserélnek egymással). Vannak hatékony decentralizált algoritmusok, amelyek sikeresen megbirkóznak a gráfok színezésével. Ezek az algoritmusok azon a feltételezésen dolgoznak, hogy egy csúcs képes "érezni", hogy bármelyik szomszédos csúcsa ugyanolyan színű, mint ő. Más szóval, lehetséges egy helyi konfliktus meghatározása. Ez a feltétel meglehetősen gyakran teljesül a valós alkalmazásokban - például vezeték nélküli csatornán keresztüli adatátvitel során az adóállomás általában képes észlelni, hogy egy másik állomás egyidejűleg próbál sugározni ugyanazon a csatornán. Az ilyen információk megszerzésének képessége elegendő ahhoz, hogy a tanulási automatákon alapuló algoritmusok egyes valószínűséggel helyesen oldják meg a gráf színezési problémáját [29] [30] .
A grafikonok színezése számítási szempontból nehéz feladat. Annak megállapítása , hogy egy gráf k színezhető-e adott k esetén, NP-teljes feladat, kivéve a k = 1 és k = 2 eseteket. A kromatikus szám kiszámításának problémája NP-nehéz [31]. . A 3 színezési probléma NP-teljes még egy 4-es fokú síkgráf esetében is [32] .
Szintén NP-nehéz probléma egy 3 színezhető gráf 4 színnel színezése [33] és egy k színezhető gráf kellően nagy k értékéhez [34] .
A kromatikus polinom együtthatóinak kiszámítása #P-nehéz probléma. Bebizonyosodott, hogy nincs FPRAS algoritmus a kromatikus polinom kiszámítására bármely k ≥ 1,5 racionális számra , kivéve k = 2, kivéve, ha NP = RP [35] .
A csúcsszínezés számos tervezési problémát modellez [36] . A legegyszerűbb beállításban egy adott feladatkészletet időintervallumokra kell osztani, minden ilyen feladat egy szegmenst foglal el. Bármilyen sorrendben végrehajthatók, de a két munka ütközhet abban az értelemben, hogy nem hajthatók végre egyszerre, mert például megosztott erőforrásokat használnak. A megfelelő gráf minden feladathoz tartalmaz egy csúcsot és minden ütköző párhoz egy élt. A megszerkesztett gráf kromatikus száma az a minimális idő, amely alatt az összes feladat konfliktusmentesen befejeződik.
Az ütemezési probléma részletei határozzák meg a gráf szerkezetét. Például, amikor a repülőgépeket repülésekre osztják, az eredményül kapott konfliktusgráf egy intervallumgráf , így a színezési probléma hatékonyan megoldható. A rádiófrekvenciák elosztása során egységkonfliktuskörök grafikonját kapjuk, és egy ilyen problémára van egy 3-as közelítési algoritmus .
A fordítóprogram egy számítógépes program , amely az egyik számítógépes nyelvet a másikra fordítja. Az eredményül kapott kód végrehajtási idejének javítása érdekében az egyik fordítóoptimalizálási technika a regiszterallokáció , amelyben a lefordított program leggyakrabban használt változóit nagy sebességű processzor regiszterekben tárolják . Ideális esetben a változókat regiszterekben tárolják, így használatuk időpontjában mindegyik regiszterben van.
Ennek a problémának a standard megközelítése a gráf színezési problémára való redukálása [8] . A fordító összeállít egy interferenciagráfot , ahol a csúcsok változóknak felelnek meg, és egy él összeköti kettőt, ha egyszerre van szükség rájuk. Ha ez a gráf k -kromatikus, akkor a változók k regiszterben tárolhatók .
A digitális vízjelek technológiája ( eng. digital watermarking ) lehetővé teszi néhány rejtett üzenet átvitelét az adatokkal együtt (legyenek azok médiafájlok , végrehajtható fájlok és egyebek) (" vízjel ", vízjel ). Az ilyen rejtett üzenet a szerzői jogvédelemben felhasználható az adatok tulajdonosának azonosítására.
Ez fontos például az illegális terjesztésük forrásának megállapításához. Vagy az adatokhoz való jogok megerősítésére, például - szoftverrendszerek chipen ( system-on-chip ).
Az üzenet a regiszterek kiosztásának módjában is kódolható. Az egyik ilyen technikát Qu és Potkonjak [37] javasolta (ezért néha QP algoritmusnak is nevezik).
Ez a következőkből áll: legyen a processzorregiszterek eloszlásának inkompatibilitási gráfja (interferenciagráf), amit fentebb említettünk. A színezését a program használja – ráadásul úgy, hogy a grafikon tartalmát a kromatikus szám enyhe növelésével is meg lehet változtatni . Kiderült, hogy lehetséges egy üzenet kódolása egy szoftvertermékben gráfszínezéssel , vagyis a regiszterek elosztásával.
Ezt az üzenetet úgy bonthatja ki, hogy összehasonlítja a regiszterek eloszlását az eredeti színezéssel; [38] Vannak módok is annak ellenőrzésére, hogy egy üzenet kódolva volt-e a programban az eredeti használata nélkül.
Ezt követően különböző szerzők fejlesztették ki és finomították Qu és Potkonjak [39] gondolatait . [38] [40]
A grafikon színezési problémája számos más alkalmazásban is felmerült, beleértve a mintaillesztést is .
A Sudoku rejtvény megfejtése úgy is felfogható, mint egy adott, 81 csúcsból álló gráf 9 színű színezése.