Colorarea graficelor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
O colorare exactă a vârfurilor grafului Petersen cu 3 culori, numărul minim posibil.

În teoria graficelor , colorarea graficelor este un caz special de etichetare a graficelor ; este o atribuire de etichete, denumite în mod tradițional „culori”, elementelor unui grafic supuse anumitor constrângeri. În forma sa cea mai simplă, este un mod de a colora vârfurile unui grafic astfel încât niciunul dintre cele două vârfuri adiacente să nu aibă aceeași culoare; aceasta se numește colorare vertex . În mod similar, o colorare a marginilor atribuie o culoare fiecărei margini, astfel încât niciuna dintre cele două margini adiacente nu împarte aceeași culoare, iar o colorare a fețelor unui grafic plan nu atribuie o culoare fiecărei fețe sau regiuni în așa fel încât nici fața care are un chenar are aceeași culoare.

Colorarea vertexului este punctul de plecare al argumentului, iar alte probleme de colorare pot fi transformate într-o versiune vertex. De exemplu, o colorare a marginilor unui grafic este doar o colorare a vârfurilor unui grafic liniar , iar o colorare a fețelor unui grafic plan este doar o colorare a vârfurilor dualului său. Cu toate acestea, problemele de colorare a vârfurilor sunt adesea menționate și studiate așa cum sunt . Acest lucru este parțial pentru perspectivă și parțial pentru că unele probleme sunt cel mai bine studiate în alte forme decât vârfuri, cum ar fi colorarea marginilor.

Convenția utilizării culorilor provine din colorarea țărilor de pe o hartă, unde fiecare față este literalmente colorată. Acest lucru a fost apoi generalizat la colorarea fețelor unui grafic încorporat în plan. Datorită dualității planare, am trecut la colorarea vârfurilor și, în această formă, generalizăm la toate graficele. În reprezentările matematice și computerizate, este tipic să se utilizeze primele numere întregi pozitive sau non-negative ca „culori”. În general, orice set finit poate fi folosit ca „set de culori”. Natura problemei de colorare depinde de numărul de culori, dar nu de ceea ce sunt.

Colorarea graficelor se bucură de multe aplicații practice, precum și de multe provocări teoretice. În plus față de problemele clasice, pot fi plasate și diferite limitări pe grafic, sau pe modul în care este atribuită o culoare, sau chiar pe culoare în sine. Subiectul a câștigat popularitate și în rândul publicului larg sub forma popularului puzzle Sudoku . Colorarea graficelor este încă un domeniu de cercetare foarte activ.

Notă: Mulți termeni folosiți în acest articol sunt definiți în Glosarul teoriei graficelor .

Istorie

Pictogramă lupă mgx2.svg Același subiect în detaliu: Teorema celor patru culori și Teoria graficelor .

Primele rezultate privind colorarea graficelor se referă aproape exclusiv la graficele plane sub forma colorării hărților . În timp ce încerca să coloreze o hartă a județelor Angliei, Francis Guthrie a postulat teorema celor patru culori , menționând că patru culori erau suficiente pentru a colora harta, astfel încât nicio regiune care are o frontieră comună să nu primească aceeași culoare. Fratele lui Guthrie i-a transmis problema profesorului său de matematică Augustus de Morgan de la University College , care a menționat-o într-o scrisoare adresată lui William Hamilton în 1852. Arthur Cayley a ridicat problema la o reuniune a Societății de Matematică din Londra în 1879. În același an, Alfred Kempe a publicat un eseu susținând că a stabilit rezultatul, iar timp de un deceniu problema celor patru culori a fost considerată rezolvată. Pentru isprava sa, Kempe a fost ales membru al Royal Society și mai târziu președinte al London Mathematical Society. [1]

În 1890, Heawood a subliniat că argumentul lui Kempe era greșit. Cu toate acestea, în eseul respectiv a demonstrat teorema celor cinci culori , spunând că orice hartă plană poate fi colorată cu cel mult cinci culori, folosind ideile lui Kempe. În secolul următor, s-au dezvoltat o mare cantitate de muncă și teorii pentru a reduce numărul de culori la patru, până când teorema celor patru culori a fost definitiv demonstrată în 1976 de Kenneth Appel și Wolfgang Haken . Dovada s-a întors la ideile lui Heawood și Kempe și a ignorat în mare măsură evoluțiile care avuseseră loc. [2] Dovada teoremei celor patru culori se remarcă și prin faptul că este prima dovadă majoră asistată de computer.

În 1912, George David Birkhoff a introdus polinomul cromatic pentru a studia problemele colorării, care a fost apoi generalizată de Tutti la polinomul Tutti , o structură importantă în teoria algebrică a graficelor. Kemoe a atras deja atenția asupra cazului general, non-plan, în 1879 [3], și multe rezultate privind generalizările graficelor plane colorate pe suprafețe de ordin superior urmate la începutul secolului al XX-lea.

În 1960, Claude Berge a formulat o altă presupunere despre colorarea graficului, supoziția grafică perfectă puternică , motivată inițial de un concept al teoriei informației numit capacitatea de eroare zero a unui grafic, introdus de Shannon . Conjectura a rămas nerezolvată timp de 40 de ani, până când în 2002 a fost enunțată ca celebră teoremă a graficului perfect perfect de către Chudnovsky , Robertson , Seymour și Thomas .

Colorarea graficului a fost studiată ca o problemă algoritmică încă de la începutul anilor 1970: problema numărului cromatic este una dintre cele 21 probleme complete ale NP ale lui Karp din 1972 și, în același timp, au fost dezvoltați diferiți algoritmi de timp exponențiali pe bază de căi înapoi ( backtracking ) și asupra recidivei de contracție-anulare a lui Zykov (1949) . Una dintre principalele aplicații de colorare a graficelor, alocarea registrelor în compilatoare, a fost introdusă în 1981.

Definiție și terminologie

Acest grafic poate fi tri-colorat în 12 moduri diferite.

Colorare vertex

Când este utilizată fără nicio specificație, colorarea unui grafic este aproape întotdeauna o colorare exactă a vârfurilor , adică o etichetare a vârfurilor graficului cu culori astfel încât nicio pereche de vârfuri care au aceeași margine să nu aibă aceeași culoare. Deoarece un vârf cu o buclă nu ar putea fi niciodată colorat exact, se înțelege că graficele din acest context sunt fără o buclă.

Terminologia utilizării culorilor pentru etichetele vertexului revine la colorarea hărților. Etichete precum roșu și albastru sunt utilizate numai atunci când numărul de culori este mic și, de obicei, vrem să spunem că etichetele sunt trase din numărul întreg {1,2,3, ...}.

O colorare care folosește cel mult k culori se numește colorare k (corect). Numărul minim de culori necesar pentru colorarea unui grafic G se numește numărul său cromatic și este adesea notat χ ( G ). Uneori se folosește γ ( G ), deoarece χ ( G ) este folosit și pentru caracteristica Euler a unui grafic. Un grafic căruia i se poate atribui k- colorare (exactă) este k- colorare și este k- cromatic dacă numărul său cromatic este exact k . Un subset de vârfuri atribuite aceleiași culori se numește clasă de culoare , fiecare clasă de acest tip formând unset independent . Astfel, o colorare k este aceeași cu o partiție a setului de vârfuri în k seturi independente, iar termenii k-party și k-colorable au aceeași semnificație.

Polinom cromatic

Pictogramă lupă mgx2.svg Același subiect în detaliu: Polinom cromatic .

Polinomul cromatic contează numărul de moduri în care un grafic poate fi colorat folosind nu mai mult de un număr dat de culori. De exemplu, folosind trei culori, graficul din imaginea din dreapta poate fi colorat l în 12 moduri. Cu doar două culori, nu poate fi deloc colorată. Cu patru culori, poate fi colorată în 24 + 4⋅12 = 72 de moduri: folosind toate cele patru culori, există 4! = 24 de culori valide ( fiecare atribuire a patru culori la orice grafic pe 4 vârfuri este o culoare exactă); și pentru fiecare alegere dintre trei dintre cele patru culori, există 12 culori valide cu 3 culori. Deci, pentru graficul de exemplu, un tabel cu numărul de culori valide ar începe astfel:

Culori disponibile 1 2 3 4 ...
Număr de culori 0 0 12 72 ...

Polinomul cromatic este o funcție P ( G , t ) care numără numărul de t- culori ale lui G. După cum indică și numele, pentru un G dat funcția este de fapt un polinom în t . Pentru graficul exemplului, P ( G , t ) = t ( t - 1) 2 ( t - 2) și, de fapt, P ( G , 4) = 72.

Polinomul cromatic include cel puțin la fel de multe informații despre colorabilitatea lui G a numărului cromatic. De fapt, χ este cel mai mic întreg pozitiv care nu este o rădăcină a polinomului cromatic

Polinoame cromatice pentru anumite grafice
Triunghiul K 3
Completați graficul K n
Arborele cu n vârfuri
Ciclul C n
Graficul Petersen

Colorarea muchiilor

Pictogramă lupă mgx2.svg Același subiect în detaliu: Colorarea marginilor .

O colorare a marginilor unui grafic este o colorare exactă a marginilor , ceea ce înseamnă o atribuire de culori marginilor, astfel încât niciun vârf să nu fie incident la două margini de aceeași culoare. O colorare a muchiilor cu k culori se numește colorare a marginii k și este echivalentă cu problema împărțirii setului de margini în k mates . Cel mai mic număr de culori necesare pentru colorarea marginilor unui grafic G este indicele cromatic sau numărul cromatic de margini , χ ′ (G) . O colorare Tait este o 3-colorare a marginilor unui grafic cub . Teorema celor patru culori este echivalentă cu afirmația că fiecare grafic cub planar fără punți admite o colorare Tait.

Colorare totală

Pictogramă lupă mgx2.svg Același subiect în detaliu: Colorare totală .

Colorarea totală este un tip de colorare pe vârfurile și marginile unui grafic. Când se folosește fără nicio specificație, o colorare totală este întotdeauna presupusă a fi exactă, ceea ce înseamnă că niciun vârf adiacent, nici o margine adiacentă și nici o margine și vârfuri extreme nu au aceeași culoare. Numărul cromatic total χ ″ (G) al unui grafic G este numărul minim de culori necesar pentru orice colorare totală a lui G.

Proprietate

Limite la numărul cromatic

Atribuirea culorilor distincte vârfurilor distincte produce întotdeauna și o colorare exactă

Singurele grafice care pot fi 1-colorate sunt graficele fără punte . Un grafic complet de n vârfuri necesită culori. În colorarea optimă trebuie să existe cel puțin una dintre marginile m ale graficului între fiecare pereche de clase de culori, deci

Dacă G conține o fisură de dimensiunea k , atunci sunt necesare cel puțin k culori pentru a colora acea fisură; cu alte cuvinte, numărul cromatic este cel puțin numărul fisurii:

Pentru graficele de intervale această limită este strânsă.

Graficele bicolorabile sunt exact grafice bipartite , care includ copaci și păduri. Prin teorema celor patru culori, orice grafic plan poate fi de 4 culori.

O colorare lacomă arată că fiecare grafic poate fi colorat cu o culoare mai mult decât gradul maxim al vârfurilor,

Graficele complete au Și , iar ciclurile ciudate au Și , deci pentru aceste grafice această limită este cea mai bună posibilă. În toate celelalte cazuri, limita poate fi ușor îmbunătățită; Teorema lui Brooks [4] afirmă că

Teorema lui Brooks: pentru un grafic conectat, G simplu, cu excepția cazului în care G este un grafic complet sau un ciclu impar.

Grafice cu număr cromatic ridicat

Graficele cu fisuri mari au un număr cromatic ridicat, dar inversul nu este adevărat. Graficul Grötzsch este un exemplu de grafic 4-cromatic fără triunghi, iar exemplul poate fi generalizat la graficele Mycielski .

Teorema lui Mycielski ( Zykov (1949) , Mycielski (1955) ): există grafice fără triunghiuri cu numere cromatice arbitrar mari.

Prin teorema lui Brooks, graficele cu un număr cromatic ridicat trebuie să aibă cel mai înalt grad. O altă proprietate locală care duce la un număr cromatic ridicat este prezența unei clici mari. Dar colorabilitatea nu este un fenomen cu totul local: un grafic cu un calibru ridicat seamănă local cu un copac, deoarece toate ciclurile sunt lungi, dar numărul său cromatic nu trebuie să fie 2:

Teorema (Erdős): există grafice de calibru arbitrar ridicat și număr cromatic.

Limite la indicele cromatic

Un colorat de vârf al lui G este un colorat de vârf al graficului său liniar , si invers. Asa,

Există o relație puternică între colorabilitatea marginilor și gradul maxim al graficului . Întrucât toate muchiile incidente pe același vârf au nevoie de propria lor culoare, avem

În plus,

Teorema lui König : dacă G este bipartit.

În general, relația este chiar mai puternică decât cea pe care o oferă teorema lui Brooks pentru colorarea vertexului:

Teorema lui Vizing: un grafic al gradului maxim are număr cromatic de margini sau .

Alte proprietăți

Un grafic are o culoare k- dacă și numai dacă are o orientare aciclică pentru care cea mai lungă cale are cel mult lungimea k ; aceasta este teorema Gallai-Hasse-Roy-Vitaver ( Nešetřil & Ossona de Mendez (2012) ).

Pentru graficele plane, colorațiile vertexului sunt în esență duale pentru fluxurile zero nicăieri .

Despre grafurile infinite, se știe mult mai puțin. Iată două dintre puținele rezultate privind colorarea graficelor infinite:

Probleme deschise

Numărul cromatic al planului , unde două puncte sunt adiacente dacă au distanță unitară, este necunoscut, deși este unul dintre 4, 5, 6 sau 7. Alte probleme deschise referitoare la numărul cromatic al graficelor includ conjectura lui Hadwiger care afirmă că fiecare graficul cu număr cromatic k are un grafic complet pe k vârfuri ca minore , conjectura Erdős - Faber - Lovász care limitează numărul cromatic de uniuni ale graficelor complete care au exact un vârf în comun pentru fiecare pereche și conjectura Albertson conform căreia din graficele k- cromatice graficele complete sunt cele cu cel mai mic număr de traversări .

Când Birkhoff și Lewis au introdus polinomul cromatic în atacul lor asupra teoremei celor patru culori, au conjecturat că pentru graficele plane G , polinomul nu are zerouri în regiune . Deși se știe că acest polinom cromatic nu are zerouri în regiune este asta , conjectura lor este încă nerezolvată. Rămâne, de asemenea, o problemă nerezolvată pentru caracterizarea graficelor care au același polinom cromatic și pentru determinarea care polinomii sunt cromatici.

Algoritmi

Colorarea graficelor
Decizie
Nume Colorarea graficului, colorarea k-
Intrare Graficul G cu n vârfuri. k întreg
Ieșire Admite G colorarea exactă a vârfurilor cu k culori?
Timpul de execuție O (2 n n ) [5]
Complexitate NP-complet
Reducere de la 3-satisfacție
Garey - Johnson GT4
Optimizare
Nume Număr cromatic
Intrare Graficul G cu n vârfuri
Ieșire χ ( G )
Complexitate NP-dificil
Aproximabilitate O ( n (log n ) −3 (log log n ) 2 )
Inaproximabilitate O ( n 1 - ε ) cu excepția cazului în care P = NP
Problemă de numărare
Nume Polinom cromatic
Intrare Graficul G cu n vârfuri. k întreg
Ieșire Numărul P ( G , k ) de k- culori exacte ale lui G.
Timpul de execuție O (2 n n )
Complexitate # P-complet
Aproximabilitate FPRAS pentru cazuri restricționate
Inaproximabilitate Fără PTAS, cu excepția cazului în care P = NP

Timp polinomial

Determinarea dacă un grafic poate fi colorat cu 2 culori este echivalentă cu determinarea dacă graficul este sau nu bipartit și, prin urmare, calculabil în timp liniar folosind căutarea în amplitudine . Mai general, numărul cromatic și o colorare corespunzătoare a graficelor perfecte pot fi calculate în timp polinomial folosind programarea semidefinită . Formulele închise pentru polinomul cromatic sunt cunoscute pentru multe clase de grafice, cum ar fi pădurile, graficele corale, ciclurile, roțile și scale, deci acestea pot fi estimate în timp polinomial.

Dacă graficul este plan și are o lățime ramificată limitată (sau nu este plan, dar are o descompunere cunoscută a ramurilor), atunci poate fi rezolvat în timp polinomial folosind programarea dinamică. În general, timpul necesar este polinomial în dimensiunea graficelor, dar exponențial în lățimea ramurilor.

Algoritmi exacți

Metoda forței brute pentru o colorare k consideră fiecare dintre atribuie k culori la n vârfuri și verifică pentru fiecare dacă este corect. Pentru a calcula numărul cromatic și polinomul cromatic, această procedură este utilizată pentru fiecare , impracticabil pentru toate, cu excepția celor mai mici grafice primite.

Folosind programarea dinamică și o limită a numărului deseturi maxime independente , colorabilitatea k poate fi decisă în timp și spațiu . [6] Folosind principiul includere-excludere și algoritmul Yates pentru transformarea rapidă zeta, colorabilitatea k poate fi dedusă în timp [5] pentru orice k . Cei mai rapizi algoritmi sunt cunoscuți pentru 3 și 4 culori, care pot fi decise în timp [7] e , Respectiv [8] .

Contracție

Contracția a graficului G este graficul obținut prin identificarea vârfurilor u și v , îndepărtarea oricărei margini între ele și înlocuirea lor cu un singur vârf w unde orice margine care a fost incidentă pe u sau v este redirecționată către w . Această operație joacă un rol important în analiza colorării graficelor.

Numărul cromatic satisface relația de recurență :

datorită lui Zykov (1949) , unde u și v sunt vârfuri neadiacente, este graficul adăugat. Mai mulți algoritmi se bazează pe estimarea acestei recurențe, arborele rezultat din calcul este uneori numit arborele Zykov. Timpul de execuție se bazează pe euristica pentru alegerea vârfurilor u și v .

Polinomul cromatic satisface următoarea relație de recurență

unde u și v vârfurile adiacente și este graficul cu muchia îndepărtat. reprezintă numărul de culori exacte posibile ale graficului, atunci când vârfurile pot avea aceleași culori sau culori diferite. Numărul de culori exacte provine, așadar, din suma a două grafice. Dacă vârfurile u și v au culori diferite, atunci putem lua în considerare și un grad, în care u și v sunt adiacente. Dacă u și v au aceleași culori, putem lua în considerare și un grafic, unde u și v sunt contractate. Curiozitatea tuturor celor ce alte proprietăți ale graficelor au îndeplinit acest eveniment l-a determinat să descopere o generalizare bivariantă a polinomului cromatic, polinomul tuturor .

Expresiile dau naștere unei proceduri recursive, numită algoritmul de anulare-contracție , care stă la baza multor algoritmi de colorare a graficelor. Timpul de execuție satisface aceeași relație de recurență ca secvența Fibonacci , deci, în cel mai rău caz, algoritmul rulează în timp într-un factor polinomial de pentru n vârfuri și m margini. [9] Analiza poate fi îmbunătățită în cadrul unui factor polinomial al numărului a copacilor care acoperă graficul de intrare. [10] În practică, strategiile de ramificare și legare și respingerea izomorfismului graficelor sunt utilizate pentru a evita unele apeluri recursive, iar timpul de execuție depinde de euristica utilizată pentru a capta perechea de vârfuri.

Colorare lacomă

Pictogramă lupă mgx2.svg Același subiect în detaliu: Colorarea lacomă .
Două culori lacome ale aceluiași grafic folosind ordine de vârf diferite. Exemplul din dreapta se generalizează în grafice bicolorabile cu n vârfuri, unde se petrece algoritmul lacom culori.

Algoritmul lacom consideră vârfurile într-o ordine specifică , ..., și atribuie către cea mai mică culoare disponibilă nefolosită de vecinii din între , ..., , adăugând o nouă culoare dacă este necesar. Calitatea colorării rezultate depinde de sortarea aleasă. Există o ordine care duce la o colorare greedy (în engleză greedy coloring) cu numărul optim de culori. Pe de altă parte, culorile lacome pot fi în mod arbitrar greșite; de exemplu, graficul coroană de pe n vârfuri poate fi bicolor, dar are o ordonare care duce la colorarea lacomă cu culori.

Dacă vârfurile sunt ordonate în funcție de rangul lor , colorarea lacomă rezultată se folosește la maximum culori, cel mult unul mai mult decât gradul maxim al graficului. Această euristică este uneori numită algoritmul Welsh - Powell. [11] O altă euristică datorată lui Brélaz stabilește ordinea dinamic pe măsură ce algoritmul continuă, alegând apoi vârful adiacent celui mai mare număr de culori diferite. [12] Multe alte euristici pentru colorarea graficelor se bazează în mod similar pe colorarea lacomă pentru o strategie specifică de ordonare a vârfurilor statice sau dinamice; acești algoritmi sunt uneori numiți algoritmi de colorare secvențială .

Algoritmi paraleli și distribuiți

În domeniul algoritmilor distribuiți , colorarea graficelor este strâns legată de problema ruperii simetriei . Algoritmii randomizați de ultimă generație sunt mai rapizi decât algoritmii deterministi pentru un grad maxim suficient de mare Δ. Cei mai rapizi algoritmi randomizați folosesc tehnica multiprove Schneider și colab. [13]

Într-un grafic simetric , un algoritm determinist distribuit nu poate găsi o culoare exactă a vertexului. Sunt necesare câteva informații pentru a sparge simetria. O presupunere tipică este că inițial fiecare nod are un identificator unic , de exemplu, din setul {1, 2, ..., n }. Cu alte cuvinte, presupunem că ni se dă o culoare n . Provocarea este de a reduce numărul de culori de la n la, de exemplu, Δ + 1. Se folosesc mai multe culori, de exemplu. O (Δ) în loc de Δ + 1, sunt necesare mai puține sesiuni de comunicare. [13]

O versiune directă distribuită a versiunii algoritmului lacom pentru colorarea (Δ + 1) necesită Θ ( n ) sesiuni de comunicare în cel mai rău caz - informațiile pot fi propagate dintr-o parte a rețelei în alta.

Cel mai simplu caz interesant este un ciclu n . Richard Cole și Uzi Vishkin [14] arată că există un algoritm distribuit care reduce numărul de culori de la n la O (log n ) într-o singură etapă de comunicare sincronă. Prin iterația aceleiași proceduri, este posibil să se obțină o 3-colorare a unui ciclu n în etapele de comunicare O (log * n ) (presupunând că avem identificatori de nod unici).

Funcția log * , logaritm iterat , este o funcție de creștere extrem de lentă, „aproape constantă”. Deci, rezultatul lui Cole și Vishkin a ridicat întrebarea dacă există un algoritm constant distribuit în timp pentru 3-colorarea unui ciclu n . Linial (1992) a arătat că acest lucru nu este posibil: orice algoritm determinist distribuit necesită pași de comunicare Ω ( log * n ) pentru a reduce o n- colorare la o 3-colorare într-un ciclu n .

Tehnica lui Cole și Vishkin poate fi aplicată și graficelor cu un grad limitat arbitrar; timpul de rulare este poli (Δ) + O (log * n ). [15] La tecnica fu estesa ai grafi con dischi unitari di Schneider et al. [16] Gli algoritmi deterministici più veloci per la (Δ + 1)-colorazione di un piccolo Δ sono dovuti a Leonid Barenboim, Michael Elkin e Fabian Kuhn. [17] L'algoritmo di Barenboim et al. si svolge nel tempo O (Δ) + log*( n )/2, che è ottimale in termini di n poiché il fattore costante 1/2 non può essere migliorato a causa del limite inferiore di Linial. Panconesi et al. [18] usano le somposizioni a rete per computare una Δ+1 colorazione nel tempo .

Anche il problema della colorazione degli spigoli è stato studiato nel modello distribuito. Panconesi & Rizzi (2001) ottengono in questo modello una (2Δ − 1)-colorazione nel tempo O (Δ + log* n ). Il limite inferiore per la colorazione distribuita dei vertici dovuta a Linial (1992) si applica anche al problema della colorazione distribuita degli spigoli.

Algoritmi decentralizzati

Gli algoritmi decentralizzati sono quelli dove non è permesso alcun passaggio di messaggi (in contrasto con gli algoritmi distribuiti in cui il passaggio locale di messaggi ha luogo), ed esistono algoritmi decentralizzati efficienti che coloreranno un grafo se esiste una colorazione esatta. Tali algoritmi assumono che un vertice sia in grado di percepire se uno qualsiasi dei suoi vicini stia usando lo stesso colore del vertice, cioè se esista un conflitto locale. Questa è un'assunzione lieve in altre applicazioni, ad es. nell'allocazione di canali senza fili è solitamente ragionevole assumere che una stazione sarà in grado di rivelare se altre trasmittenti interferenti stiano usando lo stesso canale (ad es. misurando l'SINR). Questa informazione di percezione è sufficiente per permettere agli algoritmi basati sugli automatismi di apprendimento di trovare una colorazione esatta dei grafi con probabilità uno, ad es. vedi Leith (2006) e Duffy (2008) .

Complessità computazionale

La colorazione dei grafi è computazionalmente difficile ( hard , in inglese). È NP-completo decidere se un dato grafo ammette una k -colorazione per un dato k eccetto per i casi k = 1 e k = 2. In particolare, è NP-difficile computare il numero cromatico. [19] Il problema della 3-colorazione rimane NP-completa anche sui grafi planari di grado 4. [20]

L' algoritmo di approssimazione più noto computa una colorazione di dimensione almeno entro un fattore O( n (log n) −3 (log log n ) 2 ) del numero cromatico. [21] Per tutti gli ε > 0, approssimare il numero n 1− ε è NP-difficile . [22]

È anche NP-difficile colorare un grafo 3-colorabile con 4 colori [23] e un grafo k -colorabile con k (log k ) / 25 colori per una costante k sufficientemente grande. [24]

Computare i coefficienti del polinomio cromatico è #P-difficile . Infatti, anche computare il valore di è #P-difficile in un qualsiasi punto razionale k eccetto per k = 1 e k = 2. [25] Non c'è nessun FPRAS (schema di approssimazione in tempo pienamente polinomiale) per stimare il polinomio cromatico in un qualsiasi punto razionale k ≥ 1,5 eccetto per k = 2 a meno che NP = RP . [26]

Per la colorazione degli spigoli, il risultato della dimostrazione di Vizing dà un algoritmo che usa al massimo Δ+1 colori. Tuttavia, decidere tra i due valori candidati per il numero cromatico degli spigoli è NP-completo. [27] In termini di algoritmi di approssimazione, l'algoritmo di Vizing mostra che il numero cromatico degli spigoli può essere approssimato entro 4/3, e il risultato della difficoltà mostra che non esiste nessun algoritmo (4/3 − ε ) per un qualsiasi ε > 0 a meno che P = NP . Questi sono tra i più vecchi risultati nella letteratura degli algoritmi di approssimazione, anche se nessuno dei due studi fa uso esplicito di quella nozione. [28]

Applicazioni

Schedulazione

La colorazione dei vertici fa da modello a numerosi problemi di schedulazione. [29] Nella forma più pura, occorre assegnare un dato insieme di compiti a spazi temporali ( time slots ), ogni compito richiede uno di tali spazi. I compiti possono essere schedulati in qualsiasi ordine, ma alcune coppie di compiti possono essere in conflitto , nel senso che non è possibile assegnarli allo stesso spazio temporale, ad esempio perché entrambi fanno affidamento su una risorsa condivisa. Il grafo corrispondente contiene un vertice per ogni compito e uno spigolo per ogni coppia di compiti confliggenti. Il numero cromatico del grafo è esattamente il "tempo di completamento" (o makespan ) minimo, ossia il tempo ottimale per finire tutti i compiti senza conflitti.

I dettagli del problema di scheduliazione definiscono la struttura del grafo. Per esempio, quando si assegnano gli aeromobili ai voli, il grafo dei conflitti risultante è un grafo d'intervallo , così il problema della colorazione può essere risolto in modo efficiente. Nell'allocazione delle ampiezze di banda alle stazioni radio, il grafo dei conflitti risultante è un grafo delle unità disco , perciò il problema della colorazione è 3-approssimabile.

Allocazione dei registri

Magnifying glass icon mgx2.svg Lo stesso argomento in dettaglio: Allocazione dei registri .

Un compilatore è un programma informatico che traduce un linguaggio di programmazione in un altro. Per migliorare il tempo di esecuzione del codice risultante, una delle tecniche di ottimizzazione dei compilatori è l' allocazione dei registri , dove i valori più frequentemente usati del programma compilato sono conservati nel registri del processore veloce. Idealmente, i valori sono assegnati ai registri in modo che possano tutti risiedere nei registri quando sono usati.

L'approccio dei libri di testo a questo problema è di modellarlo come un problema di colorazione dei grafi. [30] Il compilatore costruisce un grafo d'interferenza , dove i vertici sono le variabili e uno spigolo connette due vertici se essi sono richiesti nello stesso momento. Se il grafo può essere colorato con k colori, allora qualsiasi insieme di variabili richieste nello stesso momento può essere immagazzinato al massimo in k registri.

Altre applicazioni

Il problema della colorazione dei grafi ha trovato numerose applicazioni, compreso l' abbinamento dei motivi .

Il gioco ricreativo sudoku può essere visto come il completamento di una 9-colorazione su un dato grafo specifico con 81 vertici.

Altre colorazioni

Teoria di Ramsey

Magnifying glass icon mgx2.svg Lo stesso argomento in dettaglio: Teoria di Ramsey .

Un'importante classe di problemi di colorazione impropri è studiata nella teoria di Ramsey , dove gli spigoli del grafo sono assegnati ai colori, e non c'è nessuna restrizione sui colori degli spigoli incidenti. Un esempio semplice è il teorema dell'amicizia , che afferma che in qualsiasi colorazione degli spigoli di il grafo completo di sei vertici ci sarà un triangolo monocromatico; spesso illustrato dicendo che qualsiasi gruppo di sei persone o ha tre estranei reciproci o tre conoscenti reciproci. La teoria di Ramsey si occupa delle generalizzazioni di questa idea per cercare la regolarità nel disordine, trovando le condizioni generali per l'esistenza di sottografi monocromatici con una data struttura.

Altre colorazioni

Colorazione per lista
Ciascun vertice sceglie da una lista di colori
Colorazione degli spigoli per lista
Ciascuno spigolo sceglie da una lista di colori
Colorazione totale
Sono colorati i vertici e gli spigoli
Colorazione armoniosa
Ogni coppia di colori appare su almeno un vertice
Colorazione totale
Ogni coppia di colori appare su almeno uno spigolo
Colorazione esatta
Ogni coppia di colori appare su esattamente uno spigolo
Colorazione aciclica
Ogni sottografo 2-cromatico è aciclico
Colorazione a stella
Ogni sottografo 2-cromatico è una collezione disgiunta di stelle
Colorazione forte
Ogni colore appare in ogni partizione di uguale dimensione esattamente una volta
Colorazione forte degli spigoli
Gli spigoli sono colorati in modo che ciascuna classe di colore induce un accoppiamento (equivalente a colorare il quadrato del grafo lineare)
Colorazione equilibrata
Le dimensioni delle classi di colore differiscono almeno di uno
T-colorazione
La distanza tra due colori di vertici adiacenti non deve appartenere all'insieme fisso T
Colorazione per rango
Se due vertici hanno lo stesso colore i , allora ogni cammino fra di essi contiene un vertice con colore maggiore di i
Colorazione degli spigoli a intervalli
Un colore di spigoli che si incontrano in un vertice comune deve essere contiguo
Colorazione circolare
Motivata dai sistemi di compiti nei quali la produzione produce in modo ciclico
Colorazione dei cammini
Modella un problema ricorrente nei grafi
Colorazione frazionata
I vertici possono avere molteplici colori, e su ciascuno spigolo la somma delle parti dei colori di ciascun vertice non è maggiore di uno
Colorazione orientata
Prende in considerazione l'orientazione degli spigoli del grafo
Cocolorazione
Una colorazione impropria dei vertici dove ogni classe di colore induce un insieme indipendente o una cricca
Sottocolorazione
Una colorazione impropria dei vertici dove ogni classe di colore induce un'unione di cricche
Colorazione difettosa
Una colorazione impropria dei vertici dove ogni classe di colore induce un sottografo di grado vincolato
Colorazione debole
Una colorazione impropria dei vertici dove ogni nodo non isolato ha almeno un vicino con un colore diverso
Colorazione per somma
Il criterio di minimalizzazione è la somma dei colori
Colorazione totale con distinzione dei vertici adiacenti
Una colorazione totale con la restrizione aggiuntiva che qualsiasi due vertici adiacenti hanno insiemi di colori diversi
Colorazione centrata
Ogni sottografo indotto connesso ha un colore che si è usato esattamente una volta

La colorazione può essere considerata anche per i grafi con segni con i grafi di guadagno .

Note

Bibliografia

Altri progetti

Collegamenti esterni

Controllo di autorità LCCN ( EN ) sh2004000285
Matematica Portale Matematica : accedi alle voci di Wikipedia che trattano di Matematica