Fen Bilimleri Enstitüsü Endüstri Mühendisliği Anabilim Dalı ENM503 Doğrusal Programlamada İleri Teknikler ÇOK YÜZLÜ DIŞBÜKEY KÜMELER Hazırlayan: Doç. Dr. Nil ARAS AÇIKLAMA Bu sununun hazırlanmasında, izleyen kitaptan faydalanılmıştır: Bazaraa, M.S., Jarvis, J.J. ve Sherali, H.D., “Linear Programming and Network Flows”, 3rd Edition, Wiley-Interscience, 2005. Rastlayabileceğiniz hataların sorumluluğu tarafıma ait olup, beni haberdar etmenizden memnun olacağımı ifade ederim. Doç. Dr. Nil ARAS ENM503 Doğrusal Programlamada İleri Teknikler 2 DIŞBÜKEY KÜME (convex set) Rn’de tanımlı olan bir S kümesinin farklı her iki noktasının dışbükey bileşimiyle bulunan nokta (farklı her iki noktayı birleştiren doğru parçası) S kümesinin bir öğesi ise, S’ye dışbükey küme denir. ∀ Xi, Xj ∈ S, 0 ≤ λ ≤1 iken, X0 = λXi + (1- λ)Xj, X1 • X2 • • ∀ i ≠j için X0 ∈ S X1 • X1 X2 • dışbükey X2 içbükey • dışbükey ENM503 Doğrusal Programlamada İleri Teknikler 3 UÇ NOKTA (extreme point) Dışbükey bir S kümesinde yer alan bir X noktası, kümede tanımlı farklı iki noktanın kesin dışbükey bileşimi olarak yazılamıyorsa bu noktaya “uç nokta” denir. X bir uç nokta ise, X1, X2 ∈S ve λ∈ (0,1) için, X=λ X1 +(1-λ) X2 eşitliği ancak X= X1=X2 olması ile gerçekleşir. ENM503 Doğrusal Programlamada İleri Teknikler E A • • X1 • • F B • X2 • • • D C A, B, C, D, E uç nokta F iç nokta 4 HİPERDÜZLEM VE YARI UZAY (Hyperplanes and Halfspaces) P, Rn’de tanımlı ve sıfır olmayan bir vektör; k skaler bir sayı olmak üzere; H={X: PX=k} olarak gösterilen küme, Rn’de H hiperdüzlemi olarak adlandırılır. P’ye genellikle, hiperdüzlemin normali veya gradyantı denir. R2’de bir doğru, R3’de bir düzlem hiperdüzlemdir. ENM503 Doğrusal Programlamada İleri Teknikler 5 Yarı uzay Yarı uzay P yönü Yarı uzay H: hiperdüzlem Bir hiperdüzlem Rn’i iki kısma ayırır ve bu kısımların herbirine “yarı uzaylar” denir. H={X: PX=k} hiperdüzlemi {X: PX≤k} yarı uzayı {X: PX≥k} yarı uzayı İki yarı uzayın birleşimi Rn’i verir. ENM503 Doğrusal Programlamada İleri Teknikler 6 Doğrusal programlamada her kısıt uzayı ikiye böler. Kısıtlar hiperdüzlemlere karşı gelir. Kısıtların ayırdığı bölgeler yarı uzaylardır. Uygun çözüm alanı, hiperdüzlemlerin kesişiminden oluşan yarı uzaydır. ENM503 Doğrusal Programlamada İleri Teknikler 7 ÖRNEK : 5X1 + 3X2 = 15 {5X1+3X2≥15} ! X1 # !" 5 3 #$ % & = 15 %" X2 &$ P.X = k H: 5X1+3X2=15 P (kısıtın normali) {5X1+3X2≤15} ENM503 Doğrusal Programlamada İleri Teknikler 8 IŞIN VE YÖN (rays and directions) X0 bir vektör ve d≠0 olan bir vektör olmak üzere {X0+λd: λ≥0} kümesini oluşturan noktalara “ışın” denir. X0 vektörü “ışının ucu (köşesi)” ve d vektörü “ışının yönü” olarak adlandırılır. ENM503 Doğrusal Programlamada İleri Teknikler 9 DIŞBÜKEY BİR KÜMENİN YÖNLERİ Rn’de tanımlı bir S dışbükey kümesi verilsin. Eğer S kümesinde yer alan her X0 için, {X0+λd: λ≥0, d≠0} ışını da aynı kümenin içerisinde kalıyorsa, d vektörü “kümenin bir yönü” olarak adlandırılır. Bir başka deyişle,dışbükey kümenin içinde yer alan herhangi bir X0 noktasından başlayarak, d vektörü yönünde bir λ (λ≥0 ) adımıyla ilerlediğimizde, yine aynı kümenin içerisinde kalırız. Dışbükey küme sınırlı (kapalı) ise, yönden sözedemeyiz. ENM503 Doğrusal Programlamada İleri Teknikler 10 S kümesi, Rn’de tanımlı boş olmayan dışbükey bir küme olsun. S={X⎜Ax≤b, X ≥ 0} Sıfır olmayan bir d vektörü, ancak ve ancak A(X+ λd) ≤b ve (X+λd) ≥ 0 kısıtları, ∀ X ∈S ve ∀ λ≥ 0 için sağlanıyorsa, S kümesinin bir yönüdür. ENM503 Doğrusal Programlamada İleri Teknikler 11 Yönler kümesi, dışbükey bir küme oluşturur. S kümesi X3 • S’nin yönleri X2 • X0 • • X1 ENM503 Doğrusal Programlamada İleri Teknikler 12 DIŞBÜKEY BİR KÜMENİN UÇ YÖNLERİ (extreme directions) Açık (sınırsız) dışbükey bir S kümesinde tanımlı bir yön, yönler kümesinde tanımlı farklı iki yönün pozitif bileşimi olarak yazılamıyorsa bu yöne “uç yön” denir. Kümenin diğer yönleri, uç yönlerin pozitif bileşimleri (doğrusal bileşimi) ile elde edilebilir. Her uç yön mutlaka bir uç noktadan başlar. Dışbükey bir kümedeki bir ışının yönü “uç yön” ise, bu ışına “uç ışın” (extreme ray) denir. ENM503 Doğrusal Programlamada İleri Teknikler 13 yön ç U Yönler kümesi Uç yön S kümesi X3 • S’nin yönleri X2 • X0 Uç ışın • • X1 ENM503 Doğrusal Programlamada İleri Teknikler 14 DIŞBÜKEY KONİ orjin Dışbükey koniler, dışbükey kümelerin önemli bir sınıfını oluşturur. Eğer her bir dışbükey C kümesinin elemanı olan her X vektörü için, λ≥0 olmak üzere λX ∈C oluyorsa, C kümesine “dışbükey koni” denir. λX, bir ışını tarif eder. Dışbükey bir koni, orjinden başlayan ışınların oluşturduğu dışbükey bir kümedir. ENM503 Doğrusal Programlamada İleri Teknikler 15 Dışbükey koniler, uç yönlerle tanımlanabilir. R3’te tanımlı dışbükey koni orjin Açık bir dışbükey kümenin sınırlarındaki vektörler, uç yönleri verir. Dışbükey kümeler ucu açık kümeler olduğundan, bunların uç yönlerle tariflenmesi mümkündür. Uç yönlerin negatif olmayan bileşimleri dışbükey koniyi oluşturur. ENM503 Doğrusal Programlamada İleri Teknikler 16 ÇOK YÜZLÜ KÜMELERİN GÖSTERİMİ Çok yüzlü bir küme, uç noktalarının dışbükey bileşimi ile eğer varsa uç yönlerinin negatif olmayan doğrusal bileşiminin toplamı olarak ifade edilebilir. ENM503 Doğrusal Programlamada İleri Teknikler 17 1. Sınırlı büyüklükte çok yüzlü kümeler (Polytopes) Eğer kümedeki her X noktası için, ||X||≤k olacak şekilde bir k sayısı varsa, küme sınırlıdır. Örnek: 5 yarı uzayın kesişimi olan sınırlı kümeler ENM503 Doğrusal Programlamada İleri Teknikler 18 5 uç nokta: X1, X2, X3, X4, X5 X4 X3 •X X2 X5 X1 Kümedeki her nokta, 5 uç noktanın dışbükey bileşimi olarak gösterilebilir. ENM503 Doğrusal Programlamada İleri Teknikler 19 •X X4 X = λY + (1- λ)X4 ; λ ∈(0,1) X3 •X X5 Y = µX1+(1- µ)X2 ; µ ∈(0,1) X=λ[µX1+(1-µ)X2]+(1- λ)X4 X=λµX1 + λ(1-µ)X2 + (1- λ)X4 X= λ1X1 + λ2X2 + λ3X4 ✔ X2 Y X1 (λ1=λµ , λ2= λ(1-µ), λ3=(1- λ) olsun) λ1, λ2, λ3 ∈(0,1) ve λ1+ λ2 + λ3= 1 ENM503 Doğrusal Programlamada İleri Teknikler 20 2. Sınırsız büyüklükte çok yüzlü kümeler (Unbounded polyhedral sets) X3 • X2 • X • • X1 ENM503 Doğrusal Programlamada İleri Teknikler 21 X3 • •X X = Y + µd2 ; µ >0 X2 • • X1 Y = λX1 +(1-λ)X3 ; λ∈(0,1) X= λX1 +(1-λ)X3 + µd2 λ∈(0,1), µ >0 X3 • X2 • • • d2 X Y • X1 d1 ENM503 Doğrusal Programlamada İleri Teknikler 22 Teorem S kümesi, uygun çözüm alanı boş olmayan çok yüzlü bir küme olsun. S={X: AX≤b, X≥0} X1, X2, …, Xk kümenin uç noktaları; d1, d2, …, dl kümenin uç yönleri olarak tanımlansın. Bir X noktasının; X1, X2, …, Xk uç noktalarının dışbükey bileşimi ile d1, d2, …, dl uç yönlerinin negatif olmayan doğrusal bileşiminin toplamı olarak yazılabilmesi ANCAK VE ANCAK X∈S olması ile mümkündür. ENM503 Doğrusal Programlamada İleri Teknikler 23 X1, X2, …, Xk kümenin uç noktaları d1, d2, …, dl kümenin uç yönleri k l j =1 i =1 X = " ! j X j + " µ i di k "! j =1 jj =1 ! j # 0, j=1,2, ..., k µi # 0, i=1,2, ..., l ENM503 Doğrusal Programlamada İleri Teknikler 24 ÖRNEK: X noktasını UÇAʼnın uç nokta ve uç yönlerinin bileşimi olarak gösterin. [4,6] • [2,4] • X [4,3] • • [4/3,2] ENM503 Doğrusal Programlamada İleri Teknikler 25 X = Y + µd1 ; µ >0 Y = λX1 +(1-λ)X3 ; λ∈(0,1) X1=[4,6] • X= λX1 +(1-λ)X3 + µd1 λ∈(0,1), µ >0 X2=[2,4] • • Y • X3=[4/3,2] d2 [2/3, 1/3] d1[1,0] X [4,3] • !4 $ !4 $ ! 4 / 3$ !1 $ # 3 & = ' # 6 & + (1 ( ' ) # 2 & + µ # 0 & " % " % " % " % 4 ) 4 = 4 ' + (1 ( ' ) + µ + 1 ' = ,µ = 2 3 * 4 +, 3 = 6 ' + 2(1 ( ' ) 1 3 X = X1 + X 3 + 2d1 4 4 ENM503 Doğrusal Programlamada İleri Teknikler 26 k j =1 AX = b X!0 k.a. ENKZ = CX l j =1 i =1 X = " ! j X j + " µ i di Uç noktalar ve Eniyilik "! k j =1 ! j # 0, j=1,2,...,k µi # 0, i=1,2,..., l k.a. k l j =1 i =1 ENKZ = " (CX j )! j + " (Cdi )µi ENM503 Doğrusal Programlamada İleri Teknikler 27 k l j =1 i =1 ENKZ = " (CX j )! j + " (Cdi )µi ENKÜÇÜKLEME amaçlıda µi≥0 olduğundan, her i için cdi≥0 ise, z sonlu bir değere sahip olur. (karşı gelen µi=0 olarak seçilebildiğinden) bazı i’ler için cdi<0 ise, z −∞ ENM503 Doğrusal Programlamada İleri Teknikler 28 k l j =1 i =1 ENBZ = " (CX j )! j + " (Cdi )µi ENBÜYÜKLEME amaçlıda µi≥0 olduğundan, her i için cdi≤0 ise, z sonlu bir değere sahip olur. (karşı gelen µi=0 olarak seçilebildiğinden) bazı i’ler için cdi>0 ise, z +∞ ENM503 Doğrusal Programlamada İleri Teknikler 29 Özetle, ENKÜÇÜKLEME’de, Cd <0 sınırsız küçüklükte çözüm vardır. ENBÜYÜKLEME’de, Cd >0 sınırsız büyüklükte çözüm vardır. ENM503 Doğrusal Programlamada İleri Teknikler 30 !x1 + x2 " 2 ÖRNEK 3.1. (83. sh) !x1 + 2x2 " 6 x1 , x2 # 0 3 uç nokta 2 uç yön X3=[2,4] X2=[0,2] X1=[0,0] d2=[2,1] d1=[1,0] ENM503 Doğrusal Programlamada İleri Teknikler 31 Amaç : Enk z= x1-3x2 olsun. "0 % CX1 = [1, !3] $ ' = 0 #0 & "1 % Cd1 = [1, !3] $ ' = 1 #0 & "0 % CX2 = [1, !3] $ ' = !6 #2 & "2 % Cd2 = [1, !3] $ ' = !1 #1 & "2 % CX 3 = [1, !3] $ ' = !10 #4 & !1 + !2 + !3 = 1 !1 , !2 , !3 , µ1 , µ2 " 0 k.a. ENKZ = 0 !1 + (#6)!2 + (#10)!3 + 1µ1 + (#1)µ2 ENM503 Doğrusal Programlamada İleri Teknikler 32 ENKZ = 0 !1 + ("6)!2 + ("10)! + 1µ1 + ("1)µ2 Cd2<0 ve µ2∞ olduğundan, amaç fonksiyonu değeri sınırsız küçüklükte değer alabilir. ENM503 Doğrusal Programlamada İleri Teknikler 33 Amaç : Enk z= 4x1-x2 olsun. "0 % CX1 = [4, !1] $ ' = 0 #0 & "1 % Cd1 = [4, !1] $ ' = 4 #0 & "0 % CX2 = [4, !1] $ ' = !2 #2 & "2 % Cd2 = [4, !1] $ ' = 7 #1 & "2 % CX 3 = [4, !1] $ ' = 4 #4 & !1 + !2 + !3 = 1 !1 , !2 , !3 , µ1 , µ2 " 0 k.a. ENKZ = 0 !1 + (#2)!2 + 4 !3 + 4 µ1 + 7 µ2 ENM503 Doğrusal Programlamada İleri Teknikler 34 ENKZ = 0 !1 + ("2)!2 + 4 !3 + 4 µ1 + 7 µ2 Amaç fonksiyonu sonlu bir değere sahiptir. Enküçük değer arandığından, µ1=µ2=0 olur. λ1=λ3=0 ve λ2=1 olduğunda enküçük değer (-2) olarak elde edilecektir. (X2 noktası) ENM503 Doğrusal Programlamada İleri Teknikler 35 TEMEL UYGUN ÇÖZÜMLER (TUÇ) AX = b X!0 k.a. Enb(Enk)z = CX Rank (A,b)=Rank(A)=m<n (n-m) adet değişkene bağlı olarak, parametrik -sonsuz sayıda -çözüm vardır. m adet değişkenin değeri (n-m) adet değişkene bağlı olarak bulunabilir. ENM503 Doğrusal Programlamada İleri Teknikler 36 B N AX = b X!0 k.a. Enb(Enk)z = CX : [mxm] boyutunda tersi alınabilir bir matris / Temel matris / Temel (B matrisinin sütunları doğrusal bağımsız olup, her bir sütunu bir vektör olarak düşünürsek, m boyutlu uzayda bir taban (temel) oluştururlar) : [mx(n-m)] boyutunda bir matris / Temel dışı matris A = !" B N #$ ENM503 Doğrusal Programlamada İleri Teknikler 37 XB : Temel değişkenler vektörü / AX = b X!0 k.a. Enb(Enk)z = CX Temel oluşturan vektörlere ait değişkenler / Bağımlı değişkenler ( m boyutlu sütun vektörü) XN : Temel dışı değişkenler vektörü / Temel oluşturmayan vektörlere ait değişkenler / Bağımsız değişkenler ( (n-m) boyutlu sütun vektörü) ENM503 Doğrusal Programlamada İleri Teknikler ! XB X=# #" X N $ & &% 38 !1 XB = B b XB=B-1b ve XN=0 olarak tanımlanan X çözümüne, AX=b doğrusal denklem sisteminin bir TEMEL ÇÖZÜMÜ denir. Eğer XB≥0 → X, sistemin bir TEMEL UYGUN ÇÖZÜMÜ olarak adlandırılır. Eğer XB>0 → X, sistemin dejenere olmamış (bozulmamış) bir temel uygun çözümüdür. Eğer XB vektörünün en az bir öğesi=0 → X, sistemin dejenere olmuş bir temel uygun çözümüdür. Temel Uygun Çözüm Uç nokta ENM503 Doğrusal Programlamada İleri Teknikler 39 AX = b !" B A = !" B N #$ ! XB X=% %" X N # & &$ ! XB # &=b N #$ % %" X N &$ BX B + NX N = b BX B + N.0 = b BX B = b '1 '1 B BX B = B b '1 IX B = B b '1 XB = B b ENM503 Doğrusal Programlamada İleri Teknikler 40 ÖRNEK 3.2. (temel uygun çözüm) x1 + x2 ! 6 x2 ! 3 x1 , x2 " 0 x1 + x2 + x3 = 6 x2 + x 4 = 3 x1 , x2 , x3 , x4 ! 0 m=2, n=4 m=2 değişken temelde, (n-m)=2 değişken temel dışında ENM503 Doğrusal Programlamada İleri Teknikler 41 x1 + x2 + x3 = 6 x2 + x 4 = 3 x1 , x2 , x3 , x4 ! 0 Temel çözüm sayısı ≤ ! 1 1 1 0 $ A=# & = !" a1 a2 " 0 1 0 1 % a3 !n $ #" m &% a4 $ % Temel uygun çözüm sayısı (XB≥0) ≤ Temel çözüm sayısı Örnek için temel çözüm sayısı ≤ 6 Temel uygun çözüm sayısı ≤ 6 ENM503 Doğrusal Programlamada İleri Teknikler 42 ! 1 1 1 0 $ A=# & = !" a1 a2 " 0 1 0 1 % 1. B=[a1, a2] 2. B=[a1, a3] a3 a4 $ % Sütunlar doğrusal bağımlı olduğundan bir temel çözüm olamaz. 3. B=[a1, a4] 4. B=[a2, a3] 5. B=[a2, a4] 6. B=[a3, a4] ENM503 Doğrusal Programlamada İleri Teknikler 43 1. ! 1 1 # a2 # = % & $ 0 1 " $ B = ! a1 " ! x1 # & XB = % %" x2 &$ ! x3 # & XN = % %" x4 &$ X B = B !1b " # 1 !1 & # 6 & # 3 & XB = % (% (=% ( $ 0 1 '$ 3 ' $ 3 ' # % X1 = % % % $ 3 3 0 0 & ( ( ( ( ' # 0 & XN = % ( $ 0 ' X1 ) 0 " X1 bir TUÇ ENM503 Doğrusal Programlamada İleri Teknikler 44 2. B = ! a1 a4 " ! 1 0 # #=% & $ 0 1 " $ ! x1 # & XB = % %" x4 &$ ! x2 # & XN = % %" x3 &$ X B = B !1b " # 1 0 &# 6 & # 6 & XB = % (% (=% ( $ 0 1 '$ 3 ' $ 3 ' # % X2 = % % % $ 6 0 0 3 & ( ( ( ( ' # 0 & XN = % ( $ 0 ' X2 ) 0 " X2 bir TUÇ ENM503 Doğrusal Programlamada İleri Teknikler 45 3. B = ! a2 " ! 1 1 # a3 # = % & $ 1 0 " $ ! x2 # & XB = % %" x3 &$ ! x1 # & XN = % %" x4 &$ X B = B !1b " # 1 1 &# 6 & # 3 & XB = % (% (=% ( $ 0 !1 ' $ 3 ' $ 3 ' # % X3 = % % % $ 0 3 3 0 & ( ( ( ( ' # 0 & XN = % ( $ 0 ' X 3 ) 0 " X 3 bir TUÇ ENM503 Doğrusal Programlamada İleri Teknikler 46 4. B = ! a2 " a4 ! 1 0 # #=% & $ 1 1 " $ ! x2 XB = % %" x4 # & &$ ! x1 # & XN = % %" x3 &$ X B = B !1b " # 1 0 &# 6 & # 6 & XB = % (% (=% ( !1 1 3 !3 $ '$ ' $ ' # % X4 = % % % $ 0 6 0 !3 & ( ( ( ( ' # 0 & XN = % ( 0 $ ' X 44 < 0 X 4 bir temel çözüm fakat TUÇ degil. ENM503 Doğrusal Programlamada İleri Teknikler 47 5. B = ! a3 " a4 ! 1 0 # #=% & $ 0 1 " $ ! x3 # & XB = % %" x4 &$ ! x1 # & XN = % %" x2 &$ X B = B !1b " # 1 0 &# 6 & # 6 & XB = % (% (=% ( $ 0 1 '$ 3 ' $ 3 ' # % X5 = % % % $ 0 0 6 3 & ( ( ( ( ' # 0 & XN = % ( $ 0 ' X5 ) 0 " X5 bir TUÇ ENM503 Doğrusal Programlamada İleri Teknikler 48 ! # X1 = # # # " ! 0 $ X3 = # & 3 " % 3 3 0 0 $ & & & & % ! # X2 = # # # " 6 0 0 3 ! 0 $ $ ! 0 $ # & & # & 0 3 & & X3 = # & X5 = # # 6 & & # 3 & # 3 & & # 0 & " % % " % ! 3 $ X1 = # & " 3 % ! 0 $ X5 = # & 0 " % ENM503 Doğrusal Programlamada İleri Teknikler !6 $ X2 = # & "0 % 49 ÖRNEK 3.3. (Dejenere olmuş TUÇ) x1 + x2 ! 6 x2 ! 3 x1 + 2x2 ! 9 x1 , x2 " 0 x1 + x2 + x3 =6 x2 + x4 =3 x1 + 2x2 + x5 = 9 x1 , x2 , x3 , x4 , x5 ! 0 m=3, n=7 m=3 değişken temelde, (n-m)=4 değişken temel dışında ENM503 Doğrusal Programlamada İleri Teknikler 50 ! x1 $ ! 1 1 1 $ '1 ! 6 $ ! $ 3 # & # & # & X B = # x2 & = # 0 1 0 & # 3 & = # 3 & # & # x & #" 1 2 0 &% #" 9 &% # 0 & " % " 3 % ! 0 $ # & 3 " % ! 0 $ # & 0 " % 5 kısıt var fakat 5 uç nokta yok. 3. Kısıt gereksiz olduğundan, 4 uç nokta oluşmuş. Dejenere çözümün ortaya çıkmasında gereksiz kısıt bir etkendir ama her zaman sebep bu olmayabilir. ! 3 $ # & 3 " % !6 $ #0 & " % ENM503 Doğrusal Programlamada İleri Teknikler 51