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.

🏬
Kuyruk, Çok Farklı Yerlerde:
🏦 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:

Gelişler
λ (per saat)
Kuyruk (Bekleme)
Lq müşteri
FIFO/LIFO/Random
c Sunucu
μ (per saat)
Çıkış
λ (steady)

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)
📝
Kısaltılmış Kendall: Genellikle yalnızca ilk 3 kısım belirtilir: M/M/1, M/M/c, M/G/1
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ı).

P(X=k) = (λt)^k × e^(−λt) / k!

Ö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.

f(t) = μ × e^(−μt) t ≥ 0
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

🏦
Senaryo: Banka Şubesi Kasası
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)
M/M/1 Temel Parametreleri:

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
%80
Sunucu Kullanımı (ρ)
4.0
L — Sistemdeki Müşteri
3.2
Lq — Kuyrukta Müşteri
12 dk
W — Toplam Süre
9.6 dk
Wq — Bekleme Süresi
%20
P₀ — Boş Olma

Little Yasası (Little's Law)

L = λ × W (Kuyruk teorisinin temel teoremi — herhangi kararlı sistemde geçerli!)
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).

M/M/1/K Formülleri: (λ ≠ μ durumu)

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.

🏦
Senaryo: Büyük Banka — Birden Fazla Gişe
λ = 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!)
M/M/c Parametreleri:
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
💡
c=3 ve c=4 arasındaki dramatik fark:
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.

Pollaczek-Khinchine (P-K) Ortalama Değer Formülü:

ρ = λ / μ (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
🏭
Sayısal Örnek: CNC İşleme İstasyonu
λ = 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.

Toplam Maliyet Modeli:

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
🎯
Sonuç: En Optimal c = 4 Kasiyer
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.

El Simülasyonu (Event-Driven) — Küçük Örnek:

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
Ortalama bekleme: (0+1+1+2+0)/5 = 0.8 dk/müşteri

Gerçek Dünya Uygulamaları

✈️ ulusal bir havayolu şirketi — Uçuş Kontrol Servisi

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 Optimizasyonu

ö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 Türkiye — Depo İş İstasyonları

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.