Simülasyon Motoru Nasıl Çalışanşı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ı sunar.
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 motoru’i basit ama güçlü bir döngüyü takip eder:
1. Initialize: Set up starting conditions
2. Get Next Event: Find the earliest scheduled event from the priority queue
3. Advance Time: Move simulation clock to that event's time
4. Process Event: Handle the event (start activity, complete activity, etc.)
5. Schedule New Events: Based on what happened, add new events
6. Repeat: Continue until end time or max events reached (2,000,000)
7. Output: Generate the complete event log 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 Başlangıç Olayıs 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ış akış bağlantısı’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. Kaynak Uygunluğunu Kontrol Edin
Gerekli resource için kapasite var mı?
2. Gerekirse Kuyruğa Alın
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. Kaynak Ayırın
Resource hazır olduğunda, gerekli resource birimleri bu vaka için ayrılır.
4. İşlem Süresi Seçin
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. Kaynağı Serbest Bırakın
Completion event gerçekleşince, resource diğer case’ler için serbest kalır.
Minimum İşlem Süresi
Benzersiz zaman damgası (zaman damgası) 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 atlanma olasılığı (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
Periyodiklik 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 Periyodiklik 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 vaka için benzersiz tanımlayıcı (ardışık üretilir) |
| Activity | BPMN elemanının adı |
| Start zaman damgası (zaman damgası) | Aktivitenin başladığı zaman |
| Complete zaman damgası (zaman damgası) | Aktivitenin tamamlandığı zaman |
| Resource | Aktiviteyi yapan resource |
| Attributes | O anki case nitelik’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 zaman damgası (zaman damgası) sunar |
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.