Επιχειρησιακή Έρευνα I Κωστής Μαμάσης Παρασκευή 09:00 12:00 Σημειώσεις των Α. Platis, K. Mamasis
Περιεχόμενα 1. Εισαγωγή 2. Γραμμικός Προγραμματισμός 1. Μοντελοποίηση 2. Μέθοδος Simplex 1. Αλγόριθμός Simplex 2. Ασκήσεις 3. Μέθοδος Μεγάλου Μ (C) Copyright Α. Platis. All rights reserved. 2
Γραμμικός Προγραμματισμός Μέθοδος Simplex Ασκήσεις
Μέθοδος Simplex: ανακεφαλαίωση 1. Βρίσκεται μία αρχική βασική εφικτή λύση 2. Ελέγχεται το κριτήριο αριστοποίησης: εάν το σχετικό κόστος όλων των μη-βασικών μεταβλητών είναι αρνητικό ή μηδενικό τότε σταματάμε 3. Προσδιορίζεται η εισερχόμενη μεταβλητή x j, αυτή που έχει το υψηλότερο σχετικό κόστος. 4. Προσδιορίζεται η εξερχόμενη μεταβλητή: b i min aij 0 i aij 5. Πραγματοποιείται μία περιστροφή (αλλαγή μιας μη-βασικής μεταβλητής σε βασική) και προσδιορίζεται μία καινούργια βασική εφικτή λύση. Επιστροφή στο βήμα 2 4
Άσκηση
Πρόταση στόχος T-shirt με μανίκι ή χωρίς Η Reebok Sports παράγει δύο ειδών T-shirt: με μανίκι και χωρίς. Πόσα από κάθε είδος θα πρέπει να παράγει κάθε εβδομάδα ώστε να μεγιστοποιεί τα κέρδη, δοθέντος των ακόλουθων περιορισμών Η συνεισφορά (στο κέρδος) για κάθε T-shirt χωρίς μανίκι είναι 3.00, ενώ με μανίκι είναι 4.50 Κάθε T-shirt με μανίκι χρησιμοποιεί 0.5 m 2 υλικού. Και χωρίς μανίκι 0.4m 2. 300m 2 υλικού είναι διαθέσιμα. Απαιτούνται: 1 ώρα για την παραγωγή ενός T-shirt χωρίς μανίκι και 2 ώρες για ένα με μανίκι. 900 εργατοώρες είναι διαθέσιμες. Δεν υπάρχει όριο στην ζήτηση για T-shirt χωρίς μανίκι αλλά η συνολική ζήτηση για T-shirt με μανίκι είναι 375 κομμάτια ανά εβδομάδα. Κάθε T-shirt χωρίς μανίκι χρησιμοποιεί ένα λογότυπο και 600 υπάρχουν στην αποθήκη. 6 6
Έκφραση του προβλήματος ΓΠ Max Z=3x 1 +4.5x 2 0.4 x 1 +0.5x 2 300 x 1 +2x 2 900 x 2 375 x 1 600 x 1 0, x 2 0 Αντικειμενική συνάρτηση Περιορισμοί x1 συντελεστής απόφασης για t-shirt με μανίκι x2 συντελεστής απόφασης για t-shirt χωρίς μανίκι 7
Simplex Βήμα 1 Εισάγουμε χαλαρές μεταβλητές (slack variables) 0 για να αλλάξουμε τις προηγούμενες ανισότητες σε ένα σύστημα γραμμικών εξισώσεων: 0.4x 1 + 0.5x 2 + x 3 = 300 x 1 + 2x 2 + x 4 = 900 x 2 + x 5 = 375 x 1 + x 6 = 600 6 μεταβλητές και 4 εξισώσεις 2 βαθμοί ελευθερίας (δηλαδή 2 οποιεσδήποτε μεταβλητές μπορούν να πάρουν κάποια αυθαίρετη τιμή για τη λύση των 4 εξισώσεων ως προς τις υπόλοιπες τέσσερεις μεταβλητές. Η Simplex ως αυθαίρετη τιμή χρησιμοποιεί την τιμή 0) Αρχικές βασικές μεταβλητές: x 3, x 4, x 5, x 6 (βασικές είναι οι μεταβλητές που ΔΕΝ έχουν την τιμή = 0 σε κάποιο βήμα της simplex) Αρχικές μη-βασικές μεταβλητές: x 1, x 2 (μη βασικές είναι οι μεταβλητές που έχουν τιμή 0 σε κάποιο βήμα της simplex) Σε κάθε βήμα της Simplex θα αντικαθιστούμε μια μη βασική μεταβλητή με μια βασική μεταβλητή. Προκύπτει μια νέα βασική εφικτή λύση. 8
Simplex Βήμα 2 Ξαναγράφουμε την αντικειμενική συνάρτηση Από: Z=3x 1 +4.5x 2 Σε: Z-3x 1-4.5x 2-0x 3-0x 4-0x 5-0x 6 =0 9
Simplex Βήμα 3 Δημιουργία Πίνακα Simplex. Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0.5 1 0 0 0 0 300 x4 2 1 2 0 1 0 0 0 900 x5 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 -4.5 0 0 0 0 1 0 Αρχική Βασική Εφικτή Λύση (0,0,300,900,375,600) και Ζ=0 10
Simplex Βήμα 4 Εύρεση εισερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική στήλη (Pivot column). Για να βρούμε την αξονική στήλη, βρίσκουμε την μικρότερη τιμή της γραμμής 5 (γραμμή αντικειμενικής συνάρτησης) στον πίνακα Simplex Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0.5 1 0 0 0 0 300 x4 2 1 2 0 1 0 0 0 900 x5 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 -4.5 0 0 0 0 1 0 11
Simplex Βήμα 5 (PIVOT ή Περιστροφή) Εύρεση εξερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική γραμμή (Pivot row). Για να βρούμε τη αξονική γραμμή, διαιρούμε κάθε δεξί μέλος με το αντίστοιχο αριθμό της αξονικής στήλης. Επιλέγουμε τη γραμμή με το μικρότερο δεξί μέρος. Η χαλαρή x5 στις βασικές μεταβλητές θα αντικατασταθεί (θα γίνει μη βασική) από τη x2 που θα γίνει βασική μεταβλητή. Αξονική Γραμμή (pivot row) Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0.5 1 0 0 0 0 300 x4 2 1 2 0 1 0 0 0 900 x5>>x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 -4.5 0 0 0 0 1 0 Αξονική Στήλη (pivot column) 12
Simplex Βήμα 6 Μετατροπή του επιλεγμένου κελιού (αξονικό στοιχείο - pivot element) σε μονάδα (Δε χρειάζεται, είναι ήδη μονάδα) Αξονική Γραμμή (pivot row) Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί Μέλο ς x3 1 0.4 0.5 1 0 0 0 0 300 x4 2 1 2 0 1 0 0 0 900 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 -4.5 0 0 0 0 1 0 13
Simplex Βήμα 7 Μετατροπή των κελιών της στήλης pivot σε 0. Για να το κάνω αυτό κάνω αλγεβρικές πράξεις μεταξύ της γραμμής pivot και των υπολοίπων Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0.5 1 0 0 0 0 300 x4 2 1 2 0 1 0 0 0 900 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 -4.5 0 0 0 0 1 0 Γραμμή 1: Γραμμή 1 1/2*Γραμμή 3 Γραμμή 2: Γραμμή 2 2*Γραμμή 3 Γραμμή 3: Αξονική Γραμμή Γραμμή 4: Ήδη 0 Γραμμή 5: Γραμμή 5 +4.5*Γραμμή 3 14
Simplex Βήμα 7 Μετατροπή των κελιών της στήλης pivot σε 0. Για να το κάνω αυτό κάνω αλγεβρικές πράξεις μεταξύ της γραμμής pivot και των υπολοίπων Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0 1 0-1/2 0 0 112.5 x4 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 0 0 0 4.5 0 1 1687.5 Γραμμή 1: Γραμμή 1 1/2*Γραμμή 3 Γραμμή 2: Γραμμή 2 2*Γραμμή 3 Γραμμή 3: Αξονική Γραμμή Γραμμή 4: Ήδη 0 Γραμμή 5: Γραμμή 5 +4.5*Γραμμή 3 15
Simplex Βήμα 8 (ή πίσω στο βήμα 4) Έλεγχος τελευταίας γραμμής για αρνητικούς συντελεστές (υπάρχουν). Εάν υπάρχουν, επιστροφή στο βήμα 4 Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0 1 0-1/2 0 0 112.5 x4 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 0 0 0 4.5 0 1 1687.5 Νεα Βασική Εφικτή Λύση (0, 375, 112.5, 150, 0, 600) και Ζ=1687.5 16
Simplex Βήμα 4 Εύρεση εισερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική στήλη (Pivot column). Για να βρούμε την αξονική στήλη, βρίσκουμε την μικρότερη τιμή της γραμμής 5 (γραμμή αντικειμενικής συνάρτησης) στον πίνακα Simplex Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0 1 0-1/2 0 0 112.5 x4 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 0 0 0 4.5 0 1 1687.5 Αξονική Στήλη (pivot column) 17
Simplex Βήμα 5(2 η επανάληψη) Εύρεση αξονικής γραμμής. Για να βρούμε την αξονική γραμμή, διαιρούμε κάθε δεξί μέλος με το αντίστοιχο αριθμό της αξονικής στήλης. Επιλέγουμε τη γραμμή με το μικρότερο δεξί μέρος. Η χαλαρή x4 στις βασικές μεταβλητές θα αντικατασταθεί (θα γίνει μη βασική) από τη x1 που θα γίνει βασική μεταβλητή. Αξονική Γραμμή (pivot row) Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0 1 0-1/2 0 0 112.5 x4>>x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 0 0 0 4.5 0 1 1687.5 Αξονική Στήλη (pivot column) 18
Simplex Βήμα 6(2 η επανάληψη) Μετατροπή του επιλεγμένου κελιού (αξονικό στοιχείο) σε μονάδα. Δεν χρειάζεται διότι είναι ήδη μονάδα. Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0.4 0 1 0-1/2 0 0 112.5 x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 1 0 0 0 0 1 0 600 5-3 0 0 0 4.5 0 1 1687.5 19
Simplex Βήμα 7(2 η επανάληψη) Μετατροπή των κελιών της στήλης pivot σε 0. Για να το κάνω αυτό κάνω αλγεβρικές πράξεις μεταξύ της γραμμής pivot και των υπολοίπων Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0 0 1-0.4 0.3 0 0 52.5 x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 0 0 0-1 2 1 0 450 5 0 0 0 3-1.5 0 1 2137.5 Γραμμή 1: Γραμμή 1 0.4*Γραμμή 2 Γραμμή 2: Αξονική Γραμμή Γραμμή 3: Ήδη 0 Γραμμή 4: Γραμμή 4 -Γραμμή 2 Γραμμή 5: Γραμμή 5 +3*Γραμμή 2 20
Simplex Βήμα 8 (ή πίσω στο βήμα 4) Έλεγχος τελευταίας γραμμής για αρνητικούς συντελεστές. Εάν δεν υπάρχουν λύση του προβλήματος. Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0 0 1-0.4 0.3 0 0 52.5 x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 0 0 0-1 2 1 0 450 5 0 0 0 3-1.5 0 1 2137.5 Νέα Βασική Εφικτή Λύση (150, 375, 52.5, 0, 0, 450) και Ζ=2137.5 21
Simplex Βήμα 4 Εύρεση εισερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική στήλη (Pivot column). Για να βρούμε την αξονική στήλη, βρίσκουμε την μικρότερη τιμή της γραμμής 5 (γραμμή αντικειμενικής συνάρτησης) στον πίνακα Simplex Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3 1 0 0 1-0.4 0.3 0 0 52.5 x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 0 0 0-1 2 1 0 450 5 0 0 0 3-1.5 0 1 2137.5 Αξονική Στήλη (pivot column) 22
Simplex Βήμα 5(2 η επανάληψη) Εύρεση αξονικής γραμμής. Για να βρούμε την αξονική γραμμή, διαιρούμε κάθε δεξί μέλος με το αντίστοιχο αριθμό της αξονικής στήλης. Επιλέγουμε τη γραμμή με το μικρότερο δεξί μέρος. Η χαλαρή x3 στις βασικές μεταβλητές θα αντικατασταθεί (θα γίνει μη βασική) από την επίσης χαλαρή x5 που θα γίνει βασική μεταβλητή. Αξονική Γραμμή (pivot row) Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x3>>x5 1 0 0 1-0.4 0.3 0 0 52.5 x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 0 0 0-1 2 1 0 450 5 0 0 0 3-1.5 0 1 2137.5 Αξονική Στήλη (pivot column) 23
Simplex Βήμα 6(2 η επανάληψη) Μετατροπή του επιλεγμένου κελιού (αξονικό στοιχείο) σε μονάδα. Πολλαπλασιασμός όλης της γραμμής με 10/3. Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x5 1 0 0 10/3-4/3 1 0 0 175 x1 2 1 0 0 1-2 0 0 150 x2 3 0 1 0 0 1 0 0 375 x6 4 0 0 0-1 2 1 0 450 5 0 0 0 3-1.5 0 1 2137.5 24
Simplex Βήμα 7(2 η επανάληψη) Μετατροπή των κελιών της στήλης pivot σε 0. Για να το κάνω αυτό κάνω αλγεβρικές πράξεις μεταξύ της γραμμής pivot και των υπολοίπων Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x5 1 0 0 10/3-4/3 1 0 0 175 x1 2 1 0 20/3-5/3 0 0 0 500 x2 3 0 1-10/3 4/3 0 0 0 200 x6 4 0 0-20/3 5/3 0 1 0 100 5 0 0 5 1 0 0 1 2400 Γραμμή 1: Αξονική Γραμμή Γραμμή 2: Γραμμή 2 + 2*Γραμμή 1 Γραμμή 3: Γραμμή 3 - Γραμμή 1 Γραμμή 4: Γραμμή 4 2*Γραμμή 1 Γραμμή 5: Γραμμή 5 +1.5*Γραμμή 1 25
Simplex Βήμα 8 (ή πίσω στο βήμα 4) Έλεγχος τελευταίας γραμμής για αρνητικούς συντελεστές. Εάν δεν υπάρχουν λύση του προβλήματος. Β. Μετ Γραμμή x1 x2 x3 x4 x5 x6 Ζ Δεξί x5 1 0 0 10/3-4/3 1 0 0 175 x1 2 1 0 20/3-5/3 0 0 0 500 x2 3 0 1-10/3 4/3 0 0 0 200 x6 4 0 0-20/3 5/3 0 1 0 100 5 0 0 5 1 0 0 1 2400 Νέα Βασική Εφικτή Λύση (500, 200, 0, 0, 175, 100) και Ζ=2400 Η νέα εφικτή λύση είναι και η άριστη. 26
Τυποποιημένη μορφή Οποιοδήποτε μοντέλο ΓΠ μπορεί να γραφτεί ως ακολούθως: 27
Μη Τυποποιημένη μορφή Στην περίπτωση που το πρόβλημα δεν είναι στην τυποποιημένη του μορφή τότε πρέπει να το προσαρμόσουμε. Οι προσαρμογές στην διατύπωση του μοντέλου γίνονται στο αρχικό βήμα (μοντελοποίηση). Η μέθοδος simplex μπορεί να εφαρμοστεί έπειτα από την προσαρμογή του μοντέλου στην τυποποιημένη του μορφή Περιπτώσεις όπου το μοντέλο ΓΠ δεν είναι στην τυποποιημένη του μορφή είναι όταν: Επιλύω πρόβλημα ελαχιστοποίησης Οι περιορισμοί δεν είναι της μορφής (δηλαδή έχω ισότητα =, ή μεγαλύτερο ή ίσο >= Το δεξί μέρος έχει αρνητικό συντελεστή 28
Ισότητα στους περιορισμούς «=» Έστω ότι στο αρχικό πρόβλημα τροποποιούμε τα δεδομένα του προβλήματος: 2 προϊόντα (Π1 και Π2) 3 εργοστάσια (Ε1, Ε2 και Ε3) Παραγωγική δυναμικότητα για κάθε εργοστάσιο (εβδομαδιαία) Κέρδος ανά παρτίδα (20 μονάδες) για κάθε προϊόν. Το Ε3 ΠΡΕΠΕΙ να χρησιμοποιήσει ΟΛΗ την παραγωγική του δυναμική Π1 (χρόνος παραγωγής, Π2 (χρόνος παραγωγής, Παραγωγική δυναμικότητα (ώρα) ώρα/παρτίδα) ώρα/παρτίδα) Ε1 1 0 4 Ε2 0 2 12 Ε3 3 2 18 Κέρδος ( ) /παρτίδα 3000 5000 29
Ισότητα στους περιορισμούς «=» Μεγιστοποίηση Ζ = 3x 1 + 5x 2 υπό περιορισμούς: x 1 4 2x 2 12 3x 1 + 2x 2 = 18 x 1 0, x 2 0 30
Ισότητα στους περιορισμούς «=» Μεγιστοποίηση Ζ = 3x 1 + 5x 2 υπό περιορισμούς: x 1 4 2x 2 12 3x 1 + 2x 2 = 18 x 1 0, x 2 0 Δυστυχώς δεν υπάρχει μια εύκολη αρχική βασική εφικτή λύση (0,0,.,) καθώς δεν υπάρχει χαλαρή μεταβλητή που να μπορεί να χρησιμοποιηθεί σαν αρχική βασική μεταβλητή (>0) στον 3 ο περιορισμό (εξίσωση) 31
Ισότητα στους περιορισμούς «=» Ζ - 3x1-5x2 =0 x 1 + x 3 = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 + x 5 = 18 Η x 5 αλλάζει το πρόβλημα και διευρύνει την εφικτή περιοχή ώστε να μπορούμε να βρούμε μια αρχική λύση: (x 1,x 2,x 3,x 4,x 5 ) = (0,0,4,12,18) Μια εφικτή λύση για το αναθεωρημένο πρόβλημα είναι επίσης εφικτή και για το αρχικό πρόβλημα αν x 5 =0 Η x 5 ονομάζεται τεχνητή μεταβλητή. Εισάγουμε στο πρόβλημα μια τεχνητή μεταβλητή σαν να ήταν χαλαρή μεταβλητή. 32
Ισότητα στους περιορισμούς «=» Ζ - 3x1-5x2 =0 x 1 + x 3 = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 + x 5 = 18 Έστω ότι εφαρμόζουμε τη μέθοδο simplex στο αναθεωρημένο πρόβλημα και βρίσκουμε την άριστη λύση του. Η λύση αυτή μπορεί να μην είναι εφικτή λύση στο αρχικό μη αναθεωρημένο πρόβλημα. Ωστόσο, εάν γίνει μια επιπλέον αλλαγή και στην ΑΣ η οποία δίνει μεγάλη ποινή για κάθε λύση έξω από την εφικτή περιοχή του αρχικού προβλήματος τότε η άριστη λύση στο αναθεωρημένο πρόβλημα καταλήγει να είναι εφικτή και στο αρχικό πρόβλημα 33
Ισότητα στους περιορισμούς «=» Ζ - 3x1-5x2 + Μx 5 =0 x 1 + x 3 = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 + x 5 = 18 Αρχικά, αναθεωρούμε/αλλάζουμε το πρόβλημα προσθέτοντας μια τεχνητή μεταβλητή (x 5 ) Έπειτα, αναθεωρούμε/αλλάζουμε ξανά το πρόβλημα προσθέτοντας στην Αντικειμενική Συνάρτηση έναν πολύ μεγάλο συντελεστή Μ (big Μ) στην τεχνητή μεταβλητή x 5. Στην περίπτωση που η x 5 δεν είναι μηδέν, η Μ δίνει μια μεγάλη ποινή στην Αντικειμενική Συνάρτηση. 34
Simplex Βήμα 3 Δημιουργία Πίνακα Simplex. Η τεχνητή μεταβλητή x 5 είναι μια αρχική βασική μεταβλητή και ο κανόνας απαιτεί αρχικά όλους τους βασικούς συντελεστές στην ΑΣ να έχουν συντελεστή 0. Ακολουθείται η γνωστή διαδικασία της απαλοιφής. Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 3 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3 -5 0 0 M 1 0 35
Simplex Βήμα 3 Δημιουργία Πίνακα Simplex. Η x 5 ξεκινάει σαν αρχική βασική μεταβλητή και ο κανόνας απαιτεί αρχικά όλες τις βασικές μεταβλητές να έχουν συντελεστή 0. Ακολουθείται η γνωστή διαδικασία της απαλοιφής. Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 3 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3 -5 0 0 M 1 0 Γραμμή 1: Ήδη 0 Γραμμή 2: Ήδη 0 Γραμμή 3: Αξονική Γραμμή Γραμμή 4: Γραμμή 4 - M*Γραμμή 3 36
Simplex Βήμα 3 Δημιουργία Πίνακα Simplex. Η x 5 ξεκινάει σαν αρχική βασική μεταβλητή και ο κανόνας απαιτεί αρχικά όλες τις βασικές μεταβλητές να έχουν συντελεστή 0. Ακολουθείται η γνωστή διαδικασία της απαλοιφής. Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 3 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3-3M -5-2M 0 0 0 1-18M Γραμμή 1: Ήδη 0 Γραμμή 2: Ήδη 0 Γραμμή 3: Αξονική Γραμμή Γραμμή 4: Γραμμή 4 - M*Γραμμή 3 37
Simplex Βήμα 4 Εύρεση εισερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική στήλη (Pivot column). Για να βρούμε την αξονική στήλη, βρίσκουμε την μικρότερη τιμή της γραμμής 4 (γραμμή αντικειμενικής συνάρτησης) στον πίνακα Simplex Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 3 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3-3M -5-2M 0 0 0 1-18M Αξονική Στήλη (pivot column) 38
Simplex Βήμα 5 (PIVOT ή Περιστροφή) Εύρεση εξερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική γραμμή (Pivot row). Για να βρούμε τη αξονική γραμμή, διαιρούμε κάθε δεξί μέλος με το αντίστοιχο αριθμό της αξονικής στήλης. Επιλέγουμε τη γραμμή με το μικρότερο δεξί μέρος. Η χαλαρή x3 στις βασικές μεταβλητές θα αντικατασταθεί (θα γίνει μη βασική) από τη x1 που θα γίνει βασική μεταβλητή. Αξονική Γραμμή (pivot row) Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 3 >>x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3-3M -5-2M 0 0 0 1-18M Αξονική Στήλη (pivot column) 39
Simplex Βήμα 6 Μετατροπή του επιλεγμένου κελιού (αξονικό στοιχείο - pivot element) σε μονάδα. Δεν απαιτείται διότι είναι ήδη μονάδα. Αξονική Γραμμή (pivot row) Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3-3M -5-2M 0 0 0 1-18M Αξονική Στήλη (pivot column) 40
Simplex Βήμα 7 Μετατροπή των κελιών της στήλης pivot σε 0. Για να το κάνω αυτό κάνω αλγεβρικές πράξεις μεταξύ της γραμμής pivot και των υπολοίπων Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 3 2 0 0 1 0 18 4-3-3M -5-2M 0 0 0 1-18M Γραμμή 1: Αξονική Γραμμή Γραμμή 2: Ήδη 0 Γραμμή 3: Γραμμή 3-3*Γραμμή 1 Γραμμή 4: Γραμμή 4 + (3+3M)*Γραμμή 1 41
Simplex Βήμα 7 Μετατροπή των κελιών της στήλης pivot σε 0. Για να το κάνω αυτό κάνω αλγεβρικές πράξεις μεταξύ της γραμμής pivot και των υπολοίπων Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 0 2-3 0 1 0 6 4 0-5-2M 3+3M 0 0 1 12-6M Γραμμή 1: Αξονική Γραμμή Γραμμή 2: Ήδη 0 Γραμμή 3: Γραμμή 3-3*Γραμμή 1 Γραμμή 4: Γραμμή 4 + (3+3M)*Γραμμή 1 42
Simplex Βήμα 8 (ή πίσω στο βήμα 4) Έλεγχος τελευταίας γραμμής για αρνητικούς συντελεστές (υπάρχουν). Εάν υπάρχουν, επιστροφή στο βήμα 4. Εύρεση αξονικής στήλης (Pivot column). Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 0 2-3 0 1 0 6 4 0-5-2M 3+3M 0 0 1 12-6M Αξονική Στήλη (pivot column) 43
Simplex Βήμα 4 Εύρεση εισερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική στήλη (Pivot column). Για να βρούμε την αξονική στήλη, βρίσκουμε την μικρότερη τιμή της γραμμής 4 (γραμμή αντικειμενικής συνάρτησης) στον πίνακα Simplex Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 3 0 2-3 0 1 0 6 4 0-5-2M 3+3M 0 0 1 12-6M Αξονική Στήλη (pivot column) 44
Αξονική Γραμμή (pivot row) Simplex Βήμα 5 Εύρεση εξερχόμενης βασικής μεταβλητής. Στον πίνακα ονομάζεται αξονική γραμμή (Pivot row). Για να βρούμε τη αξονική γραμμή, διαιρούμε κάθε δεξί μέλος με το αντίστοιχο αριθμό της αξονικής στήλης. Επιλέγουμε τη γραμμή με το μικρότερο δεξί μέρος. Η τεχνητή x 5 στις βασικές μεταβλητές θα αντικατασταθεί (θα γίνει μη βασική) από τη x 2 που θα γίνει βασική μεταβλητή. Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 5 >>x 2 3 0 2-3 0 1 0 6 4 0-5-2M 3+3M 0 0 1 12-6M Αξονική Στήλη (pivot column) 45
Simplex Βήμα 6 Μετατροπή του επιλεγμένου κελιού (αξονικό στοιχείο - pivot element) σε μονάδα. Στη γραμμή 3 διαιρούμε με 2 όλα τα στοιχεία και κατασκευάζουμε εκ νέου τον πίνακα simplex Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 1 0 0 0 4 x 4 2 0 2 0 1 0 0 12 x 2 3 0 1-3/2 0 1/2 0 3 4 0-5-2M 3+3M 0 0 1 12-6M κ.ο.κ 46
.Simplex Βήμα 8 Έλεγχος τελευταίας γραμμής για αρνητικούς συντελεστές. Τέλος του αλγορίθμου. Άριστη λύση: (x 1,x 2,x 3,x 4,x 5 ) = (2,6,2,0,0) Β. Μετ Γραμμή x1 x2 x3 x4 x5 Ζ Δεξί x 1 1 1 0 0-1/3 1/3 0 2 x 3 2 0 0 1 1/3-1/3 0 2 x 2 3 0 1 0 1/2 0 0 6 4 0 1 0 3/2 Μ+1 1 36 47
Πρόσθεση τεχνητών μεταβλητών (Μέθοδος Μεγάλου Μ) Κάθε φορά που προσθέτουμε μία τεχνητή μεταβλητή, της αντιστοιχούμε ένα κέρδος πολύ αρνητικό (-M) στην αντικειμενική συνάρτηση: max Ζ = j=1,..,n c j x j - M*x n+i κάτω από τους περιορισμούς: j=1,..,n a ij x j + x n+i = b i Ή σε μορφή πινάκων: Ζ- j=1,..,n c j x j + M*x n+i = 0 j=1,..,n a ij x j + x n+i = b i 48
Μη Τυποποιημένη μορφή Στην περίπτωση που ένας ή περισσότεροι περιορισμοί είναι της μορφής a ij x j = b i Προσθέτουμε τεχνητές μεταβλητές (μέθοδος μεγάλου M) n j=1 Μη τυποποιημένη μορφή έχουμε και στην περίπτωση που έχουμε ελαχιστοποίηση, ή περιορισμούς >=0 ή αρνητικούς συντελεστές στο δεξί μέλος. Παράδειγμα: Minimize Z=3x 1 +5x 2 s.t. x 1 <=4 2x 2 = 12 3x 1 +2x 2 >=18 x 1,x 2 >=0 49
Μετατροπή του min σε max στην αντικειμενική συνάρτηση (Ελαχιστοποίηση) Αν υποθέσουμε ότι θέλουμε να ελαχιστοποιήσουμε την αντικειμενική συνάρτηση αντί να την μεγιστοποιήσουμε. Χρησιμοποιούμε την ακόλουθη ιδιότητα: Επιλύουμε το πρόβλημα μεγιστοποίησης αλλάζοντας τα πρόσημα (- + και + -) των συντελεστών στην αντικειμενική συνάρτηση. Η άριστη λύση του προβλήματος ελαχιστοποίησης είναι η αντίθετη λύση στο πρόβλημα μεγιστοποίησης. 50
Μετατροπή του min σε max στην αντικειμενική συνάρτηση Αντί να λύσουμε το πρόβλημα: Minimize Z = 3x 1 + 5x 2 Θα λύσουμε το: Maximize (Z) = -3x 1-5x 2 Όσο μικρότερο είναι το Z τόσο μεγαλύτερο είναι το Z Maximize -Z=-3x 1-5x 2 s.t. x 1 <=4 2x 2 = 12 3x 1 +2x 2 >=18 x 1,x 2 >=0 51
Ανισότητες της φοράς με θετικό δεξί μέλος Η ανίσωση: 3x 1 + 2x 2 18 Μπορεί να μετατραπεί σε: -3x 1-2x 2-18 Και με τον χαλαρό περιορισμό διαμορφώνεται: -3x 1-2x 2 + x 5 = -18* *Αρνητική σταθερά στο δεξί μέλος θα δώσει αρνητική τιμή στην βασική μεταβλητή x 5 στην αρχική λύση, κάτι που δεν επιτρέπεται 52
Ανισότητες της φοράς με θετικό δεξί μέλος Στην περίπτωση μας, η -3x 1-2x 2 + x 5 = -18 θα δώσει αρνητική τιμή στην χαλαρή μεταβλητή x 5 στην αρχική λύση κάτι που δεν επιτρέπεται (οι χαλαρές μεταβλητές είναι >= 0). Οπότε, η εξίσωση μπορεί να μετατραπεί πολλαπλασιάζοντας με -1 στην: 3x 1 + 2x 2 - x 5 = 18 Η μετατροπή αλλάζει τον συντελεστή της x 5 σε -1 που πάλι δεν επιτρέπεται. Ωστόσο, αυτή η εξίσωση μπορεί να θεωρηθεί ως ισότητα με μη αρνητικό δεξιό μέλος και μπορούμε να προσθέσουμε μια τεχνητή μεταβλητή x 6 οπότε και η εξίσωση μετατρέπεται στην: 3x 1 + 2x 2 - x 5 + x 6 = 18 (η x 6 ξεκινάει σαν αρχική βασική μεταβλητή (x 6 =18) και η x 5 σαν μια μη βασική (x 5 =0) μεταβλητή). Η μεταβλητή x 5 ονομάζεται μεταβλητή πλεονασμού 53
Το πρόβλημα για να επιλυθεί με simplex διαμορφώνεται ως εξής: Maximize -Z=-3x 1-5x 2 x 1 <=4 2x 2 = 12 (ισότητα) 3x 1 +2x 2 >=18 (>= & θετικό δεξί μέλος) x 1,x 2 >=0 -Ζ + 3x 1 + 5x 2 + Μx 4 + Μx 6 = 0 x 1 + x 3 + = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 - x 5 + x 6 = 18 Για να ξεκινήσει η μέθοδος simplex (μια αρχική βασική λύση): Για κάθε ανισότητα <= με θετικό δεξί μέλος χρειάζεται μια χαλαρή μεταβλητή Για κάθε ανισότητα <= με αρνητικό δεξί μέλος χρειάζεται μια χαλαρή μεταβλητή και μια τεχνητή μεταβλητή Για κάθε ισότητα, χρειάζεται μια τεχνητή μεταβλητή Για κάθε ανισότητα >= με θετικό δεξί μέλος, χρειάζεται μια χαλαρή μεταβλητή (πλεονασμού) και μια τεχνητή μεταβλητή Για κάθε ανισότητα >= με αρνητικό δεξί μέλος, χρειάζεται μια χαλαρή μεταβλητή Κάθε τεχνητή μεταβλητή στους περιορισμούς πρέπει να εισαχθεί στην ΑΣ με τη μέθοδο του μεγάλου M 54
Διαδικασία έναρξης της Simplex Όταν δεν υπάρχει τεχνητή μεταβλητή, η μέθοδος Simplex μπορεί να ξεκινήσει. Όταν οι περιορισμοί είναι τύπου, είναι εύκολο να βρεθεί μία αρχική βασική εφικτή λύση: θέτουμε απλά 0 σε όλες τις μεταβλητές (μη-βασικές) και έχουμε μία αρχική βασική εφικτή λύση. Όταν υπάρχουν τεχνητές μεταβλητές, η μέθοδο Simplex δεν μπορεί να ξεκινήσει ακόμα. Όταν υπάρχουν περιορισμοί τύπου «=» ή, θέτοντας 0 σε όλες τις μεταβλητές (μηβασικές), δεν θα μπορέσουμε να βρούμε μία αρχική βασική εφικτή λύση. Τρόπος: Απαλοιφή των τεχνητών μεταβλητών στην αντικειμενική συνάρτηση Ζ- j=1,..,n c j x j + M Χ n+i = 0 (0) Ζ- j=1,..,n (c j Μa ij ) x j = -Μb i (0 )=(0)-Μx(1) j=1,..,n a ij x j + Χ n+i = b i (1) j=1,..,n a ij x j + Χ n+i = b i (1) Πολλαπλασιάζουμε την (1) με (-Μ) και άθροισμα με την (0) 55
Το πρόβλημα για να επιλυθεί με simplex διαμορφώνεται ως εξής: Maximize -Z=-3x 1-5x 2 s.t. x 1 <=4 2x 2 = 12 (ισότητα) 3x 1 +2x 2 >=18 (>= & θετικό δεξί μέλος) x 1,x 2 >=0 -Ζ + 3x 1 + 5x 2 + Μx 4 + Μx 6 = 0 x 1 + x 3 + = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 - x 5 + x 6 = 18 Β. Μετ Γραμμή x 1 x 2 x 3 x 4 x 5 x 6 Ζ Δεξί x 3 1 1 0 1 0 0 0 0 4 x 4 2 0 2 0 1 0 0 0 12 x 6 3 3 2 0 0-1 1 0 18 4 3 5 0 M 0 M -1 0 Η x 5 είναι μεταβλητή πλεονασμού. Ξεκινάει ως μη βασική μεταβλητή=0, όπως η x 1,x 2 56
Το πρόβλημα για να επιλυθεί με simplex διαμορφώνεται ως εξής: Maximize -Z=-3x 1-5x 2 s.t. x 1 <=4 2x 2 = 12 (ισότητα) 3x 1 +2x 2 >=18 (>= & θετικό δεξί μέλος) x 1,x 2 >=0 -Ζ + 3x 1 + 5x 2 + Μx 4 + Μx 6 = 0 x 1 + x 3 + = 4 2x 2 + x 4 = 12 3x 1 + 2x 2 - x 5 + x 6 = 18 Β. Μετ Γραμμή x 1 x 2 x 3 x 4 x 5 x 6 Ζ Δεξί x 3 1 1 0 1 0 0 0 0 4 x 4 2 0 2 0 1 0 0 0 12 x 6 3 3 2 0 0-1 1 0 18 4 3 5 0 M 0 M -1 0 Πρέπει να μηδενήσουμε τους συντελεστές των τεχνητών μεταβλητών στην ΑΣ 57
Το πρόβλημα για να επιλυθεί με simplex διαμορφώνεται ως εξής: Β. Μετ Γραμμή x 1 x 2 x 3 x 4 x 5 x 6 Ζ Δεξί x 3 1 1 0 1 0 0 0 0 4 x 4 2 0 2 0 1 0 0 0 12 x 6 3 3 2 0 0-1 1 0 18 4 3 5 0 M 0 M -1 0 Γραμμή 1: Ήδη 0 Γραμμή 2: Αξονική Γραμμή Γραμμή 3: Ήδη 0 Γραμμή 4: Γραμμή 4 - M*Γραμμή 2 Γραμμή 1: Ήδη 0 Γραμμή 2: Ήδη 0 Γραμμή 3: Αξονική Γραμμή Γραμμή 4: Γραμμή 4 - M*Γραμμή 3 58
Β. Μετ Γραμμή x 1 x 2 x 3 x 4 x 5 x 6 Ζ Δεξί x 3 1 1 0 1 0 0 0 0 4 x 4 2 0 2 0 1 0 0 0 12 x 6 3 3 2 0 0 1 1 0 18 Γραμμή 1: Ήδη 0 Γραμμή 2: Αξονική Γραμμή Γραμμή 3: Ήδη 0 Γραμμή 4: Γραμμή 4 - M*Γραμμή 2 4 3 5-2Μ 0 0 0 M -1-12Μ Β. Μετ Γραμμή x 1 x 2 x 3 x 4 x 5 x 6 Ζ Δεξί x 3 1 1 0 1 0 0 0 0 4 x 4 2 0 2 0 1 0 0 0 12 x 6 3 3 2 0 0-1 1 0 18 Γραμμή 1: Ήδη 0 Γραμμή 2: Ήδη 0 Γραμμή 3: Αξονική Γραμμή Γραμμή 4: Γραμμή 4 - M*Γραμμή 3 4 3-3Μ 5-4Μ 0 0 Μ 0-1 -30Μ 59
Παραδείγματα
Παράδειγμα min Ζ = 0.4 x 1 + 0.5 x 2 ή Ζ - 0.4 x 1-0.5 x 2 = 0 Κάτω από τις συνθήκες: 0.3 x 1 + 0.1 x 2 2.7 0.5 x 1 + 0.5 x 2 = 6 0.6 x 1 + 0.4 x 2 6 x 1 0, x 2 0 61
Μετατροπές Μετατροπή Α.Σ. [Πολλαπλασιασμός ΑΣ με (-1) ] Ζ + 0.4 x 1 + 0.5 x 2 =0 Προσοχή:το αποτέλεσμα Ζ που θα προκύψει από την Simplex, θα πρέπει να πολλαπλασιαστεί με (-1) Αρχικό σύστημα 0.3 x 1 + 0.1 x 2 2.7 0.5 x 1 + 0.5 x 2 = 6 0.6 x 1 + 0.4 x 2 6 Σύστημα ισοτήτων 0.3 x 1 + 0.1 x 2 + x s1 = 2.7 0.5 x 1 + 0.5 x 2 = 6 0.6 x 1 + 0.4 x 2 - x s2 = 6 x s1 0, x s2 0 62
Εισαγωγή τεχνητών μεταβλητών Σύστημα ισοτήτων 0.3 x 1 + 0.1 x 2 + x s1 = 2.7 0.5 x 1 + 0.5 x 2 = 6 0.6 x 1 + 0.4 x 2 - x s2 = 6 x s1 0, x s2 0 Πρόσθεση τεχνητών μεταβλητών 0.3 x 1 + 0.1 x 2 + x s1 = 2.7 0.5 x 1 + 0.5 x 2 + X a2 = 6 0.6 x 1 + 0.4 x 2 - x s2 + X a3 = 6 x s1 0, x s2 0, X a2 0, X a3 0 63
Εκκίνηση του αλγόριθμου Simplex (1) Πρόσθεση τεχνητών μεταβλητών 0.3 x 1 + 0.1 x 2 + x s1 = 2.7 (1) 0.5 x 1 + 0.5 x 2 + X a2 = 6 (2) 0.6 x 1 + 0.4 x 2 - x s2 + X a3 = 6 (3) x s1 0, x s2 0, X a2 0, X a3 0 Μέθοδος του μεγάλου M Z + 0.4 x 1 + 0.5 x 2 + M X a2 + M X a3 = 0 64
Εκκίνηση του αλγόριθμου Simplex (2) Απαλοιφή τεχνητών μεταβλητών από Α.Σ. πολλαπλασιάζουμε την (2) με (-Μ) και αθροίζουμε με Α.Σ. Α.Σ.: Ζ + (-0.5Μ+0.4) x 1 + (-0.5Μ+0.5) x 2 + M X a3 = -6Μ πολλαπλασιάζουμε την (3) με (-Μ) και αθροίζουμε με Α.Σ. Α.Σ.: Ζ + (-1.1Μ+0.4) x 1 + (-0.9Μ+0.5) x 2 + Μ x s2 = -12Μ Δεν υπάρχει τεχνητή μεταβλητή στην Α.Σ. (συντελεστές = 0), μπορεί να ξεκινήσει η Simplex. 65