Farvekodning er en algoritmisk teknik , der er nyttig til at detektere strukturelle motiver . For eksempel kan det bruges til at finde en simpel vej med længden k i en given graf . Den traditionelle farvekodningsalgoritme er probabilistisk , men den kan de-randomiseres uden en væsentlig stigning i køretid .
Farvekodning er også anvendelig til detektion af cyklusser af en given længde og mere generelt til problemet med at finde en isomorf subgraf ( NP-komplet problem ), hvor den giver polynomiske tidsalgoritmer, hvis den ønskede subgraf har en afgrænset træbredde .
Farvekodningsmetoden blev foreslået og analyseret i 1994 af Noga Alon , Rafael Yuster og Yuri Zvik [1] [2] .
Følgende resultater kan opnås ved farvekodning:
For at løse problemet med at finde en undergraf i en given graf , hvor H kan være en sti, en cyklus eller en hvilken som helst graf med begrænset træbredde , og , starter farvekodningsmetoden med at farve hvert hjørne tilfældigt i G med farver, og derefter forsøger at finde en fuldfarvekopi af H i den farvelagte G. _ Her forstås en fuldfarvegraf som en graf, hvor hvert hjørne er farvet i sin egen farve. Metoden fungerer ved at gentage (1) en tilfældig farvning af grafen og (2) finde en fuldfarvekopi af målsubgrafen. Til sidst kan målsubgrafen findes, hvis processen gentages nok gange.
Antag, at en kopi af H i G bliver fuldfarve med en sandsynlighed p , der ikke er nul . Heraf følger umiddelbart, at hvis den tilfældige farvelægning gentages én gang, vil denne kopi forekomme én gang. Bemærk, at selv når sandsynligheden p er lille, er det kendt, at sandsynligheden p kun er polynomielt lille. Antag, at der er en algoritme, der givet en graf G og en farve, der afbilder hvert toppunkt af G til en af k farver, finder en kopi af fuldfarvekopi af H , hvis den findes, på et stykke tid O ( r ) . Så er den forventede tid til at finde en kopi af H i G , hvis den findes, .
Nogle gange er det ønskeligt at bruge en mere stiv version af farveskemaet. For eksempel, i forbindelse med at finde cyklusser i plane grafer , kan man udvikle en algoritme til at finde velfarvede cyklusser. Her mener vi med en velfarvet cyklus farvning med på hinanden følgende farver.
Lad os som et eksempel tage søgningen efter en simpel cyklus med længden k i grafen .
Når du bruger den tilfældige farvningsmetode, har hver enkel cyklus en chance for at blive fuldfarvet, da der er måder at farve k hjørner af cyklussen, blandt hvilke der er varianter af fuldfarvet farvning. Derefter kan algoritmen (beskrevet nedenfor) bruges til at finde fuldfarvecyklusser i en tilfældigt farvet graf G i tid , hvor er matrixmultiplikationskonstanten. Så tager det samlet tid at finde en simpel cyklus med længden k i G .
Sløjfesøgningsalgoritmen i fuld farve finder først alle par af hjørner i V , der er forbundet med en simpel vej med længden k − 1 , og kontrollerer derefter, om to hjørner i hvert par er forbundet. Givet en farvefunktion for en graf G , omnummerer alle partitioner i farvesættet til to undersæt af størrelse ca. i hver. For hver sådan partition, lad være sættet af hjørner farvet fra , og lad være sættet af hjørner farvet fra . Lad og betegne undergraferne genereret af hhv . Find rekursivt fuldfarvede længdebaner i og . Forestil dig , at de boolske matricer repræsenterer forbindelsen af hvert par af hjørnepunkter i henholdsvis en fuldfarvet sti, og lad B være en matrix, der beskriver tilgrænsende hjørner og , så giver det boolske produkt alle par af knudepunkter i V forbundet ved en fuldfarvebane med længden k − 1 . Foreningen af matricerne opnået på alle partitioner i sættet af farver giver , hvilket fører til køretiden . Selvom denne algoritme kun finder endepunkterne for en fuldfarvesti, kan en anden algoritme af Alon og Naor [4] bruges , som faktisk finder fuldfarvestien.
Derandomisering af en farvekodning involverer en liste over mulige farvninger af grafen G , så randomisering af farvningen af G ikke længere er nødvendig. For at kunne finde en målundergraf H i G , skal opregningen omfatte mindst ét tilfælde, hvor H er fuldfarvet. For at få dette er det tilstrækkeligt at opregne den k -perfekte familie F af hashfunktioner fratil {1, ..., k } . Per definition er en funktion F k -perfekt, hvis der for en hvilken som helst delmængde S af sættet, hvor, eksisterer en hashfunktion h fra F , således at dener en ideel hashfunktion . Med andre ord skal der være en hashfunktion i F , der farver de givne k hjørner med k forskellige farver.
Der er flere tilgange til at konstruere sådan en k -ideal hashfamilie:
I tilfælde af derandomisering af ideel farvning, når hvert hjørne af subgrafen farves sekventielt, kræves en k - ideal familie af hashfunktioner fra til . En tilstrækkelig k -perfekt familiekortlægning fra til kan konstrueres på en måde svarende til fremgangsmåde 3 ovenfor (første trin). Dette gøres især ved hjælp af tilfældige bits, der er næsten uafhængige, og størrelsen af den resulterende k -perfekte familie vil være .
Derandomiseringen af farvekodningsmetoden kan let paralleliseres, hvilket fører til effektive algoritmer i NC -klassen .
For nylig har farvekodning tiltrukket sig opmærksomhed fra forskere inden for bioinformatik. Et eksempel er bestemmelsen af signalveje i protein-protein interaktionsnetværk (PPI'er). Et andet eksempel er opdagelsen og optællingen af antallet af motiver i BPI-netværkene. Når man studerer både signalveje og motiver , tillader en dybere forståelse af lighedsforskellen mellem mange biologiske funktioner, processer og strukturer i organismer.
På grund af den store mængde genetiske data, der kan indsamles, kan det tage lang tid at finde veje eller motiver. Men ved at bruge farvekodningsmetoden kan motiver og signalveje med toppunkter i et netværk G med n toppunkter findes meget effektivt i polynomisk tid. Dette gør det muligt at udforske mere komplekse eller større strukturer i WWW- netværk .