Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ Αλγόριθμοι δρομολόγησης δικτύων δεδομένων με χρήση τεχνητών Νευρωνικών Δικτύων Μιχαηλίδης Ευκλείδης Νοέμβριος 2010 ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ Γ κούμας Στέφανος Εκπονηθείσα πτυχιακή εργασία απαραίτητη για την κτήση του βασικού πτυχίου
Πίνακας περιεχομένων Πίνακας περιεχομένων Εισαγωγή...Σελ. 3 Κεφάλαιο 1 Δίκτυα δεδομένων... Σελ. 4 1.1 Υλοποίηση σύνδεσης...σελ. 4 1.2 Η σημασία της δρομολόγησης... Σελ. 5 1.3 Δρομολόγηση...Σελ. 6 1.3.1 Μεταγωγή κυκλώματος και με πακέτα...σελ.7 1.3.2 Δρομολόγηση σε δίκτυα μεταγωγής πακέτων...σελ. 7 1.4 Αλγόριθμος Dijkstra...Σελ. 14 1.4.1 Λειτουργία του αλγορίθμου... Σελ.15 1.5 Aλγόριθμος Bellman - Ford...Σελ.18 Κεφάλαιο 2 Νευρωνικά Δίκτυα...Σελ.20 2.1 Ο νευρώνας... Σελ.21 2.1.1 Πως λειτουργεί ο νευρώνας... Σελ.22 2.1.2 Το μοντέλο McCulloch - Pitts... Σελ.23 2.2 Εκπαίδευση νευρώνα...σελ.24 2.3 Τεχνολογία κατασκευής τεχνητών νευρωνικών δικτύων...σελ.25 2.4 Ταξινόμηση νευρωνικών αλγορίθμων...σελ.29 Κεφάλαιο 3 Νευρωνικοί αλγόριθμοι που χρησιμοποιούνται το πρόβλημα της δρομολόγησης... Σελ.32 3.1 Το δίκτυο του Hopfield... Σελ.32 3.2 Το δίκτυο Hopfield σαν συσχετιστική μνήμη... Σελ. 36 Κεφάλαιο 4 Νευρωνικά δίκτυα συνδυασμένα με αλγόριθμους. δρομολόγησης για δίκτυα επικοινωνίας... Σελ.40 4.1 Συναφή έργα...σελ. 43 4.2 Επίλυση προβλημάτων με χρήση νευρωνικών δικτύων...σελ. 44 4.3 Καθορισμός του προβλήματος... Σελ. 45 4.4 Διατύπωση του προβλήματος εύρεσης της συντομότερης διαδρομής στο πεδίο των νευρωνικών δικτύων...σελ.45 4.5 Μετασχηματισμός της συνάρτησης ενέργειας..σελ. 47 4.6 Συντονισμός παραμέτρων... Σελ.49 4.7 Προσομοίωση και αποτελέσματα... Σελ.51 Κεφάλαιο 5 Συμπεράσματα - Μελλοντική εργασία... Σελ.59 5.1 Συμπεράσματα... Σελ.59 5.2 Μελλοντική εργασία...σελ.59 Βιβλιογραφία...Σελ. 61 Σελ 2 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη Εισαγωγή Τα τεχνητά νευρωνικά δίκτυα είναι ένα κομμάτι του κλάδου της υπολογιστικής νοημοσύνης. Η βασική ιδέα της υπολογιστικής νοημοσύνης είναι η εξής: αντί να έχω αναπαράσταση της γνώσης σε ένα υψηλό επίπεδο, θα αντικαταστήσω τα μοντέλα με αλγορίθμους που στηρίζονται στην αριθμητική επεξεργασία της πληροφορίας (δηλαδή υπολογιστικά) π.χ. αντί να έχω ένα αναλυτικό μαθηματικό μοντέλο για την αγορά, θα φτιάξω κάποιον αλγόριθμο ο οποίος αναλύει και μαθαίνει από δεδομένα που ήδη υπάρχουν και περιγράφουν την αγορά. Τα τεχνητά νευρωνικά δίκτυα μας παρέχουν τεράστιες δυνατότητες επεξεργασίας καθώς και πολύ μεγάλες ταχύτητες εξαγωγής αποτελεσμάτων. Ένα από τα σημαντικότερα χαρακτηριστικά τους είναι η ευελιξία τους. Η ιδιότητά τους αυτή μας δίνει τη δυνατότητα και μας αφήνει το περιθώριο να τα δοκιμάσουμε και να εξετάσουμε τα αποτελέσματα τους σε διάφορους τομείς. Στην παρούσα εργασία θα ασχοληθούμε με τα αποτελέσματα της χρήσης τεχνητών νευρωνικών δικτύων στη δρομολόγηση. Η δρομολόγηση σε ένα δίκτυο δεδομένων απαιτεί ταχύτητα στους υπολογισμούς και τη δυνατότητα πολλαπλών εισόδων έτσι ώστε να μπορεί να υπολογιστεί η καλύτερη δυνατή λύση ανάλογα με τις υπάρχουσες συνθήκες του δικτύου στη δεδομένη χρονική στιγμή. Αυτό μας παρέχεται από τα τεχνητά νευρωνικά δίκτυα αφού η έννοια της πολλαπλής εισόδου τιμών είναι η φιλοσοφία κατασκευής τους. Σε συνεργασία φυσικά με έναν αλγόριθμο δρομολόγησης μπορούμε να μελετήσουμε τις συνέπειες από αυτή τη συνεργασία. Ουσιαστικά ο στόχος μας είναι να ενδυναμώσουμε τον αλγόριθμο δρομολόγησης με τις δυνατότητες των νευρωνικών δικτύων έτσι ώστε να επιτύχουμε την βελτίωση της δρομολόγησης σε ένα δίκτυο δεδομένων. Αυτό που πρέπει να εξετάσουμε λοιπόν είναι το κατά πόσο μπορούμε να εκμεταλλευτούμε τις δυνάμεις επεξεργασίας των νευρωνικών δικτύων στη δρομολόγηση δεδομένων. Σελ 3 από 61
1 Δίκτυα δεδομένων Κεφάλαιο 1 Δίκτυα δεδομένων Η μετάδοση της πληροφορίας παίζει ίσως τον σημαντικότερο ρόλο στη διαμόρφωση της σύγχρονης Κοινωνίας της Πληροφορίας την περίοδο της οποίας διανύουμε σήμερα. Η αλματώδης ανάπτυξη των δικτύων μετάδοσης πληροφορίας που συντελέστηκε τα τελευταία χρόνια βοήθησε σημαντικά στη διαμόρφωση της νέας αυτής κοινωνίας η οποία επιταχύνει τους δείκτες ανάπτυξης και βελτιώνει σημαντικά το επίπεδο ζωής του πολίτη. Ένα δίκτυο υπολογιστών είναι ένα σύστημα επικοινωνίας δεδομένων που συνδέει δύο ή περισσότερους αυτόνομους και ανεξάρτητους υπολογιστές και περιφερειακές συσκευές. Δύο υπολογιστές θεωρούνται διασυνδεδεμένοι όταν μπορούν να ανταλλάσσουν μεταξύ τους πληροφορίες. Τα δίκτυα δημιουργήθηκαν για να εξυπηρετήσουν τις ανάγκες που προέκυψαν από την εξάπλωση της χρήσης των υπολογιστών. Βασικός σκοπός της ύπαρξης των δικτύων είναι ο διαμερισμός των πόρων του συστήματος και η ανταλλαγή πληροφοριών κάθε μορφής (προγράμματα, αρχεία, δεδομένα). Πόροι του συστήματος μπορούν να είναι είτε υλικό (hardware), π.χ. υπολογιστές, εκτυπωτές, plotters, σκληροί δίσκοι είτε λογισμικό (software), π.χ. δεδομένα, προγράμματα εφαρμογών, υπηρεσίες. Τα προγράμματα, τα δεδομένα και οι συσκευές (σκληροί δίσκοι, εκτυπωτές, κλπ) είναι διαθέσιμα σε οποιονδήποτε είναι συνδεδεμένος στο δίκτυο, ανεξάρτητα από τη φυσική του θέση. Με τον τρόπο αυτό επιτυγχάνεται εξοικονόμηση χρημάτων, αύξηση της απόδοσης του συστήματος, κεντρικός έλεγχος και εύκολη επεκτασιμότητα. Σε ένα δίκτυο μπορούμε να έχουμε ανταλλαγή δεδομένων, προγραμμάτων, χρήση κοινών βάσεων δεδομένων, αρχείων, αποστολή μηνυμάτων (electronic mail). Επιπλέον, ανεξάρτητα της τεχνολογίας, ένα δίκτυο είναι ένα πανίσχυρο μέσο επικοινωνίας ανθρώπων που βρίσκονται σε διαφορετικά μέρη. Η αρχιτεκτονική των δικτύων καθορίζει τον τρόπο με τον οποίο οι υπολογιστές και οι λοιπές συσκευές συνδέονται μεταξύ τους για να σχηματίσουν ένα σύστημα επικοινωνίας που θα επιτρέπει στους χρήστες να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Σε ένα δίκτυο δεδομένων περιλαμβάνονται: 1. Τερματικοί Κόμβοι. Ελέγχουν τους πόρους του δικτύου (λογισμικό και υλικό). 2. Υποδίκτυα Φυσικά μέσα μετάδοσης, πρωτόκολλα επικοινωνίας, τοπολογία, τερματικοί κόμβοι, πόροι που μπορούν να διαφέρουν πολύ ανά υποδίκτυο. 3. Συσκευές Διασύνδεσης. Διασυνδέουν τα ετερογενή υποδίκτυα έτσι ώστε να εξασφαλίζεται η επικοινωνία τερματικών κόμβων που βρίσκονται σε διαφορετικά υποδίκτυα. 1.1 Υλοποίηση της Διασύνδεσης. Για να επικοινωνήσουν δύο υπολογιστικά συστήματα πρέπει να υπάρξει μεταξύ τους φυσική και λογική διασύνδεση. 1. Διασύνδεση σε Φυσικό επίπεδο. Η διασύνδεση επιτυγχάνεται χρησιμοποιώντας: Σελ 4 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη Φυσικό Μέσο Μετάδοσης. Είναι το μέσο ή ο φορέας που διακινεί την πληροφορία. Τα πιο συνηθισμένα μέσα είναι το ομοαξονικό καλώδιο, το ζεύγος συνεστραμμένων καλωδίων και οι οπτικές ίνες. Κάθε μέσο έχει τα δικά του φυσικά χαρακτηριστικά, εύρος ζώνης και ανοχή στον θόρυβο επηρεάζοντας άμεσα τον τρόπο και την ταχύτητα μετάδοσης. Τοπολογία Δικτύου. Καθορίζει τον τρόπο με τον οποίο διασυνδέονται μεταξύ τους οι συσκευές του δικτύου. Η πιο απλή είναι η σύνδεση σημείο με σημείο. Οι υπόλοιπες τοπολογίες χαρακτηρίζονται σαν δίκτυα ακρόασης, όπου κάθε κόμβος συνδέεται με όλους τους υπόλοιπους. Μέθοδος πρόσβασης στο μέσο. Στα δίκτυα ακρόασης, όπου όλοι οι κόμβοι έχουν πρόσβαση σε κοινό μέσο, απαιτείται μια μέθοδος που θα εξασφαλίζει ποιος κόμβος μεταδίδει κάθε φορά. Τεχνική Μετάδοσης και κωδικοποίησης των δεδομένων. Η πληροφορία, προκειμένου να μεταδοθεί, πρέπει να μετατραπεί στη μορφή που το μέσο μπορεί να μεταδώσει. Ταχύτητα μετάδοσης. Μετρείται σε bits/sec και εξαρτάται από το μέσο και την τεχνική μετάδοσης, το εύρος ζώνης και τη μέθοδο πρόσβασης στο μέσο. Εξοπλισμός διασύνδεσης. Είναι τα εξαρτήματα που συνδέουν τις συσκευές με το μέσο επικοινωνίας. 2. Διασύνδεση σε Λογικό επίπεδο. Εκτός από τη φυσική διασύνδεση πρέπει να δημιουργηθεί μια λογική σύνδεση μεταξύ των κόμβων που θα επικοινωνήσουν. Η σύνδεση πρέπει να περιλαμβάνει τις εξής λειτουργίες: αποκατάσταση σύνδεσης. Υλοποιείται με μηχανισμούς λογικής σύνδεσης και ανεύρεσης του κόμβου προορισμού μέσω διευθυνσιοδότησης. μεταφορά δεδομένων. Υλοποιείται με λειτουργίες κατακερμάτισης της προς μετάδοση πληροφορίας σε πακέτα δεδομένων, με την δρομολόγηση των πακέτων, την ανίχνευση λαθών και την επαναμετάδοση, τον έλεγχο ροής και ακολουθίας των πακέτων και την επανασυναρμολόγηση της πληροφορίας στον κόμβο προορισμού. τερματισμός σύνδεσης. Υλοποιείται με μηχανισμούς τερματισμού της σύνδεσης. Ολες οι διασυνδέσεις πραγματοποιούνται με τη χρήση πρωτοκόλλων επικοινωνίας τα οποία, ανεξάρτητα της αρχιτεκτονικής που χρησιμοποιείται, οργανώνονται σε ομάδες. [6] 1.2 Η σημασία της Δρομολόγησης Σύμφωνα με τα παραπάνω λοιπόν μπορούμε να καταλήξουμε στο συμπέρασμα ότι σε ένα δίκτυο δεδομένων μεγάλο ρόλο παίζει η ταχύτητα με την οποία μεταδίδοντα τα δεδομένα καθώς και το να μεταδίδονται σωστά. Αυτό για να επιτευχθεί θα πρέπει τα δεδομένα να καθοδηγούνται με επιτυχία ανάμεσα στους κόμβους του δικτύου έτσι ώστε να καταλήγουν στον σωστό κόμβο προορισμού καθώς επίσης και να φτάνουν χωρίς αλλοιώσεις. Ουσιαστικά μιλάμε για το πόσο σημαντική είναι η ποιότητα της δρομολόγησης Σελ 5 από 61
1 Δίκτυα δεδομένων για την αποτελεσματικότητα της μετάδοσης σε ένα δίκτυο δεδομένων. Επηρεάζεται η ταχύτητα μετάδοσης του δικτύου αφού από τη δρομολόγηση εξαρτάται σε μεγάλο βαθμό ο δείκτης αποτελεσματικότητας στην αποστολή των δεδομένων. Παρακάτω στο κεφάλαιο θα δούμε και θα παρατηρήσουμε πως λειτουργεί η δρομολόγηση καθώς επίσης και τις μεθόδους που χρησιμοποιούν οι αλγόριθμοι δρομολόγησης. 1.3 Δρομολόγηση Στα δίκτυα υπολογιστών ο όρος δρομολόγηση (αγγλ. routing) αναφέρεται στη διαδικασία με την οποία επιλέγεται η διαδρομή μέσα σε ένα δίκτυο πάνω από την οποία θα σταλούν δεδομένα. Η δρομολόγηση κατευθύνει, προωθεί, το πέρασμα των λογικά διευθυνσιοδοτημένων πακέτων από την πηγή τους προς τον απόλυτο προορισμό τους μέσω ενδιάμεσων κόμβων (που λέγονται δρομολογητές). Η διαδικασία της δρομολόγησης κατευθύνει τα δεδομένα προωθώντας τα με βάση τους πίνακες δρομολόγησης που βρίσκονται στους δρομολογητές, οι οποίοι διατηρούν μια εγγραφή για την καλύτερη διαδρομή προς διάφορες κατευθύνσεις στο δίκτυο. Κατά συνέπεια η κατασκευή των πινάκων δρομολόγησης είναι πολύ σημαντική για αποτελεσματική δρομολόγηση. Η δρομολόγηση διαφέρει από τη γεφύρωση στην υπόθεσή της ότι οι δομές διευθύνσεων υπονοούν την εγγύτητα των παρόμοιων διευθύνσεων μέσα στο δίκτυο, επιτρέποντας κατά συνέπεια σε έναν πίνακα δρομολόγησης εισόδου να αντιπροσωπεύσει τη διαδρομή προς μια ομάδα διευθύνσεων. Για αυτό και η δρομολόγηση ξεπερνά τη γεφύρωση σε μεγάλα δίκτυα, και έχει γίνει βασικός τρόπος εύρεσης διαδρομής στο Ίντερνετ. Σε μικρά δίκτυα οι πίνακες δρομολόγησης μπορούν να συμπληρωθούν και με το χέρι. Σε μεγάλα δίκτυα, όπου εμπλέκονται πολύπλοκες και διαρκώς μεταβαλλόμενες τοπολογίες, η χειροκίνητη κατασκευή των πινάκων δρομολόγησης είναι προβληματική. Εντούτοις, τα περισσότερα δημόσια τηλεφωνικά δίκτυα μεταγωγής (PSTN) χρησιμοποιούν προϋπολογισμένους πίνακες δρομολόγησης, με εφεδρικές διαδρομές αν η πιο σύντομη μπλοκαριστεί. Η δυναμική δρομολόγηση προσπαθεί να λύσει αυτό το πρόβλημα κατασκευάζοντας τους πίνακες δρομολόγησης αυτόματα, βασιζόμενη στις πληροφορίες που μεταφέρονται από τα πρωτόκολλα δρομολόγησης, και αφήνει το δίκτυο να ενεργεί σχεδόν αυτόνομα στο να αποφεύγει βλάβες και μπλοκαρίσματα. Η δυναμική δρομολόγηση κυριαρχεί στο Ίντερνετ. Εντούτοις όμως, η ρύθμιση των πρωτοκόλλων δρομολόγησης απαιτεί ικανότητες δεν θα πρέπει κάποιος να υποθέτει ότι η τεχνολογία των δικτύων έχει εξελιχθεί μέχρι το σημείο της πλήρους αυτοματοποίησης της δρομολόγησης. Τα δίκτυα μεταγωγής πακέτων όπως το Ίντερνετ, χωρίζουν τα δεδομένα σε πακέτα που το καθένα περιέχει πληροφορίες για τον προορισμό του και δρομολογούνται ξεχωριστά. Τα δίκτυα μεταγωγής κυκλώματος όπως τα τηλεφωνικά δίκτυα, εκτελούν και αυτά δρομολόγηση, με σκοπό να βρουν διαδρομές για κυκλώματα (όπως τηλεφωνικές κλήσεις) πάνω από τις οποίες μπορούν να στείλουν μεγάλες ποσότητες δεδομένων χωρίς να επαναλαμβάνουν συνεχώς τη διεύθυνση του προορισμού. Το υλικό που χρησιμοποιείται στη δρομολόγηση περιλαμβάνει συγκεντρωτές, μεταγωγείς, και δρομολογητές.[3] Σελ 6 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη 1.3.1 Μεταγωγή Κυκλώματος και Με Πακέτα Η μεταγωγή είναι η διαδικασία η οποία εξασφαλίζει ότι τα δεδομένα θα φτάσουν στον σωστό προορισμό τους. Υπάρχουν δυο τρόποι μεταγωγής. Ο πρώτος που χρησιμοποιήθηκε είναι η διαμεταγωγή κυκλώματος. Το χαρακτηριστικό αυτής της μεθόδου είναι η εξασφάλιση ενός πλήρους φυσικού κυκλώματος, για την επικοινωνία δύο οποιονδήποτε συστημάτων. Αυτό το κύκλωμα δεν μπορεί να χρησιμοποιηθεί από κανέναν άλλον, ακόμα και όταν δεν λαμβάνει χώρα ανταλλαγή μηνυμάτων. Σε πιο σύγχρονα συστήματα, αυτό που εξασφαλίζεται δεν είναι ένα φυσικό αλλά ένα νοητό κύκλωμα (virtual circuit). Αυτό σημαίνει ότι σε σταθερά χρονικά διαστήματα, το υπάρχον φυσικό κύκλωμα θα διατίθεται οπωσδήποτε για την επικοινωνία των δύο συστημάτων. Αντίθετα με το φυσικό, το νοητό κύκλωμα μοιράζεται με άλλους, οπότε στην ουσία αυτό που εξασφαλίζεται είναι ένα σταθερό bit rate για την επικοινωνία. Αυτό είναι και το πλεονέκτημα αυτής της μεθόδου. Μειονεκτεί όμως στο βαθμό χρησιμοποίησης του συστήματος, γιατί το νοητό κύκλωμα παραμένει δεσμευμένο ακόμα και όταν τα συστήματα που επικοινωνούν δεν το εκμεταλλεύονται πλήρως. Η μεταγωγή πακέτου στοχεύει στην πιο αποτελεσματική πολύπλεξη, ώστε να μεγιστοποιείται η χρησιμοποίηση του συστήματος. Η πληροφορία δεν μεταδίδεται συνεχώς αλλά σε πακέτα σταθερού μήκους. Πολλές πηγές μπορούν να στείλουν πακέτα στο δίκτυο, τα οποία θα δρομολογηθούν με τέτοιο τρόπο ώστε όταν μια πηγή δεν μεταδίδει να διατίθενται οι πόροι του συστήματος σε άλλη. Σε γενικές γραμμές, η συμπεριφορά ενός τέτοιου δικτύου είναι στατιστική. Δηλαδή οι καθυστερήσεις δεν μπορούν να προβλεφθούν ακριβώς, αλλά μόνο κατά μέσο όρο. 1.3.2 Δρομολόγηση σε Δίκτυα Μεταγωγής Πακέτων Η θεμελιώδης λειτουργία ενός δικτύου μεταγωγής πακέτου είναι να αποδέχεται πακέτα από έναν σταθμό πηγής και να τα παραδίδει σε έναν σταθμό προορισμού. Για να επιτευχθεί αυτό θα πρέπει να καθοριστεί ένα μονοπάτι ή διαδρομή μέσα στο δίκτυο. Συνήθως είναι πιθανές περισσότερες από μια διαδρομές. Έπειτα, πρέπει να εκτελεστεί η λειτουργία δρομολόγησης. Οι απαιτήσεις για αυτήν την λειτουργία είναι η ορθότητα, η απλότητα, η ανθεκτικότητα, η δικαιοσύνη, η βελτιστοποίηση και η αποδοτικότητα. Τα δύο πρώτα στοιχεία της λίστας, ορθότητα και απλότητα, είναι αυτονόητα. Η ανθεκτικότητα έχει να κάνει με την ικανότητα του δικτύου να παραδίδει πακέτα δια μέσου κάποιας διαδρομής αντιμετωπίζοντας τοπικές αποτυχίες και υπερφορτώσεις. Ο σχεδιαστής που αναζητά ανθεκτικότητα, πρέπει να έρχεται σε επαφή με την ανταγωνιστική απαίτηση της σταθερότητας. Τεχνικές που αντιδρούν σε μεταβλητές συνθήκες έχουν την ανεπιθύμητη τάση είτε να αντιδρούν πολύ αργά σε γεγονότα είτε να αντιμετωπίζουν ασταθείς αμφιταλαντεύσεις από το ένα άκρο στο άλλο. Επίσης μια ανταλλαγή υπάρχει ανάμεσα στην δικαιοσύνη και στην βελτιστοποίηση. Κάποια κριτήρια απόδοσης μπορεί να δώσουν μεγαλύτερη προτεραιότητα στην ανταλλαγή πακέτων ανάμεσα σε κοντινούς σταθμούς σε σύγκριση με μία ανταλλαγή Σελ 7 από 61
1 Δίκτυα δεδομένων ανάμεσα σε δύο απομακρυσμένους σταθμούς. Αυτή η πολιτική μπορεί να αυξήσει τη διαμετακομιστική ικανότητα αλλά δεν θα είναι δίκαια στον σταθμό που πρέπει να επικοινωνεί κυρίως με απομακρυσμένους σταθμούς. Τέλος, κάθε τεχνική δρομολόγησης περιλαμβάνει κάποια επιβάρυνση επεξεργασίας σε κάθε κόμβο και συχνά και μία επιβάρυνση μετάδοσης, που και οι δύο μειώνουν την αποδοτικότητα του δικτύου. Τα μειονεκτήματα αυτών των επιβαρύνσεων πρέπει να είναι λιγότερα από τα πλεονεκτήματα αθροιζόμενα με βάση κάποιο λογικό μέτρο, όπως είναι η αυξημένη ανθεκτικότητα ή η δικαιοσύνη. Το σχήμα 1 απεικονίζει ένα δίκτυο στο οποίο τα δύο βέλη ανάμεσα σε ένα ζεύγος κόμβων αναπαριστούν μια σύνδεση ανάμεσα σε αυτούς τους κόμβους και οι αντίστοιχοι αριθμοί αναπαριστούν το τρέχον κόστος της σύνδεσης σε κάθε κατεύθυνση. Το κοντύτερο μονοπάτι (με τα λιγότερα άλματα) από τον κόμβο 1 στον κόμβο 6 είναι το 1-3-6(κόστος = 5+5=10), αλλά το μονοπάτι με το ελάχιστο κόστος είναι το 1-4-5-6 (κόστος=1+1+2=4). Τα κόστη εκχωρούνται στις συνδέσεις για την υποστήριξη ενός ή περισσότερων αντικειμενικών σκοπών σχεδιασμού. Για παράδειγμα, το κόστος θα μπορούσε να είναι αντιστρόφως ανάλογο με το ρυθμό δεδομένων (δηλαδή, όσο υψηλότερος είναι ο ρυθμός δεδομένων σε μία σύνδεση, τόσο μικρότερο είναι το κόστος που έχει ανατεθεί στη σύνδεση) ή η τρέχουσα καθυστέρηση ουράς στη σύνδεση. Στην πρώτη περίπτωση, η διαδρομή με το ελάχιστο κόστος θα πρέπει να παρέχει την υψηλότερη διαμετακομιστική ικανότητα. Στη δεύτερη περίπτωση, η διαδρομή με το ελάχιστο κόστος θα πρέπει να ελαχιστοποιεί την καθυστέρηση. Για την αντιμετώπιση των απαιτήσεων των δικτύων μεταγωγής πακέτου έχει αναπτυχθεί ένας μεγάλος αριθμός στρατηγικών Σελ 8 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη Σε κόμβο δρομολόγησης. Εξετάζουμε τέσσερις πολύ σημαντικές στρατηγικές δρομολόγησης: στατική, πλημμύρα, τυχαία και προσαρμοστική. 1 2 3 4 5 6 Κόμβος 1 Προορισμός Επόμενος κόμβος 2 2 3 4 4 4 5 4 6 4 Κόμβος 4 Επόμενος Προορισμός κόμβος Κεντρικός πίνακας δρομλόγησης Από κόμβο 2 3 4-1 5 2 4 5 2-5 2 4 5 4 3-5 3 5 4 4 5-4 5 4 4 5 5-5 4 4 5 5 6 - Κόμβος 2 Προορισμός Επόμενος κόμβος 1 1 3 3 4 4 5 4 6 4 Κόμβος 5 Προορισμός Επόμενος κόμβος 1 2 1 4 2 2 2 4 3 5 3 3 5 5 4 4 6 5 6 6 Κόμβος 3 Προορισμός Επόμενος κόμβος 1 5 2 5 4 5 5 5 6 5 Κόμβος 6 Προορισμός Επόμενος κόμβος 1 5 2 5 3 5 4 5 5 5 Σχήμα 2: Οι πίνακες θέσεων σε στατική δρομολόγηση του δικτύου στο Σχήμα 1 Στην στατική δρομολόγηση, καθορίζεται μία μόνιμη διαδρομή για κάθε ζεύγος κόμβων που ανταλλάζουν δεδομένα. Οποιοσδήποτε από τους αλγόριθμους δρομολόγησης ελάχιστου κόστους που περιγράφονται παρακάτω θα μπορούσε να χρησιμοποιηθεί. Οι διαδρομές είναι στατικές ή τουλάχιστον αλλάζουν μόνο όταν υπάρχει μία μεταβολή στην τοπολογία του δικτύου. Έτσι τα κόστη των συνδέσεων που χρησιμοποιούνται στη σχεδίαση διαδρομών δεν μπορούν να βασιστούν σε κάποια δυναμική μεταβλητή όπως η κίνηση. Θα μπορούσαν, ωστόσο, να βασιστούν στην προβλεπόμενη κίνηση ή χωρητικότητα. Στην στατική δρομολόγηση, δεν υπάρχει διαφορά ανάμεσα στην δρομολόγηση για αυτοδύναμα πακέτα και για νοητά κυκλώματα. Όλα τα πακέτα από την πηγή που δίνεται στον προορισμό που δίνεται ακολουθούν την ίδια διαδρομή. Το πλεονέκτημα της στατικής δρομολόγησης είναι η απλότητα, και δουλεύει καλά σε ένα αξιόπιστο δίκτυο με σταθερό φορτίο. Το μειονέκτημά του είναι η έλλειψη ευκαμψίας. Δεν επηρεάζει σε συμφόρηση δικτύου ή σε αποτυχίες του δικτύου. Το σχήμα 2 δείχνει πώς θα μπορούσε να υλοποιηθεί η στατική δρομολόγηση. Δημιουργείται ένας κεντρικός πίνακας δρομολόγησης ο οποίος Σελ 9 από 61 6
1 Δίκτυα δεδομένων πιθανότατα θα αποθηκευτεί σε ένα κέντρο ελέγχου του δικτύου. Ο πίνακας δείχνει, για κάθε ζεύγος κόμβων πηγής-προορισμός, την ταυτότητα του επόμενου κόμβου της διαδρομής. Σημειώστε ότι δεν είναι απαραίτητο να αποθηκεύεται η πλήρης διαδρομή για κάθε πιθανό ζεύγος κόμβων. Αντίθετα, είναι αρκετό, για κάθε ζεύγος κόμβων, να είναι γνωστή η ταυτότητα του πρώτου κόμβου της διαδρομής. Στο παράδειγμά μας, η διαδρομή από τον κόμβο 1 στον κόμβο 6 ξεκινά περνώντας από τον κόμβο 4. Και πάλι συμβουλευόμενο τον πίνακα, η διαδρομή από τον κόμβο 4 στον κόμβο 6 περνά μέσα από τον κόμβο 5. Τελικά η διαδρομή από τον κόμβο 5 στον κόμβο 6 είναι μία απευθείας σύνδεση με τον κόμβο 6. Έτσι, η ολοκληρωμένη διαδρομή από τον κόμβο 1 στον κόμβο 6 είναι η 1-4-5-6. Από τον ολοκληρωμένο αυτό πίνακα μπορούν να αναπτυχθούν πίνακες δρομολόγησης και να αποθηκευτούν σε κάθε κόμβο. Από την αιτιολόγηση της προηγούμενης παραγράφου προκύπτει ότι κάθε κόμβος χρειάζεται να αποθηκεύσει μία μόνο στήλη του ευρετηρίου δρομολόγησης. Το ευρετήριο του κόμβου παρουσιάζει τον επόμενο κόμβο που θα επιλεχθεί για κάθε προορισμό. Μια απλή τεχνική δρομολόγησης είναι η πλημμύρα. Αυτή η τεχνική δεν απαιτεί οποιαδήποτε πληροφορία για το δίκτυο και λειτουργεί ως εξής. Ένα πακέτο στέλνεται από έναν κόμβο πηγής σε όλους τους γειτονικούς του. Σε κάθε κόμβο, ένα εισερχόμενο πακέτο επαναμεταδίδεται σε όλες τις εξερχόμενες συνδέσεις εκτός από την σύνδεση την οποία έφτασε. Τελικά, ένας αριθμός από αντίγραφα του πακέτου θα φτάσει στον προορισμό. Το πακέτο πρέπει να έχει κάποιο μοναδικό αναγνωριστή (π.χ. τον κόμβο πηγή και έναν αριθμό ακολουθίας ή τον αριθμό του νοητού καναλιού και τον αριθμό ακολουθίας), ώστε ο προορισμός να μπορεί να τα απορρίψει όλα εκτός από το πρώτο αντίτυπο. Αν δεν συμβεί κάτι που να σταματήσει την αδιάκοπη επαναμετάδοση των πακέτων, ο αριθμός των πακέτων που κυκλοφορούν από μία μόνο πηγή πακέτων αυξάνεται χωρίς όριο. Ένας τρόπος να το εμποδίσουμε αυτό είναι για κάθε κόμβο να θυμάται την ταυτότητα εκείνων των πακέτων που έχει ήδη επαναμεταδώσει. Όταν φτάσουν διπλά αντίτυπα του πακέτου, απορρίπτονται. Μία πιο απλή τεχνική είναι να περιλαμβάνεται ένα πεδίο μέτρησης αλμάτων σε κάθε πακέτο. Ο μετρητής μπορεί αρχικά να πάρει μία μέγιστη τιμή για παράδειγμα τη διάμετρο (μήκος του μεγαλύτερου μονοπατιού με τα ελάχιστα άλματα μέσα στο δίκτυο) του δικτύου. Κάθε στιγμή που ένας κόμβος μεταδίδει ένα πακέτο, μειώνει το μετρητή κατά ένα. Όταν ο μετρητής φτάσει στο μηδέν, το πακέτο απορρίπτεται. Σελ 10 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη Ένα παράδειγμα της δεύτερης τακτικής παρουσιάζεται στο σχήμα 3. Η ετικέτα σε κάθε πακέτο στο σχήμα δείχνει την τρέχουσα τιμή του πεδίου του μετρητή αλμάτων σε αυτό το πακέτο. Ένα πακέτο πρόκειται να σταλθεί από τον κόμβο 1 στον κόμβο 6 και ο μετρητής αλμάτων του παίρνει την τιμή 3. Στο πρώτο άλμα, δημιουργούνται τρία αντίγραφα του πακέτου. Στο δεύτερο άλμα όλων αυτών των αντιγράφων, δημιουργείται ένας συνολικός αριθμός 9 αντιγράφων. Ένα από αυτά τα αντίγραφα φτάνει στον κόμβο 6, οι οποίος αναγνωρίζει ότι είναι ο προτιθέμενος προορισμός και δεν επαναμεταδίδει. Ωστόσο, οι υπόλοιποι κόμβοι παράγουν συνολικά 22 αντίγραφα για το τρίτο και τελευταίο άλμα. Κάθε πακέτο τώρα έχει την τιμή 1 στον μετρητή αλμάτων. Σημειώνεται ότι, αν ένας κόμβος δεν κρατά αρχείο των αναγνωριστών των Σελ 11 από 61
1 Δίκτυα δεδομένων πακέτων, μπορεί να παράγει πολλαπλά αντίγραφα σε αυτό το τρίτο στάδιο. Όλα τα πακέτα που ελήφθησαν από το τρίτο άλμα απορρίπτονται, επειδή εξαντλήθηκε ο μετρητής αλμάτων. Τελικά, ο κόμβος 6 έχει λάβει 4 επιπλέον αντίγραφα του πακέτου. Λόγω της πρώτης ιδιότητας, η τεχνική της πλημμύρας έχει υψηλή ανθεκτικότητα και θα μπορούσε να χρησιμοποιηθεί για να στέλνει επείγοντα μηνύματα. Ένα παράδειγμα εφαρμογής είναι ένα στρατιωτικό δίκτυο που είναι πιθανό να υποστεί εκτεταμένη καταστροφή. Λόγω της δεύτερης ιδιότητας, η πλημμύρα μπορεί να χρησιμοποιηθεί αρχικά για να αποκατασταθεί η διαδρομή για ένα νοητό κύκλωμα. Η Τρίτη ιδιότητα υποδηλώνει ότι η πλημμύρα θα μπορούσε να είναι χρήσιμη για τη διασπορά σημαντικής πληροφορίας σε όλους τους κόμβους. Θα δούμε ότι χρησιμοποιείται σε μερικά σχήματα για τη διασπορά πληροφορίας δρομολόγησης. Το κύριο μειονέκτημα της πλημμύρας είναι το υψηλό φορτίο κίνησης που δημιουργεί, το οποίο είναι άμεσα ανάλογο με τη συνδεσιμότητα του δικτύου. Η τυχαία δρομολόγηση έχει την απλότητα και την ανθεκτικότητα της πλημμύρας με πολύ μικρότερο φορτίο κίνησης. Με την τυχαία δρομολόγηση, ένας κόμβος επιλέγει ένα μονοπάτι εξόδου για την επαναμετάδοση ενός εισερχόμενου πακέτου. Η σύνδεση εξόδου επιλέγεται τυχαία, εξαιρουμένης της σύνδεσης από την οποία προήλθε το πακέτο. Αν όλες οι συνδέσεις έχουν την ίδια πιθανότητα να επιλεγούν, τότε ένας κόμβος μπορεί απλά να χρησιμοποιεί τις συνδέσεις εξόδου εκ περιτροπής. Μία τροποποίηση αυτής της τεχνικής είναι να ορίσουμε μία πιθανότητα για κάθε σύνδεση εξόδου και να επιλέξουμε τη σύνδεση με βάση αυτή την πιθανότητα. Η πιθανότητα θα μπορούσε να είναι βασισμένη στο ρυθμό δεδομένων. Όπως και πλημμύρα, έτσι και η τυχαία δρομολόγηση δεν απαιτεί τη χρήση πληροφοριών για το δίκτυο. Επειδή η διαδρομή που ακολουθείται είναι τυχαία, η πραγματική διαδρομή συνήθως δεν θα είναι η διαδρομή με το ελάχιστο κόστος ούτε η διαδρομή με τα ελάχιστα άλματα. Έτσι, το δίκτυο πρέπει να μεταφέρει ένα φορτίο μεγαλύτερο από το βέλτιστο φορτίο κίνησης, αλλά όχι τόσο υψηλό όσο χρησιμοποιούσε πλημμύρα. Σχεδόν σε όλα τα δίκτυα μεταγωγής πακέτου χρησιμοποιείται κάποιο είδος προσαρμοστικής δρομολόγησης. Αυτό σημαίνει ότι οι αποφάσεις δρομολόγησης που παίρνονται αλλάζουν, καθώς αλλάζουν οι συνθήκες στο δίκτυο. Οι κυριότερες συνθήκες που επηρεάζουν τις αποφάσεις δρομολόγησης είναι οι ακόλουθες: Βλάβη :Όταν ένας κόμβος ή ένας τηλεπικοινωνιακός δίαυλος υποστεί βλάβη, δεν μπορεί πλέον να χρησιμοποιηθεί ως μέρος μιας διαδρομής. Συμφόρηση: Όταν ένα συγκεκριμένο τμήμα του δικτύου έχει υψηλή συμφόρηση, είναι επιθυμητό να δρομολογούνται πακέτα έξω από την περιοχή της συμφόρησης. Για να είναι δυνατή η προσαρμοστική δρομολόγηση πρέπει να ανταλλάσσεται πληροφορία ανάμεσα στους κόμβους για την κατάσταση του Σελ 12 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη δικτύου. Υπάρχουν αρκετά μειονεκτήματα που σχετίζονται με τη χρήση προσαρμοστικής δρομολόγησης σε σύγκριση με την στατική δρομολόγηση: Η απόφαση δρομολόγησης είναι πιο πολύπλοκη. Επομένως, η επιβάρυνση επεξεργασίας στους κόμβους του δικτύου αυξάνει. Σχήμα 4: Ο κόμβος 4 από το δίκτυο στο Σχήμα 3 Σε περισσότερες περιπτώσεις, οι προσαρμοστικές στρατηγικές εξαρτώνται από τις πληροφορίες κατάστασης που συλλέγονται σε ένα σημείο αλλά χρησιμοποιούνται σε ένα άλλο. Εδώ υπάρχει μια ανταλλαγή ανάμεσα στην ποιότητα της πληροφορίας και την ποσότητα της επιβάρυνσης. Όσο περισσότερη πληροφορία ανταλλάσσεται και όσο πιο συχνά ανταλλάσσεται, τόσο καλύτερες θα είναι οι αποφάσεις δρομολόγησης που θα κάνει κάθε κόμβος. Από την άλλη πλευρά, αυτή η πληροφορία αποτελεί επιπλέον φορτίο στα δίκτυα, προκαλώντας έτσι μείωση της απόδοσης. Μία προσαρμοστική στρατηγική μπορεί να αντιδρά πολύ γρήγορα, προκαλώντας ταλαντώσεις που προκαλούν συμφόρηση, ή πολύ αργά, χωρίς καμία ανταπόκριση. Παρά τους κινδύνους αυτούς, οι στρατηγικές προσαρμοστικής δρομολόγησης είναι οι πιο διαδεδομένες, για δύο λόγους: Μία προσαρμοστική στρατηγική δρομολόγησης μπορεί να βελτιώσει την απόδοση από την οπτική γωνία του χρήστη. Μία προσαρμοστική στρατηγική δρομολόγησης μπορεί να βοηθήσει τον έλεγχο συμφόρησης. Επειδή μία προσαρμοστική στρατηγική δρομολόγησης τείνει να ισοσταθμίζει τα φορτία, μπορεί να καθυστερήσει την έναρξη μίας σοβαρής συμφόρησης. Αυτά τα πλεονεκτήματα ίσως να γίνουν ή ίσως να μη γίνουν Σελ 13 από 61
1 Δίκτυα δεδομένων αντιληπτά, εξαρτάται από την πληρότητα της σχεδίασης και τη φύση του φορτίου. Γενικά, η προσαρμοστική δρομολόγηση είναι μία ασυνήθιστα πολύπλοκη διεργασία για να εκτελεστεί σωστά. Ως απόδειξη αυτού, τα περισσότερα κύρια δίκτυα μεταγωγής πακέτου, όπως το ARPANET και οι διάδοχοί του, και πολλά εμπορικά δίκτυα, έχουν υποστεί τουλάχιστον μία τεράστια αναθεώρηση της στρατηγικής δρομολόγησής τους. Για παράδειγμα, το Σχήμα 4 παρουσιάζει την κατάσταση του κόμβου 4 του Σχήματος 3 σε ένα συγκεκριμένο χρονικό σημείο. Ο κόμβος 4 έχει συνδέσεις με άλλους τέσσερις κόμβους. Αρκετά πακέτα έχουν φτάσει και έχει δημιουργηθεί ένα απόθεμα, με μία ουρά από πακέτα να περιμένουν σε κάθε μία από τις συνδέσεις εξόδου. Ένα πακέτο φτάνει από τον κόμβοΐ με προορισμό τον κόμβο 6. Σε ποια σύνδεση εξόδου θα πρέπει να δρομολογηθεί το πακέτο; Με βάση τα τρέχοντα μήκη των ουρών και τις τιμές προτίμησης (Β6) για κάθε σύνδεση εξόδου, η ελάχιστη τιμή του 0 + Β6 είναι 4, στη σύνδεση με τον κόμβο 3. Έτσι, ο κόμβος 4 δρομολογεί το πακέτο στον κόμβο 3. Σχεδόν όλα τα δίκτυα μεταγωγής πακέτου και όλα τα διαδίκτυα βασίζουν τις αποφάσεις δρομολόγησης τους σε κάποιο κριτήριο της μορφής ελαχίστου κόστους. Αν το κριτήριο είναι η ελαχιστοποίηση του αριθμού αλμάτων, κάθε σύνδεση έχει την τιμή 1. Πιο συνηθισμένο είναι η τιμή της σύνδεσης να είναι αντίστροφα ανάλογη με τη χωρητικότητα της σύνδεσης, ανάλογη με το τρέχον φορτίο της σύνδεσης ή κάποιο συνδυασμό. Σε κάθε περίπτωση, αυτά τα κόστη συνδέσεων ή αλμάτων χρησιμοποιούνται ως είσοδος σε έναν αλγόριθμο δρομολόγησης ελαχίστου κόστους, ο οποίος μπορεί να διατυπωθεί ως εξής: "Σε ένα δίκτυο με κόμβους συνδεδεμένους με αμφίδρομες συνδέσεις, όπου κάθε σύνδεση έχει ένα κόστος για κάθε για κάθε κατεύθυνση, προσδιόρισε το κόστος μιας διαδρομής ανάμεσα σε δύο κόμβους ως το άθροισμα των κοστών των συνδέσεων που συνθέτουν την διαδρομή. Για κάθε ζεύγος κόμβων, βρες το μονοπάτι με το ελάχιστοι κόστος. Σημειώνεται ότι το κόστος μιας σύνδεσης μπορεί να διαφέρει στις δύο κατευθύνσεις του. Αυτό θα ήταν αληθές, για παράδειγμα, αν το κόστος μιας σύνδεσης ήταν ίσο με το μήκος της ουράς των πακέτων που περιμένουν να μεταδοθούν από τον καθένα από τους δύο κόμβους της σύνδεσης. Οι περισσότεροι αλγόριθμοι δρομολόγησης ελαχίστου κόστους που χρησιμοποιούνται σε δίκτυα μεταγωγής πακέτου και στο διαδίκτυο είναι παραλλαγές ενός από τους δύο πιο κοινούς αλγόριθμους που είναι γνωστοί ως ο αλγόριθμος του Dijkstra's και ο αλγόριθμος του BeNman-Ford. Αυτό το παράρτημα παρέχει μία σύνοψη αυτών των δύο αλγόριθμων. [4] Σελ 14 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη 1.4 Αλγόριθμος του Dijkstra Ο αλγόριθμος του Dijkstra μπορεί να οριστεί ως ακολούθως: Βρες τα συντομότερα μονοπάτια από ένα συγκεκριμένο κόμβο πηγή προς όλους τους άλλους κόμβους, κατατάσσοντας τα μονοπάτια κατά αύξουσα σειρά ως προς το μήκος του μονοπατιού. Στο κ-οστό στάδιο έχουν καθοριστεί τα συντομότερα μονοπάτια προς τους κ κόμβους που βρίσκονται πιο κοντά στον κόμβο πηγής. Αυτοί οι κόμβοι βρίσκονται σε ένα σύνολο T. Στο στάδιο (k + 1), ο κόμβος που δεν βρίσκεται στο T και έχει το συντομότερο μονοπάτι από τον κόμβο πηγή, προστίθεται στο T. Καθώς κάθε κόμβος προστίθεται στο T, καθορίζεται το μονοπάτι του από την πηγή. Ο αλγόριθμος του E.W. Dijkstra είναι ένας αλγόριθμος ο οποίος χρησιμοποιείται για τον υπολογισμό της ελάχιστης διαδρομής μεταξύ κορυφών σε συνεκτικά ψευδογραφήματα. 1.4.1 Λειτουργία του αλγορίθμου Στη συνέχεια περιγράφεται η λειτουργία του αλγορίθμου του Dijkstra. Αρχικά, θα πρέπει να ορίσουμε ότι για κάθε ζεύγος προσκείμενων κορυφών v και u του G ψευδογραφήματος w(v,u) είναι το ελάχιστο βάρος μιας ακμής που ενώνει τις κορυφές v και u. Επιπλέον πρέπει να δημιουργήσουμε τρεις λίστες οι οποίες θα αποθηκεύουν τις αποστάσεις από την αρχική κορυφή, τις προηγούμενες κορυφές, τις ελεγμένες κορυφές αντίστοιχα. Θα πρέπει επίσης να κρατούμε και την τρέχουσα κορυφή για την οποία γίνεται ο έλεγχος αποστάσεων. Οι τιμές στην λίστα που αποθηκεύει τις αποστάσεις θα πρέπει αρχικά να τεθούν ίσες με άπειρο, εκτός από την αρχική κορυφή που θα πρέπει να έχει τιμή μηδέν. Η λίστα με τις ελεγμένες κορυφές θα πρέπει να είναι κενή, ενώ η λίστα με τις προηγούμενες κορυφές θα πρέπει να έχει τιμές NULL δηλαδή μη ορισμένες. Τέλος, θα πρέπει να ορίσουμε ότι αρχικά η τρέχουσα κορυφή θα είναι η κορυφή από την οποία έχουμε υποδείξει ότι θα ξεκινήσει ο αλγόριθμος. Στη συνέχεια ακολουθεί το κυρίως κομμάτι του αλγορίθμου του Dijkstra. Ο αλγόριθμος του Dijkstra έχει τρία βήματα. Τα βήματα 2 και 3 επαναλαμβάνονται έως ότου T = N. Αυτό σημαίνει ότι τα βήματα 2 και 3 επαναλαμβάνονται μέχρι να ανατεθούν τα τελικά μονοπάτια σε όλους τους κόμβους του δικτύου. Ο αλγόριθμος μπορεί επίσημα να περιγραφεί ως ακολούθως, δίνοντας τις ακόλουθες διευκρινήσεις: N = σύνολο των κόμβων του δικτύου s = κόμβος πηγή Σελ 15 από 61
1 Δίκτυα δεδομένων Τ = σύνολο των κόμβων που έχουν μέχρι στιγμής επεξεργαστεί από τον αλγόριθμο w(i, /) = κόστος σύνδεσης από τον κόμβο ί στον κόμβο /, w(i, ί) = 0, w(i, /) = Μ, αν οι δύο κόμβοι δεν είναι απευθείας συνδεδεμένοι, w(ί, /) > 0 αν οι δύο κόμβοι είναι απευθείας συνδεδεμένοι υ(π) = κόστος του μονοπατιού με το ελάχιστο μονοπάτι από τον κόμβο ε στον κόμβο π που είναι μέχρι στιγμής γνωστό στον αλγόριθμο. Στον τερματισμό, αυτό είναι το κόστος του μονοπατιού με το ελάχιστο κόστος στο διάγραμμα από το ε στο π. Σχήμα 5: Η βήμα προς βήμα λειτουργία του αλγορίθμου του ϋί/^είγθ Σελ 16 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη Ο αλγόριθμος τερματίζει όταν όλοι οι κόμβοι έχουν προστεθεί στο Τ. Στον τερματισμό, η τιμή Ι-(χ) που συσχετίζεται με κάθε κόμβο χ είναι το κόστος (μήκος) του μονοπατιού με το ελάχιστο κόστος από τον ε στο χ. Επιπλέον, το Τ καθορίζει το μονοπάτι με το ελάχιστο κόστος από τον ε προς κάθε άλλο κόμβο. Μία επανάληψη των βημάτων 2 και 3 προσθέτει ένα νέο κόμβο στο Τ και καθορίζει το μονοπάτι με το ελάχιστο κόστος από τον β σε αυτόν τον κόμβο. Το μονοπάτι περνά μόνο μέσα από κόμβους που βρίσκονται στο Τ. Για την κατανόηση αυτού, κάντε τον ακόλουθο συλλογισμό. Μετά από Ι< επαναλήψεις, υπάρχουν Ι< κόμβοι στο Τ, και το μονοπάτι με το ελάχιστο κόστος από τον ε προς καθένα από αυτούς τους κόμβους έχει καθοριστεί. Τώρα θεωρείστε όλα τα πιθανά μονοπάτια από τον ε προς κόμβους που δε βρίσκονται στο Τ. Ανάμεσα σε αυτά τα μονοπάτια, υπάρχει ένα με το ελάχιστο κόστος που περνά αποκλειστικά μέσα από κόμβους του Τ, τερματίζοντας με μία απευθείας σύνδεση από κάποιο κόμβο τουτ σε ένα κόμβο που δε βρίσκεται στο Τ. Αυτός ο κόμβος προστίθεται στο Τ και το σχετικό μονοπάτι καθορίζεται ως το μονοπάτι με το ελάχιστο κόστος για αυτό τον κόμβο. ίίθγ T L(2) Path L(3) Path L(4) Path L(5) Path L(6) Path 1 {1} 2 1-2 5 1-3 1 1-4 - - 2 {1,4} 2 1-2 4 1-4-3 1 1-4 2 1-4-5-3 {1,2,4} 2 1-2 4 1-4-3 1 1-4 2 1-4-5-4 {1,2,4,5} 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4 5-6 5 {1,2,3,4,5} 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4 5-6 6 {1,2,3,4,5,6} 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4 5-6 Πίνακας 1: Ο πίνακας που θα δημιουργηθεί με την ολοκλήρωση της λειτουργίας του αλγορίθμου Ο Πίνακας 1 και το Σχήμα 5 παρουσιάζουν το αποτέλεσμα της εφαρμογής αυτού του αλγορίθμου στο Σχήμα 1, χρησιμοποιώντας ε = 1. Οι σκιασμένες ακμές καθορίζουν το δένδρο συνδέσεων του διαγράμματος. Οι τιμές σε κάθε κύκλο είναι οι τρέχουσες εκτιμήσεις του Ι-(χ) για κάθε κόμβο χ. Ένας κόμβος σκιάζεται όταν προστίθεται στο Τ. Σημειώστε ότι σε κάθε βήμα Σελ 17 από 61
1 Δίκτυα δεδομένων παράγεται το μονοπάτι για κάθε κόμβο συν το συνολικό κόστος του κάθε μονοπατιού. Έπειτα από την τελευταία επανάληψη, έχει αναπτυχθεί το μονοπάτι με το ελάχιστο κόστος για κάθε κόμβο και το κόστος αυτού του μονοπατιού. Η ίδια διαδικασία μπορεί να χρησιμοποιηθεί με τον κόμβο 2 ως κόμβο-πηγή και ούτω καθεξής. Σελ 18 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη 1.5 Αλγόριθμος Bellman-Ford O αλγόριθμος βρίσκει τα βάρη των ελάχιστων μονοπατιών από μια δεδομένη πηγή s προς κάθε κορυφή V e V. for all ve V d[v] = <»; d[s]=0; for (i=1; i< V ; i++) for all edges (u,v)e E if (d[v] > d[u]+w(u,v)) d[v]= d[u] + w(u,v); for all edges (u,v)e E if (d[v] > d[u]+ w(u,v)) 1. Στην πρώτη φάση του αλγόριθμου αποδίδονται οι αρχικές τιμές στα d. 2. Για V - 1 φορές γίνεται χαλάρωση της κάθε ακμής, δηλαδή μικραίνει η απόσταση της κάθε ακμής από την πηγή s. 3. Τελικά γίνεται έλεγχος κατά πόσο οι τιμές που έχουν δοθεί είναι πράγματι λύσεις (αυτό συμβαίνει εφόσον δεν υπάρχει κύκλος με αρνητικό κόστος). Ο αλγόριθμος τερματίζει μετά από V -1 χαλαρώσεις διότι αν δεν υπάρχουν κύκλοι με αρνητικό κόστος, κάθε ελάχιστο μονοπάτι είναι απλό και το «μακρύτερο» απλό μονοπάτι έχει μήκος V -1. Έτσι αν δεν υπάρχει κύκλος αρνητικού κόστους, τότε όλα τα d συγκλίνουν στη σωστή τους τιμή μετά από V -1 χαλαρώσεις. Ισοδύναμα, αν μια τιμή d αποτύχει να συγκλίνει μετά από V -1 χαλαρώσεις, τότε υπάρχει κύκλος αρνητικού βάρους. Επίσης ισχύει το αντίστροφο: αν υπάρχει κύκλος αρνητικού βάρους πάνω σε κάποιο μονοπάτι από την s στη ν, τότε η d[v] αποτυγχάνει να συγκλίνει στη σωστή τιμή μετά από V -1 χαλαρώσεις. Ο αλγόριθμος του Bellman-Ford: S Δουλεύει ακόμα και με αρνητικά βάρη ακμών S Πρέπει να υποθέσουμε οτι οι ακμές είναι κατευθυνόμενες (ειδάλλως θα έχουμε αρνητικά βεβαρημένους κύκλους) S Η επανάληψη ( το Iteration) i βρίσκει όλα τα συντομότερα μονοπάτια που χρησιμοποιούν οι ακμές. S Χρόνος εκτέλεσης: O(nm). S Μπορούμε να επεκταθούμε για να ανιχνεύσουμε έναν αρνητικά βεβαρημένο κύκλο αν υπάρχει [7] Σελ 19 από 61
2 Νευρωνικά δίκτυα Κεφάλαιο 2 Νευρωνικά δίκτυα Η έρευνα σχετικά με τα τεχνητά νευρωνικά δίκτυα είναι εμπνευσμένη από τη δομή και τη λειτουργία του εγκεφάλου. Βασικό δομικό στοιχείο του εγκεφάλου είναι οι νευρώνες, δηλαδή τα νευρικά κύτταρα τα οποία δημιουργούν ένα πυκνό δίκτυο επικοινωνίας μεταξύ τους. Κίνητρο για τη μελέτη του νευρώνα και των νευρωνικών δικτύων είναι η ελπίδα ανακάλυψης ενός νέου υπολογιστικού μοντέλου βασισμένου σε μια δικτυακή δομή παρόμοια με αυτή του εγκεφάλου. Αυτή η καινούργια υπολογιστική πλατφόρμα γνωστή ως Connectionist Model θα είναι πιο κατάλληλη για ανάπτυξη ευφυών αλγορίθμων και γενικότερα διαδικασιών σχετιζόμενων με τη νοημοσύνη, όπως η μάθηση, η μνήμη, η γενίκευση, η ομαδοποίηση προτύπων, κλπ. Σχήμα 6: Ο νευρώνας Τα συνήθη Τεχνητά Νευρωνικά Δίκτυα (ΤΝΔ) χρησιμοποιούν πολύ απλοποιημένα μοντέλα νευρώνων τέτοια ώστε να διατηρούν μόνο τα πολύ αδρά χαρακτηριστικά των λεπτομερών μοντέλων που χρησιμοποιούνται στη νευρολογία. Θα έλεγε κανείς ότι τα συνήθη τεχνητά νευρωνικά μοντέλα έχουν ελάχιστη σχέση με τα βιολογικά νευρωνικά συστήματα. Ωστόσο πιστεύεται ότι οι λεπτομέρειες δεν έχουν ιδιαίτερη σημασία στην κατανόηση της ευ - φυούς συμπεριφοράς των βιολογικών νευρωνικών συστημάτων. Ακόμη και αυτά τα απλά μοντέλα νευρώνων μπορούν να δημιουργήσουν ιδιαιτέρως ενδιαφέροντα δίκτυα αρκεί να πληρούν δύο βασικά χαρακτηριστικά: Σελ 20 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη (α) οι νευρώνες να έχουν ρυθμιζόμενες παραμέτρους ώστε να διευκολύνεται η διαδικασία της μάθησης ιδιότητα γνωστή ως πλαστικότητα των νευρώνων (β) το δίκτυο να αποτελείται από μεγάλο πλήθος νευρώνων ώστε να επι - τυγχάνεται παραλληλισμός της επεξεργασίας και κατανομή της πληροφορίας H πρόκληση που αντιμετωπίζει η Θεωρία των ΤΝΔ είναι η εύρεση κατάλληλων αλγορίθμων εκπαίδευσης των δικτύων και ανάκλησης της πληροφορίας που αυτά περιέχουν έτσι ώστε να προσομοιάζονται ευφυείς διαδικασίες όπως αυτές που αναφέρθηκαν παραπάνω. Για την επίτευξη αυτού του στόχου απαιτείται ο ορισμός του κατάλληλου περιβάλλοντος εκπαίδευσης, πχ. αν το δίκτυο θα εκπαιδεύεται με επίβλεψη, δηλαδή με τη χρήση κάποιων δεδομένων οδηγών-δασκάλων, ή αν το δίκτυο Θα αφήνεται μόνο του να αυτο-οργανωθεί και με ποιο συγκεκριμένο κριτήριο και στόχο. 2.1 Ο Νευρώνας Το νευρικό κύτταρο ή νευρώνας (Σχ. 6) είναι το βασικό δομικό στοιχείο του εγκεφάλου τόσο στον άνθρωπο όσο και στα ζώα. Ο νευρώνας είναι ένα μεγάλο σε μέγεθος κύτταρο το οποίο, ανατομικά, αποτελείται από τα εξής τμήματα: (α) το σώμα, (β) τους δενδρίτες, (γ) τον άξονα, και (δ) τις συνάψεις που συνδέουν τις διακλαδώσεις του άξονα με τους δενδρίτες άλλων νευρώνων δημιουργώντας έτσι ένα νευρωνικό δίκτυο. Λειτουργικά, τα τμήματα του νευρώνα παίζουν διαφορετικούς ρόλους: Οι δενδρίτες είναι οι πύλες εισόδου του νευρώνα. Δέχονται ηλεκτρικά σήματα από άλλους νευρώνες. Ο άξονας είναι η πύλη εξόδου του νευρώνα. Μοιάζει με μια μακρόστενη κλωστή που μερικές φορές έχει μήκος μερικά χιλιοστά και άλλες φορές ξεπερνάει το 1m. Ο άξονας στέλνει σήματα προς άλλους νευρώνες υπό μορφή ηλεκτρικών παλμών σταθερού πλάτους αλλά μεταβλητής συχνότητας. Οι συνάψεις είναι τα σημεία ένωσης μεταξύ διακλαδώσεων του άξονα ενός νευρώνα και των δενδριτών από άλλους νευρώνες. Είναι κύστες με ηλεκτροχημικό υλικό ιόντα, κυρίως Νατρίου και Καλίου (Na±, Κ+). Το υλικό αυτό μεταδίδει την ηλεκτρική δραστηριότητα του άξονα-αποστολέα στους δενδρίτες-παραλήπτες. Το πλάτος της σύναψης, η απόστασή της από τον δενδρίτη και η πυκνότητα του ηλεκτροχημικού υλικού επηρεάζουν την ευκολία με την οποία η ηλεκτρική δραστηριότητα μεταδίδεται από τον άξονα στο δενδρίτη. Το ποσοστό της ηλεκτρικής δραστηριότητας που μεταδίδεται τελικά στο δενδρίτη λέγεται συνοπτικό βάρος. Οι συνάψεις χωρίζονται σε ενισχυτικές (exitatory) και σε ανασταλτικές (inhibitory) ανάλογα με το αν το φορτίο που εκλύεται από τη σύναψη ερεθίζει το νευρώνα προς το να παράγει παλμούς με μεγαλύτερη συχνότητα ή αντίθετα αν τον καταστέλλει εμποδίζοντάς τον να παράγει παλμούς. Σελ 21 από 61
2 Νευρωνικά δίκτυα 2.1.1 Πώς λειτουργεί ο Νευρώνας Λειτουργία του βιολογικού νευρώνα Στους βιολογικούς νευρώνες, φορείς πληροφορίας είναι ηλεκτρικοί παλμοί που ταξιδεύουν στον άξονα κάθε νευρώνα και μέσω των συνάψεων διαδίδονται στους δενδρίτες των παραληπτών νευρώνων. Κάθε νευρώνας Α συλλέγει όλο το ηλεκτρικό φορτίο που δέχεται από κάθε σύναψη στους δενδρίτες του ζυγίζοντας το εισερχόμενο φορτίο με το αντίστοιχο συναπτικό βάρος. 'Έτσι, όσο πιο ισχυρή είναι η συναπτική ζεύξη τόσο πιο πολύ έντονα συμμετέχει το συγκεκριμένο φορτίο εισόδου στο συνολικό άθροισμα. Αν το άθροισμα του φορτίου ξεπερνάει κάποιο κατώφλι τότε ο άξονας του Α αρχίζει να παράγει ηλεκτρικούς παλμούς με μεγάλη συχνότητα οπότε λέμε ότι ο νευρώνας πυροβολεί. Αν όμως το φορτίο δεν περνάει το συγκεκριμένο αυτό όριο τότε ο νευρώνας παράγει πολύ αραιά παλμούς σε τυχαίες στιγμές οπότε λέμε ότι ο νευρώνας είναι αδρανής. Κάθε παλμός έχει συγκεκριμένο χρονικό πλάτος / και μετά από κάθε παλμό ο νευρώνας χρειάζεται ένα ελάχιστο χρόνο ανάπαυσης ίγ. 'Έτσι ο μέγιστος ρυθμός των παλμών δεν ξεπερνάει το όριο Συχνότητα παλμών < 1 / (ΐρ+ΐ). Τελικά οι παλμοί που παράγονται ταξιδεύουν κατά μήκος του άξονα και τροφοδοτούν τους άλλους νευρώνες με τους οποίους συνδέεται ο Α. Προσυνατττικη μεμβράνη Κυστιδια Βολβός τερματισμού του αξονα Νεύρο-μεταδότης Συναιττική σχισμή Μετασυναπτικη μεμβράνη Σχήμα 7: Σχηματικό διαγραμμα της ανατομίας μιας σύναψης Σελ 22 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη 2.1.2 Το μοντέλο McCulloch-Pitts Τη δεκαετία τον 1940 υπήρξε μια εντονότατη δραστηριότητα προς την κατεύθύνση της μελέτης των βιολογικών νενρωνικών δικτύων και της μαθηματικής μοντελοποίησής τους. Πρωτοπόροι στον τομέα αυτό οι Αμερικανοί επιστήμονες McCulloch και Pitts που περιέγραψαν ένα απλό μοντέλο της δραστηριότητας του νευρώνα. H κατάσταση του νευρώνα περιγράφεται από ένα δυαδικό αριθμό y y = 0 ^ ο νευρώνας είναι αδρανής (δεν πυροβολεί) y = 1 ^ ο νευρώνας πυροβολεί στη μέγιστη συχνότητα Οι συνάψεις περιγράφονται από τα συναπττκά βάρη (synaptic weights) wi που είναι πραγματικοί αριθμοί, θετικοί για τις ενισχυτικές συνάψεις και αρνητικοί για τις ανασταλτικές συνάψεις. Αν x-ι, x2,...,xi είναι οι είσοδοι του νευρώνα τότε το άθροισμα u του φορτίου που δέχεται ο νευρώνας είναι απλά Π Αν το άθροισμα u είναι μεγαλύτερο από το κατώφλι (threshold) Θ τότε ο νευρώνας πυροβολεί, διαφορετικά παραμένει αδρανής. Χρησιμοποιώντας μαθηματικά γράφουμε ^ (υ -Θ ) όπου f() είναι η λεγόμενη βηματική συνάρτηση. Βηματική συνάρτηση 0/1 (step function 0/1): f (χ) = { i = 1 0, αν u < 0 1, αν u > 0 Σχηματικά το παραπάνω παριστάνεται από ένα αθροιστή ακολουθούμενο από ένα μη-γραμμικό μετασχηματιστή ί. Το κατώφλι θ είναι ένας πραγματικός αριθμός (θετικός ή αρνητικός) όπως άλλωστε και τα συναπτικά βάρη,νν2,...,ινη. Κατά αυτή την έννοια το κατώφλι θ μπορεί να θεωρηθεί ως ένα επί πλέον βάρος συνδεδεμένο με μια σταθερή είσοδο Χ0 η οποία έχει πάντα την τιμή -1. Έτσι Θα μπορούσαμε να γράψουμε Π Π όπου w0 =θ και Χο=-1. ί=1 ί=0 Σελ 23 από 61
2 Νευρωνικά δίκτυα 2.2 Εκπαίδευση νευρωνικών δικτύων Ο ανθρώπινος εγκέφαλος αποτελείται από περίπου 100 δισεκατομμύρια νευρώνες και σε κάθε νευρώνα αντιστοιχούν κατά μέσο όρο περίπου 1000 συνάψεις (δηλαδή έχουμε ένα σύνολο 100 τρισεκατομμυρίων συνάψεων). H τρομερή πολυπλοκότητα του εγκεφάλου τον καθιστά ικανό να εκτελεί με επιτυχία διάφορες λειτουργίες που συλλογικά οδηγούν σε αυτό που αποκα - λούμε νοημοσύνη. Τέτοιες λειτουργίες είναι H αναγνώριση εικόνων (προσώπων, αντικειμένων, κλπ) H μνήμη H αναγνώριση φωνής, η κατανόηση και η παραγωγή της γλώσσας Η αυτόνομη πλοήγηση στο χώρο H λήψη αποφάσεων H κατάστρωση στρατηγικής και η επιλογή της καλύτερης με βάση διά - φορα κριτήρια κόστους H λογική, η ανάπτυξη επιχειρημάτων, η συνεπαγωγή H μάθηση και η αυτοπροσαρμογή σε νέο περιβάλλον και σε νέες κατα - στάσεις. Το τελευταίο αντικείμενο, δηλαδή η μάθηση είναι ίσως ένα από τα πιο σημαντικά χαρακτηριστικά του εγκεφάλου και γενικά των βιολογικών νευρωνικών δικτύων (σημειώνεται ότι ικανότητα μάθησης δεν έχουν μόνο οι άνθρωποι αλλά και τα ζώα). Ο λόγος που η μάθηση Θεωρείται το κλειδί της νοημοσύνης είναι το γεγονός ότι οι περισσότερες από τις υπόλοιπες λειτουργίες που περιγράψαμε παραπάνω μαθαίνονται κατά τη διάρκεια του βίου, και συνήθως κατά τη βρεφική ή την πρώιμη παιδική ηλικία, και δεν προκύπτουν εκ γενετής. Για παράδειγμα, κανένα παιδί δε γεννήθηκε γνωρίζοντας Ελληνικά, Αγγλικά, ή Κινέζικα. Αντίθετα, κάθε παιδί μαθαίνει τη γλώσσα, την οποία θα μιλάει ως μητρική από 'δω και στο εξής, κατά τη διάρκεια των πρώτων χρόνων της ζωής τον ανάλογα με το γλωσσικό περιβάλλον μέσα στο οποίο Θα μεγαλώσει. Επίσης η αναγνώριση των οικείων προσώπων (π.χ. μητέρα, πατέρας, αδερφός, αδερφή, κλπ) και του οικείου περιβάλλοντος (το δωμάτιο, το σπίτι, η γειτονιά) δεν μπορεί να υπάρχει εκ γενετής αλλά μαθαίνεται διότι οι συγκεκριμένοι γονείς και το συγκεκριμένο περιβάλλον διαφέρει από παιδί σε παιδί. Παρόμοιες επισημάνσεις μπορούν να γίνουν και για τις υπόλοιπες λειτουργίες που κατατάσσονται στην ευρύτερη έννοια της νοημοσύνης. Βασική αρχή της Τεχνητής Νοημοσύνης (ΤΝ) είναι η ύπαρξη ενός υλικού στρώματος πάνω στο οποίο εκτελούνται όλες οι παραπάνω λειτουργίες. Στον άνθρωπο και στα ζώα το υλικό αυτό είναι οι νευρώνες και η δομή του υλικού είναι ένα πυκνό δίκτυο μεταξύ των νενρώνων με εκατοντάδες Σελ 24 από 61
Πτυχιακή εργασία του Ευκλείδη Μιχαηλίδη έως χιλιάδες συνάψεις ανά νευρώνα. Το αντικείμενο μελέτης της TN είναι διπλό: 1. η ανάπτυξη ενός υλικού το οποίο θα μπορεί να υποστηρίξει τις παραπάνω επιθυμητές λειτουργίες, άσχετα αν αυτό το υλικό μιμείται τους νευρώνες ή όχι. Ένα τέτοιο υλικό είναι το υλικό των υπολογιστών που αποτελείται από ημιαγωγά στοιχεία και τρανζίστορ 2. η ανάπτυξη αλγορίθμων που θα μιμούνται αυτές τις λειτουργίες, δηλαδή θα κάνουν αναγνώριση φυσικής γλώσσας. Θα κάνουν αναγνώριση προσώπων και περιβάλλοντος, θα επιτυγχάνουν αυτόματη πλοήγηση ενός ρομπότ σε περιβάλλον με φυσικά εμπόδια, θα αναπτύσσουν βέλτιστες στρατηγικές για ένα πρόβλημα, θα εκτελούν συλλογισμούς και θα καταλήγουν σε λογικά συμπεράσματα, θα έχουν μνήμη και τέλος θα αυτοπροσαρμόζονται σε νέες καταστάσεις και σε άγνωστα περιβάλλοντα και θα μαθαίνουν από την εμπειρία τους. Όλοι αυτοί οι στόχοι είναι βέβαια πολλοί και ιδιαίτερα απαιτητικοί αλλά αποτελούν το κύριο αντικείμενο μελέτης της Τεχνητής Νοημοσύνης. Τα τεχνητά νευρωνικά δίκτυα είναι μοντέλα που μιμούνται τη λειτουργία των βιολογικών νευρώνων και τη δομή των βιολογικών νευρωνικών δικτύ - ων. Το αντικείμενο των τεχνητών νευρωνικών δικτύων είναι η ανάπτυξη και η μελέτη μαθηματικών αλγορίθμων που μιμούνται την αρχιτεκτονική και το πρότυπο των βιολογικών νευρωνικών δικτύων. [2] 2.3 Η τεχνολογία κατασκευής Τεχνητών Νευρωνικών Δικτύων Κάποιο ΤΝΔ μπορεί να υλοποιηθεί με λογισμικό (software) ή να κατασκευαστεί απευθείας σε ολοκληρωμένο κύκλωμα πολύ μεγάλης κλίμακας ολοκλήρωσης (VLSI, με περισσότερα από 105 στοιχεία). O πιο προσιτός τρόπος για να κατασκευάσει κάποιος ένα ΤΝΔ είναι να χρησιμοπ οιήσει ως π ρογραμματιστικό εργαλείο οποιαδήποτε γλώσσα προγραμματισμού τέταρτης γενιάς η οποία υποστηρίζει πράξεις πινάκων (πχ. Pascal, C, C + + ). Ακόμη υπάρχουν στο εμπόριο εξειδικευμένα εργαλεία που διευκολύνουν την ανάπτυξη ΤΝΔ απαλλάσσοντας τον χειριστή από τις εργασίες ρουτίνας. Ένα τέτοιο περιβάλλον διευκολύνει την ανάπτυξη επιτρέποντας την αλληλεπιδραστική επικοινωνία χρήστη και ΤΝΔ μέσα από κυλιόμενα μενού, τόσο κατά την φάση της ανάπτυξης, όσο και κατά την φάση του ελέγχου. Ακόμη για αυξημένη ταχύτητα αριθμητικών υπολογισμών το αναπτυξιακό περιβάλλον μπορεί να συνδυάζεται με κάποιον αριθμητικό επιταχυντή σε hardware όπως είναι αυτοί που προσφέρουν οι εταιρίες Alacron, CSPI, Data Cube, HNC και Ward Systems Group και βασίζονται στο 186o της Intel. H κατασκευή ΤΝΔ με τεχνολογία VLSI παρουσιάζει αυξημένο κόστος αλλά και ιδιαίτερο ενδιαφέρον, επειδή κατασκευάζοντας τις παράλληλες δομές των τεχνητών νευρωνικών δικτύων σε ολοκληρωμένο κύκλωμα επιτυγχάνεται εξαιρετικά υψηλή ταχύτητα επεξεργασίας των πληροφοριών. Μερικά από τα χαρακτηριστικά που πρέπει να διαθέτει ένα τεχνητό νευρωνικό δίκτυο που Σελ 25 από 61
2 Νευρωνικά δίκτυα κατασκευάζεται σε ολοκληρωμένο κύκλωμα είναι τα εξής: Να επιτρέπει την δημιουργία διαφορετικών συνδεσμολογιών των TN έτσι ώστε να μπορεί το ΤΝΔ να χρησιμοποιηθεί σε διαφορετικές εφαρμογές. H απόδοση του πρέπει να είναι σταθερή και ανεξάρτητη από το μέγεθος του ΤΝΔ. Το κόστος παραγωγής του πρέπει να είναι λογικό. Παράδειγμα υλοποίησης τεχνητού νευρωνικού δικτύου σε ολοκληρωμένο κύκλωμα ψηφιακής τεχνολογίας είναι το DNNA (Digital Neural Network Architecture) το οποίο διαθέτει 1024 βάρη και υλοποιείται με την υπάρχουσα φτηνή τεχνολογία κατασκευής ΟΚ. Το DNNA είναι σχεδιασμένο έτσι ώστε να επιτυγχάνει πολύ μεγάλες ταχύτητες επεξεργασίας. Συγκριτικά, για να επιτύχει κάποιος ψηφιακός ηλεκτρονικός υπολογιστής την ταχύτητα επεξεργασίας το DNNA χρειάζεται το ισοδύναμο σε υπολογιστική ισχύ 200 MFLOPS. Με το DNNA μπορούμε να κατασκευάσουμε μόνο ΤΝΔ που δεν διαθέτουν ανατροφοδότηση. Τα βάρη μέσα στο ΟΚ αποτελούν έναν πλήρως διασυνδεδεμένο πίνακα. Το ΟΚ διαθέτει στατική μνήμη RAM όπου μπορούμε να αποθηκεύσουμε κάποιες τιμές για τα βάρη ήτα διανύσματα εισόδου. Σε ένα δεύτερο ΟΚ υλοποιείται η συνάρτηση δραστηριότητας των ΤΝ και παράγεται το διάνυσμα εξόδου. Συνδυάζοντας πολλά ΟΚ μπορούμε να δημιουργήσουμε οποιαδήποτε τοπολογία ΤΝΔ. Τα βάρη του DNNA λαμβάνουν 16 διακριτές τιμές στο διάστημα [-1,1]. Αυτή η σύμβαση προκύπτει από εσωτερική σχεδιαστική απαίτηση του ΟΚ. Επομένως, για την επίλυση κάποιου προβλήματος με το DNNA, απαιτείται μεγαλύτερος αριθμός βαρών σε σχέση με τα άλλα ΤΝΔ. Το DNNA μπορεί να χρησιμοποιηθεί σε διάφορες εφαρμογές όπως: Οπτική αναγνώριση χαρακτήρων πχ. για τη μετάδοση κειμένων με μηχανές FAX. Αναγνώριση ακουστικών σημάτων πχ. ενός αντικειμένου από συσκευή sonar ή από επίγειους ακουστικούς αισθητήρες. Η αναγνώριση γίνεται χρησιμοποιώντας την αναπαράσταση του ακουστικού σήματος στο πεδίο συχνοτήτων. Αναγνώριση ακουστο-μηχανικών σφαλμάτων και καταστολή των κραδασμών κάποιας συσκευής. Έλεγχο χημικών Κοινό χαρακτηριστικό όλων των προηγούμενων εφαρμογών είναι η απαίτηση πολύ μεγάλης ταχύτητας υπολογισμών. Μια άλλη τεχνολογία κατασκευής ΤΝΔ σε ΟΚ που παρουσιάζει σημαντικά πλεονεκτήματα είναι η υλοποίηση τους σε αναλογικά ΟΚ. H λειτουργία ενός αναλογικού ΟΚ δεν επηρεάζεται σημαντικά από την δυσλειτουργία ή ακόμη και την διακοπή λειτουργίας, κάποιων επιμέρους στοιχείων του ΟΚ, ενώ Σελ 26 από 61