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