A színkódolás egy algoritmikus technika , amely hasznos a szerkezeti motívumok kimutatására . Használható például egy k hosszúságú egyszerű út megkeresésére egy adott gráfban . A hagyományos színkódolási algoritmus valószínűségi , de derandomizálható anélkül, hogy a futási időt jelentősen megnövelné .
A színkódolás alkalmazható adott hosszúságú ciklusok detektálására és általánosabban egy izomorf részgráf megtalálásának problémájára ( NP-complete problem ), ahol polinomiális idő algoritmusokat ad, ha a kívánt részgráf korlátos faszélességű .
A színkódolási módszert 1994-ben Noga Alon , Rafael Yuster és Yuri Zvik javasolta és elemezte [1] [2] .
Színkódolással a következő eredmények érhetők el:
Egy részgráf megtalálásának problémáját egy adott gráfban , ahol H lehet egy útvonal, egy ciklus vagy bármilyen korlátozott faszélességű gráf és , a színkódolási módszer azzal kezdődik, hogy véletlenszerűen színekkel színezi ki a G minden csúcsát , majd megpróbálja megtalálni a H színes másolatát a színes G - ben . Itt egy színes gráf alatt olyan gráfot értünk, amelyben minden csúcs a saját színére van színezve. A módszer úgy működik, hogy megismétli (1) a gráf véletlenszerű színezését, és (2) megkeresi a cél részgráf teljes színű másolatát. Végül a cél részgráfot meg lehet találni, ha a folyamatot elégszer megismétli.
Tételezzük fel, hogy a G-ben szereplő H másolata valamilyen p valószínűséggel teljesen színes lesz . Ebből rögtön az következik, hogy ha a véletlenszerű színezést egyszer megismétlik, akkor ez a másolat egyszer megtörténik. Vegyük észre, hogy még akkor is, ha p valószínűség kicsi, ismert, hogy a p valószínűség csak polinomiálisan kicsi. Tegyük fel, hogy van egy algoritmus, amely adott egy G gráfot és egy színezést, amely G minden csúcsát k szín valamelyikére képezi le , és megkeresi a H teljes színű másolatát , ha létezik, bizonyos időn belül O ( r ) . Ekkor a G -beli H másolatának megtalálásának várható ideje , ha létezik, .
Néha kívánatos a színséma merevebb változatát használni. Például a síkgráfokban lévő ciklusok keresésével összefüggésben kidolgozhatunk egy algoritmust a jól színezett ciklusok megtalálására. Itt a jól színezett ciklus alatt az egymást követő színekkel történő színezést értjük.
Példaként vegyük egy k hosszúságú egyszerű ciklus keresését a gráfban .
A véletlenszerű színezési módszer használatakor minden egyszerű ciklusnak megvan az esélye arra, hogy színessé váljon, mivel van mód a ciklus k csúcsának színezésére, amelyek között vannak teljes színű színezés változatai. Ekkor az alábbiakban ismertetett algoritmussal egy véletlenszerűen színezett G gráfban teljes színű ciklusokat találhatunk időben , ahol a mátrixszorzási állandó. Ekkor teljes időbe telik egy k hosszúságú egyszerű ciklus megtalálása G- ben .
A színes hurokkereső algoritmus először megkeresi V -ben az összes olyan csúcspárt, amelyeket egy egyszerű k − 1 hosszúságú útvonal köt össze , majd ellenőrzi, hogy minden párban két csúcs össze van-e kapcsolva. Adott egy színezési függvény egy G gráfhoz , számozza át a színkészlet összes partícióját két nagyságú részhalmazra . Minden ilyen partícióhoz legyen a -ból színezett csúcsok halmaza , és -ból színezett csúcsok halmaza . Jelölje és jelölje a és által generált részgráfokat . Rekurzívan keresse meg a és -ben hosszúságú színes útvonalakat . Képzeljük el, hogy a és a logikai mátrixok minden egyes csúcspár összekapcsolását egy színes útvonalon, illetve egy színes útvonalon ábrázolják, és legyen B egy mátrix, amely leírja a csúcsok szomszédságát és , akkor a Boole-szorzat megadja a V -ben lévő összes csúcspárt összekapcsolva egy k − 1 hosszúságú színes pályával . A színhalmaz összes partícióján kapott mátrixok egyesítése adja , ami a futási időhöz vezet . Bár ez az algoritmus csak a színes útvonal végpontjait találja meg, egy másik Alon és Naor [4] algoritmus is használható , amely ténylegesen megtalálja a színes útvonalat.
Egy színkódolás derandomizálása magában foglalja a G gráf lehetséges színeinek felsorolását, így a G színezésének véletlenszerűvé tételéretöbbé nincs szükség. Ahhoz, hogy meg lehessen találni egy cél H részgráfot G - ben, a felsorolásnak tartalmaznia kell legalább egy olyan esetet, amikor H színes. Ennek eléréséhez elegendő felsorolni a k -tökéletes F hash-függvénycsaládot {1, ..., k } -be. Definíció szerint egy F függvény k -tökéletes, ha a halmaz bármely S részhalmazára, ahol ,létezik egy h hash függvény F - bőlúgy, hogyaz ideális hash függvény . Más szóval, F -ben kell lennie egy hash függvénynek, amely az adott k csúcsot k különböző színnel színezi.
Számos megközelítés létezik egy ilyen k -ideális hash-család létrehozására:
Ideális színezés derandomizálása esetén, amikor a részgráf minden csúcsát szekvenciálisan színezzük, egy k -ideális hash függvénycsaládra van szükség től -ig . Elegendő k -tökéletes családleképezés től -ig a fenti 3. megközelítéshez hasonló módon (első lépés) készíthető. Ez különösen véletlenszerű bitek felhasználásával történik, amelyek szinte függetlenek, és a kapott k -perfect család mérete .
A színkódolási módszer derandomizálása könnyen párhuzamosítható, ami hatékony algoritmusokhoz vezet az NC osztályban .
A közelmúltban a színkódolás felkeltette a bioinformatika területén dolgozó tudósok figyelmét. Példa erre a jelátviteli útvonalak meghatározása protein-protein interakciós hálózatokban (PPI). motívumok számának felfedezése és megszámlálása a BPI hálózatokban. A jelátviteli útvonalak és a motívumok tanulmányozása során az lehetővé teszi az organizmusok számos biológiai funkciója, folyamata és szerkezete közötti hasonlóság-különbség mélyebb megértését.
Az összegyűjthető genetikai adatok nagy mennyisége miatt az utak vagy indítékok megtalálása sokáig tarthat. A színkódolási módszert alkalmazva azonban egy n csúcsú G hálózatban csúcsokkal rendelkező motívumok és jelutak nagyon hatékonyan megtalálhatók polinomiális időben. Ez lehetővé teszi a WWW hálózatok bonyolultabb vagy nagyobb struktúráinak feltárását .