Ciw icon indicating copy to clipboard operation
Ciw copied to clipboard

Begin system with customers

Open geraintpalmer opened this issue 9 years ago • 3 comments

Artificially insert customer into the simulation.

geraintpalmer avatar Dec 01 '16 10:12 geraintpalmer

Good idea. Would this have the potential to simplify tests too?

For example, to test baulking, start a system with a full set of customers and see that no joins for example.

drvinceknight avatar Apr 01 '17 17:04 drvinceknight

Batch arrivals.

Equivalent to time dependent batch arrivals, where at time 0 hundreds of customers arrive.

geraintpalmer avatar Apr 07 '17 13:04 geraintpalmer

Artificially insert customer into the simulation.

This would be exceptionally useful for simulating real systems where the initial state needs to match an existing data set of waitlists. A method that takes in a collection of individuals to be put onto specified queues would be a desirable way to do it. A list of lists might be consistent with the rest of the

An example with a single service might look like this:

import ciw

list_of_initial_waiters = [[Individual(...), Individual(...), Individual(...)]]

N = ciw.create_network(
    arrival_distributions=[ciw.dists.Deterministic(value=3.0)],
    service_distributions=[ciw.dists.Deterministic(value=0.5)],
    number_of_servers=[1],
    initial_individuals=list_of_initial_waiters
)

And an example with two queues might look like this:

import ciw

list_of_initial_waiters = [ # Note that the lengths of the queues do not need to equal.
                                              [Individual(...), Individual(...), Individual(...)] # Queue 1
                                              [Individual(...), Individual(...)] # Queue 2
                                         ] 

N = ciw.create_network(
    arrival_distributions=[ciw.dists.Deterministic(value=3.0), ciw.dists.Deterministic(value=3.0)],
    service_distributions=[ciw.dists.Deterministic(value=0.5), ciw.dists.Deterministic(value=0.5)],
    number_of_servers=[1],
    initial_individuals=list_of_initial_waiters
)

galenseilis avatar Oct 25 '23 02:10 galenseilis