Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi

Slides:



Advertisements
Presentazioni simili
TSP Traveling Salesman’s Problem Università di Camerino
Advertisements

Università degli Studi di Roma Tor Vergata
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Prof.ssa Rossella Petreschi Lezione del 29/10/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 19 del testo Cormen, Leiserson, Rivest,
La seguente matrice è una matrice delle distanze di un’istanza del problema del Commesso Viaggiatore. Calcolare un lower bound per il valore del ciclo.
Prof.ssa Rossella Petreschi Lezione del 3/12/2013 del Corso di Algoritmica GRAFI e PLANARITA’ Lezione n°15.
Prof.ssa Rossella Petreschi Lezione del 29 /10/2014 del Corso di Algoritmica Lezione n°8.
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Lezione n°10 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
Approssimazione Lezione n°20 Prof.ssa Rossella Petreschi
Analisi di sequenze di operazioni Union-Find
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Lezione n°17 Prof.ssa Rossella Petreschi
B-alberi e alberi autoaggiustanti
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
Lezione n°14 Reti di flusso Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi approssimati
Algoritmi e Strutture Dati
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
Paths, tree and flowers Lezione n°14
Approssimazione Lezione n°15 Prof.ssa Rossella Petreschi
Lezione n°11 Prof.ssa Rossella Petreschi
Lezione n°12 Prof.ssa Rossella Petreschi
Lezione n°16 Prof.ssa Rossella Petreschi
Lezione n°18 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi per il flusso nelle reti
Algoritmi per il flusso nelle reti
Lezione n°6 Prof.ssa Rossella Petreschi
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Cammini di costo minimo su un grafo pesato
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Cammini minimi in grafi:
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Lezione n°7 Splay-Trees e Heaps Prof.ssa Rossella Petreschi
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Unione per ranghi compressi
Algoritmi e Strutture Dati
Transcript della presentazione:

Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Algoritmi di approssimazione Lezione n°13 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi ASD a.a.2010/2011- Lezione 13

Classi di complessità Classe P(polinomiale) - classe dei problemi decisionali risolvibili in tempo polinomiale da algoritmi deterministici. Classe NP(polinomiale non deterministica) - classe dei problemi decisionali risolvibili in tempo polinomiale da algoritmi nondeterministici. Un problema decisionale D1 è polinomialmente riducibile ad un problema decisionale D2 se esiste una funzione t, polinomialmente calcolabile, che trasforma tutte e sole le istanze positive di D1 in istanze positive di D2 . Classe NP-completa - classe dei problemi decisionali che appartengono a NP e che sono riducibili uno all’altro. Classe NP-ardua - classe dei problemi che sono riducibili uno all’altro Notare che i problemi NP-ardui di sicuro sono difficili almeno quanto un problema NP-completo, ma non è detto che siano NP-completi. ASD a.a.2010/2011- Lezione 11

Problemi combinatorici di ottimizzazione NP-completi - versione decisionale NP-ardui - versione di ottimizzazione Alternativa per la soluzione dei problemi NP-ardui è l’approssimazione che si ottiene applicando algoritmi semplici che sfruttano euristiche relative al problema (regole derivate dall’esperienza e non dimostrate matematicamente). ASD a.a.2010/2011- Lezione 13 3

Accuratezza dell’approssimazione sa - soluzione approssimata s* - soluzione ottima esatta re(sa) = (f(sa) - f(s*))/ f(s*) errore relativo rapporto di accuratezza r(sa) ≥ 1 per p. minimizzazione r(sa) = f(sa)/f(s*) per p. massimizzazione r(sa) = f(s*)/f(sa) Il massimo fra i diversi r(sa) calcolati su tutte le istanze del problema si indica con RA e ci indica la qualità di sa (rapporto di approssimazione) La soluzione approssimata è tanto migliore, quanto più RA si avvicina ad 1. Sfortunatamente è facile avere RA =∞. In tal caso bisogna considerare con cautela l’algoritmo che si sta considerando che non è detto vada scartato. Un algoritmo di approssimazione polinomiale è un algoritmo approssimante se garantisce rapporto di approssimazione per ogni istanza del problema. ASD a.a.2010/2011- Lezione 13 4

Equivalenze Tutti i problemi che appartengono alla classe dei problemi NP-ardui hanno uguale livello di difficoltà per trovare una soluzione esatta dato che appartengono alla classe dei problemi riducibili uno all’altro in tempo polinomiale. Questa equivalenza non vale nel caso delle soluzioni approssimate. Infatti trovare soluzioni approssimate con un ragionevole livello di accuratezza è più facile per alcuni di questi problemi (bisaccia) che per altri(commesso viaggiatore) ASD a.a.2010/2011- Lezione 13 5

Il vicino più vicino Algoritmo VpV per TSP: Step1 scegli una città arbitraria come punto di partenza; Step2 vai alla città (non ancora visitata) più vicina dall’ultima visitata e ripeti questo passo finchè tutte le città non saranno state visitate; Step3 ritorna alla città di partenza. In questo problema f calcola la somma dei costi su gli archi prescelti ed è facile mostrare con un esempio che per questo semplice algoritmo greedy RA = ∞ ASD a.a.2010/2011- Lezione 13 6

Un risultato negativo Se P≠ NP, non esiste alcun algoritmo approssimante per TSP Idea: se per assurdo si accettasse l’esistenza di un tale algoritmo A approssimante, allora questo algoritmo si potrebbe adoperare per risolvere in tempo polinomiale il problema del ciclo hamiltoniano che si sa essere NP-completo e quindi P=NP. Siano G (V,E) grafo qualunque, G’(V,E’) grafo completo pesato (E  E’)t.c. se e  E, w(e)=1, se e  E’/E, w(e)=n+1. Applichiamo ora A a G’ e troviamo la soluzione sa. Si calcoli f(sa). La soluzione ottima del TSP in G’ sarà n se G ha un circuito hamiltoniano, maggiore di n in caso contrario. Nel I caso: f(sa) ≤  f(s*) = n (≤ :per def. di approssimante , = per circuito ham) Nel II caso: f(sa) ≥ f(s*) > n (≥:per def. di sa , > per mancanza di circuito ham) Da questi confronti si deduce la soluzione del problema del circuio ham e che P = NP ASD a.a.2010/2011- Lezione 13 7

Due giri intorno all’albero Algoritmo 2gA per TSP: Step1 costruisci un minimo albero ricoprente del grafo di TSP, sia MAR; Step2 a partire da un nodo qualunque, esegui un ciclo intorno a MAR, marcando i nodi visitati; Step3 analizza la lista generata al passo 2 ed elimina da essa tutte le ripetizioni dei nodi, eccetto il primo. ASD a.a.2010/2011- Lezione 13 8

TSP con distanze euclidee Si definisce un TSP con distanze euclidee un TSP dove le distanze fra le città soddisfano le seguenti condizioni naturali: disuguaglianza triangolare: d(i,j) ≤ d(i,k) + d(k,j), per ogni tripla i,j,k simmetria: d(i,j) = d(j,i), per ogni coppia i,j VALE Sebbene il rapporto di approssimazione RA rimane illimitato su istanze euclidee, il rapporto di accuratezza dell’algoritmo VpV per queste istanze soddisfa la disuguaglianza f(sa)/f(s*)≤ 1/2 (logn+1) ASD a.a.2010/2011- Lezione 13 9

2gA per TSP con distanze euclidee L’algoritmo 2gA è un algoritmo 2-approssimante per il problema TSP con distanze euclidee. Dobbiamo provare f(sa) ≤ 2f(s*) L’eliminazione di un qualunque arco da s* genera un albero ricoprente, T, di costo non migliore del MAR generato dall’algoritmo, quindi f(s*) > w(T) ≥ w(T*) da cui 2f(s*) > 2 w(T*) ≥ f(sa) c.v.d. --------------------------------- 2w(T*): lunghezza del cammino ottenuto al passo 2 f(sa) : lunghezza del tour trovato da sa ASD a.a.2010/2011- Lezione 13 10

Il problema della bisaccia a variabili intere Algoritmo goloso per il problema della bisaccia a variabili intere: Step1 calcola il rapporto ri = vi / wi, per i = 1,…,n; Step2 ordina le ri in ordine non crescente ; Step3 considera lo ri corrente e immettilo nella bisaccia se non porta a superare la capacità, in caso contrario scartalo. Ripeti finchè sono state considerate tutte le ri . Esempio: bisaccia con capacità w>2, r(sa) = f(s*)/ f(sa)= w/2 peso valore valore/peso 1 2 w ASD a.a.2010/2011- Lezione 13 11

Il problema della bisaccia a variabili reali Algoritmo goloso per il problema della bisaccia a variabili reali: Step1 calcola il rapporto ri = vi / wi, per i = 1,…,n; Step2 ordina le ri in ordine non crescente ; Step3 considera lo ri corrente e immettilo intero nella bisaccia se non porta a superare la capacità, in caso contrario prendine la frazione maggioreinseribile nella bisaccia. Ripeti finchè o sono state considerate tutte le ri o la bisaccia è piena. La soluzione ottima trovata per la bisaccia a variabili reali può essere utilizzata come upper bound per il problema della bisaccia a variabili intere ASD a.a.2010/2011- Lezione 13 12

Algoritmo per schemi di approssimazione Per il problema della bisaccia a variabili intere è possibile ottenere una approssimazione sa,k per ogni prestabilito livello di accuratezzak, 0≤k<n, tale che f(sa,k)/ f(s*) ≤ 1 + 1/k, per ogni istanza di dimensione n L’algoritmo genera tutti i sottoinsiemi di x ≤ k elementi e per ciascuno di questi, prima mette nella bisaccia gli x elementi (ammesso che sia possibile), poi continua come nel metodo greedy. Il sottoinsieme che genera il maggior valore è dato in output come soluzione. Complessità computazionale O(knk+1) ASD a.a.2010/2011- Lezione 13 13