ΓραμμικόςΠρογραμματισμός...7...

21
1 Γραμμικός Προγραμματισμός Γραφική λύση Μέθοδος SIMPLEX Γραμμικές Συναρτήσεις Γραμμική Συνάρτηση: ( ) ( ) ( ) ( ) ( ) f x y f x f y f ax af x + = + = Παράδειγμα 1: ( ) f x bx = Παράδειγμα 2: ( ) f x bx c = +

Transcript of ΓραμμικόςΠρογραμματισμός...7...

Page 1: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

1

Γραμμικός Προγραμματισμός

Γραφική λύσηΜέθοδος SIMPLEX

Γραμμικές ΣυναρτήσειςΓραμμική Συνάρτηση:

( ) ( ) ( )( ) ( )

f x y f x f y

f ax af x

+ = +

=Παράδειγμα 1: ( )f x bx=

Παράδειγμα 2: ( )f x bx c= +

Page 2: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

2

Γραμμικός Προγραμματισμός (ΓΠ)

Ένα πρόβλημα μπορεί να μοντελοποιηθεί σαν πρόβλημαΓραμμικού Προγραμματισμού (ΓΠ) εάν το πρόβλημαικανοποιεί τις πιο κάτω συνθήκες:Μη τυχαίες μεταβλητές (deterministic): Όλες οιπαράμετροι είναι γνωστές με βεβαιότητα.ΣΧΕΤΙΚΑ ΓΡΑΜΜΙΚΟ (Affine Linear)

Αναλογικό (proportional): Δεν υπάρχουν οικονομίες κλίμακας(Το 1 μήλο στοιχίζει $1, τα 2 μήλα στοιχίζουν $2).Προσθετικά (additive): Το συνολικό κόστος είναι το άθροισματου κόστους κάθε στοιχείου.

Διαιρετέο (Divisible): Όλες οι μεταβλητές μπορούν ναπάρουν πραγματικές τιμές.

Παράδειγμα

1823Μηχανή 3

1220Μηχανή 2

401Μηχανή 1

Διαθέσιμηπαραγ.

Προϊόν 2Προϊόν 1

$5,000$3,000Κέρδος

Ερώτηση: Πόσα προϊόντα τύπου 1 και 2 πρέπει ναπαραχθούν για να μεγιστοποιηθεί το κέρδος

Page 3: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

3

Διατύπωση του προβλήματος

x1: αριθμός προϊόντων τύπου 1

x2: Αριθμός προϊόντων τύπου 2

Γραφική Λύση

x1

x2

Page 4: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

4

Εφικτές/Μη Εφικτές Λύσεις(Feasible/Infeasible solutions)

x1

x2

ΕφικτήΠεριοχή Μη Εφικτή Λύση: μια λύση

στη οποία δεν ικανοποιείταιτουλάχιστον ένας περιορισμός

Εφικτή Λύση: μια λύση στηοποία ικανοποιούνται ΟΛΟΙ οιπεριορισμοί.

Πλεονάζων Περιορισμοί(Redundant Constraints)

x1

x2

1823122 4

21

2

1

≤+≤≤

xxx

x

4053 21 ≤+ xx

Page 5: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

5

Άδεια Εφικτή Περιοχή

x1

x2

1823122 4

21

2

1

≤+≤≤

xxx

x

4053 21 ≥+ xx

ΕφικτήΠεριοχή

Μη Πεπερασμένη Λύση

x1

x2

0,0 and122

subject to53 Maximize

21

2

21

≥≥≤

+=

xxx

xxZ

Page 6: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

6

Πολλαπλές Βέλτιστες Λύσεις

x1

x2

ΕφικτήΠεριοχή

21 23 xxZ +=

Zxx21

23

12 +−=⇒

Γωνιακές ΛύσειςCorner-Point Solutions

Εφικτήπεριοχή

x1

x2 41 =x

62 =x

1823 21 =+ xx

Γωνιακές εφικτέςλύσεις (ΓΕΛ ή CPF)

Γωνιακές μη εφικτέςλύσεις

Page 7: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

7

Γειτονικές Γωνιακές Λύσεις(Adjacent Corner-Point Solutions)

Εφικτήπεριοχή

x1

x2 41 =x

62 =x

1823 21 =+ xx

Εάν n είναι ο αριθμός τωνμεταβλητών, τότε δύο ΓΕΛλύσεις είναι γειτονικές(adjacent) εάν έχουν κοινούςn-1 περιορισμούς.

Επιτρεπτήπεριοχή

Γωνιακές Εφικτές Λύσεις(ΓΕΛ)

x1

x2Θεώρημα: Εάν το πρόβλημα ΓΠ έχειβέλτιστη λύση, τότε τουλάχιστον μία ΓΕΛ είναιβέλτιστη λύση.

1. Στην βέλτιστη λύση κάποιοιπεριορισμοί ικανοποιούνται σανισότητες και κάποιοι σανανισότητες.

2. Δεσμευτικοί περιορισμοί (binding constraints) είναι όλοι οιπεριορισμοί πάνω στους οποίουςβρίσκεται η βέλτιστη λύση.

Page 8: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

8

Συνθήκη βέλτιστης τιμής(Optimality test)

Υποθέτουμε ότι το πρόβλημα ΓΠ έχει τουλάχιστονμία βέλτιστη λύση.

Εάν μία ΓΕΛ δεν έχει γειτονική ΓΕΛ όπου ηαντικειμενική συνάρτηση να παίρνει καλύτερητιμή, τότε αύτη η λύση είναι βέλτιστη λύση.

Η Μέθοδος Simplex

nnxcxcxcZ +++= ...Maximize 2211

mnmnmm

nn

nn

bxaxaxa

bxaxaxabxaxaxa

≤+++

≤+++≤+++

...

......

2211

22222121

11212111

Subject to the constraints

0,,0,0 21 ≥≥≥ nxxxand

mjbj ,...,1,0 =≥

Η μέθοδος υποθέτει ότι το πρόβλημα είναι διατυπωμένοστην τυπική του μορφή (standard form).

Page 9: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

9

H μέθοδος Simplex

Επικεντρώνεται μόνο σε Γωνιακές Εφικτές Λύσεις (ΓΕΛ)Για κάθε πρόβλημα με τουλάχιστον μία βέλτιστη λύση, ανεύρεσημιας τέτοιας λύσης ισοδυναμεί με την ανεύρεση της καλύτερης ΓΕΛ.

Ξεκινά από το σημείο (0,...,0) (origin) Βολική λύση διότι ικανοποιεί τους μη αρνητικούς περιορισμούς καιδεν χρειάζεται καμία διαδικασία για την ανεύρεση εφικτής.

Η μέθοδος είναι ένας επαναληπτικός αλγόριθμος. Πάει απόμία ΓΕΛ σε μία γειτονική που βελτιώνει την αντικειμενικήσυνάρτηση.

Σε κάθε βήμα ελέγχει μόνο γειτονικές ΓΕΛ.Η πορεία της μεθόδου είναι κατά μήκος των συνόρων της εφικτής(επιτρεπτής) περιοχής.

H μέθοδος Simplex

Για όλες τις ακμές (edges) που περνούν από την τρέχωνΓΕΛ, ελέγχει το ρυθμό καλυτέρευσης της αντικειμενικήςσυνάρτησης (Ζ).

Κινείται κατά μήκος της ακμής με το μεγαλύτερο ρυθμόκαλυτέρευση.Εάν δεν υπάρχει ακμή με θετικό ρυθμό καλυτέρευσης, τότε οαλγόριθμος σταματά

Page 10: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

10

Τι κάνει η Simplex

x1

x2

ΕφικτήΠεριοχή

21 53 Maximize xxZ +=

Initialize/find CPF

Test Optimality

Μεταβλητές Χαλαρότητας(Slack Variables)

41 ≤xΠεριορισμός:

Πως μπορεί να γραφτεί ο πιο πάνω περιορισμόςανισότητας σαν περιορισμός ισότητας;

Page 11: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

11

Αρχικοποίηση της Μεθόδου SIMPLEX

0,0 and1823 122 4

subject to53 Maximize

21

21

2

1

21

≥≥≤+≤≤

+=

xxxxx

x

xxZ

Original form

subject to53 Maximize 21 xxZ +=

1812 4

232

521

42

31

=+==

++

+

xxxxx

xx

5,...,1,0 and =≥ jx j

Augmented form

Augmented solution: solution for the original variables and the slack variables

Βασικές Λύσεις (Basic Solutions)

Βασική Λύση: augmented corner-point solutionΙδιότητες Βασικής ΛύσηςΚάθε μεταβλητή μπορεί να είναι είτε βασική είτε μη βασικήΟ αριθμός των βασικών μεταβλητών ισούται με τοναριθμό των περιορισμών.Μη βασικές μεταβλητές έχουν την τιμή 0.Οι τιμές των βασικών μεταβλητών είναι η λύση τουσυστήματος εξισώσεων με όλους τους περιορισμούς(functional constraints)

Βασική Επιτρεπτή Λύση (ΒΕΛ): augmented Corner Point Feasible solutionΒασική λύση που ικανοποιεί τους μη αρνητικούςπεριορισμούς

Page 12: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

12

Επίλυση Συστήματος Εξισώσεων

Υποθέστε το σύστημα εξισώσεων11 1 12 2 1 1

1 1 2 2

n n

n n nn n n

a x a x a x b

a x a x a x b

+ + + =

+ + + =

Το οποίο γράφεται και ως

11 1 1 1

1

n

n nn n n

a a x bAx b

a a x b

⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥= ⇔ =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

Βρείτε το διάνυσμα x για το οποίο ισχύει η πιο πάνωεξίσωση.

Gauss Elimination

Χρησιμοποιώντας elementary operations μετασχηματίζουμετον αρχικό πίνακα [Ab] μέχρι να γίνει «σχεδόν» τριγωνικός.

11 12 1 1

1 2

[ ]n

n n nn n

a a a bAb

a a a b

⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

Elementary operationsΕναλλαγή της σειράς δύο εξισώσεωνΠολλαπλασιασμός μιας εξίσωσης με μία σταθεράΑντικατάστασης μιας εξίσωσης με το άθροισμα της εξίσωσης μεκάποιο πολλαπλάσιο μιας άλλης εξίσωσης

Από τον «σχεδόν» τριγωνικό πίνακα είναι εύκολο ναβρούμε τη ζητούμενη λύση στο σύστημα.

Page 13: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

13

Gauss Elimination

1 0 0/ 1 0 0 / / /

0 0 1

a b c d a b c de a e f g h f be a g ce a h de a

k l m n k l m n

⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥− = − − −⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

Αντικατάσταση της εξίσωσης j με το άθροισμα της εξίσωσηςj συν ένα πολλαπλάσιο (ας πούμε α) της εξίσωσης i.Είναι ισοδύναμο με τον πολλαπλασιασμό του πίνακα επί τον«σχεδόν» μοναδιαίο πίνακα με εξαίρεση το bij=α.

Ολόκληρος ο μετασχηματισμός GE μπορεί ναγραφτεί σαν ένα τέτοιο γινόμενο. Ο πίνακας Β θαέχει όλους τους συντελεστές που χρησιμοποιήθηκαν.

Αντίστροφος Πίνακας

Οπόταν η λύση στο σύστημα εξισώσεων

Υπάρχει πάντα λύση;

Υποθέστε ότι ο τετράγωνος πίνακας Α μπορεί νααντιστραφεί, τότε ισχύει

Page 14: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

14

Παράδειγμα Βασικής Λύσης

1812 4

232

521

42

31

=+==

++

+

xxxxx

xx

Βασικές Μεταβλητές:

Αριθμός βασικών μεταλητών=

Αριθμός μη βασικών μεταβλητών=

Αρχικοποιούνται οι x1 και x2 σαν μη βασικές

Βολική Διατύπωση και ΑρχικήΜορφή της μεθόδου Simplex

Objective

Αρχικά οι μεταβλητές x1 και x2 είναι μη βασικές, δηλαδή:

subject to Maximize Z

5,...,1,0 and =≥ ixi

18231224053

521

42

31

21

=++=+=+=−−

xxxxx

xxxxZ

Page 15: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

15

Ο Αλγόριθμος της μεθόδου Simplex

Initialize

Find exiting basic variable

Find incoming basic variable

Find new CPF solution

Start from the origin

Are there any negative coefficients in the objective equation?

Is Optimal?

No

YesEnd

Non-basic variable with most negative coefficient

Basic variable with smallest ratio

Gauss elimination

18231224053

521

42

31

21

=++=+=+=−−

xxxxx

xxxxZ

Πρώτο Βήμα

96

on bound no0

2

2

22

≤≤⇒

xx

xx

2. Determine which nonbasic variable will become basic:

1. Optimality test

4. Find new solution.

3. Determine which basic variable will become nonbasic. (How much can we increase x2?)

Page 16: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

16

Πρώτο Βήμα - συνέχεια

664

5

2

3

=⇒=⇒=⇒

xxx

18231224053

521

42

31

21

=++=+=+=−−

xxxxx

xxxxZ

6364

303

541

421

2

31

425

1

=+−=+=+=+−

xxxxx

xxxxZ

Επόμενο Βήμα

2on bound no6

4

1

12

1

≤⇒≤

xxx

x

2. Determine which nonbasic variable will become basic:

1. Optimality test

4. Find new solution.

3. Determine which basic variable will become nonbasic. (How much can we increase x1?)

6364

303

541

421

2

31

425

1

=+−=+=+=+−

xxxxx

xxxxZ

Page 17: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

17

Επόμενο Βήμα - συνέχεια

262

36

531

431

1

421

2

531

431

3

5423

=+−=+=−+=++

xxxxx

xxxxxZ

6364

303

541

421

2

31

425

1

=+−=+=+=+−

xxxxx

xxxxZ

Αρχικός Πίνακας Simplex

04

1218

0001

0010

0100

-5022

-3103

1000

Zx3

x4

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

18231224053

521

42

31

21

=++=+=+=−−

xxxxx

xxxxZ

Page 18: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

18

Πίνακας SIMPLEX

12/2=618/2=9

04

1218

0001

0010

0100

-5022

-3103

1000

Zx3

x4

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

601/20100

Zx3

x2

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

30

6

0

0

5/2

1/2

0

0

0

1

-3

0

1

0

Zx3

x2

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

3046

000

5/20

1/2

010

001

-310

100

Zx3

x2

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

30466

0001

5/20

1/2-1

0100

0010

-3103

1000

Zx3

x2

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

Πίνακας SIMPLEX

4/1=4

6/3=2

30466

0001

5/20

1/2-1

0100

0010

-3103

1000

Zx3

x2

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

21/3-1/30010

Zx3

x2

x1

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

36

2

1

1/3

3/2

-1/3

0

0

0

0

0

1

1

0

Zx3

x2

x1

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

36262

1-1/3

01/3

3/21/31/2-1/3

0100

0010

0001

1000

Zx3

x2

x1

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

362

2

1-1/3

1/3

3/21/3

-1/3

01

0

00

0

00

1

10

0

Zx3

x2

x1

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

Page 19: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

19

Tie-breakers –Εισερχόμενες Βασικές Μεταβλητές

04

1218

0001

0010

0100

-3022

-3103

1000

Zx3

x4

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

Tie-breakers –Εξερχόμενες Βασικές Μεταβλητές

12/2=624/4=6

04

1224

0001

0010

0100

-5024

-3103

1000

Zx3

x4

x5

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

Page 20: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

20

Δεν υπάρχουν εξερχόμενεςμεταβλητές – Μη φραγμένο Z

04

01

-50

-31

10

Zx3

x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

No ratio (4/0)! Δεν υπάρχει μεταβλητή που να γίνεται μη βασικήΑυτό συνήθως είναι πρόβλημα στη διατύπωση τουπροβλήματος!

Πολλαπλές Βέλτιστες Λύσεις

18463

10-11/2

0010

013

-3/2

0001

0100

1000

Zx1

x4

x2

x5x4x3x2x1ZRatioRight

sideCoefficients of:Basic

variables

1. Optimal?

2. Optimal solution=

3. More Optimal solutions?

Page 21: ΓραμμικόςΠρογραμματισμός...7 ΓειτονικέςΓωνιακέςΛύσεις (AdjacentCorner-Point Solutions) Εφικτή περιοχή x1 x2 4 x1 = x2 =6

21

Πολλαπλές Βέλτιστες Λύσεις.

x1=4x4=6x2=3

18463

10-11/2

0010

013

-3/2

0001

0100

1000

Zx1

x4

x2

x5x4x3x2x1ZSolutionRight

sideCoefficients of:Basic

variables

Zx1

x3

x2

x5x4x3x2x1ZSolutionRight

sideCoefficients of:Basic

variables

18226

11/3-1/3

0

0-1/31/31/2

0010

0001

0100

1000

Zx1

x3

x2

x5x4x3x2x1ZSolutionRight

sideCoefficients of:Basic

variables

x1=2x3=2x2=6

18226

11/3-1/3

0

0-1/31/31/2

0010

0001

0100

1000

Zx1

x3

x2

x5x4x3x2x1ZSolutionRight

sideCoefficients of:Basic

variables

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡34

2

1

xx

Λύση 1:

Πολλαπλές Βέλτιστες Λύσεις.

Λύση 2: ⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡62

2

1

xx

Άλλες λύσεις: Οποιοσδήποτε κυρτός (convex) συνδυασμός των λύσεων 1 και 2.