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. 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
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. 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. 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. 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. 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. 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. 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. 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
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. 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. 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. 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. 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
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. 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)
(*)
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. 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. Ö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. 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. 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. 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. 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
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. 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. 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. 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
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
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. 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. 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
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. 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. 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. 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