Färgkodning är en algoritmisk teknik som är användbar för att upptäcka strukturella motiv . Till exempel kan den användas för att hitta en enkel väg med längden k i en given graf . Den traditionella färgkodningsalgoritmen är probabilistisk , men den kan avrandomiseras utan en signifikant ökning av körtiden .
Färgkodning är också tillämpbar för detektering av cykler av en given längd och, mer allmänt, på problemet med att hitta en isomorf subgraf ( NP-komplett problem ), där den ger polynomtidsalgoritmer om den önskade subgrafen har en begränsad trädbredd .
Färgkodningsmetoden föreslogs och analyserades 1994 av Noga Alon , Rafael Yuster och Yuri Zvik [1] [2] .
Följande resultat kan erhållas genom färgkodning:
För att lösa problemet med att hitta en subgraf i en given graf , där H kan vara en bana, en cykel eller vilken graf som helst med begränsad trädbredd , och , börjar färgkodningsmetoden med att slumpmässigt färga varje vertex i G med färger, och sedan försöker hitta en fullfärgskopia av H i det färgade G. _ Här förstås en fullfärgsgraf som en graf där varje vertex är färgad i sin egen färg. Metoden fungerar genom att upprepa (1) en slumpmässig färgläggning av grafen och (2) hitta en fullfärgskopia av målsubgrafen. Så småningom kan målsubgrafen hittas om processen upprepas tillräckligt många gånger.
Antag att en kopia av H i G blir fullfärg med någon sannolikhet som inte är noll p . Av detta följer omedelbart att om den slumpmässiga färgläggningen upprepas en gång, kommer denna kopia att ske en gång. Observera att även när sannolikheten p är liten, är det känt att, eftersom , sannolikheten p endast är polynomiellt liten. Anta att det finns en algoritm som, givet en graf G och en färgning som mappar varje vertex av G till en av k färger, hittar en kopia av fullfärgskopian av H , om den finns, någon gång O ( r ) . Då är den förväntade tiden för att hitta en kopia av H i G , om den finns, .
Ibland är det önskvärt att använda en mer stel version av färgschemat. Till exempel, i samband med att hitta cykler i plana grafer , kan man utveckla en algoritm för att hitta välfärgade cykler. Här menar vi med en välfärgad cykel färgning med på varandra följande färger.
Som ett exempel, låt oss ta sökningen efter en enkel cykel med längden k i grafen .
När du använder den slumpmässiga färgmetoden har varje enkel cykel en chans att bli fullfärgad, eftersom det finns sätt att färga k hörn av cykeln, bland vilka det finns varianter av fullfärgad färg. Sedan kan algoritmen (beskrivs nedan) användas för att hitta fullfärgscykler i en slumpmässigt färgad graf G i tid , där är matrismultiplikationskonstanten. Sedan tar det total tid att hitta en enkel cykel med längden k i G .
Sökalgoritmen för helfärgsslingor hittar först alla par av hörn i V som är förbundna med en enkel väg med längden k − 1 , och kontrollerar sedan om två hörn i varje par är anslutna. Givet en färgningsfunktion för en graf G , numrera om alla partitioner i färguppsättningen till två delmängder av storlek ungefär i varje. För varje sådan partition, låt vara uppsättningen av hörn färgade från , och låt vara uppsättningen av hörn färgade från . Låt och beteckna subgraferna som genereras av respektive . Rekursivt hitta fullfärgsbanor av längd i och . Föreställ dig att de booleska matriserna och representerar kopplingen av varje par av hörn i respektive en fullfärgsbana, och låt B vara en matris som beskriver närliggande hörn och , då ger den booleska produkten alla par av hörn i V anslutna med en fullfärgsbana med längden k − 1 . Föreningen av matriserna som erhålls på alla partitioner av färguppsättningen ger , vilket leder till körtiden . Även om denna algoritm bara hittar ändpunkterna för en fullfärgsbana, kan en annan algoritm av Alon och Naor [4] användas som faktiskt hittar fullfärgsbanan.
Avrandomisering av en färgkodning innebär att listar möjliga färgningar av grafen G så att randomisering av färgningen av G inte längre behövs. För att kunna hitta en målsubgraf H i G måste uppräkningen inkludera minst ett fall där H är fullfärg. För att få detta räcker det med att räkna upp k -perfektfamiljen F av hashfunktioner fråntill {1, ..., k } . Per definition är en funktion F k -perfekt om för någon delmängd S av mängden, där, det finns en hashfunktion h från F så att denär en idealisk hashfunktion . Med andra ord måste det finnas en hash-funktion i F som färgar de givna k hörnen med k olika färger.
Det finns flera sätt att konstruera en sådan k -ideal hashfamilj:
I fallet med avrandomisering av ideal färgning, när varje vertex i subgrafen färgas sekventiellt, krävs en k -ideal familj av hashfunktioner från till . En tillräcklig k -perfekt familjeavbildning från till kan konstrueras på ett sätt som liknar tillvägagångssätt 3 ovan (första steget). I synnerhet görs detta med slumpmässiga bitar som är nästan oberoende, och storleken på den resulterande k -perfekta familjen blir .
Avrandomiseringen av färgkodningsmetoden kan lätt parallelliseras, vilket leder till effektiva algoritmer i NC -klassen .
Nyligen har färgkodning uppmärksammats av forskare från bioinformatikområdet. Ett exempel är bestämning av signalvägar i protein-protein-interaktionsnätverk (PPI). Ett annat exempel är upptäckten och räkningen av antalet motiv i BPI-nätverken. När man studerar både signalvägar och motiv , tillåter en djupare förståelse av likhetsskillnaden mellan många biologiska funktioner, processer och strukturer i organismer.
På grund av den stora mängd genetisk data som kan samlas in kan det ta lång tid att hitta vägar eller motiv. Men med hjälp av färgkodningsmetoden kan motiv och signalvägar med hörn i ett nätverk G med n hörn hittas mycket effektivt i polynomtid. Detta gör det möjligt att utforska mer komplexa eller större strukturer i WWW -nätverk .