Γραμμικός Προγραμματισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Γραμμικός Προγραμματισμός Ελαχιστοποίηση γραμμικής αντικειμενικής συνάρτησης υπό πεπερασμένο αριθμό γραμμικών περιορισμών (ισότητες ή ανισότητες). Περιορισμοί: (m n)-πίνακας A, m-διάνυσμα b. Αντικειμενική: n-διάνυσμα c. Άγνωστοι: n-διάνυσμα x. Τυπική μορφή (standard form): Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Πρόβλημα ίαιτας Βιτ.Α Βιτ.Β Βιτ. C Θερμ. Πίτσα 9 6 Φρούτα 7 8 5 5 Αυγά 9 84 5 Σουβλάκι 5 9 5 Απαιτήσεις 4 Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Ταιριάσματα e e e e 4 e 5 e 6 e 7 e 8 e 9 Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 4
Ορολογία Αν x ικανοποιεί Ax b και x είναι αποδεκτή (feasible) λύση. Εφικτή περιοχή: Γραμμικό Πρόγραμμα (ΓΠ, LP) είναι επιλύσιμο αν έχει αποδεκτή λύση και μη-επιλύσιμο διαφορετικά. Βέλτιστη λύση x * : αποδεκτή λύση με ελάχιστη αντικειμενική τιμή, ΓΠ μη-φραγμένο (κάτω) αν εφικτή λύση. Επιλύσιμο και φραγμένο (κάτω) : πεπερασμένο. ΈναΓΠμπορείναείναιμη-επιλύσιμο, μη-φραγμένο, ήπεπερασμένο. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 5
Ισοδύναμες Μορφές Τυπική μορφή : Κανονική μορφή : Μεγιστοπ. Ελαχιστοπ.: Ισότητα Ζευγάρι ανισότητες Ανισότητα Ισότητα και slack μεταβλητή : Αρνητική μεταβλητή : Όχι πρόσημο : Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 6
x + x = Παράδειγμα x x x Εφικτή περιοχή : πολύεδρο P. Φραγμένο : πολύτοπο P. Κορυφή : ακραίο σημείο (όχι κυρτός συνδυασμός άλλων) x + x = x + x = x + x = x + x Φραγμένο πολύεδρο (πεπερασμένο): Υπάρχει κορυφή που αντιστοιχεί σε βέλτιστη λύση! Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 7
Κορυφές Αν είναι επιλύσιμο και φραγμένο, υπάρχει κορυφή βέλτιστη λύση. Αν τουλάχιστον μία κορυφή. m n πίνακας Α (περιορισμοί):, το P έχει #(ανεξάρτ.) εξισώσεων m < #μεταβλητών n. βαθμό m (m γραμμικά ανεξάρτητες στήλες). Εφικτή λύση είναι κορυφή ανν στήλες γραμμικά ανεξάρτητες. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 8
Βασικές Εφικτές Λύσεις Βασική (εφικτή) λύση (basic (feasible) solution): Βάση : m γραμμικά ανεξάρτ. στήλες του Α. Βάση ορίζει τιμές για βασικές μεταβλητές. Μη-βασικές μεταβλητές στο. Βασικές λύσεις: Βασικές εφικτές λύσεις κορυφές Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 9
Βασικές Εφικτές Λύσεις x κορυφή ΒΕΛ του ανν υπάρχει (βάση): (μη-βασικές μεταβλητές). είναι αντιστρέψιμος. (βασικές μεταβλητές). Κάθε ΒΕΛ αποτελεί κορυφή του Ρ. Υπάρχουν κορυφές που αντιστοιχούν σε πολλές διαφορετικές ΒΕΛ. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Βασικές Εφικτές Λύσεις Αν, το P έχει τουλάχιστον μία Βασική Εφικτή Λύση (ΒΕΛ). Για κάθε ΒΕΛ x, υπάρχει c x : x βέλτιστη λύση του Υπάρχουν «υποψήφιες» βέλτιστες λύσεις (κορυφές - ΒΕΛ) του Αλγόριθμος : ημιούργησε όλες τις βασικές λύσεις. Επέστρεψε τη βασική εφικτή λύση με μικρότερη αντικειμενική τιμή. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Αλγόριθμος Simplex [Dantzig, 947], καλύτερη πρακτική επιλογή. Ξεκίνησε από κορυφή x (βάση Β). Υπάρχει γειτονική κορυφή x με μικρότερο κόστος: Ναι : μετακινήσου στη x και συνέχισε. Όχι : βέλτιστη λύση. Πως ελέγχουμε αν ΓΠ επιλύσιμο και βρίσκουμε αρχική κορυφή ; Πως καταλαβαίνουμε αν ΓΠ μη-φραγμένο ; Pivoting : γειτονική κορυφή με μικρότερο κόστος. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Εναλλαγή Στηλών Αφού x N =, και Ανηγμένο κόστος : Μη-βασική μετ. με αρνητικό ανηγμένο κόστος : μείωση κόστους αν αυξηθεί (γίνει βασική). Αύξηση καθορίζεται από (μεταβλητές είναι μη-αρνητικές). Μη-αρνητικό ανηγμένο κόστος : βέλτιστη λύση. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 4 Παράδειγμα x x x 6 4 5 x x x 6 4-4 -6-4 -
Παράδειγμα -4 x - x -4 x -6 x 4 6 x x x - -4-6 - x x 6 Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 5
Παράδειγμα - x x -4 x -6 x - 6 x x x - -8 6-5 - x - - x 4 - Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 6
Παράδειγμα - x x -8 x 6-5 x - - - 4 - x x x -4 8 4 - - x x - - Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 7
Παράδειγμα -4 x x x 8 4 - x - - - x x x -4 -/ / / / x / -/ x -/ - / Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 8
Παράδειγμα -4 x x x -/ / x / / / -/ -/ - / x x x - 4 -/ -/ / x / / -/ -/ -/ / x Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός 9
Παράδειγμα Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Παράδειγμα x x x -4 - / - / - -/ - - - / Μη-φραγμένο : Το x μεγαλώνει απεριόριστα (μικραίνοντας κόστος) και λύση εφικτή. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Χρόνος Εκτέλεσης Simplex Μετακίνηση σε κορυφές με μικρότερο κόστος : τερματισμός με βέλτιστη λύση (αν υπάρχει). Παραμονή σε ίδια κορυφή (ή ίδιοκόστος) : αέναη ανακύκλωση! Κανόνες εναλλαγής στηλών (π.χ. [Bland 77]) εγγυώνται τερματισμό. Πολύ γρήγορος στην πράξη αλλά εκθετικός (#κορυφών) στη χειρότερη περίπτωση. Ανοικτό αν υπάρχει κανόνας εναλλαγής στηλών που οδηγεί σε πολυωνυμικό χρόνο. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός
Αλγόριθμοι Πολυωνυμικού Χρόνου Ελλειψοειδές [Khachian 79] : υαδική αναζήτηση: Σταδιακός περιορισμός ενός ελλειψοειδούς που εγγυημένα περιέχει λύση. Πρακτικά μη-εφαρμόσιμος (αργός, αριθμητική αστάθεια). Μέθοδοι Εσωτερικού Σημείου [Karmakar 84] : Κίνηση στο εσωτερικό του πουέδρου (κατάλληλους μετασχηματισμούς). Πρακτικά εφαρμόσιμος, αλλά Simplex! Ταχύτερος αλγόριθμος [Υe 9]. Αλγοριθμική Θεωρία Παιγνίων Γραμμικός Προγραμματισμός