Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Algoritmi e strutture dati
 
Differenze tra programmazione dinamica e Dijkstra
Clicca QUI per vedere il messaggio nel forum
Snakethesniper
Quali sono le differenze tra il calcolo dei cammini minimi con programmazione dinamica e con Dijkstra? A parte la modalità di esecuzione, il problema e la soluzione sono gli stessi? Ce n'è uno che conviene?

Cronovirus
La differenza è che risolvono due problemi diversi:
- programmazione dinamica: calcola i cammini minimi tra ogni coppia di nodi
- Dijkstra: cammini minimi che partono dalla sorgente di un grafo

Snakethesniper
Originally posted by Cronovirus
La differenza è che risolvono due problemi diversi:
- programmazione dinamica: calcola i cammini minimi tra ogni coppia di nodi
- Dijkstra: cammini minimi che partono dalla sorgente di un grafo

ma un side effect di dijkstra non è quello di trovare anche i cammini minimi tra le coppie di nodi?

Cronovirus
Attenzione io ho specificato che in dijkstra parti da una sorgente, questa è la differenza sostanziale; mentre se fai la programmazione dinamica avrai i risultati per ogni coppia di nodi e avrai al suo interno anche il risultato che ottieni con dijkstra per un nodo radice (credo). Quindi ok credo che concordiamo! Tuttavia vorrei sottolineare che all'orale non gli devi dire che sono uguali perché NON lo sono!

Snakethesniper
Originally posted by Cronovirus
Attenzione io ho specificato che in dijkstra parti da una sorgente, questa è la differenza sostanziale; mentre se fai la programmazione dinamica avrai i risultati per ogni coppia di nodi e avrai al suo interno anche il risultato che ottieni con dijkstra per un nodo radice (credo). Quindi ok credo che concordiamo! Tuttavia vorrei sottolineare che all'orale non gli devi dire che sono uguali perché NON lo sono!

no no che sono diversi lo so, però appunto le slide dicevano che risolvono entrambi lo stesso problema, ovvero quello dei cammini minimi.
Se quindi ad esempio voglio trovare il cammino minimo tra due nodi specifici, mi conviene usare Dijkstra usando uno dei due nodi come sorgente, piuttosto che calcolarli con la programmazione dinamica ?

Cronovirus
La risposta è nella complessità dei due algoritmi: dijkstra è chiaramente migliore!

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate