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

Σχετικά έγγραφα
Αλγόριθμοι και πολυπλοκότητα Graphs

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

Διοικητική Λογιστική

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

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

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

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

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μάρκετινγκ Αγροτικών Προϊόντων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Διοικητική Λογιστική

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Ψηφιακή Επεξεργασία Εικόνων

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

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

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

Βάσεις Περιβαλλοντικών Δεδομένων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Τεχνικό Σχέδιο - CAD

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Τεχνικό Σχέδιο - CAD

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μάρκετινγκ Αγροτικών Προϊόντων

Μηχανολογικό Σχέδιο Ι

Μάρκετινγκ Αγροτικών Προϊόντων

ΗΛΕΚΤΡΟΝΙΚΗ Ι Ενότητα 5

Διδακτική Πληροφορικής

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Διαχείριση Πολιτισμικών Δεδομένων

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Οριζόντια διερεύνηση

Οικονομική Γεωργικών Εκμεταλλεύσεων

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Κβαντική Επεξεργασία Πληροφορίας

Μάρκετινγκ. Ενότητα 2: Αξία για τους Πελάτες

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Διοικητική Λογιστική

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διδακτική Πληροφορικής

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

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

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στην Πληροφορική

Ψηφιακή Επεξεργασία Εικόνων

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

Αγροτικός Τουρισμός. Ενότητα 9 η : Εκπαιδευτικές τεχνικές στον τουρισμό. Όλγα Ιακωβίδου Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Τεχνολογία Πολιτισμικού Λογισμικού

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Οικονομική Γεωργικών Εκμεταλλεύσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Οργάνωση και Διοίκηση Πωλήσεων Ενότητα 4η: Καθορισμός Περιοχής Πώλησης (sales territory)

Βέλτιστος Έλεγχος Συστημάτων

Δομές Δεδομένων Ενότητα 1

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

Δομημένος Προγραμματισμός

Διδακτική Πληροφορικής

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Διδακτική των εικαστικών τεχνών Ενότητα 3

Διοικητική Λογιστική

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Transcript:

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.. 3

Γράφοι SFO ORD LAX DFW Γράφοι 4

Περιγραφή και Υλικό Ανάγνωσης Γράφοι ( 6.1) Ορισμός Εφαρμογές Ορολογία Ιδιότητες ADT Δομές δεδομένων για γράφους ( 6.2) Δομή λίστας ακμών Δομή λίστας γειτνίασης Δομή πίνακα γειτνίασης Γράφοι 5

Γράφος Ένας γράφος είναι ένα ζευγάρι (V, E), όπου V είναι ένα σύνολο κόμβων, ονομαζώμενων κορυφών E είναι ένα σύνολο από ζεύγη κορυφών, ονομαζώμενων ακμών Οι κορυφές και οι ακμές είναι θέσεις και αποθηκεύουν στοιχεία Παράδειγμα: Μια κορυφή αναπαριστά ένα αεροδρόμιο και αποθηκεύει ένα αεροπορικο κωδικό τριών γραμμάτων Μια ακμή αναπαριστά μια διαδρομή μεταξύ δύο αεροδρομίων και αποθηκεύει την απόσταση της διαδρομής PVD ORD SFO LGA HNL LAX DFW MIA Γράφοι 6

Τύποι ακμών Κατευθυνόμενες ακμές Ταξινομημένα ζευγάρια κορυφών (u,v) Η πρώτη κορυφή u είναι είναι η αρχή Η δέυτερη κορφή v είναι ο προορισμός π.χ., μια πτήση Μη κατευθυνόμενες ακμές Μη ταξινομημένα ζευγάρια κορυφών (u,v) π.χ., η διαδρομή μιας πτήσης Κατευθυνόμενος γράφος Όλες οι ακμές είναι κατευθυνόμενες π.χ., δίκτυο πτήσεων Μη κατευθυνόμενος γράφος Όλες οι ακμές είναι μη κατευθυνόμενες π.χ., δίκτυο διαδρομών ORD ORD flight AA 1206 849 miles PVD PVD Γράφοι 7

Εφαρμογές Ηλεκτρονικά κυκλώματα Printed circuit board Integrated circuit Δλικτυα Μεταφορών Highway network Flight network Δίκτυα Υπολογιστών Local area network Internet Web Βάσεις Δεδομένων Entity-relationship diagram cslab1a cslab1b math.brown.edu cs.brown.edu brown.edu qwest.net att.net cox.net John Paul David Γράφοι 8

Ορολογία Τελικές κορυφές (ή τελικά σημεία (endpoints)) μιας ακμής U και V είναι τα endpoints της a Ακμές επικείμενες σε μια κορυφή Οι a, d, και b είναι επικείμενες στη V Γειτονικές κορυφές Οι U και V είναι γειτονικές Βαθμός μιας κορυφής U a c V d W b e X g h i Z j Η X έχει βαθμό 5 Παράλληλες ακμές f Y Οι h και i είναι παράλληλες ακμές Self-loop Το j είναι ένα self-loop Γράφοι 9

Ορολογία (συν.) Μονοπάτι Ακολουθία εναλλασόμενων κορυφών και ακμών Αρχίζει με μια κορυφή Τελειώνει με μια κορυφή Τα endpoints κάθε ακμή προηγούνται και ακολουθούν την ακμή Απλό μονοπάτι Μονοπάτι του οποίου όλες οι κορυφές και οι ακμές είναι διακριτές Παράδειγματα P 1 =(V,b,X,h,Z) είναι ένα απλό μονοπάτι P 2 =(U,c,W,e,X,g,Y,f,W,d,V) είναι ένα μονοπάτι που δεν είναι απλό U V a b c d P 2 W P 1 X Z h e g f Y Γράφοι 10

Ορολογία (συν.) Κύκλος Κυκλική ακολουθία εναλλασόμενων κορυφών και ακμών Τα endpoints κάθε ακμής προηγούνται και ακολουθούν την ακμή Απλός κύκλος Κύκλος του οποίου όλες οι κορυφές και οι ακμές είναι διακριτές U a c C 2 V d W e b X g C 1 h Z Παραδείγματα C 1 =(V,b,X,g,Y,f,W,c,U,a, ) είναι ένας απλός κύκλος f Y C 2 =(U,c,W,e,X,g,Y,f,W,d,V,a, ) είναι ένας κύκλος που δεν είναι απλός Γράφοι 11

Ιδιότητες Ιδιότητα 1 S v deg(v) = 2m Απόδειξη: κάθε endpoint μετριέται δύο φορές Ιδιότητα 2 Σε ένα μη κατευθυνόμενο γράφο χωρίς selfloops και πολλαπλές ακμές (multiple edges) m n (n - 1)/2 Απόδειξη: κάθε κορυφή έχει βαθμό το πολύ (n - 1) Σημείωση n m deg(v) αριθμός κορυφών αριθμός ακμών βαθμός κορυφής v Παράδειγμα n = 4 m = 6 deg(v) = 3 Γράφοι 12

Κύριες μέθοδοι του ΑΤΔ του Γράφου Κορυφές και ακμές Είναι θέσεις Αποθηκεύουν στοιχεία Accessor methods avertex() incidentedges(v) endvertices(e) isdirected(e) origin(e) destination(e) opposite(v, e) areadjacent(v, w) Update methods insertvertex(o) insertedge(v, w, o) insertdirectededge(v, w, o) removevertex(v) removeedge(e) Generic methods numvertices() numedges() vertices() edges() Γράφοι 13

Δομή Λίστας Ακμών Αντικείμενο Κορυφής στοιχείο Αναφορά στη θέση στην ακολουθία κορυφών Αντικείμενο ακμής στοιχείο Αρχής αντικείμενο Κορυφής Προορισμός αντικείμενο Κορυφής Αναφορά στη θέση στην ακολουθία ακμών Ακολουθία κορυφών Ακολουθία των αντικειμένων Κορυφής Ακολουθία ακμών Ακολουθία των αντικειμένων ακμών u a c b d v w z u v w z a b c d Γράφοι 14

Δομή Λίστας Γειτνίασης Δομή λίστας ακμών Ακολουθία πρόσπτωσης για κάθε κορυφή Ακολουθία από αναφορές σε αντικείμενα κορυφών προσπτίπτοντων ακμών Augmented edge objects Αναφορές σε συνδεόμενες θέσεις σε ακολουθίες προσπτώσεως για τελικές κορυφές a v b u w u v w a b Γράφοι 15

Δομή Πίνακα Γειτνίασης Δομή λίστας ακμών Augmented vertex objects Ακέραιο κλειδί (index) συνδεόμενο με κάθε κορυφή Διδιάστατος πίνακας γειτνίασης Αναφορά σε αντικείμενα ακμών για γειτονικές κορυφές Null για μη γειτονικές κορυφές u a 0 u 1 v 2 w a v b 0 1 2 0 1 2 w b Γράφοι 16

Απόδοση n κορυφές m ακμές χωρίς παράλληλες ακμές Edge List Adjacency List Adjacency Matrix χωρίς self-loops 7/9/2015 10:58 AM Space n + m n + m n 2 incidentedges(v) m deg(v) n areadjacent (v, w) m min(deg(v), deg(w)) 1 insertvertex(o) 1 1 n 2 insertedge(v, w, o) 1 1 1 removevertex(v) m deg(v) n 2 removeedge(e) 1 1 1 Γράφοι 17

Τέλος Ενότητας