Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Σχετικά έγγραφα
Κατανεμημένα Συστήματα Ι

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

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

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 4: Εκλογή Προέδρου σε Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Κατανεμημένα Συστήματα. Javascript LCR example

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

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

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

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

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Μη γράφετε στο πίσω μέρος της σελίδας

Διάλεξη 11: Αιτιότητα Διάταξη Γεγονότων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα να επικοινωνούν µεταξύ τους.

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Σκοπός του µαθήµατος. Κατανεµηµένα συστήµατα. Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

9. Συστολικές Συστοιχίες Επεξεργαστών

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

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

3η Σειρά Γραπτών Ασκήσεων

Τυχαιοκρατικοί Αλγόριθμοι

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Δυναμικός προγραμματισμός για δέντρα

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

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

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

E(G) 2(k 1) = 2k 3.

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Σκοπός του µαθήµατος. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

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

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

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

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

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

ΚΕΦΑΛΑΙΟ 3: Τοπολογίες Δικτύων Εισαγωγή

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Θεωρία και Αλγόριθμοι Γράφων

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

οµήτης παρουσίασης Marzullo και Neiger αλγόριθµος Παράδειγµα Distributed Debugging Εισαγωγικά

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

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

Άπληστοι Αλγόριθµοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Άπληστοι Αλγόριθµοι 1

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Μεταθέσεις και πίνακες μεταθέσεων

ΚΕΦΑΛΑΙΟ 2: Ημιαπλοί Δακτύλιοι

Αλγόριθμοι Κατανεμημένων Συστημάτων

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

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

Διδάσκων: Κωνσταντίνος Αντωνής Δρ. Μηχανικός Η/Υ & Πληροφορικής Πανεπιστημίου Πατρών

Transcript:

Κ Σ Ι Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS Παναγιώτα Παναγοπούλου 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts) Ο αλγόριθμος LCR είναι ένας αλγόριθμος εκλογής αρχηγού σε ένα σύγχρονο κατανεμημένο δίκτυο τοπολογίας δακτυλίου. Θεωρούμε ότι οι n διεργασίες είναι αριθμημένες από 0 έως n 1 σύφωνα με τη φορά των δεικτών του ρολογιού (δεξιόστροφα). Έτσι, κάθε κόμβος (διεργασία) i {0, 1,..., n 1} του δικτύου έχει εισερχόμενο γείτονα τον i 1 και εξερχόμενο γείτονα τον i+1 (η αρίθμηση γίνεται modulo n). Οι διεργασίες έχουν μοναδικές ταυτότητες (UIDs), οι οποίες εν γένει δεν σχετίζονται με τους δείκτες τους i. Συμβολίζουμε με u i το UID της διεργασίας i. Ο αλγόριθμος LCR εκλέγει ως αρχηγό τη διεργασία i max {0, 1,..., n 1} που έχει το μεγαλύτερο UID, δηλαδή u imax u i i {0, 1,..., n 1}. Συμβολίζουμε με u max το μέγιστο UID στο δίκτυο, δηλαδή u max = u imax. 1.1 Περιγραφή του αλγορίθμου LCR Άτυπη περιγραφή του αλγορίθμου LCR. Κάθε διεργασία στέλνει το UID της στον εξερχόμενο γείτονά της. Όταν μια διεργασία λάβει ένα εισερχόμενο UID, το συγκρίνει με το δικό της UID. Αν το εισερχόμενο UID είναι μεγαλύτερο από το δικό της, προωθεί το UID που έλαβε στο δίκτυο (δηλαδή το στέλνει στον εξερχόμενο γείτονά της). Αν είναι μικρότερο, το αγνοεί (δεν το προωθεί). Αν είναι ίσο, η διεργασία εκλέγεται αρχηγός. Τυπική περιγραφή του αλγορίθμου LCR. σύμφωνα με το σύγχρονο δικτυακό μοντέλο. Δίνουμε τώρα μια πιο αναλυτική περιγραφή του αλγορίθμου Το αλφάβητο μηνυμάτων M είναι ακριβώς το σύνολο των UIDs. Για κάθε i, οι καταστάσεις στο σύνολο states i αποτελούνται από τις παρακάτω συνιστώσες: u, ένα UID, αρχικά το UID της i send, ένα UID ή null, αρχικά το UID της i status, με τιμές στο {unknown, leader, non_leader}, αρχικά unknown 1

Το σύνολο των αρχικών καταστάσεων start i αποτελείται από τη μοναδική κατάσταση που ορίζεται από τις παραπάνω αρχικοποιήσεις των μεταβλητών. Για κάθε i, η γεννήτρια μηνυμάτων msgs i ορίζεται ως εξής: στείλε την τρέχουσα τιμή του send στη διεργασία i + 1 Για κάθε i, η συνάρταση αλλαγής κατάστασης trans i ορίζεται ως εξής: send := null if το εισερχόμενο μήνυμα είναι το UID v then case v > u: v = u: v < u: endcase endif send := v, status := non_leader status := leader (μην κάνεις τίποτα) 1.2 Ορθότητα του αλγορίθμου LCR Για να αποδείξουμε ότι ο αλγόριθμος LCR που περιγράψαμε είναι σωστός, πρέπει να αποδείξουμε ότι ακριβώς μία διεργασία δίνει ως έξοδο status = leader. Θυμίζουμε ότι συμβολίζουμε με i max {0, 1,..., n 1} τη διεργασία με το μέγιστο UID και με u max την τιμή του UID της (δηλαδή το μέγιστο UID στο δίκτυο). Αρκεί να αποδείξουμε ότι (1) η διεργασία i max δίνει έξοδο leader στο τέλος του γύρου n και (2) κάθε άλλη διεργασία δίνει έξοδο non_leader μέχρι το τέλος του γύρου n. Για να είναι πιο σαφής η ανάλυση του αλγορίθμου, χρησιμοποιούμε το δείκτη i στο όνομα μιας συνιστώσας (μεταβλητής) μιας κατάστασης, ώστε να δείχνει την τιμή αυτής της συνιστώσας που ανήκει στη διεργασία i (δηλαδή οι u i, send i, status i αναφέρονται στις τιμές των μεταβλητών u, send, status της διεργασίας i). Λήμμα 1 Η διεργασία i max δίνει έξοδο leader στο τέλος του γύρου n. Απόδειξη. Παρατηρούμε ότι η αρχική τιμής της u imax είναι η u max, λόγω της αρχικοποίησης της μεταβλητής u της διεργασίας i max. Επίσης παρατηρούμε ότι οι τιμές των μεταβλητών u δεν αλλάζουν ποτέ στον αλγόριθμο και ότι είναι όλες μοναδικές (λόγω της υπόθεσης των μοναδικών ταυτοτήτων). Με βάση τον ψευδοκώδικα, αρκεί να αποδείξουμε ότι status imax = leader μετά από n γύρους. Για να το αποδείξουμε, αρκεί να δείξουμε ότι, για κάθε 0 r n 1, μετά από r γύρους, send imax+r = u max (θυμίζουμε ότι η πρόσθεση i max + r γίνεται modulo n). Αυτό σημαίνει ότι, μετά από r γύρους, το μέγιστο UID εμφανίζεται στη μεταβλητή send της διεργασίας που βρίσκεται στο δακτύλιο σε απόσταση r από την i max. Θα το αποδείξουμε με επαγωγή στο r. Επαγωγική βάση. Για r = 0 (δηλαδή μετά το γύρο 0, άρα όταν ξεκινά ο αλγόριθμος), η αρχικοποίηση δηλώνει ότι send imax+r = send imax+0 = send imax = u max μετά από 0 γύρους, άρα το ζητούμενο ισχύει. 2

Επαγωγική υπόθεση. Έστω ότι, μετά από r γύρους, ισχύει ότι send imax+r = u max (για κάποιο 0 r n 2). Επαγωγικό βήμα. Μετά από r + 1 γύρους, η διεργασία i max + r + 1 έχει λάβει το u max. Αυτό ισχύει επειδή, αμέσως μετά το γύρο r, ο εισερχόμενος γείτονάς της i max + r θέτει send imax+r = u max (από την επαγωγική υπόθεση). Έτσι, όταν γίνεται η ανταλλαγή μηνυμάτων κατά τη διάρκεια του γύρου r + 1, η i max + r + 1 παραλαμβάνει το u max και στη συνέχεια το συγκρίνει με το δικό της UID, δηλαδή με το u imax+r+1. Επειδή u imax+r+1 < u max, θέτει send imax+r+1 = u max. Άρα το ζητούμενο ισχύει μετά από r + 1 γύρους. Αποδείξαμε ότι, για κάθε 0 r n 1, μετά από r γύρους, send imax+r = u max. Για r = n 1, προκύπτει ότι μετά από n 1 γύρους, η διεργασία i max + n 1 θέτει send imax+n 1 = u max. Άρα η διεργασία i max +n 1 στέλνει στο γύρο n την τιμή u max στον εξερχόμενο γείτονάς της. Όμως ο εξερχόμενος γείτονας της i max + n 1 είναι η διεργασία i max. Άρα στο γύρο n η i max λαμβάνει το δικό της UID, άρα θέτει status imax = leader. Λήμμα 2 Κάθε διεργασία i i max θέτει status i = non_leader μέχρι το τέλος του γύρου n. Απόδειξη. Όπως και στο προηγούμενο λήμμα, μπορούμε να αποδείξουμε ότι, για κάθε 1 r n 1, μέχρι το τέλος του γύρου r, η διεργασία i max + r έχει θέσει status imax+r = non_leader, και η τιμή αυτή δεν αλλάζει. Οι λεπτομέρειες της απόδειξης αφήνονται ως άσκηση. 1.3 Πολυπλοκότητα του αλγορίθμου LCR Η χρονική πολυπλοκότητα του αλγορίθμου LCR είναι ακριβώς n γύροι. Η πολυπλοκότητα επικοινωνίας (δηλαδή το συνολικό πλήθος των μηνυμάτων που ανταλλάσσονται) είναι O(n 2 ) επειδή, στη χειρότερη περίπτωση, οι διεργασίες είναι διατεταγμένες στο δακτύλιο με τέτοιο τρόπο ώστε u 0 > u 1 > > u n. Έτσι, στον 1ο γύρο στέλνονται n μηνύματα (όλες οι διεργασίες στέλνουν στον εξερχόμενο γείτονά τους το UID τους). Στο δεύτερο γύρο στέλνονται n 1 μηνύματα (επειδή όλες, εκτός από την i max = 0 έλαβαν ένα μεγαλύτερο UID στον προηγούμενο γύρο). Στον τρίτο γύρο στέλνονται n 2 μηνύματα (επειδή όλες, εκτός από τις 0 και 1 έλαβαν ένα μεγαλύτερο UID στον προηγούμενο γύρο), κ.ο.κ. Έτσι, σε κάθε γύρο 1 r n 1, ακριβώς n r +1 διεργασίες στέλνουν μήνυμα στον εξερχόμενο γείτονά τους. Άρα συνολικά απαιτούνται n n r + 1 = r=1 n i = i=1 n(n + 1) 2 = O(n 2 ) μηνύματα. 2 Ο αλγόριθμος HS (Hisrchberg and Sinclair) Αν και η πολυπλοκότητα χρόνου του αλγορίθμου LCR είναι μικρή, το πλήθος των μηνυμάτων O(n 2 ) που απαιτεί θεωρείται μεγάλο. Θα παρουσιάσουμε εδώ τον αλγόριθμο HS που επιτυγχάνει πολυπλοκότητα επικοινωνίας O(n log n). Ο αλγόριθμος υποθέτει διεργασίες με μοναδικές ταυτότητες σε τοπολογία δακτυλίου, αλλά η επικοινωνία είναι αμφίδρομη. Με άλλα λόγια υποθέτουμε ότι ο δακτύλιος είναι μη κατευθυνόμενος. 3

Ο αλγόριθμος HS, όπως και ο LCR, εκλέγει ως αρχηγό τη διεργασία με το μέγιστο UID. Εδώ όμως κάθε διεργασία, αντί να στέλνει το UID της με σκοπό να ταξιδέψει σε όλο το δακτύλιο (όπως γίνεται στον LCR), το στέλνει με σκοπό να ταξιδέψει μια συγκεκριμένη απόσταση και να επιστρέψει πίσω σε αυτή (εφόσον δεν συναντήσει κάποιο μεγαλύτερο UID στη διαδρομή). Η διαδικασία αυτή επαναλαμβάνεται, αυξάνοντας διαδοχικά τις αποστάσεις στις οποίες ταξιδεύουν τα UIDs. 2.1 Περιγραφή του αλγορίθμου HS Κάθε διεργασία i λειτουργεί σε φάσεις 0, 1, 2,.... Σε κάθε φάση l, η διεργασία i στέλνει μηνύματα (tokens) με το UID της u i και προς τις δύο κατευθύνσεις (δηλαδή και στην i 1 και στην i + 1). Αυτά τα tokens έχουν σκοπό να ταξιδέψουν σε απόσταση 2 l και να επιστρέψουν στην αφετηρία τους i, εφόσον δεν συναντήσουν κάποιο μεγαλύτερο UID. Αν και τα δύο tokens επιστρέψουν, η διεργασία i προχωρά στην επόμενη φάση l +1. Ωστόσο, ενδέχεται να μην επιστρέψει κάποιο token. Καθώς ένα token u i προχωρά προς τα έξω, καθώς απομακρύνεται δηλαδή από την i, κάθε άλλη διεργασία j στο μονοπάτι του u i συγκρίνει το u i με το δικό της UID u j. Αν u i < u j τότε η j αγνοεί το token u i (δεν το προωθεί, το καταστρέφει). Αν u i > u j, η j προωθεί το token u i. Αν u i = u j, αυτό σημαίνει ότι η διεργασία j έχει λάβει το token με το δικό της UID ενώ αυτό προχωρά προς τα έξω (ενώ απομακρύνεται δηλαδή από την j), και τότε η διεργασία j εκλέγεται αρχηγός. Όλες οι διεργασίες προωθούν πάντα τα tokens όταν αυτά έχουν φορά προς τα μέσα, όταν δηλαδή επιστρέφουν στη διεργασία από την οποία ξεκίνησαν. Θα παραλείψουμε την τυπική περιγραφή του αλγορίθμου HS, καθώς απαιτεί διάφορες τεχνικές λεπτομέρειες στις οποίες δεν κρίνουμε σκόπιμο να εστιάσουμε. Ενδεικτικά αναφέρουμε ότι τα tokens πρέπει να έχουν ενδείξεις που θα υποδηλώνουν αν ταξιδεύουν προς τα έξω ή προς τα μέσα. Επίσης, πρέπει να έχουν μετρητές ώστε να υπολογίζουν την απόσταση που πρέπει να διανύσουν πριν αρχίσουν να επιστρέφουν στη διεργασία από όπου ξεκίνησαν. 2.2 Πολυπλοκότητα του αλγορίθμου HS Πολυπλοκότητα επικοινωνίας. Αναλύουμε αρχικά την πολυπλοκότητα επικοινωνίας του HS. Κάθε διεργασία στέλνει 2 tokens στη φάση 0, ένα προς κάθε κατεύθυνση, με σκοπό να ταξιδέψει απόσταση 2 0 = 1 και να επιστρέψει (εφόσον επιβιώσει, δηλαδή δεν συναντήσει μεγαλύτερο UID). Άρα η φάση 0 απαιτεί το πολύ 4n μηνύματα (2n tokens, επί 2 hops ώστε να ταξιδέψει το καθένα απόσταση 1 και να επιστρέψει). Στη φάση l > 0, μια διεργασία στέλνει tokens αν και μόνο αν έλαβε πίσω και τα δύο tokens που έστειλε στην προηγούμενη φάση l 1. Αυτό συμβαίνει αν και μόνο αν δεν νικήθηκε από κάποια άλλη διεργασία σε απόσταση 2 l 1 από αυτή (και στις δύο κατευθύνσεις) στο δακτύλιο, δηλαδή αν και μόνο αν η διεργασία έχει μεγαλύτερο UID από τις διεργασίες που βρίσκονται στις πρώτες 2 l 1 θέσεις δεξιά της και στις πρώτες 2 l+1 θέσεις αριστερά της στο δακτύλιο. Αυτό σημαίνει ότι μέσα σε κάθε ομάδα 2 l 1 + 1 διαδοχικών διεργασιών στο δακτύλιο, το πολύ μία στέλνει tokens στη φάση l. Άρα το πολύ n 2 l 1 + 1 διεργασίες συνολικά στέλνουν tokens στη φάση l. Τα tokens στέλνονται και προς τις δύο κατευθυνσεις, και καθένα από αυτά ταξιδεύει απόσταση το πολύ 2 l και επιστρέφει. Άρα το συνολικό πλήθος των μηνυμάτων 4

που στέλνονται στη φάση l είναι το πολύ 2 2 2 l n 2 l 1 + 1 2l+2 n = 8n. 2l 1 Το συνολικό πλήθος των φάσεων που απαιτούνται πριν εκλεγεί ο αρχηγός είναι το πολύ log n. Αυτό συμβαίνει επειδή, προκειμένου να εκλεγεί η i max αρχηγός, πρέπει να στείλει το token της ώστε να ταξιδέψει απόσταση 2 l n, έτσι ώστε να το λάβει καθώς αυτό έχει φορά προς τα έξω. Άρα πρέπει l log n, άρα απαιτούνται το πολύ log n log n + 1 φάσεις. Άρα συνολικά απαιτούνται το πολύ μηνύματα. 8n(log n + 1) = O(n log n) Πολυπλοκότητα χρόνου. Παρατηρούμε ότι κάθε φάση l (εκτός από την τελευταία) απαιτεί 2 2 l = 2 l+1 γύρους, αφού κάθε token πρέπει να ταξιδέψει απόσταση 2 l και να επιστρέψει. Η τελευταία φάση απαιτεί ακριβώς n γύρους. Η προτελευταία φάση είναι η φάση log n 1, επομένως το συνολικό πλήθος των γύρων που απαιτούνται είναι log n 1 l=0 log n 1 2 l+1 + n = 2 l=0 2 l + n 2 2 log n + n. Επομένως αν το n είναι δύναμη του 2 τότε η πολυπλοκότητα χρόνου είναι το πολύ 2n+n = 3n, διαφορετικά η πολυπλοκότητα χρόνου είναι το πολύ 2 2 log n+1 + n = 5n. 5