add_multi_resource
Create a multi-resource operation that simultaneously seizes one token from each of several named resource pools and releases all upon completion.
Instructions
Add a MultiResource (AND-Resource) pattern — op requiring multiple simultaneous resources.
Seizes one token from each resource pool simultaneously and releases all upon completion. Unlike Machine (homogeneous channels), each pool can have a different name and capacity.
Use this for:
Painting: worker + spray gun + booth must all be free
Surgery: doctor + room + equipment required simultaneously
Welding: welder + welding machine + jig
Args: name: Instance name (e.g., "PaintBooth", "SurgeryRoom") resources: List of resource pool definitions. Each dict: {"name": str, "pool_size": int} Example: [{"name": "Worker", "pool_size": 3}, {"name": "Booth", "pool_size": 2}] processing_time: Mean processing time in time_unit distribution: Time distribution — "exp", "norm", "unif", "det" standard_deviation: Std dev for norm/unif (in time_unit) time_unit: Unit for time values — "s", "min", "h", or "d"
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| resources | Yes | ||
| processing_time | Yes | ||
| distribution | No | exp | |
| standard_deviation | No | ||
| time_unit | No | s |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |