📋 İçindekiler
- Kuyruk Sistemi Nedir
- Kendall Notasyonu
- Poisson Geliş ve Eksponansiyel Servis
- M/M/1 Modeli — Tam Formüller ve Örnek
- M/M/1/K — Sınırlı Kapasiteli Kuyruk
- M/M/c — Çok Sunuculu Sistem (Erlang C)
- M/G/1 — Genel Servis Süresi (Pollaczek-Khinchine)
- Optimal Sunucu Sayısı — Maliyet Minimizasyonu
- Kuyruk Simülasyonu
- Gerçek Dünya Uygulamaları
Kuyruk Sistemi Nedir
Bir kuyruk sistemi, gelişler (arrivals) ile servis kapasitesi arasındaki eşleşmezlikten doğar. Müşteriler (veya iş emirleri, veri paketleri, vgb.) gelirler, servis için beklerler ve ayrılırlar. Kuyruk teorisi bu sistemin performansını analitik olarak hesaplar.
🏦 Banka kasasında bekleyen müşteriler
🏭 Fabrika iş istasyonunda biriken iş emirleri
🚗 Benzin istasyonu/tol gişesi
💻 Web sunucusuna gelen HTTP istekleri
🏥 Acil serviste triaj yapılan hastalar
📦 Depoda boşaltılmayı bekleyen TIR'lar
✈️ Havalimanında inişi bekleyen uçaklar
Kuyruk sisteminin temel bileşenleri:
Kendall Notasyonu: A/B/c/K/N/D
| Kısım | Anlamı | Örnekler |
|---|---|---|
| A — Geliş Dağılımı | Gelişler arası süre dağılımı | M (Markov/Poisson), D (deterministik), G (genel), E_k (Erlang-k) |
| B — Servis Dağılımı | Servis süresi dağılımı | M (eksponansiyel), D, G, E_k |
| c — Sunucu Sayısı | Paralel sunucu adedi | 1, 2, 3, ..., ∞ |
| K — Sistem Kapasitesi | Max kuyruk + servis müşteri sayısı | ∞ (sonsuz), 5, 10, vb. |
| N — Nüfus | Potansiyel müşteri havuzu | ∞ (sonsuz), N (sonlu) |
| D — Servis Politikası | Kuyruk öncelik kuralı | FCFS (geliş sırası), LCFS, SPT, PR (öncelikli) |
M/M/1: Poisson geliş, eksponansiyel servis, 1 sunucu, sonsuz kapasite
M/M/c: Poisson geliş, eksponansiyel servis, c sunucu, sonsuz kapasite
M/G/1: Poisson geliş, genel servis dağılımı, 1 sunucu
Poisson Geliş ve Eksponansiyel Servis
📊 Poisson Dağılımı (Gelişler)
Birim zamanda gelen müşteri sayısı Poisson dağılımını izliyorsa, gelişler arası bekleme süresi Eksponansiyel dağılım gösterir. Parametresi: λ (ortalama geliş hızı).
Özellikler:
• Hafızasız (memoryless)
• Bağımsız artışlar
• Stasyoner homojen
⏱ Eksponansiyel Dağılım (Servis)
Servis süresi eksponansiyel olduğunda: parametre μ (ortalama servis hızı), ortalama servis süresi = 1/μ. Eksponansiyel dağılım da hafızasızdır — şu ana kadar ne kadar süredir servis gördüğünden bağımsız.
E[T] = 1/μ
Var[T] = 1/μ²
Cv = σ/μ = 1 (eksponansiyelde)
Cv > 1 → yüksek değişkenlik
M/M/1 Modeli — Tam Formüller ve Sayısal Örnek
Bir banka şubesine ortalama λ = 20 müşteri/saat geliyor.
Kasiyer ortalama μ = 25 müşteri/saat servisi tamamlıyor.
Sistem: M/M/1 (tek gişe, Poisson geliş, eksponansiyel servis)
Sunucu Kullanım Oranı: ρ = λ / μ = 20 / 25 = 0.80
(ρ < 1 olmalı — değilse kuyruk sonsuza büyür!)
Durum Olasılıkları:
P₀ = 1 − ρ = 1 − 0.80 = 0.20 (sistem boş olma olasılığı)
Pₙ = (1 − ρ) × ρⁿ = 0.20 × (0.80)ⁿ
P₁ = 0.20 × 0.8¹ = 0.16
P₂ = 0.20 × 0.8² = 0.128
P(n ≥ 3) = ρ³ = 0.512
Performans Metrikleri:
L = Sistemdeki ortalama müşteri sayısı = ρ / (1 − ρ) = 0.80 / 0.20 = 4.0 müşteri
Lq = Kuyrukta ortalama müşteri sayısı = ρ² / (1 − ρ) = 0.64 / 0.20 = 3.2 müşteri
W = Ortalama sistemde kalma süresi = L / λ = 4.0 / 20 = 0.20 saat = 12 dakika
Wq = Ortalama kuyruk bekleme süresi = Lq / λ = 3.2 / 20 = 0.16 saat = 9.6 dakika
Little Yasası (Little's Law)
Lq = λ × Wq
Kontrol: L = λ × W → 20 × 0.20 = 4.0 ✓
Kontrol: Lq = λ × Wq → 20 × 0.16 = 3.2 ✓
İlişki: W = Wq + 1/μ (bekleme süresi + servis süresi = toplam süre)
Kontrol: W = 0.16 + 1/25 = 0.16 + 0.04 = 0.20 saat ✓
M/M/1/K — Sınırlı Kapasiteli Kuyruk
Bazı sistemler sonsuz müşteri bekleyemez. Otopark, tutuklama hücresi, bellek tamponu gibi sisteme giren müşteri sayısı K ile sınırlı olduğunda M/M/1/K modeli kullanılır. K'yı aşan müşteriler geri döner (blocking).
Pₙ = P₀ × ρⁿ (n = 0, 1, ..., K için)
P₀ = (1 − ρ) / (1 − ρ^(K+1))
Pₖ = Engelleme Olasılığı = P₀ × ρᴷ
Efektif geliş hızı: λ_eff = λ × (1 − Pₖ) (geri dönenler dahil değil)
L = Σ(n × Pₙ, n=0..K) = ρ/(1−ρ) − (K+1)ρ^(K+1)/(1−ρ^(K+1))
W = L / λ_eff
Örnek: K=5, λ=20, μ=25 (ρ=0.80)
P₀ = (1−0.8) / (1−0.8⁶) = 0.2 / (1−0.262) = 0.2/0.738 = 0.271
P₅ = 0.271 × 0.8⁵ = 0.271 × 0.328 = 0.089 (engelleme olasılığı %8.9)
λ_eff = 20 × (1−0.089) = 20 × 0.911 = 18.2 müşteri/saat
M/M/c — Çok Sunuculu Sistem (Erlang C Formülü)
Bankada birden fazla kasiyer açıksa, CNC tezgahına birden fazla operatör atandıysa M/M/c modeli kullanılır. c sunucu var, hepsi aynı μ hızında çalışıyor.
λ = 60 müşteri/saat, μ = 25 müşteri/saat (her kasiyer)
Kaç kasiyer optimum (c = 3 veya 4)
Not: c ≥ ⌈λ/μ⌉ = ⌈60/25⌉ = ⌈2.4⌉ = 3 (en az 3 kasiyer gerekli!)
Sunucu başı kullanım: ρ = λ / (c × μ) — c sunucu için toplam
Yoğunluk katsayısı: a = λ / μ = 60/25 = 2.4 Erlang
Erlang C Formülü — P_q (Bekleme Olasılığı):
C(c,a) = (aᶜ/c!) × (c/(c−a)) / [Σ(aⁿ/n!, n=0..c-1) + (aᶜ/c!) × (c/(c−a))]
c=3, a=2.4:
a⁰/0! = 1
a¹/1! = 2.4
a²/2! = 2.88
Σ(m=0..2) = 1 + 2.4 + 2.88 = 6.28
a³/3! = 2.4³/6 = 13.824/6 = 2.304
c/(c−a) = 3/(3−2.4) = 3/0.6 = 5.0
(aᶜ/c!) × c/(c−a) = 2.304 × 5.0 = 11.52
C(3, 2.4) = 11.52 / (6.28 + 11.52) = 11.52 / 17.80 = 0.647
→ Gelen bir müşterinin bekleme olasılığı: %64.7
Performans Metrikleri (c=3):
Lq = C(c,a) × ρ / (1−ρ) = 0.647 × (2.4/3) / (1 − 2.4/3) = 0.647 × 0.8/0.2 = 0.647 × 4 = 2.588 müşteri
Wq = Lq / λ = 2.588 / 60 = 0.0431 saat = 2.59 dakika
W = Wq + 1/μ = 0.0431 + 1/25 = 0.0431 + 0.04 = 0.0831 saat = 4.99 dakika
L = λ × W = 60 × 0.0831 = 4.99 müşteri
M/M/c Performans Karşılaştırması (c = 3, 4, 5)
| c (Sunucu) | ρ = a/c | C(c,a) Erlang | Lq | Wq (dk) | W (dk) | Sunucu Maliyet |
|---|---|---|---|---|---|---|
| 3 | 0.800 | 0.647 | 2.59 | 2.59 | 4.99 | 3 × 50 = 150 ₺/saat |
| 4 | 0.600 | 0.101 | 0.152 | 0.152 dk | 2.55 dk | 4 × 50 = 200 ₺/saat |
| 5 | 0.480 | 0.013 | 0.016 | 0.016 dk | 2.42 dk | 5 × 50 = 250 ₺/saat |
Bekleme süresi: 2.59 dk → 0.15 dk (17 kat azalma!)
Bunun nedeni: c=3'te ρ=0.80 → %64.7 bekleme; c=4'te ρ=0.60 → sadece %10.1 bekleme
Kuyruk uzunluğu: 2.59 → 0.15 müşteri (17 kat!)
Bu, kuyruk teorisinin "bant genişliği" sınırına yaklaşma etkisidir.
M/G/1 — Genel Servis Süresi (Pollaczek-Khinchine Formülü)
Gerçek hayatta servis süresi her zaman eksponansiyel değildir. Makineler farklı işlem süreleri gerektirebilir. A/G/1 modeli, servis süresinin herhangi bir dağılıma sahip olabileceğini varsayar; yalnızca ortalamasını (1/μ) ve varyansını (σ²) bilmek yeterlidir.
ρ = λ / μ (birim zamanda tamamlanan iş oranı)
Cv² = σ²_s × μ² (servis süresinin katsayı varyasyonu karesi)
Lq = ρ² × (1 + Cv²) / (2(1 − ρ)) — Kuyrukta bekleme miktarı
Wq = Lq / λ (Little Yasası ile)
W = Wq + 1/μ
L = λ × W
Özel Durumlar:
Cv = 1 (eksponansiyel servis): → M/M/1 sonucu → Lq = ρ²/(2(1−ρ)) × 2 = ρ²/(1−ρ) ✓
Cv = 0 (sabit/deterministik servis M/D/1): → Lq = ρ²/(2(1−ρ)) — tam yarısı!
Cv > 1 (yüksek değişkenlik): → Daha uzun bekleme
λ = 8 iş/saat | Ortalama işlem süresi = 1/μ = 6 dakika → μ = 10 iş/saat
ρ = 8/10 = 0.80
Standart sapma σ_s = 4 dakika (değişken kesim derinlikleri nedeniyle)
Cv = σ_s / (1/μ) = 4/6 = 0.667 → Cv² = 0.444
M/G/1 ile:
Lq = ρ² × (1 + Cv²) / (2(1−ρ)) = 0.64 × (1+0.444) / (2×0.2) = 0.64 × 1.444 / 0.4 = 2.31 iş
Wq = 2.31 / 8 = 0.289 saat = 17.3 dakika
M/M/1 ile karşılaştırma:
Lq_MM1 = 0.64/0.2 = 3.2 iş | Wq_MM1 = 24 dk
M/G/1 ile bekleme süresi M/M/1'den %28 kısa — servis düzenliliği avantajı!
Optimal Sunucu Sayısı — Maliyet Minimizasyonu
Kaç sunucu açılmalı Fazla sunucu → düşük bekleme ama yüksek işletme maliyeti. Az sunucu → uzun bekleme ama müşteri kaybı. Optimum, toplam maliyeti minimize eden sunucu sayısıdır.
TC(c) = c × C_s + λ × Wq(c) × C_w
C_s = Sunucu başına birim zamanda maliyet (₺/saat)
C_w = Müşteri başına bekleme maliyeti (₺/müşteri/saat)
Senaryo:
λ = 60 müşteri/saat, μ = 25/saat
C_s = 50 ₺/saat (kasiyer ücreti)
C_w = 30 ₺/müşteri/saat (bekleme kaybı — müşteri memnuniyetsizliği, vb.)
| c | ρ = λ/(cμ) | C(c,a) | Lq | Wq (saat) | Sunucu Maliyeti (c×50) | Bekleme Maliyeti (λ×Wq×30) | Toplam TC(c) |
|---|---|---|---|---|---|---|---|
| 2 | >1.0 ❌ | — | ∞ | ∞ | 100 | ∞ | ∞ |
| 3 | 0.800 | 0.647 | 2.588 | 0.0431 | 150 | 60 × 0.0431 × 30 = 77.6 | 227.6 |
| 4 ★ | 0.600 | 0.101 | 0.152 | 0.00253 | 200 | 60 × 0.00253 × 30 = 4.6 | 204.6 ← MİN |
| 5 | 0.480 | 0.013 | 0.016 | 0.000267 | 250 | 0.5 | 250.5 |
| 6 | 0.400 | 0.0013 | 0.0014 | — | 300 | ~0 | 300.0 |
c=3'ten c=4'e geçerken: Sunucu maliyet +50 ₺/saat, ama bekleme maliyeti 77.6 → 4.6 ₺/saat (73 ₺ düşüş)
→ Net kazanç: 73 − 50 = 23 ₺/saat → Yıllık ~200.000 ₺ net tasarruf (8 saat/gün, 250 gün)
c=5'e gidince: Sunucu maliyeti 50 ₺ artıyor ama bekleme maliyeti zaten 4.6'dan sadece 0.5'e iniyor → Net kayıp
Kuyruk Simülasyonu (Discrete Event Simulation)
Analitik modeller M/M/1, M/M/c vb. kapalı form çözümler sunsa da gerçek sistemler daha karmaşıktır: gelişler Poisson değil, servis süreleri eksponansiyel değil, arıza süreleri var, öncelikler var. Bu durumlarda simülasyon tercih edilir.
Geliş zamanları (dk): 0, 4, 7, 12, 18, 25...
Servis süreleri (dk): 5, 3, 6, 4, 8, 2...
| Müşteri | Geliş | Servis Başlangıç | Servis Bitiş | Bekleme | Kuyrukta bekleme (dk) |
|---|---|---|---|---|---|
| 1 | 0 | 0 | 5 | 0 | 0 |
| 2 | 4 | 5 | 8 | 1 | 1 |
| 3 | 7 | 8 | 14 | 1 | 1 |
| 4 | 12 | 14 | 18 | 2 | 2 |
| 5 | 18 | 18 | 26 | 0 | 0 |
Gerçek Dünya Uygulamaları
ulusal bir havayolu şirketi bakım merkezi (Teknik), motor revizyonu iş emirlerini M/G/1 modeli ile analiz eder. Motor türüne göre değişen işlem süreleri nedeniyle servis süresinin varyansı yüksektir. P-K formülü ile optimal iş emri sıralaması ve teknisyen sayısı belirlenmektedir. Ankara Esenboğa MRO merkezinde bu model 2023'te tezgah kullanım oranını %78'den %91'e çıkardı.
özel bir sağlık grubu, acil servis triaj sistemini M/M/c/K öncelikli kuyruk modeli ile optimize etti. Kritik hastalar (PR1) kuyrukta atlanır, stabil hastalar bekleyebilir. Erlang C hesabı ile gece/gündüz kadrolar optimize edildi. Ortalama acil servis bekleme süresi 47 dk'dan 28 dk'ya indi.
küresel bir e-ticaret devi Istanbul deposunda sipariş toplama iş istasyonları M/M/c modeli ile tasarlandı. Sipariş geliş hızı (λ) saate ve haftanın gününe göre değişkendir, bu nedenle dinamik personel çizelgeleme uygulanmaktadır. Kapasiteye göre ρ < 0.75 tutularak %95 müşteri sipariş hızına uyulmuştur.