Doküman Listesi
Bu Sayfada

Simülasyon Motoru Nasıl Çalışır?

Simülasyon Engine’ini Anlamak

ProcessMind, süreçlerinizi modellemek için discrete event simulation (DES) motoru kullanır. Engine’in nasıl çalıştığını bilmek, simülasyonu daha iyi yapılandırıp sonuçları doğru yorumlamanızı sağlar.


Discrete Event Simulation Nedir?

Discrete event simulation’da sistem sadece belli event’larla değişir — saat bir event’ten diğerine atlar, arada hiçbir şey olmaz. Bu yöntem iş süreçleri için idealdir, çünkü:

  • Aktivitelerin belirgin başlangıç ve bitiş zamanları olur
  • Resource’lar belli anlarda atanır ve bırakılır
  • Case’ler belli anlarda başlar ve biter

Neden Discrete Event?

Sürekli simülasyondan (ör. fizik, akışkanlar dinamiği) farklı olarak, iş süreçlerinde anlık modelleme gerekmez. Bir kredi başvurusu “submitted”dan “approved”a yavaşça geçmez; durumu belirli event’lerle bir anda değişir.


Temel Event Döngüsü

Simülasyon engine’i basit ama güçlü bir döngüyü takip eder:

1. Initialize: Başlangıç ayarlarını yap
2. Get Next Event: Öncelikli sıradan en erken event'i bul
3. Advance Time: Simülasyon saatini event zamanına getir
4. Process Event: Event'i işle (aktivite başlat, bitir, vb.)
5. Schedule New Events: Olanlara göre yeni event'ler ekle
6. Repeat: Süre dolana veya maksimum event limiti (2.000.000) aşılana kadar devam et
7. Output: Tüm event log'unu oluştur

Event Türleri

Simülasyon aşağıdaki event türlerini üretir ve işler:

Event TipiNe Olur
Case ArrivalBir case process’e start event ile giriş yapar
Activity StartCase bir aktiviteyi başlatır (resource atanır)
Activity CompleteCase bir aktiviteyi bitirir (resource boşa çıkar)
Gateway EvaluationKarar noktasında yol seçilir
Case CompleteCase end event’e ulaşır

Case Oluşumu ve Gelişi

Case’ler simülasyona BPMN modelinizdeki Start Events ile girer. Geliş modeli, case generation distribution ile belirlenir.

Varsayılan Geliş Modeli

Varsayılan olarak case’ler Poisson distribution ile saatte 1 case olarak gelir. Bu, çoğu iş sürecindeki rastgele ve gerçekçi gelişleri yansıtır.

Gelişleri Özelleştir

Farklı geliş modellerini Distributions  sayfasında anlatılan dağılımlarla ayarlayabilirsiniz.


Process İçindeki Case Akışı

Sequence Flow’lar

Bir case bir elemanı tamamladığında hemen çıkış sequence flow’unu kullanır. Tek bir yol varsa otomatik gider.

Gateway Davranışı

Gateway’ler, case’lerin nasıl ayrılıp birleştiğini belirler:

Gateway TipiDavranış
XOR (Exclusive)Olasılık ağırlıklı random seçimle tek bir çıkış yolu seçilir. Olasılıklar ağırlık olarak alınır ve otomatik normalleştirilir.
AND (Parallel)Tüm çıkışlar aynı anda seçilir. Case paralel token’lara ayrılır.
OR (Inclusive)Rastgele çıkış seçilir ve en az bir yol mutlaka kullanılır.
Event-BasedUygun event’ler arasında rastgele seçim yapılır.

Olasılıkları Ayarlama

XOR gateway’lerde her çıkışa olasılık verebilirsiniz. Bunlar göreceli ağırlık olarak çalışır:

  • 70, 20, 10 derseniz; %70, %20, %10 olur
  • 7, 2, 1 derseniz sonuç aynıdır
  • Tüm çıkışlar için olasılık girilmeli; boş bırakılırsa kalan değer atanır

Aktivite Yürütme

Bir case bir göreve (aktiviteye) ulaştığında, engine şu adımları izler:

1. Resource Uygun mu Kontrol Et

Gerekli resource için kapasite var mı?

2. Gerekirse Kuyruğa Al

Resource yoksa, case bekleme sırasına girer. ProcessMind, FIFO (First In, First Out) sıralama ile case’leri geliş sırasına göre işler.

3. Resource Ayır

Resource hazır olduğunda, gerekli resource birimleri bu case için ayrılır.

4. İşlem Süresi Seç

Engine, ayarlanan işlem süresi dağılımından bir süre seçer. Bu, aktivitenin süresini belirler.

5. Completion Event Zamanla

Completion event, event kuyruğuna current_time + processing_time anında eklenir.

6. Resource Serbest Bırak

Completion event gerçekleşince, resource diğer case’ler için serbest kalır.

Minimum İşlem Süresi

Benzersiz timestamp ve gerçekçi simülasyon için tüm aktiviteler en az 1 saniye sürer. Süre sıfır bile olsa aktivite bu sürede çalışır.


Atlanma İhtimali

Aktiviteler için skip chance (0-100%) ayarlanabilir. Bir aktivite atlandığında:

  • Case direkt olarak bir sonraki elemana geçer
  • Resource kullanılmaz
  • Zaman geçmez (sadece minimum 1 saniye)
  • Aktivite log’da minimum süreyle görünür

Bu, pratikte bazı adımların zaman zaman atlandığı gerçek durumları modellemeye yarar.


Zaman Yönetimi

Simülasyon Saati

Simülasyon event’ten event’e atlayan sanal bir saat içerir. Mesela sonraki event 10:35’teyse ve şu an 10:30 ise, saat direkt 10:35’e gider.

Zaman Birimleri

Tüm zamanlar sistemde tek birime çevrilir. Süreleri şunlarla verebilirsiniz:

  • Saniye
  • Dakika
  • Saat
  • Gün
  • Hafta
  • Ay

Periodicity ve Zaman Dilimleri

Parametreler simülasyon zamanına göre farklılık gösterebilir. Örneğin:

  • Hafta içi ve hafta sonu için farklı geliş temposu
  • Sabah ve öğleden sonra vardiyalarına göre değişen işlem süresi
  • Yoğun saatlerde farklı resource kapasitesi

Ayrıntılar için Periodicity  dokümantasyonuna bakabilirsiniz.


Resource Yönetimi

Resource Pool’lar

Her resource’un belirli bir capacity’si vardır—aynı anda kaç case işleyebileceğini belirtir.

Kuyruk Yönetimi

Talep kapasiteyi aşınca case’ler sırada bekler. ProcessMind, FIFO (First In, First Out) sırası ile işlemi sürdürür.


Event Log Oluşturulması

Simülasyon ilerlerken, her aktivite yürütmesi otomatik olarak event log’da kaydedilir:

AlanAçıklama
Case IDHer bir case için benzersiz tanımlayıcı (ardışık üretilir)
ActivityBPMN elemanının adı
Start TimestampAktivitenin başladığı zaman
Complete TimestampAktivitenin tamamlandığı zaman
ResourceAktiviteyi yapan resource
AttributesO anki case attribute’ları

Bu log sektör standartlarında event log formatındadır ve ProcessMind araçları ile analiz edilebilir.


Simülasyon Limitleri

LimitDeğerAmaç
Max Events2.000.000Kontrolsüz simülasyonları engeller
Min Duration1 saniyeBenzersiz timestamp sağlar

Küçük Başlayın, Sonra Ölçekleyin

Yeni bir simülasyon kurarken, önce kısa bir zaman diliminde (birkaç gün ya da hafta) çalıştırıp ayarlarınızı test edin. Modelin doğru çalıştığına emin olduktan sonra süreyi uzatabilirsiniz.


Sonraki Adımlar

Resources
Resource ve kapasite kısıtlarını modellemeyi öğrenin.