add_finite_population_queue
Model a closed queueing network where N entities circulate through c servers, with thinking time between services. Useful for finite population systems.
Instructions
Closed queueing network: N entities recirculate through a c-server queue.
Models M/M/c/∞/N systems where N customers alternate between "thinking"
(off-system rest) and waiting for service. After service completes the entity
rests for thinking_time then re-enters the queue. No new entities are ever
created; the same N circulate indefinitely.
Structure: [IdlePool(N)] --[Request DET=0]--> [Queue] [Queue] + [FreeChannels(c)] --[Start DET=0]--> [InService] [InService] --[EndService]--> [Done] + FreeChannels returned [Done] --[Measure DET=0]--> [Resting] + [Counter(throughput)] [Resting] --[EndRest]--> [IdlePool]
Token conservation: IdlePool + Queue + InService + Resting = N at all times. Counter accumulates as a monotone throughput counter (same convention as Terminator).
Use cases:
Manufacturing: N pallets / fixtures circulating through work cells
Repair: N tools shared by technicians (tool → use → return to pool → reuse)
Taxi fleet: N taxis (idle → pickup → ride → return → idle)
Call centre agents: N agents serve customers, then become available again
Finite population M/M/c: classic Engset-style model
When thinking_time=0 entities return immediately (pure circulation, no idle phase).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| n_customers | No | ||
| service_time | No | ||
| service_distribution | No | exp | |
| standard_deviation | No | ||
| channels | No | ||
| thinking_time | No | ||
| thinking_distribution | No | exp | |
| time_unit | No | s | |
| deviation_unit | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |