Tänk dig att du ska färglägga en karta så att inga angränsande länder har samma färg. Detta är exakt vad graffärgning handlar om! Det visar sig att varje karta kan färgas med endast fyra färger - detta är det berömda fyrfärgsproblemet som tog över 100 år att bevisa. Graffärgning har tillämpningar från schemaläggning till registrallokering i kompilatorer.
Fördjupning
Graffärgning innebär att tilldela färger till noder i en graf så att inga intilliggande noder har samma färg. Det kromatiska talet χ(G) är det minsta antalet färger som behövs. Problemet är NP-komplett i allmänhet, men har effektiva approximationsalgoritmer och exakta lösningar för speciella grafklasser. Färgningsteori kopplar till algebraisk grafteori och har djupa kopplingar till topologi.
Grundläggande definitioner
En k-färgning av graf G är en funktion f: V(G) → {1,2,...,k} så att f(u) ≠ f(v) för alla intilliggande noder u,v. Det kromatiska talet χ(G) är det minsta k för vilket G har en k-färgning. En graf är k-färgbar om χ(G) ≤ k.
Kromatiska tal för vanliga grafer
Giriga färgningsalgoritmer
Den giriga algoritmen färgar noder en i taget genom att välja lägsta möjliga färg. Resultatet beror på nodordningen, men algoritmen garanterar en färgning med högst Δ(G)+1 färger där Δ(G) är maximal grad. Olika ordningsstrategier ger olika prestanda.
Girig färgningsalgoritm
Brooks sats
Planära grafer och fyrfärgssatsen
En planär graf kan ritas i planet utan korsande kanter. Fyrfärgssatsen säger att alla planära grafer är 4-färgbara. Beviset från 1976 var det första stora matematiska resultatet som krävde datorhjälp. Femfärgssatsen har ett elegant handbevis från 1890.
Bevis av femfärgssatsen
Perfekta grafer
En graf G är perfekt om χ(H) = ω(H) för alla inducerade subgrafer H, där ω(H) är kliqstorleken. Perfekta grafer inkluderar bipartita grafer, chordale grafer och jämna hål-fria grafer. Den starka perfekta grafsatsen karakteriserar perfekta grafer.
Starka perfekta graf-satsen
Listfärgning och valfrihet
I listfärgning har varje nod en lista av tillåtna färger. Listfärgningstal χₗ(G) är det minsta k så att G kan listfärgas när alla listor har storlek k. Överraskande nog kan χₗ(G) vara mycket större än χ(G). Gal's förmodan säger att χₗ(G) = χ(G) för bipartita grafer.
Skillnad mellan vanlig och listfärgning
Tillämpningar
Graffärgning har många praktiska tillämpningar: schemaläggning (tentamensscheman, tågscheman), registrallokering i kompilatorer, frekvenstilldelning i trådlösa nätverk, och sudoku-pussel. Många verkliga problem kan modelleras som graffärgningsproblem.
Tillämpning: Tentamensschemaläggning
Registrallokering i kompilatorer
Vanliga misstag
❌ Förväxla kromatiskt tal med maximum clique
χ(G) ≥ ω(G) alltid, men likhet gäller endast för perfekta grafer
❌ Tro att girig algoritm alltid ger optimal färgning
Girig algoritm beror på nodordning och kan ge suboptimal färgning
❌ Glömma att kontrollera listfärgning-restriktioner
Listfärgning kan vara mycket svårare än vanlig färgning
Tillämpningar
Schemaläggning
Tentamensscheman, tågscheman och resursallokering
Trådlösa nätverk
Frekvenstilldelning för att undvika interferens
Kompilatoroptimering
Registrallokering och kodoptimering
Övningar
Bestäm det kromatiska talet för cykelgrafen C₇.
Tips
Cykler av udda längd kräver 3 färger
Visa facit
Svar: χ(C₇) = 3
Förklaring: Udda cykel kan inte 2-färgas (skulle kräva att grannar har samma färg). 3 färger räcker: färga alternerande och använd tredje färg för en nod.
Bevisa att χ(G) ≥ ω(G) för alla grafer G.
Tips
Kliq-noder måste alla ha olika färger
Visa facit
Svar: En kliq av storlek ω(G) kräver ω(G) olika färger
Förklaring: I en kliq är alla noder intilliggande, så de måste ha olika färger i vilken färgning som helst.
Visa att den giriga algoritmen använder högst Δ(G)+1 färger.
Tips
Varje nod har högst Δ(G) grannar
Visa facit
Svar: Varje nod blockerar högst Δ(G) färger från sina grannar
Förklaring: När vi färgar nod v har den högst Δ(G) färgade grannar som blockerar högst Δ(G) färger. Färg Δ(G)+1 är alltid tillgänglig.
Sammanfattning
Graffärgning tilldela färger till noder så att intilliggande noder har olika färger. Det kromatiska talet är minsta antalet färger som behövs. Giriga algoritmer ger approximationer. Fyrfärgssatsen säger att planära grafer är 4-färgbara. Perfekta grafer har kromatiskt tal = kliqstorlek. Listfärgning är en generalisering med individuella färglistor. Tillämpningar inkluderar schemaläggning, nätverksfrekvenser och kompilatoroptimering.