1.7 KiB
algoritmo di approssimazione di minimal vertex cover problem.
Funzionamento
[!Summary] Finchè ci sono arco di un grafo nel grafo:
- seleziona un arco di un grafo qualsiasi
- aggiungi i due nodo di un grafo che lo collegano al vertex cover
- rimuovi dal grafo tutti gli arco di un grafo adiacenti ai nodo di un grafo aggiunti
Gli arco di un grafo selezionati formano un abbinamento massimale.
algoritmo corretto
[!Success] Dato che l'algoritmo termina solo quando tutti gli arco di un grafo sono stati aggiunti, il risultato è sicuramente un vertex cover.
Si ha sicuramente terminazione, perchè ogni iterazione aggiunge almeno un arco di un grafo al vertex cover.
fattore di approssimazione
Il vertex cover soluzione ottima deve toccare tutti gli arco di un grafo, inclusi quelli selezionati dall'algoritmo.
Perchè ciò avvenga, almeno uno dei due nodo di un grafo che essi connettono devono essere selezionati dall'soluzione ottima.
Pertanto, il fattore di approssimazione è:
\Huge 2
costo computazionale
Costo | notazione O-grande |
---|---|
9 - Algoritmi distribuiti/1 - Problemi algoritmici/spazio | ... |
9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo | O(Edges) |
9 - Algoritmi distribuiti/1 - Problemi algoritmici/tempo
Nel caso peggiore, il numero di iterazioni effettuate è pari alla metà del numero degli arco di un grafo, cioè:
\frac
{Edges}
{2}
In notazione asintotica:
\Large O(Edges)