Instance Generation

Instances generation settings are defined in file instances_generator.py.

InstanceGenerator

class maenvs4vrp.environments.toptw.instances_generator.InstanceGenerator(instance_type: str = 'validation', set_of_instances: set = None, device: str | None = 'cpu', batch_size: Size | None = None, seed: int = None)[source]

TOPTW instance generation class.

__init__(instance_type: str = 'validation', set_of_instances: set = None, device: str | None = 'cpu', batch_size: Size | None = None, seed: int = None) None[source]

Constructor. Instance generator.

Parameters:
  • instance_type (str) – Instance type. Can be “validation” or “test”. Defaults to “validation”.

  • set_of_instances (set) – Set of instances file names. Defaults to None.

  • device (str, optional) – Type of processing. It can be “cpu” or “gpu”. Defaults to “cpu”.

  • batch_size (torch.Size, optional) – Batch size. If not specified, defaults to 1.

  • seed (int) – Random number generator seed. Defaults to None.

Returns:

None.

augment_generate_instance(num_agents: int = 20, num_nodes: int = 100, service_times: int = 0.2, profits: str = 'distance', batch_size: Size | None = None, n_augment: int = 2, seed: int = None, device: str | None = 'cpu') TensorDict[source]

Generate augmentated instance.

Parameters:
  • num_agents (int) – Total number of agents. Defaults to 20.

  • num_nodes (int) – Total number of nodes. Defaults to 100.

  • capacity (int) – Total capacity for each agent. Defaults to 50.

  • service_times (int) – Service time in the nodes. Defaults to 0.2.

  • batch_size (torch.Size, optional) – Batch size. Defaults to None.

  • n_augment (int) – Data augmentation. Defaults to 2.

  • seed (int, optional) – Random number generator seed. Defaults to None.

Returns:

Instance data.

Return type:

TensorDict

get_instance(instance_name: str, num_agents: int = None) Dict[source]

Get an instance with custom number of agents.

Parameters:
  • instance_name (str) – Instance file name.

  • num_agents (int) – Number of agents. Defaults to None.

Returns:

Instance data.

Return type:

Dict

classmethod get_list_of_benchmark_instances()[source]

Get list of generated files.

Parameters:

n/a.

Returns:

None.

get_time_windows(instance: TensorDict = None, batch_size: Size = None, seed: int = None) tensor[source]

Get time windows to reach the nodes.

Parameters:
  • instance (TensorDict) – Data instance. Defaults to None.

  • batch_size (torch.Size) – Batch size. Defaults to None.

  • seed (int) – Random number generator seed. Defaults to None.

Returns:

Nodes time windows.

Return type:

torch.Tensor

load_set_of_instances(set_of_instances: set = None)[source]

Load every instance on set_of_instances set.

Parameters:

set_of_instances (set) – Set of instances file names. Defaults to None.

Returns:

None.

random_generate_instance(num_agents: int = 20, num_nodes: int = 100, service_times: int = 0.2, profits: str = 'distance', batch_size: Size | None = None, seed: int = None, device: str | None = 'cpu') TensorDict[source]

Generate random instance.

Parameters:
  • num_agents (int) – Total number of agents. Defaults to 20.

  • num_nodes (int) – Total number of nodes. Defaults to 100.

  • capacity (int) – Total capacity for each agent. Defaults to 50.

  • service_times (int) – Total time of service. Defaults to 0.2.

  • batch_size (torch.Size, optional) – Batch size. Defaults to None.

  • seed (int, optional) – Random number generator seed. Defaults to None.

Returns:

Instance data.

Return type:

TensorDict

read_instance_data(instance_name: str) Dict[source]

Read instance data from file.

Parameters:

instance_name (str) – instance file name.

Returns:

Instance data.

Return type:

Dict

sample_instance(num_agents=None, num_nodes=None, service_times=0.2, profits: str = 'constant', instance_name: str = None, sample_type: str = 'random', batch_size: Size | None = None, n_augment: int | None = None, seed: int = None, device: str | None = 'cpu') Dict[source]

Sample one instance from instance space.

Parameters:
  • num_agents (int) – Total number of agents. Defaults to None.

  • num_nodes (int) – Total number of nodes. Defaults to None.

  • capacity (int) – Total capacity for each agent. Defaults to 50.

  • service_times (int) – Service time in the nodes. Defaults to 0.2.

  • instance_name (str) – Instance name. Defaults to None.

  • sample_type (str) – Sample type. It can be “random”, “augment” or “saved”. Defaults to “random”.

  • batch_size (torch.Size, optional) – Batch size. Defaults to None.

  • n_augment (int, optional) – Data augmentation. Defaults to None.

  • seed (int) – Random number generator seed. Defaults to None.

Returns:

Instance data.

Return type:

Dict

sample_name_from_set(seed: int = None) str[source]

Sample one instance from instance set.

Parameters:

seed (int) – Random number generator seed. Defaults to None.

Returns:

Instance name.

Return type:

str