Initial Commit
This commit is contained in:
commit
962db98003
43
.gitignore
vendored
Normal file
43
.gitignore
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
.gradle
|
||||
build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea/modules.xml
|
||||
.idea/jarRepositories.xml
|
||||
.idea/compiler.xml
|
||||
.idea/libraries/
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
.idea
|
||||
|
||||
### Eclipse ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
### Mac OS ###
|
||||
.DS_Store
|
19
build.gradle
Normal file
19
build.gradle
Normal file
@ -0,0 +1,19 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
}
|
||||
|
||||
group = 'fr.nabil'
|
||||
version = '1.0-SNAPSHOT'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
testImplementation platform('org.junit:junit-bom:5.10.0')
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter'
|
||||
}
|
||||
|
||||
test {
|
||||
useJUnitPlatform()
|
||||
}
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
6
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
#Sun Jan 26 20:48:21 CET 2025
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
234
gradlew
vendored
Normal file
234
gradlew
vendored
Normal file
@ -0,0 +1,234 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=${0##*/}
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
89
gradlew.bat
vendored
Normal file
89
gradlew.bat
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
2
settings.gradle
Normal file
2
settings.gradle
Normal file
@ -0,0 +1,2 @@
|
||||
rootProject.name = 'CombinatorialOptimization'
|
||||
|
36
src/main/java/fr/nabil/Main.java
Normal file
36
src/main/java/fr/nabil/Main.java
Normal file
@ -0,0 +1,36 @@
|
||||
package fr.nabil;
|
||||
|
||||
import fr.nabil.data.VRP;
|
||||
import fr.nabil.utils.FileReader;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws URISyntaxException, IOException {
|
||||
|
||||
List<VRP> vrps = new ArrayList<>();
|
||||
|
||||
ClassLoader classLoader = Main.class.getClassLoader();
|
||||
|
||||
Path vrpPath = Paths.get(classLoader.getResource("vrp").toURI());
|
||||
|
||||
try (Stream<Path> paths = Files.list(vrpPath)) {
|
||||
paths.forEach(p -> {
|
||||
vrps.add(FileReader.readFile(p.toUri()));
|
||||
});
|
||||
}
|
||||
|
||||
System.out.println(vrps.getFirst().toString());
|
||||
}
|
||||
|
||||
}
|
42
src/main/java/fr/nabil/data/VRP.java
Normal file
42
src/main/java/fr/nabil/data/VRP.java
Normal file
@ -0,0 +1,42 @@
|
||||
package fr.nabil.data;
|
||||
|
||||
import fr.nabil.utils.Pair;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class VRP {
|
||||
|
||||
private String name;
|
||||
private String comment;
|
||||
private String type;
|
||||
private int dimension;
|
||||
private String edgeWeightType;
|
||||
private int capacity;
|
||||
private Map<Integer, Pair<Integer, Integer>> nodeCoordSection;
|
||||
private Map<Integer, Integer> demandeSection;
|
||||
|
||||
public VRP(String name, String comment, String type, int dimension, String edgeWeightType, int capacity, Map<Integer, Pair<Integer, Integer>> nodeCoordSection, Map<Integer, Integer> demandeSection) {
|
||||
this.name = name;
|
||||
this.comment = comment;
|
||||
this.type = type;
|
||||
this.dimension = dimension;
|
||||
this.edgeWeightType = edgeWeightType;
|
||||
this.capacity = capacity;
|
||||
this.nodeCoordSection = nodeCoordSection;
|
||||
this.demandeSection = demandeSection;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VRP{" +
|
||||
"name='" + name + '\'' +
|
||||
", comment='" + comment + '\'' +
|
||||
", type='" + type + '\'' +
|
||||
", dimension=" + dimension +
|
||||
", edgeWeightType='" + edgeWeightType + '\'' +
|
||||
", capacity=" + capacity +
|
||||
", nodeCoordSection=" + nodeCoordSection +
|
||||
", demandeSection=" + demandeSection +
|
||||
'}';
|
||||
}
|
||||
}
|
80
src/main/java/fr/nabil/utils/FileReader.java
Normal file
80
src/main/java/fr/nabil/utils/FileReader.java
Normal file
@ -0,0 +1,80 @@
|
||||
package fr.nabil.utils;
|
||||
|
||||
import fr.nabil.data.VRP;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class FileReader {
|
||||
|
||||
public static VRP readFile(URI fileUri) {
|
||||
try {
|
||||
List<String> lines = Files.readAllLines(Path.of(fileUri), StandardCharsets.UTF_8);
|
||||
|
||||
return parseFile(lines);
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static VRP parseFile(List<String> lines) {
|
||||
|
||||
String name = "";
|
||||
String comment = "";
|
||||
String type = "";
|
||||
int dimension = 0;
|
||||
String weightType = "";
|
||||
int capacity = 0;
|
||||
|
||||
Map<Integer, Pair<Integer, Integer>> nodeCoordSection = new HashMap<>();
|
||||
Map<Integer, Integer> demandeSection = new HashMap<>();
|
||||
|
||||
for (String line : lines) {
|
||||
String[] words = line.split(" : ");
|
||||
|
||||
switch (words[0].toLowerCase()) {
|
||||
|
||||
case "name":
|
||||
name = words[1];
|
||||
break;
|
||||
case "comment":
|
||||
comment = words[1];
|
||||
break;
|
||||
case "type":
|
||||
type = words[1];
|
||||
break;
|
||||
case "dimension":
|
||||
dimension = Integer.parseInt(words[1].trim());
|
||||
break;
|
||||
case "edge_weight_type":
|
||||
weightType = words[1];
|
||||
break;
|
||||
case "capacity":
|
||||
capacity = Integer.parseInt(words[1].trim());
|
||||
break;
|
||||
default:
|
||||
String[] reParsed = words[0].split(" ");
|
||||
if (reParsed.length == 3) {
|
||||
nodeCoordSection.put(Integer.parseInt(reParsed[0]), new Pair<>(Integer.parseInt(reParsed[1]), Integer.parseInt(reParsed[2])));
|
||||
} else if (reParsed.length == 2) {
|
||||
if (reParsed[0].equalsIgnoreCase("")) break;
|
||||
demandeSection.put(Integer.parseInt(reParsed[0]), Integer.parseInt(reParsed[1]));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return new VRP(name, comment, type, dimension, weightType, capacity, nodeCoordSection, demandeSection);
|
||||
}
|
||||
|
||||
}
|
33
src/main/java/fr/nabil/utils/Pair.java
Normal file
33
src/main/java/fr/nabil/utils/Pair.java
Normal file
@ -0,0 +1,33 @@
|
||||
package fr.nabil.utils;
|
||||
|
||||
public class Pair<T, U> {
|
||||
|
||||
private T first;
|
||||
private U second;
|
||||
|
||||
public Pair(T first, U second) {
|
||||
this.first = first;
|
||||
this.second = second;
|
||||
}
|
||||
|
||||
public T getFirst() {
|
||||
return first;
|
||||
}
|
||||
|
||||
public U getSecond() {
|
||||
return second;
|
||||
}
|
||||
|
||||
public void setPair(T first, U second) {
|
||||
this.first = first;
|
||||
this.second = second;
|
||||
}
|
||||
|
||||
public void setFirst(T first) {
|
||||
this.first = first;
|
||||
}
|
||||
|
||||
public void setSecond(U second) {
|
||||
this.second = second;
|
||||
}
|
||||
}
|
9
src/main/resources/Description.txt
Normal file
9
src/main/resources/Description.txt
Normal file
@ -0,0 +1,9 @@
|
||||
NAME : Nom de l'instance
|
||||
COMMENT : Commentaires
|
||||
TYPE : Type de problème
|
||||
DIMENSION : Nombre de sites (incluant le dépôt)
|
||||
EDGE_WEIGHT_TYPE : Représentation des distances (ici toutes sont en distances euclidiennes)
|
||||
CAPACITY : capacité des vehicules
|
||||
NODE_COORD_SECTION : Coordonnées des sites
|
||||
DEMAND_SECTION : Demande par site
|
||||
DEPOT SECTION : Numéro des dépôts
|
15
src/main/resources/opt/E-n101-k14.opt.txt
Normal file
15
src/main/resources/opt/E-n101-k14.opt.txt
Normal file
@ -0,0 +1,15 @@
|
||||
Route #1: 92 37 100 85 93 99 96
|
||||
Route #2: 13 87 97 95 94
|
||||
Route #3: 18 8 46 36 49 64 11 62 88
|
||||
Route #4: 52 7 19 47 48 82
|
||||
Route #5: 53 27
|
||||
Route #6: 61 16 86 38 44 91 98
|
||||
Route #7: 69 70 30 32 90 63 10 31
|
||||
Route #8: 23 67 39 25 55 54
|
||||
Route #9: 28 76 77 3 68 12
|
||||
Route #10: 80 24 29 78 34 35 71 65 66 20
|
||||
Route #11: 50 79 33 81 9 51 1
|
||||
Route #12: 26 4 56 75 72 21 40
|
||||
Route #13: 58 2 57 42 14 43 15 41 22 74 73
|
||||
Route #14: 89 60 83 45 17 84 5 59 6
|
||||
Cost 1067
|
5
src/main/resources/opt/E-n22-k4.opt.txt
Normal file
5
src/main/resources/opt/E-n22-k4.opt.txt
Normal file
@ -0,0 +1,5 @@
|
||||
Route #1: 17 20 18 15 12
|
||||
Route #2: 16 19 21 14
|
||||
Route #3: 13 11 4 3 8 10
|
||||
Route #4: 9 7 5 2 1 6
|
||||
Cost 375
|
5
src/main/resources/opt/E-n33-k4.opt.txt
Normal file
5
src/main/resources/opt/E-n33-k4.opt.txt
Normal file
@ -0,0 +1,5 @@
|
||||
Route #1: 1 15 26 27 16 28 29
|
||||
Route #2: 30 14 31
|
||||
Route #3: 3 5 6 10 18 19 22 21 20 23 24 25 17 13
|
||||
Route #4: 2 12 11 32 8 9 7 4
|
||||
Cost 835
|
6
src/main/resources/opt/E-n51-k5.opt.txt
Normal file
6
src/main/resources/opt/E-n51-k5.opt.txt
Normal file
@ -0,0 +1,6 @@
|
||||
Route #1: 5 49 10 39 33 45 15 44 37 17 12
|
||||
Route #2: 47 4 42 19 40 41 13 18
|
||||
Route #3: 46 32 1 22 20 35 36 3 28 31 26 8
|
||||
Route #4: 6 14 25 24 43 7 23 48 27
|
||||
Route #5: 11 16 2 29 21 50 34 30 9 38
|
||||
Cost 521
|
24
src/main/resources/opt/X-n228-k23.opt.txt
Normal file
24
src/main/resources/opt/X-n228-k23.opt.txt
Normal file
@ -0,0 +1,24 @@
|
||||
Route #1: 129 227 140 27 184 176 118 106 42
|
||||
Route #2: 155 28 26 192 218
|
||||
Route #3: 69 124 114 51 32 104 173 133 74 158 62 146 222 80 170 156
|
||||
Route #4: 90 35 58 2 103 29 142
|
||||
Route #5: 193 191 207 18 189 186 78 128 86 70
|
||||
Route #6: 101 225 77 30 202 68 44 195 38
|
||||
Route #7: 220 61 1 40 57 100 83 159 172 206 110 76 47 203
|
||||
Route #8: 117 151 212 137 36 14 4 148
|
||||
Route #9: 182 72 167 50 88 208 20 13 177 67 145 98
|
||||
Route #10: 52 116 82 92 144 162 33 39 112 164 171
|
||||
Route #11: 217 12 37 65 75 134 15
|
||||
Route #12: 181 201 190 152 64 6 108 139 165 97 122 196
|
||||
Route #13: 71 194 200 213 25 59 109 141 198 91 205
|
||||
Route #14: 119 56 5 163 138 99 221 136 111 121 127 79 224
|
||||
Route #15: 16 19
|
||||
Route #16: 216 84 126 169 48 214 3 54 149
|
||||
Route #17: 160 153 161 10 180 46 188 199 63 130 135 94 209 95 166 34 178 41
|
||||
Route #18: 24 9 107 89 123
|
||||
Route #19: 113 174 143 210 215 96 147 7 105 226 23
|
||||
Route #20: 60 157 73 115 49 43 31 21 93 120
|
||||
Route #21: 183 223 132 102 168 87 11 53 179 197 150 187
|
||||
Route #22: 66 81 22 17 175
|
||||
Route #23: 204 219 85 45 131 154 8 55 185 125 211
|
||||
Cost 25742
|
156
src/main/resources/opt/X-n524-k153.opt.txt
Normal file
156
src/main/resources/opt/X-n524-k153.opt.txt
Normal file
@ -0,0 +1,156 @@
|
||||
Route #1: 373 431 129
|
||||
Route #2: 375 215 160 248
|
||||
Route #3: 98
|
||||
Route #4: 305 243 462 209 460 303 71 297 513 241
|
||||
Route #5: 374 74 151
|
||||
Route #6: 186 341
|
||||
Route #7: 6 319
|
||||
Route #8: 202
|
||||
Route #9: 354 176 358 482 469 357
|
||||
Route #10: 114
|
||||
Route #11: 229 355 309 279 415 149 516 276 326
|
||||
Route #12: 288 225 39 269 497 308
|
||||
Route #13: 522 121
|
||||
Route #14: 100
|
||||
Route #15: 44
|
||||
Route #16: 277 281 165
|
||||
Route #17: 204 404
|
||||
Route #18: 37 435 394 385 444 233
|
||||
Route #19: 139
|
||||
Route #20: 67
|
||||
Route #21: 272 317 211 239 10 451 274 517 463
|
||||
Route #22: 376 286 443 226 260 38 224
|
||||
Route #23: 302 414 383 135 395 323 212
|
||||
Route #24: 118 101 468
|
||||
Route #25: 452 339 514 289 465 210 515 112 270 471
|
||||
Route #26: 24 93
|
||||
Route #27: 1 454 330
|
||||
Route #28: 196 434
|
||||
Route #29: 91 477
|
||||
Route #30: 116
|
||||
Route #31: 493 426 273 190
|
||||
Route #32: 331 498 236 208 324 389 170 467 363
|
||||
Route #33: 500 409 18 437 315
|
||||
Route #34: 109
|
||||
Route #35: 486 197 282
|
||||
Route #36: 285 185 155
|
||||
Route #37: 325 9 474 257
|
||||
Route #38: 180 30
|
||||
Route #39: 510 263 349 284 347 96
|
||||
Route #40: 413 207 480 299 50
|
||||
Route #41: 133 92
|
||||
Route #42: 4 54
|
||||
Route #43: 26
|
||||
Route #44: 169 68 366
|
||||
Route #45: 12 45
|
||||
Route #46: 102 138
|
||||
Route #47: 356 69
|
||||
Route #48: 107
|
||||
Route #49: 367 450 7 459
|
||||
Route #50: 455 94
|
||||
Route #51: 194 123 457
|
||||
Route #52: 90 127
|
||||
Route #53: 72
|
||||
Route #54: 173
|
||||
Route #55: 327 316 418 193
|
||||
Route #56: 506 80 488
|
||||
Route #57: 247 14 509 178
|
||||
Route #58: 110
|
||||
Route #59: 300 421 377 73 217 301 221 365
|
||||
Route #60: 144 76
|
||||
Route #61: 62
|
||||
Route #62: 244 41 448
|
||||
Route #63: 65 344 268
|
||||
Route #64: 17 25 253
|
||||
Route #65: 322 115 255 214 494 521
|
||||
Route #66: 290 31 81
|
||||
Route #67: 447 386 53
|
||||
Route #68: 131 163 495
|
||||
Route #69: 27 117
|
||||
Route #70: 508 446 449 378 106 381 306
|
||||
Route #71: 439 353 313 19 346 382
|
||||
Route #72: 34 66
|
||||
Route #73: 154 87
|
||||
Route #74: 407 390 77 399 405 312 364 483
|
||||
Route #75: 146 492 256 453
|
||||
Route #76: 320 36 223
|
||||
Route #77: 438 388 15 343 296
|
||||
Route #78: 183 472
|
||||
Route #79: 266 369 402 362 481 105 491 441
|
||||
Route #80: 417 162 294 232
|
||||
Route #81: 179
|
||||
Route #82: 63
|
||||
Route #83: 283 249 424 152 512 304 523 420
|
||||
Route #84: 189 295 456 168 252
|
||||
Route #85: 350 479 425 275 222 398 380 228 181
|
||||
Route #86: 470 174 428 337
|
||||
Route #87: 171 505 182
|
||||
Route #88: 75 137
|
||||
Route #89: 48
|
||||
Route #90: 33 40
|
||||
Route #91: 32
|
||||
Route #92: 242 103 52
|
||||
Route #93: 145 201
|
||||
Route #94: 164 84
|
||||
Route #95: 372 430 203 445
|
||||
Route #96: 360 58 55
|
||||
Route #97: 403 267 216 293 195 287 476
|
||||
Route #98: 205 8 291
|
||||
Route #99: 86 432 387
|
||||
Route #100: 89 51
|
||||
Route #101: 199 42
|
||||
Route #102: 200 132
|
||||
Route #103: 466 240 11 501
|
||||
Route #104: 79 3
|
||||
Route #105: 412 238 340 489 192 442
|
||||
Route #106: 153 88
|
||||
Route #107: 113 321
|
||||
Route #108: 427 410 35
|
||||
Route #109: 156
|
||||
Route #110: 147 251 333 406 351
|
||||
Route #111: 416 411 503 99 280 261 264 487
|
||||
Route #112: 392 46 436 334 336
|
||||
Route #113: 478 141 142
|
||||
Route #114: 397 328 43 473 332
|
||||
Route #115: 97 219
|
||||
Route #116: 345 485 23 423 258 396
|
||||
Route #117: 28 167
|
||||
Route #118: 177
|
||||
Route #119: 128
|
||||
Route #120: 29
|
||||
Route #121: 314 143 490 250 220 262
|
||||
Route #122: 218 187 384
|
||||
Route #123: 318 371 259 22 245 507 329
|
||||
Route #124: 298 20
|
||||
Route #125: 148 184 504
|
||||
Route #126: 502 518 119 400 475
|
||||
Route #127: 59 78
|
||||
Route #128: 21
|
||||
Route #129: 60 408
|
||||
Route #130: 120 157
|
||||
Route #131: 499 158 461 433 311
|
||||
Route #132: 16
|
||||
Route #133: 278 519 166 292 235
|
||||
Route #134: 130 159
|
||||
Route #135: 108
|
||||
Route #136: 370 213 134
|
||||
Route #137: 310 359 429 150
|
||||
Route #138: 47 122 520
|
||||
Route #139: 484 271 422 234 56 348 361 391
|
||||
Route #140: 61
|
||||
Route #141: 237 140 335 231
|
||||
Route #142: 57 125
|
||||
Route #143: 2 49
|
||||
Route #144: 246 175 126
|
||||
Route #145: 230 338 440 227 254 419 83 458 265 368
|
||||
Route #146: 85 191
|
||||
Route #147: 82 64 379 496
|
||||
Route #148: 161
|
||||
Route #149: 5 111
|
||||
Route #150: 124 307 104
|
||||
Route #151: 511 352 95 464
|
||||
Route #152: 188 70
|
||||
Route #153: 198 136
|
||||
Route #154: 206 401 13 342 393
|
||||
Route #155: 172
|
||||
Cost 154593
|
214
src/main/resources/vrp/E-n101-k14.vrp.txt
Normal file
214
src/main/resources/vrp/E-n101-k14.vrp.txt
Normal file
@ -0,0 +1,214 @@
|
||||
NAME : E-n101-k14
|
||||
COMMENT : (Christophides and Eilon, Min no of trucks: 14, Best value: 1071)
|
||||
TYPE : CVRP
|
||||
DIMENSION : 101
|
||||
EDGE_WEIGHT_TYPE : EUC_2D
|
||||
CAPACITY : 112
|
||||
NODE_COORD_SECTION
|
||||
1 35 35
|
||||
2 41 49
|
||||
3 35 17
|
||||
4 55 45
|
||||
5 55 20
|
||||
6 15 30
|
||||
7 25 30
|
||||
8 20 50
|
||||
9 10 43
|
||||
10 55 60
|
||||
11 30 60
|
||||
12 20 65
|
||||
13 50 35
|
||||
14 30 25
|
||||
15 15 10
|
||||
16 30 5
|
||||
17 10 20
|
||||
18 5 30
|
||||
19 20 40
|
||||
20 15 60
|
||||
21 45 65
|
||||
22 45 20
|
||||
23 45 10
|
||||
24 55 5
|
||||
25 65 35
|
||||
26 65 20
|
||||
27 45 30
|
||||
28 35 40
|
||||
29 41 37
|
||||
30 64 42
|
||||
31 40 60
|
||||
32 31 52
|
||||
33 35 69
|
||||
34 53 52
|
||||
35 65 55
|
||||
36 63 65
|
||||
37 2 60
|
||||
38 20 20
|
||||
39 5 5
|
||||
40 60 12
|
||||
41 40 25
|
||||
42 42 7
|
||||
43 24 12
|
||||
44 23 3
|
||||
45 11 14
|
||||
46 6 38
|
||||
47 2 48
|
||||
48 8 56
|
||||
49 13 52
|
||||
50 6 68
|
||||
51 47 47
|
||||
52 49 58
|
||||
53 27 43
|
||||
54 37 31
|
||||
55 57 29
|
||||
56 63 23
|
||||
57 53 12
|
||||
58 32 12
|
||||
59 36 26
|
||||
60 21 24
|
||||
61 17 34
|
||||
62 12 24
|
||||
63 24 58
|
||||
64 27 69
|
||||
65 15 77
|
||||
66 62 77
|
||||
67 49 73
|
||||
68 67 5
|
||||
69 56 39
|
||||
70 37 47
|
||||
71 37 56
|
||||
72 57 68
|
||||
73 47 16
|
||||
74 44 17
|
||||
75 46 13
|
||||
76 49 11
|
||||
77 49 42
|
||||
78 53 43
|
||||
79 61 52
|
||||
80 57 48
|
||||
81 56 37
|
||||
82 55 54
|
||||
83 15 47
|
||||
84 14 37
|
||||
85 11 31
|
||||
86 16 22
|
||||
87 4 18
|
||||
88 28 18
|
||||
89 26 52
|
||||
90 26 35
|
||||
91 31 67
|
||||
92 15 19
|
||||
93 22 22
|
||||
94 18 24
|
||||
95 26 27
|
||||
96 25 24
|
||||
97 22 27
|
||||
98 25 21
|
||||
99 19 21
|
||||
100 20 26
|
||||
101 18 18
|
||||
DEMAND_SECTION
|
||||
1 0
|
||||
2 10
|
||||
3 7
|
||||
4 13
|
||||
5 19
|
||||
6 26
|
||||
7 3
|
||||
8 5
|
||||
9 9
|
||||
10 16
|
||||
11 16
|
||||
12 12
|
||||
13 19
|
||||
14 23
|
||||
15 20
|
||||
16 8
|
||||
17 19
|
||||
18 2
|
||||
19 12
|
||||
20 17
|
||||
21 9
|
||||
22 11
|
||||
23 18
|
||||
24 29
|
||||
25 3
|
||||
26 6
|
||||
27 17
|
||||
28 16
|
||||
29 16
|
||||
30 9
|
||||
31 21
|
||||
32 27
|
||||
33 23
|
||||
34 11
|
||||
35 14
|
||||
36 8
|
||||
37 5
|
||||
38 8
|
||||
39 16
|
||||
40 31
|
||||
41 9
|
||||
42 5
|
||||
43 5
|
||||
44 7
|
||||
45 18
|
||||
46 16
|
||||
47 1
|
||||
48 27
|
||||
49 36
|
||||
50 30
|
||||
51 13
|
||||
52 10
|
||||
53 9
|
||||
54 14
|
||||
55 18
|
||||
56 2
|
||||
57 6
|
||||
58 7
|
||||
59 18
|
||||
60 28
|
||||
61 3
|
||||
62 13
|
||||
63 19
|
||||
64 10
|
||||
65 9
|
||||
66 20
|
||||
67 25
|
||||
68 25
|
||||
69 36
|
||||
70 6
|
||||
71 5
|
||||
72 15
|
||||
73 25
|
||||
74 9
|
||||
75 8
|
||||
76 18
|
||||
77 13
|
||||
78 14
|
||||
79 3
|
||||
80 23
|
||||
81 6
|
||||
82 26
|
||||
83 16
|
||||
84 11
|
||||
85 7
|
||||
86 41
|
||||
87 35
|
||||
88 26
|
||||
89 9
|
||||
90 15
|
||||
91 3
|
||||
92 1
|
||||
93 2
|
||||
94 22
|
||||
95 27
|
||||
96 20
|
||||
97 11
|
||||
98 12
|
||||
99 10
|
||||
100 9
|
||||
101 17
|
||||
DEPOT_SECTION
|
||||
1
|
||||
-1
|
||||
EOF
|
56
src/main/resources/vrp/E-n22-k4.vrp.txt
Normal file
56
src/main/resources/vrp/E-n22-k4.vrp.txt
Normal file
@ -0,0 +1,56 @@
|
||||
NAME : E-n22-k4
|
||||
COMMENT : (Christophides and Eilon, Min no of trucks: 4, Optimal value: 375)
|
||||
TYPE : CVRP
|
||||
DIMENSION : 22
|
||||
EDGE_WEIGHT_TYPE : EUC_2D
|
||||
CAPACITY : 6000
|
||||
NODE_COORD_SECTION
|
||||
1 145 215
|
||||
2 151 264
|
||||
3 159 261
|
||||
4 130 254
|
||||
5 128 252
|
||||
6 163 247
|
||||
7 146 246
|
||||
8 161 242
|
||||
9 142 239
|
||||
10 163 236
|
||||
11 148 232
|
||||
12 128 231
|
||||
13 156 217
|
||||
14 129 214
|
||||
15 146 208
|
||||
16 164 208
|
||||
17 141 206
|
||||
18 147 193
|
||||
19 164 193
|
||||
20 129 189
|
||||
21 155 185
|
||||
22 139 182
|
||||
DEMAND_SECTION
|
||||
1 0
|
||||
2 1100
|
||||
3 700
|
||||
4 800
|
||||
5 1400
|
||||
6 2100
|
||||
7 400
|
||||
8 800
|
||||
9 100
|
||||
10 500
|
||||
11 600
|
||||
12 1200
|
||||
13 1300
|
||||
14 1300
|
||||
15 300
|
||||
16 900
|
||||
17 2100
|
||||
18 1000
|
||||
19 900
|
||||
20 2500
|
||||
21 1800
|
||||
22 700
|
||||
DEPOT_SECTION
|
||||
1
|
||||
-1
|
||||
EOF
|
78
src/main/resources/vrp/E-n33-k4.vrp.txt
Normal file
78
src/main/resources/vrp/E-n33-k4.vrp.txt
Normal file
@ -0,0 +1,78 @@
|
||||
NAME : E-n33-k4
|
||||
COMMENT : (Christophides and Eilon, Min no of trucks: 4, Optimal value: 835)
|
||||
TYPE : CVRP
|
||||
DIMENSION : 33
|
||||
EDGE_WEIGHT_TYPE : EUC_2D
|
||||
CAPACITY : 8000
|
||||
NODE_COORD_SECTION
|
||||
1 292 495
|
||||
2 298 427
|
||||
3 309 445
|
||||
4 307 464
|
||||
5 336 475
|
||||
6 320 439
|
||||
7 321 437
|
||||
8 322 437
|
||||
9 323 433
|
||||
10 324 433
|
||||
11 323 429
|
||||
12 314 435
|
||||
13 311 442
|
||||
14 304 427
|
||||
15 293 421
|
||||
16 296 418
|
||||
17 261 384
|
||||
18 297 410
|
||||
19 315 407
|
||||
20 314 406
|
||||
21 321 391
|
||||
22 321 398
|
||||
23 314 394
|
||||
24 313 378
|
||||
25 304 382
|
||||
26 295 402
|
||||
27 283 406
|
||||
28 279 399
|
||||
29 271 401
|
||||
30 264 414
|
||||
31 277 439
|
||||
32 290 434
|
||||
33 319 433
|
||||
DEMAND_SECTION
|
||||
1 0
|
||||
2 700
|
||||
3 400
|
||||
4 400
|
||||
5 1200
|
||||
6 40
|
||||
7 80
|
||||
8 2000
|
||||
9 900
|
||||
10 600
|
||||
11 750
|
||||
12 1500
|
||||
13 150
|
||||
14 250
|
||||
15 1600
|
||||
16 450
|
||||
17 700
|
||||
18 550
|
||||
19 650
|
||||
20 200
|
||||
21 400
|
||||
22 300
|
||||
23 1300
|
||||
24 700
|
||||
25 750
|
||||
26 1400
|
||||
27 4000
|
||||
28 600
|
||||
29 1000
|
||||
30 500
|
||||
31 2500
|
||||
32 1700
|
||||
33 1100
|
||||
DEPOT_SECTION
|
||||
1
|
||||
-1
|
||||
EOF
|
114
src/main/resources/vrp/E-n51-k5.vrp.txt
Normal file
114
src/main/resources/vrp/E-n51-k5.vrp.txt
Normal file
@ -0,0 +1,114 @@
|
||||
NAME : E-n51-k5
|
||||
COMMENT : (Christophides and Eilon, Min no of trucks: 5, Optimal value: 521)
|
||||
TYPE : CVRP
|
||||
DIMENSION : 51
|
||||
EDGE_WEIGHT_TYPE : EUC_2D
|
||||
CAPACITY : 160
|
||||
NODE_COORD_SECTION
|
||||
1 30 40
|
||||
2 37 52
|
||||
3 49 49
|
||||
4 52 64
|
||||
5 20 26
|
||||
6 40 30
|
||||
7 21 47
|
||||
8 17 63
|
||||
9 31 62
|
||||
10 52 33
|
||||
11 51 21
|
||||
12 42 41
|
||||
13 31 32
|
||||
14 5 25
|
||||
15 12 42
|
||||
16 36 16
|
||||
17 52 41
|
||||
18 27 23
|
||||
19 17 33
|
||||
20 13 13
|
||||
21 57 58
|
||||
22 62 42
|
||||
23 42 57
|
||||
24 16 57
|
||||
25 8 52
|
||||
26 7 38
|
||||
27 27 68
|
||||
28 30 48
|
||||
29 43 67
|
||||
30 58 48
|
||||
31 58 27
|
||||
32 37 69
|
||||
33 38 46
|
||||
34 46 10
|
||||
35 61 33
|
||||
36 62 63
|
||||
37 63 69
|
||||
38 32 22
|
||||
39 45 35
|
||||
40 59 15
|
||||
41 5 6
|
||||
42 10 17
|
||||
43 21 10
|
||||
44 5 64
|
||||
45 30 15
|
||||
46 39 10
|
||||
47 32 39
|
||||
48 25 32
|
||||
49 25 55
|
||||
50 48 28
|
||||
51 56 37
|
||||
DEMAND_SECTION
|
||||
1 0
|
||||
2 7
|
||||
3 30
|
||||
4 16
|
||||
5 9
|
||||
6 21
|
||||
7 15
|
||||
8 19
|
||||
9 23
|
||||
10 11
|
||||
11 5
|
||||
12 19
|
||||
13 29
|
||||
14 23
|
||||
15 21
|
||||
16 10
|
||||
17 15
|
||||
18 3
|
||||
19 41
|
||||
20 9
|
||||
21 28
|
||||
22 8
|
||||
23 8
|
||||
24 16
|
||||
25 10
|
||||
26 28
|
||||
27 7
|
||||
28 15
|
||||
29 14
|
||||
30 6
|
||||
31 19
|
||||
32 11
|
||||
33 12
|
||||
34 23
|
||||
35 26
|
||||
36 17
|
||||
37 6
|
||||
38 9
|
||||
39 15
|
||||
40 14
|
||||
41 7
|
||||
42 27
|
||||
43 13
|
||||
44 11
|
||||
45 16
|
||||
46 10
|
||||
47 5
|
||||
48 25
|
||||
49 17
|
||||
50 18
|
||||
51 10
|
||||
DEPOT_SECTION
|
||||
1
|
||||
-1
|
||||
EOF
|
468
src/main/resources/vrp/X-n228-k23.vrp.txt
Normal file
468
src/main/resources/vrp/X-n228-k23.vrp.txt
Normal file
@ -0,0 +1,468 @@
|
||||
NAME : X-n228-k23
|
||||
COMMENT : "Generated by Uchoa, Pecin, Pessoa, Poggi, Subramanian, and Vidal (2013)"
|
||||
TYPE : CVRP
|
||||
DIMENSION : 228
|
||||
EDGE_WEIGHT_TYPE : EUC_2D
|
||||
CAPACITY : 154
|
||||
NODE_COORD_SECTION
|
||||
1 550 574
|
||||
2 177 24
|
||||
3 448 476
|
||||
4 934 619
|
||||
5 323 122
|
||||
6 430 76
|
||||
7 364 9
|
||||
8 988 994
|
||||
9 91 636
|
||||
10 938 641
|
||||
11 979 764
|
||||
12 4 748
|
||||
13 420 164
|
||||
14 294 15
|
||||
15 304 89
|
||||
16 362 207
|
||||
17 770 344
|
||||
18 67 634
|
||||
19 90 44
|
||||
20 712 418
|
||||
21 299 6
|
||||
22 997 871
|
||||
23 38 695
|
||||
24 830 1000
|
||||
25 916 622
|
||||
26 445 107
|
||||
27 314 222
|
||||
28 292 519
|
||||
29 183 344
|
||||
30 520 434
|
||||
31 262 283
|
||||
32 996 902
|
||||
33 115 158
|
||||
34 371 61
|
||||
35 971 352
|
||||
36 448 484
|
||||
37 299 89
|
||||
38 402 147
|
||||
39 537 431
|
||||
40 389 48
|
||||
41 186 22
|
||||
42 658 505
|
||||
43 459 528
|
||||
44 956 900
|
||||
45 486 383
|
||||
46 36 651
|
||||
47 994 713
|
||||
48 270 100
|
||||
49 944 606
|
||||
50 813 917
|
||||
51 318 42
|
||||
52 17 369
|
||||
53 398 280
|
||||
54 74 760
|
||||
55 910 623
|
||||
56 96 604
|
||||
57 432 96
|
||||
58 188 17
|
||||
59 441 480
|
||||
60 458 124
|
||||
61 557 620
|
||||
62 196 51
|
||||
63 253 137
|
||||
64 953 658
|
||||
65 389 0
|
||||
66 386 127
|
||||
67 140 683
|
||||
68 293 75
|
||||
69 475 386
|
||||
70 224 487
|
||||
71 299 157
|
||||
72 556 346
|
||||
73 366 110
|
||||
74 681 864
|
||||
75 220 97
|
||||
76 382 140
|
||||
77 266 88
|
||||
78 440 423
|
||||
79 168 19
|
||||
80 616 244
|
||||
81 270 177
|
||||
82 126 666
|
||||
83 332 85
|
||||
84 234 26
|
||||
85 834 571
|
||||
86 49 602
|
||||
87 248 74
|
||||
88 81 696
|
||||
89 308 43
|
||||
90 915 675
|
||||
91 500 518
|
||||
92 510 353
|
||||
93 329 86
|
||||
94 830 724
|
||||
95 993 634
|
||||
96 959 600
|
||||
97 991 973
|
||||
98 411 25
|
||||
99 382 303
|
||||
100 477 58
|
||||
101 225 31
|
||||
102 439 456
|
||||
103 120 710
|
||||
104 462 471
|
||||
105 107 134
|
||||
106 970 995
|
||||
107 427 501
|
||||
108 938 650
|
||||
109 370 16
|
||||
110 460 140
|
||||
111 263 59
|
||||
112 524 19
|
||||
113 411 89
|
||||
114 953 944
|
||||
115 79 357
|
||||
116 757 867
|
||||
117 343 121
|
||||
118 361 316
|
||||
119 407 508
|
||||
120 414 117
|
||||
121 576 591
|
||||
122 544 44
|
||||
123 418 27
|
||||
124 837 660
|
||||
125 174 487
|
||||
126 168 601
|
||||
127 854 575
|
||||
128 615 52
|
||||
129 193 51
|
||||
130 458 659
|
||||
131 957 641
|
||||
132 51 647
|
||||
133 137 714
|
||||
134 203 140
|
||||
135 386 146
|
||||
136 976 649
|
||||
137 522 26
|
||||
138 281 121
|
||||
139 453 69
|
||||
140 393 25
|
||||
141 341 532
|
||||
142 466 153
|
||||
143 507 472
|
||||
144 946 963
|
||||
145 327 78
|
||||
146 301 135
|
||||
147 256 139
|
||||
148 997 980
|
||||
149 343 173
|
||||
150 860 622
|
||||
151 151 798
|
||||
152 317 211
|
||||
153 418 6
|
||||
154 833 694
|
||||
155 83 641
|
||||
156 229 449
|
||||
157 283 204
|
||||
158 513 697
|
||||
159 232 96
|
||||
160 247 22
|
||||
161 651 664
|
||||
162 857 701
|
||||
163 337 72
|
||||
164 439 65
|
||||
165 398 106
|
||||
166 409 24
|
||||
167 931 476
|
||||
168 368 92
|
||||
169 97 676
|
||||
170 880 606
|
||||
171 281 199
|
||||
172 410 110
|
||||
173 252 22
|
||||
174 181 147
|
||||
175 945 948
|
||||
176 135 618
|
||||
177 348 443
|
||||
178 296 39
|
||||
179 953 368
|
||||
180 81 826
|
||||
181 997 734
|
||||
182 533 134
|
||||
183 372 134
|
||||
184 231 681
|
||||
185 317 479
|
||||
186 143 603
|
||||
187 122 38
|
||||
188 220 898
|
||||
189 946 690
|
||||
190 95 37
|
||||
191 429 9
|
||||
192 137 64
|
||||
193 361 258
|
||||
194 153 65
|
||||
195 536 296
|
||||
196 509 404
|
||||
197 423 59
|
||||
198 162 759
|
||||
199 525 342
|
||||
200 943 678
|
||||
201 522 195
|
||||
202 463 29
|
||||
203 371 335
|
||||
204 289 136
|
||||
205 191 568
|
||||
206 505 381
|
||||
207 265 55
|
||||
208 125 62
|
||||
209 304 44
|
||||
210 958 610
|
||||
211 975 966
|
||||
212 277 631
|
||||
213 285 169
|
||||
214 486 111
|
||||
215 940 621
|
||||
216 993 964
|
||||
217 771 548
|
||||
218 484 276
|
||||
219 440 455
|
||||
220 104 561
|
||||
221 200 61
|
||||
222 491 62
|
||||
223 277 169
|
||||
224 177 695
|
||||
225 628 312
|
||||
226 430 429
|
||||
227 945 994
|
||||
228 461 608
|
||||
DEMAND_SECTION
|
||||
1 0
|
||||
2 79
|
||||
3 57
|
||||
4 88
|
||||
5 54
|
||||
6 92
|
||||
7 84
|
||||
8 61
|
||||
9 100
|
||||
10 61
|
||||
11 69
|
||||
12 78
|
||||
13 54
|
||||
14 59
|
||||
15 60
|
||||
16 61
|
||||
17 85
|
||||
18 67
|
||||
19 96
|
||||
20 57
|
||||
21 57
|
||||
22 52
|
||||
23 80
|
||||
24 60
|
||||
25 71
|
||||
26 93
|
||||
27 59
|
||||
28 88
|
||||
29 77
|
||||
30 50
|
||||
31 98
|
||||
32 53
|
||||
33 54
|
||||
34 99
|
||||
35 10
|
||||
36 9
|
||||
37 8
|
||||
38 9
|
||||
39 7
|
||||
40 10
|
||||
41 9
|
||||
42 2
|
||||
43 3
|
||||
44 3
|
||||
45 7
|
||||
46 8
|
||||
47 3
|
||||
48 2
|
||||
49 2
|
||||
50 10
|
||||
51 2
|
||||
52 10
|
||||
53 3
|
||||
54 9
|
||||
55 7
|
||||
56 4
|
||||
57 6
|
||||
58 6
|
||||
59 3
|
||||
60 3
|
||||
61 9
|
||||
62 9
|
||||
63 9
|
||||
64 5
|
||||
65 2
|
||||
66 10
|
||||
67 2
|
||||
68 5
|
||||
69 9
|
||||
70 6
|
||||
71 3
|
||||
72 7
|
||||
73 10
|
||||
74 7
|
||||
75 10
|
||||
76 6
|
||||
77 3
|
||||
78 10
|
||||
79 6
|
||||
80 2
|
||||
81 4
|
||||
82 4
|
||||
83 9
|
||||
84 5
|
||||
85 9
|
||||
86 5
|
||||
87 5
|
||||
88 7
|
||||
89 1
|
||||
90 10
|
||||
91 4
|
||||
92 4
|
||||
93 2
|
||||
94 6
|
||||
95 1
|
||||
96 2
|
||||
97 1
|
||||
98 8
|
||||
99 1
|
||||
100 9
|
||||
101 7
|
||||
102 1
|
||||
103 9
|
||||
104 6
|
||||
105 4
|
||||
106 2
|
||||
107 10
|
||||
108 7
|
||||
109 10
|
||||
110 2
|
||||
111 3
|
||||
112 5
|
||||
113 6
|
||||
114 7
|
||||
115 4
|
||||
116 8
|
||||
117 4
|
||||
118 1
|
||||
119 3
|
||||
120 4
|
||||
121 2
|
||||
122 5
|
||||
123 8
|
||||
124 5
|
||||
125 9
|
||||
126 3
|
||||
127 10
|
||||
128 2
|
||||
129 1
|
||||
130 7
|
||||
131 8
|
||||
132 2
|
||||
133 3
|
||||
134 8
|
||||
135 6
|
||||
136 1
|
||||
137 6
|
||||
138 8
|
||||
139 5
|
||||
140 8
|
||||
141 2
|
||||
142 6
|
||||
143 8
|
||||
144 4
|
||||
145 10
|
||||
146 3
|
||||
147 10
|
||||
148 2
|
||||
149 8
|
||||
150 9
|
||||
151 5
|
||||
152 7
|
||||
153 10
|
||||
154 3
|
||||
155 8
|
||||
156 7
|
||||
157 2
|
||||
158 4
|
||||
159 7
|
||||
160 10
|
||||
161 5
|
||||
162 10
|
||||
163 7
|
||||
164 8
|
||||
165 1
|
||||
166 9
|
||||
167 8
|
||||
168 4
|
||||
169 7
|
||||
170 8
|
||||
171 6
|
||||
172 3
|
||||
173 2
|
||||
174 4
|
||||
175 3
|
||||
176 1
|
||||
177 10
|
||||
178 4
|
||||
179 8
|
||||
180 10
|
||||
181 5
|
||||
182 2
|
||||
183 2
|
||||
184 10
|
||||
185 9
|
||||
186 7
|
||||
187 6
|
||||
188 4
|
||||
189 4
|
||||
190 10
|
||||
191 5
|
||||
192 8
|
||||
193 6
|
||||
194 9
|
||||
195 10
|
||||
196 9
|
||||
197 3
|
||||
198 5
|
||||
199 6
|
||||
200 6
|
||||
201 10
|
||||
202 5
|
||||
203 7
|
||||
204 3
|
||||
205 1
|
||||
206 9
|
||||
207 10
|
||||
208 10
|
||||
209 6
|
||||
210 1
|
||||
211 1
|
||||
212 5
|
||||
213 8
|
||||
214 3
|
||||
215 7
|
||||
216 4
|
||||
217 2
|
||||
218 8
|
||||
219 5
|
||||
220 8
|
||||
221 6
|
||||
222 5
|
||||
223 7
|
||||
224 7
|
||||
225 5
|
||||
226 6
|
||||
227 8
|
||||
228 7
|
||||
DEPOT_SECTION
|
||||
1
|
||||
-1
|
||||
EOF
|
1060
src/main/resources/vrp/X-n524-k153.vrp.txt
Normal file
1060
src/main/resources/vrp/X-n524-k153.vrp.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user