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

22

Transcript of ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ - ΤΟΜΟΣ...

  • Thomas H. CormenCharles E. LeisersonRonald L. RivestClifford Stein

    Εισαγωγή στους αλγορίθµους, Τόµος II

    Απόδοση στα ελληνικά - Επιστηµονική επιµέλεια:Ιωάννης Παπαδόγγονας

    ¶·ÓÂÈÛÙËÌÈ·ÎÂÛ ∂ΉÔÛÂÈÛ ∫ÚËÙËÛΙδρυτική ∆ωρεά Παγκρητικής Ενώσεως Αµερικής

    ΗΡΑΚΛΕΙΟ 2009

  • ¶∞¡∂¶π™∆∏ªπ∞∫∂™ ∂∫¢√™∂π™ ∫ƒ∏∆∏™Ι∆ΡΥΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΡΕΥΝΑΣ

    Ηράκλειο Κρήτης, Τ.Θ. 1385, 711 10. Τηλ. 2810 391097, Fax: 2810 391085Αθήνα: Μάνης 5, 10681. Τηλ. 210 3849020-23, Fax: 210 3301583

    e-mail: [email protected]

    ΣΕΙΡΑ: ΠΑΝΕΠΙΣΤΗΜΙΑΚΗ ΒΙΒΛΙΟΘΗΚΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ / ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ

    ¢È¢ı˘ÓÙÂÛ ™ÂÈÚ·Û: °ÂˆÚÁÈÔÛ ºÚ. °ÂˆÚÁ·ÎÔÔ˘ÏÔÛ, πˆ·ÓÓËÛ ¶··‰ÔÁÁÔÓ·Û

    Τίτλος πρωτοτύπου: Introduction to Algorithms, 2nd editionc© 1990, 2001: The Massachusetts Institute of Technology - MIT Press

    c© για την ελληνική γλώσσα: 2003, Πανεπιστηµιακές Εκδόσεις ΚρήτηςΑπόδοση στα ελληνικά,επιστηµονική επιµέλεια,

    επιµέλεια έκδοσης: Ιωάννης Παπαδόγγονας (ΠΕΚ)Τελική ανάγνωση: Γεώργιος Φρ. Γεωργακόπουλος

    Μακέτα εξωϕύλλου: Βάσω Αβραµοπούλου

    ISBN set 978-960-524-224-4ΤΟΜΟΣ ΙΙ 978-960-524-226-8

  • Συνοπτικά περιεχόµενα Τόµου I

    I Θεµελιώδεις έννοιες

    1 Ο ρόλος των αλγορίθµων στις υπολογιστικές διαδικασίες 52 Προκαταρκτικές έννοιες και παρατηρήσεις 153 Ρυθµός αύξησης συναρτήσεων 424 Αναδροµικές σχέσεις 625 Πιθανοτική ανάλυση και τυχαιοκρατικοί αλγόριθµοι 90

    II Ταξινόµηση και διατακτικές στατιστικές

    6 Ταξινόµηση σωρού 1257 Ταχυταξινόµηση 1438 Ταξινόµηση σε γραµµικό χρόνο 1629 ∆ιάµεσοι και διατακτικές στατιστικές 180

    III ∆οµές δεδοµένων

    10 Στοιχειώδεις δοµές δεδοµένων 19911 Πίνακες διασποράς 22012 ∆υαδικά δένδρα αναζήτησης 25313 Μελανέρυθρα δένδρα 27314 Επαύξηση δοµών δεδοµένων 302

    IV Ανώτερες τεχνικές σχεδίασης και ανάλυσης

    15 ∆υναµικός προγραµµατισµός 32316 Άπληστοι αλγόριθµοι 37117 Αντισταθµιστική ανάλυση 408

  • vi Συνοπτικά περιεχόµενα Τόµου I

    V ∆οµές δεδοµένων προηγµένης σχεδίασης

    18 ∆ένδρα Β 43819 ∆ιωνυµικοί σωροί 45920 Σωροί Fibonacci 47921 ∆οµές δεδοµένων για παράσταση ξένων συνόλων 501

    VI Αλγόριθµοι γραϕηµάτων

    22 Στοιχειώδεις αλγόριθµοι γραϕηµάτων 52923 Ελαϕρύτατα συνδετικά δένδρα 56324 Οµοαϕετηριακές ελαϕρύτατες διαδροµές 58225 Πανζευκτικές ελαϕρύτατες διαδροµές 62326 Μέγιστη ροή 646

    VII Παράρτηµα: Μαθηµατικό υπόβαθρο

    Αʹ Αθροίσµατα Π–2Βʹ Σύνολα, σχέσεις, γραϕήµατα και άλλα Π–14Γʹ Απαρίθµηση και πιθανότητες Π–37

  • Περιεχόµενα Τόµου II

    VIII Επιλεγµένα θέµατα

    Εισαγωγή 70327 Ταξινοµητικά δίκτυα 706

    27.1 Συγκριτικά δίκτυα 70627.2 Η αρχή µηδέν-ένα 71127.3 Ένα διτονικό ταξινοµητικό δίκτυο 71427.4 Ένα συγχωνευτικό δίκτυο 71827.5 Ένα ταξινοµητικό δίκτυο 720

    28 Πράξεις σε πίνακες 72628.1 Ιδιότητες πινάκων 72628.2 Ο αλγόριθµος του Strassen για πολλαπλασιασµό πινάκων 73528.3 Επίλυση συστηµάτων γραµµικών εξισώσεων 74228.4 Αντιστροϕή πινάκων 75428.5 Συµµετρικοί θετικά ορισµένοι πίνακες και προσέγγιση ελαχίστων

    τετραγώνων 75929 Γραµµικός προγραµµατισµός 769

    29.1 Τυπική και αποκλιτική µορϕή 77629.2 ∆ιατύπωση προβληµάτων µε τη µορϕή γραµµικών προγραµµάτων

    78429.3 Ο πολυτοπικός αλγόριθµος 78929.4 ∆υϊκότητα 80329.5 Η αρχική βασική εϕικτή λύση 809

    30 Πολυώνυµα και FFT 82030.1 Αναπαράσταση πολυωνύµων 82230.2 Οι µετασχηµατισµοί DFT και FFT 82830.3 ∆ραστικές υλοποιήσεις FFT 836

  • viii Περιεχόµενα Τόµου II

    31 Αριθµοθεωρητικοί αλγόριθµοι 84631.1 Στοιχειώδεις έννοιες της θεωρίας αριθµών 84731.2 Μέγιστος κοινός διαιρέτης 85331.3 Υπολοιπική αριθµητική 85831.4 Επίλυση υπολοιπικών γραµµικών εξισώσεων 86531.5 Το κινεζικό θεώρηµα του υπολοίπου 86931.6 ∆υνάµεις ενός στοιχείου 87231.7 Το κρυπτοσύστηµα δηµόσιου κλειδιού RSA 876

    � 31.8 Έλεγχος πρώτευσης 883� 31.9 Ακέραιη παραγοντοποίηση 89232 Ταύτιση συµβολοσειρών 902

    32.1 Ο απλοϊκός αλγόριθµος ταύτισης συµβολοσειρών 90432.2 Ο αλγόριθµος Rabin-Karp 90732.3 Ταύτιση συµβολοσειρών µε πεπερασµένα αυτόµατα 912

    � 32.4 Ο αλγόριθµος Knuth-Morris-Pratt 91833 Υπολογιστική γεωµετρία 928

    33.1 Ιδιότητες ευθύγραµµων τµηµάτων 92933.2 Πώς προσδιορίζεται εάν υπάρχει ζεύγος τεµνόµενων τµηµάτων 93533.3 Εύρεση του κυρτού καλύµµατος 94233.4 Εύρεση του ζεύγους εγγύτατων σηµείων 952

    34 NP-πληρότητα 96134.1 Πολυωνυµικός χρόνος 96634.2 Επαλήθευση πολυωνυµικού χρόνου 97434.3 NP-πληρότητα και αναγωγιµότητα 97934.4 Αποδείξεις NP-πληρότητας 99034.5 NP-πλήρη προβλήµατα 998

    35 Προσεγγιστικοί αλγόριθµοι 101835.1 Το πρόβληµα του κοµβικού καλύµµατος 102035.2 Το πρόβληµα του περιοδεύοντος πωλητή 102335.3 Το πρόβληµα της κάλυψης συνόλου 102935.4 Τυχαιότητα και γραµµικός προγραµµατισµός 103435.5 Το πρόβληµα του αθροίσµατος υποσυνόλου 1039

    Γλωσσάριο (Ελληνοαγγλικό - Αγγλοελληνικό) Γ–1Βιβλιογραϕία Β–1Ευρετήριο Ε–1

  • VIII Επιλεγµένα θέµατα

  • Εισαγωγή

    Το µέρος αυτό περιλαµβάνει κάποια επιλεγµένα αλγοριθµικά ζητήµατα τα οποίαεπεκτείνουν και συµπληρώνουν την ύλη των προηγούµενων κεϕαλαίων. Ορισµένακεϕάλαια εισάγουν νέα µοντέλα υπολογισµού, όπως π.χ. τα συνδυαστικά κυκλώ-µατα ή οι παράλληλοι υπολογιστές. Άλλα καλύπτουν ειδικότερες περιοχές µελέτηςόπως η υπολογιστική γεωµετρία και η θεωρία αριθµών. Τα τελευταία δύο κεϕάλαιαπραγµατεύονται κάποιους από τους γνωστούς περιορισµούς στη σχεδίαση δραστι-κών αλγορίθµων και εισάγουν κάποιες τεχνικές για την αντιµετώπιση αυτών τωνπεριορισµών.

    Στο Κεϕάλαιο 27 παρουσιάζεται ένα παράλληλο µοντέλο υπολογισµού: τα συγ-κριτικά δίκτυα. Σε γενικές γραµµές, ένα συγκριτικό δίκτυο είναι ένας αλγόριθµοςο οποίος επιτρέπει την ταυτόχρονη εκτέλεση πολλών συγκρίσεων. Στο κεϕάλαιοαυτό θα δούµε πώς µπορεί να κατασκευαστεί ένα συγκριτικό δίκτυο που είναι σεθέση να ταξινοµεί n αριθµούς σε χρόνο O(lg2 n).

    Στο Κεϕάλαιο 28 εξετάζονται κάποιοι δραστικοί αλγόριθµοι για εκτέλεση πρά-ξεων σε πίνακες. Αϕού παρουσιαστούν ορισµένες βασικές ιδιότητες των πινάκων,αναλύεται ο αλγόριθµος του Strassen, ο οποίος επιτρέπει τον πολλαπλασιασµό δύοn × n πινάκων σε χρόνο O(n2,81). Στη συνέχεια παρουσιάζονται δύο γενικές µέ-θοδοι –η ανάλυση LU και η ανάλυση LUP– για την επίλυση γραµµικών εξισώσεωνµέσω απαλοιϕής Gauss σε χρόνο O(n3). Αποδεικνύεται επίσης ότι η αντιστροϕήπίνακα και ο πολλαπλασιασµός πινάκων µπορούν να εκτελεστούν εξίσου δραστι-κά. Τέλος, παρουσιάζεται ο τρόπος υπολογισµού µιας προσεγγιστικής λύσης τύπουελαχίστων τετραγώνων στην περίπτωση που ένα σύνολο γραµµικών εξισώσεων δενέχει ακριβή λύση.

    Το Κεϕάλαιο 29 συνίσταται στη µελέτη του γραµµικού προγραµµατισµού, όπουτο ζητούµενο είναι να µεγιστοποιηθεί ή να ελαχιστοποιηθεί κάποια ποσότητα, υπόδεδοµένους περιορισµένους πόρους και αντικρουόµενους περιορισµούς. Τα προ-βλήµατα γραµµικού προγραµµατισµού ανακύπτουν σε διάϕορες περιοχές πρακτι-κών εϕαρµογών. Το συγκεκριµένο κεϕάλαιο καλύπτει τη διατύπωση και επίλυσηγραµµικών προγραµµάτων µέσω του πολυτοπικού αλγορίθµου, που είναι ο παλαιό-τερος αλγόριθµος για γραµµικό προγραµµατισµό. Αντίθετα από πολλούς αλγορίθ-µους αυτού του βιβλίου, ο πολυτοπικός αλγόριθµος δεν έχει πολυωνυµικό χρόνο

  • 704 Μέρος VIII Επιλεγµένα θέµατα

    εκτέλεσης στη χειρότερη περίπτωση, αλλά είναι αρκετά δραστικός και χρησιµο-ποιείται ευρύτατα σε πρακτικές εϕαρµογές.

    Στο Κεϕάλαιο 30 εξετάζονται πράξεις σε πολυώνυµα, και αποδεικνύεται ότι µέ-σω µιας γνωστής τεχνικής επεξεργασίας σηµάτων –του «ταχέος µετασχηµατισµούFourier», ή FFT– είναι δυνατός ο πολλαπλασιασµός δύο πολυωνύµων βαθµού n σεχρόνο O(n lg n). ∆ιερευνώνται επίσης κάποιες δραστικές υλοποιήσεις της τεχνικήςFFT, στις οποίες συµπεριλαµβάνεται και ένα παράλληλο κύκλωµα.

    Το Κεϕάλαιο 31 πραγµατεύεται αριθµοθεωρητικούς αλγορίθµους. Μετά από µιααρχική επισκόπηση των στοιχειωδών εννοιών της θεωρίας αριθµών, παρουσιάζεταιο αλγόριθµος του Ευκλείδη για τον υπολογισµό µέγιστων κοινών διαιρετών. Ενσυνεχεία, παρουσιάζονται αλγόριθµοι για επίλυση υπολοιπικών γραµµικών εξισώ-σεων και για την ύψωση ενός αριθµού σε κάποια δύναµη modulo έναν άλλο αριθµό.Κατόπιν, εξετάζεται µια σηµαντική εϕαρµογή των αριθµοθεωρητικών αλγορίθµων:το κρυπτοσύστηµα δηµόσιου κλειδιού RSA. Το συγκεκριµένο κρυπτοσύστηµα µπο-ρεί να χρησιµοποιηθεί όχι µόνο για κρυπτογράϕηση µηνυµάτων έτσι ώστε να είναιαδύνατον να τα διαβάσει ένας επίδοξος λαθρακουστής, αλλά και για τη δηµιουρ-γία ψηϕιακών υπογραϕών. Στη συνέχεια, παρουσιάζεται ο τυχαιοκρατικός έλεγχοςπρώτευσης Miller-Rabin, ο οποίος επιτρέπει την ταχεία εύρεση µεγάλων πρώτωναριθµών –που απαιτεί ουσιώδη προϋπόθεση για το σύστηµα RSA. Τέλος το κεϕά-λαιο καλύπτει το ευρετικό τέχνασµα «ρο» του Pollard για παραγοντοποίηση ακε-ραίων και εξετάζει τις τελευταίες εξελίξεις στο ζήτηµα της ακέραιας παραγοντο-ποίησης.

    Στο Κεϕάλαιο 32 εξετάζεται το πρόβληµα της εύρεσης όλων των εµϕανίσεωνµιας δεδοµένης «µορϕοτυπικής» συµβολοσειράς σε ένα δεδοµένο κείµενο, πρό-βληµα το οποίο ανακύπτει συχνά στα προγράµµατα επεξεργασίας κειµένου. Αϕούεξεταστεί η απλοϊκή µέθοδος αντιµετώπισης του προβλήµατος, παρουσιάζεται ηκοµψή τεχνική των Rabin και Karp. Εν συνεχεία, παρατίθεται µια δραστική λύσηπου βασίζεται σε πεπερασµένα αυτόµατα,και κατόπιν ο αλγόριθµος Knuth-Morris-Pratt, ο οποίος επιτυγχάνει αυξηµένη δραστικότητα µε έξυπνη προεπεξεργασία τουµορϕοτύπου.

    Το Κεϕάλαιο 33 έχει ως αντικείµενο την υπολογιστική γεωµετρία. Αϕού εξετα-στούν κάποια βασικά στοιχεία της υπολογιστικής γεωµετρίας, παρουσιάζεται µιαµέθοδος «σάρωσης» µε την οποία µπορεί να προσδιοριστεί δραστικά εάν σε ένασύνολο ευθύγραµµων τµηµάτων υπάρχει έστω ένα ζεύγος τεµνόµενων τµηµάτων.Οι δυνατότητες των µεθόδων σάρωσης αναδεικνύονται περαιτέρω µέσω δύο έξυ-πνων αλγορίθµων για την εύρεση του κυρτού καλύµµατος ενός συνόλου στοιχείων–της σάρωσης Graham και της προέλασης Jarvis. Το κεϕάλαιο ολοκληρώνεται µεέναν δραστικό αλγόριθµο για την εύρεση του ζεύγους εγγύτατων σηµείων σε έναδεδοµένο σύνολο σηµείων στο επίπεδο.

    Το Κεϕάλαιο 34 αϕορά τα NP-πλήρη προβλήµατα. Πολλά ενδιαϕέροντα υπο-λογιστικά προβλήµατα είναι NP-πλήρη, χωρίς να έχει βρεθεί για κανένα από αυτάαλγόριθµος πολυωνυµικού χρόνου. Στο κεϕάλαιο αυτό παρουσιάζονται τεχνικέςµε τις οποίες µπορεί να προσδιοριστεί πότε ένα πρόβληµα είναι NP-πλήρες. ∆ιά-ϕορα κλασικά προβλήµατα είναι αποδεδειγµένα NP-πλήρη: ο προσδιορισµός τουεάν ένα γράϕηµα περιέχει χαµιλτονιανό κύκλο, ο προσδιορισµός του εάν ένας λο-γικός τύπος είναι αληθεύσιµος, και ο προσδιορισµός του εάν ένα δεδοµένο σύνολοαριθµών έχει υποσύνολο του οποίου τα στοιχεία να έχουν άθροισµα µια δεδοµένη

  • Μέρος VIII Επιλεγµένα θέµατα 705

    τιµή-στόχο. Στο κεϕάλαιο αυτό αποδεικνύεται επίσης ότι το περιβόητο πρόβληµατου περιοδεύοντος πωλητή είναι NP-πλήρες.

    Στο Κεϕάλαιο 35 εξετάζεται η χρήση προσεγγιστικών αλγορίθµων για τη δρα-στική εύρεση προσεγγιστικών λύσεων για NP-πλήρη προβλήµατα. Για ορισµέναNP-πλήρη προβλήµατα είναι σχετικά εύκολο να βρεθούν προσεγγιστικές λύσειςπου να είναι σχεδόν βέλτιστες, ενώ για άλλα ακόµη και οι καλύτεροι γνωστοί προ-σεγγιστικοί αλγόριθµοι παρουσιάζουν σταδιακά χειρότερη επίδοση καθώς αυξά-νεται το µέγεθος του προβλήµατος. Υπάρχουν τέλος ορισµένα προβλήµατα όπουόσο περισσότερο υπολογιστικό χρόνο αϕιερώσει κανείς τόσο καλύτερη θα είναικαι η προσεγγιστική λύση που θα πάρει. Τα παραπάνω ενδεχόµενα παρουσιάζον-ται στο κεϕάλαιο αυτό µέσω του προβλήµατος του κοµβικού καλύµµατος (στηναβαρή και την εµβαρή εκδοχή του), µιας βελτιστοποιητικής εκδοχής της αληθευσι-µότητας 3-ΣΚΜ, του προβλήµατος του περιοδεύοντος πωλητή, του προβλήµατοςτης κάλυψης συνόλου, και του προβλήµατος του αθροίσµατος υποσυνόλου.

  • 27 Ταξινοµητικά δίκτυα

    Στο Μέρος II, µελετήσαµε αλγορίθµους ταξινόµησης για σειριακούς υπολογιστές(µηχανές άµεσης προσπέλασης, ή αλλιώς RAM), οι οποίοι έχουν τη δυνατότητα ναεκτελούν µόνο µία πράξη κάθε ϕορά. Στο κεϕάλαιο αυτό, θα µελετήσουµε αλγο-ρίθµους που βασίζονται σε ένα διαϕορετικό µοντέλο υπολογισµού, το µοντέλο τουλεγόµενου «συγκριτικού δικτύου», το οποίο επιτρέπει την ταυτόχρονη εκτέλεσηπολλών πράξεων σύγκρισης.

    Τα συγκριτικά δίκτυα διαϕέρουν από τις µηχανές άµεσης προσπέλασης κατά δύοσηµαντικές απόψεις. Πρώτον, δεν έχουν καµία άλλη δυνατότητα πέραν της εκτέ-λεσης συγκρίσεων. Εποµένως, ένας αλγόριθµος όπως η απαριθµητική ταξινόµηση(βλ. Ενότητα 8.2) δεν είναι δυνατόν να υλοποιηθεί σε ένα τέτοιο δίκτυο. ∆εύτερον,αντίθετα απ’ ό,τι στο µοντέλο RAM, όπου οι πράξεις λαµβάνουν χώρα σειριακά–δηλαδή, η µία κατόπιν της άλλης–, σε ένα συγκριτικό δίκτυο οι πράξεις µπορούννα πραγµατοποιούνται ταυτόχρονα, ή «παράλληλα». Όπως θα δούµε, αυτή η ιδιό-τητα επιτρέπει την κατασκευή συγκριτικών δικτύων τα οποία ταξινοµούν n τιµέςσε υπογραµµικό χρόνο.

    Ως πρώτο βήµα, στην Ενότητα 27.1 διατυπώνεται ο ορισµός των συγκριτικώνδικτύων και των ταξινοµητικών δικτύων. Παρατίθεται επίσης ένας ϕυσικός ορι-σµός του «χρόνου εκτέλεσης» ενός συγκριτικού δικτύου συναρτήσει του βάθουςτου. Στην Ενότητα 27.2 αποδεικνύεται η «αρχή µηδέν-ένα», η οποία διευκολύνειεξαιρετικά το έργο της ανάλυσης ορθότητας των ταξινοµητικών δικτύων.

    Το δραστικό ταξινοµητικό δίκτυο το οποίο θα σχεδιάσουµε είναι κατ’ ουσίαν µιαπαράλληλη εκδοχή του αλγορίθµου της συγχωνευτικής ταξινόµησης που παρου-σιάστηκε στην Ενότητα 2.3.1. Η διαδικασία της κατασκευής αποτελείται από τρίαβήµατα. Στην Ενότητα 27.3 παρουσιάζεται η σχεδίαση ενός «διτονικού» ταξινοµη-τή, ο οποίος θα αποτελέσει και το βασικό δοµικό µας στοιχείο. Στην Ενότητα 27.4,ο διτονικός ταξινοµητής τροποποιείται ελαϕρά προκειµένου να παραχθεί ένα συγ-χωνευτικό δίκτυο που είναι σε θέση να συγχωνεύει δύο ταξινοµηµένες ακολουθίεςσε µία ταξινοµηµένη ακολουθία. Τέλος, στην Ενότητα 27.5, τα συγχωνευτικά αυτάδίκτυα «συναρµολογούνται» σε ένα ταξινοµητικό δίκτυο που µπορεί να ταξινοµείn τιµές σε χρόνο O(lg2 n).

    27.1 Συγκριτικά δίκτυα

    Τα ταξινοµητικά δίκτυα είναι συγκριτικά δίκτυα που ταξινοµούν πάντοτε την εί-σοδό τους, και εποµένως είναι εύλογο να ξεκινήσουµε την παρουσίασή µας µε τα

  • 27.1 Συγκριτικά δίκτυα 707

    συγκριτής

    (α) (β)

    7

    3

    3

    7

    x

    y

    xʹ = min(x, y)

    yʹ = max(x, y)

    x

    y

    xʹ = min(x, y)

    yʹ = max(x, y)

    Σχήµα 27.1 (α) Ένας συγκριτής µε εισόδους x ,και y και εξόδους x′ και y′. (β) Ο ίδιος συγκρι-τής, σχεδιασµένος ως µια απλή κατακόρυϕη γραµµή. Στο συγκεκριµένο παράδειγµα, οι είσοδοι είναιx = 7, y = 3 και οι έξοδοι x′ = 3, y′ = 7.

    συγκριτικά δίκτυα και τις ιδιότητές τους. Ένα συγκριτικό δίκτυο αποτελείται απο-κλειστικά από αγωγούς και συγκριτές. Ένας συγκριτής (Σχήµα 27.1(α)) είναι µιασυσκευή µε δύο εισόδους, x και y, και δύο εξόδους, x′ και y′, η οποία υπολογίζειτην ακόλουθη συνάρτηση:

    x′ = min(x, y) ,y′ = max(x, y) .

    Επειδή η γραϕική αναπαράσταση ενός συγκριτή κατά το πρότυπο του Σχήµα-τος 27.1(α) είναι υπερβολικά «ανοικονόµητη» για τους σκοπούς µας, κατά σύµβασηθα απεικονίζουµε τους συγκριτές ως απλές κατακόρυϕες γραµµές, όπως ϕαίνεταιστο Σχήµα 27.1(β). Οι είσοδοι αναγράϕονται στα αριστερά και οι έξοδοι στα δε-ξιά, ενώ η µικρότερη από τις δύο τιµές εισόδου αναγράϕεται στο επάνω µέρος τηςεξόδου και η µεγαλύτερη στο κάτω. Εποµένως, µπορεί κανείς να θεωρεί ότι έναςσυγκριτής ταξινοµεί τις δύο εισόδους του.

    Θα υποθέσουµε ότι ο κάθε συγκριτής έχει χρόνο εκτέλεσης O(1). Με άλλα λό-για, θα υποθέσουµε ότι ανάµεσα στην εµϕάνιση των τιµών εισόδου x και y και στηνπαραγωγή των τιµών εξόδου x′ και y′ µεσολαβεί κάποιο σταθερό χρονικό διάστη-µα.

    Ένας αγωγός µεταβιβάζει µια τιµή από κάποιο σηµείο σε κάποιο άλλο. Οι αγω-γοί µπορούν να συνδέουν την έξοδο ενός συγκριτή µε την είσοδο ενός άλλου, ήνα είναι αγωγοί εισόδου ή εξόδου του δικτύου. Στο κεϕάλαιο αυτό, υποθέτουµε ενγένει ότι ένα συγκριτικό δίκτυο περιλαµβάνει n αγωγούς εισόδου a1, a2, . . . , an,µέσω των οποίων εισέρχονται στο δίκτυο οι ταξινοµητέες τιµές, και n αγωγούς εξό-δου b1, b2, . . . , bn, οι οποίοι αποδίδουν τα αποτελέσµατα που υπολογίζει το δίκτυο.Επίσης, ορίζουµε ως ακολουθία εισόδου 〈a1, a2, . . . , an〉 και ακολουθία εξόδου〈b1, b2, . . . , bn〉 τις τιµές των αγωγών εισόδου και εξόδου, αντίστοιχα. ∆ηλαδή,χρησιµοποιούµε την ίδια ονοµασία τόσο για τον ίδιο τον αγωγό όσο και για τηντιµή που ϕέρει. Το πού αναϕερόµαστε κάθε ϕορά θα είναι σαϕές από τα συµϕρα-ζόµενα.

    Στο Σχήµα 27.2 βλέπουµε ένα συγκριτικό δίκτυο, το οποίο αποτελείται από ένασύνολο συγκριτών συνδεδεµένων µέσω αγωγών. Ένα συγκριτικό δίκτυο n εισόδωνσχεδιάζεται ως ένα σύνολο n οριζόντιων γραµµών µε συγκριτές οι οποίοι εκτείνον-ται στην κατακόρυϕη διεύθυνση. Σηµειωτέον ότι µια γραµµή δεν αντιπροσωπεύειέναν µόνο αγωγό, αλλά µια αλληλουχία διακεκριµένων αγωγών οι οποίοι συνδέουνδιάϕορους συγκριτές. Στο Σχήµα 27.2, παραδείγµατος χάριν, η πρώτη γραµµή απόπάνω αντιπροσωπεύει τρεις αγωγούς: τον αγωγό εισόδου a1, ο οποίος συνδέεται µεµια είσοδο του συγκριτή A. έναν αγωγό ο οποίος συνδέει την επάνω έξοδο του συγ-κριτή A µε µια είσοδο του συγκριτή C . και τον αγωγό εξόδου b1, ο οποίος εξέρχεται

  • 708 Κεϕάλαιο 27 Ταξινοµητικά δίκτυα

    a1

    a2

    a3

    a4

    a1

    a2

    a3

    a4

    b1

    b2

    b3

    b4

    b1

    b2

    b3

    b4

    b1

    b2

    b3

    b4

    a1

    a2

    a3

    a4

    A

    B

    C

    D

    E

    a1

    a2

    a3

    a4

    b1

    b2

    b3

    b4

    (α)

    9

    5

    2

    6

    (β)

    9

    5

    2

    6

    5

    9

    2

    6

    (γ)2 2

    2

    9

    6

    5

    (δ)3

    5

    6

    9

    5

    2

    6

    1

    9

    5

    2

    6

    βάθος

    5

    9

    2

    6

    9

    5

    2

    6

    2

    2

    9

    6

    5

    9

    5

    2

    6

    5

    9

    2

    6

    9

    5

    2

    6

    1

    2

    9

    A

    B

    C

    D

    E

    A

    B

    C

    D

    E

    A

    B

    C

    D

    E

    1 21 1βάθος

    1βάθος

    Σχήµα 27.2 (α) Ένα συγκριτικό δίκτυο µε 4 εισόδους και 4 εξόδους, το οποίο στην πραγµατικότηταείναι ένα ταξινοµητικό δίκτυο. Τη χρονική στιγµή 0, εµϕανίζονται στους τέσσερεις αγωγούς εισόδουοι αναγραϕόµενες τιµές εισόδου. (β) Τη χρονική στιγµή 1, εµϕανίζονται στις εξόδους των συγκριτώνA και B, οι οποίες βρίσκονται σε βάθος 1, οι αναγραϕόµενες τιµές. (γ) Τη χρονική στιγµή 2, εµϕα-νίζονται στις εξόδους των συγκριτών C και D, οι οποίες βρίσκονται σε βάθος 2, οι αναγραϕόµενεςτιµές. Στο σηµείο αυτό, οι αγωγοί εξόδου b1 και b4 έχουν λάβει τις τελικές τους τιµές, ενώ οι αγω-γοί εξόδου b2 και b3 όχι. (δ) Τη χρονική στιγµή 3, εµϕανίζονται στις εξόδους του συγκριτή E, πουβρίσκονται σε βάθος 3, οι αναγραϕόµενες τιµές. Οι αγωγοί εξόδου b2 και b3 έχουν πλέον λάβει τιςτελικές τους τιµές.

    από την επάνω έξοδο του συγκριτή C . Η κάθε είσοδος ενός συγκριτή συνδέεται µεέναν αγωγό ο οποίος είτε είναι κάποιος από τους n αγωγούς εισόδου του δικτύου,a1, a2, . . . , an, είτε συνδέεται µε την έξοδο κάποιου άλλου συγκριτή. Αντίστοιχα,η κάθε έξοδος ενός συγκριτή συνδέεται µε έναν αγωγό ο οποίος είτε είναι κάποιοςαπό τους n αγωγούς εξόδου του δικτύου, b1, b2, . . . , bn, είτε συνδέεται µε την είσο-δο κάποιου άλλου συγκριτή. Η βασική συνθήκη που πρέπει να πληροί η διασύνδεσησυγκριτών είναι ότι το γράϕηµα των διασυνδέσεων θα πρέπει να είναι άκυκλο: εάνδιατρέξουµε µια διαδροµή από την έξοδο ενός δεδοµένου συγκριτή µέχρι την είσο-δο κάποιου άλλου, και από εκεί σε κάποια έξοδο, και εν συνεχεία σε κάποια είσοδο,κ.λπ., η διαδροµή αυτή δεν θα πρέπει να επανέρχεται ποτέ στον εαυτό της και ναδιέρχεται από την ίδιο συγκριτή ξανά. Εποµένως µπορούµε, όπως στο Σχήµα 27.2,να σχεδιάσουµε ένα συγκριτικό δίκτυο τοποθετώντας τις εισόδους του αριστεράκαι τις εξόδους του δεξιά. τα δεδοµένα µετακινούνται δια µέσου του δικτύου απότα αριστερά προς τα δεξιά.

    Ο κάθε συγκριτής παράγει τις τιµές εξόδου του µόνο όταν έχει στη διάθεσή τουαµϕότερες τις τιµές εισόδου του. Στο Σχήµα 27.2(α), παραδείγµατος χάριν, έστω ότιη ακολουθία 〈9, 5, 2, 6〉 εµϕανίζεται στους αγωγούς εισόδου τη χρονική στιγµή 0.Τη στιγµή 0, εποµένως, µόνο οι συγκριτές A και B έχουν στη διάθεσή τους όλεςτις τιµές εισόδου τους. Εάν δεχθούµε ότι κάθε συγκριτής χρειάζεται µία µονάδαχρόνου για να υπολογίσει τις τιµές εξόδου του, έπεται ότι οι συγκριτές A και B πα-

  • 27.1 Συγκριτικά δίκτυα 709

    ράγουν τις εξόδους τους τη χρονική στιγµή 1. οι προκύπτουσες τιµές αναγράϕονταιστο Σχήµα 27.2(β). Σηµειωτέον ότι οι συγκριτές A και B παράγουν τις τιµές τουςταυτόχρονα, ή «παράλληλα». Εν συνεχεία, τη χρονική στιγµή 1, οι συγκριτές Cκαι D, έχουν στη διάθεσή τους όλες τις τιµές εισόδου τους, κάτι που δεν ισχύειόµως για τον E. Μία µονάδα χρόνου αργότερα, τη χρονική στιγµή 2, οι συγκεκρι-µένοι συγκριτές παράγουν τις εξόδους τους, όπως βλέπουµε στο Σχήµα 27.2(γ). Οισυγκριτές C και D λειτουργούν επίσης παράλληλα. Η επάνω έξοδος του συγκρι-τή C και η κάτω έξοδος του συγκριτή D συνδέονται µε τους αγωγούς εξόδου b1και b4, αντίστοιχα, του συγκριτικού δικτύου, και εποµένως αυτοί οι αγωγοί εξόδουτου δικτύου ϕέρουν τις τελικές τους τιµές τη χρονική στιγµή 2. Εν τω µεταξύ, τηχρονική στιγµή 2, ο συγκριτής E έχει στη διάθεσή του τις εισόδους του, και εποµέ-νως, όπως βλέπουµε στο Σχήµα 27.2(δ), παράγει µε τη σειρά του τις τιµές εξόδουτου τη χρονική στιγµή 3. Οι τιµές αυτές µεταβιβάζονται στους αγωγούς εξόδουτου δικτύου b2 και b3, και εποµένως η ακολουθία εξόδου 〈2, 5, 6, 9〉 έχει πλέονολοκληρωθεί.

    Υπό την παραδοχή ότι κάθε συγκριτής χρειάζεται µοναδιαίο χρόνο, µπορούµενα ορίσουµε τον «χρόνο εκτέλεσης» ενός συγκριτικού δικτύου, δηλαδή τον χρόνοπου απαιτείται προκειµένου όλοι οι αγωγοί εξόδου να λάβουν τις τιµές τους απότη στιγµή που οι αγωγοί εισόδου λαµβάνουν τις δικές τους. Άτυπα, ο χρόνος αυ-τός ισούται µε το µέγιστο πλήθος συγκριτών από τους οποίους µπορεί να διέλθειοποιοδήποτε στοιχείο εισόδου κατά τη µεταϕορά του από έναν αγωγό εισόδου µέ-χρι έναν αγωγό εξόδου. Σε τυπικό επίπεδο, ορίζουµε το βάθος ενός αγωγού ωςεξής. Οποιοσδήποτε αγωγός εισόδου ενός συγκριτικού δικτύου έχει βάθος 0. Πε-ραιτέρω, εάν ένας συγκριτής έχει δύο αγωγούς εισόδου µε βάθη dx και dy , τότε οιαγωγοί εξόδου του έχουν βάθος max(dx, dy)+1. ∆εδοµένου ότι σε ένα συγκριτικόδίκτυο δεν υπάρχουν κύκλοι συγκριτών, το βάθος ενός αγωγού είναι καλά ορισµέ-νο, και ορίζουµε ως βάθος ενός συγκριτή το βάθος των αγωγών εξόδου του. ΣτοΣχήµα 27.2 παρατίθενται τα βάθη των διαϕόρων συγκριτών. Το βάθος ενός συγ-κριτικού δικτύου ισούται µε το µέγιστο από τα βάθη όλων των αγωγών εξόδου ή,ισοδύναµα, µε το µέγιστο από τα βάθη όλων των συγκριτών. Το συγκριτικό δίκτυοτου Σχήµατος 27.2, παραδείγµατος χάριν, έχει βάθος 3, διότι ο συγκριτής E έχειβάθος 3. Εάν κάθε συγκριτής χρειάζεται µία µονάδα χρόνου για να παραγάγει τηντιµή εξόδου του, και εάν οι τιµές εισόδου του δικτύου δίνονται τη χρονική στιγ-µή 0, τότε ένας συγκριτής βάθους d παράγει την έξοδό του τη χρονική στιγµή d.εποµένως, το βάθος του δικτύου ισούται µε τον χρόνο που απαιτείται προκειµένουτο δίκτυο να παραγάγει τιµές σε όλους τους αγωγούς εξόδου του.

    Ένα ταξινοµητικό δίκτυο είναι ένα συγκριτικό δίκτυο στο οποίο η ακολουθία εξό-δου είναι µονότονα αύξουσα (δηλαδή, b1 ≤ b2 ≤ · · · ≤ bn) για κάθε ακολουθίαεισόδου. Αν και τα συγκριτικά δίκτυα δεν είναι, ϕυσικά, όλα ταξινοµητικά, ωστόσοτο δίκτυο του Σχήµατος 27.2 είναι. Αυτό µπορεί να διαπιστωθεί ως εξής. Παρατη-ρούµε ότι µετά από τη χρονική 1, η ελάχιστη από τις τέσσερεις τιµές εισόδου έχειεµϕανιστεί είτε στην επάνω έξοδο του συγκριτή A είτε στην επάνω έξοδο του συγ-κριτή B. Εποµένως, µετά από τη χρονική στιγµή 2, θα πρέπει να βρίσκεται στηνεπάνω έξοδο του συγκριτή C . Με αντίστοιχο σκεπτικό, συµπεραίνουµε ότι µετά τηχρονική στιγµή 2, η µέγιστη από τις τέσσερεις τιµές εισόδου έχει εµϕανιστεί στηνκάτω έξοδο του συγκριτή D. Το µόνο που αποµένει είναι να εξασϕαλιστεί µέσω τουσυγκριτή E ότι οι δύο ενδιάµεσες τιµές καταλαµβάνουν τις σωστές θέσεις εξόδου,το οποίο συµβαίνει τη χρονική στιγµή 3.

  • 710 Κεϕάλαιο 27 Ταξινοµητικά δίκτυα

    Ένα συγκριτικό δίκτυο µοιάζει µε µια διαδικασία από την άποψη ότι καθορίζειπώς πρόκειται να εκτελεστούν οι συγκρίσεις, αλλά διαϕέρει από την άποψη ότι τοµέγεθός του –το πλήθος των συγκριτών που περιέχει– εξαρτάται από το πλήθοςτων εισόδων και των εξόδων. Ως εκ τούτου, η περιγραϕή µας αϕορά στην πραγ-µατικότητα «οικογένειες» συγκριτικών δικτύων. Παραδείγµατος χάριν, ο στόχοςτου κεϕαλαίου αυτού είναι η ανάπτυξη µιας οικογένειας δραστικών ταξινοµητικώνδικτύων, την οποία αποκαλούµε ∆·ÍÈÓÔÌËÙËÛ. Για να αναϕερθούµε σε ένα δεδο-µένο δίκτυο-µέλος κάποιας οικογένειας, δηλώνουµε την ονοµασία της οικογένειαςκαι το πλήθος των εισόδων (το οποίο ισούται µε το πλήθος των εξόδων). Παρα-δείγµατος χάριν, το ταξινοµητικό δίκτυο n εισόδων και n εξόδων της οικογένειας∆·ÍÈÓÔÌËÙËÛ ονοµάζεται ∆·ÍÈÓÔÌËÙËÛ[n].

    Ασκήσεις

    27.1-1Προσδιορίστε τις τιµές που εµϕανίζονται σε όλους τους αγωγούς του δικτύου τουΣχήµατος 27.2 όταν δίνεται ως είσοδος η ακολουθία〈9, 6, 5, 2〉.

    27.1-2Έστω ότι το n είναι κάποια δύναµη του 2. ∆είξτε πώς µπορεί να κατασκευαστεί ένασυγκριτικό δίκτυο n εισόδων και n εξόδων µε βάθος lg n στο οποίο ο πρώτος απόπάνω αγωγός εξόδου ϕέρει πάντοτε την ελάχιστη τιµή εισόδου και ο πρώτος απόκάτω τη µέγιστη.

    27.1-3Προσθέτοντας έναν συγκριτή σε ένα ταξινοµητικό δίκτυο, µπορούµε να πάρουµεένα συγκριτικό δίκτυο που δεν είναι ταξινοµητικό. ∆είξτε πώς µπορεί να προστεθείένας συγκριτής στο δίκτυο του Σχήµατος 27.2 µε τέτοιον τρόπο ώστε το προκύπτονδίκτυο να µην ταξινοµεί όλες τις µεταθέσεις της εισόδου.

    27.1-4Αποδείξτε ότι οποιοδήποτε ταξινοµητικό δίκτυο µε n εισόδους έχει βάθος µεγαλύ-τερο ή ίσο του lg n.

    27.1-5Αποδείξτε ότι το πλήθος των συγκριτών σε οποιοδήποτε ταξινοµητικό δίκτυο είναιΩ(n lg n).

    27.1-6Έστω το συγκριτικό δίκτυο του Σχήµατος 27.3. Αποδείξτε ότι το συγκεκριµένοδίκτυο είναι στην πραγµατικότητα ταξινοµητικό, και περιγράψτε πώς σχετίζεται ηδοµή του µε εκείνη της ενθετικής ταξινόµησης (Ενότητα 2.1).

    27.1-7Ένα συγκριτικό δίκτυο n εισόδων µε c συγκριτές µπορεί να αναπαρασταθεί ως έναςκατάλογος από c ζεύγη ακεραίων στο διάστηµα από 1 έως n. Εάν δύο ζεύγη περι-λαµβάνουν κάποιον ακέραιο από κοινού, η σειρά των αντίστοιχων συγκριτών στοδίκτυο καθορίζεται από τη σειρά των ζευγών στον κατάλογο. Με δεδοµένη αυτήντην αναπαράσταση, περιγράψτε έναν (σειριακό) αλγόριθµο χρόνου O(n + c) γιατον προσδιορισµό του βάθους ενός συγκριτικού δικτύου.

  • 27.2 Η αρχή µηδέν-ένα 711

    a1a2a3a4a5a6a7a8

    b1b2b3b4b5b6b7b8

    Σχήµα 27.3 Το συγκριτικό δίκτυο που χρησιµοποιείται στην Άσκηση 27.1-6, και το οποίο βασίζεταιστην ενθετική ταξινόµηση.

    27.1-8 �Ας υποθέσουµε ότι εκτός από τον «συµβατικό» τύπο συγκριτή εισάγουµε επίσηςένα είδος «ανεστραµµένου» συγκριτή ο οποίος εξάγει το µικρότερο από τα στοιχείαεξόδου του στον κάτω αγωγό και το µεγαλύτερο στον πάνω. ∆είξτε πώς µπορείνα µετατραπεί οποιοδήποτε ταξινοµητικό δίκτυο που αποτελείται από c συνολικάσυµβατικούς και ανεστραµµένους συγκριτές σε ένα δίκτυο που αποτελείται από cσυµβατικούς. Αποδείξτε ότι η µέθοδος µετατροπής που καταστρώσατε είναι ορθή.

    27.2 Η αρχή µηδέν-ένα

    Η αρχή µηδέν-ένα ορίζει ότι εάν ένα ταξινοµητικό δίκτυο λειτουργεί σωστά ότανόλα τα στοιχεία εισόδου προέρχονται από το σύνολο {0, 1}, τότε λειτουργεί σω-στά και για οποιουσδήποτε αριθµούς εισόδου. (Οι αριθµοί αυτοί µπορεί να είναιακέραιοι, πραγµατικοί, ή εν γένει οποιοδήποτε σύνολο τιµών οι οποίες προέρχον-ται από κάποιο γραµµικά διατεταγµένο σύνολο.) Στο πλαίσιο της κατασκευής τα-ξινοµητικών και άλλων συγκριτικών δικτύων, η αρχή µηδέν-ένα µας επιτρέπει ναεστιάσουµε την προσοχή µας στη λειτουργία αυτών των δικτύων επί ακολουθιώνεισόδου που αποτελούνται αποκλειστικά από 0 και 1. Άπαξ και κατασκευάσουµεένα ταξινοµητικό δίκτυο και αποδείξουµε ότι µπορεί να ταξινοµήσει οποιαδήποτεακολουθία τύπου µηδέν-ένα, επικαλούµαστε την αρχή µηδέν-ένα για να αποδεί-ξουµε ότι ταξινοµεί σωστά και ακολουθίες αυθαίρετων τιµών.

    Η απόδειξη της αρχής µηδέν-ένα βασίζεται στην έννοια της µονότονα αύξουσαςσυνάρτησης (Ενότητα 3.2).

    Λήµµα 27.1Εάν ένα συγκριτικό δίκτυο µετασχηµατίζει την ακολουθία εισόδου a = 〈a1, a2,. . . , an〉 στην ακολουθία εξόδου b = 〈b1, b2, . . . , bn〉, τότε για οποιαδήποτε µο-νότονα αύξουσα συνάρτηση f , το δίκτυο µετασχηµατίζει την ακολουθία εισόδουf(a) = 〈f(a1), f(a2), . . . , f(an)〉 στην ακολουθία εξόδου f(b) = 〈f(b1), f(b2),. . . , f(bn)〉.

    Απόδειξη Κατ’ αρχάς, θα αποδείξουµε ότι εάν η f είναι µια µονότονα αύξουσασυνάρτηση, τότε ένας µεµονωµένος συγκριτής που δέχεται ως είσοδο τις τιµές f(x)

  • 712 Κεϕάλαιο 27 Ταξινοµητικά δίκτυα

    f (x)

    f (y) max(f (x)), f (y)) = f (max(x, y))

    min(f (x)), f (y)) = f (min(x, y))

    Σχήµα 27.4 Η λειτουργία του συγκριτή που περιγράϕεται στην απόδειξη του Λήµµατος 27.1. Ησυνάρτηση f είναι µονότονα αύξουσα.

    και f(y) αποδίδει ως έξοδο τις τιµές f(min(x, y)) και f(max(x, y)). Κατόπιν, θααποδείξουµε το λήµµα µέσω επαγωγής.

    Για να αποδείξουµε τον παραπάνω ισχυρισµό, θεωρούµε έναν συγκριτή ο οποίοςδέχεται ως είσοδο τις τιµές x και y. Ο συγκριτής αυτός αποδίδει στην πάνω έξοδοτην τιµή min(x, y) και στην κάτω την τιµή max(x, y). Ας υποθέσουµε στη συνέχειαότι εισάγουµε στις εισόδους του συγκριτή τις τιµές f(x) και f(y), όπως ϕαίνεταιστο Σχήµα 27.4, οπότε ο συγκριτής αποδίδει την τιµή min(f(x), f(y)) στην πάνωέξοδο και την τιµή max(f(x), f(y)) στην κάτω. ∆εδοµένου ότι η f είναι µονότονααύξουσα, η σχέση x ≤ y συνεπάγεται ότι f(x) ≤ f(y). Εποµένως, παίρνουµε τιςταυτότητες

    min(f(x), f(y)) = f(min(x, y)) ,max(f(x), f(y)) = f(max(x, y)) .

    Συνεπώς, όταν ο συγκριτής δέχεται ως είσοδο τις τιµές f(x) και f(y) αποδίδει τιςτιµές f(min(x, y)) και f(max(x, y)), οπότε ο ισχυρισµός έχει αποδειχθεί.

    Χρησιµοποιώντας επαγωγή ως προς το βάθος του κάθε αγωγού σε ένα τυχόνσυγκριτικό δίκτυο, µπορούµε να αποδείξουµε ένα αποτέλεσµα ισχυρότερο από τοζητούµενο λήµµα: εάν ένας αγωγός λαµβάνει την τιµή ai όταν εισάγεται στο δίκτυοη ακολουθία a, τότε, όταν εισαχθεί στο δίκτυο η ακολουθία f(a) θα λάβει την τιµήf(ai). ∆εδοµένου ότι η παραπάνω πρόταση περιλαµβάνει τους αγωγούς εξόδου,αποδεικνύοντάς την αποδεικνύουµε και το λήµµα.

    Όσον αϕορά την εναρκτήρια περίπτωση, έστω ένας αγωγός σε βάθος 0, δηλαδήένας αγωγός εισόδου ai. Στην περίπτωση αυτή, το αποτέλεσµα έπεται κατά τετριµ-µένο τρόπο: εάν εϕαρµοστεί στο δίκτυο η συνάρτηση f , ο αγωγός εισόδου ϕέρειτην τιµή f(ai). Όσον αϕορά το επαγωγικό βήµα, έστω ένας αγωγός σε βάθος d,όπου d ≥ 1. Ο αγωγός αυτός είναι η έξοδος ενός συγκριτή σε βάθος d, και οι αγω-γοί εισόδου αυτού του συγκριτή βρίσκονται σε βάθος µικρότερο του d. Από τηνεπαγωγική υπόθεση, εποµένως, έχουµε ότι εάν οι αγωγοί εισόδου του συγκριτή ϕέ-ρουν τις τιµές ai και aj όταν δοθεί ως είσοδος η ακολουθία a, τότε όταν δοθεί ηακολουθία f(a) θα ϕέρουν τις τιµές f(ai) και f(aj). Άρα, από τον ισχυρισµό πουαποδείξαµε παραπάνω, έπεται ότι οι αγωγοί εξόδου αυτού του συγκριτή ϕέρουν τιςτιµές f(min(ai, aj)) και f(max(ai, aj)). ∆εδοµένου ότι όταν δοθεί ως είσοδος ηακολουθία a ϕέρουν τις τιµές min(ai, aj) και max(ai, aj), η απόδειξη του λήµµα-τος έχει ολοκληρωθεί.

    Στο Σχήµα 27.5(β) βλέπουµε ένα παράδειγµα εϕαρµογής του Λήµµατος 27.1. Τοσχήµα αυτό αναπαριστά το ταξινοµητικό δίκτυο του Σχήµατος 27.2 (το οποίο επα-ναλαµβάνεται στο Σχήµα 27.5(α)), µετά την εϕαρµογή της µονότονα αύξουσας συ-νάρτησης f(x) = �x/2� στις εισόδους του. Η τιµή σε κάθε αγωγό ισούται µε τοαποτέλεσµα της εϕαρµογής της συνάρτησης f στην τιµή του ίδιου αγωγού στο Σχή-µα 27.2.

  • 27.2 Η αρχή µηδέν-ένα 713

    b1

    (β)

    3

    3

    1

    5

    3

    3

    5

    3

    1

    3

    3

    5

    1

    3

    a2

    a3

    b1

    b2

    b3

    b4

    (α)

    5

    6

    2

    9

    6

    5

    9

    5

    2

    6

    5

    9

    2

    6

    a1

    a2

    a3

    a4

    b2

    b3

    b4

    2

    9

    1

    5a4

    a

    Σχήµα 27.5 (α) Το ταξινοµητικό δίκτυο του Σχήµατος 27.2 µε ακολουθία εισόδου 〈9,5,2,6〉. (β) Τοίδιο ταξινοµητικό δίκτυο, µετά την εϕαρµογή της µονότονα αύξουσας συνάρτησης f(x) = �x/2�στις εισόδους του. Η τιµή σε κάθε αγωγό αυτού του δικτύου ισούται µε το αποτέλεσµα της εϕαρµογήςτης συνάρτησης f στην τιµή του ίδιου αγωγού στο σχήµα (α).

    Όταν ένα συγκριτικό δίκτυο είναι ταξινοµητικό, το Λήµµα 27.1 µας επιτρέπει νααποδείξουµε το ακόλουθο σηµαντικό αποτέλεσµα.

    Θεώρηµα 27.2 (Αρχή µηδέν-ένα)Εάν ένα συγκριτικό δίκτυο µε n εισόδους ταξινοµεί ορθά το σύνολο των 2n δυνα-τών ακολουθιών από 0 και 1, τότε ταξινοµεί ορθά και όλες τις ακολουθίες αυθαίρε-των αριθµών.

    Απόδειξη Ας υποθέσουµε, αντίθετα προς το αποδεικτέο, ότι το δίκτυο ταξινοµείόλες τις ακολουθίες µηδέν-ένα, αλλά ότι υπάρχει κάποια ακολουθία αυθαίρετωναριθµών την οποία δεν ταξινοµεί ορθά. Με άλλα λόγια, υπάρχει µια ακολουθίαεισόδου 〈a1, a2, . . . , an〉 που περιέχει δύο στοιχεία ai και aj για τα οποία ισχύει ότιai < aj , και ότι το δίκτυο τοποθετεί το aj πριν από το ai στην ακολουθία εξόδου.Ορίζουµε µια µονότονα αύξουσα συνάρτηση f ως εξής:

    f(x) ={

    0 εάν x ≤ ai ,1 εάν x > ai .

    ∆εδοµένου ότι το δίκτυο τοποθετεί το aj πριν από το ai στην ακολουθία εξόδουόταν δέχεται ως είσοδο την ακολουθία 〈a1, a2, . . . , an〉, από το Λήµµα 27.1 έπεταιότι όταν δέχεται ως είσοδο την ακολουθία 〈f(a1), f(a2), . . . , f(an)〉 τοποθετείτο στοιχείο f(aj) πριν από το f(ai) στην ακολουθία εξόδου. ∆εδοµένου όµως ότιf(aj) = 1 και f(ai) = 0, έπεται ότι το δίκτυο αποτυγχάνει να ταξινοµήσει ορθάτην ακολουθία µηδέν-ένα 〈f(a1), f(a2), . . . , f(an)〉, όπερ άτοπον.

    Ασκήσεις

    27.2-1Αποδείξτε ότι η εϕαρµογή µιας µονότονα αύξουσας συνάρτησης σε µια ταξινοµη-µένη ακολουθία δίνει µια ταξινοµηµένη ακολουθία.

    27.2-2Αποδείξτε ότι ένα συγκριτικό δίκτυο µε n εισόδους ταξινοµεί ορθά την ακολουθίαεισόδου 〈n, n − 1, . . . , 1〉 εάν και µόνο εάν ταξινοµεί ορθά τις n − 1 ακολουθίεςµηδέν-ένα 〈1, 0, 0, . . . , 0, 0〉, 〈1, 1, 0, . . . , 0, 0〉, . . ., 〈1, 1, 1, . . . , 1, 0〉.

  • 714 Κεϕάλαιο 27 Ταξινοµητικά δίκτυα

    a2

    a3

    a4

    b1

    b2

    b3

    b4

    a1

    Σχήµα 27.6 Ένα ταξινοµητικό δίκτυο που ταξινοµεί 4 αριθµούς.

    27.2-3Χρησιµοποιώντας την αρχή µηδέν-ένα, αποδείξτε ότι το συγκριτικό δίκτυο τουΣχήµατος 27.6 είναι ταξινοµητικό.

    27.2-4∆ιατυπώστε και αποδείξτε µια αρχή ανάλογη προς την αρχή µηδέν-ένα για έναµοντέλο δένδρου αποϕάσεων. (Υπόδειξη: Βεβαιωθείτε ότι η αρχή σας χειρίζεταισωστά την ισότητα.)

    27.2-5Αποδείξτε ότι ένα ταξινοµητικό δίκτυο µε n εισόδους θα πρέπει να περιλαµβάνειτουλάχιστον έναν συγκριτή µεταξύ της i-οστής και της (i + 1)-οστής γραµµής γιακάθε i = 1, 2, . . . , n − 1.

    27.3 Ένα διτονικό ταξινοµητικό δίκτυο

    Το πρώτο βήµα για την κατασκευή ενός δραστικού ταξινοµητικού δικτύου είναιη κατασκευή ενός συγκριτικού δικτύου που να µπορεί να ταξινοµεί οποιαδήποτεδιτονική ακολουθία. Ο όρος αυτός δηλώνει οποιαδήποτε ακολουθία που αυξάνε-ται µονότονα και στη συνέχεια µειώνεται επίσης µονότονα, ή που µπορεί να µετα-χθεί σε αυτήν τη µορϕή µε κυκλική µετακίνηση των στοιχείων της. Παραδείγµατοςχάριν, οι ακολουθίες 〈1, 4, 6, 8, 3, 2〉, 〈6, 9, 4, 2, 3, 5〉, και 〈9, 8, 3, 2, 4, 6〉 είναιόλες διτονικές. Ως συνοριακή συνθήκη, ορίζουµε ότι οποιαδήποτε ακολουθία πουπεριέχει µόνο 1 ή 2 αριθµούς είναι διτονική. Οι ακολουθίες µηδέν-ένα οι οποίεςείναι διτονικές είναι δοµικά απλούστατες. Έχουν τη µορϕή 0i1j0k ή 1i0j1k , όπουi, j, k ≥ 0. Σηµειωτέον ότι µια µονότονα αύξουσα ή µονότονα ϕθίνουσα ακολουθίαείναι επίσης διτονική.

    Ο διτονικός ταξινοµητής που θα κατασκευάσουµε είναι ένα συγκριτικό δίκτυοπου ταξινοµεί διτονικές ακολουθίες από 0 και 1. Στην Άσκηση 27.3-6 σας ζητείταινα δείξετε ότι ο διτονικός ταξινοµητής µπορεί να ταξινοµεί διτονικές ακολουθίεςαποτελούµενες από οποιουσδήποτε αριθµούς.

    Ο ηµιαποµείκτης

    Ένας διτονικής ταξινοµητής αποτελείται από πολλές συνιστώσες, καθεµία από τιςοποίες ονοµάζεται ηµιαποµείκτης. Ο κάθε ηµιαποµείκτης είναι ένα συγκριτικό δί-κτυο βάθους 1 στο οποίο η γραµµή εισόδου i συγκρίνεται µε τη γραµµή i+n/2 γιαi = 1, 2, . . . , n/2. (Υποθέτουµε ότι ο n είναι άρτιος.) Στο Σχήµα 27.7 απεικονίζεταιο ∏ÌÈ·ÔÌÂÈÎÙËÛ[8], δηλαδή ο ηµιαποµείκτης µε 8 εισόδους και 8 εξόδους.

  • 27.3 Ένα διτονικό ταξινοµητικό δίκτυο 715

    0

    0

    1

    1

    1

    0

    0

    0

    0

    0

    0

    1

    0

    1

    0 1

    διτονική

    διτονική,αμιγής

    διτονική

    0

    0

    1

    1

    1

    1

    1

    0

    0

    1

    0

    1

    1

    1

    διτονική

    διτονική,αμιγής

    διτονική

    0 1

    Σχήµα 27.7 Το συγκριτικό δίκτυο ∏ÌÈ·ÔÌÂÈÎÙËÛ[8]. Στο σχήµα απεικονίζονται δύο διαϕορετι-κές ενδεικτικές ακολουθίες εισόδου και εξόδου µηδέν-ένα. Η ακολουθία εισόδου είναι εξ υποθέσεωςδιτονική. Ο ηµιαποµείκτης εξασϕαλίζει ότι κάθε στοιχείο εξόδου στο άνω ήµισυ είναι µικρότερο ή ίσοοποιουδήποτε στοιχείου εξόδου στο κάτω ήµισυ. Επιπλέον, αµϕότερα τα ηµίσεα είναι διτονικά, καιτουλάχιστον ένα είναι αµιγές.

    Όταν εϕαρµόζεται ως είσοδος σε έναν ηµιαποµείκτη µια διτονική ακολουθία από0 και 1, ο ηµιαποµείκτης παράγει µια ακολουθία εξόδου της οποίας το άνω ήµισυπεριλαµβάνει τις µικρότερες τιµές, το κάτω ήµισυ περιλαµβάνει τις µεγαλύτερες,και αµϕότερα τα ηµίσεα είναι διτονικά. Μάλιστα, τουλάχιστον ένα από τα ηµίσεαείναι αµιγές, ή αλλιώς «αποµεµειγµένο» –δηλαδή αποτελείται είτε αποκλειστικάαπό 0 είτε αποκλειστικά από 1–, εξ ου και η ονοµασία «ηµιαποµείκτης». (Σηµειω-τέον ότι όλες οι αµιγείς ακολουθίες είναι διτονικές.) Οι παραπάνω ιδιότητες τωνηµιαποµεικτών αποδεικνύονται στο ακόλουθο λήµµα.

    Λήµµα 27.3Εάν ένας ηµιαποµείκτης δεχθεί ως είσοδο µια διτονική ακολουθία από 0 και 1, τότεη ακολουθία εξόδου έχει τις εξής ιδιότητες: τόσο το άνω όσο και το κάτω ήµισυ είναιδιτονικά, το κάθε στοιχείο στο άνω ήµισυ είναι µικρότερο ή ίσο όλων των στοιχείωντου κάτω ηµίσεος, και τουλάχιστον το ένα ήµισυ είναι αµιγές.

    Απόδειξη Το συγκριτικό δίκτυο ∏ÌÈ·ÔÌÂÈÎÙËÛ[n] συγκρίνει τις εισόδους i καιi + n/2 για i = 1, 2, . . . , n/2. Χωρίς απώλεια γενικότητας, υποθέτουµε ότι η είσο-δος είναι της µορϕής 00 . . . 011 . . . 100 . . . 0. (Η κατάσταση όπου η είσοδος είναιτης µορϕής 11 . . . 100 . . . 011 . . . 1 είναι συµµετρική.) Υπάρχουν τρεις δυνατές πε-ριπτώσεις, ανάλογα µε το σύµπλεγµα των διαδοχικών 0 ή 1 στο οποίο εµπίπτει τοδιάµεσο σηµείο n/2, και η µία από αυτές τις περιπτώσεις (εκείνη όπου το διάµεσοσηµείο εµπίπτει στο σύµπλεγµα των 1) χωρίζεται περαιτέρω σε δύο επιµέρους πε-ριπτώσεις. Τα τέσσερα ενδεχόµενα απεικονίζονται στο Σχήµα 27.8. Σε καθένα απόαυτά, το λήµµα ισχύει.

    Ο διτονικός ταξινοµητής

    Με αναδροµικό συνδυασµό ηµιαποµεικτών, όπως ϕαίνεται στο Σχήµα 27.9, µπο-ρούµε να κατασκευάσουµε έναν διτονικό ταξινοµητή, δηλαδή ένα δίκτυο το οποίοταξινοµεί διτονικές ακολουθίες. Η πρώτη συνιστώσα του ¢ÈÙÔÓÈÎÔ˘ ∆·ÍÈÓÔÌË-ÙË[n] είναι ο ∏ÌÈ·ÔÌÂÈÎÙËÛ[n], ο οποίος, σύµϕωνα µε το Λήµµα 27.3, παράγειδύο διτονικές ακολουθίες µε το µισό µήκος τέτοιες ώστε κάθε στοιχείο στο άνω ήµι-

  • 716 Κεϕάλαιο 27 Ταξινοµητικά δίκτυα

    0

    1

    0

    0

    10

    1 1

    1

    0 0

    0

    1

    1

    0

    διτονική,αμιγής

    διτονική

    διτονική

    διαχωρισμός σύγκριση συνδυασμός

    άνω άνω

    κάτω κάτω

    (α)

    0

    1

    0

    1διτονική

    (β)

    0

    10

    10

    0

    1

    0

    0

    1

    1

    0

    διτονική

    (γ)

    0

    10

    0

    0

    0

    1

    0

    0

    0

    1

    0

    0

    1

    0

    διτονική

    (δ)

    0

    1 0

    0

    0

    0

    1

    0

    0

    0

    1

    0

    διτονική,αμιγής

    διτονική

    διτονική,αμιγής

    διτονική

    διτονική,αμιγής

    διτονική

    1

    0

    άνω άνω

    άνω άνω

    άνω άνω

    κάτω κάτω

    κάτω κάτω

    κάτω κάτω

    Σχήµα 27.8 Οι δυνατές συγκρίσεις στον ∏ÌÈ·ÔÌÂÈÎÙË[n]. Η είσοδος είναι εξ υποθέσεως µιαδιτονική ακολουθία από 0 και 1, και χωρίς απώλεια γενικότητας υποθέτουµε ότι είναι της µορϕής00 . . . 011 . . . 100 . . . 0. Οι υπακολουθίες που αποτελούνται από 0 απεικονίζονται µε λευκό χρώµα,και εκείνες που αποτελούνται από 1 µε γκρίζο. Τα n στοιχεία εισόδου θεωρούνται χωρισµένα σε δύοηµίσεα, τέτοια ώστε για i = 1, 2, . . . , n/2 να συγκρίνονται µεταξύ τους τα στοιχεία υπ’ αριθµ. iκαι i+n/2. (α)–(β) Οι περιπτώσεις όπου ο διαχωρισµός γίνεται στην ενδιάµεση υπακολουθία των 1.(γ)–(δ) Οι περιπτώσεις όπου ο διαχωρισµός γίνεται σε κάποια από τις υπακολουθίες των 0. Σε όλεςτις περιπτώσεις, κάθε στοιχείο στο άνω ήµισυ της ακολουθίας εξόδου είναι µικρότερο ή ίσο όλων τωνστοιχείων του κάτω ηµίσεος, αµϕότερα τα ηµίσεα είναι διτονικά, και το ένα τουλάχιστον ήµισυ είναιαµιγές.

    Η προεπισκόπηση των επόμενων σελίδων δεν είναι διαθέσιμη

    ΕξώφυλλοΣελίδα τίτλουΣυνοπτικά περιεχόμενα Τόμου IΠεριεχόμενα Τόμου IIΕΝΟΤΗΤΑ VIII. Επιλεγμένα θέματαΚΕΦΑΛΑΙΟ 27. Ταξινομητικά δίκτυα27.1 Συγκριτικά δίκτυα27.2 Η αρχή μηδέν-ένα27.3 Ένα διτονικό ταξινομητικό δίκτυο27.4 Ένα συγχωνευτικό δίκτυο27.5 Ένα ταξινομητικό δίκτυοΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 28. Πράξεις σε πίνακες28.1 Ιδιότητες πινάκων28.2 Ο αλγόριθμος του Strassen για πολλαπλασιασμό πινάκων28.3 Επίλυση συστημάτων γραμμικών εξισώσεων28.4 Αντιστροϕή πινάκων28.5 Συμμετρικοί θετικά ορισμένοι πίνακες και προσέγγιση ελαχίστων τετραγώνωνΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 29. Γραμμικός προγραμματισμός29.1 Τυπική και αποκλιτική μορϕή29.2 Διατύπωση προβλημάτων με τη μορϕή γραμμικών προγραμμάτων29.3 Ο πολυτοπικός αλγόριθμος29.4 Δυϊκότητα29.5 Η αρχική βασική εϕικτή λύσηΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 30. Πολυώνυμα και FFT30.1 Αναπαράσταση πολυωνύμων30.2 Οι μετασχηματισμοί DFT και FFT30.3 Δραστικές υλοποιήσεις FFTΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 31. Αριθμοθεωρητικοί αλγόριθμοι31.1 Στοιχειώδεις έννοιες της θεωρίας αριθμών31.2 Μέγιστος κοινός διαιρέτης31.3 Υπολοιπική αριθμητική31.4 Επίλυση υπολοιπικών γραμμικών εξισώσεων31.5 Το κινεζικό θεώρημα του υπολοίπου31.6 Δυνάμεις ενός στοιχείου31.7 Το κρυπτοσύστημα δημόσιου κλειδιού RSA*31.8 Έλεγχος πρώτευσης*31.9 Ακέραιη παραγοντοποίησηΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 32. Ταύτιση συμβολοσειρών32.1 Ο απλοϊκός αλγόριθμος ταύτισης συμβολοσειρών32.2 Ο αλγόριθμος Rabin-Karp32.3 Ταύτιση συμβολοσειρών με πεπερασμένα αυτόματα*32.4 Ο αλγόριθμος Knuth-Morris-PrattΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 33. Υπολογιστική γεωμετρία33.1 Ιδιότητες ευθύγραμμων τμημάτων33.2 Πώς προσδιορίζεται εάν υπάρχει ζεύγος τεμνόμενων τμημάτων33.3 Εύρεση του κυρτού καλύμματος33.4 Εύρεση του ζεύγους εγγύτατων σημείωνΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 34. NP-πληρότητα34.1 Πολυωνυμικός χρόνος34.2 Επαλήθευση πολυωνυμικού χρόνου34.3 NP-πληρότητα και αναγωγιμότητα34.4 Αποδείξεις NP-πληρότητας34.5 NP-πλήρη προβλήματαΠροβλήματαΣημειώσεις κεϕαλαίου

    ΚΕΦΑΛΑΙΟ 35. Προσεγγιστικοί αλγόριθμοι35.1 Το πρόβλημα του κομβικού καλύμματος35.2 Το πρόβλημα του περιοδεύοντος πωλητή35.3 Το πρόβλημα της κάλυψης συνόλου35.4 Τυχαιότητα και γραμμικός προγραμματισμός35.5 Το πρόβλημα του αθροίσματος υποσυνόλουΠροβλήματαΣημειώσεις κεϕαλαίου

    ΓλωσσάριοΑ. ΕλληνοαγγλικόΒ. Αγγλοελληνικό

    ΒιβλιογραϕίαΕυρετήριο