📋 İçindekiler
1. Yöneylem Araştırması (Operations Research) Nedir
İkinci Dünya Savaşı'nda İngiliz ordusunun radarların yerleşimini optimize etmek için oluşturduğu akademik ekiplerin icadıdır. Bugün lojistik, üretim, finans ve sağlık alanlarında "en iyi kararı" matematiksel modelle bulmak için kullanılır.
| OR Alt Dalı | Problem Tipi | Örnek |
|---|---|---|
| Doğrusal Programlama (LP) | Sürekli karar, doğrusal kısıt | Üretim karması, diyet problemi |
| Tam Sayılı Programlama (IP) | Evet/Hayır kararları | Tesis yerleşimi, rota seçimi |
| Ağ Modelleri | Akış, rota | En kısa yol, max akış |
| Kuyruk Teorisi | Bekleme hattı | Banka/hastane kuyruğu |
| Simülasyon | Karmaşık stokastik sistem | Fabrika, havaalanı |
| Oyun Teorisi | Rakip stratejisi | Pazar payı, ihale |
2. LP Model Yapısı
LP Modelinin 3 Yapı Taşı:
1. Karar Değişkenleri (Decision Variables):
x₁, x₂, ..., xₙ → Ne kadar üretmeliyim
2. Amaç Fonksiyonu (Objective Function):
Maks Z = c₁x₁ + c₂x₂ + ... + cₙxₙ (Kâr maksimizasyonu)
veya Min Z = ... (Maliyet minimizasyonu)
3. Kısıtlar (Constraints):
a₁₁x₁ + a₁₂x₂ ≤ b₁ (kaynak kısıtı)
a₂₁x₁ + a₂₂x₂ ≤ b₂ (kapasite kısıtı)
x₁, x₂ ≥ 0 (negatif olmama kısıtı)
1. Karar Değişkenleri (Decision Variables):
x₁, x₂, ..., xₙ → Ne kadar üretmeliyim
2. Amaç Fonksiyonu (Objective Function):
Maks Z = c₁x₁ + c₂x₂ + ... + cₙxₙ (Kâr maksimizasyonu)
veya Min Z = ... (Maliyet minimizasyonu)
3. Kısıtlar (Constraints):
a₁₁x₁ + a₁₂x₂ ≤ b₁ (kaynak kısıtı)
a₂₁x₁ + a₂₂x₂ ≤ b₂ (kapasite kısıtı)
x₁, x₂ ≥ 0 (negatif olmama kısıtı)
3. Grafik Yöntem ile Çözüm (2 Değişken)
Örnek Problem:
Maks Z = 40x₁ + 50x₂ (Kâr)
Kısıtlar:
x₁ + 2x₂ ≤ 40 (İşgücü saati)
4x₁ + 3x₂ ≤ 120 (Hammadde kg)
x₁, x₂ ≥ 0
Grafik çözüm adımları:
1. Her kısıtı doğru olarak çiz
2. Uygun bölgeyi (feasible region) belirle
3. Köşe noktalarını hesapla
4. Z'yi her köşe noktasında değerlendir
Köşe noktaları:
A(0, 0): Z = 0
B(30, 0): Z = 40×30 = 1.200
C(24, 8): Z = 40×24 + 50×8 = 960 + 400 = 1.360
D(0, 20): Z = 50×20 = 1.000
Optimal: C(24, 8) → Z* = 1.360 ₺
Maks Z = 40x₁ + 50x₂ (Kâr)
Kısıtlar:
x₁ + 2x₂ ≤ 40 (İşgücü saati)
4x₁ + 3x₂ ≤ 120 (Hammadde kg)
x₁, x₂ ≥ 0
Grafik çözüm adımları:
1. Her kısıtı doğru olarak çiz
2. Uygun bölgeyi (feasible region) belirle
3. Köşe noktalarını hesapla
4. Z'yi her köşe noktasında değerlendir
Köşe noktaları:
A(0, 0): Z = 0
B(30, 0): Z = 40×30 = 1.200
C(24, 8): Z = 40×24 + 50×8 = 960 + 400 = 1.360
D(0, 20): Z = 50×20 = 1.000
Optimal: C(24, 8) → Z* = 1.360 ₺
4. Simplex Algoritması (Dantzig, 1947)
| Adım | İşlem | Açıklama |
|---|---|---|
| 1. Standart Forma Çevir | Aylak değişken (slack) ekle | x₁+2x₂+s₁=40 |
| 2. Başlangıç BFS | Aylak değişkenler bazda | s₁=40, s₂=120, Z=0 |
| 3. Giren Değişken | Z satırında en negatif katsayı | En çok kâr artıracak |
| 4. Çıkan Değişken | Minimum oran testi | Kısıtı ihlal etmeyecek |
| 5. Pivot İşlemi | Gauss eliminasyonu | Yeni köşe noktasına geç |
| 6. Optimallik Testi | Z satırında negatif katsayı var mı | Yoksa → OPTIMAL! |
Simplex'in Gücü:
2 değişkende grafik çizeriz ama gerçek dünyada 40 değişken + 50 kısıt olabilir! 40 boyutlu uzayda grafik çizemeyiz. Simplex, bu çok boyutlu polihedronun köşelerinden yürüyerek garantili optimuma ulaşır. 20. yüzyılın en önemli 10 algoritmasından biridir.
2 değişkende grafik çizeriz ama gerçek dünyada 40 değişken + 50 kısıt olabilir! 40 boyutlu uzayda grafik çizemeyiz. Simplex, bu çok boyutlu polihedronun köşelerinden yürüyerek garantili optimuma ulaşır. 20. yüzyılın en önemli 10 algoritmasından biridir.
5. Duyarlılık Analizi
| Analiz | Soru | Çıktı |
|---|---|---|
| Amaç Katsayısı Aralığı | c₁ ne kadar değişebilir (baz aynı kalırken) | c₁ ∈ [25, 66.7] → x₁ hâlâ bazda |
| RHS Aralığı | b₁ ne kadar değişebilir | b₁ ∈ [30, 60] → aynı köşe optimal |
| Gölge Fiyat | 1 birim ekstra kaynak ne kadar kâr artırır | İşgücü 1 saat artırsa Z = +₺15 |
| Reduced Cost | Bazda olmayan değişken ne kadar iyileşmeli | x₃ ürünü kâr ₺5 artarsa üretime girer |
6. Dualite ve Gölge Fiyat
Primal-Dual İlişkisi:
Primal: Maks Z = 40x₁+50x₂ (Kâr maksimize)
Dual: Min W = 40y₁+120y₂ (Kaynak maliyeti minimize)
y₁, y₂ → Gölge fiyatları (shadow prices)
y₁ = ₺15/saat → 1 ek işgücü saati ₺15 kâr artırır
y₂ = ₺6.25/kg → 1 ek kg hammadde ₺6.25 kâr artırır
Karar: Fazla mesai ücreti ₺12/saat ise → gölge fiyat ₺15 > ₺12 →
Fazla mesai yap! Net kâr = ₺3/saat.
Primal: Maks Z = 40x₁+50x₂ (Kâr maksimize)
Dual: Min W = 40y₁+120y₂ (Kaynak maliyeti minimize)
y₁, y₂ → Gölge fiyatları (shadow prices)
y₁ = ₺15/saat → 1 ek işgücü saati ₺15 kâr artırır
y₂ = ₺6.25/kg → 1 ek kg hammadde ₺6.25 kâr artırır
Karar: Fazla mesai ücreti ₺12/saat ise → gölge fiyat ₺15 > ₺12 →
Fazla mesai yap! Net kâr = ₺3/saat.
7. Ulaştırma Problemi
Ulaştırma Modeli:
Min Z = ΣΣ cij × xij
cij: Fabrika i → Depo j birim taşıma maliyeti
xij: Taşınan miktar
Kısıtlar:
Her fabrikadan çıkan ≤ Kapasite (arz kısıtı)
Her depoya gelen ≥ Talep (talep kısıtı)
Min Z = ΣΣ cij × xij
cij: Fabrika i → Depo j birim taşıma maliyeti
xij: Taşınan miktar
Kısıtlar:
Her fabrikadan çıkan ≤ Kapasite (arz kısıtı)
Her depoya gelen ≥ Talep (talep kısıtı)
| ₺/birim | Depo 1 | Depo 2 | Depo 3 | Arz |
|---|---|---|---|---|
| Fabrika A | ₺4 | ₺8 | ₺6 | 300 |
| Fabrika B | ₺7 | ₺5 | ₺3 | 200 |
| Fabrika C | ₺6 | ₺9 | ₺4 | 150 |
| Talep | 250 | 200 | 200 | 650 |
8. MILP ve Tam Sayılı Programlama
| Tür | Değişken Tipi | Örnek Problem |
|---|---|---|
| Saf IP | Tümü tam sayı | Vardiya atama (1 veya 0) |
| Binary IP (0-1) | x ∈ {0,1} | Tesis açma/kapatma |
| Mixed IP (MILP) | Karışık (sürekli + tam sayı) | Üretim + makine ataması |
9. Endüstriyel Solver'lar
| Solver | Tür | Lisans | Kullanım Alanı |
|---|---|---|---|
| Gurobi | LP/MILP/QP | Ticari (akademik ücretsiz) | En hızlı solver'lardan |
| CPLEX | LP/MILP/QP | Ticari | Kurumsal standart |
| COIN-OR (CBC) | LP/MILP | Açık kaynak | Akademik, KOBİ |
| Google OR-Tools | LP/CP/VRP | Açık kaynak | Rota, çizelgeleme |
| Excel Solver | LP/NLP | Excel dahili | Küçük modeller (200 var.) |
| PuLP (Python) | LP/MILP arayüzü | Açık kaynak | Hızlı prototip |
10. Vaka Çalışması 1: Üretim Karması Optimizasyonu
🏭 Mobilya Fabrikası — LP ile Ürün Karması
| Ürün | Kâr (₺) | İşçilik (s) | Ahşap (m²) | LP Çözüm |
|---|---|---|---|---|
| Masa | 800 | 3 | 4 | 120 adet |
| Sandalye | 350 | 1.5 | 1.5 | 280 adet |
| Dolap | 1.200 | 5 | 6 | 40 adet |
Sonuç: Manuel planlama ile haftalık kâr ₺285.000 iken LP optimal çözümü ₺342.000 → %20 kâr artışı. Duyarlılık analizi: Ahşap kısıtının gölge fiyatı ₺45/m² → tedarikçiden ₺40/m² ek ahşap alımı kârlı.
11. Vaka Çalışması 2: Kargo Dağıtım Ağı
📦 Lojistik Şirketi — MILP ile Dağıtım Optimizasyonu
| Metrik | Manuel Planlama | MILP Optimizasyon | İyileşme |
|---|---|---|---|
| Günlük toplam km | 45.000 km | 31.200 km | %31 azalma |
| Yakıt maliyeti | ₺180K/gün | ₺124K/gün | ₺56K/gün tasarruf |
| Araç kullanımı | %62 | %88 | +26 puan |
| Geç teslimat oranı | %8 | %2 | -75% |
| Yıllık tasarruf | — | — | ₺16.8M/yıl |
Model: 3 depo, 15 bölge, 120 araç. 5.400 karar değişkeni, 2.100 kısıt. Gurobi solver ile 45 saniyede çözüm.
12. Sonuç
LP/OR Uygulama Kontrol Listesi:
🎯 Problemi tanımla → Maks mı Min mi
📝 Karar değişkenlerini belirle → Ne kontrolümde
📊 Amaç fonksiyonunu yaz → Kâr/Maliyet formülü
🔒 Kısıtları listele → Kaynaklar, kapasite, talep
📐 Küçük modeli grafik/Excel ile test et
💻 Büyük model için solver kullan → PuLP, Gurobi
📈 Duyarlılık analizi → Gölge fiyat = karar bilgisi
🔄 Modeli periyodik güncelle → Parametreler değişir
🎯 Problemi tanımla → Maks mı Min mi
📝 Karar değişkenlerini belirle → Ne kontrolümde
📊 Amaç fonksiyonunu yaz → Kâr/Maliyet formülü
🔒 Kısıtları listele → Kaynaklar, kapasite, talep
📐 Küçük modeli grafik/Excel ile test et
💻 Büyük model için solver kullan → PuLP, Gurobi
📈 Duyarlılık analizi → Gölge fiyat = karar bilgisi
🔄 Modeli periyodik güncelle → Parametreler değişir