Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Doğrusal Programlama

23,907 views

Published on

Matematiksel Programlama Dersi için Doğrusal Programlama (LP)

Published in: Education

Doğrusal Programlama

  1. 1. Hazırlayanlar: Hasan Hüseyin SUBAŞI Barış ÖZKAYA Matematiksel Programlama - 2013
  2. 2. Sunum Planı Doğrusal Programlama Nedir? Tanımlar Giapetto’s Woodcarving Problemi Grafiksel Çözüm Diyet Problemi Posta Ofisi Problemi Karıştırma Problemi 2 MATEMATİKSEL PROGRAMLAMA
  3. 3. Doğrusal Programlama  Doğrusal programlama, kaynakların optimal dağılımını elde etmeye, maliyetleri minimize, karı ise maksimize etmeye yarayan bir tekniktir.  Kısaca DP; en iyi çıktıyı (maksimum kar veya en düşük maliyet) geliştirmeye yarayan matematiksel metottur. 3 MATEMATİKSEL PROGRAMLAMA
  4. 4. Çözüm Araçları • LINDO, • LINGO, • Excel Solver 4 MATEMATİKSEL PROGRAMLAMA
  5. 5. Doğrusal Programlama Doğrusal Programlamada aşağıdaki 3 bulunur: parça – Amaç Fonksiyonu (Objective Function): Karar değişkenlerinin maksimize veya minimize edilmesi – Kısıtlar (Constraints): Her biri doğrusal eşitlik ve doğrusal eşitsizlik olan değerleri kısıtlayan – İşaret Kısıtı (Sign Restriction): Her karar değişken (Xj) için • Xj >> 0 • Xj pozitif, 0 veya negatif (xj : unrestricted in sign –urs–) 5 MATEMATİKSEL PROGRAMLAMA
  6. 6. Doğrusal Programlama Modeli (1) X1, X2, X3, ………, Xn = karar değişkenler Z = Amaç fonksiyon veya doğrusal fonksiyon Gereksinim: Z değerinin maksimizasyonu Z = c1X1 + c2X2 + c3X3 + …+ cnXn ... Denklem (1) ... Denklem (2) 6 MATEMATİKSEL PROGRAMLAMA
  7. 7. Doğrusal Programlama Modeli (2) Doğrusal Programlama modeli daha verimli şekilde aşağıdaki gibi de yazılabilir: ... Denklem (3) Karar değişkenleri olan X1, X2, …, Xn n seviye hesap aktivitesidir. 7 MATEMATİKSEL PROGRAMLAMA
  8. 8. Doğrusal Programlamanın Önemi – Çoğu gerçek dünya problemi doğrusal modeller ile ifade ediliyor. – Fortune 500 yapılan anket: %85 doğrusal programlama kullanıyor – Birçok başarılı uygulama var: • Üretim • Pazarlama • Finans (Yatırım) • Reklam • Tarım 8 MATEMATİKSEL PROGRAMLAMA
  9. 9. Simpleks Algoritması  Uzun grafiksel çözümden sakınmak için çok değişkenli doğrusal programlama problemlerinin çözümünde yaygın biçimde kullanılan yöntem «simpleks yöntemi»dir.  Simpleks yöntemi bütün uygun çözümleri incelemek için kullanılmaz. Küçük ve tekil uygun çözümlerle ilgilenir.  George B. Dantzig tarafından geliştirilen bu yöntem tekrarlı bir yöntem olduğundan «simpleks algoritması» olarak da adlandırılmaktadır. 9 MATEMATİKSEL PROGRAMLAMA
  10. 10. Tanımlar  Amaç fonksiyonu katsayısı:  Amaç fonksiyonundaki değişkenin katsayısı  Teknolojik katsayı:  Kısıtlardaki değişkenin katsayısı  Sağ-el taraf (right-hand side –rhs–):  Her kısıtın sağ tarafına verilen isim  Olası Bölge(Feasible Region)  İsoprofit ve isocost çizgileri 10 MATEMATİKSEL PROGRAMLAMA
  11. 11. Grafiksel Çözüm 2 karar değişkenlilerde grafiksel çözüm:  Olası bölgenin grafiğini çiz  İsoprofit çizgisini çiz  İsoprofit çizgisini artan z yönünde kaydır. Uygun alandaki son nokta «optimal çözüm»dür. 11 MATEMATİKSEL PROGRAMLAMA
  12. 12. Dört Durum • Doğrusal Programlamada 4 durum: – Tekil bir çözüm – Sonsuz optimal çözüm (alternative optimal solution) – Uygun çözümü yok (infeasible) – Sınırsız çözüm (unbounded) 12 MATEMATİKSEL PROGRAMLAMA
  13. 13. Doğrusal Programlamanın Varsayımları
  14. 14. Doğrusallık  Amaç fonksiyonu ve kısıtlamalar, karar değişkenleri açısından doğrusaldır. Örneğin karar değişkenleri iki katına çıktığında amaç fonksiyonu değeri de iki katına çıkar. Bir başka deyişle, amaç fonksiyonunda ve kısıtlamalarda oransallık vardır.  Örneğin, bir kg süt üretmek için 4 kg yem verilmesi gerekiyorsa, 10 kg süt üretimi için 40 kg yem kullanılması gerektiği düşünülür. Aynı şekilde, 1kg süt satışından elde edilecek gelir 500 bin TL ise, 10 kg süt satışından 5 milyon TL gelir sağlanacaktır. 14 MATEMATİKSEL PROGRAMLAMA
  15. 15. Kesinlik  Modeldeki tüm parametrelerin bilindiği ve sabit oldukları kabul edilir. Buna göre, amaç fonksiyonu ve kısıtlamalardaki sayısal değerleri kesindir ve planlama sürecinde değişmez.  Örneğin bir dekar pamuk üretildiğinde ihtiyaç duyulacak işgücü 20 erkek iş gücü, elde edilecek brüt kâr 750.000 TL, toplam işletme sermayesi 15 milyon TL olarak belirlenmişse; bunların kesin olduğu ve değişmeyeceği varsayılır. 15 MATEMATİKSEL PROGRAMLAMA
  16. 16. Toplanabilirlik  Bu varsayım değişik üretim faaliyetlerine kaynak olan üretim girdilerinin toplamının her bir işlem için ayrı ayrı kullanılan girdilerin toplamına eşit olduğunu gösterir.  Örneğin bir iş iki saatte, diğeri üç saatte yapılıyorsa, iki işi birden yapmak için beş saate gerek vardır. 16 MATEMATİKSEL PROGRAMLAMA
  17. 17. Bölünebilirlik  Faaliyetlerin çözüm değerleri tam sayı olmayabilir. Bir başka ifadeyle, faaliyetler kesirli veya ondalık noktalı değerler alabilir. 1.75 traktöre yer verme veya 2.25 süt sığırı yetiştirme, doğrusal programlamadan elde edilebilecek olası çözüm sonuçlarıdır.  Eğer bölünebilirlik istenmiyorsa integer programlama yöntemi kullanılır 17 MATEMATİKSEL PROGRAMLAMA
  18. 18. Negatif Olmama  Fiziksel değerlerin sıfırdan küçük olması mümkün değildir.  Örneğin –2 sandalye, -5 süt sığırı, -10 dekar arazi olamaz. 18 MATEMATİKSEL PROGRAMLAMA
  19. 19. ÖRNEKLER
  20. 20. Giapetto’s Woodcarving • Asker ve tren oyuncak yapılıyor • Asker $27 satış, $10 hammadde, $14 emek maliyeti • Tren $21 satış, $9 hammadde, $10 emek maliyeti • Asker 2 saat bitirme emeği, 1 saat marangozluk işi • Tren 1 saat bitirme emeği, 1 saat marangozluk işi • Toplam 100 saat bitirme, 80 saat marangozluk • Tren talebi sınırsız, asker talebi maks. 40 adet 20 MATEMATİKSEL PROGRAMLAMA
  21. 21. Giapetto’s Woodcarving X1 = üretilen asker sayısı/hafta X2 = üretilen tren sayısı/hafta z: Haftalık kazançlar - haftalık giderler Maksimum z = 3X1 + 2X2 *: (27X1 + 21X2)-(10X1 + 9X2)-(14X1 + 10X2) *: (haftalık gelir)-(hammadde maliyeti)-(diğer maliyetler) 21 MATEMATİKSEL PROGRAMLAMA (1) (*)
  22. 22. Giapetto’s Woodcarving KISITLAR: Kısıt 1: Haftada bitirme emeği maksimum 100 saat Kısıt 1: 2X1 + X2 ≤ 100 (2) Kısıt 2: Haftada marangozluk işi maksimum 80 saat Kısıt 2: X1 + X2 ≤ 80 (3) Kısıt 3: Haftada maksimum 40 adet asker oyuncak talebi Kısıt 3: X1 ≤ 40 (4) İşaret Kısıtları: X1 , X 2 ≥ 0 22 (5) (6) MATEMATİKSEL PROGRAMLAMA
  23. 23. Giapetto’s Woodcarving 23 MATEMATİKSEL PROGRAMLAMA
  24. 24. Bağlayıcı Kısıtlar • Optimal çözüm noktasını kısıta uyguladığımızda, kısıtın sağ ve sol tarafı – Eşit oluyorsa, bağlayıcı kısıttır. • Giapetto probleminde, “finishing” ve “carpentry” kısıtları bağlayıcıdır. – Eşit olmuyorsa o kısıt bağlayıcı değildir. • Giapetto probleminde, tahta askerler için talep kısıtı bağlayıcı değildir. • Çünkü optimal çözümde (x1 = 20), x1 < 40. 24 MATEMATİKSEL PROGRAMLAMA
  25. 25. Convex sets of points • S noktalar kümesindeki herhangi iki doğruyu birleştiren çizgi tümüyle S kümesi içinde kalıyorsa convex küme denir. • Convex bir S kümesi için, tamamen S kümesinde içinde kalan çizgi segmentleri için bir P noktası uç noktası oluyorsa, P noktası uç nokta ( extreme point ) olur. • Uç noktalar aynı zamanda köşe noktalar olarak adlandırılırlar. Extreme point are sometimes called corner points, çünkü S kümesi bir poligonsa köşe noktalar uç noktalar olacaktır.
  26. 26. Özel Durumlar • Giapetto probleminde tek bir optimal çözüm vardır. • Bazı LP’lerde tek bir optimal çözüm olmayabilir. – Bazı LP’lerin sonsuz sayıda çözümü olabilir. (alternatif ya da çoklu optimal çözüm). – Bazı LP’lerde uygun çözüm olmayabilir. – Bazı LP’ler kısıtlandırılmamış olabilir (unbounded): Uygun bölgede (feasible region) çok büyük sonuçlar veren çözüm noktaları olabilir (maximization problem). • Goal programming genellikle alternatif optimal çözümler arasından seçim yapmak için kullanılır.
  27. 27. Doğrusal Amaç Fonksiyonu • Amaç fonksiyonun, karar değişkenlerinin doğrusal bir fonksiyonu olması: 1. Her karar değişkeninin amaç fonksiyonuna katkısı, karar değişkeninin değeri ile orantılıdır. Örnek: 4 askerin amaç fonksiyonuna katkısı 1 askerin katkısının 4 katıdır. 1. Her bir karar değişkenin amaç fonksiyonuna katkısı, diğer karar değişkenlerinden bağımsızdır. Örnek: no matter what the value of x2, the manufacture of x1 soldiers will always contribute 3x1 dollars to the objective function.
  28. 28. Doğrusal Kısıtlar • Benzer şekilde kısıtların doğrusal olması: 1. Her karar değişkeninin kısıt denkleminin sol tarafına katkısı, karar değişkeninin değeri ile orantılıdır. Örnek: 3 asker üretmek için gerekli olan bitirme saati «finishing hours», 1 asker üretmek için gerekli olanın tam 3 katıdır. 2. Her bir karar değişkenin kısıt denkleminin sol tarafına katkısı, diğer karar değişkenlerinden bağımsızdır. Örnek: x1 değeri ne olursa olsun, x2 adet tren üretirken x2 bitirme saati ve x2 marangoz saati harcanır.
  29. 29. Giapetto’s Woodcarving Grafiksel Çözüm X2 100 B finishing constraint Feasible Region 80 D demand constraint 60 G z = 100 40 carpentry constraint 20 F z = 180 z = 60 29 E H 10 A MATEMATİKSEL PROGRAMLAMA 20 40 50 60 C 80 X1
  30. 30. Diyet Problemi • 4 çeşit: brownie, çikolatalı dondurma, kola, cheesecake • Her brownie 40¢ • Her çikolatalı dondurma 20¢ • Her şişe kola 30¢ • Her cheesecake 80¢ • En az 500 kalori, 6 ons çikolata, 10 ons şeker, 8 ons yağ • Günlük besin ihtiyacı için minimum harcama? 30 MATEMATİKSEL PROGRAMLAMA
  31. 31. Diyet Problemi Besin Değerleri: 31 MATEMATİKSEL PROGRAMLAMA
  32. 32. Diyet Problemi X1 = günlük yenen brownie sayısı X2 = günlük yenen çikolatalı dondurma kepçe sayısı X3 = günlük içilen kola sayısı X4 = günlük yenen cheesecake dilimi sayısı Toplam Diyet Maliyeti = 50X1 + 20X2 + 30X3 + 80X4 Min z = 50X1 + 20X2 + 30X3 + 80X4 32 MATEMATİKSEL PROGRAMLAMA
  33. 33. Diyet Problemi KISITLAR: Kısıt 1: Günlük en az 500 kalori alınmalı Kısıt 1: 400X1 + 200X2 + 150X3 + 500X4 ≥ 500 (2) Kısıt 2: Günlük en az 6 ons çikolata alınmalı Kısıt 2: 3X1 + 2X2 ≥ 6 (3) Kısıt 3: Günlük en az 10 ons şeker alınmalı Kısıt 3: 2X1 + 2X2 + 4X3 + 4X4 ≥ 10 (4) Kısıt 4: Günlük en az 8 ons yağ alınmalı Kısıt 4: 2X1 + 4X2 + X3 + 5X4 ≥ 8 (5) İşaret Kısıtları: Xi (i=1,2,3,4) ≥ 0 33 MATEMATİKSEL PROGRAMLAMA
  34. 34. Diyet Problemi OPTİMAL ÇÖZÜM: X1=0, X2=3, X3=1, X4=0 ve z=90 400(0) + 200(3) + 150(1) + 500(0) = 750 kalori 3(0) + 2(3) = 6 ons çikolata 2(0) + 2(3) + 4(1) + 4(0) = 10 ons şeker 2(0) + 4(3) + 1+ 5(0) = 13 ons yağ • Çikolata ve şeker kısıtları bağlayıcı, kalori ve yağ kısıtları bağlayıcı değil… 34 MATEMATİKSEL PROGRAMLAMA
  35. 35. Posta Ofisi Problemi • Haftanın her günü farklı sayılarda tam zamanlı personel ihtiyacı • Ülke kuralı: Bir personel ard arda 5 gün çalışır, 2 gün izin alır • Posta Ofisinin her günkü personel ihtiyacını karşılayacak, kiralanması gereken minimum personel sayısı nedir? 35 MATEMATİKSEL PROGRAMLAMA
  36. 36. Posta Ofisi Problemi Posta Ofisi Günlük Personel İhtiyaç Sayıları: 36 MATEMATİKSEL PROGRAMLAMA
  37. 37. Posta Ofisi Problemi Xi = i. günde işe başlayan personel sayısı Min z = X1 + X2 + X3 + X4 + X5 + X6 + X7 Yapılan genel bir hata:  Xi karar değişkeninin i gününde çalışan personel sayısı seçilmesi durumu. Bu durumda işe başlamış aynı personel 5 farklı günde sayılmış olur. 37 MATEMATİKSEL PROGRAMLAMA
  38. 38. Posta Ofisi Problemi KISITLAR: X1 + X4 + X5 + X6 + X7 ≥ 17 X1 + X2 + X5 + X6 + X7 ≥ 13 X1 + X2 + X3 + X6 + X7 ≥ 15 X1 + X2 + X3 + X4 + X7 ≥ 19 X1 + X2 + X3 + X4 + X5 ≥ 14 X2 + X3 + X4 + X5 + X6 ≥ 16 X3 + X4 + X5 + X6 + X7 ≥ 11 İşaret Kısıtları: Xi (i=1,2,…,7) ≥ 0 38 MATEMATİKSEL PROGRAMLAMA (Pazartesi kısıtı) (Salı kısıtı) (Çarşamba kısıtı) (Perşembe kısıtı) (Cuma kısıtı) (Cumartesi kısıtı) (Pazar kısıtı)
  39. 39. Posta Ofisi Problemi OPTİMAL ÇÖZÜM: Z=67/3, X1=4/3, X2=10/3, X3= 2, X4=22/3, X5=0, X6=10/3, X7=5 - Bölünebilirlik varsayımı sağlanmaz. İnteger Programlama ile optimal çözüm: Z=23, X1=4, X2=4, X3= 2, X4=6, X5=0, X6=4, X7=3 39 MATEMATİKSEL PROGRAMLAMA
  40. 40. Karıştırma Problemleri • Nihai ürün için çeşitli girdilerin belli oranlarda karıştırılmasını içeren problemlere karıştırma problemi «blending problems» denir. • Bazı örnek karıştırma problemi tipleri: – Farklı tipteki ham petrollerin çeşitli petrol ürünleri için karıştırılması. – Farklı kimyasalları çeşitli kimyasal ürünler için karıştırılması…
  41. 41. Karıştırma Problemi • • • • • • • • • 3 çeşit yakıt: yakıt 1, yakıt 2, yakıt 3 Yakıtlar 3 çeşit ham petrol karışımla oluşur: ham 1, ham 2, ham 3 Firma her ham petrol türünden 5000 varil/günlük alım yapabiliyor Yakıt 1 için ortalama ham petrol en az 10 oktan ve en çok %1 sülfür Yakıt 2 için ortalama ham petrol en az 8 oktan ve en çok %2 sülfür Yakıt 3 için ortalama ham petrol en az 6 oktan ve en çok %1 sülfür Ham petrolü yakıta dönüştürme maliyeti $4 Firma 14000 varil/günlük yakıt üretiyor Firma günlük olarak yakıt 1’den 3000 varile, yakıt 2’den 2000 varile ve yakıt 3’ten 1000 varile ihtiyaç duyuyor • Günlük reklam yaptığında o yakıt için her bir dolara 10 varil ihtiyaç artıyor • Firmanın günlük maksimum karı nedir? 41 MATEMATİKSEL PROGRAMLAMA
  42. 42. Karıştırma Problemi Yakıt ve Ham Petrol Fiyat Tablosu 42 MATEMATİKSEL PROGRAMLAMA
  43. 43. Karıştırma Problemi Oktan Oranı ve Sülfür İhtiyacı Tablosu 43 MATEMATİKSEL PROGRAMLAMA
  44. 44. Karıştırma Problemi • ai = yakıt i için harcanan reklam gideri (i=1,2,3) • xij = yakıt j için harcanan ham i kullanımı (i=1,2,3; j=1,2,3) x11 + x12 + x13 = günlük kullanılan ham 1 varil miktarı x21 + x22 + x23 = günlük kullanılan ham 2 varil miktarı x31 + x32 + x33 = günlük kullanılan ham 3 varil miktarı x11 + x21 + x31 = günlük üretilen yakıt 1 varil miktarı x11 + x22 + x32 = günlük üretilen yakıt 2 varil miktarı x13 + x23 + x33 = günlük üretilen yakıt 3 varil miktarı 44 MATEMATİKSEL PROGRAMLAMA
  45. 45. Karıştırma Problemi • ai = yakıt i için harcanan reklam gideri (i=1,2,3) • xij = yakıt j için harcanan ham i kullanımı (i=1,2,3; j=1,2,3) Gaz satışından kazanılan günlük kazanç= 70(x11 + x21 + x31) + 60(x11 + x22 + x32) + 50(x13 + x23 + x33) Ham petrol alışından günlük harcanan= 45(x11 + x12 + x13) + 35(x21 + x22 + x23) + 25(x31 + x32 + x33) 45 MATEMATİKSEL PROGRAMLAMA
  46. 46. Karıştırma Problemi • ai = yakıt i için harcanan reklam gideri (i=1,2,3) • xij = yakıt j için harcanan ham i kullanımı (i=1,2,3; j=1,2,3) Günlük reklam gideri = a1 + a2 + a3 Günlük üretim maliyeti= 4(x11 + x12 + x13 + x21 + x22 + x23 + x31 + x32 + x33) Günlük Kar (z) = 21x11 + 11x12 + x13 + 31x21 + 21x22 + 11x23 + 41x31 + 31x32 + 21x33 - a1 - a2 - a3 Reklamla gaz talepleri artışı: Yakıt 1 için $10 a1 Yakıt 2 için $10 a2 Yakıt 3 için $10 a3 46 MATEMATİKSEL PROGRAMLAMA
  47. 47. Karıştırma Problemi KISITLAR: • Kısıt 1: Günlük yakıt 1 üretimi günlük ihtiyaç kadar olmalı x11 + x21 + x31 = 3000 + a1 • Kısıt 2: Günlük yakıt 2 üretimi günlük ihtiyaç kadar olmalı x12 + x22 + x32 = 2000 + a2 • Kısıt 3: Günlük yakıt 3 üretimi günlük ihtiyaç kadar olmalı x13 + x23 + x33 = 1000 + a3 • Kısıt 4: En çok 5000 varil/günlük ham 1 alınabilir x11 + x21 + x31 ≤ 5000 • Kısıt 5: En çok 5000 varil/günlük ham 2 alınabilir x12 + x22 + x32 ≤ 5000 • Kısıt 6: En çok 5000 varil/günlük ham 3 alınabilir x13 + x23 + x33 ≤ 5000 47 MATEMATİKSEL PROGRAMLAMA
  48. 48. Karıştırma Problemi 48 MATEMATİKSEL PROGRAMLAMA
  49. 49. Karıştırma Problemi 49 MATEMATİKSEL PROGRAMLAMA
  50. 50. Hasan Hüseyin SUBAŞI Barış ÖZKAYA

×