# List of Parameters¶

Below is a full list of the parameters that the `create_network`

function can take, along with a description of the values required.
If using a parameters file then here are the arguments and values of the required `.yml`

file.

## Arrival_distributions¶

*Required*

Describes the inter-arrival distributions for each node and customer class. This is a dictionary, with keys as customer classes, and values are lists describing the inter-arrival distributions for each node. If only one class of customer is required it is sufficient to simply enter a list of inter-arrival distributions. For more details on inputting distributions, see How to Set Arrival & Service Distributions.

An example is shown:

```
Arrival_distributions={'Class 0': [['Exponential', 2.4],
['Uniform', 0.3, 0.5]],
'Class 1': [['Exponential', 3.0],
['Deterministic', 0.8]]}
```

An example where only one class of customer is required:

```
Arrival_distributions=[['Exponential', 2.4],
['Exponential', 2.0]]
```

## Baulking_functions¶

*Optional*

A dictionary of baulking functions for each customer class and each node. It describes the baulking mechanism of the customers. For more details see How to Simulate Baulking Customers. If left out, then bo baulking occurs.

Example:

```
Baulking_functions={'Class 0': [probability_of_baulking]}
```

## Class_change_matrices¶

*Optional*

A dictionary of class change matrices for each node. For more details see How to Set Dynamic Customer Classes.

An example for a two node network with two classes of customer:

```
Class_change_matrices={'Node 0': [[0.3, 0.4, 0.3],
[0.1, 0.9, 0.0],
[0.5, 0.1, 0.4]],
'Node 1': [[1.0, 0.0, 0.0],
[0.4, 0.5, 0.1],
[0.2, 0.2, 0.6]]}
```

## Number_of_classes¶

*Optional*

Denotes the number of customer classes in the simulation.
If not included, Ciw works this out from the `Arrival_distributions`

argument.

Example:

```
Number_of_classes=3
```

## Number_of_nodes¶

*Optional*

Denotes the number of nodes in the queueing network.
If not included, Ciw works this out from the `Number_of_servers`

argument.

Example:

```
Number_of_nodes=6
```

## Number_of_servers¶

*Required*

A list of the number of parallel servers at each node. If a server schedule is used, the name of the schedule is given instead of a number. For more details on server schedules, see How to Set Server Schedules. A value of ‘Inf’ may be given is infinite servers are required.

Example:

```
Number_of_servers=[1, 2, 'Inf', 1, 'schedule']
```

## Priority_classes¶

*Optional*

A dictionary mapping customer classes to priorities. For more information see How to Set Priority Classes. If left out, no priorities are used, that is all customers have equal priorities.

Example:

```
Priority_classes={'Class 0': 0,
'CLass 1': 1,
'Class 2': 1}
```

## Queue_capacities¶

*Optional*

A list of maximum queue capacities at each node. If ommitted, default values of ‘Inf’ for every node are given.

Example:

```
Queue_capacities=[5, 'Inf', 'Inf', 10]
```

## Service_distributions¶

*Required*

Describes the service distributions for each node and customer class. This is a dictionary, with keys as customer classes, and values are lists describing the service distributions for each node. If only one class of customer is required it is sufficient to simply enter a list of service distributions. For more details on inputting distributions, see How to Set Arrival & Service Distributions.

An example is shown:

```
Service_distributions={'Class 0': [['Exponential', 4.4],
['Uniform', 0.1, 0.9]],
'Class 1': [['Exponential', 6.0],
['Lognormal', 0.5, 0.6]]}
```

An example where only one class of customer is required:

```
Service_distributions=[['Exponential', 4.8],
['Exponential', 5.2]]
```

## Transition_matrices¶

*Required for more than 1 node*

*Optional for 1 node*

Describes the transition matrix for each customer class. This is a dictionary, with keys as customer classes, and values are lists of lists (matrices) containing the transition probabilities. If only one class of customer is required it is sufficient to simply enter single transition matrix (a list of lists).

An example is shown:

```
Transition_matrices={'Class 0': [[0.1, 0.3],
[0.0, 0.8]],
'Class 1': [[0.0, 1.0],
[0.0, 0.0]]}
```

An example where only one class of customer is required:

```
Transition_matrices=[[0.5, 0.3],
[0.2, 0.6]]
```

If using only one node, the default value is:

```
Transition_matrices={'Class 0': [[0.0]]}
```