ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΚΟΥΛΙΝΑΣ ΓΕΩΡΓΙΟΣ Δρ. Μηχανικός Παραγωγής & Διοίκησης ΔΠΘ
ΜΕΤΑΕΥΡΕΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ METAHEURISTIC ALGORITHMS Ευφυείς διαδικασίες επαναληπτικής βελτίωσης Χρησιμοποιούν απλές κινήσεις στο χώρο των λύσεων Ανεξάρτητες από το πρόβλημα που αντιμετωπίζεται κάθε φορά
ΜΕΤΑΕΥΡΕΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ METAHEURISTIC ALGORITHMS Στόχος ενός Μεταευρετικού Αλγορίθμου: Γρήγορη εύρεση περιοχών με «καλές λύσεις» Μέσω της ισορροπημένης χρήσης «Διαφοροποίησης» & «Εντατικοποίησης» της αναζήτησης στο χώρο των λύσεων
ΜΕΤΑΕΥΡΕΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ METAHEURISTIC ALGORITHMS Εντατικοποίηση της ερευνας στο χώρο των λύσεων (Intensification) Εστιασμένη αναζήτηση σε μικρές περιοχές με υψηλής ποιότητας λύσεις για να βρεθεί το τοπικά βέλτιστο σημείο Διαφοροποίηση της ερευνας στο χώρο των λύσεων (Diversification) Απεγκλωβισμός από τοπικά βέλτιστα και μετακίνηση σε άλλες περιοχές
ΕΝΤΑΤΙΚΟΠΟΙΗΣΗ ΔΙΑΦΟΡΟΠΟΙΗΣΗ ΣΤΟ ΧΩΡΟ ΤΩΝ ΛΥΣΕΩΝ INTENSIFICATION - DIVERSIFICATION Z(x) Οι μεταευρετικοί αλγόριθμοι εφαρμόζουν στρατηγικές απεγλωβισμού της αναζήτησης από τοπικά βέλτιστα Τοπικό Ελάχιστο (Local minimum) Ολικό Ελάχιστο (Global minimum) x
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΑΝΟΠΤΗΣΗΣ The Simulated Annealing Algorithm (SA Metaheuristic Algorithm ή SA Algorithm ) Kirkpatrick, S., Gelatt, C. D., & Vecchi, M. P. (1983). Optimization by Simulated Annealing. Science, 220(4598), 671 LP-680. Retrieved from http://science.sciencemag.org/content/220/4598/671.abstract
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Ανεξάρτητος από το πρόβλημα που αντιμετωπίζει Ευφυής διαδικασία επαναληπτικής βελτίωσης Καθοδηγεί απλούς «τελεστές» - ευρετικούς
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Νέα χαρακτηριστικά: Αξιοποίηση του «ιστορικού» της αναζήτησης δηλ. της πορείας της έως τώρα Αποδοχή λύσεων με χειρότερη τιμή αντικειμενικής συνάρτησης προκειμένου να γίνει «απεγλωβισμός» από τοπικά βέλτιστα
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Η ιδέα λειτουργίας προέρχεται από την Ανόπτηση (Annealing) των μετάλλων από την υγρή στην στερεά κρυσταλλική κατάσταση Σε υψηλές θερμοκρασίες τα άτομα του μετάλλου βρίσκονται σε κατάσταση υψυλότερης ενέργειας με μεγαλύτερη «κινητικότητα» Με τη μείωση της θερμοκρασίας τα άτομα γίνονται περισσότερο «στατικά» μέχρι που τελικά θα λάβουν τις τελικές θέσεις τους στη στέρεη κατάσταση
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Εάν το υγρό μέταλλο «ψύχεται» αρκετά αργά τότε σχηματίζεται τέλειος κρύσταλλος καθώς τα άτομα είχαν το χρόνο και την ενέργεια να τακτοποιηθούν σωστά Εάν η θερμοκρασία μειώνεται γρήγορα, θα σχηματιστεί κρύσταλλος με ατέλειες καθώς τα άτομα δεν πρόλαβαν να τακτοποιηθούν όπως έπρεπε
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM (ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ) Ο Simulated Annealing (SA) δεν ψάχνει για την καλύτερη λύση στην γειτονία λύσεων της τρέχουσας λύσης (x) όπως κάνουν οι local search αλγόριθμοι Ξεκινά σε κάθε επανάληψη από μια λύση x, επιλέγει στοχαστικά μια γειτονική λύση κι εφαρμόζει τον τελεστή κίνησης στη γειτονιά των λύσεων Θεωρούμε x την τρέχουσα λύση και x τη γειτονική της : Εάν z(x )-z(x) 0 τότε η x γίνεται αποδεκτή και θεωρείται ως η «νέα» τρέχουσα
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM (ΠΡΟΒΛΗΜΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ) Εάν z(x )-z(x) > 0 τότε η x είτε: Γίνεται αποδεκτή και ορίζεται ως νέα τρέχουσα με πιθανότητα: Pt=exp-([z(x )-z(x))]/tt) Δεν γίνεται αποδεκτή και παραμένει τρέχουσα η x, με πιθανότητα: 1-Pt z(x ): αντικειμενική συνάρτηση της γειτονικής λύσης x z(x): αντικειμενική συνάρτηση της λύσης x Tt: «θερμοκρασία» του αλγορίθμου σε κάθε επανάληψη (ορίζεται από τον κατασκευαστή του αλγορίθμου)
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Η αποδοχή της χειρότερης λύσης x με μια πιθανότητα γίνεται με σκοπό να μπορέσει ο αλγόριθμος να απεγκλωβιστεί από το πιθανό τοπικό ελάχιστο Η θερμοκρασία Tt: Αρχικά θεωρείται μια πολύ υψηλή τιμή (έτσι ώστε να γίνονται αποδεκτές λύσεις με χειρότερη αντικειμενική συνάρτηση από την τρέχουσα) Σε κάθε επανάληψη, η θερμοκρασία πολλαπλασιάζεται με ένα συντελεστή (0 < s < 1) που ορίζει ο κατασκευαστής του αλγορίθμου Μειώνεται σταδιακά μέχρι στις τελευταίες επαναλήψεις- να μηδενιστεί Αποτέλεσμα: από εκείνο το σημείο της αναζήτησης γίνονται αποδεκτές μόνο καλύτερες λύσεις
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM - (ΠΡΟΒΛΗΜΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ) Όρισε αρχική λύση x, και αρχική θερμοκρασία T0 Βρόχος 1: Για όσο η συνθήκη τερματισμού ΔΕΝ ικανοποιείται επανέλαβε Βρόχος 2: Για όσο η συνθήκη τερματισμού του Βρόχου 2 ΔΕΝ ικανοποιείται επανέλαβε 1. Φτιάξε μια λύση x G(x), όπου G(x) η γειτονιά της τρέχουσας λύσης x 2. Όρισε Δz = z(x ) z(x) 3. Εάν Δz<0, θέσε x=x. Έλεγξε εάν είναι z(x)<z(xbest). Εάν ναι, τότε xbest = x = x 4. Εάν Δz 0, θέσε x = x με μια πιθανότητα exp (-Δ/Tt) Επανέλαβε το Βρόχο 2 Μείωσε τη θερμοκρασία Tt Επανέλαβε τον Βρόχο 1 Τύπωσε την καλύτερη λύση xbest που βρέθηκε, καθώς και την zbest που αντιστοιχεί
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Οι τιμές που ορίζει ο κατασκευαστής του αλγορίθμου είναι: Η τιμή της αρχικής θερμοκρασίας T0 Ο τρόπος μείωσης της θερμοκρασίας Tt με την πάροδο των επαναλήψεων t Το κριτήριο τερματισμού του Βρόχου 1 και του Βρόχου 2
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Η αργή σύγκλιση του αλγορίθμου εξασφαλίζεται: Είτε μέσω του συντελεστή μείωσης της θερμοκρασίας Είτε μέσω της αύξησης των επαναλήψεων εκτέλεσης του Βρόχου 2
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Η τιμή της αρχικής θερμοκρασίας πρέπει να εξασφαλίζει ότι: 1. Θα γίνονται αποδεκτές «χειρότερες λύσεις» (για να μην παγιδευτεί σε τοπικό βέλτιστο) 2. Ο αλγόριθμος δεν θα τερματιστεί σύντομα (καθώς τότε μεταπίπτει σε κατάσταση πλήρως τυχαίας διαδικασίας) Στόχος είναι η σχετικά αργή πτώση της θερμοκρασίας καθώς διαφορετικά ο αλγόριθμος θα συγκλίνει γρήγορα σε τοπικό βέλτιστο
Ο ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΣΟΜΟΙΩΜΕΝΗΣ ΒΕΛΤΙΩΣΗΣ SIMULATED ANNEALING ALGORITHM Συνήθεις συνθήκες τερματισμού αλγορίθμου ή / και βρόχων: 1. Η zbest δεν έχει μειωθεί για τουλάχιστον e επαναλήψεις 2. Η zbest δεν έχει μειωθεί κατά τουλάχιστον - v% - για τουλάχιστον e επαναλήψεις 3. Συμπλήρωση δεδομένου αριθμού επαναλήψεων 4. Συμπλήρωση δεδομένου χρονικού ορίου συνεχόμενης εκτέλεσης του αλγορίθμου
ΑΣΚΗΣΗ 1 Μια εταιρία επενδύσεων διαχειρίζεται κεφάλαια ύψους 100 μονάδων και μπορεί να εντάξει μόνο μία φορά στο χαρτοφυλάκιό της, κάποιες από τις μετοχές εταιριών του Πίνακα 1: Η εφαρμογή ενός στοχαστικού κατασκευαστικού ευρετικού αλγορίθμου είχε σαν αποτέλεσμα την κατασκευή της παρακάτω εφικτής λύσης s1: Να πραγματοποιηθεί εφαρμογή μεταευρετικού αλγορίθμου Προσομοιωμένης Ανόπτησης για 6 επαναλήψεις Η θερμοκρασία του SA θα μειώνεται από την T0 = 100 κατά έναν συντελεστή m=0.7, μετά τη συμπλήρωση 3 επανάληψεων του μεταευρετικού Ο μεταευρετικός SA θα εφαρμόζει τελεστή αντικατάστασης M4 M9 M3 M10 M7 Σύνολο Κόστος 8.6 32.4 18.3 27.9 11.8 99 Μέρισμα 0.55 2.8 1 2.5 1.1 7.95 Πίνακας 1 ΟΝΟΜΑ ΑΞΙΑ ΕΤΗΣΙΟ ΜΕΡΙΣΜΑ M1 12.5 0.6 M2 14.25 1.2 M3 18.3 1 M4 8.6 0.55 M5 7.3 1.1 M6 12.7 0.7 M7 11.8 1.1 M8 21.7 3.1 M9 32.4 2.8 M10 27.9 2.5
ΑΣΚΗΣΗ 1 ΕΠΙΛΥΣΗ LOOP 1 0.2 0.4 0.6 0.8 1 Μετοχές στην S M4 M9 M3 M10 M7 Σύνολο Κόστος 8.6 32.4 18.3 27.9 11.8 99 Μέρισμα 0.55 2.8 1 2.5 1.1 7.95 zs= 7.95 Zbest= 7.95 Μετοχές εκτός S Μ1 Μ2 Μ5 Μ6 Μ8 T0=100 Τυχαίες τιμές από rand() 0.328887 0.217494 0.957372 0.36367 0.410995 0.224487 0.410514 0.471119 0.006501 0.276843 0.609924 0.813157 0.459468 0.853879 0.863934 0.164941 0.313121 0.663139 0.643786 0.241276 0.661667 0.145911 0.456192 0.140608 1 η τυχαία τιμή = 0,32887 άρα επιλέγεται να αντικατασταθεί η μετοχή της θέσης 2 που είναι η Μ9 2 η τυχαία τιμή = 0,957372 άρα επιλέγεται να «μπεί» στην S1 η μετοχή της θέσης 5 που είναι η Μ8 Άρα Με: Μετοχές στην S1 M4 M8 M3 M10 M7 Σύνολο Κόστος 8.6 21.7 18.3 27.9 11.8 88.3 Μέρισμα 0.55 3.1 1 2.5 1.1 8.25 zs1=zcurrent= 8.25 Zbest= 8.25
ΑΣΚΗΣΗ 1 ΕΠΙΛΥΣΗ LOOP 2 0.2 0.4 0.6 0.8 1 Μετοχές στην S1 M4 M8 M3 M10 M7 0.2 0.4 0.6 0.8 1 Μετοχές εκτός S1 Μ1 Μ2 Μ5 Μ6 Μ9 Τυχαίες τιμές από rand() 0.328887 0.217494 0.957372 0.36367 0.410995 0.224487 0.410514 0.471119 0.006501 0.276843 0.609924 0.813157 0.459468 0.853879 0.863934 0.164941 0.313121 0.663139 0.643786 0.241276 0.661667 0.145911 0.456192 0.140608 3 η τυχαία τιμή = 0,410995 άρα επιλέγεται να αντικατασταθεί η μετοχή της θέσης 3 στην S1, που είναι η Μ3 4 η τυχαία τιμή = 0,410514 άρα επιλέγεται να «μπεί» στην S2 η μετοχή της θέσης 3 που είναι η Μ5 Άρα Με: Μετοχές στην S2 M4 M8 M5 M10 M7 Σύνολο Κόστος 8.6 21.7 7.3 27.9 11.8 77.3 Μέρισμα 0.55 3.1 1.1 2.5 1.1 8.35 zs2=zcurrent= 8.35 Zbest= 8.35
ΑΣΚΗΣΗ 1 ΕΠΙΛΥΣΗ LOOP 3 0.2 0.4 0.6 0.8 1 Μετοχές στην S2 M4 M8 M5 M10 M7 0.2 0.4 0.6 0.8 1 Μετοχές εκτός S2 Μ1 Μ2 M3 Μ6 Μ9 Τυχαίες τιμές από rand() 0.328887 0.217494 0.957372 0.36367 0.410995 0.224487 0.410514 0.471119 0.006501 0.276843 0.609924 0.813157 0.459468 0.853879 0.863934 0.164941 0.313121 0.663139 0.643786 0.241276 0.661667 0.145911 0.456192 0.140608 5 η τυχαία τιμή = 0,006501 άρα επιλέγεται να αντικατασταθεί η μετοχή της θέσης 1 στην S2, που είναι η Μ4 6 η τυχαία τιμή = 0,609924 άρα επιλέγεται να «μπεί» στην S3 η μετοχή της θέσης 4 που είναι η Μ6 Άρα Με: Μετοχές στην S3 Μ6 M8 M5 M10 M7 Σύνολο Κόστος 12.7 21.7 7.3 27.9 11.8 81.4 Μέρισμα 0.7 3.1 1.1 2.5 1.1 8.5 zs3=zcurrent= 8.5 Zbest= 8.5
ΑΣΚΗΣΗ 1 ΕΠΙΛΥΣΗ LOOP 4 Τυχαίες τιμές από rand() 0.2 0.4 0.6 0.8 1 Μετοχές στην S3 Μ6 M8 M5 M10 M7 0.2 0.4 0.6 0.8 1 Μετοχές εκτός S3 Μ1 Μ2 M3 M4 Μ9 T0=0.7*100=70 0.328887 0.217494 0.957372 0.36367 0.410995 0.224487 0.410514 0.471119 0.006501 0.276843 0.609924 0.813157 0.459468 0.853879 0.863934 0.164941 0.313121 0.663139 0.643786 0.241276 0.661667 0.145911 0.456192 0.140608 7 η τυχαία τιμή = 0,459468 άρα επιλέγεται να αντικατασταθεί η μετοχή της θέσης 3 στην S3, που είναι η Μ5 8 η τυχαία τιμή = 0,863934 άρα επιλέγεται να «μπεί» στην S4 η μετοχή της θέσης 5που είναι η M9 Άρα Με: Μετοχές στην S4 Μ6 M8 M9 M10 M7 Σύνολο Κόστος 12.7 21.7 32.4 27.9 11.8 106.5 Μέρισμα 0.7 3.1 2.8 2.5 1.1 10.2 zs4=zcurrent= 10.2 Zbest= 10.2 Μή εφικτή
ΑΣΚΗΣΗ 1 ΕΠΙΛΥΣΗ LOOP 5 Τυχαίες τιμές από rand() 0.2 0.4 0.6 0.8 1 Μετοχές στην S3 Μ6 M8 M5 M10 M7 0.2 0.4 0.6 0.8 1 Μετοχές εκτός S3 Μ1 Μ2 M3 M4 Μ9 T0=0.7*100=70 0.328887 0.217494 0.957372 0.36367 0.410995 0.224487 0.410514 0.471119 0.006501 0.276843 0.609924 0.813157 0.459468 0.853879 0.863934 0.164941 0.313121 0.663139 0.643786 0.241276 0.661667 0.145911 0.456192 0.140608 9 η τυχαία τιμή = 0,313121 άρα επιλέγεται να αντικατασταθεί η μετοχή της θέσης 2 στην S3, που είναι η Μ8 10 η τυχαία τιμή = 0,643786 άρα επιλέγεται να «μπεί» στην S4 η μετοχή της θέσης 4 που είναι η Μ4 Άρα Με: Μετοχές στην S5 Μ6 Μ4 M9 M10 M7 Σύνολο T Κόστος 12.7 8.6 32.4 27.9 11.8 93.4 70 Μέρισμα 0.7 0.55 2.8 2.5 1.1 7.65 Δz= -0.85 P επιλογής 0.98793057 zs1=zcurrent= 7.65 Zbest= 8.5 11 η τυχαία τιμή, το 0,661667<0,98793057 άρα η χειρότερη λύση αποδεκτή
ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΠΡΟΣΟΧΗ ΣΑΣ oερωτήσεις? ΕΠΙΚΟΙΝΩΝΙΑ oγραφειο 305 ΚΤΙΡΙΟ Ι, ΠΡΟΚΑΤ ΔΕΥΤΕΡΑ 15.00-16.00 & 19.00-20.00 oτηλεφωνο: 2541079332 oemail: gkoulina@pme.duth.gr