mirror of
https://github.com/inzva/combinatorial-optimization-with-RL.git
synced 2021-06-01 09:29:58 +03:00
2614 lines
162 KiB
Plaintext
2614 lines
162 KiB
Plaintext
{
|
||
"nbformat": 4,
|
||
"nbformat_minor": 0,
|
||
"metadata": {
|
||
"colab": {
|
||
"name": "TSP20_Experiments",
|
||
"provenance": [],
|
||
"collapsed_sections": [],
|
||
"toc_visible": true
|
||
},
|
||
"kernelspec": {
|
||
"name": "python3",
|
||
"display_name": "Python 3"
|
||
},
|
||
"accelerator": "GPU"
|
||
},
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "1YAa3Qunx_rq",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"#### **Note.** This Jupyter notebook is designed to work standalone without any additional file. The only exception is that after you clone the github repo, you need to manually upload your pretrained models (e.g., models trained with normal or exponential data as described in README) to respective folders.\n",
|
||
"\n",
|
||
"#### This notebook seems to work fine on colab.research.google.com. On your local computer, some libraries might need to be installed beforehand."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "Qv3OyIGbRvo2",
|
||
"colab_type": "code",
|
||
"outputId": "12920a92-547d-442d-b622-2576284aac47",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 356
|
||
}
|
||
},
|
||
"source": [
|
||
"#clone the repository to obtain pretained models and drawing utilities\n",
|
||
"#install required packages that are not automatically installed on Colab\n",
|
||
"!git clone https://github.com/wouterkool/attention-learn-to-route.git\n",
|
||
"!pip install tensorboard_logger\n",
|
||
"%cd /content/attention-learn-to-route\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Cloning into 'attention-learn-to-route'...\n",
|
||
"remote: Enumerating objects: 3, done.\u001b[K\n",
|
||
"remote: Counting objects: 100% (3/3), done.\u001b[K\n",
|
||
"remote: Compressing objects: 100% (3/3), done.\u001b[K\n",
|
||
"remote: Total 246 (delta 0), reused 1 (delta 0), pack-reused 243\u001b[K\n",
|
||
"Receiving objects: 100% (246/246), 74.66 MiB | 11.85 MiB/s, done.\n",
|
||
"Resolving deltas: 100% (54/54), done.\n",
|
||
"Collecting tensorboard_logger\n",
|
||
" Downloading https://files.pythonhosted.org/packages/87/7a/ec0fd26dba69191f82eb8f38f5b401c124f45a207490a7ade6ea9717ecdb/tensorboard_logger-0.1.0-py2.py3-none-any.whl\n",
|
||
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from tensorboard_logger) (1.17.3)\n",
|
||
"Requirement already satisfied: scipy>=0.19.1 in /usr/local/lib/python3.6/dist-packages (from tensorboard_logger) (1.3.1)\n",
|
||
"Requirement already satisfied: pillow>=4.1.1 in /usr/local/lib/python3.6/dist-packages (from tensorboard_logger) (4.3.0)\n",
|
||
"Requirement already satisfied: protobuf in /usr/local/lib/python3.6/dist-packages (from tensorboard_logger) (3.10.0)\n",
|
||
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from tensorboard_logger) (1.12.0)\n",
|
||
"Requirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from pillow>=4.1.1->tensorboard_logger) (0.46)\n",
|
||
"Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from protobuf->tensorboard_logger) (41.4.0)\n",
|
||
"Installing collected packages: tensorboard-logger\n",
|
||
"Successfully installed tensorboard-logger-0.1.0\n",
|
||
"/content/attention-learn-to-route\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "J-iBhRc-Sljv",
|
||
"colab_type": "code",
|
||
"outputId": "ae66ebf8-3c9a-44fc-fc6f-ff5c84d83a57",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 54
|
||
}
|
||
},
|
||
"source": [
|
||
"!python generate_data.py --problem tsp --graph_size 20 --name uni --seed 1234\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[0.1915194503788923, 0.6221087710398319], [0.4377277390071145, 0.7853585837137692], [0.7799758081188035, 0.2725926052826416], [0.2764642551430967, 0.8018721775350193], [0.9581393536837052, 0.8759326347420947], [0.35781726995786667, 0.5009951255234587], [0.6834629351721363, 0.7127020269829002], [0.37025075479039493, 0.5611961860656249], [0.5030831653078097, 0.013768449590682241], [0.772826621612374, 0.8826411906361166], [0.3648859839013723, 0.6153961784334937], [0.07538124164297655, 0.3688240060019745], [0.9331401019825216, 0.6513781432265774], [0.3972025777261542, 0.7887301429407455], [0.31683612216887125, 0.5680986526260692], [0.8691273895612258, 0.43617342389567937], [0.8021476420801591, 0.14376682451456457], [0.7042609711183354, 0.7045813081895725], [0.21879210567408858, 0.924867628615565], [0.44214075540417663, 0.9093159589724725]]\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "PlhgpwDwTthH",
|
||
"colab_type": "code",
|
||
"outputId": "5ebe175b-f356-4474-df7b-87b42d23a447",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 34
|
||
}
|
||
},
|
||
"source": [
|
||
"%%writefile generate_data.py\n",
|
||
"\n",
|
||
"import argparse\n",
|
||
"import os\n",
|
||
"import numpy as np\n",
|
||
"from utils.data_utils import check_extension, save_dataset\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_tsp_data(dataset_size, tsp_size):\n",
|
||
" l = []\n",
|
||
" for i in range(dataset_size):\n",
|
||
" a = np.random.normal(0.5, 0.25, size=(1, tsp_size, 2))\n",
|
||
" amin = np.min(a, axis=1)\n",
|
||
" amax = np.max(a, axis=1)\n",
|
||
" r = (a - amin) / (amax - amin)\n",
|
||
" l.append(r.tolist()[0])\n",
|
||
" return l\n",
|
||
"\n",
|
||
"\n",
|
||
" #return np.random.uniform(size=(dataset_size, tsp_size, 2)).tolist()\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_vrp_data(dataset_size, vrp_size):\n",
|
||
" CAPACITIES = {\n",
|
||
" 10: 20.,\n",
|
||
" 20: 30.,\n",
|
||
" 50: 40.,\n",
|
||
" 100: 50.\n",
|
||
" }\n",
|
||
" return list(zip(\n",
|
||
" np.random.uniform(size=(dataset_size, 2)).tolist(), # Depot location\n",
|
||
" np.random.uniform(size=(dataset_size, vrp_size, 2)).tolist(), # Node locations\n",
|
||
" np.random.randint(1, 10, size=(dataset_size, vrp_size)).tolist(), # Demand, uniform integer 1 ... 9\n",
|
||
" np.full(dataset_size, CAPACITIES[vrp_size]).tolist() # Capacity, same for whole dataset\n",
|
||
" ))\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_op_data(dataset_size, op_size, prize_type='const'):\n",
|
||
" depot = np.random.uniform(size=(dataset_size, 2))\n",
|
||
" loc = np.random.uniform(size=(dataset_size, op_size, 2))\n",
|
||
"\n",
|
||
" # Methods taken from Fischetti et al. 1998\n",
|
||
" if prize_type == 'const':\n",
|
||
" prize = np.ones((dataset_size, op_size))\n",
|
||
" elif prize_type == 'unif':\n",
|
||
" prize = (1 + np.random.randint(0, 100, size=(dataset_size, op_size))) / 100.\n",
|
||
" else: # Based on distance to depot\n",
|
||
" assert prize_type == 'dist'\n",
|
||
" prize_ = np.linalg.norm(depot[:, None, :] - loc, axis=-1)\n",
|
||
" prize = (1 + (prize_ / prize_.max(axis=-1, keepdims=True) * 99).astype(int)) / 100.\n",
|
||
"\n",
|
||
" # Max length is approximately half of optimal TSP tour, such that half (a bit more) of the nodes can be visited\n",
|
||
" # which is maximally difficult as this has the largest number of possibilities\n",
|
||
" MAX_LENGTHS = {\n",
|
||
" 20: 2.,\n",
|
||
" 50: 3.,\n",
|
||
" 100: 4.\n",
|
||
" }\n",
|
||
"\n",
|
||
" return list(zip(\n",
|
||
" depot.tolist(),\n",
|
||
" loc.tolist(),\n",
|
||
" prize.tolist(),\n",
|
||
" np.full(dataset_size, MAX_LENGTHS[op_size]).tolist() # Capacity, same for whole dataset\n",
|
||
" ))\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_pctsp_data(dataset_size, pctsp_size, penalty_factor=3):\n",
|
||
" depot = np.random.uniform(size=(dataset_size, 2))\n",
|
||
" loc = np.random.uniform(size=(dataset_size, pctsp_size, 2))\n",
|
||
"\n",
|
||
" # For the penalty to make sense it should be not too large (in which case all nodes will be visited) nor too small\n",
|
||
" # so we want the objective term to be approximately equal to the length of the tour, which we estimate with half\n",
|
||
" # of the nodes by half of the tour length (which is very rough but similar to op)\n",
|
||
" # This means that the sum of penalties for all nodes will be approximately equal to the tour length (on average)\n",
|
||
" # The expected total (uniform) penalty of half of the nodes (since approx half will be visited by the constraint)\n",
|
||
" # is (n / 2) / 2 = n / 4 so divide by this means multiply by 4 / n,\n",
|
||
" # However instead of 4 we use penalty_factor (3 works well) so we can make them larger or smaller\n",
|
||
" MAX_LENGTHS = {\n",
|
||
" 20: 2.,\n",
|
||
" 50: 3.,\n",
|
||
" 100: 4.\n",
|
||
" }\n",
|
||
" penalty_max = MAX_LENGTHS[pctsp_size] * (penalty_factor) / float(pctsp_size)\n",
|
||
" penalty = np.random.uniform(size=(dataset_size, pctsp_size)) * penalty_max\n",
|
||
"\n",
|
||
" # Take uniform prizes\n",
|
||
" # Now expectation is 0.5 so expected total prize is n / 2, we want to force to visit approximately half of the nodes\n",
|
||
" # so the constraint will be that total prize >= (n / 2) / 2 = n / 4\n",
|
||
" # equivalently, we divide all prizes by n / 4 and the total prize should be >= 1\n",
|
||
" deterministic_prize = np.random.uniform(size=(dataset_size, pctsp_size)) * 4 / float(pctsp_size)\n",
|
||
"\n",
|
||
" # In the deterministic setting, the stochastic_prize is not used and the deterministic prize is known\n",
|
||
" # In the stochastic setting, the deterministic prize is the expected prize and is known up front but the\n",
|
||
" # stochastic prize is only revealed once the node is visited\n",
|
||
" # Stochastic prize is between (0, 2 * expected_prize) such that E(stochastic prize) = E(deterministic_prize)\n",
|
||
" stochastic_prize = np.random.uniform(size=(dataset_size, pctsp_size)) * deterministic_prize * 2\n",
|
||
"\n",
|
||
" return list(zip(\n",
|
||
" depot.tolist(),\n",
|
||
" loc.tolist(),\n",
|
||
" penalty.tolist(),\n",
|
||
" deterministic_prize.tolist(),\n",
|
||
" stochastic_prize.tolist()\n",
|
||
" ))\n",
|
||
"\n",
|
||
"\n",
|
||
"if __name__ == \"__main__\":\n",
|
||
" parser = argparse.ArgumentParser()\n",
|
||
" parser.add_argument(\"--filename\", help=\"Filename of the dataset to create (ignores datadir)\")\n",
|
||
" parser.add_argument(\"--data_dir\", default='data', help=\"Create datasets in data_dir/problem (default 'data')\")\n",
|
||
" parser.add_argument(\"--name\", type=str, required=True, help=\"Name to identify dataset\")\n",
|
||
" parser.add_argument(\"--problem\", type=str, default='all',\n",
|
||
" help=\"Problem, 'tsp', 'vrp', 'pctsp' or 'op_const', 'op_unif' or 'op_dist'\"\n",
|
||
" \" or 'all' to generate all\")\n",
|
||
" parser.add_argument('--data_distribution', type=str, default='all',\n",
|
||
" help=\"Distributions to generate for problem, default 'all'.\")\n",
|
||
"\n",
|
||
" parser.add_argument(\"--dataset_size\", type=int, default=10000, help=\"Size of the dataset\")\n",
|
||
" parser.add_argument('--graph_sizes', type=int, nargs='+', default=[20, 50, 100],\n",
|
||
" help=\"Sizes of problem instances (default 20, 50, 100)\")\n",
|
||
" parser.add_argument(\"-f\", action='store_true', help=\"Set true to overwrite\")\n",
|
||
" parser.add_argument('--seed', type=int, default=1234, help=\"Random seed\")\n",
|
||
"\n",
|
||
" opts = parser.parse_args()\n",
|
||
"\n",
|
||
" assert opts.filename is None or (len(opts.problems) == 1 and len(opts.graph_sizes) == 1), \\\n",
|
||
" \"Can only specify filename when generating a single dataset\"\n",
|
||
"\n",
|
||
" distributions_per_problem = {\n",
|
||
" 'tsp': [None],\n",
|
||
" 'vrp': [None],\n",
|
||
" 'pctsp': [None],\n",
|
||
" 'op': ['const', 'unif', 'dist']\n",
|
||
" }\n",
|
||
" if opts.problem == 'all':\n",
|
||
" problems = distributions_per_problem\n",
|
||
" else:\n",
|
||
" problems = {\n",
|
||
" opts.problem:\n",
|
||
" distributions_per_problem[opts.problem]\n",
|
||
" if opts.data_distribution == 'all'\n",
|
||
" else [opts.data_distribution]\n",
|
||
" }\n",
|
||
"\n",
|
||
" for problem, distributions in problems.items():\n",
|
||
" for distribution in distributions or [None]:\n",
|
||
" for graph_size in opts.graph_sizes:\n",
|
||
"\n",
|
||
" datadir = os.path.join(opts.data_dir, problem)\n",
|
||
" os.makedirs(datadir, exist_ok=True)\n",
|
||
"\n",
|
||
" if opts.filename is None:\n",
|
||
" filename = os.path.join(datadir, \"{}{}{}_{}_seed{}.pkl\".format(\n",
|
||
" problem,\n",
|
||
" \"_{}\".format(distribution) if distribution is not None else \"\",\n",
|
||
" graph_size, opts.name, opts.seed))\n",
|
||
" else:\n",
|
||
" filename = check_extension(opts.filename)\n",
|
||
"\n",
|
||
" assert opts.f or not os.path.isfile(check_extension(filename)), \\\n",
|
||
" \"File already exists! Try running with -f option to overwrite.\"\n",
|
||
"\n",
|
||
" np.random.seed(opts.seed)\n",
|
||
" if problem == 'tsp':\n",
|
||
" dataset = generate_tsp_data(opts.dataset_size, graph_size)\n",
|
||
" elif problem == 'vrp':\n",
|
||
" dataset = generate_vrp_data(\n",
|
||
" opts.dataset_size, graph_size)\n",
|
||
" elif problem == 'pctsp':\n",
|
||
" dataset = generate_pctsp_data(opts.dataset_size, graph_size)\n",
|
||
" elif problem == \"op\":\n",
|
||
" dataset = generate_op_data(opts.dataset_size, graph_size, prize_type=distribution)\n",
|
||
" else:\n",
|
||
" assert False, \"Unknown problem: {}\".format(problem)\n",
|
||
"\n",
|
||
" print(dataset[0])\n",
|
||
"\n",
|
||
" save_dataset(dataset, filename)"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Overwriting generate_data.py\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "6pXN1zTFd5HT",
|
||
"colab_type": "code",
|
||
"outputId": "bdd0527c-37d2-42c8-bb77-aecaf04a865a",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 54
|
||
}
|
||
},
|
||
"source": [
|
||
"!python generate_data.py --problem tsp --graph_size 20 --name normal --seed 1234\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[0.5535811435958288, 0.22697231939040335], [1.0, 0.4165258371051264], [0.0, 0.6754612356500831], [0.7338412210492217, 0.3466301986824033], [0.341934043181807, 0.0], [0.8687262304609844, 0.6980747659085578], [0.7773724993204989, 0.047787457076908214], [0.17949758002833288, 0.48445728823513295], [0.5229389275233132, 0.5463898590751549], [0.9481962573909727, 0.1501581002503748], [0.24053473394527555, 0.3424335375763778], [0.4244703173257149, 0.6034393186655027], [0.9467999614959184, 0.38271803078064465], [0.6483748689629958, 0.09186238575725647], [0.24960816702459285, 0.7125392228178081], [0.14988582612994514, 0.5568234826552527], [0.8211446782654951, 0.709726980916946], [0.735758690147399, 0.4576511934778264], [0.39256182345513735, 0.41433686740879955], [0.7255220196007749, 1.0]]\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "MO1CpwJYTmt9",
|
||
"colab_type": "code",
|
||
"outputId": "406583f2-554d-4bf0-e5e4-489ee7d8c964",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 34
|
||
}
|
||
},
|
||
"source": [
|
||
"%%writefile generate_data.py\n",
|
||
"\n",
|
||
"import argparse\n",
|
||
"import os\n",
|
||
"import numpy as np\n",
|
||
"from utils.data_utils import check_extension, save_dataset\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_tsp_data(dataset_size, tsp_size):\n",
|
||
" l = []\n",
|
||
" for i in range(dataset_size):\n",
|
||
" a = np.random.exponential(1, size=(1, tsp_size, 2))\n",
|
||
" amin = np.min(a, axis=1)\n",
|
||
" amax = np.max(a, axis=1)\n",
|
||
" r = (a - amin) / (amax - amin)\n",
|
||
" l.append(r.tolist()[0])\n",
|
||
" return l\n",
|
||
"\n",
|
||
"\n",
|
||
" #return np.random.uniform(size=(dataset_size, tsp_size, 2)).tolist()\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_vrp_data(dataset_size, vrp_size):\n",
|
||
" CAPACITIES = {\n",
|
||
" 10: 20.,\n",
|
||
" 20: 30.,\n",
|
||
" 50: 40.,\n",
|
||
" 100: 50.\n",
|
||
" }\n",
|
||
" return list(zip(\n",
|
||
" np.random.uniform(size=(dataset_size, 2)).tolist(), # Depot location\n",
|
||
" np.random.uniform(size=(dataset_size, vrp_size, 2)).tolist(), # Node locations\n",
|
||
" np.random.randint(1, 10, size=(dataset_size, vrp_size)).tolist(), # Demand, uniform integer 1 ... 9\n",
|
||
" np.full(dataset_size, CAPACITIES[vrp_size]).tolist() # Capacity, same for whole dataset\n",
|
||
" ))\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_op_data(dataset_size, op_size, prize_type='const'):\n",
|
||
" depot = np.random.uniform(size=(dataset_size, 2))\n",
|
||
" loc = np.random.uniform(size=(dataset_size, op_size, 2))\n",
|
||
"\n",
|
||
" # Methods taken from Fischetti et al. 1998\n",
|
||
" if prize_type == 'const':\n",
|
||
" prize = np.ones((dataset_size, op_size))\n",
|
||
" elif prize_type == 'unif':\n",
|
||
" prize = (1 + np.random.randint(0, 100, size=(dataset_size, op_size))) / 100.\n",
|
||
" else: # Based on distance to depot\n",
|
||
" assert prize_type == 'dist'\n",
|
||
" prize_ = np.linalg.norm(depot[:, None, :] - loc, axis=-1)\n",
|
||
" prize = (1 + (prize_ / prize_.max(axis=-1, keepdims=True) * 99).astype(int)) / 100.\n",
|
||
"\n",
|
||
" # Max length is approximately half of optimal TSP tour, such that half (a bit more) of the nodes can be visited\n",
|
||
" # which is maximally difficult as this has the largest number of possibilities\n",
|
||
" MAX_LENGTHS = {\n",
|
||
" 20: 2.,\n",
|
||
" 50: 3.,\n",
|
||
" 100: 4.\n",
|
||
" }\n",
|
||
"\n",
|
||
" return list(zip(\n",
|
||
" depot.tolist(),\n",
|
||
" loc.tolist(),\n",
|
||
" prize.tolist(),\n",
|
||
" np.full(dataset_size, MAX_LENGTHS[op_size]).tolist() # Capacity, same for whole dataset\n",
|
||
" ))\n",
|
||
"\n",
|
||
"\n",
|
||
"def generate_pctsp_data(dataset_size, pctsp_size, penalty_factor=3):\n",
|
||
" depot = np.random.uniform(size=(dataset_size, 2))\n",
|
||
" loc = np.random.uniform(size=(dataset_size, pctsp_size, 2))\n",
|
||
"\n",
|
||
" # For the penalty to make sense it should be not too large (in which case all nodes will be visited) nor too small\n",
|
||
" # so we want the objective term to be approximately equal to the length of the tour, which we estimate with half\n",
|
||
" # of the nodes by half of the tour length (which is very rough but similar to op)\n",
|
||
" # This means that the sum of penalties for all nodes will be approximately equal to the tour length (on average)\n",
|
||
" # The expected total (uniform) penalty of half of the nodes (since approx half will be visited by the constraint)\n",
|
||
" # is (n / 2) / 2 = n / 4 so divide by this means multiply by 4 / n,\n",
|
||
" # However instead of 4 we use penalty_factor (3 works well) so we can make them larger or smaller\n",
|
||
" MAX_LENGTHS = {\n",
|
||
" 20: 2.,\n",
|
||
" 50: 3.,\n",
|
||
" 100: 4.\n",
|
||
" }\n",
|
||
" penalty_max = MAX_LENGTHS[pctsp_size] * (penalty_factor) / float(pctsp_size)\n",
|
||
" penalty = np.random.uniform(size=(dataset_size, pctsp_size)) * penalty_max\n",
|
||
"\n",
|
||
" # Take uniform prizes\n",
|
||
" # Now expectation is 0.5 so expected total prize is n / 2, we want to force to visit approximately half of the nodes\n",
|
||
" # so the constraint will be that total prize >= (n / 2) / 2 = n / 4\n",
|
||
" # equivalently, we divide all prizes by n / 4 and the total prize should be >= 1\n",
|
||
" deterministic_prize = np.random.uniform(size=(dataset_size, pctsp_size)) * 4 / float(pctsp_size)\n",
|
||
"\n",
|
||
" # In the deterministic setting, the stochastic_prize is not used and the deterministic prize is known\n",
|
||
" # In the stochastic setting, the deterministic prize is the expected prize and is known up front but the\n",
|
||
" # stochastic prize is only revealed once the node is visited\n",
|
||
" # Stochastic prize is between (0, 2 * expected_prize) such that E(stochastic prize) = E(deterministic_prize)\n",
|
||
" stochastic_prize = np.random.uniform(size=(dataset_size, pctsp_size)) * deterministic_prize * 2\n",
|
||
"\n",
|
||
" return list(zip(\n",
|
||
" depot.tolist(),\n",
|
||
" loc.tolist(),\n",
|
||
" penalty.tolist(),\n",
|
||
" deterministic_prize.tolist(),\n",
|
||
" stochastic_prize.tolist()\n",
|
||
" ))\n",
|
||
"\n",
|
||
"\n",
|
||
"if __name__ == \"__main__\":\n",
|
||
" parser = argparse.ArgumentParser()\n",
|
||
" parser.add_argument(\"--filename\", help=\"Filename of the dataset to create (ignores datadir)\")\n",
|
||
" parser.add_argument(\"--data_dir\", default='data', help=\"Create datasets in data_dir/problem (default 'data')\")\n",
|
||
" parser.add_argument(\"--name\", type=str, required=True, help=\"Name to identify dataset\")\n",
|
||
" parser.add_argument(\"--problem\", type=str, default='all',\n",
|
||
" help=\"Problem, 'tsp', 'vrp', 'pctsp' or 'op_const', 'op_unif' or 'op_dist'\"\n",
|
||
" \" or 'all' to generate all\")\n",
|
||
" parser.add_argument('--data_distribution', type=str, default='all',\n",
|
||
" help=\"Distributions to generate for problem, default 'all'.\")\n",
|
||
"\n",
|
||
" parser.add_argument(\"--dataset_size\", type=int, default=10000, help=\"Size of the dataset\")\n",
|
||
" parser.add_argument('--graph_sizes', type=int, nargs='+', default=[20, 50, 100],\n",
|
||
" help=\"Sizes of problem instances (default 20, 50, 100)\")\n",
|
||
" parser.add_argument(\"-f\", action='store_true', help=\"Set true to overwrite\")\n",
|
||
" parser.add_argument('--seed', type=int, default=1234, help=\"Random seed\")\n",
|
||
"\n",
|
||
" opts = parser.parse_args()\n",
|
||
"\n",
|
||
" assert opts.filename is None or (len(opts.problems) == 1 and len(opts.graph_sizes) == 1), \\\n",
|
||
" \"Can only specify filename when generating a single dataset\"\n",
|
||
"\n",
|
||
" distributions_per_problem = {\n",
|
||
" 'tsp': [None],\n",
|
||
" 'vrp': [None],\n",
|
||
" 'pctsp': [None],\n",
|
||
" 'op': ['const', 'unif', 'dist']\n",
|
||
" }\n",
|
||
" if opts.problem == 'all':\n",
|
||
" problems = distributions_per_problem\n",
|
||
" else:\n",
|
||
" problems = {\n",
|
||
" opts.problem:\n",
|
||
" distributions_per_problem[opts.problem]\n",
|
||
" if opts.data_distribution == 'all'\n",
|
||
" else [opts.data_distribution]\n",
|
||
" }\n",
|
||
"\n",
|
||
" for problem, distributions in problems.items():\n",
|
||
" for distribution in distributions or [None]:\n",
|
||
" for graph_size in opts.graph_sizes:\n",
|
||
"\n",
|
||
" datadir = os.path.join(opts.data_dir, problem)\n",
|
||
" os.makedirs(datadir, exist_ok=True)\n",
|
||
"\n",
|
||
" if opts.filename is None:\n",
|
||
" filename = os.path.join(datadir, \"{}{}{}_{}_seed{}.pkl\".format(\n",
|
||
" problem,\n",
|
||
" \"_{}\".format(distribution) if distribution is not None else \"\",\n",
|
||
" graph_size, opts.name, opts.seed))\n",
|
||
" else:\n",
|
||
" filename = check_extension(opts.filename)\n",
|
||
"\n",
|
||
" assert opts.f or not os.path.isfile(check_extension(filename)), \\\n",
|
||
" \"File already exists! Try running with -f option to overwrite.\"\n",
|
||
"\n",
|
||
" np.random.seed(opts.seed)\n",
|
||
" if problem == 'tsp':\n",
|
||
" dataset = generate_tsp_data(opts.dataset_size, graph_size)\n",
|
||
" elif problem == 'vrp':\n",
|
||
" dataset = generate_vrp_data(\n",
|
||
" opts.dataset_size, graph_size)\n",
|
||
" elif problem == 'pctsp':\n",
|
||
" dataset = generate_pctsp_data(opts.dataset_size, graph_size)\n",
|
||
" elif problem == \"op\":\n",
|
||
" dataset = generate_op_data(opts.dataset_size, graph_size, prize_type=distribution)\n",
|
||
" else:\n",
|
||
" assert False, \"Unknown problem: {}\".format(problem)\n",
|
||
"\n",
|
||
" print(dataset[0])\n",
|
||
"\n",
|
||
" save_dataset(dataset, filename)"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Overwriting generate_data.py\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "tmN4OChGUUYT",
|
||
"colab_type": "code",
|
||
"outputId": "2fa39156-b024-458d-8240-45ee51422527",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 54
|
||
}
|
||
},
|
||
"source": [
|
||
"!python generate_data.py --problem tsp --graph_size 20 --name exp --seed 1234\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[[0.04336780139995939, 0.3725899129119945], [0.16070747556027948, 0.5922857427330045], [0.4638538294775591, 0.1182318722007388], [0.07923384451627163, 0.6233799636036607], [1.0, 0.8051870382771676], [0.11777203477662448, 0.2646099618309201], [0.3463421375166296, 0.4790461654868227], [0.12408898130065805, 0.3145445007541868], [0.2006306078036347, 0.0], [0.45352244374216016, 0.8267779034514137], [0.12134819870178674, 0.3657511425229183], [0.0, 0.17334714305702045], [0.8487082869826074, 0.4039024774193534], [0.1382214616590773, 0.5984351643635087], [0.09778457977956194, 0.32070272971702574], [0.6317075161801906, 0.21717386700500294], [0.4981721509735848, 0.05490027490104686], [0.3683008324636744, 0.46821989951624987], [0.05445501470450839, 1.0], [0.16325332759297706, 0.926929627525629]]\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "aUt6W0NYeTln",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"# BENCHMARK"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "HuXDuFLbxL_g",
|
||
"colab_type": "code",
|
||
"colab": {}
|
||
},
|
||
"source": [
|
||
"### At this point, you need to upload trained respective models to folders pretrained/tsp20_normal, pretrained/tsp20_exp\n",
|
||
"\n",
|
||
"#### Please see README for directions to train models using data from normal and exponential distributions"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "V5fDeQuSgGKe",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"## model trained by uniform data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "-2hVCLP3_-c9",
|
||
"colab_type": "code",
|
||
"colab": {}
|
||
},
|
||
"source": [
|
||
"### greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": []
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "IELPRiIudurj",
|
||
"colab_type": "code",
|
||
"outputId": "2f04852e-d5ce-4f49-a4ee-51ee0e14d437",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp_20 --decode_strategy greedy\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 6.62it/s]\n",
|
||
"Average cost: 3.8469574451446533 +- 0.006181415915489197\n",
|
||
"Average serial duration: 0.14815111541748047 +- 0.0014710603475011662\n",
|
||
"Average parallel duration: 0.00014467882364988327\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "Ps9cjngFdu24",
|
||
"colab_type": "code",
|
||
"outputId": "332e8598-47a6-4e64-d02b-69f149782b58",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp_20 --decode_strategy greedy\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 7.89it/s]\n",
|
||
"Average cost: 4.0230712890625 +- 0.005070921182632446\n",
|
||
"Average serial duration: 0.12489537239074706 +- 0.0003144771939559984\n",
|
||
"Average parallel duration: 0.00012196813710033893\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "TPL33tSOf9lz",
|
||
"colab_type": "code",
|
||
"outputId": "615fd198-4473-4488-e426-1ae592de230f",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp_20 --decode_strategy greedy\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 8.54it/s]\n",
|
||
"Average cost: 3.8908984661102295 +- 0.004641308784484864\n",
|
||
"Average serial duration: 0.11471791801452637 +- 0.00013030332244559376\n",
|
||
"Average parallel duration: 0.0001120292168110609\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "pj0vm4TNADIe",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### sampling"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "HE0eqvcL_oxt",
|
||
"colab_type": "code",
|
||
"outputId": "60639893-c1aa-4f03-fcf0-f0513b618e08",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp_20 --decode_strategy sample --width 1280 --eval_batch_size 1\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:18<00:00, 10.86it/s]\n",
|
||
"Average cost: 3.8381543159484863 +- 0.006112644672393799\n",
|
||
"Average serial duration: 0.09167320513725281 +- 3.117995698802496e-05\n",
|
||
"Average parallel duration: 0.09167320513725281\n",
|
||
"Calculated total duration: 0:15:16\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "8B1ywsZx_pB1",
|
||
"colab_type": "code",
|
||
"outputId": "e1d24eaf-6494-4164-dd78-f23011be4faa",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp_20 --decode_strategy sample --width 1280 --eval_batch_size 1\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:20<00:00, 10.86it/s]\n",
|
||
"Average cost: 4.0072712898254395 +- 0.004964374601840973\n",
|
||
"Average serial duration: 0.09189823930263519 +- 3.1766859988534636e-05\n",
|
||
"Average parallel duration: 0.09189823930263519\n",
|
||
"Calculated total duration: 0:15:18\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "fa5WVmcy_ouI",
|
||
"colab_type": "code",
|
||
"outputId": "c4850c28-21e5-4097-8982-d96ae7757689",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp_20 --decode_strategy sample --width 1280 --eval_batch_size 1\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:22<00:00, 10.85it/s]\n",
|
||
"Average cost: 3.876112222671509 +- 0.004581215977668762\n",
|
||
"Average serial duration: 0.09203371646404267 +- 3.346870868492905e-05\n",
|
||
"Average parallel duration: 0.09203371646404267\n",
|
||
"Calculated total duration: 0:15:20\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "DPKvO0BLAH6p",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### beam "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "HLO3GbXRAJaI",
|
||
"colab_type": "code",
|
||
"outputId": "d4d72d40-b716-4c4c-f9fc-38eeac473f50",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp_20 --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10/10 [12:45<00:00, 72.80s/it]\n",
|
||
"Average cost: 3.8357863426208496 +- 0.006096035838127136\n",
|
||
"Average serial duration: 76.99149408950805 +- 0.10007011806510074\n",
|
||
"Average parallel duration: 0.07518700594678521\n",
|
||
"Calculated total duration: 0:12:31\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "uTNC_4ffAJrS",
|
||
"colab_type": "code",
|
||
"outputId": "8523a347-546d-4fcb-8b87-7d4e99124262",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp_20 --decode_strategy bs --width 1280\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10/10 [12:46<00:00, 72.80s/it]\n",
|
||
"Average cost: 4.00300407409668 +- 0.004933704435825348\n",
|
||
"Average serial duration: 77.00303399429322 +- 0.10050436876072448\n",
|
||
"Average parallel duration: 0.07519827538505197\n",
|
||
"Calculated total duration: 0:12:31\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "w0E_L9W9AJz6",
|
||
"colab_type": "code",
|
||
"outputId": "238c3ad3-f694-49df-d01d-16c6305c43a4",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp_20 --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp_20/epoch-99.pt\n",
|
||
"100% 10/10 [12:46<00:00, 72.86s/it]\n",
|
||
"Average cost: 3.872048854827881 +- 0.004557388424873352\n",
|
||
"Average serial duration: 77.04389841041565 +- 0.10010861828241684\n",
|
||
"Average parallel duration: 0.07523818204142153\n",
|
||
"Calculated total duration: 0:12:32\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "uNSfaHLsgQ2-",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"## model trained by normal data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "MAW4msm7EDlE",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### greedy"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "qld2zSjygUAM",
|
||
"colab_type": "code",
|
||
"outputId": "f20c1515-f9cd-46b8-fb34-b78b953055e8",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 7.74it/s]\n",
|
||
"Average cost: 3.8487350940704346 +- 0.006188065409660339\n",
|
||
"Average serial duration: 0.12723925552368165 +- 0.00033710665387614636\n",
|
||
"Average parallel duration: 0.00012425708547234536\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "R41nBtKgggJe",
|
||
"colab_type": "code",
|
||
"outputId": "44c19b08-25a5-4d8f-faa8-acd5f5ac418e",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 8.51it/s]\n",
|
||
"Average cost: 4.021048069000244 +- 0.005075105428695679\n",
|
||
"Average serial duration: 0.1261111213684082 +- 0.0003147020906978365\n",
|
||
"Average parallel duration: 0.00012315539196133615\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "oGnO_PUJggGc",
|
||
"colab_type": "code",
|
||
"outputId": "28ac289f-6eb3-4b4e-dcad-39c15889a2ba",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 8.54it/s]\n",
|
||
"Average cost: 3.8872718811035156 +- 0.004643577039241791\n",
|
||
"Average serial duration: 0.11479463768005371 +- 0.00013039843674037734\n",
|
||
"Average parallel duration: 0.00011210413835942745\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "Ta-smEmcEG8d",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### sampling"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "fuNRsji8EHL-",
|
||
"colab_type": "code",
|
||
"outputId": "a70d2ffa-1f61-4ba7-bba6-f8be09646700",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy sample --width 1280 --eval_batch_size 1\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:15<00:00, 10.91it/s]\n",
|
||
"Average cost: 3.8381524085998535 +- 0.0061155444383621214\n",
|
||
"Average serial duration: 0.09139069859981537 +- 3.13256571533562e-05\n",
|
||
"Average parallel duration: 0.09139069859981537\n",
|
||
"Calculated total duration: 0:15:13\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "4Hl7BLZHEHQ9",
|
||
"colab_type": "code",
|
||
"outputId": "47967ac5-9f29-4be4-9376-bc7b51fb2d47",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy sample --width 1280 --eval_batch_size 1\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:19<00:00, 10.88it/s]\n",
|
||
"Average cost: 4.006791591644287 +- 0.004963922798633575\n",
|
||
"Average serial duration: 0.09178277904987335 +- 3.0130162999989738e-05\n",
|
||
"Average parallel duration: 0.09178277904987335\n",
|
||
"Calculated total duration: 0:15:17\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "u1vVVWweEHJA",
|
||
"colab_type": "code",
|
||
"outputId": "10bb9acb-83fb-4195-ebc4-80a6cd14c5ec",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy sample --width 1280 --eval_batch_size 1\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:17<00:00, 10.89it/s]\n",
|
||
"Average cost: 3.8755555152893066 +- 0.004577849805355072\n",
|
||
"Average serial duration: 0.09161883289813995 +- 3.463647558383523e-05\n",
|
||
"Average parallel duration: 0.09161883289813995\n",
|
||
"Calculated total duration: 0:15:16\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "W71aiXsxEV0l",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### beam search"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "S_xSqUIaEV7s",
|
||
"colab_type": "code",
|
||
"outputId": "a270d2a7-d6ef-4864-920d-9887620a8744",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10/10 [12:43<00:00, 72.57s/it]\n",
|
||
"Average cost: 3.835773468017578 +- 0.006095810532569885\n",
|
||
"Average serial duration: 76.70787101364135 +- 0.09933484058526675\n",
|
||
"Average parallel duration: 0.07491003028675913\n",
|
||
"Calculated total duration: 0:12:29\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "64-5Hp2LEWEd",
|
||
"colab_type": "code",
|
||
"outputId": "b687af2e-dca9-467b-f38c-94d27eb813e1",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10/10 [12:43<00:00, 72.57s/it]\n",
|
||
"Average cost: 4.002930641174316 +- 0.0049324694275856016\n",
|
||
"Average serial duration: 76.71099352416992 +- 0.09952827258098469\n",
|
||
"Average parallel duration: 0.07491307961344719\n",
|
||
"Calculated total duration: 0:12:29\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "gUU0cNUhEWCA",
|
||
"colab_type": "code",
|
||
"outputId": "9b13ac4c-0f41-4512-d9af-4bd283667390",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp20_normal --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_normal/epoch-99.pt\n",
|
||
"100% 10/10 [12:43<00:00, 72.74s/it]\n",
|
||
"Average cost: 3.8719804286956787 +- 0.004555678069591522\n",
|
||
"Average serial duration: 76.78243901138306 +- 0.09842724740134741\n",
|
||
"Average parallel duration: 0.07498285059705377\n",
|
||
"Calculated total duration: 0:12:29\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "lzs3KcDxgpO2",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"## model trained by exp data"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "lnCHkTaiEjs-",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### greedy"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "z-8Ml4Q1grP5",
|
||
"colab_type": "code",
|
||
"outputId": "2fda9a33-8e05-44d7-c20a-0d86f4da50d9",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 7.90it/s]\n",
|
||
"Average cost: 3.8662891387939453 +- 0.006299136877059936\n",
|
||
"Average serial duration: 0.12459056549072266 +- 0.00031113642457168624\n",
|
||
"Average parallel duration: 0.00012167047411203385\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "kzPRi0cLgrOL",
|
||
"colab_type": "code",
|
||
"outputId": "25fd55ef-c58f-426d-c2ef-cf9b89d9e679",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 8.41it/s]\n",
|
||
"Average cost: 4.049468040466309 +- 0.005252897143363953\n",
|
||
"Average serial duration: 0.11675377235412597 +- 0.0001380739674404142\n",
|
||
"Average parallel duration: 0.00011401735581457614\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "2JzjqbqagrKu",
|
||
"colab_type": "code",
|
||
"outputId": "922287d0-1f42-4ed0-e1b6-b9fc163b3691",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy greedy"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10/10 [00:01<00:00, 8.49it/s]\n",
|
||
"Average cost: 3.8815555572509766 +- 0.004659999907016754\n",
|
||
"Average serial duration: 0.11548481101989747 +- 0.00012182340045244305\n",
|
||
"Average parallel duration: 0.00011277813576161862\n",
|
||
"Calculated total duration: 0:00:01\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "TRhg6WZDEmoJ",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### sampling"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "CmU6Q-geEnCF",
|
||
"colab_type": "code",
|
||
"outputId": "90ff7d1c-57e1-4288-e190-59cd5758efc7",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy sample --width 1280 --eval_batch_size 1"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:22<00:00, 10.83it/s]\n",
|
||
"Average cost: 3.8418924808502197 +- 0.006148285269737244\n",
|
||
"Average serial duration: 0.09204656994342804 +- 2.9680414589695874e-05\n",
|
||
"Average parallel duration: 0.09204656994342804\n",
|
||
"Calculated total duration: 0:15:20\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "MABWsM1eEnI4",
|
||
"colab_type": "code",
|
||
"outputId": "f697555d-f488-4513-eebf-1499242261ff",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy sample --width 1280 --eval_batch_size 1"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:12<00:00, 10.96it/s]\n",
|
||
"Average cost: 4.012983798980713 +- 0.005003257989883423\n",
|
||
"Average serial duration: 0.09108476479053497 +- 3.073670279938959e-05\n",
|
||
"Average parallel duration: 0.09108476479053497\n",
|
||
"Calculated total duration: 0:15:10\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "FGbN-1oMEnG6",
|
||
"colab_type": "code",
|
||
"outputId": "7a7df62e-49e4-4044-c934-a5c34ebbb15a",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy sample --width 1280 --eval_batch_size 1"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10000/10000 [15:15<00:00, 10.92it/s]\n",
|
||
"Average cost: 3.8740508556365967 +- 0.004585070908069611\n",
|
||
"Average serial duration: 0.09135517461299897 +- 2.9444837636329355e-05\n",
|
||
"Average parallel duration: 0.09135517461299897\n",
|
||
"Calculated total duration: 0:15:13\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "_DENZ6hsEyIq",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"### beam"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "ld4fjvhoEyRI",
|
||
"colab_type": "code",
|
||
"outputId": "a63f918d-d8c0-4063-ff97-0ab2e136019e",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_uni_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10/10 [12:46<00:00, 72.89s/it]\n",
|
||
"Average cost: 3.8362414836883545 +- 0.006099634170532227\n",
|
||
"Average serial duration: 77.06917475242615 +- 0.09995013794926498\n",
|
||
"Average parallel duration: 0.07526286596916616\n",
|
||
"Calculated total duration: 0:12:32\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "uUvYFwLqEyW_",
|
||
"colab_type": "code",
|
||
"outputId": "cb2b168c-eb4d-4ced-a480-61c8065e32d5",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_normal_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10/10 [12:46<00:00, 72.89s/it]\n",
|
||
"Average cost: 4.004576206207275 +- 0.004940682351589203\n",
|
||
"Average serial duration: 77.0833006023407 +- 0.10003920741957335\n",
|
||
"Average parallel duration: 0.07527666074447334\n",
|
||
"Calculated total duration: 0:12:32\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "vXqtgxdeEyb2",
|
||
"colab_type": "code",
|
||
"outputId": "ad9efabd-c704-4583-937a-8c2e72383198",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 118
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore eval.py data/tsp/tsp20_exp_seed1234.pkl --model pretrained/tsp20_exp --decode_strategy bs --width 1280"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
" [*] Loading model from pretrained/tsp20_exp/epoch-99.pt\n",
|
||
"100% 10/10 [12:46<00:00, 72.87s/it]\n",
|
||
"Average cost: 3.871830940246582 +- 0.00455826610326767\n",
|
||
"Average serial duration: 77.06826272392273 +- 0.10017743043944312\n",
|
||
"Average parallel duration: 0.07526197531633079\n",
|
||
"Calculated total duration: 0:12:32\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "OUVhTYnjn246",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
"## baselines"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "e3tEgvRxoiIm",
|
||
"colab_type": "code",
|
||
"outputId": "7ba11f73-e71b-4b75-bb20-e2798dcade65",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 269
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore -m problems.tsp.tsp_baseline farthest_insertion data/tsp/tsp20_uni_seed1234.pkl data/tsp/tsp20_normal_seed1234.pkl data/tsp/tsp20_exp_seed1234.pkl\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"100% 10000/10000 [00:19<00:00, 519.21it/s]\n",
|
||
"Average cost: 3.9261510540578586 +- 0.0067912789831400255\n",
|
||
"Average serial duration: 0.003496509122848511 +- 1.5766272455748915e-05\n",
|
||
"Average parallel duration: 0.0017482545614242555\n",
|
||
"Calculated total duration: 0:00:17\n",
|
||
"100% 10000/10000 [00:19<00:00, 516.81it/s]\n",
|
||
"Average cost: 4.113411405843456 +- 0.005789694990470995\n",
|
||
"Average serial duration: 0.0035043909311294557 +- 1.6315635688762028e-05\n",
|
||
"Average parallel duration: 0.0017521954655647278\n",
|
||
"Calculated total duration: 0:00:17\n",
|
||
"100% 10000/10000 [00:19<00:00, 528.39it/s]\n",
|
||
"Average cost: 3.933196804361465 +- 0.005104744878548632\n",
|
||
"Average serial duration: 0.003560198926925659 +- 1.6017586001237904e-05\n",
|
||
"Average parallel duration: 0.0017800994634628296\n",
|
||
"Calculated total duration: 0:00:17\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "9T5QZs_Tp9C2",
|
||
"colab_type": "code",
|
||
"outputId": "7bedd0a1-ad65-46f6-b927-73b2fd1632e4",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 269
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore -m problems.tsp.tsp_baseline nearest_insertion data/tsp/tsp20_uni_seed1234.pkl data/tsp/tsp20_normal_seed1234.pkl data/tsp/tsp20_exp_seed1234.pkl\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"100% 10000/10000 [00:19<00:00, 502.96it/s]\n",
|
||
"Average cost: 4.331042876579414 +- 0.007700319320583336\n",
|
||
"Average serial duration: 0.003623325824737549 +- 1.4718477127727019e-05\n",
|
||
"Average parallel duration: 0.0018116629123687744\n",
|
||
"Calculated total duration: 0:00:18\n",
|
||
"100% 10000/10000 [00:19<00:00, 503.11it/s]\n",
|
||
"Average cost: 4.4523394905958655 +- 0.006543770058541374\n",
|
||
"Average serial duration: 0.0036141402006149292 +- 1.56058280199803e-05\n",
|
||
"Average parallel duration: 0.0018070701003074646\n",
|
||
"Calculated total duration: 0:00:18\n",
|
||
"100% 10000/10000 [00:20<00:00, 499.66it/s]\n",
|
||
"Average cost: 4.3309032131195195 +- 0.006853898783231086\n",
|
||
"Average serial duration: 0.0036420297384262084 +- 1.6610718337847367e-05\n",
|
||
"Average parallel duration: 0.0018210148692131042\n",
|
||
"Calculated total duration: 0:00:18\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "Ur0W03rhp9an",
|
||
"colab_type": "code",
|
||
"outputId": "01a1eda6-1250-41b7-aca5-fee2df334c4c",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 269
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore -m problems.tsp.tsp_baseline random_insertion data/tsp/tsp20_uni_seed1234.pkl data/tsp/tsp20_normal_seed1234.pkl data/tsp/tsp20_exp_seed1234.pkl\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"100% 10000/10000 [00:12<00:00, 776.05it/s]\n",
|
||
"Average cost: 4.002858816987077 +- 0.007209318008514225\n",
|
||
"Average serial duration: 0.002333502507209778 +- 1.3590073729393837e-05\n",
|
||
"Average parallel duration: 0.001166751253604889\n",
|
||
"Calculated total duration: 0:00:11\n",
|
||
"100% 10000/10000 [00:12<00:00, 771.48it/s]\n",
|
||
"Average cost: 4.201462275425884 +- 0.006104976707380994\n",
|
||
"Average serial duration: 0.002351891899108887 +- 1.2259590146179106e-05\n",
|
||
"Average parallel duration: 0.0011759459495544434\n",
|
||
"Calculated total duration: 0:00:11\n",
|
||
"100% 10000/10000 [00:12<00:00, 772.01it/s]\n",
|
||
"Average cost: 4.029217886748669 +- 0.005922078296341571\n",
|
||
"Average serial duration: 0.002344406604766846 +- 1.178921997848706e-05\n",
|
||
"Average parallel duration: 0.001172203302383423\n",
|
||
"Calculated total duration: 0:00:11\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "TBYl1karG7g3",
|
||
"colab_type": "code",
|
||
"outputId": "e4b7a8b1-3395-4a13-8677-c7faa1b858d0",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 269
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore -m problems.tsp.tsp_baseline nn data/tsp/tsp20_uni_seed1234.pkl data/tsp/tsp20_normal_seed1234.pkl data/tsp/tsp20_exp_seed1234.pkl\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"100% 10/10 [00:03<00:00, 3.25it/s]\n",
|
||
"Average cost: 4.496747266316414 +- 0.010914400457607778\n",
|
||
"Average serial duration: 0.23089101314544677 +- 0.013170191375460676\n",
|
||
"Average parallel duration: 0.00023089101314544678\n",
|
||
"Calculated total duration: 0:00:02\n",
|
||
"100% 10/10 [00:00<00:00, 11.18it/s]\n",
|
||
"Average cost: 4.768014658021927 +- 0.009324117583541715\n",
|
||
"Average serial duration: 0.011435842514038086 +- 1.6545441357673393e-06\n",
|
||
"Average parallel duration: 1.1435842514038087e-05\n",
|
||
"Calculated total duration: 0:00:00\n",
|
||
"100% 10/10 [00:00<00:00, 11.22it/s]\n",
|
||
"Average cost: 4.550673234009743 +- 0.009053436867087315\n",
|
||
"Average serial duration: 0.011440110206604005 +- 2.4947079748369583e-06\n",
|
||
"Average parallel duration: 1.1440110206604004e-05\n",
|
||
"Calculated total duration: 0:00:00\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "wOOr6rq7x6UF",
|
||
"colab_type": "text"
|
||
},
|
||
"source": [
|
||
""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"metadata": {
|
||
"id": "jB_RCXupxk94",
|
||
"colab_type": "code",
|
||
"outputId": "7d46d659-7e11-4c3f-f46d-1446fc15d62c",
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 1000
|
||
}
|
||
},
|
||
"source": [
|
||
"!python -W ignore -m problems.tsp.tsp_baseline lkh data/tsp/tsp20_uni_seed1234.pkl data/tsp/tsp20_normal_seed1234.pkl data/tsp/tsp20_exp_seed1234.pkl\n"
|
||
],
|
||
"execution_count": 0,
|
||
"outputs": [
|
||
{
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/content/attention-learn-to-route/problems/vrp/lkh/LKH-3.0.4 not found, downloading and compiling\n",
|
||
"--2019-11-01 16:23:18-- http://www.akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.4.tgz\n",
|
||
"Resolving www.akira.ruc.dk (www.akira.ruc.dk)... 130.225.220.151\n",
|
||
"Connecting to www.akira.ruc.dk (www.akira.ruc.dk)|130.225.220.151|:80... connected.\n",
|
||
"HTTP request sent, awaiting response... 302 Found\n",
|
||
"Location: http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.4.tgz [following]\n",
|
||
"--2019-11-01 16:23:19-- http://akira.ruc.dk/~keld/research/LKH-3/LKH-3.0.4.tgz\n",
|
||
"Resolving akira.ruc.dk (akira.ruc.dk)... 130.225.220.230\n",
|
||
"Connecting to akira.ruc.dk (akira.ruc.dk)|130.225.220.230|:80... connected.\n",
|
||
"HTTP request sent, awaiting response... 200 OK\n",
|
||
"Length: 2308964 (2.2M) [application/x-gzip]\n",
|
||
"Saving to: ‘LKH-3.0.4.tgz’\n",
|
||
"\n",
|
||
"LKH-3.0.4.tgz 100%[===================>] 2.20M 231KB/s in 12s \n",
|
||
"\n",
|
||
"2019-11-01 16:23:33 (192 KB/s) - ‘LKH-3.0.4.tgz’ saved [2308964/2308964]\n",
|
||
"\n",
|
||
"LKH-3.0.4/\n",
|
||
"LKH-3.0.4/pr2392.par\n",
|
||
"LKH-3.0.4/whizzkids96.atsp\n",
|
||
"LKH-3.0.4/Makefile\n",
|
||
"LKH-3.0.4/whizzkids96.par\n",
|
||
"LKH-3.0.4/pr2392.tsp\n",
|
||
"LKH-3.0.4/DOC/\n",
|
||
"LKH-3.0.4/README.txt\n",
|
||
"LKH-3.0.4/SRC/\n",
|
||
"LKH-3.0.4/SRC/Penalty_CVRPTW.c\n",
|
||
"LKH-3.0.4/SRC/RestoreTour.c\n",
|
||
"LKH-3.0.4/SRC/SolveKMeansSubproblems.c\n",
|
||
"LKH-3.0.4/SRC/IsCommonEdge.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_TSPPD.c\n",
|
||
"LKH-3.0.4/SRC/ReadProblem.c\n",
|
||
"LKH-3.0.4/SRC/BestKOptMove.c\n",
|
||
"LKH-3.0.4/SRC/Distance_SPECIAL.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_TSPDL.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_PDPTW.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_ACVRP.c\n",
|
||
"LKH-3.0.4/SRC/CreateCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/OBJ/\n",
|
||
"LKH-3.0.4/SRC/Forbidden.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_CCVRP.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_M_PDTSP.c\n",
|
||
"LKH-3.0.4/SRC/Best5OptMove.c\n",
|
||
"LKH-3.0.4/SRC/RecordBetterTour.c\n",
|
||
"LKH-3.0.4/SRC/Best4OptMove.c\n",
|
||
"LKH-3.0.4/SRC/Exclude.c\n",
|
||
"LKH-3.0.4/SRC/C.c\n",
|
||
"LKH-3.0.4/SRC/IsCandidate.c\n",
|
||
"LKH-3.0.4/SRC/Make3OptMove.c\n",
|
||
"LKH-3.0.4/SRC/Make2OptMove.c\n",
|
||
"LKH-3.0.4/SRC/ResetCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/LKHmain.c\n",
|
||
"LKH-3.0.4/SRC/SolveSFCSubproblems.c\n",
|
||
"LKH-3.0.4/SRC/ERXT.c\n",
|
||
"LKH-3.0.4/SRC/fscanint.c\n",
|
||
"LKH-3.0.4/SRC/eprintf.c\n",
|
||
"LKH-3.0.4/SRC/Distance_SOP.c\n",
|
||
"LKH-3.0.4/SRC/Distance_MTSP.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_VRPPD.c\n",
|
||
"LKH-3.0.4/SRC/SINTEF_WriteSolution.c\n",
|
||
"LKH-3.0.4/SRC/Gain23.c\n",
|
||
"LKH-3.0.4/SRC/Heap.c\n",
|
||
"LKH-3.0.4/SRC/GetTime.c\n",
|
||
"LKH-3.0.4/SRC/SolveRoheSubproblems.c\n",
|
||
"LKH-3.0.4/SRC/ReadPenalties.c\n",
|
||
"LKH-3.0.4/SRC/Excludable.c\n",
|
||
"LKH-3.0.4/SRC/SolveCompressedSubproblem.c\n",
|
||
"LKH-3.0.4/SRC/Statistics.c\n",
|
||
"LKH-3.0.4/SRC/PatchCycles.c\n",
|
||
"LKH-3.0.4/SRC/MergeWithTourGPX2.c\n",
|
||
"LKH-3.0.4/SRC/Sequence.c\n",
|
||
"LKH-3.0.4/SRC/SolveDelaunaySubproblems.c\n",
|
||
"LKH-3.0.4/SRC/WritePenalties.c\n",
|
||
"LKH-3.0.4/SRC/NormalizeNodeList.c\n",
|
||
"LKH-3.0.4/SRC/FreeStructures.c\n",
|
||
"LKH-3.0.4/SRC/SolveKarpSubproblems.c\n",
|
||
"LKH-3.0.4/SRC/Makefile\n",
|
||
"LKH-3.0.4/SRC/CVRP_InitialTour.c\n",
|
||
"LKH-3.0.4/SRC/Between_SL.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_OVRP.c\n",
|
||
"LKH-3.0.4/SRC/SOP_InitialTour.c\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/\n",
|
||
"LKH-3.0.4/SRC/Penalty_MLP.c\n",
|
||
"LKH-3.0.4/SRC/IsPossibleCandidate.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_VRPBTW.c\n",
|
||
"LKH-3.0.4/SRC/NormalizeSegmentList.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_BWTSP.c\n",
|
||
"LKH-3.0.4/SRC/Hashing.c\n",
|
||
"LKH-3.0.4/SRC/LinKernighan.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_CVRP.c\n",
|
||
"LKH-3.0.4/SRC/gpx.c\n",
|
||
"LKH-3.0.4/SRC/AdjustCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/AllocateStructures.c\n",
|
||
"LKH-3.0.4/SRC/Flip_SSL.c\n",
|
||
"LKH-3.0.4/SRC/MakeKOptMove.c\n",
|
||
"LKH-3.0.4/SRC/BuildKDTree.c\n",
|
||
"LKH-3.0.4/SRC/SolveTourSegmentSubproblems.c\n",
|
||
"LKH-3.0.4/SRC/Random.c\n",
|
||
"LKH-3.0.4/SRC/CreateDelaunayCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/MTSP_WriteSolution.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_PDTSPF.c\n",
|
||
"LKH-3.0.4/SRC/SolveSubproblemBorderProblems.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_PDTSPL.c\n",
|
||
"LKH-3.0.4/SRC/ReadParameters.c\n",
|
||
"LKH-3.0.4/SRC/MTSP_Report.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_TRP.c\n",
|
||
"LKH-3.0.4/SRC/FixedOrCommonCandidates.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_CTSP.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_SOP.c\n",
|
||
"LKH-3.0.4/SRC/Best2OptMove.c\n",
|
||
"LKH-3.0.4/SRC/Best3OptMove.c\n",
|
||
"LKH-3.0.4/SRC/ReadCandidates.c\n",
|
||
"LKH-3.0.4/SRC/Make4OptMove.c\n",
|
||
"LKH-3.0.4/SRC/Make5OptMove.c\n",
|
||
"LKH-3.0.4/SRC/CreateNNCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/GenerateCandidates.c\n",
|
||
"LKH-3.0.4/SRC/Between.c\n",
|
||
"LKH-3.0.4/SRC/Flip_SL.c\n",
|
||
"LKH-3.0.4/SRC/SOP_RepairTour.c\n",
|
||
"LKH-3.0.4/SRC/Activate.c\n",
|
||
"LKH-3.0.4/SRC/SegmentSize.c\n",
|
||
"LKH-3.0.4/SRC/SolveSubproblem.c\n",
|
||
"LKH-3.0.4/SRC/MergeWithTourIPT.c\n",
|
||
"LKH-3.0.4/SRC/StoreTour.c\n",
|
||
"LKH-3.0.4/SRC/GreedyTour.c\n",
|
||
"LKH-3.0.4/SRC/PrintParameters.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_M1_PDTSP.c\n",
|
||
"LKH-3.0.4/SRC/SFCTour.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_PDTSP.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_VRPB.c\n",
|
||
"LKH-3.0.4/SRC/Minimum1TreeCost.c\n",
|
||
"LKH-3.0.4/SRC/MTSP2TSP.c\n",
|
||
"LKH-3.0.4/SRC/MergeTourWithBestTour.c\n",
|
||
"LKH-3.0.4/SRC/ReadEdges.c\n",
|
||
"LKH-3.0.4/SRC/BridgeGain.c\n",
|
||
"LKH-3.0.4/SRC/WriteCandidates.c\n",
|
||
"LKH-3.0.4/SRC/PDPTW_Reduce.c\n",
|
||
"LKH-3.0.4/SRC/Flip.c\n",
|
||
"LKH-3.0.4/SRC/WriteTour.c\n",
|
||
"LKH-3.0.4/SRC/Delaunay.c\n",
|
||
"LKH-3.0.4/SRC/TSPDL_InitialTour.c\n",
|
||
"LKH-3.0.4/SRC/VRPB_Reduce.c\n",
|
||
"LKH-3.0.4/SRC/CreateQuadrantCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/IsBackboneCandidate.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_MTSP.c\n",
|
||
"LKH-3.0.4/SRC/ReadLine.c\n",
|
||
"LKH-3.0.4/SRC/RecordBestTour.c\n",
|
||
"LKH-3.0.4/SRC/CandidateReport.c\n",
|
||
"LKH-3.0.4/SRC/OrderCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/CTSP_InitialTour.c\n",
|
||
"LKH-3.0.4/SRC/AddExtraCandidates.c\n",
|
||
"LKH-3.0.4/SRC/Distance.c\n",
|
||
"LKH-3.0.4/SRC/Genetic.c\n",
|
||
"LKH-3.0.4/SRC/AdjustClusters.c\n",
|
||
"LKH-3.0.4/SRC/AddTourCandidates.c\n",
|
||
"LKH-3.0.4/SRC/BIT.c\n",
|
||
"LKH-3.0.4/SRC/KSwapKick.c\n",
|
||
"LKH-3.0.4/SRC/Connect.c\n",
|
||
"LKH-3.0.4/SRC/RemoveFirstActive.c\n",
|
||
"LKH-3.0.4/SRC/Ascent.c\n",
|
||
"LKH-3.0.4/SRC/TrimCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/StatusReport.c\n",
|
||
"LKH-3.0.4/SRC/TSPTW_Reduce.c\n",
|
||
"LKH-3.0.4/SRC/printff.c\n",
|
||
"LKH-3.0.4/SRC/Between_SSL.c\n",
|
||
"LKH-3.0.4/SRC/SOP_Report.c\n",
|
||
"LKH-3.0.4/SRC/Create_POPMUSIC_CandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/MTSP_InitialTour.c\n",
|
||
"LKH-3.0.4/SRC/Improvement.c\n",
|
||
"LKH-3.0.4/SRC/GeoConversion.c\n",
|
||
"LKH-3.0.4/SRC/FindTour.c\n",
|
||
"LKH-3.0.4/SRC/TSPTW_MakespanCost.c\n",
|
||
"LKH-3.0.4/SRC/SymmetrizeCandidateSet.c\n",
|
||
"LKH-3.0.4/SRC/ChooseInitialTour.c\n",
|
||
"LKH-3.0.4/SRC/SolveKCenterSubproblems.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_1_PDTSP.c\n",
|
||
"LKH-3.0.4/SRC/AddCandidate.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_TSPTW.c\n",
|
||
"LKH-3.0.4/SRC/Penalty_RCTVRP.c\n",
|
||
"LKH-3.0.4/SRC/MinimumSpanningTree.c\n",
|
||
"LKH-3.0.4/SRC/BestSpecialOptMove.c\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/Genetic.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/Segment.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/Delaunay.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/GeoConversion.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/LKH.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/BIT.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/Sequence.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/GainType.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/Heap.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/Hashing.h\n",
|
||
"LKH-3.0.4/SRC/INCLUDE/gpx.h\n",
|
||
"LKH-3.0.4/DOC/POPMUSIC_REPORT.pdf\n",
|
||
"LKH-3.0.4/DOC/LKH_Genetic.pdf\n",
|
||
"LKH-3.0.4/DOC/LKH_REPORT.pdf\n",
|
||
"LKH-3.0.4/DOC/LKH-2_USER_GUIDE.pdf\n",
|
||
"LKH-3.0.4/DOC/TSPLIB_DOC.pdf\n",
|
||
"LKH-3.0.4/DOC/LKH-3_PARAMETERS.pdf\n",
|
||
"LKH-3.0.4/DOC/LKH-3_REPORT.pdf\n",
|
||
"make -C SRC\n",
|
||
"make[1]: Entering directory '/content/attention-learn-to-route/problems/vrp/lkh/LKH-3.0.4/SRC'\n",
|
||
"make LKH\n",
|
||
"make[2]: Entering directory '/content/attention-learn-to-route/problems/vrp/lkh/LKH-3.0.4/SRC'\n",
|
||
"gcc -c -o OBJ/Activate.o Activate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/AddCandidate.o AddCandidate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KAddCandidate.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KAddCandidate.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAddCandidate\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KAddCandidate.c:25:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAddCandidate.c:41:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/AddExtraCandidates.o AddExtraCandidates.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KAddExtraCandidates.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KAddExtraCandidates.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAddExtraCandidates\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KAddExtraCandidates.c:20:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KavedCandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/AddTourCandidates.o AddTourCandidates.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/AdjustCandidateSet.o AdjustCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KAdjustCandidateSet.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KAdjustCandidateSet.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAdjustCandidateSet\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KAdjustCandidateSet.c:28:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAdjustCandidateSet.c:44:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/AdjustClusters.o AdjustClusters.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KAdjustClusters.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KAdjustClusters.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAdjustClusters\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KAdjustClusters.c:17:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[Kize = (int *) calloc((K + 1), sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/AllocateStructures.o AllocateStructures.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KAllocateStructures.c:2\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAllocateStructures\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:34:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KB\u001b[m\u001b[KestTour = (int *) calloc(1 + Dimension, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:35:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KB\u001b[m\u001b[KetterTour = (int *) calloc(1 + Dimension, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:36:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KH\u001b[m\u001b[KTable = (HashTable *) malloc(sizeof(HashTable)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:39:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KR\u001b[m\u001b[Kand = (unsigned *)\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:47:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KacheSig = (int *) calloc(i, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:48:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KacheVal = (int *) calloc(i, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:55:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KT\u001b[m\u001b[K = (Node **) malloc((1 + 2 * K) * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:56:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KG\u001b[m\u001b[K = (GainType *) malloc(2 * K * sizeof(GainType)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:57:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kt\u001b[m\u001b[K = (Node **) malloc(6 * K * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:58:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kt\u001b[m\u001b[KSaved = (Node **) malloc((1 + 2 * K) * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:59:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kp\u001b[m\u001b[K = (int *) malloc(6 * K * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:60:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kq\u001b[m\u001b[K = (int *) malloc(6 * K * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:61:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Ki\u001b[m\u001b[Kncl = (int *) malloc(6 * K * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:62:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kc\u001b[m\u001b[Kycle = (int *) malloc(6 * K * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:63:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KwapStack =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAllocateSegments\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KAllocateStructures.c:88:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[K = (Segment *) malloc(sizeof(Segment)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Ascent.o Ascent.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Best2OptMove.o Best2OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Best3OptMove.o Best3OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Best4OptMove.o Best4OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Best5OptMove.o Best5OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/BestKOptMove.o BestKOptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/BestSpecialOptMove.o BestSpecialOptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Between.o Between.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Between_SL.o Between_SL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Between_SSL.o Between_SSL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/BridgeGain.o BridgeGain.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/BuildKDTree.o BuildKDTree.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KBuildKDTree.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KBuildKDTree.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KBuildKDTree\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KBuildKDTree.c:27:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KK\u001b[m\u001b[KDTree = (Node **) malloc(Dimension * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/C.o C.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/CandidateReport.o CandidateReport.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/ChooseInitialTour.o ChooseInitialTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Connect.o Connect.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/CreateCandidateSet.o CreateCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/CreateDelaunayCandidateSet.o CreateDelaunayCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/CreateNNCandidateSet.o CreateNNCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KCreateNNCandidateSet.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KCreateNNCandidateSet.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KCreateNNCandidateSet\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KCreateNNCandidateSet.c:23:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KX\u001b[m\u001b[KNearList = (Node **) malloc(Dimension * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateNNCandidateSet.c:24:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KT\u001b[m\u001b[Ko = (Node **) malloc((K + 1) * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateNNCandidateSet.c:25:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[Kost = (int *) malloc((K + 1) * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Create_POPMUSIC_CandidateSet.o Create_POPMUSIC_CandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/CreateQuadrantCandidateSet.o CreateQuadrantCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KCreateQuadrantCandidateSet.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KCreateQuadrantCandidateSet\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:50:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KX\u001b[m\u001b[KMin =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:52:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KX\u001b[m\u001b[KMax =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:54:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KY\u001b[m\u001b[KMin =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:56:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KY\u001b[m\u001b[KMax =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:59:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KZ\u001b[m\u001b[KMin =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:61:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KZ\u001b[m\u001b[KMax =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:70:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:113:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KavedCandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KCreateNearestNeighborCandidateSet\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:182:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KX\u001b[m\u001b[KMin =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:184:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KX\u001b[m\u001b[KMax =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:186:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KY\u001b[m\u001b[KMin =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:188:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KY\u001b[m\u001b[KMax =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:191:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KZ\u001b[m\u001b[KMin =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:193:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KZ\u001b[m\u001b[KMax =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:200:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KCreateQuadrantCandidateSet.c:224:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KavedCandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/CTSP_InitialTour.o CTSP_InitialTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/CVRP_InitialTour.o CVRP_InitialTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KCVRP_InitialTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KCVRP_InitialTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KCreateS\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KCVRP_InitialTour.c:138:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[K =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Delaunay.o Delaunay.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KDelaunay.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KDelaunay.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[Kdelaunay\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KDelaunay.c:80:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kp\u001b[m\u001b[K_sorted = (point **) malloc(n * sizeof(point *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KDelaunay.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[Kalloc_memory\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KDelaunay.c:477:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kp\u001b[m\u001b[K_array = (point *) calloc(n, sizeof(point)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KDelaunay.c:479:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Ke\u001b[m\u001b[K_array = e = (edge *) calloc(n_free_e, sizeof(edge)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KDelaunay.c:480:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kf\u001b[m\u001b[Kree_list_e = (edge **) calloc(n_free_e, sizeof(edge *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Distance.o Distance.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Distance_MTSP.o Distance_MTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Distance_SOP.o Distance_SOP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Distance_SPECIAL.o Distance_SPECIAL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/eprintf.o eprintf.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/ERXT.o ERXT.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Excludable.o Excludable.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Exclude.o Exclude.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/FindTour.o FindTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/FixedOrCommonCandidates.o FixedOrCommonCandidates.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Flip.o Flip.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Flip_SL.o Flip_SL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Flip_SSL.o Flip_SSL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Forbidden.o Forbidden.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/FreeStructures.o FreeStructures.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/fscanint.o fscanint.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Gain23.o Gain23.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/GenerateCandidates.o GenerateCandidates.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KGenerateCandidates.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KGenerateCandidates.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KGenerateCandidates\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KGenerateCandidates.c:57:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Genetic.o Genetic.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KGenetic.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KGenetic.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KAddToPopulation\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KGenetic.c:16:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KP\u001b[m\u001b[Kopulation =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KGenetic.c:19:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KP\u001b[m\u001b[Kopulation[i] =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KGenetic.c:21:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KP\u001b[m\u001b[KenaltyFitness =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KGenetic.c:23:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Kitness =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/GeoConversion.o GeoConversion.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/GetTime.o GetTime.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/GreedyTour.o GreedyTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KGreedyTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KGreedyTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KGreedyTour\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KGreedyTour.c:141:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KP\u001b[m\u001b[Kerm = (Node **) malloc(Count * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Hashing.o Hashing.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Heap.o Heap.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KHeap.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KHeap.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KHeapMake\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KHeap.c:22:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KH\u001b[m\u001b[Keap = (Node **) malloc((Size + 1) * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Improvement.o Improvement.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/IsBackboneCandidate.o IsBackboneCandidate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/IsCandidate.o IsCandidate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/IsCommonEdge.o IsCommonEdge.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/IsPossibleCandidate.o IsPossibleCandidate.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/KSwapKick.o KSwapKick.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KKSwapKick.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KKSwapKick.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KKSwapKick\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KKSwapKick.c:22:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Ks\u001b[m\u001b[K = (Node **) malloc(K * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KKSwapKick.c:33:5:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kassuming signed overflow does not occur when assuming that (X + c) < X is always false [\u001b[01;35m\u001b[K-Wstrict-overflow\u001b[m\u001b[K]\n",
|
||
" \u001b[01;35m\u001b[Kfor\u001b[m\u001b[K (i = 1; i < K; i++) {\n",
|
||
" \u001b[01;35m\u001b[K^~~\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/LinKernighan.o LinKernighan.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/LKHmain.o LKHmain.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Make2OptMove.o Make2OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Make3OptMove.o Make3OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Make4OptMove.o Make4OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Make5OptMove.o Make5OptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MakeKOptMove.o MakeKOptMove.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MergeTourWithBestTour.o MergeTourWithBestTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MergeWithTourIPT.o MergeWithTourIPT.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Minimum1TreeCost.o Minimum1TreeCost.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MinimumSpanningTree.o MinimumSpanningTree.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MTSP2TSP.o MTSP2TSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KMTSP2TSP.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KMTSP2TSP.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KMTSP2TSP\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KMTSP2TSP.c:36:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[KodeSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KMTSP2TSP.c:69:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[K->MergeSuc =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/MTSP_InitialTour.o MTSP_InitialTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MTSP_Report.o MTSP_Report.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/MTSP_WriteSolution.o MTSP_WriteSolution.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KMTSP_WriteSolution.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KMTSP_WriteSolution.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KMTSP_WriteSolution\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KMTSP_WriteSolution.c:16:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KolutionFile = fopen(FullFileName, \"w\"));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/NormalizeNodeList.o NormalizeNodeList.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/NormalizeSegmentList.o NormalizeSegmentList.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/OrderCandidateSet.o OrderCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/PatchCycles.o PatchCycles.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KPatchCycles.c:2\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KPatchCyclesRec\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:112:28:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kc\u001b[m\u001b[KycleSaved =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:146:32:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kp\u001b[m\u001b[KSaved =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:208:36:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kp\u001b[m\u001b[KSaved =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:235:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kp\u001b[m\u001b[KSaved = (int *) malloc(2 * k * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KShortestCycle\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KPatchCycles.c:304:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[Kize = (int *) calloc(1 + M, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Penalty_ACVRP.o Penalty_ACVRP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_BWTSP.o Penalty_BWTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_CCVRP.o Penalty_CCVRP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_CVRP.o Penalty_CVRP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_CVRPTW.o Penalty_CVRPTW.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_CTSP.o Penalty_CTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_1_PDTSP.o Penalty_1_PDTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_MLP.o Penalty_MLP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_M_PDTSP.o Penalty_M_PDTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KPenalty_M_PDTSP.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KPenalty_M_PDTSP.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KPenalty_M_PDTSP\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KPenalty_M_PDTSP.c:13:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KomLoad = (int *) malloc(DemandDimension * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KPenalty_M_PDTSP.c:14:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[Kin = (int *) malloc(DemandDimension * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Penalty_M1_PDTSP.o Penalty_M1_PDTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_MTSP.o Penalty_MTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_OVRP.o Penalty_OVRP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_PDPTW.o Penalty_PDPTW.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_PDTSP.o Penalty_PDTSP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_PDTSPF.o Penalty_PDTSPF.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KPenalty_PDTSPF.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KPenalty_PDTSPF.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KPenalty_PDTSPF\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KPenalty_PDTSPF.c:15:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KQ\u001b[m\u001b[Kueue = (int *) malloc(Capacity * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Penalty_PDTSPL.o Penalty_PDTSPL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KPenalty_PDTSPL.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KPenalty_PDTSPL.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KPenalty_PDTSPL\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KPenalty_PDTSPL.c:15:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[Ktack = (int *) malloc(Dim * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/Penalty_RCTVRP.o Penalty_RCTVRP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_SOP.o Penalty_SOP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_TRP.o Penalty_TRP.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_TSPDL.o Penalty_TSPDL.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_TSPPD.o Penalty_TSPPD.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_TSPTW.o Penalty_TSPTW.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_VRPB.o Penalty_VRPB.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_VRPBTW.o Penalty_VRPBTW.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Penalty_VRPPD.o Penalty_VRPPD.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/PDPTW_Reduce.o PDPTW_Reduce.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/printff.o printff.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/PrintParameters.o PrintParameters.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Random.o Random.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/ReadCandidates.o ReadCandidates.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KReadCandidates.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KReadCandidates.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KReadCandidates\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadCandidates.c:56:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/ReadEdges.o ReadEdges.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KReadEdges.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KReadEdges.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KReadEdges\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadEdges.c:25:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kn\u001b[m\u001b[Kode_set = (node *) calloc(Dimension + 1, sizeof(node)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadEdges.c:47:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Ke\u001b[m\u001b[K = (edge *) malloc(sizeof(edge)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadEdges.c:31:9:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kignoring return value of ‘\u001b[01m\u001b[Kfscanf\u001b[m\u001b[K’, declared with attribute warn_unused_result [\u001b[01;35m\u001b[K-Wunused-result\u001b[m\u001b[K]\n",
|
||
" \u001b[01;35m\u001b[Kfscanf(EdgeFile, \"%d %d\\n\", &i, &Edges)\u001b[m\u001b[K;\n",
|
||
" \u001b[01;35m\u001b[K^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadEdges.c:36:13:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kignoring return value of ‘\u001b[01m\u001b[Kfgets\u001b[m\u001b[K’, declared with attribute warn_unused_result [\u001b[01;35m\u001b[K-Wunused-result\u001b[m\u001b[K]\n",
|
||
" \u001b[01;35m\u001b[Kfgets(line, 80, EdgeFile)\u001b[m\u001b[K;\n",
|
||
" \u001b[01;35m\u001b[K^~~~~~~~~~~~~~~~~~~~~~~~~\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/ReadLine.o ReadLine.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KReadLine.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KReadLine.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KReadLine\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadLine.c:28:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KB\u001b[m\u001b[Kuffer = (char *) malloc(MaxBuffer = 80));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadLine.c:33:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KB\u001b[m\u001b[Kuffer = (char *) realloc(Buffer, MaxBuffer));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadLine.c:40:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KL\u001b[m\u001b[KastLine = (char *) malloc((i + 1) * sizeof(char)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/ReadParameters.o ReadParameters.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KReadParameters.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KReadParameters\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:616:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KandidateFileName =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:625:28:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KandidateFileName =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:677:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KE\u001b[m\u001b[KdgeFileName = (char **) malloc(sizeof(char *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:685:28:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KE\u001b[m\u001b[KdgeFileName =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:844:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[KergeTourFileName =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:853:28:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[KergeTourFileName =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KGetFileName\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadParameters.c:1164:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[Kt\u001b[m\u001b[K = (char *) malloc(strlen(Rest) + 1));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/ReadPenalties.o ReadPenalties.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/ReadProblem.o ReadProblem.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KReadProblem.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KReadProblem\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:555:28:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[Kon =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:663:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KostMatrix =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:773:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[KergeTourFile =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KCopy\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:875:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KB\u001b[m\u001b[Kuffer = (char *) malloc(strlen(S) + 1));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KCreateNodes\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:896:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[KodeSet = (Node *) calloc(Dimension + 1, sizeof(Node)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:905:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[K->MergeSuc =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KRead_CTSP_SET_SECTION\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:966:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KolorUsed = (int *) calloc(Salesmen + 1, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KRead_DEMAND_SECTION\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:1012:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[K->M_Demand =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KRead_EDGE_WEIGHT_SECTION\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:1282:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KostMatrix =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:1293:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KostMatrix = (int *) calloc((size_t) n * n, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KConvert2FullMatrix\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KReadProblem.c:2207:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KostMatrix = (int *) calloc((size_t) n * n, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/RecordBestTour.o RecordBestTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/RecordBetterTour.o RecordBetterTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/RemoveFirstActive.o RemoveFirstActive.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/ResetCandidateSet.o ResetCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/RestoreTour.o RestoreTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SegmentSize.o SegmentSize.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Sequence.o Sequence.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SFCTour.o SFCTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSFCTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSFCTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KSFCTour\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSFCTour.c:64:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KP\u001b[m\u001b[Kerm = (Node **) malloc(Dimension * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveCompressedSubproblem.o SolveCompressedSubproblem.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SINTEF_WriteSolution.o SINTEF_WriteSolution.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSINTEF_WriteSolution.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSINTEF_WriteSolution.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KSINTEF_WriteSolution\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSINTEF_WriteSolution.c:18:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KR\u001b[m\u001b[KesultFile = fopen(FullFileName, \"w\"));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SOP_RepairTour.o SOP_RepairTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSOP_RepairTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSOP_RepairTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KSOP_RepairTour\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSOP_RepairTour.c:28:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Kringe = (Node **) malloc(DimensionSaved * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveDelaunaySubproblems.o SolveDelaunaySubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSolveDelaunaySubproblems.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSolveDelaunaySubproblems.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KDelaunayClustering\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSolveDelaunaySubproblems.c:106:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KE\u001b[m\u001b[KdgeSet = (Edge *) malloc(Count * sizeof(Edge)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveDelaunaySubproblems.c:162:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KE\u001b[m\u001b[KdgeSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveKarpSubproblems.o SolveKarpSubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SolveKCenterSubproblems.o SolveKCenterSubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSolveKCenterSubproblems.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSolveKCenterSubproblems.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KKCenterClustering\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSolveKCenterSubproblems.c:76:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[Kenter = (Node **) calloc((K + 1), sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveKMeansSubproblems.o SolveKMeansSubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSolveKMeansSubproblems.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KKMeansClustering\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:90:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[Kenter = (Node *) calloc((K + 1), sizeof(Node)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:91:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KenterRef = (Node **) calloc((K + 1), sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:92:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KumXc = (double *) calloc(K + 1, sizeof(double)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:93:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KumYc = (double *) calloc(K + 1, sizeof(double)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:94:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KumZc = (double *) calloc(K + 1, sizeof(double)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:95:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[Kount = (int *) calloc(K + 1, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:96:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[Kovement = (int *) calloc(K + 1, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:97:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[KMax = (int *) calloc(K + 1, sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveKMeansSubproblems.c:98:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KP\u001b[m\u001b[Kerm = (Node **) malloc(Dimension * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveRoheSubproblems.o SolveRoheSubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SolveSFCSubproblems.o SolveSFCSubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSolveSFCSubproblems.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSolveSFCSubproblems.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KSolveSFCSubproblems\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSolveSFCSubproblems.c:29:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[Kuc = (Node **) malloc((1 + Dimension) * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveSubproblem.o SolveSubproblem.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SolveSubproblemBorderProblems.o SolveSubproblemBorderProblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSolveSubproblemBorderProblems.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSolveSubproblemBorderProblems.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KSolveSubproblemBorderProblems\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSolveSubproblemBorderProblems.c:37:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[KubproblemSaved =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSolveSubproblemBorderProblems.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KMarkBorderPoints\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSolveSubproblemBorderProblems.c:91:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KA\u001b[m\u001b[K = (Node **) malloc(DimensionSaved * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SolveTourSegmentSubproblems.o SolveTourSegmentSubproblems.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SOP_InitialTour.o SOP_InitialTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KSOP_InitialTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KSOP_InitialTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KSOP_InitialTour\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KSOP_InitialTour.c:29:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Kringe = (Node **) malloc(DimensionSaved * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KSOP_InitialTour.c:30:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KS\u001b[m\u001b[Kubset = (int *) malloc(DimensionSaved * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/SOP_Report.o SOP_Report.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/StatusReport.o StatusReport.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/Statistics.o Statistics.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/StoreTour.o StoreTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/SymmetrizeCandidateSet.o SymmetrizeCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/TrimCandidateSet.o TrimCandidateSet.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KTrimCandidateSet.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KTrimCandidateSet.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KTrimCandidateSet\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KTrimCandidateSet.c:25:20:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KF\u001b[m\u001b[Krom->CandidateSet =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/TSPDL_InitialTour.o TSPDL_InitialTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KTSPDL_InitialTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KTSPDL_InitialTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KTSPDL_InitialTour\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KTSPDL_InitialTour.c:24:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KT\u001b[m\u001b[K = (Node **) malloc(DimensionSaved * sizeof(Node *)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/TSPTW_MakespanCost.o TSPTW_MakespanCost.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/TSPTW_Reduce.o TSPTW_Reduce.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KTSPTW_Reduce.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KTSPTW_Reduce.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KTSPTW_Reduce\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KTSPTW_Reduce.c:11:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KR\u001b[m\u001b[K = (char **) malloc(((n + 1) * sizeof(char *))));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KTSPTW_Reduce.c:13:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KR\u001b[m\u001b[K[i] = (char *) calloc(n + 1, sizeof(char)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KTSPTW_Reduce.c:37:24:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[Kon = (Constraint *) malloc(sizeof(Constraint)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/VRPB_Reduce.o VRPB_Reduce.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/BIT.o BIT.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KBIT.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KBIT.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KBIT_Make\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KBIT.c:60:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[KinTree = (int *) calloc(1 << (p + 1), sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KBIT.c:61:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KM\u001b[m\u001b[KaxTree = (int *) calloc(1 << (p + 1), sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KBIT.c:62:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KL\u001b[m\u001b[K = (int *) malloc((n + 1) * sizeof(int)));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/WriteCandidates.o WriteCandidates.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/WritePenalties.o WritePenalties.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/WriteTour.o WriteTour.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:10:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[KWriteTour.c:1\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[KWriteTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KWriteTour\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KWriteTour.c:34:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KT\u001b[m\u001b[KourFile = fopen(FullFileName, \"w\"));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KWriteTour.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[KFullName\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KWriteTour.c:81:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[KewName = (char *) calloc(strlen(Name) + 1, 1));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KWriteTour.c:85:12:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KC\u001b[m\u001b[KostBuffer = (char *) malloc(400));\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[KWriteTour.c:93:16:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Ksuggest parentheses around assignment used as truth value [\u001b[01;35m\u001b[K-Wparentheses\u001b[m\u001b[K]\n",
|
||
" assert(\u001b[01;35m\u001b[KN\u001b[m\u001b[KewName =\n",
|
||
" \u001b[01;35m\u001b[K^\u001b[m\u001b[K\n",
|
||
"gcc -c -o OBJ/MergeWithTourGPX2.o MergeWithTourGPX2.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"gcc -c -o OBJ/gpx.o gpx.c -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g\n",
|
||
"In file included from \u001b[01m\u001b[Kgpx.c:13:0\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[Kgpx.c:\u001b[m\u001b[K In function ‘\u001b[01m\u001b[Knew_candidates\u001b[m\u001b[K’:\n",
|
||
"\u001b[01m\u001b[KINCLUDE/gpx.h:8:29:\u001b[m\u001b[K \u001b[01;35m\u001b[Kwarning: \u001b[m\u001b[Kargument 1 range [18446744071562067968, 18446744073709551615] exceeds maximum object size 9223372036854775807 [\u001b[01;35m\u001b[K-Walloc-size-larger-than=\u001b[m\u001b[K]\n",
|
||
" #define new_int(n) ((int *) \u001b[01;35m\u001b[Kcalloc(n, sizeof(int))\u001b[m\u001b[K)\n",
|
||
" \u001b[01;35m\u001b[K^~~~~~~~~~~~~~~~~~~~~~\u001b[m\u001b[K\n",
|
||
"\u001b[01m\u001b[Kgpx.c:906:10:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kin expansion of macro ‘\u001b[01m\u001b[Knew_int\u001b[m\u001b[K’\n",
|
||
" id = \u001b[01;36m\u001b[Knew_int\u001b[m\u001b[K(n);\n",
|
||
" \u001b[01;36m\u001b[K^~~~~~~\u001b[m\u001b[K\n",
|
||
"In file included from \u001b[01m\u001b[KINCLUDE/LKH.h:15:0\u001b[m\u001b[K,\n",
|
||
" from \u001b[01m\u001b[Kgpx.c:12\u001b[m\u001b[K:\n",
|
||
"\u001b[01m\u001b[K/usr/include/stdlib.h:541:14:\u001b[m\u001b[K \u001b[01;36m\u001b[Knote: \u001b[m\u001b[Kin a call to allocation function ‘\u001b[01m\u001b[Kcalloc\u001b[m\u001b[K’ declared here\n",
|
||
" extern void *\u001b[01;36m\u001b[Kcalloc\u001b[m\u001b[K (size_t __nmemb, size_t __size)\n",
|
||
" \u001b[01;36m\u001b[K^~~~~~\u001b[m\u001b[K\n",
|
||
"gcc -o ../LKH OBJ/Activate.o OBJ/AddCandidate.o OBJ/AddExtraCandidates.o OBJ/AddTourCandidates.o OBJ/AdjustCandidateSet.o OBJ/AdjustClusters.o OBJ/AllocateStructures.o OBJ/Ascent.o OBJ/Best2OptMove.o OBJ/Best3OptMove.o OBJ/Best4OptMove.o OBJ/Best5OptMove.o OBJ/BestKOptMove.o OBJ/BestSpecialOptMove.o OBJ/Between.o OBJ/Between_SL.o OBJ/Between_SSL.o OBJ/BridgeGain.o OBJ/BuildKDTree.o OBJ/C.o OBJ/CandidateReport.o OBJ/ChooseInitialTour.o OBJ/Connect.o OBJ/CreateCandidateSet.o OBJ/CreateDelaunayCandidateSet.o OBJ/CreateNNCandidateSet.o OBJ/Create_POPMUSIC_CandidateSet.o OBJ/CreateQuadrantCandidateSet.o OBJ/CTSP_InitialTour.o OBJ/CVRP_InitialTour.o OBJ/Delaunay.o OBJ/Distance.o OBJ/Distance_MTSP.o OBJ/Distance_SOP.o OBJ/Distance_SPECIAL.o OBJ/eprintf.o OBJ/ERXT.o OBJ/Excludable.o OBJ/Exclude.o OBJ/FindTour.o OBJ/FixedOrCommonCandidates.o OBJ/Flip.o OBJ/Flip_SL.o OBJ/Flip_SSL.o OBJ/Forbidden.o OBJ/FreeStructures.o OBJ/fscanint.o OBJ/Gain23.o OBJ/GenerateCandidates.o OBJ/Genetic.o OBJ/GeoConversion.o OBJ/GetTime.o OBJ/GreedyTour.o OBJ/Hashing.o OBJ/Heap.o OBJ/Improvement.o OBJ/IsBackboneCandidate.o OBJ/IsCandidate.o OBJ/IsCommonEdge.o OBJ/IsPossibleCandidate.o OBJ/KSwapKick.o OBJ/LinKernighan.o OBJ/LKHmain.o OBJ/Make2OptMove.o OBJ/Make3OptMove.o OBJ/Make4OptMove.o OBJ/Make5OptMove.o OBJ/MakeKOptMove.o OBJ/MergeTourWithBestTour.o OBJ/MergeWithTourIPT.o OBJ/Minimum1TreeCost.o OBJ/MinimumSpanningTree.o OBJ/MTSP2TSP.o OBJ/MTSP_InitialTour.o OBJ/MTSP_Report.o OBJ/MTSP_WriteSolution.o OBJ/NormalizeNodeList.o OBJ/NormalizeSegmentList.o OBJ/OrderCandidateSet.o OBJ/PatchCycles.o OBJ/Penalty_ACVRP.o OBJ/Penalty_BWTSP.o OBJ/Penalty_CCVRP.o OBJ/Penalty_CVRP.o OBJ/Penalty_CVRPTW.o OBJ/Penalty_CTSP.o OBJ/Penalty_1_PDTSP.o OBJ/Penalty_MLP.o OBJ/Penalty_M_PDTSP.o OBJ/Penalty_M1_PDTSP.o OBJ/Penalty_MTSP.o OBJ/Penalty_OVRP.o OBJ/Penalty_PDPTW.o OBJ/Penalty_PDTSP.o OBJ/Penalty_PDTSPF.o OBJ/Penalty_PDTSPL.o OBJ/Penalty_RCTVRP.o OBJ/Penalty_SOP.o OBJ/Penalty_TRP.o OBJ/Penalty_TSPDL.o OBJ/Penalty_TSPPD.o OBJ/Penalty_TSPTW.o OBJ/Penalty_VRPB.o OBJ/Penalty_VRPBTW.o OBJ/Penalty_VRPPD.o OBJ/PDPTW_Reduce.o OBJ/printff.o OBJ/PrintParameters.o OBJ/Random.o OBJ/ReadCandidates.o OBJ/ReadEdges.o OBJ/ReadLine.o OBJ/ReadParameters.o OBJ/ReadPenalties.o OBJ/ReadProblem.o OBJ/RecordBestTour.o OBJ/RecordBetterTour.o OBJ/RemoveFirstActive.o OBJ/ResetCandidateSet.o OBJ/RestoreTour.o OBJ/SegmentSize.o OBJ/Sequence.o OBJ/SFCTour.o OBJ/SolveCompressedSubproblem.o OBJ/SINTEF_WriteSolution.o OBJ/SOP_RepairTour.o OBJ/SolveDelaunaySubproblems.o OBJ/SolveKarpSubproblems.o OBJ/SolveKCenterSubproblems.o OBJ/SolveKMeansSubproblems.o OBJ/SolveRoheSubproblems.o OBJ/SolveSFCSubproblems.o OBJ/SolveSubproblem.o OBJ/SolveSubproblemBorderProblems.o OBJ/SolveTourSegmentSubproblems.o OBJ/SOP_InitialTour.o OBJ/SOP_Report.o OBJ/StatusReport.o OBJ/Statistics.o OBJ/StoreTour.o OBJ/SymmetrizeCandidateSet.o OBJ/TrimCandidateSet.o OBJ/TSPDL_InitialTour.o OBJ/TSPTW_MakespanCost.o OBJ/TSPTW_Reduce.o OBJ/VRPB_Reduce.o OBJ/BIT.o OBJ/WriteCandidates.o OBJ/WritePenalties.o OBJ/WriteTour.o OBJ/MergeWithTourGPX2.o OBJ/gpx.o -O3 -Wall -IINCLUDE -DTWO_LEVEL_TREE -g -lm\n",
|
||
"make[2]: Leaving directory '/content/attention-learn-to-route/problems/vrp/lkh/LKH-3.0.4/SRC'\n",
|
||
"make[1]: Leaving directory '/content/attention-learn-to-route/problems/vrp/lkh/LKH-3.0.4/SRC'\n",
|
||
"100% 10000/10000 [06:07<00:00, 27.21it/s]\n",
|
||
"Average cost: 3.8357082936049354 +- 0.006095158088676497\n",
|
||
"Average serial duration: 0.07204645571708679 +- 0.0025444101701991993\n",
|
||
"Average parallel duration: 0.036023227858543394\n",
|
||
"Calculated total duration: 0:06:00\n",
|
||
"100% 10000/10000 [07:59<00:00, 20.85it/s]\n",
|
||
"Average cost: 4.002717639605202 +- 0.004931129495940996\n",
|
||
"Average serial duration: 0.09444891865253449 +- 0.002902142593393151\n",
|
||
"Average parallel duration: 0.047224459326267246\n",
|
||
"Calculated total duration: 0:07:52\n",
|
||
"100% 10000/10000 [12:12<00:00, 13.65it/s]\n",
|
||
"Average cost: 3.871722738663927 +- 0.004556734094664287\n",
|
||
"Average serial duration: 0.1450712387561798 +- 0.004549921645193218\n",
|
||
"Average parallel duration: 0.0725356193780899\n",
|
||
"Calculated total duration: 0:12:05\n"
|
||
],
|
||
"name": "stdout"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
} |