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

Σχετικά έγγραφα
Τυπικά θέματα εξετάσεων. ΠΡΟΣΟΧΗ: Οι ερωτήσεις που παρατίθενται ΔΕΝ καλύπτουν την πλήρη ύλη του μαθήματος και παρέχονται απλά ενδεικτικά

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1

Κεφάλαιο 7. Γενετικοί Αλγόριθµοι. Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Τεχνολογία Συστημάτων Υδατικών Πόρων

Συστήματα Επιχειρηματικής Ευφυίας

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

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Ε ανάληψη. Α ληροφόρητη αναζήτηση

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

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

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

οµηµένος Εξελικτικός Αλγόριθµος

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

Α. Ερωτήσεις Ανάπτυξης

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

Περίληψη ιπλωµατικής Εργασίας

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

Επιµέλεια Θοδωρής Πιερράτος

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Πολυκριτηριακός Γραμμικός Προγραμματισμός. Συστήματα Αποφάσεων Εργαστήριο Συστημάτων Αποφάσεων και Διοίκησης

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

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

ιατύπωση τυπικής µορφής προβληµάτων Γραµµικού

Ακέραιος Γραμμικός Προγραμματισμός

Θεµελίωση Γενετικών Αλγορίθµων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Υπολογιστική Νοηµοσύνη

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

ΕΞΕΛΙΚΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ: θεωρητικό Πλαίσιο

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Νευρωνικά ίκτυα και Εξελικτικός. Σηµερινό Μάθηµα. επανάληψη Γενετικών Αλγορίθµων 1 η εργασία Επανάληψη νευρωνικών δικτύων Ασκήσεις εφαρµογές

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

Γενετικοί Αλγόριθμοι. Εισαγωγή

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

Υπολογιστικές Μέθοδοι στις Κατασκευές

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

Επιµέλεια Θοδωρής Πιερράτος

Προγραμματισμός Ι (HY120)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Γενετικοί Αλγόριθμοι (ΓΑ) Genetic Algorithms (GAs) Είναι το πιο αντιπροσωπευτικό και δημοφιλές είδος Εξελικτικού Αλγόριθμου Χρησιμοποιούνται κυρίως

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

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

ΑΕΠΠ Ερωτήσεις θεωρίας

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

Search and Replication in Unstructured Peer-to-Peer Networks

2.1 Αντικειµενοστρεφής προγραµµατισµός

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Διαδικασιακός Προγραμματισμός

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

Κεφάλαιο 3 Πολυπλεξία

Ακέραιος Γραμμικός Προγραμματισμός

Αποµακρυσµένη κλήση διαδικασιών

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Case 06: Το πρόβληµα τωνlorie και Savage Εισαγωγή (1)

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

Μελέτη και Υλοποίηση Αλγορίθμων για Βιολογικές Εφαρμογές σε MapReduce Περιβάλλον

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού

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

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Μέρος Β (Οργάνωση Υπολογιστών)

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Αρχιτεκτονική Υπολογιστών

Κ. Ι. ΠΑΠΑΧΡΗΣΤΟΥ. Τοµέας Φυσικών Επιστηµών Σχολή Ναυτικών οκίµων ΟΡΙΖΟΥΣΕΣ. Ιδιότητες & Εφαρµογές

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Πολυπύρηνοι επεξεργαστές Multicore processors

Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυϊκότητα. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 1/12/2016

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Γενετικοί Αλγόριθμοι

5.1 Θεωρητική εισαγωγή

Διαχείριση Υδατικών Πόρων Πολυκριτηριακή ανάλυση

Ανάπτυξη Plugins για το AgentSheets

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3

a = 10; a = k; int a,b,c; a = b = c = 10;

Ακέραιος Γραμμικός Προγραμματισμός

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Επίλυση Γραµµικών Συστηµάτων

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

Γενετικοί αλγόριθµοι - ΓΑ Genetic algorithms - GA

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΟΠΟΙΗΣΗ ΓΕΝΕΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ ΠΟΛΛΑΠΛΩΝ ΣΤΟΧΩΝ Αλογάριαστος Κωνσταντίνος ΑΕΜ 4987 Επιβλέπων Καθηγητής: Λουκάς Πέτρου Θεσσαλονίκη, Μάρτιος 2008

Περιεχόµενα Κεφάλαιο 1. Εισαγωγή... 5 Κεφάλαιο 2. Εξελικτικοί Αλγόριθμοι... 7 2.1 Γενικά περί εξελικτικών αλγορίθμων... 7 2.2 Γενετικοί Αλγόριθμοι... 7 2.2.1 Δυαδική κωδικοποίηση... 8 2.2.2 Πραγματικές παράμετροι... 8 2.3 Τελεστές και λειτουργία του γενετικού αλγορίθμου... 8 2.3.1 Συνάρτηση fitness... 8 2.3.2 Κύκλος ενός γενετικού αλγορίθμου... 9 2.3.3 Τελεστής αναπαραγωγής ή επιλογής... 9 2.3.4 Τελεστής διασταύρωσης... 10 2.3.5 Τελεστής μετάλλαξης... 10 Κεφάλαιο 3. Γενετικοί αλγόριθμοι πολλαπλών στόχων... 12 3.1 Προβλήματα βελτιστοποίησης πολλαπλών στόχων... 12 3.1.1 Μέτωπο Pareto... 13 3.2 Γενετικοί αλγόριθμοι πολλαπλών στόχων... 14 3.2.1 Vector Evaluated Genetic Algorithm... 15 3.2.2 Weight Based Genetic Algorithm... 15 3.2.3 Multiple Objective Genetic Algorithm... 16 3.3. Ελιτισμός... 16 Κεφάλαιο 4. Παραλληλοποίηση γενετικών αλγορίθμων... 17 4.1 Παράλληλος υπολογισμός... 17 4.1.1 Αξιολόγηση απόδοσης... 17 4.1.2 Αρχιτεκτονική κύριας μνήμης... 18 4.1.3 Κατηγορίες παράλληλων υπολογιστών... 19 4.1.4 Λογισμικό παράλληλου υπολογισμού... 20 4.2 Παραλληλοποίηση γενετικών αλγορίθμων... 20 4.3 Γενετικοί αλγόριθμοι Master-slave... 21 4.3.1 Μaster-slave γενετικοί αλγορίθμοι πολλαπλών στόχων... 22 4.3.2 Άλλα χαρακτηριστικά γενετικών αλγορίθμων master-slave... 22 4.4 Γενετικοί αλγόριθμοι island model... 23 4.4.1 Island-model γενετικοί αλγόριθμοι πολλαπλών στόχων... 24 2

4.5 Μετανάστευση σε island-model γενετικούς αλγορίθμους... 25 4.5.1 Τοπολογία της σύνδεσης... 25 4.5.2 Συχνότητα μετανάστευσης... 25 4.5.3 Ρυθμός μετανάστευσης... 26 4.5.4 Μέθοδοι αντικατάστασης... 27 4.6 Γενετικοί αλγόριθμοι diffusion... 27 Κεφάλαιο 5. Εισαγωγή στο MPI... 29 5.1 Ορισμός του MPI... 29 5.2 Κλήσεις προγραμμάτων MPI... 29 5.3 MPI C/C++ bindings... 30 5.3.1 Τύποι Δεδομένων του MPI... 30 5.4 Αρχικοποίηση του MPI... 31 5.5 Τερματισμός του MPI... 32 5.6 Communicators... 32 5.6.1 Μέγεθος του Communicator... 33 5.6.2 Τάξη διεργασίας... 33 5.7 Μεταφορά δεδομένων στο MPI... 34 5.7.1 Αποστολή δεδομένων... 34 5.7.2 Λήψη Δεδομένων... 34 5.8 Επιστροφή λαθών... 35 5.9 Εξειδικευμένες συναρτήσεις MPI... 36 5.9.1 Broadcast communications... 36 5.9.2 Non-blocking Send και Receive... 37 5.9.3 Ανταλλαγή δεδομένων μεταξύ δυο διεργασιών... 38 Κεφάλαιο 6. Περιγραφή του προγράμματος... 39 6.1 Αντικείμενο της διπλωματικής εργασίας... 39 6.2 Δομή του προγράμματος... 39 6.3 Τοπολογία αλγορίθμου... 42 6.4 Περιγραφή των αρχείων του πηγαίου κώδικα... 42 6.4.1 Βοηθητικά αρχεία... 43 6.4.2 Βασικά αρχεία και αρχεία προβλημάτων παράλληλου γενετικού αλγορίθμου ενός στόχου. 43 6.4.3 Βασικά αρχεία και αρχεία προβλημάτων παράλληλου γενετικού αλγορίθμου πολλαπλών στόχων... 47 Κεφάλαιο 7. Αποτελέσματα και Συμπεράσματα... 50 3

7.1 Συστοιχία υπολογιστών... 50 7.2 Πρόβλημα Schaffer... 50 7.3 Πρόβλημα Fonseca... 54 7.4 Πρόβλημα Deb... 57 7.5 Γενικά συμπεράσματα... 60 Κεφάλαιο 8. Σκέψεις και προτάσεις για περαιτέρω εμβάθυνση... 61 8.1 Προτάσεις στο επίπεδο του ατόμου... 61 8.2 Προτάσεις στο χειρισμό περιορισμών... 61 8.3 Προτάσεις στο επίπεδο του αλγορίθμου πολλαπλών στόχων... 61 8.4 Προτάσεις στο επίπεδο της παραλληλοποίησης του αλγορίθμου... 62 8.4.1 Τοπολογία σύνδεσης συστοιχίας... 62 8.4.2 MPI... 63 8.4.3 Τοπολογία αλγορίθμου... 63 8.4.4 Μετανάστευση... 63 8.4.5. Εύρεση ολικού μετώπου Pareto... 64 Παράρτημα. Θέματα χρήσης της συστοιχίας υπολογιστών... 65 Α) Απομακρυσμένη σύνδεση... 65 Β) MPI... 66 Γ) makefile... 67 Δ) Εκτέλεση προγραμμάτων και παράμετροι γραμμής εντολών... 69 ΒΙΒΛΙΟΓΡΑΦΙΑ-ΑΝΑΦΟΡΕΣ... 70 4

Κεφάλαιο 1 Εισαγωγή Το θέµα αυτής της διπλωµατικής εργασίας είναι η ανάπτυξη παράλληλου γενετικού αλγορίθµου που να είναι ικανός να αντιµετωπίζει προβλήµατα βελτιστοποίησης τόσο ενός στόχου, όσο και πολλαπλών στόχων. Επίσης στους στόχους της διπλωµατικής είναι η υλοποίηση της παραλληλοποίησης µε χρήση του προτύπου MPI και η εξέταση της απόδοσης του γενετικού αλγορίθµου πολλαπλών στόχων στη συστοιχία υπολογιστών του εργαστηρίου Αρχιτεκτονικής Υπολογιστών της σχολής. Η αναφορά της διπλωµατικής εργασίας περιλαµβάνει τα παρακάτω κεφάλαια: Στο 2 ο κεφάλαιο δίνεται ο ορισµός των εξελικτικών αλγορίθµων και αναπτύσσονται τα βασικά χαρακτηριστικά του γενετικού αλγορίθµου, δηλαδή ο κύκλος του γενετικού αλγορίθµου και οι γενετικοί τελεστές της επιλογής, της διασταύρωσης και της µετάλλαξης. Στο 3 ο κεφάλαιο αναπτύσσονται οι γενετικοί αλγόριθµοι πολλαπλών στόχων, δηλαδή οι γενετικοί αλγόριθµοι που λύνουν προβλήµατα βελτιστοποίησης πολλαπλών στόχων. Αρχικά δίνεται ο ορισµός του προβλήµατος πολλαπλών στόχων και εξηγούνται οι διαφορές του από το απλό πρόβληµα βελτιστοποίησης ενός στόχου. Στη συνέχεια παρουσιάζονται ορισµένες δηµοφιλείς µέθοδοι για την τροποποίηση των γενετικών αλγορίθµων ώστε να λύνουν προβλήµατα πολλαπλών στόχων. Στο 4 ο κεφάλαιο αρχικά ορίζεται ο παράλληλος υπολογισµός και παρουσιάζονται είδη παράλληλων συστηµάτων υπολογιστών. Στη συνέχεια αναφέρονται οι τρόποι µε τους οποίος ένας γενετικός αλγορίθµος µπορεί να εκµεταλλευτεί τα παράλληλα συστήµατα υπολογιστών ώστε να αυξήσει τόσο την απόδοση όσο και τη σύγκλιση του. Ιδιαίτερη έµφαση δίνεται στους παράλληλους γενετικούς αλγορίθµους πολλαπλών στόχων. Στο 5 ο κεφάλαιο περιγράφεται το MPI, το πρότυπο µέσω του οποίο επιτυγχάνουµε την παραλληλοποίηση. Εξηγείται µε παραδείγµατα χρήσης ο τρόπος λειτουργίας των πιο συνηθισµένων ρουτινών του, ενώ παρουσιάζονται συνοπτικά και οι πιο εξειδικευµένες ρουτίνες του. Στο 6 ο κεφάλαιο περιγράφεται ο γενετικός αλγόριθµος που έχει αναπτυχθεί. Παρουσιάζονται τα βασικά χαρακτηριστικά του και εξηγούνται οι επιλογές που έγιναν για την ανάπτυξη του. Επίσης παρουσιάζεται µέσω σχηµάτων η δοµή και η λειτουργία του, καθώς και η ιεραρχία των αρχείων της C++, πηγαίου κώδικα και αρχείων κεφαλίδας από τα οποία αποτελείται. 5

Στο 7 ο κεφάλαιο αρχικά ορίζονται τα δοκιµαστικά προβλήµατα βελτιστοποίησης πολλαπλών στόχων που χρησιµοποιήθηκαν για τις µετρήσεις. Στην συνέχεια παρουσιάζονται οι µετρήσεις που πάρθηκαν µε χρήση διαγραµµάτων, αιτιολογούνται τα αποτελέσµατα και διατυπώνονται συµπεράσµατα για την απόδοση του παράλληλου γενετικού αλγορίθµου πολλαπλών στόχων. Στο 8 ο κεφάλαιο διατυπώνονται σκέψεις και προτάσεις για την περαιτέρω βελτίωση του αλγορίθµου που αναπτύχθηκε. Οι σκέψεις και προτάσεις αυτές παρουσιάστηκαν εν µέρει κατά την περίοδο κατασκευής του προγράµµατος και εν µέρει µετά από ανάλυση των δοκιµαστικών µετρήσεων, αλλά δεν ήταν εφικτό να υλοποιηθούν γιατί ξέφευγαν από τους στόχους της διπλωµατικής εργασίας. Στο παράρτηµα περιγράφονται βασικά στοιχεία για τη χρήση της συστοιχίας υπολογιστών του εργαστηρίου αλλά και για τις ρυθµίσεις που χρειάζεται να γίνουν προκειµένου να εκτελεστεί το πρόγραµµα πάνω στη συστοιχία και να παρθούν οι δοκιµαστικές µετρήσεις. Στο σηµείο αυτό θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή κ. Λουκά Πέτρου για τη σηµαντική συµπαράσταση και καθοδήγηση του. Επίσης θα ήθελα να ευχαριστήσω τους µεταπτυχιακούς φοιτητές Χρήστο Παπαχρήστου και Χρήστο ίου για τη βοήθεια τους πάνω σε προγραµµατιστικά ζητήµατα και στην τεχνική υποστήριξη της συστοιχίας υπολογιστών. 6

Κεφάλαιο 2 Εξελικτικοί Αλγόριθµοι 2.1 Γενικά περί εξελικτικών αλγορίθµων Οι εξελικτικοί αλγόριθµοι (evolutionary algorithms) αποτελούν τεχνικές αναζήτησης και βελτιστοποίησης που έχουν προέλευση και έµπνευση από τον κόσµο της βιολογίας. Ειδικότερα, χρησιµοποιούν την ιδέα της φυσικής επιλογής και της επιβίωσης του καλύτερου (survival of the fittest), όπως την είχε ορίσει ο αρβίνος. Οι εξελικτικοί αλγόριθµοι µιµούνται τις φυσικές διαδικασίες της επιλογής ή αναπαραγωγής, (selection, reproduction), της µετάλλαξης (mutation) και της διασταύρωσης (crossover) και τις χρησιµοποιούν ως µηχανισµούς ή τελεστές αναζήτησης (search operators), ώστε να βρουν καλύτερες λύσεις πιο γρήγορα σε προβλήµατα βελτιστοποίησης (optimization problems). Οι υποψήφιες λύσεις του προβλήµατος βελτιστοποίησης έχουν το ρόλο των ατόµων (individuals) ενός πληθυσµού και η «συνάρτηση ικανότητας» (fitness function) καθορίζει το περιβάλλον µέσα στο οποίο «ζούνε» οι λύσεις. Η εξέλιξη του πληθυσµού λαµβάνει χώρα µετά την επαναλαµβανόµενη εφαρµογή αυτών των τελεστών. Οι εξελικτικοί αλγόριθµοι έχουν χρησιµοποιηθεί για να λύσουν µε επιτυχία πολλά προβλήµατα από διάφορα επιστηµονικά πεδία, όπως η µηχανική, η οικονοµία, η ροµποτική, η φυσική και η χηµεία. Αυτή η επιτυχία τους οφείλεται στο γεγονός πως οι γενετικοί αλγόριθµοι, σε αντίθεση µε τις κλασικές τεχνικές βελτιστοποίσης, δεν κάνουν καµιά υπόθεση σχετικά µε τη µορφή του τοπίου της fitness function (fitness landscape, [12]) Ο όρος «εξελικτικοί αλγόριθµοι» είναι πολύ γενικός και εµπεριέχει σχετιζόµενες αλλά όχι ίδιες µεταξύ τους µεθοδολογίες που όλες εκµεταλλεύονται ιδέες από τη φυσική εξέλιξη και επιλογή. Οι εν λόγω µεθολογίες είναι οι εξής: 1)Γενετικοί Αλγόριθµοι (genetic algorithms) 2)Γενετικός Προγραµµατισµός (genetic programming) 3)Εξελικτικός Προγραµµατισµός (evolutionary programming) 4)Εξελικτική Στρατηγική (evolution strategy) Μεταξύ αυτών, µακράν η πιο χρησιµοποιούµενη τεχνική είναι οι Γενετικοί Αλγόριθµοι. Στη συνέχεια θα αναφερθούµε αποκλειστικά σε αυτούς, καθώς ο αλγόριθµος που αναπτύχθηκε ως µέρος της διπλωµατικής εργασίας ανήκει στην κατηγορία των γενετικών αλγορίθµων. 2.2 Γενετικοί Αλγόριθµοι Ο πρώτος που συνέλαβε την ιδέα ενός γενετικού αλγορίθµου ήταν ο John Holland του πανεπιστηµίου του Michigan, Ann Arbor στα τέλη της δεκατίας του 1960. Έκτοτε, αυτός και οι φοιτητές του έχουν συνεισφέρει πολλά στην ανάπτυξη τους. 7

Οι γενετικοί αλγόριθµοι χωρίζονται σε 2 κατηγορίες ανάλογα µε την κωδικοποίηση τιµών των µεταβλητών του συστήµατος που συνιστούν το γονιδίωµα ενός ατόµου (genotype). Στους Γ.Α. δυαδικής κωδικοποίησης (binary-coded) και στους Γ.Α. πραγµατικών παραµέτρων (real-parameter). 2.2.1 υαδική κωδικοποίηση Στη δυαδική κωδικοποίηση, κάθε µεταβλητή αναπαρίσταται µε µια σειρά δυαδικών αριθµών (binary string) σταθερού µήκους. Για παράδειγµα, αν οι µεταβλητές ενός ατόµου είναι οι x 1 =8 και x 2 =10 και χρησιµοποιούµε 5 bits για την αναπαράσταση της καθεµιάς, τότε ο γενότυπος του ατόµου θα είναι 01000 01010. Σε αυτή την αναπαράσταση θεωρήσαµε πως το κατώτερο και το ανώτερο όριο των µεταβλητών είναι 0 και 31 αντίστοιχα, τότε έχουµε ακριβώς 32 διαφορετικές πιθανές λύσεις. Φυσικά, µπορούµε να αλλάξουµε τα όρια και το µήκος της σειράς ώστε να αναπαραστήσουµε διαφορετικού πλήθους ακέραιους ή δεκαδικούς αριθµούς ([1],σελ 81-82). Μπορούµε να ελέγξουµε την ακρίβεια των τιµών, αλλά πάντα αυτή θα είναι πεπερασµένη. Ο λόγος που κωδικοποιούνται οι µεταβλητές σε µια σειρά bits είναι να επιτύχουµε µια αναπαράσταση όσο πιο κοντά στη φυσική βιολογική του χρωµοσώµατος. ηλαδή θεωρούµε ότι κάθε bit της σειράς αναπαριστά ένα γονίδιο που επηρεάζει το φαινότυπο του ατόµου. 2.2.2 Πραγµατικές παράµετροι Σε αυτή την αναπαράσταση κάθε µεταβλητή του συστήµατος αντιστοιχίζεται σε ένα πραγµατικό αριθµό (πχ του τύπου double στη C/C++), δηλαδή δεν έχουµε κάποιου είδους κωδικοποίηση. Όπως φαίνεται, η αναπαράσταση σε αυτή τη µορφή είναι ευκολότερη και πιο γρήγορη από υπολογιστικής άποψης, καθώς η τιµή κάθε µεταβλητής δε χρειάζεται µετατροπή από το δυαδικό στο δεκαδικό σύστηµα για να υπολογιστεί ([8], σελ. 16-17). Οπότε οι µεταβλητές µπορούν να χρησιµοποιηθούν κατευθείαν για να υπολογιστεί η τιµή της συνάρτησης fitness. Τα προβλήµατα µε αυτή την αναπαράσταση εµφανίζονται στην εφαρµογή των τελεστών αναζήτησης. Όπως θα φανεί στη συνέχεια, η αναπαράσταση σε δυαδική κωδικοποίηση βοηθά στην υλοποίηση και στην οπτικοποίηση κατά τη διάρκεια της εφαρµογής των τελεστών. 2.3 Τελεστές και λειτουργία του γενετικού αλγορίθµου 2.3.1 Συνάρτηση fitness Η συνάρτηση fitness έχει σα σκοπό την αξιολόγηση κάθε λύσης του πληθυσµού ενός γενετικού αλγορίθµου, αντιστοιχίζοντας µια τιµή σε κάθε άτοµο (fitness value). Στις περισσότερες περιπτώσεις που δεν έχουµε περιορισµούς, η συνάρτηση fitness επιλέγεται ως ίδια µε τη συνάρτηση στόχου του προβλήµατος. Οπότε αν στόχος του προβλήµατος 8

είναι η ελαχιστοποίηση της, µια λύση µε µικρότερη τιµή fitness είναι καλύτερη από µια µε µεγαλύτερη τιµή. Προφανώς το αντίθετο ισχύει όταν ο στόχος είναι η µεγιστοποίηση της συνάρτησης. 2.3.2 Κύκλος ενός γενετικού αλγορίθµου Ο γενετικός αλγόριθµος ξεκινά την αναζήτηση µε ένα τυχαίο πληθυσµό ατόµων. Αρχικά αντιστοιχίζεται µια τιµή fitness σε κάθε άτοµο. Στην συνέχεια ο πληθυσµός τροποποιείται από τρεις βασικούς τελεστές και ένα νέος, πιθανώς καλύτερος, πληθυσµός δηµιουργείται. Αυτός ο κύκλος του αλγορίθµου ονοµάζεται γενιά (generation). Υπάρχουν διάφορα κριτήρια τερµατισµού του γενετικού αλγορίθµου. Μπορούµε να επιλέξουµε αρχικά τον µέγιστο αριθµό γενιών και ο αλγόριθµος να σταµατήσει µόλις ο αριθµός αυτός συµπληρωθεί. Εναλλακτικά, µπορούµε να εξετάζουµε σε κάθε γενιά το µέγιστο fitness του πληθυσµού και ο αλγόριθµος να σταµατήσει µόλις προσεγγίσει τη ζητούµενη τιµή, δηλαδή όταν συγκλίνει. Τέλος, µπορούµε να θέσουµε εξαρχής το χρονικό διάστηµα για το οποίο θα τρέξει ο αλγόριθµος. Στη συνέχεια θα δούµε αναλυτικά τους τρεις βασικούς τελεστές του γενετικού αλγορίθµου. 2.3.3 Τελεστής αναπαραγωγής ή επιλογής Ο κύριος στόχος του τελεστή αναπαραγωγής είναι να δηµιουργήσει αντίγραφα των καλών λύσεων και να εξαλείψει τις κακές λύσεις, ενώ το µέγεθος του πληθυσµού διατηρείται σταθερό. Υπάρχουν διάφοροι τρόποι για να επιτευχθεί αυτό: tournament selection, proportionate selection και ranking selection. Στο tournament selection, παίζονται τουρνουά, δηλαδή γίνεται σύγκριση µεταξύ 2 τυχαία επιλεγµένων µελών και η καλύτερη λύση εισάγεται στον πληθυσµό. Αν επαναληφθεί µε προσοχή, κάθε λύση θα συµµετέχει σε ακριβώς δυο τουρνουά. Η καλύτερη λύση του πληθυσµού θα κερδίσει και τις δυο φορές οπότε θα έχει δυο αντίγραφα στο νέο πληθυσµό, ενώ η χειρότερη θα χάσει και τις δυο και δε θα έχει κανένα αντίγραφο. Οι υπόλοιπες λύσεις θα έχουν µεταξύ µηδέν και δυο αντιγράφων στο νέο πληθυσµό. Αυτή η µέθοδος έχει αποδειχθεί ότι έχει καλύτερη ή ίση σύγκλιση και καλύτερο ή ίσο χρόνο υπολογισµού σε σχέση µε τις άλλες ([1], σελ. 85). Το tournament selection είναι η µέθοδος επιλογής που χρησιµοποιείται και στον αλγόριθµο που αναπτύχθηκε. Στο proportionate selection κάθε λύση αντιστοιχεί σε αντίγραφα ανάλογα µε την τιµή fitness που έχει. Ο µηχανισµός που λειτουργεί η µέθοδος είναι παρόµοιος µε τη λειτουργία µιας ρουλέτας, στην οποία ο τροχός είναι χωρισµένος σε Ν κοµµάτια, όπου Ν το µέγεθος του πληθυσµού. Το κάθε κοµµάτι χωρίζεται αναλογικά µε βάση τη τιµή fitness f i κάθε λύσης. Σε κάθε άτοµο αντιστοχεί πιθανότητα p i =f i /Σf i. Στη συνέχεια, ο τροχός γυρίζει Ν φορές και κάθε φορά επιλέγει µια λύση ανάλογα µε τη θέση του δείκτη. Στατιστικά, τα αντίγραφα κάθε ατόµου θα είναι Ν*p i. Έτσι οι καλύτερες λύσεις αναµένεται να έχουν περισσότερα αντίγραφα στο νέο πληθυσµό. Όµως η µέθοδος αυτή παρουσιάζει µεγάλη διακύµανση στα αποτελέσµατα της ([1], σελ. 86-87). Το ranking selection είναι µια παραλλαγή της προηγούµενης µεθόδου, όπου τα άτοµα κάθε πληθυσµού ταξινοµούνται ανάλογα µε την τιµή fitness τους από το χειρότερο στο καλύτερο. Μετά σε κάθε λύση αντιστοιχίζεται µια τιµή fitness ίση µε τον αριθµό της 9

κατάταξης τους, δηλαδή 1 για το χειρότερο και Ν για το καλύτερο και τέλος εφαρµόζεται µε αυτές τις τιµές η προηγούµενη µέθοδος. 2.3.4 Τελεστής διασταύρωσης Ο τελεστής διασταύρωσης εφαρµόζεται στο νέο πληθυσµό που δηµιουργείται από την εφαρµογή του τελεστή αναπαραγωγής. Με λίγη σκέψη βλέπουµε πως ο τελεστής αναπαραγωγής δεν µπορεί να δηµιουργήσει νέες λύσεις στον πληθυσµό, µόνο να δηµιουργήσει περισσότερα αντίγραφα των καλών λύσεων. Η δηµιουργία νέων λύσεων πραγµατοποιείται από τον τελεστή διασταύρωσης και τον τελεστή µετάλλαξης. Η λειτουργία του τελεστή διασταύρωσης εξαρτάται από την αναπαράσταση που θα χρησιµοποιήσουµε για τις µεταβλητές µας. Για την περίπτωση της δυαδικής κωδικοποίησης υπάρχουν διάφορες τεχνικές, αλλά συνήθως επιλέγονται δυο σειρές από bits (που ανήκουν σε δυο λύσεις) και ένα µέρος της µιας σειράς ανταλλάσεται µε κάποιο µέρος της άλλης σειράς ώστε να δηµιουργηθούν δυο νέες σειρές από bits, δηλαδή δυο νέες λύσεις. Όπως στη βιολογία, αναµένουµε πως µια ή και οι δυο νέες λύσεις που θα δηµιουργηθούν από δυο καλές λύσεις θα είναι καλύτερες από τους γονείς τους. Στην περίπτωση του single-point crossover επιλέγεται ένα σηµείο και τα bits δεξιά του ανταλλάσονται µεταξύ των strings. Θεωρούµε το προηγούµενο παράδειγµα µε δυο λύσεις, τη µια x 1 =8 και x 2 =10 µε αναπαράσταση 01000 01010 και τη άλλη x 1 =14 και x 2 =6 µε αναπαράσταση 01110 00110. Αν τοποθετήσουµε το σηµείο ανταλλαγής στην τρίτη θέση από αριστερά προκύπτουν δυο νέα strings, τα 01010 00110 µε x 1 =10 και x 2 =6 και 01100 01010 µε x 1 =12 και x 2 =10. 010 00 01010 ->010 10 00110 011 10 00110 ->011 00 01010 Στο multi-point crossover ακολουθείται η ίδια διαδικασία µόνο που το γονιδίωµα χωρίζεται σε περισσότερα του ενός σηµεία ([1], σελ 89-90) Για την περίπτωση όµως της αναπαράστασης µε πραγµατικές παραµέτρους, η παραπάνω απλή διαδικασία δε µπορεί να εφαρµοστεί. Υπάρχουν όµως διάφορες τεχνικές για να επιτευχθεί η λειτουργία του τελεστή. Η πιο απλή είναι η γραµµική όπου για δυο αρχικές λύσεις x 1 και x 2 δηµιουργούνται οι τρεις λύσεις 0.5(x 1 +x 2 ), 1.5x 1-0.5x 2 και -0.5x 1 +1.5x 2 και επιλέγονται οι δυο καλύτερες ως απόγονοι. Αυτή η τεχνική όµως δεν µπορεί να επιτελέσει τη λειτουργία της αναζήτησης επαρκώς. Μια καλύτερη τεχνική είναι αυτή του blend crossover. Σε αυτή την περίπτωση αρχικά ο συντελεστής βάρους γ, ένας τυχαίος πραγµατικός αριθµός. Στη συνέχεια δηµιουργούνται οι δυο λύσεις µε τιµές α) x 3 =x 1 +γ(x 1 -x 2 ) και x 4 =x 2 -(1-γ)(x 1 -x 2 ), αν x 1 <x 2 ή β) µε τιµές x 3 = x 1 - γ(x 1 -x 2 ) και x 4 =x 2 +(1-γ)(x 1 -x 2 ), αν x 1 >x 2. Αυτή είναι η µέθοδος διασταύρωσης που χρησιµοποιείται και στον αλγόριθµο που αναπτύχθηκε. 2.3.5 Τελεστής µετάλλαξης Ο τελεστής µετάλλαξης είναι ο δεύτερος τελεστής µέσω του οποίο επιτυγχάνεται η δηµιουργία νέων λύσεων, δηλαδή ουσιαστικά η αναζήτηση του αλγορίθµου. Όπως και µε 10

τον προηγούµενο τελεστή, η λειτουργία του τελεστή διασταύρωσης εξαρτάται από την αναπαράσταση που θα χρησιµοποιήσουµε για τις µεταβλητές µας. Στην περίπτωση της αναπαράστασης µε δυαδική κωδικοποίηση, ο τελεστής σαρώνει κάθε σειρά από strings και µεταβάλλει το 1 σε 0 ή το 0 σε 1 µε πιθανότητα µετάλλαξης p m. ηλαδή για κάθε στοιχείο παράγεται ένας τυχαίος αριθµός ανάµεσα στο 0 και στο 1. Αν αυτός ο αριθµός είναι µεταλύτερος από το 1-pm ή µκρότερος από το p m (ανάλογα µε την υλοποίηση) τότε η µετάλλαξη εκτελείται. Για παράδειγµα αν έχουµε τη σειρά 01010 00110 µε x 1 =10 και x 2 =6, µια µετάλλαξη στο 4 ο bit θα δηµιουργήσει τη σειρά 01000 00110 µε x 1 =8 και x 2 =6. Όπως έχουµε πει, κάθε bit αναπαριστά ένα γονίδιο στο γονιδίωµα ενός ατόµου, συνεπώς η µετάλλαξη εκτελείται µε παρόµοιο τρόπο µε τον οποίο συµβαίνει και η βιολογική µετάλλαξη, µε αλλαγή γονιδίων. Στην περίπτωση της αναπαράστασης µε πραγµατικές παραµέτρους υπάρχουν διάφοροι τρόποι υλοποίησης. Ένας απλός και δηµοφιλής τρόπος είναι να χρησιµοποιήσουµε µια κανονική κατανοµή πιθανότητας µε µηδενική µέση τιµή, έτσι ώστε η νέα λύση να έχει τιµή x 1 +N(0,σ i ), όπου το σ i καθορίζεται από το χρήστη ως παράµετρος της κατανοµής. Αυτή η παράµετρος έχει µεγάλη σηµασία για τη λειτουργία του τελεστή µετάλλαξης και πρέπει να επιλέγεται µε προσοχή. Επίσης µπορεί να µεταβάλλεται σε κάθε γενιά του αλγορίθµου µε βάση κάποιο προκαθορισµένο κανόνα ([1], σελ. 119), όπως στην υλοποίηση του αλγορίθµου που αναπτύχθηκε. 11

Κεφάλαιο 3 Γενετικοί αλγόριθµοι πολλαπλών στόχων 3.1 Προβλήµατα βελτιστοποίησης πολλαπλών στόχων Ένα πρόβληµα βελτιστοποίησης πολλαπλών στόχων (multi-objective optimization problem) αποτελείται από περισσότερες από µία συναρτήσεις στόχου (objective functions). Αυτό συµβαίνει συχνά σε προβλήµατα που συναντούµε στην πράξη. Υπάρχουν θεµελιώδεις διαφορές µεταξύ των αρχών ενός single-objective και ενός multi-objective προβλήµατος. Σε ένα single-objective πρόβληµα, ο στόχος είναι να βρούµε µια λύση που βελτιστοποιεί τη µοναδική objective function. Όµως το multi-objective πρόβληµα δεν είναι απλά µια επέκταση του single-objective προβλήµατος ώστε να βρούµε την καταλληλότερη λύση για κάθε µια από τις objective functions. Σε µαθηµατική γλώσσα, ένα γενικό multi-objective πρόβληµα µπορεί να διατυπωθεί ως εξής: Να ελαχιστοποιηθούν/µεγιστοποιηθούν οι συναρτήσεις f m (x) m=1,2,..,m δεδοµένων των περιορισµών ανισότητας g i (x) 0 και των περιορισµών ισότητας h k (x)=0 µε τις µεταβλητές x i να έχουν τιµές ( ) ( ) j=1,2,..,j k=1,2,...,k i=1,2,..,n Μια λύση x είναι ένα διάνυσµα από n µεταβλητές x=(x 1,x 2,..,x n ) T. Μια λύση που ικανοποιεί όλους τους περιορισµούς ισότητας και ανισότητας λέγεται εφικτή λύση (feasible solution), ενώ µια που δεν τους ικανοποιεί όλους λέγεται µη εφικτή λύση (infeasible solution). Σύµφωνα µε την αρχή την δυαδικότητας (duality principle, [1], σελ.14), µπορούµε να µετατρέψουµε κάθε πρόβληµα µεγιστοποίησης σε πρόβληµα ελαχιστοποίησης (και αντίστροφα) αν πολλαπλασιάσουµε κάθε objective function f m µε -1. Συνεπώς µπορούµε να αναπτύξουµε αλγορίθµους που λύνουν µόνο προβλήµατα του ενός τύπου και να χρησιµοποιήσουµε την αρχή της δυαδικότητας για να µετατρέψουµε τα προβλήµατα που επιθυµούµε. Μια σηµαντική διαφορά ανάµεσα στα single-objective και στα multi-objective προβλήµατα είναι πως στα τελευταία οι objective functions συνιστούν και αυτές ένα χώρο πολλαπλών διαστάσεων όπως και ο χώρος πολλαπλών διαστάσεων των µεταβλητών. Οπότε κάθε λύση x του χώρου µεταβλητών (decision variable space) αντιστοιχίζεται σε ένα σηµείο στο χώρο των συναρτήσεων (objective function space), όπως φαίνεται στο παρακάτω σχήµα. 12

Εικόνα 3.3 Χώρος συναρτήσεων και μέτωπο Pareto προβλήματος Ας υποθέσουµε για παράδειγµα πως έχουµε το διάγραµµα του παραπάνω σχήµατος, που αντιστοχεί στον χώρο συναρτήσεων ενός προβλήµατος. Εδώ φαίνεται ότι η λύση Α κυριαρχεί επί της λύσης C, γιατί είναι καλύτερη και για τις δυο objective functions f1 και f2. To ίδιο ισχύει και για τη λύση Β, κυριαρχεί επί της λύσης C. Αν συγκρίνουµε όµως τη λύση Α µε τη λύση Β, βλέπουµεπως πωςη Α είναι χειρότερη από τη Β γιατη συνάρτηση f1 αλλά είναι καλύτερη από τη Β για τη συνάρτηση f2. Συνεπώς καµία από αυτές τις λύσεις δεν κυριαρχεί επί της άλλης (είναι non-dominated µεταξύ τους). Όπως φαίνεται από το σχήµα, και οι δυο αυτές λύσεις είναι pareto-optimal. Ιδανικά, ο στόχος µας είναι να βρούµε όσο το δυνατόν περισσότερες pareto-optimal λύσεις. Πρακτικά, έχουµε δύο στόχους: 1) Να βρούµε ένα σύνολο λύσεων όσο πιο κοντά γίνεται στο Pareto Front 2) Να βρούµε ένα σύνολο λύσεων που είναι όσο το δυνατόν πιο διαφορετικές µεταξύ τους Ο πρώτος στόχος είναι παρόµοιος µε αυτόν των single-objective προβληµάτων, ο δεύτερος όµως όχι. Είναι σηµαντικό να έχουµε λύσεις που είναι διαφορετικές µεταξύ τους, ώστε να είµαστε σίγουροι πως αντιστοιχούν σε ένα καλό σύνολο συµβιβασµών µεταξύ των objective functions. ηλαδή η «διακριτότητα» των λύσεων πρέπει να ισχύει και στους δύο χώρους, των µεταβλητών και των συναρτήσεων ([1], σελ.22). 3.2 Γενετικοί αλγόριθµοι πολλαπλών στόχων Οι γενετικοί αλγόριθµοι που µελετήσαµε στο προηγούµενο κεφάλαιο αφορούσαν επίλυση single-objective προβληµάτων. Αντίθετα, σε αυτό το κεφάλαιο θα αναφερθούµε σε multiπροηγούµενη παράγραφο, objective genetic algorithms (MOGA). Όπως αναφέραµε στην στόχος µας είναι να βρούµε όσο το δυνατόν περισσότερες pareto-optimaloptimal λύσεις. Μιας και οι γενετικοί αλγόριθµοι επεξεργάζονται ένα πληθυσµό λύσεων σε κάθε επανάληψη (γενιά), 14

συµπεραίνουµε πως αυτό το χαρακτηριστικό τους δίνει ένα σηµαντικό πλεονέκτηµα στην επίλυση multi-objective προβληµάτων. Ένα βασικό στοιχείο των MOGA είναι η ικανότητα τους να δίνουν την ίδια βαρύτητα σε κάθε non-dominated λύση και να διατηρούν ταυτόχρονα πολλές τέτοιες λύσεις. Οπότε µετά από µερικές γενιές ο πληθυσµός µπορεί να συγκλίνει κοντά στο Pareto-front. Οι multi-objective γενετικοί αλγόριθµοι βασίζονται στις αρχές του βασικού γενετικού αλγόριθµου, αλλά έχουν τις απαραίτητες επεκτάσεις ώστε να µπορούν να χειριστούν multiobjective προβλήµατα. Στη συνέχεια θα δούµε ορισµένες υλοποιήσεις τέτοιων αλγορίθµων. 3.2.1 Vector Evaluated Genetic Algorithm Ο Vector Evaluated Genetic Algorithm (VEGA) δηµιουργήθηκε από τον Schaffer το 1984 και ήταν ο πρώτος multi-objective αλγόριθµος. Αποτελεί µια απλή επέκταση ενός κοινού single-objective γενετικού αλγορίθµου. Ο Schaffer σκέφτηκε να χωρίσει τον πληθυσµό του αλγορίθµου σε κάθε γενιά σε Μ ίσους υποπληθυσµούς τυχαία, όπου Μ είναι ο αριθµός των objective functions. Κάθε υποπληθυσµός αντιστοιχίζεται µια τιµή fitness που βασίζεται σε µια διαφορετική objective function. Στη συνέχεια εφαρµόζουµε τον τελεστή επιλογής ξεχωριστά σε κάθε υποπληθυσµό και το αποτέλεσµα το τοποθετούµε σε ξεχωριστό πληθυσµό (mating pool). Μετά ενώνουµε όλες τις mating pools και εφαρµόζουµε σε όλο τον πληθυσµό τους τελεστές διασταύρωσης και µετάλλαξης. Ανακατεύουµε τυχαία τον πληθυσµό, τον χωρίζουµε πάλι σε Μ ίσους υποπληθυσµούς και επαναλαµβάνουµε για όσες γενιές του αλγορίθµου έχουν καθοριστεί([1], σελ. 170). Αυτός ο αλγόριθµος, παρά την απλότητα του και την ταχύτητα στην εκτέλεση, έχει ορισµένα µειονεκτήµατα. Κάθε λύση αξιολογείται µόνο µε βάση µια objective function και δεν ελέγχεται για τις υπόλοιπες εξίσου σηµαντικές Μ-1 objective functions. Έτσι είναι πιθανό πως θα προτιµηθούν λύσεις που είναι κοντά στο βέλτιστο κάποιας συνάρτησης. Ο Schaffer αρχικά πίστευε ότι η διασταύρωση θα ένωνε αυτές τις λύσεις σε κάποιες που είναι πιο συµβιβαστικές, αλλά κάτι τέτοιο δεν συµβαίνει πάντα στα πειράµατα. Πολύ συχνά ο αλγόριθµος συγκλίνει σε λύσεις που βρίσκονται στο βέλτιστο για µια συνάρτηση ([1], σελ. 179). 3.2.2 Weight Based Genetic Algorithm Οι Hajela και Lin πρότειναν ένα γενετικό αλγόριθµο που βασίζεται σε βάρη (WBGA). Σε αυτή την υλοποίηση κάθε objective function πολλαπλασιάζεται µε ένα βάρος w i. Κάθε µέλος αναπαριστά τις µεταβλητές του x i καθώς και τα αντίστοιχα βάρη, που είναι διαφορετικά για κάθε άτοµο. Στη συνέχεια ο αλγόριθµος συµπεριφέρεται όπως και ένας κανονικός γενετικός αλγόριθµος. Λόγω των διαφορετικών βαρών για κάθε άτοµο, ο αλγόριθµος βρίσκει διαφορετικές pareto-optimal λύσεις σε µια µόνο εκτέλεση του. Η επιλογή των κατάλληλων βαρών για κάθε άτοµο είναι πολύ σηµαντική προκειµένου να 15

διατηρηθεί η διαφορετικότητα των λύσεων. Ένα µειονέκτηµα του συγκεκριµένου αλγορίθµου είναι η δυσκολία που έχει στη επίλυση προβληµάτων, των οποίων το µέτωπο Pareto είναι µη κυρτό. ([1], σελ. 179-189). 3.2.3 Multiple Objective Genetic Algorithm Αυτός ο αλγόριθµος παρουσιάστηκε το 1993 από τους Fonseca και Fleming. Χρησιµοποιεί την κατάταξη του πληθυσµού σε non-dominated sets (non-dominated sorting, [1] σελ. 40). Ο MOGA διαφέρει από έναν τυπικό γενετικό αλγόριθµο στον τρόπο µε τον οποίο αντιστοιχίζεται η τιµή fitness σε κάθε άτοµο. Σε κάθε άτοµο δίνεται µια τάξη (rank) ίση µε 1 συν τον αριθµό των ατόµων από τα οποία κυριαρχείται. Συνεπώς, σε όλες τις nondominated λύσεις δίνεται πάντα µια τιµή τάξης ίση µε 1. Στη συνέχεια µια αυθαίρετη τιµή fitness αντιστοιχίζεται σε κάθε άτοµο µέσω µια ειδικής συνάρτησης mapping. Συνήθως αυτή η συνάρτηση αντιστοιχίζει τη fitness ως 1 για τον καλύτερο άτοµο και Ν για το χειρότερο, όπου Ν ο πληθυσµός. Στη συνέχεια υπολογίζεται ο µέσος όρος κάθε rank. Με αυτό τον τρόπο δίνεται έµφαση στις non-dominated λύσεις του πληθυσµού ([1], σελ. 191). 3.3. Ελιτισµός Ελιτισµός ονοµάζεται η τεχνική να ευνοούνται τα καλύτερα µέλη ενός πληθυσµού δίνοντας τους την ευκαιρία να µεταφερθούν κατευθείαν χωρίς αλλαγές στην επόµενη γενιά. Το βασικό χαρακτηριστικό του ελιτισµού είναι πως διασφαλίζει πως το µέσο fitness ενός πληθυσµού δεν χειροτερεύει, γιατί µια καλή λύση που ανακαλύπτεται νωρίς δε θα χαθεί ποτέ εκτός και αν βρεθεί κάποια καλύτερη. Επίσης η παρουσία των καλύτερων µελών αυξάνει την πιθανότητα να δηµιουργηθούν καλύτεροι απόγονοι. Ο ελιτισµός µπορεί να υλοποιηθεί µε µεταβλητή έκταση. Για παράδειγµα, σε έναν singleobjective γενετικό αλγόριθµο µπορεί απλώς η καλύτερη λύση του πληθυσµού να σηµειώνεται και να ανανεώνεται σε κάθε γενιά αν έχει βρεθεί καλύτερη λύση. Στο άλλο άκρο, όλες οι κορυφαίες λύσεις (elites) ενός πληθυσµού µεταφέρονται κατευθείαν στο νέο πληθυσµό. Με αυτό τον τρόπο όµως λίγες νέες λύσεις έχουν την ευκαιρία να εισέλθουν και αυτές στον πληθυσµό και έτσι η αναζήτηση δεν προοδεύει αρκετά. Η πιο ενδιαφέρουσα περίπτωση είναι όταν ο ελιτισµός υλοποιείται σε ένα µέτριο βαθµό. Συνήθως µεταφέρονται τα a καλύτερα µέλη, µε a να παίρνει τιµές από 10% και άνω. Σε multi-objective υλοποιήσεις, ως καλύτερα µέλη θεωρούνται αυτά που αντιστοιχούν σε τάξεις (ranks) που κατατάσσονται ψηλότερα. Εδώ µπορούµε να υλοποιήσουµε ελιτισµό µε a=1, όπου µόνο τα άτοµα του non-dominated set θεωρούνται κορυφαία, ή µε a=2, όπου τα άτοµα των δυο κορυφαίων τάξεων θεωρούνται κορυφαία. 16

Κεφάλαιο 4 Παραλληλοποίηση γενετικών αλγορίθµων 4.1 Παράλληλος υπολογισµός Ο παράλληλος υπολογισµός (parallel computing) είναι ένα είδος υπολογισµού στο οποίο πολλές εντολές εκτελούνται ταυτόχρονα. Βασίζεται στην αρχή ότι τα µεγάλα προβλήµατα µπορούν σχεδόν πάντα να χωριστούν σε µικρότερα, που µπορούν να εκτελούνται ταυτόχρονα (παράλληλα). Ο παράλληλος υπολογισµός χρησιµοποιείται εδώ και πολλά χρόνια, κυρίως στον υπολογισµό υψηλής απόδοσης (high performance computing), αλλά το ενδιαφέρον για αυτόν έχει αυξηθεί τα τελευταία χρόνια λόγω των φυσικών περιορισµών που εµποδίζουν την αύξηση της συχνότητας λειτουργίας των επεξεργαστών (frequency scaling, [26]). Τα τελευταία χρόνια η κυρίαρχη αρχιτεκτονική στους επεξεργαστές είναι αυτή των πολυπύρηνων επεξεργαστών (multicore processors). Παραδοσιακά, το λογισµικό των υπολογιστών έχει γραφεί για σειριακό υπολογισµό. Για να επιλυθεί ένα πρόβληµα, κατασκευάζεται ένας αλγόριθµος που παράγει µια σειρά εντολών. Αυτές οι εντολές εκτελούνται σε µια κεντρική µονάδα επεξεργασίας (CPU) σε ένα υπολογιστή. Μόνο µια εντολή µπορεί να εκτελεστεί κάθε φορά, και µόλις τελειώσει η εκτέλεση της εκτελείται η επόµενη. Αντίθετα, ο παράλληλος υπολογισµός χρησιµοποιεί πολλαπλά υπολογιστικά στοιχεία ταυτόχρονα για να λύσει ένα πρόβληµα. Το πρόβληµα διαχωρίζεται σε ανεξάρτητα κοµµάτια έτσι ώστε κάθε υπολογιστικό στοιχείο να µπορεί να εκτελέσει το µέρος που του αντιστοιχεί στον υπολογισµό του αλγορίθµου ταυτόχρονα µε τα υπόλοιπα. Τα υπολογιστικά στοιχεία που αναφέρονται παραπάνω µπορεί να είναι ένας υπολογιστής µε πολλαπλούς επεξεργαστές, µια οµάδα υπολογιστών που βρίσκονται στο ίδιο δίκτυο, εξειδικευµένο υλικό, ή ένας συνδυασµός όλων των προηγούµενων. 4.1.1 Αξιολόγηση απόδοσης Η απόδοση ενός αλγορίθµου σε ένα σύστηµα παράλληλου υπολογισµού εξαρτάται από την παραλληλοποίηση του αλγορίθµου. Ένα τρόπο για να αξιολογήσουµε αυτή την απόδοση µας δίνει ο νόµος του Amdahl. Σύµφωνα µε αυτό το νόµο, το κοµµάτι του προγράµµατος που δε µπορεί να παραλληλιστεί θα περιορίσει τη συνολική επιτάχυνση που επιτυγχάνεται από την παραλληλοποίηση. Σε µαθηµατική µορφή διατυπώνεται από τη σχέση: =, όπου S είναι η επιτάχυνση του του προγράµµατος, Τ s ο χρόνος που απαιτείται για να τρέξει ακολουθιακά το πρόγραµµα, Τ p ο χρόνος που απαιτείται για να τρέξει παράλληλα και P είναι το κλάσµα του αλγορίθµου που είναι παραλληλοποιήσιµο. Για παράδειγµα, αν το ακολουθιακό κοµµάτι του αλγορίθµου αποτελεί το 10% του συνολικού χρόνου εκτέλεσης, δε µπορούµε να έχουµε επιτάχυνση πάνω από 10x, όσους επεξεργαστές και 17