Not 05 · Hafta 3 · 15 Ekim 2026

Doğrusal Programlamaya Giriş

Doğrusal programlama (LP), sınırlı kaynakları birbiriyle yarışan etkinliklere dağıtmanın matematiksel modelidir. Not, Wyndor örneğiyle modeli kurar, grafik çözümü etkileşimli olarak gösterir, genel formu ve varsayımları verir, iki gerçekçi modelle ve çözümlü alıştırmalarla devam eder.

Bu notta
  1. LP nedir?
  2. Prototip örnek: Wyndor
  3. Grafik çözüm
  4. Genel LP modeli
  5. LP varsayımları
  6. Örnek: Save-It Co.
  7. Örnek: Union Airways
  8. Çözüm terminolojisi
  9. Büyük modeller ve araçlar
  10. Alıştırmalar
  11. Özet

Doğrusal programlama nedir?

Doğrusal programlama, ilgilenilen problemi bir matematiksel modelle tanımlar. Adın iki parçası ayrı ayrı anlam taşır:

Linear

Doğrusal

Modeldeki bütün matematiksel fonksiyonlar kesinlikle birinci derecedendir: \(x^2\), \(x_1 x_2\), \(\sqrt{x}\) gibi terimler yoktur.

Programming

Programlama

Bilgisayar programlama değil, operasyonel planlama anlamındadır.

Yani doğrusal programlama, etkinlikleri en iyi sonucu verecek şekilde planlamaktır: matematiksel modele göre, bütün olurlu seçenekler arasında belirlenen hedefe en iyi ulaşan sonucu.

20. yüzyıl ortasının en önemli bilimsel ilerlemelerinden biri sayılır. Tipik kullanımı, sınırlı kaynakları birbiriyle yarışan etkinliklere dağıtmaktır. Uygulama örnekleri:

Prototip örnek: Wyndor Glass Co.

Wyndor Glass Co. pencere ve cam kapı gibi cam ürünleri üretir. Üç fabrikası vardır:

Kazançlar düştüğü için üst yönetim ürün yelpazesini yenilemeye karar verir. Kârsız ürünler bırakılır ve açılan kapasiteyle, satış potansiyeli yüksek iki yeni ürün üretilecektir:

Pazarlama bölümüne göre şirket iki üründen de üretebildiği kadarını satabilir. Ama iki ürün Fabrika 3'teki aynı kapasite için yarıştığından, hangi üretim karışımının en kârlı olduğu açık değildir.

Ürün 1: cam kapı3 bin $ / parti · x1Ürün 2: pencere5 bin $ / parti · x2Fabrika 1kapasite 4 saatFabrika 3kapasite 18 saat · ortakFabrika 2kapasite 12 saat1 sa / parti3 sa / parti2 sa / parti2 sa / parti
Şekil 1. Hangi ürün hangi fabrikayı kullanıyor. Fabrika 1 yalnızca ürün 1'e, Fabrika 2 yalnızca ürün 2'ye çalışır; bu iki fabrika birer üst sınır koyar. Fabrika 3'ün 18 saatini iki ürün paylaşır: ürün 1'den bir parti fazla üretmek 3 saat, ürün 2'den bir parti fazla üretmek 2 saat götürür. Problemin özü bu paylaşımdır.
Problem tanımı

Üç fabrikadaki sınırlı üretim kapasitelerinin getirdiği kısıtlar altında, toplam kârı en büyüklemek için iki ürünün üretim hızları ne olmalıdır? Her ürün 20'lik partiler hâlinde üretilir; üretim hızı haftada üretilen parti sayısıdır. Bu kısıtları sağlayan her üretim hızı bileşimine izin verilir; bir üründen hiç üretmeyip ötekinden olabildiğince çok üretmek de buna dahildir.

Yöneylem araştırması ekibi şu verilerin toplanması gerektiğini belirler: (1) her fabrikada yeni ürünler için haftada ayrılabilecek üretim saati; (2) her ürünün bir partisinin her fabrikada kullandığı üretim saati; (3) her ürünün parti başına kârı.

Tablo 3.1 · Wyndor Glass Co. verileri
FabrikaÜrün 1 (saat/parti)Ürün 2 (saat/parti)Haftalık kapasite (saat)
1104
20212
33218
Parti başına kâr3.000 $5.000 $

LP olarak formülasyon

\(x_1\)
haftada üretilen ürün 1 partisi sayısı
\(x_2\)
haftada üretilen ürün 2 partisi sayısı
\(Z\)
bu iki ürünün üretiminden elde edilen haftalık toplam kâr (bin dolar)

\(x_1\) ve \(x_2\) modelin karar değişkenleridir. Amaç, \(Z = 3x_1 + 5x_2\)'yi, \(x_1\) ve \(x_2\)'nin değerlerine üç fabrikanın kapasitelerinin getirdiği kısıtlar altında en büyüklemektir. Her fabrika bir kısıt verir:

\[ \begin{aligned} \max\quad & Z = 3x_1 + 5x_2 \\ \text{öyle ki}\quad & x_1 \le 4 \\ & 2x_2 \le 12 \\ & 3x_1 + 2x_2 \le 18 \\ & x_1 \ge 0,\quad x_2 \ge 0 \end{aligned} \]

Grafik çözüm

İki karar değişkenli bir LP düzlemde çözülebilir:

  1. Negatif olmama kısıtları aramayı ilk çeyreğe sınırlar.
  2. Her kısıtın sınır doğrusunu çiz (\(x_1 = 4\), \(2x_2 = 12\), \(3x_1 + 2x_2 = 18\)) ve kısıtın izin verdiği tarafı işaretle. Bütün kısıtları sağlayan noktalar olurlu bölgeyi oluşturur.
  3. \(Z = 3x_1 + 5x_2\)'yi sabit bir değere eşitleyip doğruyu çiz; örneğin \(Z = 10\) ve \(Z = 20\). Bu doğrular birbirine paraleldir.
  4. Doğruyu, olurlu bölgeyle en az bir ortak noktası kalacak şekilde \(Z\)'nin arttığı yönde olabildiğince kaydır. Son temas noktası optimumdur: \(Z = 36\) doğrusu bölgeye yalnızca \((2, 6)\)'da dokunur.

Grafik çözüm laboratuvarı

max Z = 3x1 + 5x2

  1. (1)x1 ≤ 4
  2. (2)2x2 ≤ 12
  3. (3)3x1 + 2x2 ≤ 18
  4. x1 ≥ 0, x2 ≥ 0

Optimum köşe (2, 6), Z = 36.

Köşe (x1, x2)Z
(0, 0)0
(0, 6)30
(2, 6)36
(4, 0)12
(4, 3)27

Laboratuvarda amaç katsayılarını \(c_1, c_2\) değiştirerek optimumun hangi köşeye kaydığını görebilirsin. Kesikli turuncu çizgi optimumdan geçen eş-kâr doğrusudur. \(c_1 : c_2 = 3 : 2\) olduğunda doğru, \(3x_1 + 2x_2 = 18\) kenarına paralel olur ve çoklu optimum ortaya çıkar; diğer düğmeler özel durumları gösterir.

Wyndor'un çözümü

Optimum \((x_1, x_2) = (2, 6)\), \(Z = 36\): haftada 2 parti ürün 1 ve 6 parti ürün 2 üretmek, haftada 36.000 $ kâr getirir. Bu noktada Fabrika 2 ve Fabrika 3 tam kapasiteyle çalışır; Fabrika 1'de 2 saat boş kalır.

Genel doğrusal programlama modeli

Tablo 3.2 · LP'nin ortak terminolojisi
Prototip örnekteGenel problemde
Fabrikaların üretim kapasiteleriKaynaklar
3 fabrika\(m\) kaynak
Ürünlerin üretimiEtkinlikler
2 ürün\(n\) etkinlik
Ürün \(j\)'nin üretim hızı, \(x_j\)Etkinlik \(j\)'nin düzeyi, \(x_j\)
Kâr \(Z\)Genel başarım ölçüsü \(Z\)

Kaynakları etkinliklere dağıtma probleminde yaygın kullanılan simgeler:

\(Z\)
genel başarım ölçüsünün değeri.
\(x_j\)
etkinlik \(j\)'nin düzeyi (\(j = 1, 2, \dots, n\)).
\(c_j\)
etkinlik \(j\)'nin düzeyindeki her birim artışın \(Z\)'de yarattığı artış.
\(b_i\)
kaynak \(i\)'nin etkinliklere dağıtılabilecek miktarı (\(i = 1, 2, \dots, m\)).
\(a_{ij}\)
etkinlik \(j\)'nin her biriminin tükettiği kaynak \(i\) miktarı.

Model, problemi etkinliklerin düzeylerine dair kararlar olarak kurar; bu yüzden \(x_1, \dots, x_n\) karar değişkenleridir. \(c_j\), \(b_i\) ve \(a_{ij}\) değerleri modelin girdi sabitleri, yani parametreleridir.

Tablo 3.3 · Kaynak tahsisi LP modeli için gereken veriler
KaynakEtkinlik 1Etkinlik 2…Etkinlik \(n\)Mevcut miktar
1\(a_{11}\)\(a_{12}\)…\(a_{1n}\)\(b_1\)
2\(a_{21}\)\(a_{22}\)…\(a_{2n}\)\(b_2\)
⋮⋮⋮⋮⋮
\(m\)\(a_{m1}\)\(a_{m2}\)…\(a_{mn}\)\(b_m\)
Birim başına \(Z\) katkısı\(c_1\)\(c_2\)…\(c_n\)

Standart form

\[ \begin{aligned} \max\quad & Z = c_1x_1 + c_2x_2 + \dots + c_nx_n \\ \text{öyle ki}\quad & a_{11}x_1 + a_{12}x_2 + \dots + a_{1n}x_n \le b_1 \\ & a_{21}x_1 + a_{22}x_2 + \dots + a_{2n}x_n \le b_2 \\ & \qquad \vdots \\ & a_{m1}x_1 + a_{m2}x_2 + \dots + a_{mn}x_n \le b_m \\ & x_1 \ge 0,\ x_2 \ge 0,\ \dots,\ x_n \ge 0 \end{aligned} \]

Matris gösterimiyle aynı model kısaca \(\max \{\, c^T x : Ax \le b,\ x \ge 0 \,\}\) olarak yazılır.

Amaç fonksiyonu
En büyüklenen fonksiyon, \(c_1x_1 + c_2x_2 + \dots + c_nx_n\).
Fonksiyonel kısıtlar (functional / structural constraints)
Sol tarafında bütün değişkenlerin bir fonksiyonu, \(a_{i1}x_1 + a_{i2}x_2 + \dots + a_{in}x_n\), bulunan ilk \(m\) kısıt.
Negatif olmama kısıtları (nonnegativity constraints)
\(x_j \ge 0\) kısıtları.

Diğer biçimler

Aşağıdaki değişiklikler de LP olarak kalır:

  1. Amaç fonksiyonunu en büyüklemek yerine en küçüklemek: \(\min Z = c_1x_1 + \dots + c_nx_n\).
  2. Bazı fonksiyonel kısıtların \(\ge\) biçiminde olması: bazı \(i\) için \(a_{i1}x_1 + \dots + a_{in}x_n \ge b_i\).
  3. Bazı fonksiyonel kısıtların eşitlik olması: bazı \(i\) için \(a_{i1}x_1 + \dots + a_{in}x_n = b_i\).
  4. Bazı karar değişkenlerinde negatif olmama kısıtının kaldırılması: bazı \(j\) için \(x_j\) işaretçe serbest.

Hepsi standart forma çevrilebilir: \(\min Z\) yerine \(\max (-Z)\); \(\ge\) kısıtı \(-1\) ile çarpılarak \(\le\) olur; bir eşitlik iki eşitsizliğe (\(\le\) ve \(\ge\)) ayrılır; işaretçe serbest bir değişken iki negatif olmayan değişkenin farkı olarak yazılır: \(x_j = x_j^+ - x_j^-\).

Dönüşüm kuralları slaytta yok; simpleks yöntemi (Hafta 4) modeli standart biçimde beklediği için eklendi.

LP varsayımları

Orantılılık (proportionality)
Her etkinliğin amaç fonksiyonu \(Z\)'ye katkısı, etkinliğin düzeyi \(x_j\) ile orantılıdır (\(c_j x_j\) terimi). Benzer şekilde her etkinliğin her fonksiyonel kısıtın sol tarafına katkısı da \(x_j\) ile orantılıdır (\(a_{ij} x_j\) terimi). Bu varsayım 1'den farklı üsleri dışlar; örneğin ilk partide ödenen sabit bir kurulum maliyeti orantılılığı bozar.
Toplanabilirlik (additivity)
Orantılılık 1'den farklı üsleri dışlar, ama iki ya da daha fazla değişkenin çarpımını içeren çapraz çarpım terimlerini (\(x_1 x_2\) gibi) dışlamaz. Toplanabilirlik bunu da dışlar: LP modelindeki her fonksiyon (amaç fonksiyonu ya da bir fonksiyonel kısıtın sol tarafı) ilgili etkinliklerin bireysel katkılarının toplamıdır.
Kesinlik (certainty)
Modelin parametrelerine, yani amaç katsayıları \(c_j\)'ye, fonksiyonel kısıt katsayıları \(a_{ij}\)'ye ve sağ taraf değerleri \(b_i\)'ye atanan her değerin bilinen bir sabit olduğu varsayılır.
Bölünebilirlik (divisibility)
Karar değişkenleri, kesirli değerler dahil, herhangi bir gerçel değeri alabilir. Slaytlarda yer almıyor; ders kitabındaki dördüncü varsayımdır. Değişkenlerin tamsayı olması gerektiğinde bu varsayım bozulur ve model bir tamsayılı programlama modeline dönüşür. Ayrık optimizasyonun başladığı yer burasıdır.
−10010203002468103x−8 + 3xilk birimde 8'lik sıçramaamaca katkıetkinlik düzeyi xorantılı (LP'ye uygun)sabit kurulum maliyeti (LP değil)
Şekil 2. Orantılılığın bozulduğu tipik durum: sabit kurulum maliyeti. Yeşil doğru orantılı bir katkıdır (\(3x\)); \(x = 0\)'da sıfırdır ve her birim aynı katkıyı yapar. Turuncu fonksiyonda ilk birim üretildiği anda 8 birimlik kurulum maliyeti ödenir; \(x = 0\)'daki sıçrama yüzünden bu fonksiyon tek bir \(c_j x_j\) terimiyle yazılamaz. Böyle maliyetler ikili (0-1) değişkenlerle modellenir.

Örnek: Save-It Co. — katı atıkların geri kazanımı

Tablo 3.16 · Ürün verileri
KaliteKarışım şartı (toplamın oranı olarak)Karıştırma maliyeti ($/lb)Satış fiyatı ($/lb)
AMalzeme 1: en fazla %30
Malzeme 2: en az %40
Malzeme 3: en fazla %50
Malzeme 4: tam %20
3,008,50
BMalzeme 1: en fazla %50
Malzeme 2: en az %10
Malzeme 4: tam %10
2,507,00
CMalzeme 1: en fazla %702,005,50
Tablo 3.17 · Malzeme verileri
MalzemeHaftalık mevcut (lb)İşleme maliyeti ($/lb)
13.0003,00
22.0006,00
34.0004,00
41.0005,00

Ek kısıtlar: (1) her malzemenin haftalık mevcut miktarının en az yarısı toplanıp işlenmeli; (2) bu malzemeleri işlemek için haftada 30.000 $ kullanılmalı.

Karar değişkenleri

Karar değişkenlerini tanımlamak en kritik adımdır. Burada:

Kesirli kısıtı doğrusallaştırmak

“A kalitesinde malzeme 1 en fazla %30” şartı ilk bakışta doğrusal değildir:

\[ \frac{x_{A1}}{x_{A1} + x_{A2} + x_{A3} + x_{A4}} \le 0{,}3 \]

Payda (A'nın toplam üretimi) negatif olmadığı için iki taraf paydayla çarpılabilir ve terimler bir tarafa toplanır:

\[ 0{,}7\,x_{A1} - 0{,}3\,x_{A2} - 0{,}3\,x_{A3} - 0{,}3\,x_{A4} \le 0 \]

Bütün karışım şartları bu yolla doğrusal kısıtlara çevrilir. Bu, oran ve yüzde içeren modellerde sık kullanılan bir tekniktir.

Tam model

Amaç fonksiyonunda her kalitenin birim net kârı “satış fiyatı − karıştırma maliyeti”dir: A için 8,50 − 3,00 = 5,50; B için 7,00 − 2,50 = 4,50; C için 5,50 − 2,00 = 3,50. İşleme maliyeti hibeyle karşılandığı için amaçta yer almaz, bir kısıt olarak girer.

\[ \begin{aligned} \max\; Z = {} & 5{,}5\,(x_{A1} + x_{A2} + x_{A3} + x_{A4}) + 4{,}5\,(x_{B1} + x_{B2} + x_{B3} + x_{B4}) \\ & + 3{,}5\,(x_{C1} + x_{C2} + x_{C3} + x_{C4}) \end{aligned} \]

1. Karışım şartları:

\[ \begin{aligned} x_{A1} &\le 0{,}3\,(x_{A1} + x_{A2} + x_{A3} + x_{A4}) & x_{B1} &\le 0{,}5\,(x_{B1} + x_{B2} + x_{B3} + x_{B4}) \\ x_{A2} &\ge 0{,}4\,(x_{A1} + x_{A2} + x_{A3} + x_{A4}) & x_{B2} &\ge 0{,}1\,(x_{B1} + x_{B2} + x_{B3} + x_{B4}) \\ x_{A3} &\le 0{,}5\,(x_{A1} + x_{A2} + x_{A3} + x_{A4}) & x_{B4} &= 0{,}1\,(x_{B1} + x_{B2} + x_{B3} + x_{B4}) \\ x_{A4} &= 0{,}2\,(x_{A1} + x_{A2} + x_{A3} + x_{A4}) & x_{C1} &\le 0{,}7\,(x_{C1} + x_{C2} + x_{C3} + x_{C4}) \end{aligned} \]

2. Malzeme mevcudiyeti ve 3. işlenecek en az miktar (mevcudun yarısı):

\[ \begin{aligned} x_{A1} + x_{B1} + x_{C1} &\le 3000 & x_{A1} + x_{B1} + x_{C1} &\ge 1500 \\ x_{A2} + x_{B2} + x_{C2} &\le 2000 & x_{A2} + x_{B2} + x_{C2} &\ge 1000 \\ x_{A3} + x_{B3} + x_{C3} &\le 4000 & x_{A3} + x_{B3} + x_{C3} &\ge 2000 \\ x_{A4} + x_{B4} + x_{C4} &\le 1000 & x_{A4} + x_{B4} + x_{C4} &\ge 500 \end{aligned} \]

4. İşleme maliyeti ve 5. negatif olmama:

\[ 3(x_{A1} + x_{B1} + x_{C1}) + 6(x_{A2} + x_{B2} + x_{C2}) + 4(x_{A3} + x_{B3} + x_{C3}) + 5(x_{A4} + x_{B4} + x_{C4}) = 30000 \] \[ x_{ij} \ge 0 \quad \text{her } i \in \{A, B, C\},\ j \in \{1, 2, 3, 4\} \text{ için} \]

Çözüm

Tablo 3.18 · Optimal çözüm (haftada kullanılan libre; parantez içinde kalitedeki oran)
KaliteMalzeme 1Malzeme 2Malzeme 3Malzeme 4Üretilen (lb/hafta)
A412,3 (%19,2)859,6 (%40)447,4 (%20,8)429,8 (%20)2.149
B2.587,7 (%50)517,5 (%10)1.552,6 (%30)517,5 (%10)5.175
C00000
Toplam3.0001.3772.000947

Amaç değeri \(Z = 35.109{,}65\) $. Problem çözüldükten sonra tablodaki diğer büyüklükler (oranlar, toplamlar) \(x_{ij}\) değerlerinden hesaplanır. Dikkat çeken noktalar: C kalitesi hiç üretilmez; malzeme 1'in tamamı kullanılır, malzeme 3 ise tam en az sınırında (2.000 lb) kalır.

Malzeme 13.000 / 3.000 lbMalzeme 21.377 / 2.000 lbMalzeme 32.000 / 4.000 lbMalzeme 4947 / 1.000 lbA kalitesi2.149 lb · kâr 5,50 $/lbB kalitesi5.175 lb · kâr 4,50 $/lbC kalitesi: üretilmezMalzeme 1 → A: 412,3 lbMalzeme 2 → A: 859,6 lbMalzeme 3 → A: 447,4 lbMalzeme 4 → A: 429,8 lbMalzeme 1 → B: 2.587,7 lbMalzeme 2 → B: 517,5 lbMalzeme 3 → B: 1.552,6 lbMalzeme 4 → B: 517,5 lbçizgi kalınlığı = haftada kullanılan miktar (lb)
Şekil 3. Optimal çözümün akış görünümü: her çizgi bir \(x_{ij}\) değişkenidir ve kalınlığı haftalık miktarla orantılıdır. Malzeme 1'in büyük kısmı B'ye gider; A'nın %40 malzeme 2 şartı malzeme 2'nin çoğunu A'ya çeker. C'ye hiç akış yoktur. Çizgilerin üzerine gelince miktarlar görünür.

Örnek: Union Airways — personel çizelgeleme

Union Airways uçuş programına sefer eklediği için yeni müşteri hizmetleri personeli alacaktır. Günün farklı saatlerinde görevde olması gereken en az personel sayısı analiz edilmiştir. Yöneylem araştırması ekibi, personeli en düşük personel maliyetiyle yeterli hizmet verecek şekilde vardiyalara yerleştirmek istiyor.

Her personel haftada 5 gün, 8 saatlik vardiyalarda çalışır. Vardiyalar: 1: 06:00–14:00, 2: 08:00–16:00, 3: 12:00–20:00, 4: 16:00–24:00, 5: 22:00–06:00.

Tablo 3.19 · Hangi vardiya hangi zaman dilimini kapsıyor
Zaman dilimiV1V2V3V4V5En az personel
06:00–08:00✓48
08:00–10:00✓✓79
10:00–12:00✓✓65
12:00–14:00✓✓✓87
14:00–16:00✓✓64
16:00–18:00✓✓73
18:00–20:00✓✓82
20:00–22:00✓43
22:00–24:00✓✓52
00:00–06:00✓15
Personel başına günlük maliyet170 $160 $175 $180 $195 $

Formülasyon

\[ \min\; Z = 170x_1 + 160x_2 + 175x_3 + 180x_4 + 195x_5 \]
Zaman dilimiKısıt
06:00–08:00\(x_1 \ge 48\)
08:00–10:00\(x_1 + x_2 \ge 79\)
10:00–12:00\(x_1 + x_2 \ge 65\)
12:00–14:00\(x_1 + x_2 + x_3 \ge 87\)
14:00–16:00\(x_2 + x_3 \ge 64\)
16:00–18:00\(x_3 + x_4 \ge 73\)
18:00–20:00\(x_3 + x_4 \ge 82\)
20:00–22:00\(x_4 \ge 43\)
22:00–24:00\(x_4 + x_5 \ge 52\)
00:00–06:00\(x_5 \ge 15\)
—\(x_j \ge 0,\ j = 1, \dots, 5\)
Slayttaki sayı

Slayttaki modelde 12:00–14:00 kısıtı \(x_1 + x_2 + x_3 \ge 79\) olarak yazılmış; Tablo 3.19'a göre sağ taraf 87 olmalı. Sonuç değişmez: optimal çözümde \(x_1 + x_2 + x_3 = 118\) olduğu için iki kısıt da gevşektir.

06:0010:0014:0018:0022:0002:0006:00Vardiyalar ve çözümdeki personelV1 · 48 kişiV2 · 31 kişiV3 · 39 kişiV4 · 43 kişiV5 · 15 kişiKapsama: görevdeki / en az gereken0408012006:00–08:00 · görevde 48, en az 4808:00–10:00 · görevde 79, en az 7910:00–12:00 · görevde 79, en az 6512:00–14:00 · görevde 118, en az 8714:00–16:00 · görevde 70, en az 6416:00–18:00 · görevde 82, en az 7318:00–20:00 · görevde 82, en az 8220:00–22:00 · görevde 43, en az 4322:00–00:00 · görevde 58, en az 5200:00–06:00 · görevde 15, en az 15118 ≥ 87kısıt sıkıgevşeken az gereken
Şekil 4. Üstte beş vardiyanın saatleri ve optimal çözümde her birine atanan personel. Altta her zaman diliminde görevde olan personel (sütun) ve en az gereken sayı (turuncu çizgi). Koyu sütunlarda ikisi eşittir, yani kısıt sıkıdır: 06–08, 08–10, 18–20, 20–22 ve 00–06. En büyük fazlalık öğle saatlerindedir (118 ≥ 87): sabah ve akşam sıkı dilimleri karşılayan vardiyalar öğlen üst üste biner.

Tamsayı meselesi

Çözüm terminolojisi ve özel durumlar

Çözüm (solution)
\((x_1, x_2, \dots, x_n)\) için herhangi bir değer ataması; olurlu olması gerekmez.
Olurlu çözüm (feasible solution)
Bütün kısıtların sağlandığı çözüm.
Olursuz çözüm (infeasible solution)
En az bir kısıtın ihlal edildiği çözüm.
Olurlu bölge (feasible region)
Bütün olurlu çözümlerin kümesi.
Optimal çözüm (optimal solution)
Amaç fonksiyonunun en elverişli değerine sahip olurlu çözüm. En elverişli değer, amaç en büyükleniyorsa en büyük, en küçükleniyorsa en küçük değerdir.

Özel durumlar

Her LP'nin tek bir optimumu olmak zorunda değildir. Wyndor modelinde küçük değişikliklerle üç özel durum elde edilir; hepsi yukarıdaki laboratuvarda düğmelerle görülebilir.

Olurlu çözüm yok

Modele \(3x_1 + 5x_2 \ge 50\) eklenirse hiçbir nokta bütün kısıtları birlikte sağlamaz: olurlu bölgede \(3x_1 + 5x_2\) en fazla 36 olabilir. Olurlu bölge boştur.

Çoklu optimum

Amaç \(Z = 3x_1 + 2x_2\) olursa eş-kâr doğruları \(3x_1 + 2x_2 = 18\) kenarına paraleldir. \((2, 6)\) ile \((4, 3)\) arasındaki kenarın her noktası \(Z = 18\) ile optimaldir.

Sınırsız Z

Tek fonksiyonel kısıt \(x_1 \le 4\) olsaydı \(x_2\) olurlu bölgede sınırsızca artabilirdi: \((4, 2)\)'de \(Z = 22\), \((4, 10)\)'da \(Z = 62\), … Optimal çözüm yoktur.

Köşe noktası olurlu (CPF) çözümler

Tanım

Köşe noktası olurlu (CPF) çözüm, olurlu bölgenin bir köşesinde bulunan çözümdür.

Olurlu çözümü olan ve olurlu bölgesi sınırlı olan bir LP için:

Wyndor modelinin beş CPF çözümü vardır: \((0, 0)\), \((4, 0)\), \((4, 3)\), \((2, 6)\) ve \((0, 6)\). En iyisi \((2, 6)\)'dır. Bu özellik çok önemlidir: optimumu bulmak için sonsuz sayıdaki olurlu noktanın değil, sonlu sayıdaki köşenin incelenmesi yeter. Simpleks yöntemi (Hafta 4) tam olarak bunu yapar; köşeden komşu köşeye geçerek ilerler.

Slayt bu özellikleri koşulsuz yazıyor; “olurlu çözümü var ve olurlu bölge sınırlı” koşulu Hillier & Lieberman'daki ifadeden eklendi. Sınırsız bölgede optimum olmayabilir (yukarıdaki üçüncü durum).

Büyük modeller ve yazılım araçları

Optimizasyon için Python kütüphaneleri
KütüphaneBirincil kullanımÖğrenmede en uygun olduğu yer
SciPy — linprogLP problemlerini çözmekLP çözmeye giriş için en iyi başlangıç noktası
PuLPLP ve karışık tamsayılı doğrusal programlama (MILP) modellemeMatematiksel modellerin açık, okunaklı formülasyonu
PyomoLP, MILP ve daha genel optimizasyon problemlerini modellemeDaha kapsamlı optimizasyon modellemesi ve dersleri
CVXPYDışbükey optimizasyon problemlerini modellemeLP'nin yanında dışbükey optimizasyona giriş

Öneri: LP çözmek için SciPy ile başla; model formülasyonu ön plandaysa PuLP ya da Pyomo kullan. Wyndor modeli SciPy ile:

from scipy.optimize import linprog

# linprog her zaman minimize eder: max 3x1 + 5x2  yerine  min -3x1 - 5x2
c = [-3, -5]
A_ub = [[1, 0],   # Fabrika 1:  x1        <= 4
        [0, 2],   # Fabrika 2:       2x2  <= 12
        [3, 2]]   # Fabrika 3:  3x1 + 2x2 <= 18
b_ub = [4, 12, 18]

res = linprog(c, A_ub=A_ub, b_ub=b_ub,
              bounds=[(0, None), (0, None)], method="highs")
print(res.x, -res.fun)   # [2. 6.] 36.0

\(\ge\) kısıtları A_ub'a \(-1\) ile çarpılarak, eşitlikler A_eq ve b_eq ile verilir. Save-It ve Union Airways modelleri de aynı şekilde çözülebilir; bu notta verilen optimum değerler (35.109,65 $ ve 30.610 $) SciPy ile doğrulandı.

Alıştırmalar

Slaytlardaki alıştırmalar. Önce kendin formüle edip çöz, sonra çözümü aç. Çözümler slaytlarda yok; burada hazırlanıp SciPy ile doğrulandı.

Alıştırma 1 · Çiftçi

Bir çiftçi 100 hektarlık arazisinin bir kısmına patates, bir kısmına buğday ekmeyi, kalanını nadasa bırakmayı planlıyor. Patatesin hektar başına maliyeti 10, buğdayınki 20 para birimi; toplam bütçe 1.100. Hava ve mevsim koşulları yüzünden yılda en fazla 160 iş günü var; patates hektar başına 1, buğday 4 iş günü istiyor. Hasat sonunda net getiri patateste hektar başına 40, buğdayda 120. Toplam getiriyi en büyüklemek için arazi nasıl paylaştırılmalı?

Çözümü göster

\(x_1\): patates ekilen alan (ha), \(x_2\): buğday ekilen alan (ha).

\[ \begin{aligned} \max\quad & Z = 40x_1 + 120x_2 \\ \text{öyle ki}\quad & x_1 + x_2 \le 100 && \text{(arazi)} \\ & 10x_1 + 20x_2 \le 1100 && \text{(bütçe)} \\ & x_1 + 4x_2 \le 160 && \text{(iş günü)} \\ & x_1, x_2 \ge 0 \end{aligned} \]
\(x_1\)\(x_2\)Hangi kısıtların kesişimi\(Z\)
00eksenler0
1000arazi, \(x_2 = 0\)4.000
9010arazi, bütçe4.800
6025bütçe, iş günü5.400
040iş günü, \(x_1 = 0\)4.800

Optimum: 60 ha patates, 25 ha buğday, 15 ha nadas; \(Z = 5.400\). Bütçe ve iş günü tamamen kullanılır, arazide 15 ha boş kalır. (Arazi ve iş günü doğrularının kesişimi \((80, 20)\) bütçeyi aştığı için olurlu değildir.)

Şekil 5. Kısıtlar: (1) arazi, (2) bütçe, (3) iş günü. Kesikli turuncu çizgi optimumdan geçen eş-getiri doğrusu \(40x_1 + 120x_2 = 5.400\).
Alıştırma 2 · Alaşım

Bir firma çelik ve demir tozundan bir alaşım üretiyor. Maliyet ton başına çelikte 50 $, demir tozunda 20 $. Teknik şartlar: her 2 ton demir tozu için en az 1 ton çelik kullanılmalı; 1 ton çeliği işlemek 1 saat, 1 ton demir tozunu işlemek 4 saat sürüyor ve toplam işleme süresi en az 80 saat olmalı; işleme sırasında çelikte %10, demir tozunda %20 kayıp oluyor ve kullanılabilir toplam çıktı en az 40 ton olmalı. En düşük maliyetli üretim planını bulan modeli kur.

Çözümü göster

\(x_1\): çelik (ton), \(x_2\): demir tozu (ton). “Her 2 ton demir tozu için en az 1 ton çelik” şartı \(x_1 \ge x_2 / 2\), yani \(2x_1 - x_2 \ge 0\) demektir.

\[ \begin{aligned} \min\quad & Z = 50x_1 + 20x_2 \\ \text{öyle ki}\quad & 2x_1 - x_2 \ge 0 && \text{(oran)} \\ & x_1 + 4x_2 \ge 80 && \text{(işleme süresi)} \\ & 0{,}9x_1 + 0{,}8x_2 \ge 40 && \text{(kullanılabilir çıktı)} \\ & x_1, x_2 \ge 0 \end{aligned} \]

Olurlu bölge yukarı-sağa doğru sınırsızdır, ama maliyet katsayıları pozitif olduğu için en küçük değer yine bir köşede bulunur:

\(x_1\)\(x_2\)Hangi kısıtların kesişimi\(Z\)
1632oran, çıktı1.440
240/7 ≈ 34,2980/7 ≈ 11,43süre, çıktı≈ 1.942,86
800süre, \(x_2 = 0\)4.000

Optimum: 16 ton çelik ve 32 ton demir tozu, \(Z = 1.440\) $. Bu noktada oran şartı ve çıktı şartı sıkıdır; işleme süresi 144 saattir, alt sınırın oldukça üstünde.

Şekil 6. Kısıtlar: (1) oran, (2) işleme süresi, (3) kullanılabilir çıktı. Olurlu bölge sağa ve yukarı doğru sonsuza uzanır; minimizasyonda eş-maliyet doğrusu \(50x_1 + 20x_2 = 1.440\) orijine doğru itilir ve bölgeye son olarak \((16, 32)\)'de dokunur.
Alıştırma 3 · Rafineri

Bir petrol şirketi ham petrolü iki yöntemle işleyebiliyor. Proses I: 1 ton ham petrolü 3/4 ton A maddesi ve 1/4 ton B maddesine çeviriyor, 20 işçi gerektiriyor; günlük kapasitesi en fazla 2 ton, işletme maliyeti ton başına 60 $. Proses II: 1 ton ham petrolü 1/4 ton A ve 3/4 ton B'ye çeviriyor, 10 işçi gerektiriyor; günlük kapasitesi en fazla 3 ton, maliyeti ton başına 30 $. Şirketin günlük sınırı 40 işçi ve 4 ton ham petrol. (a) A'nın satış fiyatı ton başına 285 $, B'ninki 105 $ ise; (b) A 475 $, B 15 $ ise günlük üretim kârı en büyükleyecek şekilde nasıl planlanmalı?

Çözümü göster

\(x_1\), \(x_2\): Proses I ve II'de günde işlenen ham petrol (ton). Kısıtlar fiyatlardan bağımsızdır:

\[ x_1 \le 2,\qquad x_2 \le 3,\qquad 20x_1 + 10x_2 \le 40 \;\text{(işçi)},\qquad x_1 + x_2 \le 4 \;\text{(ham petrol)},\qquad x_1, x_2 \ge 0 \]

İşlenen ton başına net kâr = ürünlerin satış değeri − işletme maliyeti:

\[ c_1 = \tfrac{3}{4} p_A + \tfrac{1}{4} p_B - 60, \qquad c_2 = \tfrac{1}{4} p_A + \tfrac{3}{4} p_B - 30 \]
  • (a) \(p_A = 285,\ p_B = 105\): \(c_1 = 213{,}75 + 26{,}25 - 60 = 180\), \(c_2 = 71{,}25 + 78{,}75 - 30 = 120\).
  • (b) \(p_A = 475,\ p_B = 15\): \(c_1 = 356{,}25 + 3{,}75 - 60 = 300\), \(c_2 = 118{,}75 + 11{,}25 - 30 = 100\).
\(x_1\)\(x_2\)(a) \(Z = 180x_1 + 120x_2\)(b) \(Z = 300x_1 + 100x_2\)
0000
20360600
0,53450450
03360300

(a) Optimum: Proses I'de 0,5 ton, Proses II'de 3 ton; günlük kâr 450 $. (b) Optimum: yalnızca Proses I'de 2 ton; günlük kâr 600 $. Fiyatlar değişince optimum bir köşeden ötekine atlar. Ham petrol kısıtı fazladır: olurlu bölgede \(x_1 + x_2\) en fazla 3,5 olabilir, 4'e hiç ulaşmaz.

Şekil 7. Aynı olurlu bölge, iki farklı amaç. Kısıtlar: (1) Proses I kapasitesi, (2) Proses II kapasitesi, (3) işçi, (4) ham petrol; (4) bölgeye hiç değmez. Solda (a): eş-kâr doğrusu işçi kısıtından daha yatık olduğu için optimum üst köşeye kayar. Sağda (b): Proses I çok daha kârlı, doğru dikleşir ve optimum \((2, 0)\)'a geçer.

Alıştırma 4 · Tek makine

Bir şirket iki ürünü tek bir makinede işliyor. Ürün 1 için 3 saat, ürün 2 için 2 saat işleme süresi gerekiyor; makine günde en fazla 12 saat çalışabiliyor. Ürün 1'in her birimi için 1, ürün 2'nin her birimi için 2 birim ara malzeme kullanılıyor; toplam ara malzeme 6 birimi aşmamalı. Birim kâr ürün 1'de 15 TL, ürün 2'de 25 TL. Modeli kur ve grafik/analitik yöntemle çöz.

Çözümü göster
\[ \begin{aligned} \max\quad & Z = 15x_1 + 25x_2 \\ \text{öyle ki}\quad & 3x_1 + 2x_2 \le 12 && \text{(makine saati)} \\ & x_1 + 2x_2 \le 6 && \text{(ara malzeme)} \\ & x_1, x_2 \ge 0 \end{aligned} \]
\(x_1\)\(x_2\)\(Z\)
000
4060
31,582,5
0375

İki kısıtın kesişimi: \(3x_1 + 2x_2 = 12\) ile \(x_1 + 2x_2 = 6\) taraf tarafa çıkarılırsa \(2x_1 = 6\), yani \(x_1 = 3\), \(x_2 = 1{,}5\). LP optimumu \(Z = 82{,}5\) TL.

Ürünler tam sayıda üretilmek zorundaysa: \(x_2 = 1{,}5\)'i aşağı yuvarlamak \((3, 1)\) ile 70 TL verir; yukarı yuvarlamak \((3, 2)\) makine kısıtını ihlal eder (\(9 + 4 = 13 \gt 12\)). Tamsayı noktalar tek tek denendiğinde en iyisi \((2, 2)\), \(Z = 80\) TL çıkar. Yani tamsayılı optimum, LP optimumunun yuvarlanmasıyla bulunamıyor; bu, tamsayılı programlamanın (Hafta 13) ayrı yöntemlere ihtiyaç duymasının nedenidir.

Şekil 8. Gri noktalar olurlu tamsayı çözümlerdir. LP optimumu \((3; 1{,}5)\) bir tamsayı nokta değildir. Onu yuvarlayarak bulunan \((3, 1)\) 70 TL verir; kırmızı halkadaki \((2, 2)\) ise 80 TL ile tamsayılı optimumdur. Tamsayılı optimum, LP optimumuna en yakın tamsayı nokta değildir.
Alıştırma 5 · Soğuk hava deposu

A ve B adlı iki gıda ürünü bir soğuk hava deposunda saklanıyor. A ürünü 3 saat, B ürünü 2 saat tutuluyor ve depo en az 5 saat açık kalmalı. İki ürünün toplam talebi en fazla 1 ton. Birim kâr A için 4 $, B için 3 $. Karar modelini kur ve çözümünü grafik/analitik yöntemle incele.

Çözümü göster

\(x_1\), \(x_2\): A ve B ürünü miktarı (ton).

\[ \begin{aligned} \max\quad & Z = 4x_1 + 3x_2 \\ \text{öyle ki}\quad & 3x_1 + 2x_2 \ge 5 && \text{(depo en az 5 saat)} \\ & x_1 + x_2 \le 1 && \text{(talep)} \\ & x_1, x_2 \ge 0 \end{aligned} \]

Olurlu çözüm yok. Talep kısıtı altında \(3x_1 + 2x_2 \le 3(x_1 + x_2) \le 3\) olur; yani depo süresi en fazla 3 saate ulaşabilir ve 5 saat şartı hiçbir zaman sağlanamaz. Grafikte \(3x_1 + 2x_2 = 5\) doğrusu, \((0, 0)\), \((1, 0)\), \((0, 1)\) üçgeninin tamamen dışında kalır.

Şekil 9. Soluk bölgeler her kısıtın tek başına izin verdiği yerlerdir: (1) depo süresi doğrunun sağ üstünü, (2) talep ise köşedeki küçük üçgeni ister. İkisinin ortak noktası yoktur.

Bu alıştırma “olurlu çözüm yok” durumunun gerçek hayattaki karşılığını gösterir: model doğru kurulmuş olsa bile şartlar birbiriyle çelişiyordur. Karar verici bir şartı gevşetmelidir; örneğin talep sınırı en az 5/3 ton olursa \(x_1 = 5/3\) olurlu hâle gelir.

Özet