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

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

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

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

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

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

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

Consensus and related problems

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Αναδροµή και Επαγωγή

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

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

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

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

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

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

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

Απαντήσεις. Απάντηση. Απάντηση

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

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

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

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

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

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

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

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

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Ασκήσεις για το µάθηµα «Ανάλυση Ι και Εφαρµογές» (ε) Κάθε συγκλίνουσα ακολουθία άρρητων αριθµών συγκλίνει σε άρρητο αριθµό.

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Λυσεις Ασκησεων - Φυλλαδιο 1

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

Γραµµική Αλγεβρα Ι. Ενότητα: ιανυσµατικοί χώροι. Ευάγγελος Ράπτης. Τµήµα Μαθηµατικών

Εισαγωγή στην Τοπολογία

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

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

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

Εισαγωγή στην Τοπολογία

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

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

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


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

Αρµονική Ανάλυση. Ενότητα: Το ϑεώρηµα παρεµβολής του Riesz και η ανισότητα Hausdorff-Young. Απόστολος Γιαννόπουλος.

Πληρότητα της μεθόδου επίλυσης

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

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

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 9

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

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

Μαθηµατικά για Πληροφορική

Γραµµικη Αλγεβρα Ι Επιλυση Επιλεγµενων Ασκησεων Φυλλαδιου 4

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

f (x) = l R, τότε f (x 0 ) = l. = lim (0) = lim f(x) = f(x) f(0) = xf (ξ x ). = l. Εστω ε > 0. Αφού lim f (x) = l R, υπάρχει δ > 0

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

HY Λογική Διδάσκων: Δ. Πλεξουσάκης

Αλγεβρικες οµες Ι Ασκησεις - Φυλλαδιο 4 1 2

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9

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

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

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟ ΟΣ:

Αδιέξοδα (Deadlocks)

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

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

Σηµειώσεις στις σειρές

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 2

Προσεγγιστικοί Αλγόριθμοι

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 2

Μια TM µπορεί ένα από τα δύο: να αποφασίζει µια γλώσσα L. να αναγνωρίζει (ηµιαποφασίζει) µια γλώσσα L. 1. Η TM «εκτελεί» τον απαριθµητή, E.

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

Σειρά Προβλημάτων 1 Λύσεις

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

Κρυπτογραφία και Πολυπλοκότητα

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

Προσεγγιστικοί Αλγόριθμοι

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

Transcript:

Σύνοψη Μαθήµατος Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων Ιωάννης Χατζηγιαννάκης Ασύγχρονα Κατανεµηµένα Συστήµατα Σφάλµατα ιεργασιών Αδυναµία Εύρεσης Λύσης Ανιχνευτές Σφαλµάτων ευτέρα, 26 Ιανουαρίου, 2009 Αίθουσα Β3 Πρόβληµα: To stop or not to stop waiting Πρόβληµα: To stop or not to stop waiting Σε ένα ϱεαλιστικό ασύγχρονο σύστηµα εµφανίζονται γεγονότα µε πολύ κοινά χαρακτηριστικά που οµως πρέπει να αντιµετωπιστούν διαφορετικά Μηνύµατα που στέλνει µια διεργασια χάνονται πρωτού παραληφθούν Μια διεργασία εκτελει ϐήµατα µε πολύ αργο ϱυθµό Μια διεργασια έχει καταρρεύσει Κοινό χαρακτηριστικό Η παρουσία της διεργασίας δε γίνεται αισθητή από το υπόλοιπο δικτυο Το κοινό χαρακτηριστικό δυσκολεύει το διαχωρισµό των γεγονότων Ωστόσο ο διαχωρισµός είναι αναγκαιος στις περισσότερες περιπτώσεις Καθώς µια διεργασια δεν ανταποκρίνεται προκύπτει το διληµµα αν αξίζει το υπόλοιπο δίκτυο να την περιµένει Το πρόβληµα έχει τις ϐάσεις του στο συνδιασµό time free και fault vulnerable συστήµατος Μήπως κάνουµε λάθος που µπλέκουµε αυτα τα δύο; Το time free µοντέλο παρέχει ένα αναγκαίο abstraction για τη µοντελοποίηση των περισσοτερων πραγµατικών συστηµάτων Σφάλµατα συµβαίνουν χωρίς να µπορούν να προβλεφθούν ή να αποφευχθούν, σε διάφορα επίπεδα(hardware failures, software bugs..) Στην περίπτωσή µας λοιπόν και στραβός ειναι ο γυαλός (time free συστήµατα) και στραβά αρµενίζουµε (fault vulnerabilities)! Αφού δεν µπορούµε να αποφύγουµε το πρόβληµα, ας προσπαθήσουµε να το λύσουµε!

Προσεγγίσεις Ανιχνευτές Σφαλατων Πόσο µας δυσκολεύει αυτή η ; Οι Fischer, Lynch, Paterson έδειξαν ότι το πρόβληµα του Consensus είναι άλυτο για οποιοδήποτε δίκτυο άκοµα και υπό την παρουσία ενός µόνο process failure Λύσεις : Randomization Weaker Problems Strongest Model (Partial Synchrony..) Failure Detectors Σφάλµατα σε ασύγχρονα κατανεµηµένα συστηµατα οδηγούν σε αδυναµία λύσης πολλών προβληµάτων Για να παρακαµφθούν εισάγουµε το module του Failure Detector Εχει την ικανότητα να κάνει εκτιµήσεις για το ποιες διεργασίες έχουν πέσει Οι εκτιµήσεις χαρακτηρίζονται από µετρικές ακρίβειας και πληρότητας Για κάθε πρόβληµα µας ενδιαφέρει ποια η ασθενέστερη κλάση failure detectors που είναι αναγκαια και ικανή για τη λύση του Στην περίπτωση του Consensus είδαµε δυο λύσεις µε διαφορετικούς περιορισµούς και δυνατότητες failure detection Γιατί Failure Detectors Πρακτικά Οι σχετικά ασθενείς Failure Detectors µπορούν να υλοποιηθούν µέσα από κατάλληλα πρωτόκολλα(realistic failure detectors). πχ στατικά και δυναµικά timeouts αποτελούν υλοποίηση συγκεκριµένων κλάσεων failure detectors Θεωρητικά Εύρεση της ασθενέστερης κλάσης που είναι αναγκαια και ικανή για τη λύση ενός προβλήµατος αποκαλύπτει κάτι για το ίδιο το πρόβληµα και ϕαίνεται να χαρακτηριζει τη ϕυση του Απόδειξη ότι µια πολύ ισχυρή και πρακτικά µη υλοποιήσιµη κλάση είναι η ασθενέστερη που χρειάζεται για να λυθεί το πρόβληµα αποτελεί ένα ειδος impossibility result Προβλήµατα ιεραρχούνται µε ϐάση την ασθενέστερη κλάση που είναι αναγκαία και ικανή για τη λύση τους Σύνοψη 9 ης ιάλεξης Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Σταθεροποίηση Σταθεροποιούµενοι Κατανεµηµένοι Αλγόριθµοι Τεχνική Power Supply Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενο Μάθηµα

Βιώσιµοι Αλγόριθµοι (Robust Algorithms) Αυτο-σταθεροποιούµενοι Αλγόριθµοι (1) Εως τώρα µελετήσαµε την συµπεριφορά των κατανεµηµένων συστηµάτων όταν οι διεργασίες ή τα κανάλια είναι αξιόπιστα Μελετήσαµε ποια ϑα είναι η πιθανή συµπεριφορά των διεργασιών Οταν οι διεργασίες µπορεί να αποτύχουν Τα κανάλια επικοινωνίας είναι αναξιόπιστα Οι λύσεις για ανοχή σε λάθη είναι εξειδικευµένες Προσπαθούν να διατηρούν το σύστηµα σε µια λειτουργική ( καλή ) Περιορίζουν το πρόβληµα κάνοντας παραδοχές Μερικές ϕορές είναι πολύπλοκοι στην υλοποίηση Οι αυτο-σταθεροποιούµενοι αλγόριθµοι επιτυγχάνουν µια συµπεριφορά ανοχής λαθών µε ένα ϱιζικά διαφορετικό τρόπο Οι ϐιώσιµοι αλγόριθµοι ακολουθούν µια απαισιόδοξη (pessimistic) προσέγγιση Σε κάθε γύρο εκτελούν µια σειρά ελέγχων για να εγγυηθούν την εγκυρότητα των ϐηµάτων Θεωρούν ότι όλα τα πιθανά σφάλµατα που µπορεί να συµβούν, ϑα συµβούν Οι σταθεροποιούµενοι αλγόριθµοι είναι αισιόδοξοι (optimistic) Τα σφάλµατα που εµφανίζονται είναι παροδικά Οι σωστές διεργασίες µπορεί να συµπεριφέρονται ασυνεπώς Αυτο-σταθεροποιούµενοι Αλγόριθµοι (2) Αυτο-σταθεροποιούµενοι Αλγόριθµοι (3) Βασική ιδέα Το σύστηµα έχει την ικανότητα να συγκλίνει µε πεπερασµένο αριθµό ϐηµάτων από οποιαδήποτε (ασταθή) σε µια επιθυµητή (ευσταθή) εχόµαστε ότι τελικά επέρχεται επιδιόρθωση Μπορούµε να εγκαταλείψουµε µοντέλα αποτυχίας και όρια στον αριθµό αποτυχιών Υποθέτουµε ότι όλες οι διεργασίες λειτουργούν σωστά, αλλά η εκτέλεση µπορεί αυθαίρετα να καταστραφεί κατά τη διάρκεια µιας παροδικής αποτυχίας εν χρειάζεται να εξετάζουµε τις λανθασµένες διεργασίες Αγνοούµε το ιστορικό της εκτέλεσης του υπολογισµού Κατά τη διάρκεια της αποτυχίας, η εκτέλεση µε την οποία αρχίσαµε την ανάλυση του αλγόριθµου ϑεωρείται και η αρχική του σωστού αλγόριθµου Ενας αλγόριθµος ονοµάζεται αυτο-σταθεροποιούµενος (ή σταθεροποιούµενος) αν τελικά συµπεριφέρεται σωστά ηλαδή σύµφωνα µε τις προδιαγραφές και ανεξάρτητα από την αρχική του εκτέλεση Η έννοια της σταθεροποίησης προτάθηκε από το Dijkstra Μικρή πρόοδος έγινε µέχρι το τέλος της δεκαετίας του 80 Η κυριότερες έρευνες έγιναν στη δεκαετία του 90, έτσι το ϑέµα ϑεωρείτε ακόµα σχετικά καινούργιο

Ορισµοί Οι σταθεροποιούµενοι αλγόριθµοι µοντελοποιούνται ως σύστηµα µετάβασης χωρίς αρχική Για ένα Ϲεύγος καταστάσεων κ, κ, κ κ αν υπάρχει ενέργεια ɛ τέτοια ώστε (κ, ɛ, κ ) trans(a) Ο αλγόριθµος A σταθεροποιείται στην προδιαγραφή Π αν υπάρχει υποσύνολο καταστάσεων L states(a) τέτοιο ώστε Κάθε εκτέλεση που ξεκινά από µια στο L ικανοποιεί την προδιαγραφή Π (ορθότητα) Κάθε εκτέλεση περιέχει µια στο L (σύγκλιση) Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση

Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση Αποδεικνύοντας τη σταθεροποίηση (1) Για να δείξουµε κατά πόσο ένας αλγόριθµος είναι σταθεροποιούµενος ϐασιζόµαστε στην χρήση νόµιµων ή ευσταθών εκτελέσεων Αρχικά υποθέτουµε ότι ο αλγόριθµος ξεκινά από µια που ανήκει στο L Θέλουµε να αποδείξουµε ότι υπάρχει µια συνάρτηση σύγκλισης προς µια νόµιµη/ευσταθή εκτέλεση

Αποδεικνύοντας τη σταθεροποίηση (2) Ιδιότητες Σταθεροποιούµενων Αλγόριθµων (1) Εποµένως στην απόδειξη λαµβάνουµε υπόψιν µόνο τις εκτελέσεις οι οποίες αρχικά αρχίζουν από το L Λήµµα Εστω ότι Ολες οι τερµατικές καταστάσεις είναι στο L, δηλ. halt(a) L Υπάρχει συνάρτηση f : states(a) W (όπου το W είναι ένα καλά ορισµένο σύνολο) τέτοια ώστε αν κ κ τότε είτε f(κ) > f(κ ) ή κ L Τότε ο A ικανοποιεί τη σύγκλιση Τα πλεονεκτήµατα των σταθεροποιούµενων αλγόριθµων σε σχέση µε τους κλασικούς ϐιώσιµους αλγόριθµους 1. Ανοχή Λαθών προσφέρουν πλήρη και αυτόµατη προστασία έναντι όλων των παροδικών αποτυχιών των διεργασιών καθώς συγκλίνουν στην ϕυσιολογική λειτουργία 2. Αρχικοποίηση δεν υπάρχει ουσιαστική ανάγκη για αρχικοποίηση του αλγόριθµου, παρόλαυτά, η τελική συµπεριφορά είναι εγγυηµένη 3. υναµική Τοπολογία Αν συµβεί µια αλλαγή, ο αλγόριθµος υπολογίζει µια συνάρτηση που εξαρτάται από την τοπολογία και συγκλίνει σε µια νέα λύση Ιδιότητες Σταθεροποιούµενων Αλγόριθµων (2) Αµοιβαίος Αποκλεισµός Τα µειονεκτήµατα των σταθεροποιούµενων αλγόριθµων σε σχέση µε τους κλασικούς ϐιώσιµους αλγόριθµους 1. Αρχικές ασυνέπειες έως ότου ϕτάσουν σε µια ευσταθή, ο αλγόριθµος µπορεί να παράγει κάποιο αναξιόπιστο αποτέλεσµα 2. Υψηλή πολυπλοκότητα λόγω της συνεχόµενης ανταλλαγής πληροφοριών, είναι συνήθως πολύ λιγότερο αποδοτικοί 3. Ελλειψη µεθόδου ανίχνευσης της σταθεροποίησης αδύνατο να γίνει γνωστό µέσα από το σύστηµα πότε έχει διασφαλιστεί µια νόµιµη εκτέλεση, εποµένως οι διεργασίες δεν γνωρίζουν πότε η συµπεριφορά τους έχει γίνει αξιόπιστη Οι διεργασίες διαµοιράζονται ορισµένους κοινούς πόρους Κάποιοι πόροι απαιτούν αποκλειστική πρόσβαση από µία διεργασία µόνο Το µέρος της διεργασίας που χρειάζεται να χειριστεί τον πόρο αποκλειστικά ονοµάζεται κρίσιµο τµήµα (ΚΤ) Απαιτείται συντονισµένη πρόσβαση Κεντρικοποιηµένα Συστήµατα Χρήση semaphores, συντονιστών... Το πρόβληµα του Αµοιβαίου Αποκλεισµού ορίστηκε για πρώτη ϕορά από τον Edsger Dijkstra το 1965

Απαραίτητες ιδιότητες Ελάχιστες Υποθέσεις Ασφάλεια (safety) -- µια µόνο από τις διεργασίες µπορεί να αποκτήσει πρόσβαση στον κοινό πόρο σε ένα ορισµένο χρονικό διάστηµα Βιωσιµότητα (liveness) -- αν µια διεργασία επιθυµεί να εισέλθει στο κρίσιµο τµήµα τελικά ϑα το καταφέρει αν ο κοινός πόρος δεν χρησιµοποιείται, τότε όποια διεργασία Ϲητήσει πρόσβαση ϑα πρέπει να την αποκτήσει σε πεπερασµένο χρονικό διάστηµα ιάταξη (ordering) -- η άδεια εισόδου στο κρίσιµο τµήµα πρέπει να παραχωρηθεί σύµφωνα µε τη σχέση συνέβη-πριν: οι αιτήσεις των διεργασιών εξυπηρετούνται µε τη σειρά που έχουν εκδοθεί Οι διεργασίες έχουν µοναδικές ταυτότητες Κάθε διεργασία έχει µέρη του κώδικα της µε κρίσιµα τµήµατα Για ευκολία οι διεργασίες ανταγωνίζονται για ένα µόνο πόρο εν υπάρχει κάποιο καθολικό ϱολόι Οι διεργασίες επικοινωνούν µε την ανταλλαγή µηνυµάτων Υποθέτουµε ότι τα κανάλια είναι αξιόπιστα, FIFO Το δίκτυο είναι δακτύλιος Κριτήρια Απόδοσης Σταθεροποιούµενος Αλγόριθµος του Dijkstra (1) 1. Ορθότητα (Correctness) οι συνθήκες ασφάλειας, ϐιωσιµότητας και διάταξης ισχύουν 2. Πολυπλοκότητα Επικοινωνίας (Communication Complexity) επεξεργασία των αιτήσεων ελαχιστοποιώντας τον αριθµό µηνυµάτων 3. Απόκριση (Latency) ελαχιστοποίηση της καθυστέρησης εισόδου στο κρίσιµο τµήµα 1. Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1} το K είναι ένα ακέραιος µεγαλύτερος του n 2. Η διεργασία u µπορεί να διαβάσει την µεταβλητή της u 1 και η διεργασία u0 της un 1 κατευθυνόµενος δακτύλιος 3. Ολες οι διεργασίες είναι ίσες, εκτός από την διεργασία u0 4. Η διεργασία u0 έχει το προνόµιο αν σ0 = σn 1 5. Η διεργασία u 0 έχει το προνόµιο αν σu σu 1

Σταθεροποιούµενος Αλγόριθµος του Dijkstra (2) 1. Μια διεργασία που έχει το προνόµιο µπορεί να αλλάξει την της αφού ολοκληρώσει την εκτέλεση του κρίσιµου τµήµατος 2. Η αλλαγή ς µιας διεργασίας προκαλεί πάντα την απώλεια του προνοµίου της 3. Η διεργασία u 0 µπορεί να εξισώσει τα σu, σu 1 ϑέτοντάς σu = σu 1 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 αφού είναι ενεργή ϑα ισχύει σu σu 1 4. Η διεργασία u0 µπορεί να κάνει το σ0 να µην είναι ίσο µε το σn 1 ϑέτοντας σ0 = σn 1 mod K αφού είναι αρχικά ίσα Αρχική Κατάσταση u 0 1 2 3... n 2 n 1 σu 0 0 0 0... 0 0 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Ενδιάµεσες Καταστάσεις Ενδιάµεσες Καταστάσεις u 0 1 2 3... n 2 n 1 u 0 1 2 3... n 2 n 1 σu 0 0 0 0... 0 0 σu 1 0 0 0... 0 0

Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Ενδιάµεσες Καταστάσεις Ενδιάµεσες Καταστάσεις u 0 1 2 3... n 2 n 1 u 0 1 2 3... n 2 n 1 σu 1 1 0 0... 0 0 σu 1 1 1 0... 0 0 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Ενδιάµεσες Καταστάσεις Ενδιάµεσες Καταστάσεις u 0 1 2 3... n 2 n 1 u 0 1 2 3... n 2 n 1 σu 1 1 1 1... 0 0 σu 1 1 1 1... 1 0

Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Ενδιάµεσες Καταστάσεις Ενδιάµεσες Καταστάσεις u 0 1 2 3... n 2 n 1 u 0 1 2 3... n 2 n 1 σu 1 1 1 1... 1 1 σu 2 1 1 1... 1 1 Σταθεροποιούµενος Αλγόριθµος του Dijkstra (3) Αλγόριθµος του Dijkstra Κάθε διεργασία u διατηρεί µια µεταβλητή σu {0, 1,..., K 1}. Η διεργασία u0 αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σ0 = σn 1. Κάθε άλλη διεργασία u αποκτά το δικαίωµα να εισέλθει στο ΚΤ αν σu σu 1. Η διεργασία που έχει το δικαίωµα µπορεί να αλλάξει την της και για να το παραχωρήσει πρέπει να ϑέσει: { σu 1 αν u 0 σu = σn 1 mod K αν u = 0 Ενδιάµεσες Καταστάσεις u σu 0 1 2 3... n 2 n 1 2 2 1 1... 1 1 Ιδιότητες Αλγόριθµου του Dijkstra (1) Τουλάχιστον µια διεργασία έχει δικαίωµα Αν καµία άλλη, σίγουρα η u0 Κανένα ϐήµα δεν αυξάνει τον αριθµό των διεργασιών µε δικαίωµα Αυτή που κάνει το ϐήµα χάνει το δικαίωµα Η µόνη που µπορεί να ωφεληθεί είναι η επόµενη L = {κ : το δικαίωµα το έχει µία διεργασία} Αν είµαστε στο L, παραµένουµε εκεί και το δικαίωµα κάνει κύκλο (ορθότητα) f = u V (n u) Οπου V = {u : u 1 και έχει το δικαίωµα} Η f µειώνεται σε κάθε ϐήµα της u αν u 0

Ιδιότητες Αλγόριθµου του Dijkstra (2) Αναζήτηση κατά Εύρος Το πολύ n(n 1) ϐήµατα γίνονται χωρίς ϐήµα της 2 u0 Η αρχική κ0 µπορεί να περιέχει το πολύ n διαφορετικές τιµές Η u0 µετά από το πολύ n ϐήµατα της ϑα έχει τιµή k που δεν έχουν οι άλλες, οι οποίες απλώς αντιγράφουν τιµές Το k ϑα διασχίσει το δακτύλιο και πριν το επόµενο ϐήµα της u0 ϑα υπάρχει µόνο µία διεργασία µε δικαίωµα σ1 = σ2 =... = σn 1 = σ0 = k Σύνολο ϐηµάτων για σύγκλιση είναι O(n 3 ) πιο προσεκτικά O(n 2 ) Αναζήτηση κατά Εύρος Σε ένα ασύγχρονο δίκτυο G, η αναζήτηση κατά εύρος απαιτεί την κατασκευή ενός επικαλυπτικού δέντρου T(G), µε ϱίζα την διεργασία u0 όπου οι κορυφές που είναι σε απόσταση d από την u0 στο G, ϐρίσκονται στο επίπεδο d στο δέντρο T(G). Ο αυτο-σταθεροποιούµενος αλγόριθµος πρέπει να ικανοποιεί Σε κάθε ασταθή υπάρχει τουλάχιστον ένας ενεργός κόµβος Σε µια ευσταθή κανένας κόµβος δεν είναι ενεργός, δηλ. το σύστηµα ϐρίσκεται σε αδιέξοδο Για όλες τις αρχικές καταστάσεις και για όλους τους τρόπους επιλογής ενός ενεργού κόµβου, το σύστηµα εξασφαλίζει την σύγκλιση σε µια ευσταθή σε πεπερασµένο αριθµό ϐηµάτων Ο Αλγόριθµος StabBFS Αλγόριθµος StabBFS Κάθε διεργασία u διατηρεί µια µεταβλητή pu όπου αποθηκεύει τον γονέα της στο δέντρο και µια µεταβλητή du όπου αποθηκεύει την απόσταση της από την u0 (σύµφωνα µε τις τρέχουσες συνθήκες), αρχικά αν u u0 : pu =, du = αλλιώς αν u = u0 : pu = u0, du = 0. Σε κάθε γύρο, κάθε διεργασία u στέλνει την τιµή du στους γείτονες της. Στην συνέχεια, ελέγχει τις τιµές που έλαβε και αν υπάρχει διεργασία v τέτοια ώστε dv < du, ϑέτει du = dv + 1 και την µεταβλητή γονέας µε την ταυτότητα της v. Η u0 είναι η ϱίζα του δέντρου εκ των προτέρων γνωστή Εστω n το πλήθος των διεργασιών Εστω d(u) η απόσταση της u0 από την u στο G Η απόσταση ονοµάζεται επίσης και ύψος εν είναι απαραίτητο οι διεργασίες να στέλνουν την τιµή d κάθε γύρο Ορισµοί Για το ύψος ισχύει 0 d(u) n 1 Σε µια ασταθή κάθε κόµβος εκτός από την ϱίζα u0 µπορεί να έχει οποιοδήποτε ύψος µεταξύ 0 και n 1 Σε µια ασταθή κάθε κόµβος εκτός από την ϱίζα u0 µπορεί να ϑεωρεί ως γονέα του στο δέντρο οποιοδήποτε κόµβο εκτός της u0 Για κάθε κόµβο ορίζουµε το σύνολο Su ως εξής Su = {v : v = nbrsu du = mini nbrsu{di}} το σύνολο Su περιέχει όλους τους γειτονικούς κόµβους της u µε ελάχιστο ύψος µπορεί να περιέχει περισσότερους από έναν κόµβους αλλά δεν είναι ποτέ άδειο Ολοι οι κόµβοι στο Su έχουν το ίδιο ύψος d(su)

Ευσταθής (1) Ευσταθής (2) Ορίζουµε ως ευσταθή κάθε όπου το ακόλουθο καθολικό κατηγόρηµα είναι αληθές u u0 : du = d (Su) + 1 u Su Ο όρος u Su σηµαίνει ότι η µεταβλητή γονέας για την διεργασία u περιέχει έναν γειτονικό κόµβο της u Λήµµα 1 Για κάθε συνεκτικό συµµετρικό γράφηµα, οι παραπάνω ευσταθής εκφράζει ένα δένδρο αναζήτησης κατά εύρος µε ϱίζα την διεργασία u0 Η ϱίζα του δέντρου u0 έχει σταθερό ύψος 0 Εποµένως σε µια ευσταθή, όλοι οι γειτονικοί κόµβοι της u0 πρέπει να έχουν ύψος 1 Αντίστοιχα, οι γειτονικοί κόµβοι των κόµβων που έχουν ύψος 1 πρέπει να έχουν ύψος 2 Και η µεταβλητή γονέας δείχνει σε ένα κόµβο µε ύψος 1 Επεκτείνοντας το επιχείρηµα για όλους τους κόµβους, είναι εµφανές ότι όλες οι µεταβλητές γονέας και τα ύψη των κόµβων σε µια ευσταθή ορίζουν ένα δένδρο αναζήτησης κατά εύρος µε ϱίζα την u0 Με αυτόν τον τρόπο δείχνουµε ότι το Λήµµα 1 ισχύει Ο στόχος του αλγόριθµου είναι να επαναφέρει το σύστηµα σε µια ευσταθή Λειτουργία Αλγόριθµου Βασική ιδέα: όταν το σύστηµα ϐρίσκεται σε µια ασταθή, τουλάχιστον ένας κόµβος είναι σε ϑέση να το αντιληφθεί και να εκτελέσει κάποιες διορθωτικές κινήσεις Ο αλγόριθµος εφαρµόζει έναν απλό οµοιόµορφο κανόνα για όλους τους κόµβους του δικτύου εκτός από την ϱίζα Ο κανόνας αποτελείται από δύο µέρη: έλεγχος και ενέργεια Ο έλεγχος είναι µια λογική συνάρτηση που ϐασίζεται στο ύψος του κόµβου και το ύψος των γειτονικών κόµβων Η ενέργεια οδηγεί τον κόµβο σε µια τοπικά ευσταθή, αλλάζοντας το ύψος του κόµβου και/ή την µεταβλητή γονέας Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός u u0 d (Su) n 1 {du d (Su) + 1 pu Su} = du = d (Su) + 1; pu = v, v Su Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα

Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα

Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Απόδειξη Ορθότητας (1) Η διεργασία r είναι η ϱίζα Κάθε κόµβος έχει ένα διακριτικό και το ύψος του στο δένδρο Η κατεύθυνση της ακµής απεικονίζει την µεταβλητή γονέας Σε κάθε γύρο, ο ενεργός κόµβος είναι υπογραµµισµένος Ο κόµβος r δεν γίνεται ποτέ ενεργός Αρχικά ο κόµβος e γίνεται ενεργός Υπάρχουν πολλές διαφορετικές εκτελέσεις για να καταλήξουµε σε µια ευσταθή ξεκινώντας από την ίδια αρχική Σε αυτό το παράδειγµα, ο αλγόριθµος συγκλίνει σε 6 ϐήµατα Ο στόχος µας είναι να αποδείξουµε τα τρία κριτήρια που ϑέσαµε αρχικά Λήµµα 2 Σε κάθε ασταθή υπάρχει τουλάχιστον ένας ενεργός κόµβος Σε µια ευσταθή κανένας κόµβος δεν είναι ενεργός, δηλ. το σύστηµα ϐρίσκεται σε αδιέξοδο Για όλες τις αρχικές καταστάσεις και για όλους τους τρόπους επιλογής ενός ενεργού κόµβου, το σύστηµα εξασφαλίζει την σύγκλιση σε µια ευσταθή σε πεπερασµένο αριθµό ϐηµάτων Σε µια ευσταθή κανένας κόµβος δεν είναι ενεργός Προκύπτει από τον κανόνα

Απόδειξη Ορθότητας (2) Λήµµα 3 Σε κάθε ασταθή υπάρχει τουλάχιστον ένας ενεργός κόµβος, δηλ. σε κάθε ασταθή είναι εγγυηµένο ότι κάποιος κόµβος ϑα εκτελέσει µια ενέργεια Αποδεικνύουµε το λήµµα µε εις άτοπον απαγωγή Εστω ότι υπάρχει µια ασταθή όπου κανένας κόµβος δεν είναι ενεργός Τότε υπάρχει ένας κόµβος u u0 τέτοιος ώστε ισχύει ότι du d (Su) + 1 ή pu Su ή και τα δυο Τότε το Su πρέπει να έχει ύψος n 1 αλλιώς ο κόµβος u ϑα γινόταν ενεργός λόγο του κανόνα Ας ϑεωρήσουµε τώρα όλους τους γειτονικοί κόµβοι του u0 (που έχει ύψος 0) Αυτοί οι κόµβοι έχουν ύψος 1 Απόδειξη Ορθότητας (3) Στην συνέχεια ϑεωρούµε όλους τους γειτονικούς κόµβους αυτών των κόµβων Αυτοί οι κόµβοι έχουν ύψος 2 Συνεχίζουµε κατά αυτόν τον τρόπο έως ότου εξαντλήσουµε όλους τους κόµβους του δικτύου Στην χειρότερη περίπτωση ένας κόµβος v µπορεί να έχει ύψος n 1... το γράφηµα είναι γραµµή / αλυσίδα µήκους n 1 Ακόµα και τότε το Su είναι αυστηρά µικρότερο του n 1 Εποµένως όταν κανένας κόµβος δεν είναι ενεργός, δεν µπορούµε να εντοπίσουµε έναν κόµβο u που να ικανοποιεί την αρχική µας υπόθεση Με αυτόν τον τρόπο δείχνουµε ότι το Λήµµα 3 ισχύει Απόδειξη Ορθότητας (4) Λήµµα 4 Ανεξαρτήτως της αρχικής ς και ανεξαρτήτως της σειράς ενεργοποίησης των κόµβων, το σύστηµα είναι εγγυηµένο ότι ϑα καταλήξει σε µια ευσταθή σε πεπερασµένο αριθµό ϐηµάτων Εφόσον το πλήθος των καταστάσεων είναι πεπερασµένο, αρκεί να δείξουµε ότι ξεκινώντας από οποιαδήποτε αρχική ασταθή, το σύστηµα δεν µπορεί να επανέρθει στην ίδια αρχική Αποδεικνύουµε το λήµµα µε εις άτοπον απαγωγή Εστω η x-οστή και y-οστή είναι πανοµοιότυπες και x y Η x-οστή είναι η που ϐρίσκεται το σύστηµα µετά από x ενέργειες, ξεκινώντας από την αρχική ασταθή Απόδειξη Ορθότητας (5) Επίσης υποθέτουµε ότι στην x-οστή ο κόµβος u (µπορεί και άλλοι κόµβοι) είναι ενεργός Αρα ο u ϑα εκτελέσει την ενέργεια x + 1 Εξετάζουµε αναλυτικά τις πιθανές ενέργειες που µπορεί να εκτελέσει ο u 1. Ο u µειώνει το ύψος κατά k 1 2. Ο u αυξάνει το ύψος κατά k 1 Και στις δύο περιπτώσεις επιχειρηµατολογούµε µε αντίστοιχο τρόπο Ας εξετάσουµε την 1η περίπτωση Πρέπει να υπάρχει κάποιος κόµβος v γειτονικός στον u µε ύψος du k 1 που οδήγησε τον u να κάνει µια ενέργεια Λειτουργούµε επαγωγικά αν υπάρχει ένας κόµβος i µε ύψος di που οδήγησε κάποιον κόµβο να κάνει µια ενέργεια

Απόδειξη Ορθότητας (6) Τότε πρέπει να υπάρχει ένας κόµβος j µε ύψος di 1 ή µικρότερο που οδήγησε τον i να κάνει µια ενέργεια Αρα πρέπει να υπάρχει και κάποιος άλλος κόµβος h γειτονικός του i που άλλαξε το ύψος του σε di + 1 Εστω ότι αυτή είναι η ενέργεια m όπου x < m < y Υπάρχουν δύο υπο-περιπτώσεις 1. Ο i ενεργοποιήθηκε, µεταξύ της ς x και m 2. Ο i δεν ενεργοποιήθηκε µεταξύ της ς x και m Στην πρώτη περίπτωση δείχνουµε ότι πρέπει να υπάρχει κάποιος κόµβος j στην δεύτερη περίπτωση ότι υπάρχει κάποιος κόµβος h Ακολουθώντας τα ϐήµατα της επαγωγής καταλήγουµε σε µια όπου κάποιος κόµβος που ενεργοποιεί έναν γειτονικό κόµβο, έχει αρνητικό ύψος... Τεχνική Power-supply Η τεχνική power-supply είναι ιδιαίτερα απλή και αρκετά γενική για να αναπτύξουµε αυτο-σταθεροποιούµενους αλγόριθµους Μπορούµε να σχεδιάσουµε αλγόριθµους για διαφορετικά προβλήµατα Εκλογή αρχηγού Αναζήτηση κατά εύρος Αναζήτηση κατά ϐάθος Οι αλγόριθµοι που ϐασίζονται στην τεχνική power-supply σταθεροποιούνται σε O(n) ϐήµατα εν απαιτείτε κάποια γνώση στην τοπολογία του δικτύου ή για το πλήθος των διεργασιών Ο αλγόριθµος που µελετήσαµε για το πρόβληµα της Αναζήτησης κατά Εύρος, µπορεί να περιγραφεί µε την τεχνική power-supply Ορίστηκε από τους Afek και Bremler το 1997 (SODA) Αυτοσταθεροποιούµενη Εκλογή Αρχηγού (1) Εφαρµόζουµε την τεχνική power-supply για να αναπτύξουµε έναν αυτο-σταθεροποιούµενο αλγόριθµο για την εκλογή αρχηγού εν απαιτεί καµία γνώση για το µέγεθος του δικτύου, την διάµετρο... Ο αλγόριθµος σταθεροποιείται σε O(n) ϐήµατα Ο αλγόριθµος εκλέγει ως αρχηγό την διεργασία µε την µικρότερη ταυτότητα Πως µπορούµε να ξεχωρίσουµε την διεργασία µε την µικρότερη ταυτότητα από άλλες διεργασίες που δηλώνουν ψεύτικες ταυτότητες ; Οι ψεύτικες ταυτότητες που µπορεί να προκύψουν απορρίπτονται από το σύστηµα χρησιµοποιώντας δύο απλούς κανόνες Κάθε κόµβος υπολογίζει την απόσταση του από τον κόµβο που ϑεωρεί αρχηγό Αυτοσταθεροποιούµενη Εκλογή Αρχηγού (2) Περιοδικά οι κόµβοι ελέγχουν την απόσταση τους µε τους γονείς τους ο γονέας είναι ο κόµβος µέσω του οποίου έµαθε για τον κόµβο που ϑεωρεί αρχηγό Οµως αυτό δεν αρκεί, καθότι µπορεί να κυκλοφορεί µια ψεύτικη ταυτότητα σε κάποιο κύκλο που έχει σχηµατιστεί, αυξάνοντας συνεχώς την απόσταση Υπάρχουν πολλοί τρόποι να αποφύγεις αυτό το πρόβληµα, π.χ. ορίζοντας ένα δένδρο, χρησιµοποιώντας κάποιο αλγόριθµο επανεκκίνησης κλπ. Η τεχνική power-supply έχει το πλεονέκτηµα ότι δουλεύει σε οποιοδήποτε δίκτυο, χωρία καµία γνώση του δικτύου Η ενέργεια είναι µια ϐασική ιδέα ένας νόµιµος αρχηγός γίνεται πηγή ενέργειας που διοχετεύει ενέργεια στο δίκτυο Οι ψεύτικοι αρχηγοί δεν µπορούν να παράγουν ενέργεια

Αυτοσταθεροποιούµενη Εκλογή Αρχηγού (3) Αυτοσταθεροποιούµενη Εκλογή Αρχηγού (4) Για να ϑεωρήσει κάποιος κόµβος έναν κόµβο ως αρχηγό, πρέπει να καταναλώσει ένα σταθερό ποσό ενέργειας Εποµένως οι ψεύτικες ταυτότητες που δεν συνδέονται µε κάποια πηγή ενέργειας, τελικά ϑα εξαφανιστούν Η ϐασική ιδέα λειτουργεί ως εξής: Ενας κόµβος u ϑεωρεί ως αρχηγό έναν νέο κόµβο umin αν λάβει ένα µήνυµα µε την ταυτότητα umin για δύο διαδοχικούς γύρους από τον ίδιο γείτονα και δεν λάβει κανένα άλλο µήνυµα µε µικρότερη ταυτότητα από κάποιον άλλο γείτονα Παρόλα αυτά, όταν ο u ϑεωρεί τον κόµβο v ως αρχηγό, δεν λάβει ένα µήνυµα µε την ταυτότητα v σε κάποιον γύρο, τότε αυτόµατα ο u αυτοανακηρύσσεται αρχηγός Για να εφαρµόσουµε την ιδέα αυτή σε ασύγχρονα κατανεµηµένα συστήµατα πρέπει να λάβουµε υπόψιν τις καθυστερήσεις που µπορεί να υπάρχουν κατά την παράδοση µηνυµάτων Κάθε µήνυµα περιέχει την ταυτότητα της διεργασίας που αυτοανακηρύχθηκε αρχηγός και την απόσταση d από την διεργασία Κανόνας 1: Για να παραµείνει µια διεργασία υπό την ηγεσία µιας διεργασίας v µε απόσταση dv > 0 ϑα πρέπει να λαµβάνει σε κάθε γύρο ένα µήνυµα µε ταυτότητα v και απόσταση d 1 Ο κανόνας εξασφαλίζει ότι µια διεργασία που είναι σε κάποιο γύρο υπό την ηγεσία µιας διεργασίας µε ψεύτικη ταυτότητα και µε την µικρότερη απόσταση (που πρέπει να είναι αναγκαστικά µεγαλύτερη του µηδενός) ϑα εγκαταλείψει τον ψεύτικο αρχηγό τον επόµενο γύρο Εποµένως εξασφαλίζει ότι η παράµετρος της ελάχιστη απόστασης που σχετίζεται µε την ψεύτικη ταυτότητα ϑα αυξάνει κατά 1 σε κάθε γύρο Αυτοσταθεροποιούµενη Εκλογή Αρχηγού (5) Ψευδοκώδικας Αλγόριθµου Κανόνας 2: Για να ϑεωρήσει για πρώτη ϕορά την διεργασία v ως αρχηγό µε απόσταση dv, ϑα πρέπει το µήνυµα < v, dv 1 > να έχει την µικρότερη ταυτότητα και να λάβει το ίδιο µήνυµα για δύο συνεχόµενους γύρους Εξασφαλίζει ότι η παράµετρος της µέγιστης απόστασης που σχετίζεται µε µια ψεύτικη ταυτότητα δεν µπορεί να αυξηθεί κατά ένα κάθε γύρο αλλά κάθε δύο γύρους εφόσον καταναλώνει την ενέργεια του αρχηγού και οι ψεύτικοι αρχηγοί δεν παράγουν ενέργεια Αν σε µια αρχικά ασταθή το σύνολο των διαφορετικών αποστάσεων που συνδέονται µε µια ψεύτικη ταυτότητα είναι d τότε το πολύ σε 2 d γύρους, οι ψεύτικες ταυτότητες ϑα εξαφανιστούν από το δίκτυο (όλη η ενέργεια ϑα έχει καταναλωθεί) Οταν καταναλωθούν όλες οι ψεύτικες ταυτότητες, η διεργασία µε την µικρότερη ταυτότητα ϑα ανακηρυχθεί αρχηγός

Ορθότητα Αλγορίθµου (1) Ορθότητα Αλγορίθµου (2) Για να αποδείξουµε την ορθότητα ϑεωρούµε µια εκτέλεση που ξεκινά από µια ακαθόριστη και δεν προκύπτουν περαιτέρω σφάλµατα ή αλλαγές στην τοπολογία Προφανώς, δύο γύρους µετά την αρχική, οι µεταβλητές (new, prev και leader) όλων των κόµβων διατηρούν τις τιµές που είχαν σταλεί από τους γείτονες Αρχικά δείχνουµε ότι σε O(n) γύρους, όλες οι ψεύτικες ταυτότητες εξαφανίζονται (καταναλώνονται) Στην συνέχεια, δείχνουµε ότι µετά από O(δ) γύρους από την εξαφάνιση των ψεύτικων ταυτοτήτων, η διεργασία µε την µικρότερη ταυτότητα στο δίκτυο ανακηρύσσεται αρχηγός από όλους τους κόµβους Θεώρηµα 1 Οι ψεύτικες ταυτότητες τελικά εξαφανίζονται Εστω fid µια ψεύτικη ταυτότητα που κυκλοφορεί στο δίκτυο Το σύνολο των αποστάσεων από την ψεύτικης ταυτότητας fid σε κάποια του δικτύου είναι: heights(fid) = {leaderu.dist u G, leaderu.id = fid} Ισχυριζόµαστε ότι για κάθε ψεύτικη ταυτότητα fid το µέγεθος της heights(fid) µειώνεται σε κάθε γύρο Το Λήµµα 1 αποδεικνύει ότι το µέγεθος της heights(fid) δεν µπορεί να αυξηθεί Το Λήµµα 2 αποδεικνύει ότι το µέγεθος της heights(fid) µειώνετε κάθε δύο γύρους Ορθότητα Αλγορίθµου (3) Ορθότητα Αλγορίθµου (4) Εστω heights r (fid) το σύνολο heights(fid) τον γύρο r Λήµµα 1 heights r 1 (fid) heights r (fid) Η απόδειξη ϐασίζεται στον ψευδοκώδικα, εφόσον για κάθε d heights r (fid) πρέπει να υπάρχει ένα d 1 heights r 1 (fid) Αλλιώς καµία διεργασία δεν ϑα έχει απόσταση d τον τρέχοντα γύρο r Συγκεκριµένα, η διεργασία u που ϑεωρεί ως αρχηγό την fid σε απόσταση d ϑα πρέπει να λάβει στην αρχή του γύρου r το µήνυµα [fid, d 1] Αρα πρέπει να υπάρχει µια γειτονική διεργασία v για την οποία, τον γύρο r 1, leaderv := [fid, d 1] Λήµµα 2 heights r 2 (fid) > heights r (fid) Σύµφωνα µε το Λήµµα 1, για κάθε d heights r (fid) πρέπει να υπάρχει ένα d 2 heights r 2 (fid) Πρέπει λοιπόν να δείξουµε ότι υπάρχει τουλάχιστον µία τιµή dm στο heights r 2 (fid) για την οποία δεν υπάρχει η τιµή dm + 2 στο heights r (fid) Εστω dm = max{heights r 2 (fid)} Θεωρούµε ότι υπάρχει ένα dm + 2 heights r (fid) και ότι η διεργασίας u Θεωρούµε ότι υπάρχει µια διεργασία u όπου leaderu = [fid, dm + 2] Αρα, στον γύρο r 2, leaderu [fid, dm + 2]

Ορθότητα Αλγορίθµου (5) Ορθότητα Αλγορίθµου (6) Εποµένως, η διεργασία u έλαβε ένα µήνυµα [fid, dm + 1] στο γύρους r 1 και r Αρα πρέπει να υπάρχει µια γειτονική διεργασία v τέτοια ώστε leaderv = [fid, dm + 1] στον γύρο r 2 Οµως αυτό είναι άτοπο εφόσον ϑεωρήσαµε ότι dm = max{heights r 2 (fid)} Με αυτόν τον τρόπο αποδεικνύουµε το 2ο λήµµα Σύµφωνα µε τα 2 λήµµατα, προκύπτει ότι το µέγεθος του συνόλου heights(fid) µειώνεται κατά τουλάχιστον 1 κάθε δύο γύρους. Με αυτόν τον τρόπο αποδεικνύουµε το ϑεώρηµα Συµπέρασµα Σε O(n) γύρους µετά το τελευταίο λάθος ή αλλαγή στην τοπολογία, όλες οι ψεύτικες ταυτότητες εξαφανίζονται Θεώρηµα 2 Σε O(δ) γύρους µετά την εξαφάνιση όλων των ψεύτικων ταυτοτήτων, η διεργασία µε την µικρότερη ταυτότητα εκλέγεται αρχηγός από όλες τις διεργασίες του δικτύου Εστω IDu η µικρότερη ταυτότητα στο δίκτυο Η απόδειξη ϐασίζεται σε µια επαγωγή στον αριθµό των γύρων µετά την εξαφάνιση όλων των ψεύτικων ταυτοτήτων Προφανώς, leaderu.id = IDu τον γύρο r0 Τον γύρο r0 + 2 κάθε διεργασία v µε απόσταση 1 από την u ϑεωρεί την u αρχηγό σε απόσταση 1 Τον γύρο r0 + 2δ ο αρχηγός όλων των διεργασιών είναι η IDu όπου δ είναι η διάµετρος του δικτύου Αρα η χρονική πολυπλοκότητα είναι O(n) Γενικός Αλγόριθµος Αυτοσταθεροποίησης Σε αντίθεση µε τον προηγούµενο αλγόριθµο, µπορούµε να ϐασιστούµε στην ιδέα της τεχνικής power-supply για να σχεδιάσουµε ένα γενικό αλγόριθµο Ο γενικός αλγόριθµος µπορεί να κατασκευάσει δέντρα αναζήτησης κατά ϐάθος αντί για το δέντρο αναζήτησης κατά εύρος που σχηµατίζεται Στην ουσία αλλάζουµε την µετρική της απόστασης µε µια άλλη µετρική Η διαφορετική µετρική ϐασίζεται στην εργασία των Z.Collin και S.Dolev, Information Processing Letters, 49:297-301, 1994 Η νέα µετρική ϐασίζεται στον ακόλουθο γενικό µηχανισµό Κάθε διεργασία που είναι υποψήφια αρχηγός έχει µια µοναδική τιµή που ονοµάζεται το zero της διεργασίας Η τιµή του zero είναι σταθερή και ορίζεται από το hardware Εχει σχέση µε την µοναδική ταυτότητα της διεργασίας Περιγραφή Μηχανισµού Στον γενικό αλγόριθµο, κάθε υποψήφια διεργασία προσπαθεί να πείσει όλες τις άλλες διεργασίες να επιλέξουν την δικιά της τιµή zero και εποµένως να δεχθούν την ηγεσία της Για να γίνει αυτό, κάθε υποψήφια προτείνει στις γειτονικές διεργασία να είναι ο γονέας της Στέλνει µια ειδική τιµή που υπολογίζεται από την συνάρτηση next στην τιµή zero Σύµφωνα µε τις προτάσεις που δέχεται η διεργασία v, διαλέγει µία µόνο διεργασία ως αρχηγό της Στην συνέχεια προσπαθεί να πείσει τις γειτονικές διεργασίες της να δεχθούν την ίδια διεργασία ως αρχηγό Στέλνει µια ειδική τιµή που υπολογίζεται και πάλι από την συνάρτηση next στην τιµή που έχει η v Η διαδικασία αυτή συνεχίζεται έως ότου µια διεργασία καταφέρει να πείσει όλο το δίκτυο

Συζήτηση Σύνοψη 9 ης ιάλεξης Για να εφαρµοστεί σωστά η τεχνική power-supply και να µπορέσουµε να παράγουµε έναν αυτο-σταθεροποιούµενο αλγόριθµο ϐασισµένη στον γενικό αλγόριθµο, πρέπει 1. Να ορίσουµε την συνάρτηση next 2. Να ορίσουµε τα κριτήρια επιλογής 3. Οι τιµές του zero να διασφαλίζουν ότι Καµία ακολουθία νόµιµων επιλογών να µην δηµιουργεί κύκλο στο δίκτυο Αν δεν προκύψουν σφάλµατα τότε ακριβώς µια υποψήφια εκλέγεται Αν δεν προκύψουν σφάλµατα τότε το δίκτυο ϕτάνει σε µια όπου καµία διεργασία δεν αλλάζει την επιλογή της ιαφορετικές επιλογές συναρτήσεων, κριτηρίων επιλογής και τιµών της zero κατασκευάζουν διαφορετικά δένδρα Προηγούµενο Μάθηµα Προηγούµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Σταθεροποίηση Σταθεροποιούµενοι Κατανεµηµένοι Αλγόριθµοι Τεχνική Power Supply Σύνοψη Μαθήµατος Σύνοψη Μαθήµατος Βιβλιογραφία Επόµενο Μάθηµα Σύνοψη Μαθήµατος Βιβλιογραφία Ασύγχρονα Κατανεµηµένα Συστήµατα Ανοχή σε Λάθη Σταθεροποίηση / Αυτο-σταθεροποιούµενοι αλγόριθµοι Βασικές Εννοιες - ορισµοί Ιδιότητες Αυτο-σταθεροποιούµενοι αλγόριθµοι Αλγόριθµος Dijkstra -- Αµοιβαίος Αποκλεισµός Αλγόριθµος StabBFS -- Αναζήτηση κατά Εύρος Τεχνική Power-supply Τόµος ΙΙ από τις Πανεπιστηµιακές Σηµειώσεις Θεµελιώδη Ζητήµατα Κατανεµηµένων Συστηµάτων (Π.Σπυράκης, Β.Ταµπακάς): 1. Κεφάλαιο 4: Κατανεµηµένα Συστήµατα µε Ανοχή σε Σφάλµατα Βιβλίο Introduction to Distributed Algorithms" (G.Tel) 1. Κεφάλαιο 13: Fault Tolerance in Distributed Systems 2. Κεφάλαιο 17: Stabilization Αλγόριθµος Εκλογής Αρχηγού

Επόµενο Μάθηµα Ασύγχρονα Κατανεµηµένα Συστήµατα Πρόβληµα Συγχρονισµού Συγχρονιστές Φυσικά Ρολόγια Συγχρονισµός Ρολογιών