chanwoo-park-official commited on
Commit
232c6af
1 Parent(s): 071476d

singleline

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. generate_data.py +192 -0
  2. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/args.json +64 -0
  3. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-0.pt +3 -0
  4. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-1.pt +3 -0
  5. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-10.pt +3 -0
  6. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-11.pt +3 -0
  7. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-12.pt +3 -0
  8. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-13.pt +3 -0
  9. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-14.pt +3 -0
  10. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-15.pt +3 -0
  11. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-16.pt +3 -0
  12. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-17.pt +3 -0
  13. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-18.pt +3 -0
  14. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-19.pt +3 -0
  15. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-2.pt +3 -0
  16. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-20.pt +3 -0
  17. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-21.pt +3 -0
  18. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-22.pt +3 -0
  19. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-23.pt +3 -0
  20. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-24.pt +3 -0
  21. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-25.pt +3 -0
  22. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-26.pt +3 -0
  23. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-27.pt +3 -0
  24. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-28.pt +3 -0
  25. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-29.pt +3 -0
  26. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-3.pt +3 -0
  27. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-30.pt +3 -0
  28. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-31.pt +3 -0
  29. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-32.pt +3 -0
  30. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-33.pt +3 -0
  31. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-34.pt +3 -0
  32. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-35.pt +3 -0
  33. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-36.pt +3 -0
  34. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-37.pt +3 -0
  35. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-38.pt +3 -0
  36. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-39.pt +3 -0
  37. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-4.pt +3 -0
  38. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-40.pt +3 -0
  39. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-41.pt +3 -0
  40. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-42.pt +3 -0
  41. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-43.pt +3 -0
  42. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-44.pt +3 -0
  43. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-45.pt +3 -0
  44. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-46.pt +3 -0
  45. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-47.pt +3 -0
  46. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-48.pt +3 -0
  47. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-49.pt +3 -0
  48. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-5.pt +3 -0
  49. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-50.pt +3 -0
  50. outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-51.pt +3 -0
generate_data.py ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import os
3
+ import numpy as np
4
+ from utils.data_utils import check_extension, save_dataset
5
+
6
+
7
+ def generate_tsp_data(dataset_size, tsp_size):
8
+ return np.random.uniform(size=(dataset_size, tsp_size, 2)).tolist()
9
+
10
+
11
+ def theta_generator(n_line, n_dataset):
12
+ theta_noadd = np.column_stack([np.random.uniform(size = (n_dataset))*2*np.pi, np.random.default_rng().dirichlet(np.ones(n_line), size=n_dataset)[:, :-1]*(2 - n_line/3)*np.pi])
13
+ theta_add = theta_noadd @ np.triu(np.ones((n_line, n_line)),0)
14
+ add_matrix = np.column_stack([np.ones(n_dataset)*np.pi*2/6*i for i in range(n_line)])
15
+ theta = theta_add + add_matrix
16
+ return theta
17
+
18
+
19
+
20
+ def generate_vrp_data(dataset_size, vrp_size):
21
+ CAPACITIES = {
22
+ 10: 20.,
23
+ 20: 30.,
24
+ 50: 40.,
25
+ 100: 50.
26
+ }
27
+ line_number = 1
28
+ dataset_size = 100
29
+ theta = theta_generator(line_number, dataset_size)
30
+ vrp_size = 20
31
+ eps = 1e-8
32
+ uni_eps = 0.5
33
+ eps_demand = 1e-04
34
+ r_data_single = np.array([(1 << (i+1)) -1 for i in range(vrp_size//2)])
35
+ r_data_single = r_data_single/r_data_single[-1] - eps
36
+ r_data_rev = np.hstack((-r_data_single[::-1], r_data_single))/2
37
+ r_data = np.tile(r_data_rev,(dataset_size,1))
38
+ r_data = r_data * np.random.uniform(1-uni_eps, 1, size = (dataset_size, 1))
39
+ r_data = r_data / np.maximum(np.abs(np.cos(theta)), np.abs(np.sin(theta)))
40
+ data_point = 0.5*np.ones((dataset_size, vrp_size, 2)) + np.stack([r_data * np.cos(theta), r_data*np.sin(theta)], axis = 2)
41
+ demand_point = np.ones((dataset_size, vrp_size)) * 2 * CAPACITIES[vrp_size] / vrp_size - eps_demand
42
+
43
+ return list(zip(
44
+ (0.5*np.ones((dataset_size, 2))).tolist(), # Depot location
45
+ data_point.tolist(), # Node locations
46
+ demand_point.tolist(), # Demand, uniform integer 1 ... 9
47
+ np.full(dataset_size, CAPACITIES[vrp_size]).tolist() # Capacity, same for whole dataset
48
+ ))
49
+
50
+
51
+ def generate_op_data(dataset_size, op_size, prize_type='const'):
52
+ depot = np.random.uniform(size=(dataset_size, 2))
53
+ loc = np.random.uniform(size=(dataset_size, op_size, 2))
54
+
55
+ # Methods taken from Fischetti et al. 1998
56
+ if prize_type == 'const':
57
+ prize = np.ones((dataset_size, op_size))
58
+ elif prize_type == 'unif':
59
+ prize = (1 + np.random.randint(0, 100, size=(dataset_size, op_size))) / 100.
60
+ else: # Based on distance to depot
61
+ assert prize_type == 'dist'
62
+ prize_ = np.linalg.norm(depot[:, None, :] - loc, axis=-1)
63
+ prize = (1 + (prize_ / prize_.max(axis=-1, keepdims=True) * 99).astype(int)) / 100.
64
+
65
+ # Max length is approximately half of optimal TSP tour, such that half (a bit more) of the nodes can be visited
66
+ # which is maximally difficult as this has the largest number of possibilities
67
+ MAX_LENGTHS = {
68
+ 20: 2.,
69
+ 50: 3.,
70
+ 100: 4.
71
+ }
72
+
73
+ return list(zip(
74
+ depot.tolist(),
75
+ loc.tolist(),
76
+ prize.tolist(),
77
+ np.full(dataset_size, MAX_LENGTHS[op_size]).tolist() # Capacity, same for whole dataset
78
+ ))
79
+
80
+
81
+ def generate_pctsp_data(dataset_size, pctsp_size, penalty_factor=3):
82
+ depot = np.random.uniform(size=(dataset_size, 2))
83
+ loc = np.random.uniform(size=(dataset_size, pctsp_size, 2))
84
+
85
+ # For the penalty to make sense it should be not too large (in which case all nodes will be visited) nor too small
86
+ # so we want the objective term to be approximately equal to the length of the tour, which we estimate with half
87
+ # of the nodes by half of the tour length (which is very rough but similar to op)
88
+ # This means that the sum of penalties for all nodes will be approximately equal to the tour length (on average)
89
+ # The expected total (uniform) penalty of half of the nodes (since approx half will be visited by the constraint)
90
+ # is (n / 2) / 2 = n / 4 so divide by this means multiply by 4 / n,
91
+ # However instead of 4 we use penalty_factor (3 works well) so we can make them larger or smaller
92
+ MAX_LENGTHS = {
93
+ 20: 2.,
94
+ 50: 3.,
95
+ 100: 4.
96
+ }
97
+ penalty_max = MAX_LENGTHS[pctsp_size] * (penalty_factor) / float(pctsp_size)
98
+ penalty = np.random.uniform(size=(dataset_size, pctsp_size)) * penalty_max
99
+
100
+ # Take uniform prizes
101
+ # Now expectation is 0.5 so expected total prize is n / 2, we want to force to visit approximately half of the nodes
102
+ # so the constraint will be that total prize >= (n / 2) / 2 = n / 4
103
+ # equivalently, we divide all prizes by n / 4 and the total prize should be >= 1
104
+ deterministic_prize = np.random.uniform(size=(dataset_size, pctsp_size)) * 4 / float(pctsp_size)
105
+
106
+ # In the deterministic setting, the stochastic_prize is not used and the deterministic prize is known
107
+ # In the stochastic setting, the deterministic prize is the expected prize and is known up front but the
108
+ # stochastic prize is only revealed once the node is visited
109
+ # Stochastic prize is between (0, 2 * expected_prize) such that E(stochastic prize) = E(deterministic_prize)
110
+ stochastic_prize = np.random.uniform(size=(dataset_size, pctsp_size)) * deterministic_prize * 2
111
+
112
+ return list(zip(
113
+ depot.tolist(),
114
+ loc.tolist(),
115
+ penalty.tolist(),
116
+ deterministic_prize.tolist(),
117
+ stochastic_prize.tolist()
118
+ ))
119
+
120
+
121
+ if __name__ == "__main__":
122
+ parser = argparse.ArgumentParser()
123
+ parser.add_argument("--filename", help="Filename of the dataset to create (ignores datadir)")
124
+ parser.add_argument("--data_dir", default='data', help="Create datasets in data_dir/problem (default 'data')")
125
+ parser.add_argument("--name", type=str, required=True, help="Name to identify dataset")
126
+ parser.add_argument("--problem", type=str, default='all',
127
+ help="Problem, 'tsp', 'vrp', 'pctsp' or 'op_const', 'op_unif' or 'op_dist'"
128
+ " or 'all' to generate all")
129
+ parser.add_argument('--data_distribution', type=str, default='all',
130
+ help="Distributions to generate for problem, default 'all'.")
131
+
132
+ parser.add_argument("--dataset_size", type=int, default=10000, help="Size of the dataset")
133
+ parser.add_argument('--graph_sizes', type=int, nargs='+', default=[10, 20, 50, 100],
134
+ help="Sizes of problem instances (default 20, 50, 100)")
135
+ parser.add_argument("-f", action='store_true', help="Set true to overwrite")
136
+ parser.add_argument('--seed', type=int, default=1234, help="Random seed")
137
+
138
+ opts = parser.parse_args()
139
+
140
+ assert opts.filename is None or (len(opts.problems) == 1 and len(opts.graph_sizes) == 1), \
141
+ "Can only specify filename when generating a single dataset"
142
+
143
+ distributions_per_problem = {
144
+ 'tsp': [None],
145
+ 'vrp': [None],
146
+ 'pctsp': [None],
147
+ 'op': ['const', 'unif', 'dist']
148
+ }
149
+ if opts.problem == 'all':
150
+ problems = distributions_per_problem
151
+ else:
152
+ problems = {
153
+ opts.problem:
154
+ distributions_per_problem[opts.problem]
155
+ if opts.data_distribution == 'all'
156
+ else [opts.data_distribution]
157
+ }
158
+
159
+ for problem, distributions in problems.items():
160
+ for distribution in distributions or [None]:
161
+ for graph_size in opts.graph_sizes:
162
+
163
+ datadir = os.path.join(opts.data_dir, problem)
164
+ os.makedirs(datadir, exist_ok=True)
165
+
166
+ if opts.filename is None:
167
+ filename = os.path.join(datadir, "{}{}{}_{}_seed{}.pkl".format(
168
+ problem,
169
+ "_{}".format(distribution) if distribution is not None else "",
170
+ graph_size, opts.name, opts.seed))
171
+ else:
172
+ filename = check_extension(opts.filename)
173
+
174
+ assert opts.f or not os.path.isfile(check_extension(filename)), \
175
+ "File already exists! Try running with -f option to overwrite."
176
+
177
+ np.random.seed(opts.seed)
178
+ if problem == 'tsp':
179
+ dataset = generate_tsp_data(opts.dataset_size, graph_size)
180
+ elif problem == 'vrp':
181
+ dataset = generate_vrp_data(
182
+ opts.dataset_size, graph_size)
183
+ elif problem == 'pctsp':
184
+ dataset = generate_pctsp_data(opts.dataset_size, graph_size)
185
+ elif problem == "op":
186
+ dataset = generate_op_data(opts.dataset_size, graph_size, prize_type=distribution)
187
+ else:
188
+ assert False, "Unknown problem: {}".format(problem)
189
+
190
+ print(dataset[0])
191
+
192
+ save_dataset(dataset, filename)
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/args.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "problem": "cvrp",
3
+ "graph_size": 20,
4
+ "batch_size": 512,
5
+ "epoch_size": 1280000,
6
+ "val_size": 10000,
7
+ "val_dataset": "/home/gridsan/cpark/routing/data/vrp/vrp20_validation_2route_line_seed1234.pkl",
8
+ "model": "attention",
9
+ "embedding_dim": 128,
10
+ "hidden_dim": 128,
11
+ "n_encode_layers": 3,
12
+ "tanh_clipping": 10.0,
13
+ "normalization": "batch",
14
+ "lr_model": 0.0001,
15
+ "lr_critic": 0.0001,
16
+ "lr_decay": 1.0,
17
+ "eval_only": false,
18
+ "n_epochs": 100,
19
+ "seed": 1234,
20
+ "max_grad_norm": 1.0,
21
+ "no_cuda": false,
22
+ "exp_beta": 0.8,
23
+ "baseline": "rollout",
24
+ "bl_alpha": 0.05,
25
+ "bl_warmup_epochs": 1,
26
+ "eval_batch_size": 1024,
27
+ "checkpoint_encoder": false,
28
+ "shrink_size": null,
29
+ "data_distribution": null,
30
+ "log_step": 50,
31
+ "log_dir": "log_singleline_test",
32
+ "run_dir": "run_single_line",
33
+ "run_name": "vrp20_20230313T145506",
34
+ "output_dir": "outputs_singleline",
35
+ "image_dir": "images",
36
+ "epoch_start": 0,
37
+ "checkpoint_epochs": 1,
38
+ "load_path": null,
39
+ "resume": null,
40
+ "no_tensorboard": false,
41
+ "no_progress_bar": false,
42
+ "use_symmetry_ll": false,
43
+ "supervise_symmetry": false,
44
+ "restrict_symmetry": false,
45
+ "angle_threshold": 0.5,
46
+ "alternate": false,
47
+ "alternate_freq": 5,
48
+ "plot_freq": 0,
49
+ "alex_symmetric_loss": false,
50
+ "both_losses": false,
51
+ "plot_symmetric_ll": false,
52
+ "cap_50": 40,
53
+ "decay_mode": -1,
54
+ "num_equivariant_samples": 0,
55
+ "supervise_lambda": 0.01,
56
+ "use_starts": false,
57
+ "label_aug": false,
58
+ "num_input_augmentations": 0,
59
+ "wandb_run_name": "run",
60
+ "use_cuda": true,
61
+ "variant_name": "org",
62
+ "save_dir": "outputs_singleline/cvrp_20/org/vrp20_20230313T145506",
63
+ "plot_dir": "images/cvrp_20/org/vrp20_20230313T145506"
64
+ }
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-0.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:10a2d532877000c040cbf04e31012e8166d21c68d885711f0b8a2166e19a31ff
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-1.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fab6117b59616c5738333138a3056ec0c6b69f9fb54df6c356ba810132da6a6e
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-10.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:33e6aa359fe752a8d5249f1dd584aaa7db916dcf9a4ef5185e1e5ddbf5275af3
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-11.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4f747ae431e5dbc35673f72a63ab66fd94839d6ca4de165aeef6c1132ee8e939
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-12.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e48b39b5e4eb7e4fc42403ed68b24e266bd469513be881072e0b6e0fc153cd6c
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-13.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f61dba46ef42bd89230ac7ddc025b63d7ffb1086a1b95c39176b00c036c05fb9
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-14.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cd67c389f468e3564447f138fc7dbbb1b1d7d8dc5faf6165eaf9e86411d654f9
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-15.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:661221550528995de8ce3752d04439414f7405d5079601ce113297095e382b05
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-16.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95ced0d2ec9d0799bdca54d7f63632ea82c07ee170b9b23e1c408fdb01604446
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-17.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:35bdac7ee48f4766a95e1199d5c6beb942971432220048f5ffc50a714ea5e10e
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-18.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:031ebf2ad07ccc5ed6f276f9c026856fe25b73041a27dede70f1f14d7573a802
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-19.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:149dd8da73c3c49d4307525699f5762c61f9ca1fc7233329abc301200019b508
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-2.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b52b36a34a8dfcce2f1f50bc95661b3369680fc6769e5d19031b582271ddddc
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-20.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e03d31b3201897ce0b0da2069be665d6bc33295b05a6b5d2a85ce685066e9df0
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-21.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fd675bde41bd9a9202e16bfa7151fe6e524ea8b45764cad103d169a316b03794
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-22.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0ce79c2011c2bc27afda223956606a45692e6db8858c05cc7289fe71cc91fd9a
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-23.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:24aa44e80471341764ffa2fe1a648ee8984c8f835d396d20ed064d0f086b09d5
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-24.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f26090304a953a6223b2784e3bde3f42f03f386b831d0d18ab3bf8c7f417db4b
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-25.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:83a064f884606ebae0f7a7f6c9bff348e5ddcf3c8f7d13b162be9a4c63eb3d27
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-26.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4c1f828a0531f695e5362166ac160ac9a502a8894a95ed0e3d2d1601108d1f31
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-27.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:51c4114773bd7add345426f83642f56b3e2021442d5daebe75fab83ece57c409
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-28.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:90b365ccae08982edf557eb778795012bfd2b8cf0372bf876203944bcc14968f
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-29.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:47a2d9ba62e938244dba3769149662cccd8575c69b558e56217144d5b7224f08
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-3.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9a2817534f267ae4c11d2e2e401f32936d9bddfeb0318b765660d52d69a744cf
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-30.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3147479a31f01f0222c426080282a48b3f8b5165d3d4600425646ce3d9ef139f
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-31.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2ab489afc73a88487bfbbe0653e8ebc1f8a3be147e137739e8ce99f16ed334fe
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-32.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7a4ea92f47444f23e2f500e5c92f5b56bb12441d87dfdd943215434ea79d1bee
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-33.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2fce7d6844ef277c45a3835747872430dad2149fbb34bcf52c21f72cb0f894a8
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-34.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:24b7574f48afba759fff929bddc1855bd70f64862a617923bd6f7385623ef05b
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-35.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee4f3444fde2e048d4e5e3463c3a8923a824a105ed259baccad96d0fa27cb3a1
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-36.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f3b79b404ed50bbd8e3796fd8d6ea1abaf5559dbfc7d4f05ec5bce7ef72cb596
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-37.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1ba5ebcf3e85b8f5df58b6547363d9bf9eb792e65a84b9eca7289fc773cfce96
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-38.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d82e0a3bb970cebb68e1f199cf8a10eba6af0c5772100e904002c885519fcc9c
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-39.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c385ad89a469c08245301f3b3f1889b2c882972f86acab996bf51828f3ecbd84
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-4.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:49fdc26ffd6e2ea562ae02da9349fc2b29b39bef09d624c3eaafdd26db4cb18b
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-40.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fba82c2789468ea9a25bb23e8d84246186acfd6d7175c140ebcf079e5bf53a66
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-41.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b1d272a142072675f4c6223f9bb97f8768c2cfd4b17973a84259b4dc0bb5e2c5
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-42.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:26e9f71116100a03b9363b424ccba4e79aa21fedfa4f8df6729272446edd1536
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-43.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ffd55d0e26a0238b6c3dd04a1db55c91bd0ad727543ea4fffe747c54394d83e0
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-44.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50cda0b19698a307f8d2d19ae5693f63bc205983139778a0626f96e086728973
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-45.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d11acf3f6f5fe239783f2544a0b54334c3535c561e384c16497f86dd9f287ab1
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-46.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:336d270ea23bb410b6ee318fc3fd1012b4b9f77bc6e07285fd86cdae90cd3335
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-47.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:772976f5b47d16d81eae8c2930ec54afa3ac74c6215eb1aa2f342fcede93f1b7
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-48.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73c292dc56c08c5c757b5b27e04701cc67b9cc004335e8d11976e5579439099b
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-49.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f6c1a8c3456225b1c8ca05c3d7c5ae5fefc7b9b2372e2218b1c2664673e9082
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-5.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d4607553f43ccf960590e584bced560068b7b47f82aae23923f59a95680b19c5
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-50.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4c4336139971db02e195659344fcd298c045724038205a52133652bcb6f48896
3
+ size 21428553
outputs_singleline/cvrp_20/org/vrp20_20230313T145506/epoch-51.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98dbab332d283f9d9c1f0b2f6ae92cb3c7982b81b6c22f5365e1179207ca167e
3
+ size 21428553