Uploaded by Giorgos Ant

Project 3 20 12 2019

advertisement
ΕΥΦΥΗΣ ΒΕΛΤΙΣΤΟΣ ΣΧΕΔΙΑΣΜΟΣ ΠΡΟΪΟΝΤΩΝ
Διδάσκων: Καθ. Ιωάννης Κ. Νικολός
Ακαδημαϊκή Περίοδος 2019-2020
3η Εργασία Εξαμήνου (20-12-2019)
Κάθε φοιτητής θα αναπτύξει κώδικα Γενετικού Αλγορίθμου, βασισμένου στον
αντίστοιχο που υπάρχει στο Παράρτημα Α του βιβλίου: Zbigniew Michalewicz, Genetic
Algorithms + Data Structures = Evolutionary Programs, Springer, 1999. Ο αντίστοιχος
κώδικας έχει ανεβεί στο E-Class (στο Lesson 6).
Τον κώδικα από το παραπάνω βιβλίο θα τον μετατρέψετε στη γλώσσα
προγραμματισμού που επιθυμείτε.
Στη συνέχεια, αφού κατανοήσετε τη λειτουργία του, θα προσθέσετε τις ακόλουθες
λειτουργίες (υπορουτίνες).
A. Selection
Θα προσθέσετε υπορουτίνα που να υλοποιεί την TOURNAMENT SELECTION.
Β. Crossover
Θα προσθέσετε υπορουτίνες που να υλοποιούν τις ακόλουθες μεθόδους επιχιασμού:
Β1. Random Crossover A.
B2. Random Crossover B.
Γ. Mutation
Θα προσθέσετε υπορουτίνα που να υλοποιεί την RANDOM NON-UNIFORM MUTATION.
Οι παραπάνω λειτουργίες δεν θα αντικαταστήσουν τις υπάρχουσες, αλλά θα
λειτουργούν ως εναλλακτικές. Από το αρχείο εισόδου θα δηλώνετε ποιά λειτουργία θα
επιλεγεί (είδος Selection, είδος Crossover, είδος Mutation).
Αφού ολοκληρώσετε τον κώδικα θα τον δοκιμάσετε στο πρόβλημα που είναι ήδη
προγραμματισμένο στον υπάρχοντα κώδικα:
f=x(1)*x(1)-x(1)*x(2)+x(3)
Στη συνέχεια, θα αντικαταστήσετε τη συγκεκριμένη συνάρτηση f με την ακόλουθη (De
Jong function F1), για την οποία θα λύσετε ένα πρόβλημα ελαχιστοποίησης
10
𝑓 = ∑ 𝑥𝑖2 , − 5.12 ≤ 𝑥𝑖 ≤ 5.12
𝑖=1
όπου 𝑥𝑖 οι ανεξάρτητες μεταβλητές σχεδίασης (10 το πλήθος). Η συγκεκριμένη
συνάρτηση εμφανίζει ελάχιστο 𝑓 = 0 για διάνυσμα λύσης 𝑥𝑖 = (0,0,0,0,0,0,0,0,0,0).
Για το συγκεκριμένο πρόβλημα (μόνο με την tournament selection) θα συγκρίνετε τη
συμπεριφορά της σύγκλισης του αλγορίθμου, πρώτα με τους παλιούς τελεστές crossover
και mutation και στη συνέχεια με τους νέους τελεστές που έχετε προσθέσει.
Η σύγκριση θα αφορά (σε λογαριθμικό άξονα της fitness function) του πώς μεταβάλλεται
η καλύτερη και η χειρότερη λύση (δηλαδή της τιμή της fitness function f) κάθε γενιάς με
τον αριθμό της γενιάς.
Από τα γραφήματα που θα παράξετε θα εξάγετε συμπεράσματα.
Η τελική εργασία θα περιλαμβάνει αναφορά (report) (σε pdf) με τα στοιχεία του
φοιτητή. Η αναφορά θα περιέχει την αντίστοιχη θεωρία, καθώς και τα βήματα που
ακολουθήθηκαν για την υλοποίηση του κώδικα. Επίσης, θα περιλαμβάνονται εικόνες,
που θα επιδεικνύουν την εγκυρότητα των αποτελεσμάτων του κώδικα. Τέλος, θα
περιέχεται ο κώδικας.
Οι αναφορές θα πρέπει να είναι αναλυτικές, σαφείς και καλογραμμένες, ώστε να
μπορεί η διαδικασία να αναπαραχθεί από τρίτο πρόσωπο. Θα πρέπει να επιδεικνύεται
στην αναφορά οτι έχει γίνει κατανοητή η θεωρία και η διαδικασία προγραμματισμού της.
Download