1 / 15

algoritmi approssimati

algoritmi approssimati. Algoritmi approssimati. Per qualche problema NP -completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.

curry
Download Presentation

algoritmi approssimati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. algoritmi approssimati

  2. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”. Un algoritmo approssimato A ha scostamento garantito r(n) se per ogni input di dimensione n il costo C della soluzione prodotta da A si discosta per un fattore r(n) dal costo C* di una soluzione ottima: max(C/C*, C*/C)≤ r(n) l’errore relativo  di un algoritmo approssimato A è dato da |C-C*|/C*. L’algoritmo A ha un errore relativo limitato da (n) se |C-C*|/C* ≤ (n)

  3. Schemi di approssimazione • Uno schema di approssimazione (SdA) per un problema di ottimizzazione è un algoritmo approssimato A che prende in input un’istanza di un problema e un qualsiasi valore >0 ed è in grado di risovere l’istanza con errore relativo limitato da . • Uno schema di approssimazione polinomiale è uno SdA che per qualsiasi >0 dato richiede un tempo polinomiale rispetto a n per risolvere il problema. • Uno SdA pienamente polinomiale (fully polynomial approximation scheme) è uno SdA polinomiale il cui tempo di esecuzione è polinomiale sia per 1/ che per la dimensione n dell’input dell’istanza.

  4. Vertex cover Vertex cover. Dato un grafo G trovare un sottinsieme S di dimensione minima dei vertici di G, tale per cui ogni arco abbia un vertice in S. Vertex cover è NP-completo (riduzione da sottografo completo).

  5. Vertex cover Algoritmo approssimato per vertex cover: S =  E = E[G] while E sia (u,v) un arco arbitrario in E S = S  {u,v} togli da E ogni arco incidente in u o in v return S

  6. Vertex cover: esempio

  7. Vertex cover: esempio Teorema L’algoritmo presentato trova un insieme S che è una copertura dei vertici e che non contiene più del doppio del numero dei vertici in una vertex cover minima. Questo algoritmo approssimato ha rapporto limite pari a 2.

  8. Il problema del commesso viaggiatore • Nel probelma del commesso viaggiatore (TSP), dato un grafo completo non orientato pesato G=(V,E,w), con costi interi non negativi, si deve trovare un ciclo hamiltoniano su G di costo minimo. • Ipotesi: è sempre più economico andare direttamente da un posto u a un posto v direttamente piuttosto che passando per stazioni intermedie w (disuguaglianza triangolare).

  9. Approx-TSP • Un algoritmo approssimato per TSP con disuaglianza triangolare è: • Approx-TSP-Tour(G,w) • 1 seleziona un vertice radice rV • 2 costruisci un MST T per G dalla radice r • 3 sia L la lista dei vertici visitati con la visita in ordine anticipato di T • 4 return il ciclo hamiltoniano H che visita i vertici nell’ordine di L

  10. Approx-TSP: esempio a d e b f g c h

  11. Approx-TSP: esempio a d e b f g c h

  12. Approx-TSP: esempio a d e b f g c h

  13. Approx-TSP: esempio a d e b f g c h

  14. Approx-TSP: grado • Teorema • Approx-TSP-Tour è un algoritmo approssimato con grado limite pari a 2 per il problema TSP che soddisfa la disuguaglianza triangolare

  15. Altri problemi • Esistono molti problemi per i quali sono stati definiti algortmi approssimati. • Ad esempio: • Set Covering • Subset Sum • ...

More Related