Complessità computazionale. Problemi difficili e nondeterminismo
|
|
- Benvenuto Rossini
- 5 anni fa
- Visualizzazioni
Transcript
1 computazionale Problemi difficili e nondeterminismo Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica
2 Tema della lezione Parleremo spesso di problemi che sono difficili in due sensi: computazionale tutti gli algoritmi noti che li risolvono richiedono tempo (almeno) esponenziale e teorico: l analisi del problema è difficile; non si riesce a dimostrare nè che esistono algoritmi polinomiali nè che non ne esistono
3 Tema della lezione Abbiamo già incontrato un problema simile: il TSP Ma non è il solo: abbiamo anche La fattorizzazione degli interi Il problema di decidere se una formula della logica proposizionale è soddisfacibile In uno scenario dove alcune aziende posseggono quote di altre aziende: decidere se una azienda è strategica appartiene a un sottinsieme minimo delle controllate sufficiente a produrre tutti i prodotti attualmente venduti
4 Tema della lezione Alcune domande da porci per capire meglio questi problemi: hanno tutti la stessa complessità? hanno tutti la stessa struttura? è possibile uno schema di soluzione comune? In realtà TSP e soddisfacibilità hanno la stessa complessità e struttura simile Mentre è ragionevole congetturare che la fattorizzazione sia leggermente più facile e il problema delle strategic companies strettamente più difficile Durante il corso arriveremo a tracciare una mappa delle inclusioni tra molte diverse classi di complessità e qualche risultato di separazione stretta tra queste classi visto che sono pochi, analizzeremo cosa cambierebbe se alcune di quelle classi coincidessero
5 Tema della lezione Alcune domande da porci per capire meglio questi problemi: hanno tutti la stessa complessità? hanno tutti la stessa struttura? è possibile uno schema di soluzione comune? In realtà TSP e soddisfacibilità hanno la stessa complessità e struttura simile Mentre è ragionevole congetturare che la fattorizzazione sia leggermente più facile e il problema delle strategic companies strettamente più difficile Durante il corso arriveremo a tracciare una mappa delle inclusioni tra molte diverse classi di complessità e qualche risultato di separazione stretta tra queste classi visto che sono pochi, analizzeremo cosa cambierebbe se alcune di quelle classi coincidessero
6 Tema della lezione Alcune domande da porci per capire meglio questi problemi: hanno tutti la stessa complessità? hanno tutti la stessa struttura? è possibile uno schema di soluzione comune? In realtà TSP e soddisfacibilità hanno la stessa complessità e struttura simile Mentre è ragionevole congetturare che la fattorizzazione sia leggermente più facile e il problema delle strategic companies strettamente più difficile Durante il corso arriveremo a tracciare una mappa delle inclusioni tra molte diverse classi di complessità e qualche risultato di separazione stretta tra queste classi visto che sono pochi, analizzeremo cosa cambierebbe se alcune di quelle classi coincidessero
7 Tema della lezione Alcune domande da porci per capire meglio questi problemi: hanno tutti la stessa complessità? hanno tutti la stessa struttura? è possibile uno schema di soluzione comune? In realtà TSP e soddisfacibilità hanno la stessa complessità e struttura simile Mentre è ragionevole congetturare che la fattorizzazione sia leggermente più facile e il problema delle strategic companies strettamente più difficile Durante il corso arriveremo a tracciare una mappa delle inclusioni tra molte diverse classi di complessità e qualche risultato di separazione stretta tra queste classi visto che sono pochi, analizzeremo cosa cambierebbe se alcune di quelle classi coincidessero
8 Tema della lezione Tutti i problemi citati hanno una caratteristica in comune devono cercare un elemento in uno spazio (almeno) esponenzialmente grande tour, sequenze di interi, interpretazioni proposizionali,... controllare se un elemento ha le proprietà desiderate è facile (richiede tempo polinomiale) Il problema, a livello teorico, è che da quando esiste l informatica non si riesce a dimostrare nè che bisogna per forza esplorare una porzione grande (esponenziale) dello spazio di ricerca nè che c è un modo furbo per ignorare la maggior parte dello spazio di ricerca e limitarsi a considerare pochi candidati (polinomiali) senza perdere soluzioni, naturalmente
9 Tema della lezione Tutti i problemi citati hanno una caratteristica in comune devono cercare un elemento in uno spazio (almeno) esponenzialmente grande tour, sequenze di interi, interpretazioni proposizionali,... controllare se un elemento ha le proprietà desiderate è facile (richiede tempo polinomiale) Il problema, a livello teorico, è che da quando esiste l informatica non si riesce a dimostrare nè che bisogna per forza esplorare una porzione grande (esponenziale) dello spazio di ricerca nè che c è un modo furbo per ignorare la maggior parte dello spazio di ricerca e limitarsi a considerare pochi candidati (polinomiali) senza perdere soluzioni, naturalmente
10 Tema della lezione Come facciamo ad analizzare algoritmicamente quei problemi difficili senza sapere se e come si può esplorare lo spazio di ricerca velocemente? Bisognerebbe scorporare dall analisi il problema della ricerca e analizzare il resto Trattando la ricerca come una scatola nera otteniamo una stima del consumo di risorse necessario relativa al costo della ricerca Con la stessa idea riusciremo anche a confrontare problemi diversi ed evidenziarne somiglianze e differenze strutturali
11 Tema della lezione Come facciamo ad analizzare algoritmicamente quei problemi difficili senza sapere se e come si può esplorare lo spazio di ricerca velocemente? Bisognerebbe scorporare dall analisi il problema della ricerca e analizzare il resto Trattando la ricerca come una scatola nera otteniamo una stima del consumo di risorse necessario relativa al costo della ricerca Con la stessa idea riusciremo anche a confrontare problemi diversi ed evidenziarne somiglianze e differenze strutturali
12 Tema della lezione Come facciamo ad analizzare algoritmicamente quei problemi difficili senza sapere se e come si può esplorare lo spazio di ricerca velocemente? Bisognerebbe scorporare dall analisi il problema della ricerca e analizzare il resto Trattando la ricerca come una scatola nera otteniamo una stima del consumo di risorse necessario relativa al costo della ricerca Con la stessa idea riusciremo anche a confrontare problemi diversi ed evidenziarne somiglianze e differenze strutturali
13 Tema della lezione Formalmente, il costo della esplorazione dello spazio di ricerca verrà scorporato nel caso più semplice mediante algoritmi nondeterministici formalizzati con MdT nondeterministiche Questi due argomenti sono il tema centrale di questa lezione
14 Pseudocodice Abbiamo già formulato algoritmi parzialmente specificati mediante pseudocodice alcune operazioni non elementari sono indicate ma non dettagliate come nell algoritmo per Reachability la gestione dell insieme di nodi da elaborare poteva essere FIFO, LIFO, random... risultato: diverse modalità di visita del grafo
15 Reachability - Un (?) algoritmo che risolve il problema Algorithm 1: Search algorithm Input: G = (V, E) e x, y V Output: true o false ( yes o no ) 1 for all v V do marked[v] = false 2 marked[x] = true 3 S := {x} 4 while S do 5 estrai v da S 6 forall (v, w) E do 7 if not marked[w] do marked[w] = true; inserisci w in S 8 end 9 end 10 return marked[y]
16 Algoritmi nondeterministici Negli algoritmi nondeterministici si fa qualcosa di simile alcune istruzioni operano delle scelte senza dire come Algorithm 2: Nondeterministic algorithm for TSP (decision version) Input: n (num. città), d ij e budget B Output: true sse esiste un tour di costo B 1 i=1; tour[i++] = 1; cost = 0 2 V = {2,..., n} // città da visitare 3 while V do 4 choose c V ; V = V \ {c} 5 tour[i++] = c; cost += d tour[i 1],c 6 end 7 cost += d tour[n],tour[1] 8 return cost B
17 Algoritmi nondeterministici Nell algoritmo precedente choose opera scelte giuste se esistono tour di costo B, choose seleziona proprio i membri di uno di quei tour nell ordine giusto L analisi di complessità considera choose come una operazione elementare (singolo passo, tempo=1) scorporando così il costo dell esplorazione dello spazio di ricerca L algoritmo precedente risulta polinomiale a meno del costo della ricerca il tour candidato può essere generato in tempo polinomiale il costo della ricerca è stato scorporato verificare se il candidato ha la proprietà desiderata (costo B) ha costo polinomiale
18 MdT nondeterministiche Definizione Formalizzano gli algoritmi nondeterministici Sono 4-uple M = (K, Σ,, s) dove non è più una funzione K Σ (K {h, yes, no }) Σ {,, } bensì una relazione K Σ (K {h, yes, no }) Σ {,, } Quindi per ogni coppia (q, σ) può esistere più di una transizione è l analogo di choose Versione a k nastri definita nel modo ovvio
19 MdT nondeterministiche Definizione Formalizzano gli algoritmi nondeterministici Sono 4-uple M = (K, Σ,, s) dove non è più una funzione K Σ (K {h, yes, no }) Σ {,, } bensì una relazione K Σ (K {h, yes, no }) Σ {,, } Quindi per ogni coppia (q, σ) può esistere più di una transizione è l analogo di choose Versione a k nastri definita nel modo ovvio
20 MdT nondeterministiche Configurazioni e transizioni Le configurazioni sono come quelle delle MdT: (q, w, u) Le transizioni singole sono definite analogamente: Siano w = w 1 w m e u = u 1 u n stringhe in Σ Scriviamo (q, w, u) M (q, w, u ) sse (q, w m, r, σ, ) e (q, w, u ) = (r, w 1 w m 1 σ, u) (q, w m, r, σ, ) e (q, w, u ) = (r, w 1 w m 1, σu) (q, w m, r, σ, ) e (q, w, u ) = (r, w 1 w m 1 σu 1, u 2 u n ) se u ɛ, altrimenti (q, w m, r, σ, ) e (q, w, u ) = (r, w 1 w m 1 σ, ɛ)
21 MdT nondeterministiche Transizioni in più passi Ovviamente, adesso che la MdT può scegliere tra diverse M mosse in una data configurazione, non è più una funzione possiamo avere (q, w, u) M (q i, w i, u i ) per i = 1,..., c (c ) M Le transizioni k e M si definiscono come prima a partire da M Neanche esse sono funzioni: ogni input x può corrispondere a diverse computazioni (s,, x) M (H i, w i, u i ) che possono terminare in modo diverso (alcune con yes, altre con no, altre con h) alcune potrebbero addirittura non terminare corrispondono a tutti i modi di eseguire i choose
22 Esempio Una MdT che formalizzasse l algoritmo nondeterministico per il TSP......avrebbe una computazione (o run) per ogni tour che parte da 1 in generale, alcuni avranno costo B, altri no. Se almeno un run trova un tour di costo B dobbiamo rispondere yes qualunque ricerca corretta, che non perde soluzioni, dovrebbe trovare uno di quei tour Solo se tutti i run costruiscono tour di costo > B dobbiamo rispondere no
23 MdT nondeterministiche Decisione di linguaggi Definizione (decisione) Una MdT nondeterministica N decide un linguaggio L sse, per ogni input x: x L (s,, x) M ( yes, w, u) (per qualche stringa wu) In altre parole, x L sse almeno un run di N accetta x
24 MdT nondeterministiche Tempo impiegato Definizione Una MdT nondeterministica N decide L in tempo f (n) sse N decide L, e per ogni input x, se (s,, x) Mk (q, w, u), allora k f ( x ) Ovvero, nessun run è più lungo di f ( x )
25 MdT nondeterministiche Rappresentazione ad albero delle computazioni
26 Esercitazione Scrivere una MdT nondeterministica a 2 nastri che riconosce le stringhe non palindrome Suggerimento: scrivere sul secondo nastro un numero c x scelto nondeterministicamente (in unario, per fare le cose più semplici) il modo più semplice è scandire l input e ad ogni passo scegliere nondeterministicamente se aggiungere un 1 al secondo nastro oppure no spostare la testina sul carattere dell input in posizione x c e memorizzare il carattere nello stato corrente per spostarsi di c caratteri, far scorrere la testina indietro sul secondo nastro fino all inizio spostare la testina sul carattere dell input in posizione c e confrontare il carattere in quella posizione con quello memorizzato nello stato
27 Nondeterminismo parallelismo Il modello nondeterministico non è adatto al parallelismo Il numero di processori necessario sarebbe illimitato La misura del tempo dovrebbe essere la lunghezza della computazione più breve che accetta l input mentre abbiamo adottato essenzialmente la lunghezza massima Manca la sincronizzazione tra processi
28 Le classi di complessità NTIME, P ed NP (Sono insiemi di linguaggi L (Σ \ { }) ) Definizione (nondeterministic time) L NTIME(f (n)) sse L è deciso da una MdT nondeterministica in tempo f (n) Le classi dei problemi risolubili in tempo polinomiale deterministico e nondeterministico P = k>0 TIME(nk ) NP = k>0 NTIME(nk )
29 Prime relazioni tra P ed NP Proposizione P NP Prova: È sufficiente notare che le MdT deterministiche sono casi particolari di MdT nondeterministiche in cui è una funzione (associa ogni coppia in K Σ ad una unica tripla). Viceversa, nessuno è mai riuscito a dimostrare nè NP P, (che implicherebbe P = NP) nè NP P. QED
30 TSP è in NP Descriviamo (cenni) una MdT nondeterministica N a 2 nastri che approssimativamente corrisponde all algoritmo nondeterministico per TSP visto prima Scrive sul 2 o nastro una arbitraria stringa di simboli lunga al massimo quanto l input usando scelte nondeterministiche (analoghe a choose) Poi torna indietro e controlla se la stringa codifica un tour (potrebbe non avere senso) in caso di errore si ferma con no Infine calcola il costo del tour. Se è B termina in yes, altrimenti in no Poichè i nastri sono ad accesso sequenziale, le fasi qui sopra richiedono O(n 2 ) passi
31 TSP è in NP (II) Correttezza Sia x l input di N Se N ha un run che termina con yes, allora ha trovato un tour di costo B, quindi x TSP Viceversa, se x TSP, allora esiste un tour di costo B, ed esiste una sequenza di scelte che scrive proprio quel tour sul secondo nastro. è importante che N sia programmata in modo da poter scrivere almeno tutte le stringhe che rappresentano un tour Siccome la lunghezza del tour è B, N termina con yes e accetta x Siccome N accetta x sse x TSP, N decide TSP
32 TSP è in NP (III) Il teorema di speedup quadratico vale anche per le MdT nondeterministiche: quindi esiste una MdT nondeterministica a 1 nastro che simula N con una perdita di effcienza quadratica Si conclude che TSP è deciso da una MdT nondeterministica in tempo O(n 4 ), quindi TSP NP QED
33 Da pseudocodice nondeterministico ad algoritmi deterministici Se lavorassimo con automi a stati finiti, potremmo trasformare ogni algoritmo nondeterministico in uno deterministico che risolve lo stesso problema nello stesso tempo il costo è una crescita esponenziale dell automa, ricordate? Invece con le MdT non sappiamo come fare (altrimenti avremmo risolto la questione P? = NP) il trucco usato per gli automi a stati finiti qui non funziona perchè l insieme delle possibili configurazioni è infinito l ampiezza dell albero delle computazioni può crescere senza limiti al crescere di x Sicuramente c è un modo per trasformare ogni algoritmo nondeterministico in uno deterministico che risolve lo stesso problema con un aumento esponenziale del tempo
34 Da pseudocodice nondeterministico ad algoritmi deterministici Se lavorassimo con automi a stati finiti, potremmo trasformare ogni algoritmo nondeterministico in uno deterministico che risolve lo stesso problema nello stesso tempo il costo è una crescita esponenziale dell automa, ricordate? Invece con le MdT non sappiamo come fare (altrimenti avremmo risolto la questione P? = NP) il trucco usato per gli automi a stati finiti qui non funziona perchè l insieme delle possibili configurazioni è infinito l ampiezza dell albero delle computazioni può crescere senza limiti al crescere di x Sicuramente c è un modo per trasformare ogni algoritmo nondeterministico in uno deterministico che risolve lo stesso problema con un aumento esponenziale del tempo
35 Da pseudocodice nondeterministico ad algoritmi deterministici Se lavorassimo con automi a stati finiti, potremmo trasformare ogni algoritmo nondeterministico in uno deterministico che risolve lo stesso problema nello stesso tempo il costo è una crescita esponenziale dell automa, ricordate? Invece con le MdT non sappiamo come fare (altrimenti avremmo risolto la questione P? = NP) il trucco usato per gli automi a stati finiti qui non funziona perchè l insieme delle possibili configurazioni è infinito l ampiezza dell albero delle computazioni può crescere senza limiti al crescere di x Sicuramente c è un modo per trasformare ogni algoritmo nondeterministico in uno deterministico che risolve lo stesso problema con un aumento esponenziale del tempo
36 Da nondeterministico a deterministico Teorema Se L è deciso da una MdT nondeterministica N in tempo f (n) Allora è deciso da una MdT deterministica M a 3 nastri in tempo O(c f (n) ), dove la costante c > 1 dipende da N Equivalentemente: NTIME(f (n)) TIME(c f (n) ) c>1
37 Da nondeterministico a deterministico Prova Sia N = (K, Σ,, s) la MdT nondeterministica data per ogni (q, σ) K Σ, sia C q,σ = {(q, σ, D) (q, σ, q, σ, D) } l insieme delle scelte (choices) di N nel contesto (q, σ) Nota: ogni C q,σ è finito (perchè?) Quindi definiamo il grado (degree) di nondeterminismo di N d = max q,σ C q,σ
38 Da nondeterministico a deterministico Prova (II) Idea di base per la simulazione: Ogni computazione di N è determinata da una sequenza di scelte nondeterministiche che ad ogni passo possiamo numerare da 1 a d quindi ogni sequenza di t passi corrisponde a una sequenza di t interi compresi tra 1 e d
39 Da nondeterministico a deterministico Prova (IIb) Ogni sequenza di t passi corrisponde a una sequenza di t interi compresi tra 1 e d
40 Da nondeterministico a deterministico Prova (III) M considera progressivamente tutte le sequenze di scelte in ordine lessicografico finchè scopre di poter terminare 1,2,...,d,11,12,...,1d,21,22,... le sequenze di scelte (choices) c 1,..., c t sono memorizzate sul secondo nastro per ciascuna sequenza c 1,..., c t, M simula le transizioni che N avrebbe fatto con quelle scelte (solo t passi) usa il 3 o nastro per la simulazione; il 1 o è di input se la simulazione termina con yes, anche M accetta altrimenti si passa alla sequenza di scelte successiva è come incrementare un intero espresso in base d analogo all incremento di una cifra binaria (già visto)
41 Da nondeterministico a deterministico Prova (IV) Condizione di terminazione con rigetto: Quando tutte le simulazioni di lunghezza t terminano in uno stato finale yes finchè esistono simulazioni che possono continuare oltre t passi dobbiamo andare avanti Analisi di complessità: numero di simulazioni: f (n) t=1 d t = O(d f (n) ) costo di ogni simulazione: risulta O(2 f (n) ) il costo complessivo è il prodotto: O((2d) f (n) ) QED
42 Il consumo di memoria delle MdT nondeterministiche Le MdT nondeterministiche con input e output si definiscono in modo analogo a quelle deterministiche primo nastro: read only; ultimo: write only Definizione (spazio utilizzato da MdT nondeterministiche con i/o) Una MdT nondeterministica con input e output N decide L in spazio f (n) sse N decide L per ogni input x (Σ \ { }), se (s,, x,, ɛ,...,, ɛ) N (q, w 1, u 1,..., w k, u k ) allora k 1 i=2 w iu i f ( x )
43 Impatto del nondeterminismo sullo spazio Riprendiamo Reachability L algoritmo nondeterministico usava spazio lineare le marcature booleane dei nodi e si può scendere fino a O(log 2 n) (vedere Cap. 7) Con un algoritmo nondeterministico si può arrivare a O(log n)
44 Reachability in spazio logaritmico L algoritmo Usa 3 nastri il secondo contiene il nodo corrente i (inizialmente 1) il terzo il nodo successivo j del cammino, scelto nondeterministicamente in {1,..., n} se il bit (i, j) nella matrice di adiacenza (1 o nastro) è 0, rigetta con no se è 1 e j = n, accetta ( yes ) altrimenti copia j nel secondo nastro e ripeti
45 Reachability in spazio logaritmico Commenti Chiaramente, se 1 è connesso a n, c è una sequenza di scelte che genera proprio un cammino tra i due nodi Alcune delle computazioni potrebbero non terminare non si controlla se si sta percorrendo un ciclo volendo si potrebbe evitare decrementando un contatore inizializzato a n Ma la definizione di accettazione permette casi come questo Nel Cap. 7 si dimostra che si possono normalizzare le MdT con spazio limitato per farle terminare sempre La cosa importante qui è che le variabili ausiliarie (i nastri 2 e 3) contengono sempre due numeri tra 1 e n quindi occupano spazio log n
46 Nondeterminismo e spazio Altri commenti Il guadagno in spazio permesso dal nondeterminismo è inferiore a quello in tempo Vedremo che non è un caso e che il guadagno che vale per Reachability è anche il massimo possibile
47 Nondeterminismo e problemi reali I Commenti Le MdT nondeterministiche non sono un modello di calcolo realistico Tuttavia permettono di esprimere in modo elegante e conciso (anche se parziale) la soluzione di problemi importanti in AI e ottimizzazione combinatoria Trovare una dimostrazione di una formula logica Trovare una soluzione a un problema di ottimizzazione Perchè permettono di tralasciare la modalità di ricerca della prova/soluzione
48 Nondeterminismo e problemi reali II Commenti Gli inference engines per il semantic web sono stati progettati essenzialmente iniziando con un algoritmo nondeterministico (tableaux) sufficiente a valutare se tempo e spazio usati sono ottimali rispetto alla complessità intrinseca del problema sufficiente a valutare la correttezza dell algoritmo la concreta strategia di ricerca e le relative euristiche possono essere progettate indipendentemente si possono anche realizzare diverse strategie ed euristiche per lo stesso algoritmo confrontarle eventualmente selezionare quella più appropriata in ogni contesto applicativo mantenendo immutato il cuore dell algoritmo
49 Capitolo di riferimento Papadimitriou Parte I, Capitolo 2, paragrafo 2.7
3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura
Partizioni intere. =! i# P. Es: Dato {38, 17, 52, 61, 21, 88, 25} possiamo rispondere positivamente al quesito poiché
Partizioni intere PARTIZIONAMENTO: Dato un insieme di n interi non negativi rappresentati in binario, trovare un sottoinsieme P! {1,2,..., n } tale che! i"p a i =! i# P a i Es: Dato {38, 17, 52, 61, 21,
Complessità computazionale. Complessità e Crittografia
computazionale e Crittografia Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica Tema della lezione I Le funzioni crittografiche per cifrare e decifrare messaggi comunemente
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
Automi e Linguaggi Formali
Automi e Linguaggi Formali Problemi intrattabili, classi P e NP A.A. 2014-2015 Alessandro Sperduti sperduti@math.unipd.it Problemi intrattabili Ci occuperemo solo di problemi decidibili, cioè ricorsivi.
Problemi intrattabili
Tempo polinomiale ed esponenziale Una Tm M ha complessita in tempo T(n) se, dato un input w di lunghezza n, M si ferma dopo al massimo T (n) passi. Problemi intrattabili Ci occuperemo solo di problemi
Complessità computazionale. Complessità degli algoritmi e complessità dei problemi
computazionale degli algoritmi e complessità dei problemi Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica Tema della lezione Nel corso di Algoritmi si insegna a valutare
Problemi intrattabili, classi P e NP. Problemi intrattabili, classi P e NP
roblemi intrattabili Ci occuperemo solo di problemi decidibili, cioe ricorsivi. Tra loro, alcuni sono detti trattabili, se si puo provare che sono risolvibili in tempo polinomiale in modo deterministico.
e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità
Intelligenza Artificiale I Soddisfacibilità e Algoritmi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema
Teoria della Complessità Computazionale
Teoria della Complessità Computazionale Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it Rev. 1.3, 11/00 rev. 1.3 - Novembre 2000 Teoria della Complessità Studia la difficoltà dei problemi
Teoria della complessità
Teoria della complessità Materiale consigliato: testo del corso capitolo 34 Introduzione agli algoritmi e strutture dati T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein McGraw Hill, 2005 Denise Salvi
Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza
Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere
Capitolo 9: Trattabilitá e intrattabilitá dei problemi
Capitolo 9: Trattabilitá e intrattabilitá dei problemi 1 La classe P : é considerata tradizionalmente come una caratterizzazione formale dei problemi trattabili. n = 2 n = 5 n = 10 n = 100 n = 1000 n 2
Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione
Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?
ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI
ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di
Soddisfacibilità e Semantic Tableau [1]
Intelligenza Artificiale I Soddisfacibilità e Semantic Tableau Marco Piastra Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema In forma rigorosa, un problema è una relazione
Informatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
Dentro P e oltre NP?
Dentro P e oltre NP? Tra P e EXPTIME? EXPTIME PSPACE conp NP P Si sa solo che P EXPTIME PSPACE completezza Un linguaggio A è PSPACE completo se 1.A è in PSPACE, cioè esiste una TM T che accetta A con complessità
Algoritmo per A. !(x) Istanza di B
Riduzioni polinomiali Una funzione f: T*!T* è detta computabile in tempo polinomiale se esiste una macchina di Turing limitata polinomialmente che la computi. Siano L 1 e L 2 " T* due linguaggi. Una funzione
Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale
Aniello Murano Classe dei problemi NP 13 Lezione n. Parole chiave: Classe NP Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduzione alla lezione Nella lezione
Teoria della NP-completezza
Teoria della NP-completezza Ivan Lanese Dipartimento di Informatica Scienza e Ingegneria Università di Bologna Ivan.lanese@gmail.com http://www.cs.unibo.it/~lanese/ NP-completezza 2 Complessità di problemi
Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a.
Fondamenti di Informatica Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a. 2006-2007 Ipotesi fondamentale Tesi di Church Qualunque algoritmo può essere espresso sotto forma di matrice funzionale
Complementi di Algoritmi e Strutture Dati. Soluzioni prova scritta 7 giugno 2017
Complementi di Algoritmi e Strutture Dati (III anno Laurea Triennale - a.a. 2016/17) Soluzioni prova scritta 7 giugno 2017 Esercizio Union find (punti 6) Considerare la foresta union-find sottostante e
Aniello Murano Space Complexity
Aniello Murano Space Complexity Lezione n. Parole chiave: Space Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Definizione Space- complexity Definizione: Sia M un
Complessità computazionale. Principali relazioni tra le classi di. Complessità
computazionale Principali relazioni tra le classi di complessità Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica Tema della lezione I Col procedere del corso studieremo
Note sulle classi di complessità P, NP e NPC per ASD (DRAFT)
Note sulle classi di complessità P, NP e NPC per ASD 2010-11 (DRAFT) Nicola Rebagliati 20 dicembre 2010 1 La complessità degli algoritmi Obiettivo principale della teoria della complessità: ottenere una
Teoria della Complessità Computazionale
Teoria della Complessità Computazionale Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 21 Ottobre 2014 Ricerca Operativa 2
PARTE VI COMPLESSITA
PARTE VI COMPLESSITA Complessità di algoritmi e problemi Classi di complessità Proprietà delle classi spaziali e temporali Le classi P, NP, PSPAZIO Problemi NP-completi 6.1. Introduzione alla complessità
Algoritmi e Complessità
Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it a.a. 2002-03 e.merelli
ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE
ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine
Teoria della Calcolabilità!
Teoria della Calcolabilità Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo. L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
Il concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
Sommario Codifica dei dati Macchina Astratta Definizioni Esempi
Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali
Complementi ed Esercizi di Informatica Teorica II
Complementi ed Esercizi di Informatica Teorica II Vincenzo Bonifaci 14 febbraio 2008 1 Problemi in nc 1.1 Le classi nc k Ricordiamo che con nc k si indica la classe dei linguaggi decidibili da una famiglia
Problemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
ITLCC 2006/10/6 19:09 page 7 #3
ITLCC 2006/10/6 19:09 page 7 #3 Capitolo 2 Macchine di Turing SOMMARIO In questo capitolo introdurremo il modello di calcolo proposto dal logico matematico inglese Alan Turing, in un suo famoso articolo
Teoria della Complessità Concetti fondamentali
Teoria della Complessità Concetti fondamentali L oggetto della teoria della complessità è stabilire se un problema sia facile o difficile La difficoltà di un problema è una caratteristica generale e non
Certificati dei problemi in NP
Certificati dei problemi in NP La stringa y viene in genere denominata un certificato Un Certificato è una informazione ausiliaria che può essere utilizzata per verificare in tempo polinomiale nella dimensione
Ancora su 2-SAT. può essere pensata come una coppia di implicazioni!! " 1
Ancora su 2-SAT Qualsiasi clausola a 1! a 2 può essere pensata come una coppia di implicazioni!! " 1 " a 2 e " 2 " a 1 Il caso di letterale singolo a viene considerato come "" a Partendo da una istanza
come segue: data una collezione C di elementi e una un elemento che verifica la proprietà P
Problemi di Ricerca Carla Binucci e Walter Didimo Il problema della Ricerca In generale, il Problema della Ricerca è definito come segue: data una collezione C di elementi e una proprietà P, determinare
ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA DI TURING.
ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA I TURING francesca.piersigilli@unicam.it MACCHINA I TURING (MdT) Nel 936 il matematico inglese Alan Turing propose l'idea di una macchina immaginaria
Lucchetto con combinazione (3 numeri tra 0 e 39)
Complessita computazionale ed il problema P / NP Fondamenti di Informatica 2011/12 Lucchetto con combinazione (3 numeri tra 0 e 39) Perche e sicuro? (escludendo che lo si rompa) Combinazione di 3 numberi
Principio di composizione delle MT
Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi
Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016
Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:
NP completezza. Problemi astratti
NP completezza Vittorio Maniezzo - Università di Bologna Problemi astratti Un problema è un entità astratta (es. il TSP). Una istanzadel problema è un suo caso particolare in cui vengono specificati tutti
NP completezza. Vittorio Maniezzo - Università di Bologna
NP completezza Vittorio Maniezzo - Università di Bologna Problemi astratti Un problema è un entità astratta (es. il TSP). Una istanzadel problema è un suo caso particolare in cui vengono specificati tutti
Appunti lezione Capitolo 13 Programmazione dinamica
Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi
AUTOMI A STATI FINITI
AUTOMI A STATI FINITI I linguaggi regolari godono di interessanti proprietà algebriche: Sono defnibili con le espressioni regolari Sono generati da grammatiche di Chomsky di tipo 3. Sono riconoscibili
Teoria della NP-completezza. Damiano Macedonio
Teoria della NP-completezza Damiano Macedonio mace@unive.it Copyright 2010, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2009/) This work is licensed under
Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012.
Automi e Macchine Computabilità Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012 Computabilità AA 2012/13 Ugo Solitro Sommario Introduzione Automi a
Macchine di TURING. Alan Mathison Turing ( )
Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei
Complessità computazionale. I problemi più difficili di ogni classe: Riduzioni e completezza
computazionale I problemi più difficili di ogni classe: Riduzioni e completezza Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica Tema della lezione I Abbiamo visto che
Complessità Strutturale e NP-Completezza
Complessità Strutturale e NP-Completezza Una breve introduzione Francesco De Rose Alberto Giorgi Università degli Studi di Brescia Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica
Capitolo 8: Teoria della complessitá
Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá
Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD
Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento
Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è
Rappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)
Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come
RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
Aniello Murano NP- Completezza (prima parte)
Aniello Murano NP- Completea (prima parte) 14 Leione n. Parole chiave: Npcompletea Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Introduione I problemi NP-completi
Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come
Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo
Logica Algoritmi Cognizione
Logica Algoritmi Cognizione Le nozioni di DECIDIBILITÀ e COMPUTABILITÀ e i loro limiti Formulazione della logica in termini di teorie formalizzate e di dimostrazioni (all interno di teorie formalizzate)
Esercitazioni per il corso di Logica Matematica
Esercitazioni per il corso di Logica Matematica Luca Motto Ros 02 marzo 2005 Nota importante. Queste pagine contengono appunti personali dell esercitatore e sono messe a disposizione nel caso possano risultare
Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano
Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP
Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
Complessità computazionale. Introduzione al corso
computazionale Introduzione al corso Piero A. Bonatti Università di Napoli Federico II Laurea Magistrale in Informatica Introduzione Questo corso tratta la teoria della complessità una branca dell informatica
DECIDIBILITÀ E INDECIDIBILITÀ
DECIDIBILITÀ E INDECIDIBILITÀ Obiettivo: analizzare i limiti della risoluzione dei problemi mediante algoritmi. Studieremo: il potere computazionale degli algoritmi nella soluzione dei problemi. Proveremo
Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
Teoria della Calcolabilità!
Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano
2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di
Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi
Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
Teoria della Complessità Computazionale. Accettazione/riconoscimento di linguaggi in tempo/spazio
Teoria della Complessità Computazionale. Obiettivo: classifcare i problemi (risolubili con algoritmi) in base alle risorse di calcolo che richiedono per essere risolti. Risorse: tempo e spazio (memoria)
PARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 3.1 MACCHINE A REGISTRI 1 (RAM: Random Access Machines) Introdotte da Shepherdson
Fondamenti dell informatica
Fondamenti dell informatica Macchine a registri Rosario Culmone rosario.culmone@unicam.it 9/4/2008 UNICAM - p. 1/24 Modello di calcolo basato sui calcolatori Le macchine a registri (RAM: Random Access
Risoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
Ing. Lorenzo Vismara
Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#
PARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
PARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
Diario delle Lezioni del Corso di Algoritmimodulo
Diario delle Lezioni del Corso di Algoritmimodulo Complessità A.A. 2010-2011 Dott.ssa Margherita Zorzi 1 Materiale didattico Libro di testo C.H. Papadimitrious, Computational Complexity, ed Addison-Wesley
Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare
Teoria della Complessità Computazionale Parte I: Introduzione
Teoria della Complessità Computazionale Parte I: Introduzione Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it rev. 3.0 - ottobre 2003 Teoria della Complessità Studia la difficoltà dei
Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale la classe conp e le relazioni tra P, NP,coNP e EXPTIME
Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale la classe conp e le relazioni tra P, NP,coNP e EXPTIME HAMPATH - 1 HAMPATH = { G è un grafo diretto con un cammino hamiltoniano
Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen
Linguaggi 4: Universitá di Bologna 24/02/2011 Outline 1 Wikipedia: La sintassi è la branca della linguistica che studia i diversi modi in cui le parole si uniscono tra loro per formare
Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
Algoritmi e loro proprietà. Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio
Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Parte I.5 Cenni alla computazione
Parte I.5 Cenni alla computazione Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 14, 2015 Elisabetta Elisabetta Ronchieri I Concetti
ALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
Problema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento