Μετάβαση στο κύριο περιεχόμενο

Γραμμικός Προργαμματισμός: Κεφάλαιο 3.1 - Η Μέθοδος Simplex


Τώρα έχουμε επιτέλους τα κατάλληλα εργαλεία (συγκεκριμένα την εξίσωση (4)), ώστε να λύσουμε ένα ΓΠ. Συγκεκριμένα ας θεωρήσουμε το ακόλουθο ΓΠ.:

                \(max\) \(z = 2x_1 + 5x_2\)
υ.π.:
                (1)    \(2x_1 - x_2 \leq 4\)
                (2)    \(x_1 + 2x_2 \leq 9\)
                (3)    \(-x_1 + x_2 \leq 3\)
                (4)    \(x_1, \geq 0\)
                (5)    \(x_2, \geq 0\)

Ας ονομάσουμε την παραπάνω γραφή του ΓΠ (Π1). Δεν θα κάνουμε κάτι άλλο από το να υλοποιήσουμε την μέθοδο που περιγράψαμε στην Κεφάλαιο 2.0. Παρατηρούμε ότι η αρχή των αξόνων \( (x_1, x_2) = (0, 0) \) είναι μια λύση για το (Π1), με τιμή της συνάρτησης στόχου \( z = 0 \). Από γεωμετρικής άποψης για να συμβαίνει αυτό συμβαίνει επειδή η αρχή των αξόνων είναι μια κορυφή του πολυτόπου των περιορισμών.

το πολύτοπο του ΓΠ (Π1), ως τομή ημιεπιπέδων
Σχήμα1: Το πολύτοπο του ΓΠ (Π1), ως τομή ημιεπιπέδων

το πολύτοπο του ΓΠ (Π1)
Σχήμα 2: Το πολύτοπο του ΓΠ (Π1)


Φυσικά στόχος μας είναι να αυξήσουμε την συνάρτηση στόχο, πως μπορούμε να το κάνουμε αυτό; Θα αυξήσουμε είτε την \(x_1\), είτε την \(x_2\). Ας προσπαθήσουμε με την \(x_1\). Πόσο; Όσο περισσότερο μπορούμε, ώστε να διατηρούνται οι περιορισμοί. Κρατάμε σταθερό το \(x_2\) σταθερό, \(x_2 = 0\).

(1)    \( x_1 \leq 2 + \frac{x_2}{2} \) \(\overset{x_2 = 0}{=} 2 \)
(2)    \( x_1 \leq 9 - 2x_2\) \(\overset{x_2 = 0}{=} 9\) 
(3)    \(x_1 \leq 3 + x_2\) \(\overset{x_2 = 0}{=} 3\)

Παρατηρούμε ότι \(x_1 \leq 2, x_1 \geq 3\). Άρα δεν μπορούμε να αυξήσουμε την \(x_1\) και να πάρουμε μία εφικτή λύση. Άρα μας μένει η \(x_2\), πάλι κρατάμε την \(x_1\) σταθερή, \(x_1 = 0\) έχουμε:

(1)    \(x_2 \geq -4 + 2x_1\) \(\overset{x_1 = 0}{=} -4\)
(2)    \(x_2 \leq 4.5 - \frac{x_1}{2}\) \(\overset{x_1 = 0}{=} 4.5\)
(3)    \(x_2 \leq 3 + x_1\) \(\overset{x_1 = 0}{=} 3\)

Άρα \(x_2 \in [-4, 3]\), άρα θέτουμε \(x_2 = 3\) και έχουμε τιμή της συνάρτησης στόχου, \(z = 15\). Θα λέμε ότι η (3) είναι σφιχτή, έχουμε μετατρέψει την ανισότητα σε ισότητα:
$$ x_2 = 3 + x_1 $$
Η κορυφή που βρισκόμαστε δίνεται από τις εξισώσεις:
\(-x_1 + x_2 = 3\), \(x_1 = 0\)
Γεωμετρικά βρισκόμαστε στην κορυφή Β στα  σχήματα 1, 2.

Οι εξισώσεις είναι σε Εσσιανή Κανονική Μορφή! Άρα μπορούμε να χρησιμοποιήσουμε τα αποτελέσματα του Κεφαλαίου 2 και ξέρουμε πως να δούμε τον κόσμο από τα μάτια της κορυφής Β (σαν να ήταν η αρχή των αξόνων), ας ονομάσουμε το σύστημα αξόνων όπου το B είναι η αρχή \(S_B\), ενώ τον χώρο που είμαστε τώρα θα το λέμε \(S_E\). Για κάθε σημείο \( (x_1, x_2) \) του \(S_E\) θα το απεικονίσουμε στο σημαίο \( (y_1, y_2) \) του \( S_B \), ως εξής:

\(y_1 = x_1 \)
\(y_2 = 3 + x_1 - x_2\)

λέμε τον παραπάνω μετασχηματισμό \((Μ)\). Αρκεί τώρα να ξαναγράψουμε το (Π1), λύνοντας τους μετασχηματισμούς \((Μ)\).

\(x_1 = y_1 \)
\(x_2 = -y_2 + y_1 + 3\)

οι παραπάνω εξισώσεις συνιστούν τον αντίστροφο μετασχηματισμό \((M^{-1})\).

σ.σ.:  \(z = 2y_1 + 5(-y_2 + y_1 +3)\)

(1)    \(2y_1 - (-y_2 + y_1 + 3) \leq 4\)
(2)    \(y_1 + 2(-y_2 + y_1 + 3) \leq 9\)
(3)    \(-y_1 + (-y_2 + y_1 + 3) \leq 3\)
(4)    \(y_1 \geq 0\)
(5)    \(-y_2 + y_1 + 3 \geq 0\)

ή

σ.σ.: \(z = 7y_1 -5y_2 +15\)

(1)    \( y_2 \leq 5 \)
(2)    \( 3y_1 - 2y_2 \leq 3 \)
(3)    \(y_2 \geq 0 \)
(4)    \( y_1 \geq 0 \)
(5)    \(-y_1 + y_2 \geq 3 \)

το φέρνουμε σε πιο οικεία μορφή:

σ.σ.: \(z = 7y_1 -5y_2 +15\)

(1')     \(y_2 \leq 5\)
(2')     \( 3y_1 - 2y_2 \leq 3\)
(3')     \(-y_1 + y_2 \leq 3\)
(4')     \(y_1 \geq 0\)
(5')     \(y_2 \geq 0\)

Ονομάζουμε την μορφή αυτή του ΓΠ (Π2). Ας κάνουμε τώρα μερικές παρατηρήσεις:
  1. Για \((y_1, y_2) = (0, 0)\) η συνάρτηση στόχος του (Π2) μας δίνει \(z = 15\), ότι παίρναμε και στο (Π1) για \( (x_1, x_2) = (0, 2) \).
  2. Οι σφιχτές εξισώσεις του (Π1), (3), (4), είναι αυτές που μας έδωσαν τους περιορισμούς πρόσημου (4'), (5').
  3. Η \((y_1, y_2) = (0, 0)\) είναι πάλι μια εφικτή λύση του (Π2).
Παρατηρούμε το πολύτοπο της εφικτής λύσης παρακάτω:

το πολύτοπο των εφικτών λύσεων του (Π2), σαν τομή ημιεπιπέδων
Σχήμα 3: Το πολύτοπο των εφικτών λύσεων του (Π2), σαν τομή ημιεπιπέδων

Σχήμα 4: Το πολύτοπο των εφικτών λύσεων του (Π2)

Επαναλαμβάνοντας την διαδικασία μπορούμε να πάμε από το (Π2) στο (Π3), το οποίο παραθέτουμε παρακάτω:

σ.σ.:  \(z = 22 - \frac{7}{3}z_1 - \frac{1}{3}z_2\)

υ.π.

(1'')    \(-\frac{1}{3}z_1 + \frac{5}{3} \leq 6\)
(2'')    \(\frac{1}{3}z_1 - \frac{2}{3}z_2 \leq 1\)
(3'')    \(\frac{1}{3}z_1 + \frac{1}{3}z_2 \leq 4\)
(4'')    \(z_1 \geq 0\)
(5'')    \(z_2 \geq 0\)

και οι μετασχηματισμοί (M') που μας πήγαν από το (Π2) στο (Π3) είναι:

\(z_1 = 3 - 3y_1 + 2y_2\)
\(z_2 = y_2\)

Μην γίνεται σύγχυση του z (της τιμής της συνάρτησης στόχου) και των μεταβλητών \(z_i\) του (Π3). Εδώ παρατηρούμε ότι για κανένα θετικό \(z_1, z_2\) δεν μπορούμε να αυξήσουμε την τιμή της συνάρτησης στόχου. Άρα έχουμε τελειώσει! Η βέλτιστη τιμή της συνάρτησης στόχου είναι 22. Η τιμή που μας δίνει την βέλτιστη λύση στο (Π3) είναι φυσικά η \((0, 0)\), όμως μπορούμε να χρησιμοποιήσουμε τους μετασχηματισμούς (Μ), (Μ') για να βρούμε την λύση στο (Π1), η οποία θα είναι η \((x_1, x_2) = (1, 4)\). Η αναγνώστρια καλείται να επαληθεύσει αυτούς τους ισχυρισμούς.

Παρακάτω βλέπουμε σχηματικά την πορεία που ακολούθησε η μέθοδος Simplex στο πολύτοπο του (Π1). Όπως βλέπουμε σταματάει στην κορυφή Δ, η οποία πράγματι είναι η κορυφή που δίνει την βέλτιστη λύση, όπως μπορούμε να επαλυθεύσουμε και με την χρήση της γραφικής μεθόδου (Κεφάλαιο 1).

η πορεία την μεθόδου Simplex
Σχήμα 5: Η πορεία την μεθόδου Simplex

γραφική επίλυση του (Π1) - επαλήθευση μεθόδου Simplex
Σχήμα 6: Γραφική επίλυση του (Π1) - Επαλήθευση μεθόδου Simplex

Τώρα πια μπορούμε να λύσουμε ένα γενικό ΓΠ, οσοδήποτε μεταβλητών. Στο επόμενο μέρος του Κεφαλαίου 3 θα δούμε την γεωμετρική ερμηνεία πίσω από τις αλγεβρικές πράξεις που είδαμε εδώ.

Σημειώσεις:
Αν δεν εμφανίζονται σωστά τα μαθηματικά σύμβολα, παρακαλώ πατήστε Ctrl+F5.
Τα σχήματα έγιναν με το GeoGebra5. Το πρόγραμμα διατίθεται για Windows, Mac και Linux
Για μαθηματικά σύμβολα στο blogger ακολούθησα αυτές εδώ τις οδηγίες.

Βιβλιογραφία:
[1] Το πρόβλημα πάρθηκε από το βιβλίο Αλγόριθμοι των Sanjoi Dasqupta, Christos Papadimitriou, Umesh Vazirani, εκδόσεις Κλειδάριθμος

Πλοήγηση

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Γραμμικός Προγραμματισμός: Κεφάλαιο 2.2 - λίγη γραμμική άλγεβρα & αναλυτική γεωμετρία - απόσταση σημείου - υπερεπιπέδπου

Στο προηγούμενο μέρος του κεφαλαίου δείξαμε πως μπορούμε να γράφουμε τα υπερεπίπεδα και τις ευθείες σε άλγεβρα και αποδείξαμε τις εξισώσεις:   \(\vec{x} \cdot \vec{a} = -c \hspace{5mm} (1)\) \(H_{\vec{a}, c} = \{ \vec{x} \in \mathbb{R}^n | \vec{a} \cdot  \vec{x} = - c\} \hspace{5mm}(2)\)  Την (1) την ονομάσαμε Εσσιανή Κανονική Μορφή . Θα δούμε ότι είναι πολύ εύκολο να βρούμε την απόσταση ενός σημείου από ένα υπερεπίπεδο, αν μας δίνεται το υπερεπίπεδο στην μορφή της (2). Θυμόμαστε ότι το \(\vec{a} \perp Η_{\vec{a}, c}\) και \(\|a\| = 1\). Επίσης, ότι το υπερεπίπεδο απέχει \(|c|\) από την αρχή των αξόνων. Έστω Χ το σημείο του οποίου θέλουμε να βρούμε την απόσταση από το \(H_{\vec{a}, c}\), τότε, ξέρουμε  ήδη από το σχολείο, ότι όταν λέμε απόσταση σημείου από υπερεπίπεδο εννοούμε κάθετη απόσταση. Σχήμα 1: Κάθετη απόσταση σημείου από υπερεπίπεδο Ας προσπαθήσουμε να "πιάσουμε" το σημείο Χ. Θεωρούμε ένα σημείο \(X_0\) πάνω στο υπερεπίπεδο, τότε παρατηρού...

Γραμμικός Προγραμματισμός: Κεφάλαιο 2.1 - λίγη γραμμική άλγεβρα & αναλυτική γεωμετρία - ευθείες και υπερεπίπεδα

Είδαμε στα προηγούμενα κεφάλαια την σημασία της γεωμετρίας των ευθειών και των υπερεπιπέδων για τον Γραμμικό Προγραμματισμό. Σε αυτό το κεφάλαιο θα πάμε πιο βαθιά σε αυτή την έννοια και θα δείξουμε πως να την "κωδικοποιούμε" στην γλώσσα της άλγεβρας. Ευθείες, Επίπεδα και Υπερεπίπεδα Τι ακριβώς είναι μια ευθεία ή ένα υπερεπίπεδο; Πως γράφουμε μια ευθεία σε αλγεβρική μορφή; Θα πρέπει να σκεφτόμαστε την αναλυτική γεωμετρία σαν ένα υπολογιστικό σύστημα, σαν μια γλώσσα προγραμματισμού. Στην ευκλείδια γεωμετρία που κάναμε στο σχολείο η ευθεία και το επίπεδο είναι κάτι τελείως χειροπιαστό, στην άλγεβρα όμως έχουμε μόνο πράξεις, μεταβλητές και εξισώσεις, τι άλλο θα μπορούσε να είναι λοιπόν μια ευθεία από μια εξίσωση, η εξίσωση θα ισχύει μόνο για τα σημεία εκείνα τα οποία ανήκουν στην ευθεία . Στο σχολείο γράφαμε το εξής: \(y = \frac{-a}{b}x + \frac{-c}{b}\) ή \(y = \lambda x+\beta\) θα δούμε πως η πρώτη μορφή είναι πολύ πιο χρήσιμη από την δεύτερη: $$  y = \frac{-a}{b}...

Γραμμικός Προγραμματισμός: Κεφάλαιο 3.2 - Η Μέθοδος Simplex - γεωμετρική ερμηνεία

Στο προηγούμενο κεφάλαιο περιγράψαμε την μέθοδο Simplex, αλγεβρικά. Σε αυτή την σειρά όμως βασικό μας μέλημα είναι η διαίσθηση που προσφέρει η γεωμετρία του προβλήματος. Εδώ θα ασχοληθούμε με την ερμηνεία των αλγεβρικών βημάτων του προηγούμενου κεφαλαίου από γεωμετρικής σκοπιάς. Ας θυμηθούμε άλλη μια φορά την κεντρική ιδέα της μεθόδου Simplex, όπως την περιγράψαμε στο Κεφάλαιο 2.0 : Κεντρική Ιδέα Μεθόδου Simplex Έστω v μία κορυφή της εφικτής περιοχής Όσο υπάρχει ένας γείτονας της v, v' με καλύτερη τιμή της συνάρτησης στόχου:         θέσε v' := v Αυτή ακριβώς την κεντρική ιδέα υλοποιήσαμε και στο Κεφάλαιο 3.1 . Έστω ότι έχουμε ένα ΓΠ με n μεταβλητές (άρα θα "ζούμε" στον n-διάστατο χώρο), ουσιαστικά κινούμαστε κάθε φορά πάνω σε μία ακμή του πολυτόπου των λύσεων (η μία ακμή ορίζεται από n-1 υπερεπίπεδα, οι n-1 μεταβλητές που παραμένουν σταθερές) και θα σταματήσουμε στην άλλη άκρη της ακμής. Η γειτονιά συνεπώς που αναφέρουμε στην Κεντρική Ιδέα δ...