This is an old revision of the document!


Soluții Laboratorul 6

Există multiple soluții pentru fiecare problemă, mai mult sau mai puțin bune, care oferă răspuns corect pentru un set mai mare sau mai mic, dar limitat, de date de intrare. În continuare vom prezenta câteva posibile idei.

1. K Vertex Cover

Soluția greedy pentru problema K Vertex Cover ar fi să alegem în mod repetat un nod care acoperă cea mai mare număr de muchii neacoperite. În fiecare pas, adăugăm nodul respectiv în setul nostru și eliminăm toate muchiile care sunt acoperite de acest nod. Repetăm acest proces până când avem un set de K noduri sau până când toate muchiile sunt acoperite.

În exempul de față, algoritmul greedy nu poate depista Cover-ul de lungime 4 format din nodurile {$ 5, 6, 7, 8$} pentru că va alege ca prim nod nodul $ 9$.

2. K Clique

Pentru problema K Clique, o soluție greedy ar fi să alegem noduri în funcție de gradul lor, adică să începem cu nodurile care au cei mai mulți vecini în graf. La fiecare pas, adăugăm un nod în setul nostru și eliminăm toate nodurile care nu sunt conectate la acesta. Continuăm acest proces până când avem un set de K noduri sau nu mai există noduri rămase în graf.

Cu toate acestea, o astfel de abordare greedy nu garantează întotdeauna găsirea unei clique de dimensiune maximă.

În cazul de față algoritmul propus va alege ca prim nod nodul $ 1$, va elimina nodurile $ 8$ și $ 9$ pentr că nu sunt conectate la el, după care va alege nodul $ 2$. Prin urmare, nu se poate obține o Clique de dimensiune $ 3$, în ciuda faptului că există una: {$ 2, 8, 9$}.

3. K Coloring

Pentru fiecare nod, se alege cea mai mică culoare disponibilă care nu este marcată de vecinii nodului curent. Spre exemplu, pentru următorul graf (presupunem $ K = 2$):

Avem $ 2$ culori disponibile, numerotate de la $1 $ la $ 2$. Inițial, $ [A → 0, B → 0, C → 0, D → 0, E → 0]$, adică niciun nod nu are asignată nicio culoare.

Pentru $ A$, vecinii săi nu au asignată nicio culoare. Îi asignăm lui A cea mai mică culoare disponibilă, adică $ 1$. $ [A → 1, B → 0, C → 0, D → 0, E → 0]$

Pentru $ B$, vecinii săi au asignat $ [1(A)]$ deci îi asignăm $ 2$……………………………………………………………$ [A → 1, B → 2, C → 0, D → 0, E → 0]$

Pentru $ C$, vecinii săi au asignat $ [1(A)]$ deci îi asignăm $ 2$……………………………………………………………$ [A → 1, B → 2, C → 2, D → 0, E → 0]$

Pentru $ D$, vecinii săi au asignat $ [2(B), 2(C)]$ deci îi asignăm $ 1$……………………………………………………$ [A → 1, B → 2, C → 2, D → 1, E → 0]$

Pentru $ E$, vecinii săi au asignat $ [1(D)]$ deci îi asignăm $ 2$……………………………………………………………$ [A → 1, B → 2, C → 2, D → 1, E → 2]$