Fen ilimleri Enstitüsü Endüstri Mühendisliği Anabilim Dalı ENM53 Doğrusal Programlamada İleri Teknikler SİMPLEKS ALGORİTMASI ESASLARI Hazırlayan: Doç. Dr. Nil ARAS
AÇIKLAMA n n u sununun hazırlanmasında, izleyen kitaptan faydalanılmıştır: n azaraa, M.S., Jarvis, J.J. ve Sherali, H.D., Linear Programming and Network Flows, 3rd Edition, Wiley- Interscience, 25. Rastlayabileceğiniz hataların sorumluluğu tarafıma ait olup, beni haberdar etmenizden memnun olacağımı ifade ederim. Doç. Dr. Nil ARAS 2
Simpleks Algoritmasının Esasları
AX X b k.a. Enb(Enk)z CX N X, X N k. a. X X N b Enb(Enk)z C C N X X N X X k. a., X + N NX N b Enb(Enk)z C X + C N X N 4 Nil Aras, Doğrusal Programlamada İleri Teknikler
X X k. a., X + N NX N b Enb(Enk)z C X + C N X N Z C X C N X N X + NX N b X, X N k. a. Enb(Enk) Z 5 Nil Aras, Doğrusal Programlamada İleri Teknikler
X +NX N b X +NX N b - X + - NX N - b IX + - NX N - b X + - NX N - b X - b - - NX N...() 6 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z C X + C N X N Z C X + C N X N Z C ( - b- - NX N ) + C N X N Z C - b - C - NX N + C N X N Z + C - NX N - C N X N C - b Z + (C - N C N ) X N C - b...(2) 7 Nil Aras, Doğrusal Programlamada İleri Teknikler
() ve (2) den Z C X C X X + NX N N N b Z + (C - N C N ) X N C - b X + - NX N - b.z +.X + (C - N C N ).X N C - b.z + I.X + - N.X N - b X N olduğundan, ZC - b ve X - b 8 Nil Aras, Doğrusal Programlamada İleri Teknikler
.Z +.X + (C - N C N ).X N C - b.z + I.X + - N.X N - b Z X X N STS Z C - N C N C - b Sıfır satırı X I - N - b Kısıt satırları 9 Nil Aras, Doğrusal Programlamada İleri Teknikler
SİMPLEKS TALOSU n Simpleks algoritmasının birinci adımı, başlangıç tablonun oluşturulmasıdır. Z AX X CX k.a. b Enb(Enk) Z b olmalı Z X X N STS Z C - N C N C - b X I - N - b - b olmalıdır
Z + X + (C - N C N ) X N C - b Z + (C - N C N ) X N C - b Z C - b - (C - N C N ) X N Z C b (C a c )x Z C b R (z c )x R: İlgili aşamada temel dışı değişkenlerin bulunduğu küme. R Nil Aras, Doğrusal Programlamada İleri Teknikler
ENİYİLİK SINAMASI Z C b R (z c ) x (z -c ) :. değişkene ait marinal katkı n (z -c ) x nin birim artışı amaç fonksiyonu değerini değiştirmez. n (z -c )> x nin birim artışı amaç fonksiyonu değerini azaltır. n (z -c )< x nin birim artışı amaç fonksiyonu değerini arttırır. 2 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z C b R (z c ) x AMAÇ ENÜYÜKLEMEK İSE: n R için, (z -c ) ENİYİ ÇÖZÜM bulunmuştur. n R için, (z -c ) < Daha iyi bir çözüm vardır. Temele x nin alınmasıyla, amaç fonksiyonu daha büyük bir değer alır. 3 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z C b R (z c ) x AMAÇ ENKÜÇÜKLEMEK İSE: n R için, (z -c ) ENİYİ ÇÖZÜM bulunmuştur. n R için, (z -c ) > Daha iyi bir çözüm vardır. Temele x nin alınmasıyla, amaç fonksiyonu daha küçük bir değer alır. 4 Nil Aras, Doğrusal Programlamada İleri Teknikler
Temele hangi değişken alınır? n Eğer birden fazla x temele alınabilir değişken ise, en fazla katkıyı sağlayacak olan seçilir. n En büyük z -c değerine sahip olan. 5 Nil Aras, Doğrusal Programlamada İleri Teknikler
Temelden çıkacak değişkenin belirlenmesi X - b- - NX N y ( - N). Sütunu olsun X b R y x Z x x r x m x x k STS Z z c z k c k C - b x y y k ( - b) x r y r y rk ( - b) r x m y m y mk ( - b) m 6 Nil Aras, Doğrusal Programlamada İleri Teknikler
X r ( b) r y rk x k. y rk è x r aynı kalır, temelden çıkamaz. X r ( b) r xk ( b) r 2. y rk < è x r artar, temelden çıkamaz. X r ( b) r + y rk x k 7 Nil Aras, Doğrusal Programlamada İleri Teknikler
X r ( b) r y rk x k 3. Y rk > è x r azalır, uygun bir değerle sıfır olarak temelden çıkar. X r ( ( y ( b) rk r b) r b) r y x rk k y x rk k x k 8 Nil Aras, Doğrusal Programlamada İleri Teknikler
En küçük oran testi ( y b) rk r x k n X k temele girecek değişken olsun. ( b) ENK m yik i i : y ik > olan X r temelden çıkar. Eğer y ik ise sınırsız çözüm vardır. 9 Nil Aras, Doğrusal Programlamada İleri Teknikler
İzleyen ardıştırmada amaç fonksiyonunun değeri (Z?) Z : Herhangi bir ardıştırmadaki amaç fonksiyonu değeri olsun. (Z C - b) Z CX Z C X + C N X N Z C ( - b- - NX N )+ C N X N Z C ( - b- Σ - a x )+ Σc x Z C - b- Σ C - a x + Σc x Z Z - Σ z x + Σc x Z Z - Σ (z -c )x 2 Nil Aras, Doğrusal Programlamada İleri Teknikler
Tek noktada eniyi çözüm Z Z - Σ (z -c c )x n Amaç enküçükleme ise: n Temel dışı her değişken için (z c )< n Amaç enbüyükleme ise: n Temel dışı her değişken için (z c )> ise tek noktada eniyi çözüm vardır. 2 Nil Aras, Doğrusal Programlamada İleri Teknikler
Alternatif noktada eniyi çözüm Z Z - Σ (z - c )x n Amaç enküçükleme ise: n Temel dışı her değişken için (z c ) n En az bir temel dışı değişken x k Için (z k c k ) n Amaç enbüyükleme ise: n Temel dışı her değişken için (z c ) n En az bir temel dışı değişken x k Için (z k c k ) ise birden fazla noktada eniyi çözüm vardır. Nil Aras, Doğrusal Programlamada İleri Teknikler 22
Varsayalım ki, X k temele girecek değişken ve r. satırdaki x r değişkeni temelden çıkacak değişken olsun. Z x x r x m x x k STS Z z c z k c k C - b x y y k ( - b) x r y r y rk ( - b) r x m y m y mk ( - b) m Xr + yrkxk ( b) r X ( b) y x r r rk k Nil Aras, Doğrusal Programlamada İleri Teknikler 23
Sınırsız değerde çözüm n Amaç enküçükleme ise: n ir temel dışı değişken x k için, (z k c k )> n Fakat y k n Amaç enbüyükleme ise: n ir temel dışı değişken x k için, (z k c k )< n Fakat y k olduğunda sınırsız büyüklükte/küçüklükte çözüm vardır. 24
Simpleks Tablosu Analizi Z X X N STS Z C - N C N C - b X I - N - b
Z C b (z c ) x R Z x (z c ) c z x deki birim değişimin Z de meydana getireceği değişim (artış/azalış) Z ( z c ) > < x x yi birim arttırmak Z yi azaltır. Z ( z c ) < > x yi birim arttırmak Z yi arttırır. x Nil Aras, Doğrusal Programlamada İleri Teknikler 26
27 z c ) c (z x Z < > x Z ) c (z x yi arttırabiliriz. > < x Z ) c (z AMAÇ ENKÜÇÜKLEMEK ve AMAÇ ENÜYÜKLEMEK ve x yi arttırabiliriz. Nil Aras, Doğrusal Programlamada İleri Teknikler
Z C b (z c ) x R Z b C Kaynaklar vektörü b deki birim artışın Z de yapacağı farklılaşma Z b (C ) in. elemanı b deki birim artışın Z de yapacağı farklılaşma 28 Nil Aras, Doğrusal Programlamada İleri Teknikler
X - b- - NX N X b y x R Eğer x yi birim arttırırsak, temel değişkenlerin değişim oranını verir. X x y Temel dışı değişkendeki birimlik değişimin temel değişken üzerindeki etkisi 29 Nil Aras, Doğrusal Programlamada İleri Teknikler
X x y X i x y i Eğer x yi birim arttırırsak, i. temel değişkenin değişim oranını verir. y i â x nin birim arttırılması yani temele girmesiyle, X artar. (SINIRSIZ ÇÖZÜM) y i > â x nin birim arttırılması yani temele girmesiyle, X azalır. En az bir temel değişken sıfır değeri alarak, temel dışı olur. 3 Nil Aras, Doğrusal Programlamada İleri Teknikler
X - b- - NX N X b y x R X b Kaynak vektöründeki birim artışın, temel değişken vektöründe yaratacağı farklılaşma X i ( ). kaynak vektöründeki birim b i artışın, i. temel değişkende yaratacağı farklılaşma 3 Nil Aras, Doğrusal Programlamada İleri Teknikler
ÖRNEK x + x 2 + 2x 3 9 x + x 2 - x 3 2 -x + x 2 + 2x 3 4 x,x 2,x 3 k.a. Enk Z x + x 2-4x 3 x + x 2 + 2x 3 + x 4 9 x + x 2 - x 3 + x 5 2 -x + x 2 + 2x 3 + x 6 4 x,x 2,x 3,x 4,x 5,x 6 k.a. Enk Z x + x 2-4x 3 32 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 Z + 3x - 5x 2 + x 3 + x 4 + x 5-4x 6-6 + 3x - x 2 + x 3 + x 4 + x 5-2x 6 + x +2x 2 + x 3 + x 4 + x 5 +x 6 6 - x +x 2 + x 3 + x 4 + x 5 +x 6 4 33 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 Z + 3x - 5x 2 + x 3 + x 4 + x 5-4x 6-6 + 3x - x 2 + x 3 + x 4 + x 5-2x 6 + x +2x 2 + x 3 + x 4 + x 5 +x 6 6 - x +x 2 + x 3 + x 4 + x 5 +x 6 4 Z -6-3x + 5x 2 + 4x 6 x 4-3x + x 2 + 2x 6 x 5 6-2x 2 - x 6 x 3 4 + x - x 2 - x 6 34 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z -6-3x + 5x 2 + 4x 6 Z x (z c ) Z x (z c ) 3 Z x 2 (z 2 c 2 ) 5 Z x 6 (z 6 c 6 ) 4 Temel değişkenler : x 4, x 5, x 3 Temel dışı değişkenler : x, x 2, x 6 x deki birim artış, Z de 3 birim azalmaya sebep olur. x 2 deki birim artış, Z de 5 birim artışa sebep olur. x 6 daki birim artış, Z de 4 birim artışa sebep olur. 35 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 X x y x 4-3x + x 2 + 2x 6 x 5 6-2x 2 - x 6 x 3 4 + x - x 2 - x 6 x deki birim artış, X x 3 3 x 4 de 3 birim azalmaya, x 3 de birim artışa sebep olur. x 5 de bir değişim olmaz, aynı kalır. 36 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 X x y x 4-3x + x 2 + 2x 6 x 5 6-2x 2 - x 6 x 3 4 + x - x 2 - x 6 x 2 deki birim artış, X x 2 2 2 x 4 de birim artışa x 5 de 2 birim azalmaya, x 3 de birim azalmaya sebep olur. 37 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 X x y x 4-3x + x 2 + 2x 6 x 5 6-2x 2 - x 6 x 3 4 + x - x 2 - x 6 x 6 daki birim artış, X x 6 2 2 x 4 de 2 birim artışa, x 5 de birim azalmaya, x 3 de birim azalmaya sebep olur. 38 Nil Aras, Doğrusal Programlamada İleri Teknikler
X i x y i Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 X x y x 4 x 3 X 3 x 6 y 36 x 3 x 6 39 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z b C Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 C c 4 c 5 c 3 4 2 ' ' ' C 4 2 ' ' ' 4 4 Nil Aras, Doğrusal Programlamada İleri Teknikler
- tablodan nasıl bulunur? n aşlangıç temel uygun çözümdeki, temel değişkenlere simpleks tablosunda karşı gelen sütunlar, - i verir. n Örnekte, başlangıç temel uygun çözümde x 4, x 5 ve x 6 temel değişkenlerdir. n Herhangi bir ardıştırmada bu değişkenlerin simpleks tablosunda karşı gelen sütunları - i verecektir. 4 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z C b [ 4] Z b Z b 2 Z b 3 4 b deki birim artışın Z de yapacağı farklılaşma 42 Nil Aras, Doğrusal Programlamada İleri Teknikler
X b Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 X b 2 43 Nil Aras, Doğrusal Programlamada İleri Teknikler
44 22 2 5 2 2 ) ( b x b X 2 b X 2 3 3 4 3 ) ( b x b X Nil Aras, Doğrusal Programlamada İleri Teknikler
45 Temel dışı değişkenlere ait sütun vektörleri (a ), temel sütunların doğrusal bileşimi olarak yazılabilir. n Temel değişkenler : x 4, x 5, x 3 n Temel sütunlar : a a a 2 3 5 4 2 A x + x 2 + 2x 3 + x 4 9 x + x 2 - x 3 + x 5 2 -x + x 2 + 2x 3 + x 6 4 x, x 2, x 3, x 4, x 5, x 6 k.a. Enk Z x + x 2-4x 3 Nil Aras, Doğrusal Programlamada İleri Teknikler
46 a 2 λ a 4 + λ 2 a 5 + λ 3 a 3 λ,λ 2,λ 3 R a 2 λ ' ( ( ( + λ 2 ' ( ( ( + λ 3 2 ' ( ( ( (-) ' ( ( ( + (2) ' ( ( ( + () 2 ' ( ( ( Z x x 2 x 3 x 4 x 5 x 6 STS Z 3-5 -4-6 x 4 3 - -2 x 5 2 6 x 3-4 y 2 2 Nil Aras, Doğrusal Programlamada İleri Teknikler
ÖRNEK (Sınırsız çözüm) x - 2x 2 + x 3 4 -x +4x 2-2x 3 8 x, x 2, x 3 k.a. EnbZ 2x +2x 2 +3x 3 x - 2x 2 + x 3 + S 4 -x +4x 2-2x 3 + S 2 8 x, x 2, x 3, S, S 2 k.a. Enb Z 2x +2x 2 +3x 3 47 Nil Aras, Doğrusal Programlamada İleri Teknikler
aşlangıç tablo Z x x 2 x 3 S S 2 STS Z -2-2 -3 S -2 4 S 2-4 -2 8 48 Nil Aras, Doğrusal Programlamada İleri Teknikler
irinci ardıştırma Z x x 2 x 3 S S 2 STS Z -8 3 2 x 3-2 4 S 2 2 6 49 Nil Aras, Doğrusal Programlamada İleri Teknikler
irinci ardıştırma Z x x 2 x 3 S S 2 STS Z -8 3 2 x 3-2 4 S 2 2 6 y 2 2 ' ' X x 2 y 2 2 ( ' 2 ( ' 5 Nil Aras, Doğrusal Programlamada İleri Teknikler
Z x x 2 x 3 S S 2 STS Z -8 3 2 x 3-2 4 S 2 2 6 x -2x 2 +x 3 +S +S 2 4.-2x 2 +x 3 +.+4-2x 2 +x 3 4 è x 3 4+2x 2 x +x 2 +x 3 +2S +S 2 6.+++2.+S 2 6 S 2 6 è S 2 6 Nil Aras, Doğrusal Programlamada İleri Teknikler 5
X x y d y ek n X Є UÇA (sınırsız küme) è X*X+λd n λ n X: ışının uç noktası n d:ışının uç yönü n Temele girecek değişken: x n e k : k. elemanı, diğerleri olan (n-m) boyutlu birim sütun vektörü (temele girmeye çalışan k. değişkenin indisi) 52 Nil Aras, Doğrusal Programlamada İleri Teknikler
d y e k ' ' Z x x 2 x 3 S S 2 STS Z -8 3 2 x 3-2 4 S 2 2 6 d y 2 d d 2 d 3 d 4 d 5 2 ' 2 x 3 S 2 e 2 x x 2 S Temele girecek x 2 yi birim arttırdığımızda, x 3 2 birim artar. x, S, S 2 değişmez, aynı kalır. 53 Nil Aras, Doğrusal Programlamada İleri Teknikler
54 X* x x 2 x 3 S S 2 X + λd 4 6 + λ 2 λ 4 + 2λ 6 Z2x +2x 2 +3x 3 Z2.+2.λ+3.(4+2λ) Z8λ+2 Nil Aras, Doğrusal Programlamada İleri Teknikler
55 λ + λ 6 2 4 2 3 2 S S x x x * X Z2 Z8λ+2 28λ+2 λ 6 6 2 3 2 S S x x x X* u çözüm kısıtları sağlayan bir uygun çözümdür. Fakat temel uygun çözüm değildir ÖRNEK: Z2 olan bir çözüm arayalım. Nil Aras, Doğrusal Programlamada İleri Teknikler
Hatırlatma n n Enk Z için, Cd< sınırsız çözüm Enb Z için, Cd> sınırsız çözüm n Örnekte, Cd 2 [ 2 2 3 ] 8 > 56 Nil Aras, Doğrusal Programlamada İleri Teknikler