Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων"

Transcript

1 Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών Ενότητα 6 1 / 35

2 Ενότητα 6 - Συντοµότερες ιαδροµές Ι Συντοµότερες ιαδροµές Γενικά Αλγόριθµοι Συντοµότερων ιαδροµών και Υλοποιήσεις Κατευθυνόµενα Ακυκλικά Γραφήµατα Μη αρνητικά κόστη ακµών Αλγόριθµος Dijkstra: υλοποίηση & αξιολόγηση 2 / 35

3 Πρόβληµα Συντοµότερης ιαδροµής 3 / 35

4 Πρόβληµα Συντοµότερης ιαδροµής Κατευθυνόµενο γράφηµα G = (V, E) µε συνάρτηση κόστους c : E IR 3 / 35

5 Πρόβληµα Συντοµότερης ιαδροµής Κατευθυνόµενο γράφηµα G = (V, E) µε συνάρτηση κόστους c : E IR Κόστος c(p) διαδροµής p = [v 1, v 2,..., v k ] k 1 c(p) = c(v i, v i+1 ) i=1 3 / 35

6 Πρόβληµα Συντοµότερης ιαδροµής Κατευθυνόµενο γράφηµα G = (V, E) µε συνάρτηση κόστους c : E IR Κόστος c(p) διαδροµής p = [v 1, v 2,..., v k ] k 1 c(p) = c(v i, v i+1 ) i=1 εδοµένων δύο κορυφών v και w, να ϐρεθεί η διαδροµή από την v στην w µε το ελάχιστο κόστος ή απόσταση, που συµβολίζεται ως δ(v, w) 3 / 35

7 Πρόβληµα Συντοµότερης ιαδροµής 4 / 35

8 Πρόβληµα Συντοµότερης ιαδροµής { inf{c(p); p είναι µια v-w διαδροµή} δ(v, w) = +, αν v-w διαδροµή 4 / 35

9 Πρόβληµα Συντοµότερης ιαδροµής { inf{c(p); p είναι µια v-w διαδροµή} δ(v, w) = +, αν v-w διαδροµή s s / 35

10 Πρόβληµα Συντοµότερης ιαδροµής { inf{c(p); p είναι µια v-w διαδροµή} δ(v, w) = +, αν v-w διαδροµή s s Αρνητικός κύκλος C: c(c) < 0 4 / 35

11 Ιδιότητες Συντοµότερων ιαδροµών 5 / 35

12 Ιδιότητες Συντοµότερων ιαδροµών 1 µια v-w διαδροµή που περιέχει αρνητικό κύκλο ανν δ(v, w) = 5 / 35

13 Ιδιότητες Συντοµότερων ιαδροµών 1 µια v-w διαδροµή που περιέχει αρνητικό κύκλο ανν δ(v, w) = 2 Αν v-w διαδροµή και v-w διαδροµή που να περιέχει αρνητικό κύκλο, τότε < δ(v, w) < +, και δ(v, w) είναι το κόστος µιας απλής v-w διαδροµής 5 / 35

14 Εύρεση Σ από µια Αρχική Κορυφή (ΕΣ ΑΚ) 6 / 35

15 Εύρεση Σ από µια Αρχική Κορυφή (ΕΣ ΑΚ) Πρόβληµα ΕΣ ΑΚ: δεδοµένου ενός κατευθυνόµενου γραφήµατος G = (V, E) και µιας αρχικής κορυφής s V, να υπολογισθούν τα δ(s, v), v V, καθώς και οι συντοµότερες s-v διαδοµές 6 / 35

16 Εύρεση Σ από µια Αρχική Κορυφή (ΕΣ ΑΚ) Πρόβληµα ΕΣ ΑΚ: δεδοµένου ενός κατευθυνόµενου γραφήµατος G = (V, E) και µιας αρχικής κορυφής s V, να υπολογισθούν τα δ(s, v), v V, καθώς και οι συντοµότερες s-v διαδοµές Απλοποίηση συµβολισµού: δ(s, v) δ(v), v V 6 / 35

17 Εύρεση Σ από µια Αρχική Κορυφή (ΕΣ ΑΚ) Πρόβληµα ΕΣ ΑΚ: δεδοµένου ενός κατευθυνόµενου γραφήµατος G = (V, E) και µιας αρχικής κορυφής s V, να υπολογισθούν τα δ(s, v), v V, καθώς και οι συντοµότερες s-v διαδοµές Απλοποίηση συµβολισµού: δ(s, v) δ(v), v V Πόσος χώρος χρειάζεται για την αποθήκευση του αποτελέσµατος (εξόδου) ενός αλγορίθµου ΕΣ ΑΚ ; 6 / 35

18 Ιδιότητες Συντοµότερων ιαδροµών ΕΣ ΑΚ 3 δ(s) = min{0, min{δ(u) + c(e); e = (u, s) E}} και δ(v) = min{δ(u) + c(e); e = (u, v) E} για v s 7 / 35

19 Ιδιότητες Συντοµότερων ιαδροµών ΕΣ ΑΚ 3 δ(s) = min{0, min{δ(u) + c(e); e = (u, s) E}} και δ(v) = min{δ(u) + c(e); e = (u, v) E} για v s 4 Εστω d µια συνάρτηση V : IR {, + } µε d(v) δ(v), v V, d(s) 0, και d(v) d(u) + c(u, v), e = (u, v) E ( ) Τότε, d(v) = δ(v), v V 7 / 35

20 Ιδιότητες Συντοµότερων ιαδροµών ΕΣ ΑΚ 3 δ(s) = min{0, min{δ(u) + c(e); e = (u, s) E}} και δ(v) = min{δ(u) + c(e); e = (u, v) E} για v s 4 Εστω d µια συνάρτηση V : IR {, + } µε d(v) δ(v), v V, d(s) 0, και d(v) d(u) + c(u, v), e = (u, v) E ( ) Τότε, d(v) = δ(v), v V Παρατήρηση 1: Αν αρνητικός κύκλος, τότε d( ) που να ικανοποιεί τις παραπάνω συνθήκες 7 / 35

21 Ιδιότητες Συντοµότερων ιαδροµών ΕΣ ΑΚ 3 δ(s) = min{0, min{δ(u) + c(e); e = (u, s) E}} και δ(v) = min{δ(u) + c(e); e = (u, v) E} για v s 4 Εστω d µια συνάρτηση V : IR {, + } µε d(v) δ(v), v V, d(s) 0, και d(v) d(u) + c(u, v), e = (u, v) E ( ) Τότε, d(v) = δ(v), v V Παρατήρηση 1: Αν αρνητικός κύκλος, τότε d( ) που να ικανοποιεί τις παραπάνω συνθήκες Παρατήρηση 2: n 1 ανισότητες στην ( ) πρέπει να ισχύουν µε ισότητα 7 / 35

22 ΕΣ ΑΚ 8 / 35

23 ΕΣ ΑΚ ιαχωρισµός του V σε V = {v V; δ(v) = } V f = {v V; < δ(v) < + } V + = {v V; δ(v) = + } 8 / 35

24 ΕΣ ΑΚ ιαχωρισµός του V σε V = {v V; δ(v) = } V f = {v V; < δ(v) < + } V + = {v V; δ(v) = + } ένδρο Συντοµότερων ιαδροµών: δένδρο οριζόµενο στο V f, µε ϱίζα s, τέτοιο ώστε v V f η δενδρική s-v διαδροµή είναι µια συντοµότερη s-v διαδροµή στο G 8 / 35

25 ΕΣ ΑΚ ιαχωρισµός του V σε V = {v V; δ(v) = } V f = {v V; < δ(v) < + } V + = {v V; δ(v) = + } ένδρο Συντοµότερων ιαδροµών: δένδρο οριζόµενο στο V f, µε ϱίζα s, τέτοιο ώστε v V f η δενδρική s-v διαδροµή είναι µια συντοµότερη s-v διαδροµή στο G Απαιτήσεις χώρου για το αποτέλεσµα ΕΣ ΑΚ (έξοδος αλγορίθµου): O(n) 8 / 35

26 ΕΣ ΑΚ Εξοδος Αλγορίθµου 9 / 35

27 ΕΣ ΑΚ Εξοδος Αλγορίθµου δ(v), v V 9 / 35

28 ΕΣ ΑΚ Εξοδος Αλγορίθµου δ(v), v V ένδρο συντοµότερων διαδροµών ( Σ ) στο V f 9 / 35

29 ΕΣ ΑΚ Εξοδος Αλγορίθµου δ(v), v V ένδρο συντοµότερων διαδροµών ( Σ ) στο V f Συλλογή αρνητικών κύκλων και δένδρα που απολήγουν από αυτούς στο V 9 / 35

30 ΕΣ ΑΚ Εξοδος Αλγορίθµου δ(v), v V ένδρο συντοµότερων διαδροµών ( Σ ) στο V f Συλλογή αρνητικών κύκλων και δένδρα που απολήγουν από αυτούς στο V f + V V s V αρνητικος κυκλος 9 / 35

31 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) 10 / 35

32 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) node_array<nt> dist node_array<edge> pred dist[v] αποθηκεύει την απόσταση της κορυφής v από την s pred[v] αποθηκεύει την τελευταία ακµή µιας s-v Σ αν, αλλιώς nil 10 / 35

33 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) node_array<nt> dist node_array<edge> pred dist[v] αποθηκεύει την απόσταση της κορυφής v από την s pred[v] αποθηκεύει την τελευταία ακµή µιας s-v Σ αν, αλλιώς nil Ο πίνακας pred ορίζει το «γράφηµα προκατόχων» (predecessor graph) P = {pred[v]; v V και pred[v] nil} 10 / 35

34 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) Ιδιότητες του ζεύγους (dist, pred) 11 / 35

35 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) Ιδιότητες του ζεύγους (dist, pred) s V f ανν pred[s] = nil, και s V ανν pred[s] nil 11 / 35

36 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) Ιδιότητες του ζεύγους (dist, pred) s V f ανν pred[s] = nil, και s V ανν pred[s] nil Για v s: v V + ανν pred[v] = nil και v V f V ανν pred[v] nil 11 / 35

37 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) Ιδιότητες του ζεύγους (dist, pred) s V f ανν pred[s] = nil, και s V ανν pred[s] nil Για v s: v V + ανν pred[v] = nil και v V f V ανν pred[v] nil v V f αν µία s-v διαδροµή στο P και s V f. Το επαγώµενο, από τις κορυφές του V f, υπογράφηµα του P είναι ένα Σ και dist[v] = δ(v), v V f 11 / 35

38 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) Ιδιότητες του ζεύγους (dist, pred) s V f ανν pred[s] = nil, και s V ανν pred[s] nil Για v s: v V + ανν pred[v] = nil και v V f V ανν pred[v] nil v V f αν µία s-v διαδροµή στο P και s V f. Το επαγώµενο, από τις κορυφές του V f, υπογράφηµα του P είναι ένα Σ και dist[v] = δ(v), v V f Ολοι οι κύκλοι στο P έχουν αρνητικό κόστος και v V ανν η v ϐρίσκεται σε κύκλο στο P ή είναι προσπελάσιµη από έναν κύκλο στο P 11 / 35

39 Επίλυση Προβλήµατος ΕΣ ΑΚ (G, s, c) s Οι διακεκοµµένες ακµές δεν ανήκουν στο P 12 / 35

40 Πρόβληµα ΕΣ ΑΚ Αλγόριθµοι & Υλοποιήσεις 13 / 35

41 Πρόβληµα ΕΣ ΑΚ Αλγόριθµοι & Υλοποιήσεις Κατευθυνόµενα ακυκλικά γραφήµατα 13 / 35

42 Πρόβληµα ΕΣ ΑΚ Αλγόριθµοι & Υλοποιήσεις Κατευθυνόµενα ακυκλικά γραφήµατα Μη αρνητικά κόστη ακµών 13 / 35

43 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα 14 / 35

44 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα void ACYCLIC_SHORTEST_PATH_T(const graph& G, node s, const edge_array<nt>& c, node_array<nt>& dist, node_array<edge>& pred) 14 / 35

45 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα void ACYCLIC_SHORTEST_PATH_T(const graph& G, node s, const edge_array<nt>& c, node_array<nt>& dist, node_array<edge>& pred) Χρόνος: O(n + m) 14 / 35

46 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα Ιδέα Αλγορίθµου 15 / 35

47 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα Ιδέα Αλγορίθµου Εστω G ένα κατευθυνόµενο ακυκλικό γράφηµα, έστω v 1, v 2,..., v n η τοπολογική του διάταξη, δηλ. (v i, v j ) E i < j, και έστω s = v k 15 / 35

48 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα Ιδέα Αλγορίθµου Εστω G ένα κατευθυνόµενο ακυκλικό γράφηµα, έστω v 1, v 2,..., v n η τοπολογική του διάταξη, δηλ. (v i, v j ) E i < j, και έστω s = v k Κορυφές v l µε l < k δεν είναι προσπελάσιµες από την s 15 / 35

49 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα Ιδέα Αλγορίθµου Εστω G ένα κατευθυνόµενο ακυκλικό γράφηµα, έστω v 1, v 2,..., v n η τοπολογική του διάταξη, δηλ. (v i, v j ) E i < j, και έστω s = v k Κορυφές v l µε l < k δεν είναι προσπελάσιµες από την s Για τις υπολοιπες κορυφές v j και τις r εισερχόµενες ακµές τους (v i, v j ), ισχύει ότι (i, j k): δ(v j ) = min 1 i r {δ(v i) + c(v i, v j )} 15 / 35

50 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα Ιδέα Αλγορίθµου Εστω G ένα κατευθυνόµενο ακυκλικό γράφηµα, έστω v 1, v 2,..., v n η τοπολογική του διάταξη, δηλ. (v i, v j ) E i < j, και έστω s = v k Κορυφές v l µε l < k δεν είναι προσπελάσιµες από την s Για τις υπολοιπες κορυφές v j και τις r εισερχόµενες ακµές τους (v i, v j ), ισχύει ότι (i, j k): δ(v j ) = min 1 i r {δ(v i) + c(v i, v j )} Ενας άλλος τρόπος υπολογισµού του παραπάνω ελάχιστου: δ(v j ) = + for i = 1 to r if δ(v j ) > δ(v i ) + c(v i, v j ) then δ(v j ) = δ(v i ) + c(v i, v j ) 15 / 35

51 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα // initialization - computing topological order node_array<int> top_ord(g); TOPSORT(G,top_ord); // top_ord is now a topological ordering of G int n = G.number_of_nodes(); array<node> v(1,n); node w; forall_nodes(w,g) v[top_ord[w]] = w; // top_ord[v[i]] == i for all i 16 / 35

52 Πρόβληµα ΕΣ ΑΚ Κατευθυνόµενα ακυκλικά γραφήµατα template <class NT> void ACYCLIC_SHORTEST_PATH_T(const graph& G, node s, const edge_array<nt>& c, node_array<nt>& dist, node_array<edge>& pred) { // initialization - computing topological order forall_nodes(w,g) pred[w] = nil; dist[s] = 0; for(int i = top_ord[s]; i <= n; i++) { node u = v[i]; if ( pred[u] == nil && u!= s ) continue; edge e; NT du = dist[u]; forall_adj_edges(e,u) { node w = G.target(e); if ( pred[w] == nil du + c[e] < dist[w]) { pred[w] = e; dist[w] = du + c[e]; } } } } 17 / 35

53 Πρόβληµα ΕΣ ΑΚ Μη αρνητικά κόστη ακµών 18 / 35

54 Πρόβληµα ΕΣ ΑΚ Μη αρνητικά κόστη ακµών void DIJKSTRA(graph& G, node s, const edge_array<int>& cost, node_array<int>& dist, p_queue<int,node>& PQ) 18 / 35

55 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra 19 / 35

56 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Επαναληπτικός αλγόριθµος (έως ότου όλες οι κορυφές γίνουν ανενεργές) 19 / 35

57 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Επαναληπτικός αλγόριθµος (έως ότου όλες οι κορυφές γίνουν ανενεργές) Σε κάθε επανάληψη, διατηρεί µια προσωρινή απόσταση dist[v], v V, και ένα σύνολο ενεργών κορυφών 19 / 35

58 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Επαναληπτικός αλγόριθµος (έως ότου όλες οι κορυφές γίνουν ανενεργές) Σε κάθε επανάληψη, διατηρεί µια προσωρινή απόσταση dist[v], v V, και ένα σύνολο ενεργών κορυφών Αρχικά, µόνο η s είναι ενεργή, dist[s] = 0, και για κάθε άλλη κορυφή v, dist[v] = + 19 / 35

59 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Επαναληπτικός αλγόριθµος (έως ότου όλες οι κορυφές γίνουν ανενεργές) Σε κάθε επανάληψη, διατηρεί µια προσωρινή απόσταση dist[v], v V, και ένα σύνολο ενεργών κορυφών Αρχικά, µόνο η s είναι ενεργή, dist[s] = 0, και για κάθε άλλη κορυφή v, dist[v] = + Σε κάθε επανάληψη: επιλογή ενεργής κορυφής u µε ελάχιστη dist[u] Η u γίνεται ανενεργή και η dist[u] είναι η τελική απόσταση της u «Χαλάρωση» εξερχόµενων ακµών της (u, v): if dist[v] > dist[u] + c(u, v) then dist[v] = dist[u] + c(u, v) 19 / 35

60 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Λεπτοµέρειες Υλοποίησης 20 / 35

61 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Λεπτοµέρειες Υλοποίησης dist[v]: αποθηκεύει τελική και προσωρινή απόσταση µιας κορυφής v 20 / 35

62 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Λεπτοµέρειες Υλοποίησης dist[v]: αποθηκεύει τελική και προσωρινή απόσταση µιας κορυφής v PQ: ουρά προτεραιότητας που αποθηκεύει τα Ϲεύγη (dist[v], v), όπου v είναι ενεργή 20 / 35

63 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra Λεπτοµέρειες Υλοποίησης dist[v]: αποθηκεύει τελική και προσωρινή απόσταση µιας κορυφής v PQ: ουρά προτεραιότητας που αποθηκεύει τα Ϲεύγη (dist[v], v), όπου v είναι ενεργή Κάθε ενεργή κορυφή v πρέπει να γνωρίζει το στοιχείο (pq_item) της PQ, το οποίο περιέχει το Ϲεύγος (dist[v], v) Το στοιχείο αυτό αποθηκεύεται στη ϑέση I[v] ενός node_array<pq_item> I 20 / 35

64 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra { node_array<pq_item> I(G); node v; forall_nodes(v,g) dist[v] = MAXINT; dist[s] = 0; I[s] = PQ.insert(0,s); while (! PQ.empty()) { pq_item it = PQ.find_min(); node u = PQ.inf(it); int du = dist[u]; edge e; forall_adj_edges(e,u) { v = G.target(e); int c = du + cost[e]; if (c < dist[v]) { if (dist[v] == MAXINT) I[v] = PQ.insert(c,v); else PQ.decrease_p(I[v],c); dist[v] = c; } } PQ.del_item(it); } } 21 / 35

65 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra: χρονική πολυπλοκότητα 22 / 35

66 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra: χρονική πολυπλοκότητα n λειτουργίες insert, empty, find_min, delete_min 22 / 35

67 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra: χρονική πολυπλοκότητα n λειτουργίες insert, empty, find_min, delete_min m λειτουργίες decrease_p 22 / 35

68 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra: χρονική πολυπλοκότητα n λειτουργίες insert, empty, find_min, delete_min m λειτουργίες decrease_p Υπόλοιπος χρόνος, εκτός των κλήσεων στην PQ, O(n + m) 22 / 35

69 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra: χρονική πολυπλοκότητα n λειτουργίες insert, empty, find_min, delete_min m λειτουργίες decrease_p Υπόλοιπος χρόνος, εκτός των κλήσεων στην PQ, O(n + m) T total = O(n + m + n (T insert + T empty + T find_min + T delete_min ) + m T decrease_p + T create + T destruct ) 22 / 35

70 Πρόβληµα ΕΣ ΑΚ Αλγόριθµος Dijkstra: ασυµπτωτική ΠΧΠ Πολυπλοκότητα Χειρότερης Περίπτωσης f_heap O(m + n log n) p_heap O(m + n log n) k_heap O(m log k n + nk log k n) bin_heap O(m log n + n log n) list_pq O(m + n 2 ) b_heap O((m + n)nm) r_heap O(m + n log M) m_heap O(m + max_dist + Μ) M = 1 + µέγιστο ακέραιο κόστος ακµής max_dist = µέγιστη απόσταση κορυφής από την s (n 1)M 23 / 35

71 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA 24 / 35

72 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Αλγόριθµοι Σ : πολύ ϐολική η αρχικοποίηση αποστάσεων µε 24 / 35

73 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Αλγόριθµοι Σ : πολύ ϐολική η αρχικοποίηση αποστάσεων µε Π.χ. ακέραια κόστη ακµών: ϕαίνεται λογικό να υλοποιήσουµε το µε MAXINT void DIJKSTRA(const graph& G, node s, const edge_array<int>& cost, node_array<int>& dist) { node_pq PQ(G); node v; edge e; } forall_nodes(v,g) dist[v] = MAXINT; dist[s] = 0; forall_nodes(v,g) PQ.insert(v,dist[v]); while (! PQ.empty()) { node v = PQ.delete_min(); forall_adj_edges(e,v) { node w = G.target(e); if ( dist[v] + cost[e] < dist[w] ) { dist[w] = dist[v] + cost[e]; PQ.decrease_p(w,dist[w]);} } } 24 / 35

74 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Προσοχή µε τους αριθµητικούς τύπους! 25 / 35

75 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Προσοχή µε τους αριθµητικούς τύπους! εν πρέπει να ξεχνάτε ότι «MAXINT + 1 = MININT» «+ 1 =» 25 / 35

76 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Προσοχή µε τους αριθµητικούς τύπους! εν πρέπει να ξεχνάτε ότι «MAXINT + 1 = MININT» «+ 1 =» Αντιπαράδειγµα 1 s v w 25 / 35

77 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Προσοχή µε τους αριθµητικούς τύπους! εν πρέπει να ξεχνάτε ότι «MAXINT + 1 = MININT» «+ 1 =» Αντιπαράδειγµα 1 s v w Η προηγούµενη υλοποίηση δουλεύει σωστά όταν όλες οι κορυφές είναι προσπελάσιµες από την s και όταν όλα τα κόστη των πλευρών είναι στο διάστηµα [0..MAXINT/n] 25 / 35

78 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA 26 / 35

79 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Πρώτη προσπάθεια σωστής υλοποίησης: εισάγει µόνο την s στην PQ και αλλάζει το µπλόκ της εντολής if void DIJKSTRA(const graph& G, node s, const edge_array<int>& cost, node_array<int>& dist) { node_pq PQ(G); node v; edge e; } forall_nodes(v,g) dist[v] = MAXINT; dist[s] = 0; PQ.insert(s,0); while (! PQ.empty()) { node v = PQ.delete_min(); forall_adj_edges(e,v) { node w = G.target(e); if ( dist[v] + cost[e] < dist[w] ) { int c = dist[v] + cost[e]; if (dist[w] == MAXINT) PQ.insert(w,c); else PQ.decrease_p(w,c); dist[w] = c; } } } 26 / 35

80 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA 27 / 35

81 Πρόβληµα ΕΣ ΑΚ Μια διαφορετική υλοποίηση της DIJKSTRA Μια ακόµη καλύτερη υλοποίηση, ανεξάρτητη αριθµητικών τύπων template <class NT> void DIJKSTRA_T(const graph& G, node s, const edge_array<nt>& cost, node_array<nt>& dist, node_array<edge>& pred) { node_pq<nt> PQ(G); node v; edge e; dist[s] = 0; PQ.insert(s,0); forall_nodes(v,g) pred[v] = nil; } while (!PQ.empty()) { node u = PQ.del_min(); NT du = dist[u]; forall_adj_edges(e,u) { v = G.opposite(u,e); // makes it work for ugraphs NT c = du + cost[e]; if (pred[v] == nil && v!= s ) PQ.insert(v,c); // v is reached for the first time else if (c < dist[v]) PQ.decrease_p(v,c); else continue; dist[v] = c; pred[v] = e; } } 27 / 35

82 Πρόβληµα ΕΣ ΑΚ Πειραµατική Αξιολόγηση της DIJKSTRA 28 / 35

83 Πρόβληµα ΕΣ ΑΚ Πειραµατική Αξιολόγηση της DIJKSTRA Μεγέθη εισόδου: m = , n {2000, 20000, }, M {100, } 28 / 35

84 Πρόβληµα ΕΣ ΑΚ Πειραµατική Αξιολόγηση της DIJKSTRA Μεγέθη εισόδου: m = , n {2000, 20000, }, M {100, } Τυχαία γραφήµατα r_heap < p_heap < f_heap 28 / 35

85 Πρόβληµα ΕΣ ΑΚ Πειραµατική Αξιολόγηση της DIJKSTRA Μεγέθη εισόδου: m = , n {2000, 20000, }, M {100, } Τυχαία γραφήµατα r_heap < p_heap < f_heap Συνθετικά Γραφήµατα: εξαναγκάζουν τον αλγόριθµο να εκτελέσει m n + 1 λειτουργίες decrease_p r_heap < p_heap < f_heap m/n πολύ µικρό και M πολύ µεγάλο p_heap < r_heap < f_heap 28 / 35

86 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Συνθετικό γράφηµµα n κορυφών και m n(n 1)/2 ακµών 29 / 35

87 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Συνθετικό γράφηµµα n κορυφών και m n(n 1)/2 ακµών Κορυφές 0, 1,..., n 1 29 / 35

88 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Συνθετικό γράφηµµα n κορυφών και m n(n 1)/2 ακµών Κορυφές 0, 1,..., n 1 n 1 ακµές (i, i + 1), 0 i < n 1, κάθε µία µε κόστος M 0 29 / 35

89 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Συνθετικό γράφηµµα n κορυφών και m n(n 1)/2 ακµών Κορυφές 0, 1,..., n 1 n 1 ακµές (i, i + 1), 0 i < n 1, κάθε µία µε κόστος M 0 Οι πρώτες m = m (n 1) ακµές της ακολουθίας (0, 2), (0, 3),..., (0, n 1), (1, 3), (1, 4),..., (1, n 1), (2, 4),.... Το κόστος c i,j της ακµής (i, j) πρέπει να είναι τέτοιο ώστε να εκτελούνται m λειτουργίες decrease_p i 1 i i+1 i+2 n 1 29 / 35

90 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 30 / 35

91 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 30 / 35

92 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Μπλέ ακµές = Σ µε ϱίζα την κορυφή 0 µετά τη διαγραφή της i από την ουρά προτεραιότητας Q, δηλ. d(i) = δ(0, i) = im, και c[0, 1,..., i 1, i, j] = im + c i,j 30 / 35

93 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Μπλέ ακµές = Σ µε ϱίζα την κορυφή 0 µετά τη διαγραφή της i από την ουρά προτεραιότητας Q, δηλ. d(i) = δ(0, i) = im, και c[0, 1,..., i 1, i, j] = im + c i,j Οι κορυφές διαγράφονται από την ουρά προτεραιότητας Q σύµφωνα µε την αρίθµησή τους, προκαλώντας τη µέγιστη δυνατή αλλαγή στην Q 30 / 35

94 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 31 / 35

95 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 31 / 35

96 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Πριν τη διαγραφή της i από την Q {i, i + 1,..., n} Q d(i) = im, και d(j) = (i 1)M + c i 1,j, j > i 31 / 35

97 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Πριν τη διαγραφή της i από την Q {i, i + 1,..., n} Q d(i) = im, και d(j) = (i 1)M + c i 1,j, Μετά τη διαγραφή της i από την Q j > i Χαλάρωση εξερχόµενων ακµών σύµφωνα µε τη σειρά (i, i + 2), (i, i + 3),..., (i, n 1), (i, i + 1) Κάτω από ποιές συνθήκες η χαλάρωση της (i, j) ϑα προκαλέσει την εκτέλεση µιας decrease_p και τη µέγιστη δυνατή αλλαγή στην Q; 31 / 35

98 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 32 / 35

99 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 32 / 35

100 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Χαλάρωση (i, j) decrease_p, αν im + c i,j < (i 1)M + c i 1,j, j > i 32 / 35

101 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Χαλάρωση (i, j) decrease_p, αν im + c i,j < (i 1)M + c i 1,j, j > i Μέγιστη αλλαγή στην Q αν πριν τη χαλάρωση d(j 1) <... < d(i + 2) < d(n 1) <... < d(j) <... < d(i + 1) µετά τη χαλάρωση d(j) < d(j 1) <... < d(i + 2) < d(n 1) <... < d(j + 1) <... < d(i + 1) 32 / 35

102 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 33 / 35

103 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 33 / 35

104 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 i i 1 i+1 n 1 i+3 i+2 Τα κόστη c i,j πρέπει να επιλεγούν έτσι ώστε im + c i,i+2 < (i 1)M + c i 1,n 1 decrease_p (i, i + 2) προξενεί την κλήση µιας c i,j < c i,j 1, i + 2 < j n 1 (i, j) προξενεί την κλήση µιας decrease_p, δηλ., οι ακµές (i, i + 3), (i, i + 4),..., (i, n 2), (i, n 1) χαλαρώνονται µε αυτή τη σειρά M = c i,i+1 < c i,n 1 (i, i + 1) προξενεί την κλήση µιας decrease_p 33 / 35

105 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 M + c i,i+2 < c i 1,n 1 M = c i,i+1 < c i,n 1 < c i,n 2 < c i,n 3 < < c i,i+3 < c i,i+2 Επιλογή των c i,j έτσι ώστε να ικανοποιούνται οι ανισότητες 34 / 35

106 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 M + c i,i+2 < c i 1,n 1 M = c i,i+1 < c i,n 1 < c i,n 2 < c i,n 3 < < c i,i+3 < c i,i+2 Επιλογή των c i,j έτσι ώστε να ικανοποιούνται οι ανισότητες Προσδιορισµός των m επιπρόσθετων ακµών 34 / 35

107 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 M + c i,i+2 < c i 1,n 1 M = c i,i+1 < c i,n 1 < c i,n 2 < c i,n 3 < < c i,i+3 < c i,i+2 Επιλογή των c i,j έτσι ώστε να ικανοποιούνται οι ανισότητες Προσδιορισµός των m επιπρόσθετων ακµών Ανάθεση κόστους αυτών των m επιπρόσθετων ακµών σε αντίστροφη σειρά 34 / 35

108 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 M + c i,i+2 < c i 1,n 1 M = c i,i+1 < c i,n 1 < c i,n 2 < c i,n 3 < < c i,i+3 < c i,i+2 Επιλογή των c i,j έτσι ώστε να ικανοποιούνται οι ανισότητες Προσδιορισµός των m επιπρόσθετων ακµών Ανάθεση κόστους αυτών των m επιπρόσθετων ακµών σε αντίστροφη σειρά Ανάθεση κόστους τελευταίας ακµής ίσο µε M / 35

109 Πρόβληµα ΕΣ ΑΚ Συνθετικό γράφηµα για την DIJKSTRA Προσδιορισµός κόστους c i,j για εύρεση ΕΣ ΑΚ από την κορυφή 0 M + c i,i+2 < c i 1,n 1 M = c i,i+1 < c i,n 1 < c i,n 2 < c i,n 3 < < c i,i+3 < c i,i+2 Επιλογή των c i,j έτσι ώστε να ικανοποιούνται οι ανισότητες Προσδιορισµός των m επιπρόσθετων ακµών Ανάθεση κόστους αυτών των m επιπρόσθετων ακµών σε αντίστροφη σειρά Ανάθεση κόστους τελευταίας ακµής ίσο µε M + 1 { ci,j αν j < n 1 c i,j = c i+1,i+3 + M + 1 αν j = n 1 34 / 35

110 Ερωτήσεις ; 35 / 35

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 6 1 / 41 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 7 1 / 42 Ενότητα 7 - Συντοµότερες ιαδροµές ΙΙ Αλγόριθµοι

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 7 1 / 48 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 8 Μέγιστη Ροή & Αριθµητική Ορθότητα Αλγορίθµων 1

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 8 1 / 44 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00 Χρήστος. Ζαρολιάγκης Τεχνολογίες Υλοποίησης Αλγορίθµων : Άσκηση 1 1 Ασκηση 1 [16.03.2016] Παράδοση : Τετάρτη 13.04.2016, 13:00 Η παρούσα άσκηση αφορά στον έλεγχο διµερότητας ενός γραφήµατος. Σκοπός της

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Αλγόριθμοι Γραφημάτων Τοπολογική Διάταξη

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 9 Μέγιστη Ροή ΙΙ Αλγόριθµος Προροής-Προώθησης &

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42 Εύρεση Ελάχιστου Μονοπατιού

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

Διαβάστε περισσότερα

Ελαφρύτατες διαδρομές

Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Κατευθυνόμενο γράφημα Συνάρτηση βάρους Ελαφρύτατη διαδρομή από το u στο v : διαδρομή με και ελάχιστο βάρος s 3 t 7 x 5 3 y z Βάρος ελαφρύτατης διαδρομής εάν

Διαβάστε περισσότερα

Αλγόριθμοι Eλάχιστα μονοπάτια

Αλγόριθμοι Eλάχιστα μονοπάτια Αλγόριθμοι Eλάχιστα μονοπάτια Μάρθα Σιδέρη Προτεινόμενη βιβλιογραφία: S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani «Αλγόριθμοι» Κλειδάριθμος 009 Κεφάλαιο. http://www.cs.berkeley.edu/~vazirani/algorithms/chap.pdf

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 9 1 / 46 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 25 Ενότητα 3 οκιµή Προγραµµάτων (Program Testing)

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Dijkstra Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Εισαγωγή στους Αλγορίθμους Ενότητα 10η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Εισαγωγή στους Αλγορίθμους Ενότητα 7η Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος Αναζήτηση Κατά Πλάτος Επιµέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γραφήµατα Μοντελοποίηση πολλών σηµαντικών προβληµάτων (π.χ. δίκτυα

Διαβάστε περισσότερα

Αλγόριθµοι Γραφηµάτων

Αλγόριθµοι Γραφηµάτων Αλγόριθµοι Γραφηµάτων Παύλος Σπυράκης Πανεπιστήµιο Πατρών Τοµέας Θεµελιώσεων και Εφαρµογών της Επιστήµης των Υπολογιστών Ερευνητικό Ακαδηµαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Γραφήµατα Μοντελοποίηση

Διαβάστε περισσότερα

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 4.2 Διαδρομές σε Γραφήματα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Πρόβλημα Οδικό Δίκτυο

Διαβάστε περισσότερα

Συντομότερες ιαδρομές

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη ιαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής Απόσταση d(u,

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 30 Απριλίου 2015 1 / 48 Εύρεση Ελάχιστου

Διαβάστε περισσότερα

Μάθημα 21: Ουρές (Queues)

Μάθημα 21: Ουρές (Queues) Queues Page 1 Μάθημα 21: Ουρές (Queues) Η ουρά (queue) είναι μια δομή δεδομένων. Η βασική λειτουργικότητα είναι η εισαγωγή στοιχείων στην πίσω θέση και η εξαγωγή-διαγραφή στοιχείων από την μπροστινή θέση.

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:

Διαβάστε περισσότερα

Συντομότερες Διαδρομές

Συντομότερες Διαδρομές Συντομότερες Διαδρομές Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη Διαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής

Διαβάστε περισσότερα

Συντομότερες ιαδρομές

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος των BellmanFord Ο αλγόριθµος του Dijkstra ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 61

Διαβάστε περισσότερα

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 12 16 2 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 13 1 με τις ακόλουθες ιδιότητες 4 14 9 7 4 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση

Διαβάστε περισσότερα

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Bellman Ford Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Bellman

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Συντομότερες Διαδρομές

Συντομότερες Διαδρομές Συντομότερη Διαδρομή Συντομότερες Διαδρομές Διδάσκοντες: Σ Ζάχος, Δ Φωτάκης Επιμέλεια διαφανειών: Δ Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κατευθυνόμενο G(V, E, w) με μήκη Μήκος

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Ελάχιστα Γεννητικά Δένδρα Ελάχιστο Γεννητικό

Διαβάστε περισσότερα

Συντομότερες ιαδρομές

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος Αναζήτηση Κατά Πλάτος ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων (π.χ. δίκτυα συνεκτικότητα,

Διαβάστε περισσότερα

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος Αναζήτηση Κατά Πλάτος Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων (π.χ. δίκτυα

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

Διαβάστε περισσότερα

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Ενότητα 10 Γράφοι (ή Γραφήµατα) Ενότητα 10 Γράφοι (ή γραφήµατα) ΗΥ240 - Παναγιώτα Φατούρου 1 Γράφοι (ή Γραφήµατα) Ένας γράφος αποτελείται από ένα σύνολο από σηµεία (που λέγονται κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές)

Διαβάστε περισσότερα

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος Αναζήτηση Κατά Πλάτος ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 5 / 46 Ενότητα 5 Γραφήµατα Γραφήµατα ϐασικές έννοιες

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 32 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Ενότητα 9η

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Εισαγωγή στους Αλγορίθμους Ενότητα 9η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Συνδετικότητα γραφήματος (graph connectivity)

Συνδετικότητα γραφήματος (graph connectivity) Συνδετικότητα γραφήματος (graph connectivity) Συνδετικότητα γραφήματος (graph connectivity) Υπάρχει μονοπάτι μεταξύ α και β; α Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές ενός

Διαβάστε περισσότερα

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Διερεύνηση Πρώτα σε Βάθος (DFS) 2. Τοπολογική Ταξινόμηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Depth-First Search Πρώτα σε Βάθος διερεύνηση (Depth-First Search) είναι

Διαβάστε περισσότερα

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο Αλγόριθμοι και Πολυπλοκότητα 3η σειρά γραπτών και προγραμματιστικών ασκήσεων CoReLab ΣΗΜΜΥ ΕΜΠ Ιανουάριος 2017 CoReLab ΣΗΜΜΥ ΕΜΠ Αλγόριθμοι και Πολυπλοκότητα Ιανουάριος 2017 1 / 53 Outline 1 Άσκηση 1:

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

Διαβάστε περισσότερα

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Αναζήτηση Κατά Βάθος Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναζήτηση Κατά Βάθος (DFS) Εξερεύνηση

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΣΜΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΚΑΙ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 3 ΘΕΜΑ: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ ΓΡΑΦΗΜΑΤΑ Επίκουρος Καθηγητής ΠΕΡΙΕΧΟΜΕΝΟ

Διαβάστε περισσότερα

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων ημήτρης Φωτάκης ιακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο 4 η Εργασία: Γενική Εικόνα Αντίστοιχη βαθμολογικά και ποιοτικά με την

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 5 1 / 52 Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Γράφοι: κατευθυνόμενοι και μη

Γράφοι: κατευθυνόμενοι και μη Γράφοι: κατευθυνόμενοι και μη (V,E ) (V,E ) Γράφος (ή γράφημα): ζεύγος (V,E), V ένα μη κενό σύνολο, Ε διμελής σχέση πάνω στο V Μη κατευθυνόμενος γράφος: σχέση Ε συμμετρική V: κορυφές (vertices), κόμβοι

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K.

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K. Δοµές Δεδοµένων 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης Βασίζεται στις διαφάνειες των R. Sedgewick K. Wayne Περίληψη Συνδετικότητα δικτύου Αφαιρέσεις Συνδεδεµένα συστατικά Αφηρηµένη

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 20: Τοπολογική Ταξινόμηση Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ολοκλήρωση Αλγορίθμων Διάσχισης Γράφων (Από Διάλεξη 19) Τοπολογική Ταξινόμηση Εφαρμογές, Παραδείγματα, Αλγόριθμοι

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 3η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Απλοί Αλγόριθμοι & Δομές Δεδομένων Δύο Απλές

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΑΣΚΗΣΗ 4 Σωροί, Γράφοι Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής: 05/04/2013 Ημερομηνία

Διαβάστε περισσότερα

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Τοπολογική Ταξινόμηση - Εφαρμογές, Παραδείγματα, Αλγόριθμοι

Διαβάστε περισσότερα

Ελάχιστα Γεννητορικά ένδρα

Ελάχιστα Γεννητορικά ένδρα λάχιστα Γεννητορικά ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος του Prim και ο αλγόριθµος του Kruskal για εύρεση λάχιστων Γεννητορικών ένδρων ΠΛ 23 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10γ: Αλγόριθμοι Γραφημάτων- Διερεύνηση Πρώτα σε Βάθος (DFS)- Τοπολογική Ταξινόμηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Τα συντομότερα Μονοπάτια(Shortest Paths) A 2 7 2

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).

Διαβάστε περισσότερα

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων Εισαγωγή στην Επιστήμη των Υπολογιστών ο εξάμηνο ΣΗΜΜΥ Ενότητα : Αλγόριθμοι γράφων και δικτύων Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής, Δημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών

Διαβάστε περισσότερα

m 1 min f = x ij 0 (8.4) b j (8.5) a i = 1

m 1 min f = x ij 0 (8.4) b j (8.5) a i = 1 KΕΦΑΛΑΙΟ 8 Προβλήµατα Μεταφοράς και Ανάθεσης 8. ΕΙΣΑΓΩΓΗ Μια ειδική κατηγορία προβληµάτων γραµµικού προγραµµατισµού είναι τα προβλήµατα µεταφοράς (Π.Μ.), στα οποία επιζητείται η ελαχιστοποίηση του κόστους

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 2 1 / 26 Ενότητα 2 Τεχνολογίες Υλοποίησης Αλγορίθµων

Διαβάστε περισσότερα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

Διαβάστε περισσότερα

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler Γράφοι (συνέχεια) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 6η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Γραφήματα Βασικές Έννοιες και Εφαρμογές Βασικοί

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) : Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος και Γέφυρα του (με αφετηρία τον ) : Ακμή που περιέχεται σε κάθε μονοπάτι από το στο s a b c d e f g h i j k l Μας δίνεται ένα δίκτυο (κατευθυνόμενο

Διαβάστε περισσότερα

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3 Αλγόριθμοι και Πολυπλοκότητα 3η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2019 (CoReLab - NTUA) Αλγόριθμοι - 3η σειρά ασκήσεων Ιανουάριος 2019 1 / 54 Outline 1 Άσκηση

Διαβάστε περισσότερα

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση Αλγεβρική Μορφή Γενική Μορφή Γραµµικού Προγραµµατισµού n µεταβλητών και m περιορισµών Εστω πραγµατικοί αριθµοί a ij, b j, c i R µε 1 i m, 1 j n Αλγεβρική Μορφή Γενική Μορφή Γραµµικού Προγραµµατισµού n

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38 4η Γραπτή Άσκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Άσκηση 7 Φεβρουαρίου 2017 1 / 38 Άσκηση 1 Πρέπει να βρούμε όλες τις καλές προτάσεις φίλων για τον

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 5 ΣΥΝΕΚΤΙΚΟΤΗΤΑ Σταύρος Δ. Νικολόπουλος 2017-18 www.cs.uoi.gr/~stavros Συνεκτικότητα Έννοια της συνδεσμικότητας: «Ποσότητα συνδεσμικότητας»...

Διαβάστε περισσότερα

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα. Άσκηση 1 Ψευδοκώδικας Kruskal Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα. Αντιστοιχίζω τους κόμβους με αριθμούς από το 0 έως το 4. 2Η ΕΡΓΑΣΙΑ ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ - MAY 2018

Διαβάστε περισσότερα

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2017-2018. Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Αναζήτηση Κατά Βάθος Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναζήτηση Κατά Βάθος (DFS) Εξερεύνηση

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 / Απληστοι (Greedy) Αλγόριθµοι

Διαβάστε περισσότερα

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική

Διαβάστε περισσότερα

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 26: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας -Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι

Διαβάστε περισσότερα

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.

Διαβάστε περισσότερα

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

Διαβάστε περισσότερα

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ (Transportation Problems) Βασίλης Κώστογλου E-mail: vkostogl@it.teithe.gr URL: www.it.teithe.gr/~vkostogl Περιγραφή Ένα πρόβλημα μεταφοράς ασχολείται με το πρόβλημα του προσδιορισμού του καλύτερου δυνατού

Διαβάστε περισσότερα