Εργαστηριακές Ασκήσεις 9ου Εξαμήνου

Προχωρημένες Μέθοδοι Τεχνικοοικονομικού Σχεδιασμού

Line Search με Περιορισμούς

Υπάρχουν δυο ειδών περιορισμοί:

Περιορισμός της μορφής C(x) = 0.
Περιορισμός της μορφής C(x) > 0 ή C(x) < 0

Για την εύρεση ακρότατου με κάποιον από τους δυο περιορισμούς επιλύουμε τον μετασχηματισμό g(x) της συνάρτησης f(x) (δες Line Search) ανάλογα την περίπτωση:

  • PENALTY: C1(x) = 0

    g(x) = f(x) + rC1(x)^2



  • BARRIER: C2(x) >= 0

    g(x) = f(x) – rlog[C2(x)]

    ή συνδυασμό τους:

    g(x) = f(x)-rlog[C2(x)]+rC1(x)^2


PENALTY

Ο σκοπός του μετασχηματισμού αυτού είναι να προσθέσουμε έναν όρο της μορφής rC2(x) ο οποίος για μεγάλες τιμές του r (ο r είναι πραγματικός αριθμός) δημιουργεί απόκλιση της συνάρτησης από το ελάχιστο όταν δεν ικανοποιείται η σχέση C(x)=0.

Καθώς C -> 0 η επίδραση του όρου αυτού γίνεται αμελητέα, άρα ο περιορισμός γίνεται αποδεκτός

BARRIER

Ο σκοπός του μετασχηματισμού αυτού είναι να προσθέσουμε έναν όρο της μορφής -rlog[C(x)] ο οποίος όταν C(x) -> 0 ο όρος αυτός τείνει στο άπειρο (άρα να δημιουργεί ένα τοίχος για να μην προχωρήσει η έρευνα προς αυτή την διεύθυνση).

ΠΡΟΒΛΗΜΑ

Αν f(x1, x2) = (x1*x2 - 3)^2 + (x2 - 5)^2,

θεωρούμε τους περιορισμούς:

a. C1(x) = x1^2 + x2^2 + x1 + x2 = 0
b. C2(x) = x2^2 - x1 >= 0

Ζητούμενο: Να βρεθεί το ελάχιστο της συνάρτησης f(x1, x2) με τη μέθοδο Αναζήτησης Γραμμής για,
Α. Τον περιορισμό a.
B. Τον περιορισμό b.
C. Τον περιορισμό a & b ταυτόχρονα.


Το πρόβλημα να επιλυθεί με τη χρήση VBA για Excel.

Για την επίλυση ακολουθούμε τα βήματα του προβλήματος χωρίς περιορισμούς, στα οποία διαφοροποιούμε τον ορισμό της g(x) ανάλογα.


Η λύση για το παραπάνω Παράδειγμα σε κώδικα VBA μπορείτε να το κατεβάστε από ΕΔΩ