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 Tipi | Ne Olur |
|---|---|
| Case Arrival | Bir case process’e start event ile giriş yapar |
| Activity Start | Case bir aktiviteyi başlatır (resource atanır) |
| Activity Complete | Case bir aktiviteyi bitirir (resource boşa çıkar) |
| Gateway Evaluation | Karar noktasında yol seçilir |
| Case Complete | Case 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 Tipi | Davranış |
|---|---|
| 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-Based | Uygun 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:
| Alan | Açıklama |
|---|---|
| Case ID | Her bir case için benzersiz tanımlayıcı (ardışık üretilir) |
| Activity | BPMN elemanının adı |
| Start Timestamp | Aktivitenin başladığı zaman |
| Complete Timestamp | Aktivitenin tamamlandığı zaman |
| Resource | Aktiviteyi yapan resource |
| Attributes | O 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
| Limit | Değer | Amaç |
|---|---|---|
| Max Events | 2.000.000 | Kontrolsüz simülasyonları engeller |
| Min Duration | 1 saniye | Benzersiz 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.