Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή



Σχετικά έγγραφα
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο. Γραφήµατα. (Graphs)

Γράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V

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

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι είναι οι γράφοι; Εφαρµογές των γράφων Γράφοι

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι είναι οι γράφοι; Εφαρµογές των γράφων Γράφοι

Κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Πολυγραφήµατα (Multigraphs)

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Στοιχεία Θεωρίας Γραφηµάτων (1)

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Σχέσεις, Ιδιότητες, Κλειστότητες

f e Γράφημα (Graph) Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ

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

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

u v 4 w G 2 G 1 u v w x y z 4

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

2 ) d i = 2e 28, i=1. a b c

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

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

(elementary graph algorithms)

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

HY118-Διακριτά Μαθηματικά

HY118- ιακριτά Μαθηµατικά

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

Παράδειγµα (4) Στοιχεία Θεωρίας Γραφηµάτων (2) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς. v 2. u 3.

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

Θεωρία Γραφημάτων 1η Διάλεξη

Θεωρία Γραφημάτων 1η Διάλεξη

d(v) = 3 S. q(g \ S) S

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Network Science. Θεωρεία Γραφηµάτων (2)

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Στοιχεία Θεωρίας Γραφηµάτων (2)

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων / γραφήματα. Τι είναι οι γράφοι; Εφαρμογές των γράφων. 23-Γράφοι

q(g \ S ) = q(g \ S) S + d = S.

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

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

ΠΛΗ20 ΕΝΟΤΗΤΑ 5: ΘΕΩΡΙΑ ΓΡΑΦΗΜΑΤΩΝ/2. Μάθηµα 5.1: Παραστάσεις Γραφηµάτων. ηµήτρης Ψούνης

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

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

ΑΝΤΙΣΤΟΙΧΗΣΕΙΣ ΟΡΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙOΥΝΤΑΙ ΣΤΟΥΣ ΤΟΜΟΥΣ Α ΚΑΙ Β ΤΗΣ ΘΕ «ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ» Ένα γράφημα αποτελείται από ένα σύνολο 94.

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Εισαγωγή σε βασικές έννοιες. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

βασικές έννοιες (τόμος Β)

Στοιχεία Θεωρίας Γραφηµάτων (3)

Απαρίθµηση Μονοπατιών. Στοιχεία Θεωρίας Γραφηµάτων (3) Μονοπάτια και Κυκλώµατα Euler. Ορέστης Τελέλης

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Θεωρία Γραφημάτων 6η Διάλεξη

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

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

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

Εισαγωγή στην Επιστήμη των Υπολογιστών

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Γλώσσες & Τεχνικές 4 ο Εξάμηνο. - Ενότητα 9 - Δημοσθένης Σταμάτης Τμήμα Πληροφορικής

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

... a b c d. b d a c

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα

Εισαγωγή στη Θεωρία Γράφων

Αλγόριθμοι για Ασύρματα Δίκτυα. Θεωρία Γραφημάτων

Θεωρία Γραφημάτων 2η Διάλεξη

Θεωρία Γράφων - Εισαγωγή

jτο πλήθος των ταξιδιών που κάνει η αεροσυνοδός µέχρι την j ηµέρα. Σχηµατίζω µία ακολουθία που αποτελείται από τα a.

2. Εισαγωγή στην βιβλιοθήκη igraph. δικτύων - γραφημάτων. δικτύων - γραφημάτων. δικτύων - γραφημάτων. δικτύων - γραφημάτων

2. Εισαγωγή στην βιβλιοθήκη igraph

Διάλεξη 7: X Y Σχήμα 7.2: Παράδειγμα για το Πόρισμα 7.2, όπου: 1 = {1, 2, 5}, 2 = {1, 2, 3}, 3 = {4}, 4 = {1, 3, 4}. Θ

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

Θεωρία Γραφημάτων 2η Διάλεξη

υαδικό έντρο Αναζήτησης (BSTree)

Κατευθυνόμενα και μη κατευθυνόμενα γραφήματα

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Συνεκτικότητα και Δισυνεκτικότητα. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

e 2 S F = [V (H), V (H)]. 3-1 e 1 e 3

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

Γραφήματα. Κεφάλαιο Εισαγωγικές έννοιες Ορισμός

S A : N G (S) N G (S) + d S d + d = S

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

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

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

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

Μονοπάτια και Κυκλώµατα Euler. Στοιχεία Θεωρίας Γραφηµάτων (3,4) Παραδείγµατα. Κριτήρια Υπαρξης.

Αλγόριθμοι και πολυπλοκότητα Graphs

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

Transcript:

Εργαστήριο 10 Γράφηµα (Graph) Εισαγωγή Στην πληροφορική γράφηµα ονοµάζεται µια δοµή δεδοµένων, που αποτελείται από ένα σύνολο κορυφών ( vertices) (ή κόµβων ( nodes» και ένα σύνολο ακµών ( edges). Ενας επίσηµος ορισµός είναι ο ακόλουθος : Ορισµός 10.1. Εστω το µη κενό και πεπερασµένο σύνολο V µε n διακεκριµένα στοιχεία V = {v 1,...,v n }, και E ένα σύνολο µε m 0 µη διατεταγµένα Ϲεύγη e ij = {v i,v j }, i j, στοιχείων του V. Τότε το διατεταγµένο Ϲεύγος G = (V, E) ονοµάζεται µη κατευθυνόµενο γράφηµα ( undirected graph) ή απλώς γράφηµα. Κάθε στοιχείο v i του V είναι µία κορυφή και κάθε στοιχείο e ij του E είναι µία ακµή. Παρατηρούµε ότι για m = 0 το σύνολο E των ακµών είναι κενό, δηλαδή ένα γράφηµα µπορεί να αποτελείται µόνο από κορυφές. Τάξη ( order) ενός γραφήµατος ονοµάζουµε το πλήθος των κορυφών του (δηλαδή το n), ενώ µέγεθος ( size) ονοµάζουµε το πλήθος των ακµών του (δηλαδή το m). Ενα γράφηµα µπορεί να παρασταθεί γεωµετρικά µε ένα διάγραµµα, και υπάρχουν άπειροι τρόποι να απεικονιστεί, αλλάζοντας απλά την ϑέση των κορυφών στο επίπεδο. Μία περίπτωση Σχήµα 10.1: Παράδειγµα απεικόνισης του γραφήµατος G(V, E) µε V = {α, β, γ, δ, ǫ} και E = {{α, β}, {α, ǫ}, {β, γ}, {β, ǫ}, {γ, δ}, {δ,ǫ}} ϕαίνεται στο σχή- µα 10.1. ύο κορυφές v i,v j ονοµάζονται διπλανές (adjacent) όταν υπάρχει ακµή e ij = {v i,v j } που να τις έχει άκρα. ύο κορυφές που δεν είναι γραφήµατος διπλανές ονοµάζονται ανεξάρτητες ( independent). Ετσι στο σχήµα 10.1 η κορυφές α και ǫ είναι διπλανές ενώ οι β και δ ανεξάρτητες. Βαθµό ( degree) µιας κορυφής ονοµάζουµε το πλήθος των διπλανών κορυφών της, ή αλλιώς το πλήθος των ακµών που πρόσκεινται στην κορυφή. Ετσι στο ίδιο σχήµα 10.1 ο ϐαθµός της κορυφής α είναι 2, και γράφεται deg(α) = 2, ενώ της β είναι 3. Μια κορυφή ονοµάζεται άρτια ή περιττή ανάλογα µε το αν ο ϐαθµός της είναι άρτιος ή περιττός. Μία κορυφή v i µε ϐαθµό deg(v i ) = 0 ονοµάζεται µεµονωµένη (isolated), ενώ αν deg(v i ) = 1 η v i ονοµάζεται τελική κορυφή (end vertex). Εάν ένα γράφηµα περιλαµβάνει όλους τους δυνατούς συνδυασµούς ακµών ανάµεσα στις κορυφές του, τότε ονοµάζεται πλήρες γράφηµα (complete graph). Στην συνέχεια δίνουµε ορισµένους περαιτέρω ορισµούς γύρω από την έννοια του γραφήµατος. Ενα γράφηµα U είναι υπογράφηµα ( subgraph) ενός γραφήµατος G, όταν όλες οι κορυφές και ακµές του είναι κορυφές και ακµές του G. Το G ονοµάζεται υπεργράφος (supergraph) του U. 46

Σχήµα 10.2: κορυφής γ ιαγραφή της Η πράξη της διαγραφής ενός γνήσιου υποσυνόλου S του συνόλου των κορυφών V ενός γραφήµατος G(V, E) παράγει ένα υπογράφη- µα, που περιέχει τις κορυφές του G, οι οποίες δεν ανοίκουν στο S και τις ακµές του G, οι οποίες δεν έχουν ως άκρα καµµία από τις διαγραµµένες κορυφές. Ετσι, αν από το γράφηµα του σχήµατος 10.1 διαγράψουµε το υποσύνολο S = {γ} ϑα πάρουµε το γράφηµα του σχήµατος 10.2. Η πράξη της διαγραφής µπορεί να εφαρµοστεί και για τις ακ- µές ενός γραφήµατος. Η διαγραφή ενός γνήσιου υποσυνόλου P του συνόλου E των ακµών ενός γραφήµατος V (V, E) παράγει ένα υπογράφηµα του V, που περιέχει όλες τις κορυφές του V και όλες τις ακµές που δεν ανοίκουν στο P. Παίρνοντας πάλι ως παράδειγµα το γράφηµα του σχήµατος 10.1, µε διαγραφή του υποσυνόλου P = {{β, γ}} από το E παίρνουµε το υπογράφηµα του σχήµατος 10.3. Παρατηρούµε, λοιπόν, ότι η πράξη της διαγραφής κορυφών από γράφηµα, εκτός από τις κορυφές αποµακρύνει και τις προσκείµενες ακµές, ενώ αντίθετα η διαγραφή ακµών αφήνει τις κορυφές ανέπαφες, ακόµα κι αν κάποιες µετατρέπονται µ αυτόν τον τρόπο σε µεµονωµένες. Αντιστρόφως, µπορούµε να εφαρµόσουµε την πράξη της προσθήκης κορυφών ή ακµών σε έναν γράφηµα, µε το γράφηµα που προκύπτει να είναι υπεργράφηµα του αρχικού. Ετσι µε την προσθήκη της ακµής {β, γ} στο γράφηµα του σχήµατος 10.3 παίρνουµε τον γράφο του σχήµατος 10.1. Οι ακόλουθες έννοιες αναφέρονται στην δοµή ενός γραφήµατος. Ονοµάζουµε περίπατο ( walk) σε έναν γράφηµα G µία ακολουθία κο- ϱυφών του γραφήµατος, της µορφής W = v 0,v 1,v 2,...,v n και λέµε ότι έχει µήκος n. Για παράδειγµα, ο περίπατος W 1 = α, ǫ,δ στο γράφηµα του σχήµατος 10.3 έχει µήκος 3. Ενας περίπατος ονοµάζεται µονοπάτι ( path) όταν καµµία κορυφή δεν επαναλαµβάνεται. Ετσι ο περίπατος W 1 είναι και µονοπάτι. Απόσταση ( distance) µεταξύ δύο κορυφών ονοµάζουµε το µήκος του συντοµότερου δυνατού µονοπατιού που συνδέει τις κορυφές αυτές. Στο προηγούµενο παράδειγµα το µήκος του W 1 είναι και Σχήµα 10.3: ιαγραφή της η απόσταση µεταξύ των κορυφών α και δ. Κύκλος (cycle) είναι ένας περίπατος v 0,v 1,v 2,...,v n για τον οποίο ισχύουν n 3, v 0 = v n και v i v j, i j, i, j = 1,...,n. Ο περίπατος W 2 = α, ǫ, β,α είναι ένας κύκλος. Μία κορυφή x ενός ακµής ϐ,γ γραφήµατος G ονοµάζεται συνδεδεµένη µε µία άλλη κορυφή y, όταν το G περιέχει ένα τουλάχιστον µονοπάτι από την κορυφή x στην κορυφή y. Κατευθυνόµενα γραφήµατα Υπάρχουν περιπτώσεις δικτύων που δεν µπορούν να µοντελοποιηθούν ως απλά γραφήµατα, π.χ. οι δρόµοι ενός οδικού δικτύου δεν µπορούν να παρασταθούν επαρκώς ως κορυφές ενός γραφήµατος. Σε τέτοιες περιπτώσεις µπορούν να χρησιµοποιηθούν τα κατευθυνόµενα γραφήµατα ( directed graphs), τα οποίοι διαφέρουν στο ότι οι ακµές τους είναι διατεταγµένα Ϲεύγη αντί για απλά διµελή σύνολα. Ενας ορισµός είναι ο ακόλουθος : Ορισµός 10.2. Ενα κατευθυνόµενο γράφηµα D(V, A) αποτελείται από ένα πεπερασµένο µη κενό σύνολο κορυφών V και ένα σύνολο A διατεταγµένων Ϲευγών (x,y), x, y V, που ονοµάζονται τόξα (arcs). 47

Μία απεικόνιση του κατευθυνόµενου γράφήµατος D(V, A) µε V = {α,β, γ, δ,ǫ} και A = {(α, β), (β, γ), (δ,α), (δ,γ), (ǫ, α), (ǫ, β), (ǫ, δ)} ϕαίνεται στο σχήµα 10.4. Αν (x, y) είναι ένα τόξο ενός κατευθυνόµενου γραφήµατος, τότε ονοµάζουµε το x αρχή του τόξου και το y πέρας ή τέλος του τόξου. Το πλήθος των τόξων που εχουν µία κορυφή v ως αρχή ονοµάζεται έξω ϐαθµός (out degree) της κορυφής και συµβολίζεται µε deg + (v). Το πλήθος των τόξων που έχουν µία κορυφή ώς πέρας ονοµάζεται έσω ϐαθµός (in degree) της κορυφής και συµβολίζεται µε deg (v). Ο ϐαθµός µιας κορυφής ενός κατευθυνόµενου γραφήµατος συµβολίζεται πάλι µε deg(v) και ισούται µε το άθροισµα των έσω και έξω ϐαθµών : deg(v) = deg + (v)+deg (v). Ετσι στο κατευθυνόµενο γράφηµα του Σχήµα 10.4: Κατευθυνόµενο σχήµατος 10.4 για την κορυφή α ισχύει deg(α) = 3, µε deg + (α) = 1 γράφηµα και deg (α) = 2. Μία κορυφή v ενός κατευθυνόµενου γραφήµατος ονοµάζεται πηγή (source) όταν ισχύει deg (v) = 0, και αποδέκτης (sink) όταν deg + (v) = 0. Τέλος, ένα µη κατευθυνόµενο γράφηµα είναι µία ειδική περίπτωση κατευθυνόµενου γραφήµατος, καθώς κάθε ακµή e = {x,y} του µη κατευθυνόµενου γραφήµατος µπορεί να απεικονιστεί µε δύο τόξα a 1 = (x,y) και a 2 = (y, x). Γραφήµατα µε ϐάρη Πολλές εφαρµογές της ϑεωρίας γραφηµάτων απαιτούν την αντιστοίχιση ενός ϐάρους ( weight) σε κάθε κορυφή ή ακµή του γραφήµατος. Στην περίπτωση αυτή µιλάµε για γράφηµα µε ϐάρη ( weighted graph). Ανάλογα µε το είδος της εφαρµογής το ϐάρος µπορεί να είναι κόστος, χωρητικότητα, απόσταση κ.λπ. Οταν τα ϐάρη αποδίδονται στις κορυφές του γραφήµατος (κατευθυνόµενου ή µη) µιλάµε για γράφηµα µε ϐάρη στις κορυφές ( vertex weighted graph), ενώ όταν αποδίδονται στις ακµές (ή στα τόξα ενός κατευθυνόµενου γραφήµατος) µιλάµε για γράφηµα µε ϐάρη στις ακµές ( edge weighted graph) (ή κατευθυνόµενο γράφηµα µε ϐάρη στα τόξα ( arc weighted directed graph)). Ενα κατευθυνόµενο γράφηµα µε ϐάρη στα τόξα µερικές ϕορές καλείται δίκτυο ( network). Κατασκευή γραφηµάτων στον υπολογιστή Τα γραφήµατα µπορούν να κατασκευαστούν υπολογιστικά µε δύο ϐασικούς τρόπους : Με χρήση µήτρας γειτνίασης ( adjacency matrix) ή Σχήµα 10.5: Απεικόνιση γραφήµατος µε µήτρα και λίστα γειτνίασης 48

Με χρήση λίστας γειτνίασης ( adjacency list). Η µήτρα γειτνίασης ενός γραφήµατος G(V,E) µπορεί να κατασκευαστεί µε έναν πίνακα A n n, όπου n η τάξη του γρφήµατος και όπου : { 1 αν (v i,v j ) E A[i,j] = 0 διαφορετικά Η λίστα γειτνίασης ενός γραφήµατος G κατασκευάζεται δηµιουργώντας µία λίστα για κάθε κορυφή του γραφήµατος, που περιέχει όλες τις διπλανές σε αυτήν κορυφές. Ετσι, το γράφηµα του σχήµατος 10.1 µπορεί να απεικονιστεί µε µήτρα και λίστα όπως ϕαίνεται στο σχήµα 10.5. Ασκηση 10.1 Κατασκευάστε ένα κατευθυνόµενο γράφηµα δηµιουργώντας τις παρακάτω κλάσεις : GraphVertex class, η οποία περιγράφει µία κορυφή ενός γραφήµατος, GraphArc class, η οποία περιγράφει ένα τόξο και SimpleDirectedGraph class, που υλοποιεί το DirectedGraph interface Graph.java public interface Graph extends DataStructure { <p> Inserts a vertex in the graph public void addvertex ( Object vertex ) ; <p> Deletes a vertex from the graph together with a l l connected arcs public boolean deletevertex ( Object vertex ) ; <p> Returns the number of vertices in the graph public int order ( ) ; <p> Returns the number of arcs or edges in the graph 49

public int graphsize ( ) ; <p> Returns the number of arcs or edges connected to the given vertex public int degreeof ( Object vertex ) ; <p> Returns true i f the given vertex e x i s t s in the graph public boolean isvertex ( Object vertex ) ; } DirectedGraph.java public interface DirectedGraph extends Graph { <p> Inserts an arc in the graph by specifying i t s start and end vertices public void addarc ( Object startvertex, Object endvertex ) ; <p> Deletes an arc from the graph public boolean deletearc ( Object startvertex, Object endvertex ) ; <p> Deletes a l l arcs starting from the given vertex @return boolean public boolean deleteallarcsfrom ( Object vertex ) ; 50

<p> Deletes a l l arcs pointing to the given vertex @return boolean public boolean deleteallarcsto ( Object vertex ) ; <p> Returns the number of arcs s t a r t i n g from the given vertex public int outdegreeof ( Object vertex ) ; <p> Returns the number of arcs ending at the given vertex public int indegreeof ( Object vertex ) ; <p> Returns true i f the given ordered pair ( st a rt, end ) constitues an existing arc in the graph public boolean isarc ( Object startvertex, Object endvertex ) ; <p> Returns the undirected version of t h i s graph @return UndirectedGraph public UndirectedGraph toundirected ( ) ; } Ασκηση 10.2 Κατασκευάστε ένα µη κατευθυνόµενο γράφηµα δηµιουργώντας την παρακάτω κλάση : SimpleUndirectedGraph class, που υλοποιεί το UndirectedGraph interface 51