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