creating bilevel 0.1 tag

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2282 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
legillon 2011-06-29 13:40:03 +00:00
commit 3aaf6ddad0
97 changed files with 10479 additions and 0 deletions

View file

@ -0,0 +1,112 @@
######################################################################################
### 0) Set your application properties
######################################################################################
# check cmake version compatibility
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# Here define your project name
PROJECT(biMMDVRP)
# Here define the name and the version of your package
SET(PACKAGE_NAME "mdrvrp" CACHE STRING "Package name" FORCE)
SET(PACKAGE_VERSION "0.1" CACHE STRING "Package version" FORCE)
# regular expression checking
INCLUDE_REGULAR_EXPRESSION("^.*$" "^$")
# set a language for the entire project.
ENABLE_LANGUAGE(CXX)
ENABLE_LANGUAGE(C)
######################################################################################
######################################################################################
### 1) Include the install configuration file where are defined the main variables
######################################################################################
INCLUDE(${CMAKE_SOURCE_DIR}/install.cmake)
######################################################################################
######################################################################################
### 2) Include the sources
######################################################################################
######################################
### Include required modules & utilities
#####################################################################################
INCLUDE(CMakeBackwardCompatibilityCXX)
INCLUDE(FindDoxygen)
INCLUDE(CheckLibraryExists)
INCLUDE(Dart OPTIONAL)
INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src) # include EO directory
INCLUDE_DIRECTORIES(${PARADISEO_MO_SRC_DIR}/src) # include MO directory
INCLUDE_DIRECTORIES(${PARADISEO_MOEO_SRC_DIR}/src) # include MOEO directory
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src) # include your own source directory (MyContrib/src)
# Set a special flag if the environment is windows (should do the same in a config.g file)
IF (WIN32)
ADD_DEFINITIONS(-D_WINDOWS=1)
ENDIF (WIN32)
######################################################################################
#####################################################################################
### Manage the build type
#####################################################################################
# the user should choose the build type on windows environments,excepted under cygwin (default=none)
SET(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "Variable that stores the default CMake build type" FORCE)
FIND_PROGRAM(MEMORYCHECK_COMMAND
NAMES purify valgrind
PATHS
"/usr/local/bin /usr/bin [HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]"
DOC "Path to the memory checking command, used for memory error detection.")
IF(NOT CMAKE_BUILD_TYPE)
SET( CMAKE_BUILD_TYPE
${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
IF(WIN32 AND NOT CYGWIN)
IF(CMAKE_CXX_COMPILER MATCHES cl)
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005" OR CMAKE_GENERATOR STREQUAL "Visual Studio 9 2008")
SET(CMAKE_CXX_FLAGS "/nologo /Gy")
SET(CMAKE_CXX_FLAGS_DEBUG "/W3 /MTd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/w /MT /O3 /wd4530")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005" OR CMAKE_GENERATOR STREQUAL "Visual Studio 9 2008")
ENDIF(NOT WITH_SHARED_LIBS)
ENDIF(CMAKE_CXX_COMPILER MATCHES cl)
ELSE(WIN32 AND NOT CYGWIN)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -fprofile-arcs -ftest-coverage -Wall -Wextra -Wno-unused-parameter")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -O6")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
ENDIF(WIN32 AND NOT CYGWIN)
IF(CMAKE_BUILD_TYPE MATCHES Debug)
ADD_DEFINITIONS(-DCMAKE_VERBOSE_MAKEFILE=ON)
ENDIF(CMAKE_BUILD_TYPE MATCHES Debug)
######################################################################################
### 3) Link the librairies for your executable
######################################################################################
ADD_SUBDIRECTORY(doc)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test)
ADD_SUBDIRECTORY(application)
######################################################################################

View file

@ -0,0 +1,7 @@
set(CTEST_PROJECT_NAME "ParadisEO")
set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "cdash.inria.fr")
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=ParadisEO")
set(CTEST_DROP_SITE_CDASH TRUE)

View file

@ -0,0 +1,18 @@
Paradiseo contribution for a bilevel multiple depot vehicule routing problem solver
Build instructions:
start by setting the path to paradiseo in install.cmake (paradiseo should be built)
then go to the build directory, and do a "cmake ..", then a "make"
after building, in the build directory
Run instructions:
./application/simpletemp bench seed
where bench is a benchmark file for biMDVRP (bipr*x* in the instances folder) and seed a number to initialize the pseudo random generator
./application/multitemp bench seed
where bench is a benchmark file for mbiMDVRP (mbipr*x* in the instances folder) and seed a number to initialize the pseudo random generator
Additional informations:
*The instances/benchmark are in instances directory
*We use CoBRA to solve the problem

View file

@ -0,0 +1,81 @@
######################################################################################
### 1) Include the sources
######################################################################################
INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
${PARADISEO_MOEO_SRC_DIR}/src
${PARADISEO_MO_SRC_DIR}/src
${CMAKE_SOURCE_DIR}/tsp/
${CMAKE_SOURCE_DIR}/src)
######################################################################################
######################################################################################
### 2) Specify where CMake can find the libraries
######################################################################################
LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lib)
######################################################################################
######################################################################################
### 3) Define your target: just an executable here
######################################################################################
ADD_EXECUTABLE(mbiMDVRP mbiMDVRP.cpp)
ADD_EXECUTABLE(simpletemp simpletemp.cpp)
ADD_EXECUTABLE(simpleRepair simpleRepair.cpp)
ADD_EXECUTABLE(multitemp multitemp.cpp)
ADD_EXECUTABLE(multirepair multirepair.cpp)
ADD_EXECUTABLE(bilevelGen bilevelGen.cpp)
ADD_EXECUTABLE(verifRat verifRat.cpp)
ADD_EXECUTABLE(verifRat2 verifRat2.cpp)
ADD_EXECUTABLE(verifRatmulti verifRatmulti.cpp)
ADD_EXECUTABLE(verifRatmulti2 verifRatmulti2.cpp)
######################################################################################
######################################################################################
### 4) Link the librairies for your executable
######################################################################################
# Only if you need to link libraries
TARGET_LINK_LIBRARIES(mbiMDVRP eo eoutils lvrp lbeo)
TARGET_LINK_LIBRARIES(simpletemp eo eoutils lbeo lvrp )
TARGET_LINK_LIBRARIES(simpleRepair eo eoutils lbeo lvrp )
TARGET_LINK_LIBRARIES(multitemp eo eoutils lbeo lvrp )
TARGET_LINK_LIBRARIES(multirepair eo eoutils lbeo lvrp )
TARGET_LINK_LIBRARIES(bilevelGen eo eoutils lvrp lbeo)
TARGET_LINK_LIBRARIES(verifRat eo eoutils lvrp lbeo)
TARGET_LINK_LIBRARIES(verifRat2 eo eoutils lvrp lbeo)
TARGET_LINK_LIBRARIES(verifRatmulti eo eoutils lvrp lbeo)
TARGET_LINK_LIBRARIES(verifRatmulti2 eo eoutils lvrp lbeo)
######################################################################################
######################################################################################
### 5) Copy the instances and the "param" file in the build path for an easy use.
###
### --> run the "make install" target to copy the parameter file / instances
### in the directory where you build the application
######################################################################################
#ADD_CUSTOM_TARGET(install DEPENDS ${CMAKE_SOURCE_DIR}/application/NSGAII.param
# ${CMAKE_SOURCE_DIR}/application)
ADD_CUSTOM_COMMAND(
TARGET install
POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different
${CMAKE_SOURCE_DIR}/application/NSGAII.param
${CMAKE_BINARY_DIR}/application)
######################################################################################

View file

@ -0,0 +1,109 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//bilevel mdvrp instance generator with single-objective follower problem
#include <utils/eoRNG.h>
#include <eo>
#include <biVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <eoSelectFromWorth.h>
#include <op/VRP2RBX.h>
#include <op/VRP2SBX.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<4) {
cout<< "donnez un nom d'instance MDVRP, un nombre d'usine et la demande totale des retailers"<<endl;
return EXIT_SUCCESS;
}
string filename(argv[1]);
int numberOfPlant=atoi(argv[2]);
double totalDemand=atof(argv[3]);
int type,vehiculeNumber,retailerNumber,depotNumber;
std::ifstream file(filename.data());
if (file.is_open()){
eoRng &rng=eo::rng;
file>>type;
file>>vehiculeNumber;
file>>retailerNumber;
file>>depotNumber;
cout<<8<<" "<<vehiculeNumber<<" "<<retailerNumber<<" "<<depotNumber<<" "<<numberOfPlant<<endl;
for (int i=0;i<depotNumber;i++){
int a,b;
file>>a;
file>>b;
if(i==depotNumber-1)
cout <<a<<" "<<b;
else
cout <<a<<" "<<b<<endl;
}
char ch;
while(!file.eof())
{
file.get(ch);
if (!file.eof() || ch!='\n')
cout << ch;
}
int idx=vehiculeNumber+retailerNumber+1;
for (int i=0;i<numberOfPlant;i++){
double cb=rng.uniform(0.5)+0.5;
int x=rng.random(400)-200;
int y=rng.random(400)-200;
double offerMin = totalDemand/numberOfPlant;
double avail=rng.random(totalDemand-offerMin)+offerMin;
double cc=rng.uniform(3)+2.0;
cout<<idx++<<" "<<x<<" "<<y<<" 0\t";
cout<<avail<<" "<<cb<<" "<<cc<<endl;
}
}
}

View file

@ -0,0 +1,108 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//bilevel mdvrp instance generator with multi-objective follower problem
#include <utils/eoRNG.h>
#include <eo>
#include <biVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <eoSelectFromWorth.h>
#include <op/VRP2RBX.h>
#include <op/VRP2SBX.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<4) {
cout<< "donnez un nom d'instance MDVRP, un nombre d'usine et la demande totale des retailers"<<endl;
return EXIT_SUCCESS;
}
string filename(argv[1]);
int numberOfPlant=atoi(argv[2]);
double totalDemand=atof(argv[3]);
int type,vehiculeNumber,retailerNumber,depotNumber;
std::ifstream file(filename.data());
if (file.is_open()){
eoRng &rng=eo::rng;
file>>type;
file>>vehiculeNumber;
file>>retailerNumber;
file>>depotNumber;
cout<<10<<" "<<vehiculeNumber<<" "<<retailerNumber<<" "<<depotNumber<<" "<<numberOfPlant<<endl;
int a,b;
for (int i=0;i<depotNumber;i++){
file>>a;
file>>b;
cout <<a<<" "<<b<<endl;
}
char ch;
while(!file.eof())
{
file.get(ch);
if (!file.eof() || ch!='\n')
cout << ch;
}
int idx=vehiculeNumber+retailerNumber+1;
for (int i=0;i<numberOfPlant;i++){
double cb=rng.uniform(0.5)+0.5;
int x=rng.random(400)-200;
int y=rng.random(400)-200;
double offerMin = totalDemand/numberOfPlant;
double avail=rng.random(totalDemand-offerMin)+offerMin;
double cc=rng.uniform(3)+2.0;
double cd=rng.uniform(3)+2.0;
cout<<idx++<<" "<<x<<" "<<y<<" 0\t";
cout<<avail<<" "<<cb<<" "<<cc<<" "<<cd<<endl;
}
}
}

View file

@ -0,0 +1,217 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of a hierarchical algorithm to solve the multi-objective bilevel MDVRP
#include <eo>
#include <mbiVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoLeftieExchange.h>
#include <op/beoRightieExchange.h>
#include <op/beoBestExchange.h>
#include <op/beoRateContainerCoevoOp.h>
#include <op/SBXCrossover.h>
#include <op/PolynomialMutation.h>
#include <beoDummyCoevoPop.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <mbiVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoBLAISArchivetemp.h>
#include <beoBLAISArchivetemp.cpp>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoUpMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
#include <biVRPPerf2Worth.h>
#include <beoLexContinue.h>
#include <beoCoevoAllPop.h>
#include <beoSelectCoevoPop.h>
#include <beoCoevoLinePop.h>
#include <beoSelectOneUp.h>
#include <beoSelectOneLow.h>
#include <selection/moeoDetTournamentSelect.h>
#include <comparator/moeoFitnessComparator.h>
#include <replacement/moeoGenerationalReplacement.h>
#include <beoUpComparator.h>
#include <beoLowComparator.h>
#include <fitness/moeoDominanceCountFitnessAssignment.h>
#include <fitness/moeoDummyFitnessAssignment.h>
#include <algo/moeoEasyEA.h>
#include <algo/moeoNSGAII.h>
#include <moeoSteadyContinue.h>
#include <archive/moeoUnboundedArchive.h>
#include <beoRepairEval.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un numerio de seed"<<endl;
return EXIT_SUCCESS;
}
eo::rng.reseed(atoi(argv[2]));
string filename(argv[1]);
mbiVRPDistMat mat;
mat.load(filename);
int popsize=200;
moeoFitnessComparator<biVRP> comp;
biVRPUpEval evalU(mat);
mbiVRPLowEval evalL(mat);
beoEval<biVRP> eval(evalL,evalU);
eval.nbEval=0;
moeoDetTournamentSelect<biVRP> selectCoevoL(comp);
moeoDetTournamentSelect<biVRP> selectCoevoU(comp);
VRP2 grou;
grou.init(mat);
PLA grou2;
grou2.init(mat);
/*******
* ALGOL
******/
moeoParetoObjectiveVectorComparator<biVRP::L::ObjectiveVector> paretocomp;
moeoFitnessComparator<biVRP> fitcomp;
beoLowComparator<biVRP::ObjectiveVector> compL(paretocomp);
moeoDetTournamentSelect<biVRP> oneselectL(fitcomp);
moeoDummyDiversityAssignment<biVRP> divass;
eoSelectNumber<biVRP> selectL(oneselectL,popsize/3);
moeoGenerationalReplacement<biVRP> replaceL;
double sigma=0.5;
double proba=0.1;
eoRealInterval interval;
eoRealVectorBounds bounds(grou2.size(),interval);
PolynomialMutation<biVRP::L> mmutL(bounds);
SBXCrossover<biVRP::L> xoverMMM(bounds);
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoRankingSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
moeoSteadyContinue<biVRP> contalgoL(0,0,0.95);
PLARandInit initpla(mat);
moeoNSGAII<biVRP> algoL(contalgoL,eval, opL);
/******
* ALGOU
******/
moeoDetTournamentSelect<biVRP> oneselectU(comp);
eoSelectNumber<biVRP> selectU(oneselectU,popsize/3);
eoSwapMutation<biVRP::U> mmutU(5);
beoUpMut<biVRP> mutU(mmutU);
biVRPSBX xover;
biVRPRBX xover2;
eoGenerationalReplacement<biVRP> replaceU;
eoPeriodicContinue<biVRP> contalgoU(10);
eoBinGenOp<biVRP> genop(xover);
eoMonGenOp<biVRP> genop2(mutU);
eoBinGenOp<biVRP> genop3(xover2);
eoDetTournamentSelect<biVRP> selectalgoU;
eoSequentialOp<biVRP> nouvelopU;
eoGeneralBreeder<biVRP> breedalgoU(oneselectU,nouvelopU);
nouvelopU.add(genop2,0.5);
beoRepairEval<biVRP> repeval(eval,algoL);
eoEasyEA<biVRP> algoU(contalgoU,repeval, breedalgoU, replaceU);
/******
* MAIN ALGO
*****/
biVRPPerf2Worth perf2WorthU;
biVRPPerf2Worth perf2WorthL;
eoDetTournamentWorthSelect<biVRP> ranselectpoperU(perf2WorthU,2);
eoDetTournamentWorthSelect<biVRP> ranselectpoperL(perf2WorthL,2);
beoLexContinue<biVRP> contU(100,100);
moeoSteadyContinue<biVRP> contL(100,100);
eoInitPermutation<VRP2> initpermut(grou.size());
biVRPInit init(mat,initpermut);
beoBestExchange<biVRP> coevo3;
beoRateContainerCoevoOp<biVRP> coevo(coevo3,0.5);
beoSelectOneUp<biVRP> su(ranselectpoperU);
beoSelectOneLow<biVRP> sl(ranselectpoperL);
eoSelectNumber<biVRP> selectPoperU(su,10);
eoSelectNumber<biVRP> selectPoperL(sl,10);
beoCoevoLinePop<biVRP> poper(coevo, 80);
eoDeterministicSaDReplacement<biVRP> merge(0.8);
beoBLAISArchivetemp<biVRP> blais(algoU,algoL,eval,poper,contL,contU,selectCoevoU,selectCoevoL,merge);
eoPop<biVRP> pop(popsize,init);
for (int i=0;i<popsize;i++) {
eval(pop[i]);
}
algoU(pop);
for (int i=0;i<pop.size();i++){
std::cout<<"uprep "<<pop[i].upper()<<std::endl;
std::cout<<"lowrep "<<pop[i].lower()<<std::endl;
std::cout<<"fitrep "<<pop[i].upper().fitness()<<" "<<pop[i].objectiveVector().low()[0]<<" "<<pop[i].objectiveVector().low()[1]<<std::endl;
}
std::cout<<"nbEval"<<eval.nbEval<<std::endl;
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,209 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of CoBRA, a coevolutionary algorithm, to solve the multi-objective bilevel MDVRP
#include <eo>
#include <mbiVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoLeftieExchange.h>
#include <op/beoRightieExchange.h>
#include <op/beoBestExchange.h>
#include <op/beoRateContainerCoevoOp.h>
#include <op/SBXCrossover.h>
#include <op/PolynomialMutation.h>
#include <beoDummyCoevoPop.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <mbiVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoBLAISArchivetemp.h>
#include <beoBLAISArchivetemp.cpp>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoUpMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
#include <biVRPPerf2Worth.h>
#include <beoLexContinue.h>
#include <beoCoevoAllPop.h>
#include <beoSelectCoevoPop.h>
#include <beoCoevoLinePop.h>
#include <beoSelectOneUp.h>
#include <beoSelectOneLow.h>
#include <selection/moeoDetTournamentSelect.h>
#include <comparator/moeoFitnessComparator.h>
#include <replacement/moeoGenerationalReplacement.h>
#include <beoUpComparator.h>
#include <beoLowComparator.h>
#include <fitness/moeoDominanceCountFitnessAssignment.h>
#include <fitness/moeoDummyFitnessAssignment.h>
#include <algo/moeoEasyEA.h>
#include <algo/moeoNSGAII.h>
#include <moeoSteadyContinue.h>
#include <archive/moeoUnboundedArchive.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un numerio de seed"<<endl;
return EXIT_SUCCESS;
}
eo::rng.reseed(atoi(argv[2]));
//int beoEval<biVRP>::nbEval=0;
string filename(argv[1]);
mbiVRPDistMat mat;
mat.load(filename);
int popsize=200;
moeoFitnessComparator<biVRP> comp;
biVRPUpEval evalU(mat);
mbiVRPLowEval evalL(mat);
beoEval<biVRP> eval(evalL,evalU);
eval.nbEval=0;
moeoDetTournamentSelect<biVRP> selectCoevoL(comp);
moeoDetTournamentSelect<biVRP> selectCoevoU(comp);
VRP2 grou;
grou.init(mat);
PLA grou2;
grou2.init(mat);
/******
* ALGOU
******/
moeoDetTournamentSelect<biVRP> oneselectU(comp);
eoSelectNumber<biVRP> selectU(oneselectU,popsize/3);
eoSwapMutation<biVRP::U> mmutU(5);
beoUpMut<biVRP> mutU(mmutU);
biVRPSBX xover;
biVRPRBX xover2;
eoGenerationalReplacement<biVRP> replaceU;
eoPeriodicContinue<biVRP> contalgoU(10);
eoBinGenOp<biVRP> genop(xover);
eoMonGenOp<biVRP> genop2(mutU);
eoBinGenOp<biVRP> genop3(xover2);
eoDetTournamentSelect<biVRP> selectalgoU;
eoSequentialOp<biVRP> nouvelopU;
eoGeneralBreeder<biVRP> breedalgoU(oneselectU,nouvelopU);
nouvelopU.add(genop2,0.5);
eoEasyEA<biVRP> algoU(contalgoU,eval, breedalgoU, replaceU);
/*******
* ALGOL
******/
moeoParetoObjectiveVectorComparator<biVRP::L::ObjectiveVector> paretocomp;
moeoFitnessComparator<biVRP> fitcomp;
beoLowComparator<biVRP::ObjectiveVector> compL(paretocomp);
moeoDetTournamentSelect<biVRP> oneselectL(fitcomp);
moeoDummyDiversityAssignment<biVRP> divass;
eoSelectNumber<biVRP> selectL(oneselectL,popsize/3);
moeoGenerationalReplacement<biVRP> replaceL;
double sigma=0.5;
double proba=0.1;
eoRealInterval interval;
eoRealVectorBounds bounds(grou2.size(),interval);
PolynomialMutation<biVRP::L> mmutL(bounds);
SBXCrossover<biVRP::L> xoverMMM(bounds);
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoRankingSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
moeoSteadyContinue<biVRP> contalgoL(0,0,0.95);
PLARandInit initpla(mat);
moeoNSGAII<biVRP> algoL(contalgoL,eval, opL);
/******
* MAIN ALGO
*****/
biVRPPerf2Worth perf2WorthU;
biVRPPerf2Worth perf2WorthL;
eoDetTournamentWorthSelect<biVRP> ranselectpoperU(perf2WorthU,2);
eoDetTournamentWorthSelect<biVRP> ranselectpoperL(perf2WorthL,2);
beoLexContinue<biVRP> contU(100,100);
moeoSteadyContinue<biVRP> contL(100,100);
eoInitPermutation<VRP2> initpermut(grou.size());
biVRPInit init(mat,initpermut);
beoBestExchange<biVRP> coevo3;
beoRateContainerCoevoOp<biVRP> coevo(coevo3,0.5);
beoSelectOneUp<biVRP> su(ranselectpoperU);
beoSelectOneLow<biVRP> sl(ranselectpoperL);
eoSelectNumber<biVRP> selectPoperU(su,10);
eoSelectNumber<biVRP> selectPoperL(sl,10);
beoCoevoLinePop<biVRP> poper(coevo, 80);
eoDeterministicSaDReplacement<biVRP> merge(0.8);
beoBLAISArchivetemp<biVRP> blais(algoU,algoL,eval,poper,contL,contU,selectCoevoU,selectCoevoL,merge);
eoPop<biVRP> pop(popsize,init);
for (int i=0;i<popsize;i++) {
eval(pop[i]);
}
blais(pop);
std::cout<<"nbEval"<<eval.nbEval<<std::endl;
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,172 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of a hierarchical algorithm to solve the single-objective bilevel MDVRP
#include <eo>
#include <biVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoRateContainerCoevoOp.h>
#include <beoDummyCoevoPop.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <biVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoBLAISArchivetemp.h>
#include <beoBLAISArchivetemp.cpp>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoUpMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
#include <biVRPPerf2Worth.h>
#include <beoLexContinue.h>
#include <beoCoevoAllPop.h>
#include <beoSelectCoevoPop.h>
#include <beoCoevoLinePop.h>
#include <beoSelectOneUp.h>
#include <beoSelectOneLow.h>
#include <selection/moeoDetTournamentSelect.h>
#include <comparator/moeoFitnessComparator.h>
#include <replacement/moeoGenerationalReplacement.h>
#include <beoRepairEval.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un numerio de seed"<<endl;
return EXIT_SUCCESS;
}
eo::rng.reseed(atoi(argv[2]));
string filename(argv[1]);
biVRPDistMat mat;
mat.load(filename);
int popsize=100;
moeoFitnessComparator<biVRP> comp;
biVRPUpEval evalU(mat);
biVRPLowEval evalL(mat);
beoEval<biVRP> eval(evalL,evalU);
eval.nbEval=0;
/*******
* ALGOL
******/
eoDetTournamentSelect<biVRP> oneselectL;
eoSelectNumber<biVRP> selectL(oneselectL,popsize/3);
eoGenerationalReplacement<biVRP> replaceL;
double sigma=0.5;
double proba=0.1;
eoNormalMutation<biVRP::L> mmutL(sigma,proba);
eoRealUXover<biVRP::L> xoverMMM;
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoRankingSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
eoSteadyFitContinue<biVRP> contalgoL(100,100);
eoEasyEA<biVRP> algoL(contalgoL,eval, breedalgoL, replaceL);
/******
* ALGOU
******/
beoRepairEval<biVRP> repeval(eval,algoL);
moeoDetTournamentSelect<biVRP> oneselectU(comp);
eoSelectNumber<biVRP> selectU(oneselectU,popsize/3);
eoSwapMutation<biVRP::U> mmutU(5);
beoUpMut<biVRP> mutU(mmutU);
biVRPSBX xover;
biVRPRBX xover2;
eoDeterministicSaDReplacement<biVRP> replaceU(0.3);
eoBinGenOp<biVRP> genop(xover);
eoMonGenOp<biVRP> genop2(mutU);
eoBinGenOp<biVRP> genop3(xover2);
eoDetTournamentSelect<biVRP> selectalgoU;
eoSequentialOp<biVRP> nouvelopU;
eoGeneralBreeder<biVRP> breedalgoU(oneselectU,nouvelopU);
nouvelopU.add(genop,1);
nouvelopU.add(genop2,0.3);
nouvelopU.add(genop3,0.5);
beoLexContinue<biVRP> contU(100,100);
eoEasyEA<biVRP> algoU(contU,repeval, breedalgoU, replaceU);
/******
* MAIN ALGO
*****/
biVRPPerf2Worth perf2WorthU;
biVRPPerf2Worth perf2WorthL;
eoDetTournamentWorthSelect<biVRP> ranselectpoperU(perf2WorthU,2);
eoDetTournamentWorthSelect<biVRP> ranselectpoperL(perf2WorthL,2);
VRP2 grou;
grou.init(mat);
eoInitPermutation<VRP2> initpermut(grou.size());
biVRPInit init(mat,initpermut);
eoDeterministicSaDReplacement<biVRP> merge(0.8);
eoPop<biVRP> pop(100,init);
for (int i=0;i<100;i++) repeval(pop[i]);
algoU(pop);
for (int i=0;i<pop.size();i++){
std::cout<<"uprep "<<pop[i].upper()<<std::endl;
std::cout<<"lowrep "<<pop[i].lower()<<std::endl;
std::cout<<"fitrep "<<pop[i].upper().fitness()<<pop[i].lower().fitness()<<std::endl;
}
std::cout<<"nbEval"<<eval.nbEval<<std::endl;
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,186 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of CoBRA, a coevolutionary algorithm, to solve the single-objective bilevel MDVRP
#include <eo>
#include <biVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoLeftieExchange.h>
#include <op/beoRightieExchange.h>
#include <op/beoBestExchange.h>
#include <op/beoRateContainerCoevoOp.h>
#include <beoDummyCoevoPop.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <biVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoBLAISArchivetemp.h>
#include <beoBLAISArchivetemp.cpp>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoUpMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
#include <biVRPPerf2Worth.h>
#include <beoLexContinue.h>
#include <beoCoevoAllPop.h>
#include <beoSelectCoevoPop.h>
#include <beoCoevoLinePop.h>
#include <beoSelectOneUp.h>
#include <beoSelectOneLow.h>
#include <selection/moeoDetTournamentSelect.h>
#include <comparator/moeoFitnessComparator.h>
#include <replacement/moeoGenerationalReplacement.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un numerio de seed"<<endl;
return EXIT_SUCCESS;
}
eo::rng.reseed(atoi(argv[2]));
string filename(argv[1]);
biVRPDistMat mat;
mat.load(filename);
int popsize=100;
moeoFitnessComparator<biVRP> comp;
biVRPUpEval evalU(mat);
biVRPLowEval evalL(mat);
beoEval<biVRP> eval(evalL,evalU);
eval.nbEval=0;
moeoDetTournamentSelect<biVRP> selectCoevoL(comp);
moeoDetTournamentSelect<biVRP> selectCoevoU(comp);
/******
* ALGOU
******/
moeoDetTournamentSelect<biVRP> oneselectU(comp);
eoSelectNumber<biVRP> selectU(oneselectU,popsize/3);
eoSwapMutation<biVRP::U> mmutU(5);
beoUpMut<biVRP> mutU(mmutU);
biVRPSBX xover;
biVRPRBX xover2;
eoGenerationalReplacement<biVRP> replaceU;
eoPeriodicContinue<biVRP> contalgoU(10);
eoBinGenOp<biVRP> genop(xover);
eoMonGenOp<biVRP> genop2(mutU);
eoBinGenOp<biVRP> genop3(xover2);
eoDetTournamentSelect<biVRP> selectalgoU;
eoSequentialOp<biVRP> nouvelopU;
eoGeneralBreeder<biVRP> breedalgoU(oneselectU,nouvelopU);
nouvelopU.add(genop,1);
nouvelopU.add(genop2,0.3);
nouvelopU.add(genop3,0.5);
eoEasyEA<biVRP> algoU(contalgoU,eval, breedalgoU, replaceU);
/*******
* ALGOL
******/
eoDetTournamentSelect<biVRP> oneselectL;
eoSelectNumber<biVRP> selectL(oneselectL,popsize/3);
eoGenerationalReplacement<biVRP> replaceL;
double sigma=0.5;
double proba=0.1;
eoNormalMutation<biVRP::L> mmutL(sigma,proba);
eoRealUXover<biVRP::L> xoverMMM;
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoRankingSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
eoPeriodicContinue<biVRP> contalgoL(10);
PLARandInit initpla(mat);
eoEasyEA<biVRP> algoL(contalgoL,eval, breedalgoL, replaceL);
/******
* MAIN ALGO
*****/
biVRPPerf2Worth perf2WorthU;
biVRPPerf2Worth perf2WorthL;
eoDetTournamentWorthSelect<biVRP> ranselectpoperU(perf2WorthU,2);
eoDetTournamentWorthSelect<biVRP> ranselectpoperL(perf2WorthL,2);
beoLexContinue<biVRP> contU(100,100);
beoLexContinue<biVRP> contL(100,100);
VRP2 grou;
grou.init(mat);
eoInitPermutation<VRP2> initpermut(grou.size());
biVRPInit init(mat,initpermut);
beoBestExchange<biVRP> coevo3;
beoRateContainerCoevoOp<biVRP> coevo(coevo3,0.5);
beoSelectOneUp<biVRP> su(ranselectpoperU);
beoSelectOneLow<biVRP> sl(ranselectpoperL);
eoSelectNumber<biVRP> selectPoperU(su,10);
eoSelectNumber<biVRP> selectPoperL(sl,10);
beoCoevoLinePop<biVRP> poper(coevo, 80);
eoDeterministicSaDReplacement<biVRP> merge(0.8);
beoBLAISArchivetemp<biVRP> blais(algoU,algoL,eval,poper,contL,contU,selectCoevoU,selectCoevoL,merge);
eoPop<biVRP> pop(100,init);
for (int i=0;i<100;i++) eval(pop[i]);
blais(pop);
std::cout<<"nbEval"<<eval.nbEval<<std::endl;
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,181 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of rationality calculator (direct rationality)
#include <eo>
#include <biVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoBestExchange.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <biVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un fichier de solution a verifier"<<endl;
return EXIT_SUCCESS;
}
biVRPDistMat mat;
string filename(argv[1]);
mat.load(filename);
biVRPUpEval evalU(mat);
biVRPLowEval evalL(mat);
eoPop<biVRP> pop;
beoEval<biVRP> eval(evalL,evalU);
VRP2 vrp;
vrp.init(mat);
PLA pla;
pla.init(mat);
for (int x=2;x<argc;x++){
string filenameSol(argv[x]);
ifstream file(filenameSol.data());
int vouvou=0;
bool first=true;
double bestscore;
biVRP best;
if (file.is_open())
while (!file.eof()){
std::vector<int> vrpvector;
std::vector<double> plavector;
for (int i=0;i<pla.size();i++){
double top;
file>>top;
plavector.push_back(top);
}
for (int i=0;i<vrp.size();i++){
int top;
file>>top;
vrpvector.push_back(top);
}
PLA neopla(plavector,mat);
VRP2 neovrp(vrpvector,mat);
biVRP bivrp(neovrp,neopla);
eval(bivrp);
if(first && !file.eof()){
best=bivrp;
bestscore=bivrp.upper().fitness();
first=false;
}else if(!file.eof()){
if(bivrp.upper().fitness()>bestscore){
bestscore=bivrp.upper().fitness();
best=bivrp;
}
}
}
pop.push_back(best);
}
/*******
* ALGOL
******/
eoEliteSequentialSelect<biVRP> oneselectL;
eoSelectNumber<biVRP> selectL(oneselectL,10);
eoDeterministicSaDReplacement<biVRP> replaceL(0.5);
double sigma=0.5;
double proba=0.1;
eoNormalMutation<biVRP::L> mmutL(sigma,proba);
eoRealUXover<biVRP::L> xoverMMM;
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoEliteSequentialSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
eoSteadyFitContinue<biVRP> contalgoL(500,500);
PLARandInit initpla(mat);
eoEasyEA<biVRP> algoL(contalgoL,eval, breedalgoL, replaceL);
double eps=0.1;
for (unsigned int i=0;i<pop.size();i++){
eval(pop[i]);
double score=pop[i].lower().fitness();
eoPop<biVRP> mmm;
pop[i].setMode(false);
bool finish=false;
int res=0;
for (int k=0; k<10000 && !finish; k++){
mmm.clear();
mmm.push_back(pop[i]);
mmm.push_back(pop[i]);
mmm.push_back(pop[i]);
mmm.push_back(pop[i]);
algoL(mmm);
for (unsigned int j=0; j<mmm.size();j++){
mmm[j].invalidate();
eval(mmm[j]);
if (mmm[j].lower().fitness() > score && fabs(score- mmm[j].lower().fitness())>eps){
res++;
break;
}
}
}
std::cout<<res<<std::endl;
}
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,183 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of rationality calculator (direct rationality)
#include <eo>
#include <biVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoBestExchange.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <biVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un fichier de solution a verifier"<<endl;
return EXIT_SUCCESS;
}
biVRPDistMat mat;
string filename(argv[1]);
mat.load(filename);
biVRPUpEval evalU(mat);
biVRPLowEval evalL(mat);
eoPop<biVRP> pop;
beoEval<biVRP> eval(evalL,evalU);
VRP2 vrp;
vrp.init(mat);
PLA pla;
pla.init(mat);
for (int x=2;x<argc;x++){
string filenameSol(argv[x]);
ifstream file(filenameSol.data());
int vouvou=0;
bool first=true;
double bestscore;
biVRP best;
if (file.is_open())
while (!file.eof()){
std::vector<int> vrpvector;
std::vector<double> plavector;
for (int i=0;i<vrp.size();i++){
int top;
file>>top;
vrpvector.push_back(top);
}
for (int i=0;i<pla.size();i++){
double top;
file>>top;
plavector.push_back(top);
}
PLA neopla(plavector,mat);
VRP2 neovrp(vrpvector,mat);
biVRP bivrp(neovrp,neopla);
eval(bivrp);
if(first && !file.eof()){
best=bivrp;
bestscore=bivrp.upper().fitness();
first=false;
}else if(!file.eof()){
if(bivrp.upper().fitness()>bestscore){
bestscore=bivrp.upper().fitness();
best=bivrp;
}
}
}
pop.push_back(best);
}
/*******
* ALGOL
******/
eoEliteSequentialSelect<biVRP> oneselectL;
eoSelectNumber<biVRP> selectL(oneselectL,10);
eoDeterministicSaDReplacement<biVRP> replaceL(0.5);
double sigma=0.5;
double proba=0.1;
eoNormalMutation<biVRP::L> mmutL(sigma,proba);
eoRealUXover<biVRP::L> xoverMMM;
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoEliteSequentialSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
eoSteadyFitContinue<biVRP> contalgoL(500,500);
PLARandInit initpla(mat);
eoEasyEA<biVRP> algoL(contalgoL,eval, breedalgoL, replaceL);
double eps=0.1;
for (unsigned int i=0;i<pop.size();i++){
eval(pop[i]);
double score=pop[i].lower().fitness();
eoPop<biVRP> mmm;
pop[i].setMode(false);
bool finish=false;
int res=0;
for (int k=0; k<10000 && !finish; k++){
mmm.clear();
mmm.push_back(pop[i]);
mmm.push_back(pop[i]);
mmm.push_back(pop[i]);
mmm.push_back(pop[i]);
algoL(mmm);
double tmp=0;
for (unsigned int j=0; j<mmm.size();j++){
mmm[j].invalidate();
eval(mmm[j]);
if (mmm[j].lower().fitness() > score && fabs(score- mmm[j].lower().fitness())>eps){
if (tmp<score/mmm[j].lower().fitness())
tmp=score/mmm[j].lower().fitness();
}
}
res+=tmp;
}
std::cout<<res<<std::endl;
}
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,167 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of rationality calculator (weighted rationality)
#include <eo>
#include <moeo>
#include <biVRPDistMat.h>
#include <mbiVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoBestExchange.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <biVRPLowEval.h>
#include <mbiVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
#include <beoLowComparator.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un fichier de solution a verifier"<<endl;
return EXIT_SUCCESS;
}
mbiVRPDistMat mat;
string filename(argv[1]);
mat.load(filename);
biVRPUpEval evalU(mat);
mbiVRPLowEval evalL(mat);
eoPop<biVRP> pop;
beoEval<biVRP> eval(evalL,evalU);
VRP2 vrp;
vrp.init(mat);
PLA pla;
pla.init(mat);
moeoParetoObjectiveVectorComparator<biVRP::L::ObjectiveVector> compL;
beoLowComparator<biVRP::ObjectiveVector> comp(compL);
moeoUnboundedArchive<biVRP> arc(comp);
for (int x=2;x<argc;x++){
string filenameSol(argv[x]);
ifstream file(filenameSol.data());
int vouvou=0;
bool first=true;
double bestscore;
biVRP best;
if (file.is_open())
while (!file.eof()){
std::vector<int> vrpvector;
std::vector<double> plavector;
for (int i=0;i<pla.size();i++){
double top;
file>>top;
plavector.push_back(top);
}
for (int i=0;i<vrp.size();i++){
int top;
file>>top;
vrpvector.push_back(top);
}
PLA neopla(plavector,mat);
VRP2 neovrp(vrpvector,mat);
biVRP bivrp(neovrp,neopla);
eval(bivrp);
arc(bivrp);
}
}
/*******
* ALGOL
******/
eoEliteSequentialSelect<biVRP> oneselectL;
eoSelectNumber<biVRP> selectL(oneselectL,10);
eoDeterministicSaDReplacement<biVRP> replaceL(0.5);
double sigma=0.5;
double proba=0.1;
eoNormalMutation<biVRP::L> mmutL(sigma,proba);
eoRealUXover<biVRP::L> xoverMMM;
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoEliteSequentialSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
eoPeriodicContinue<biVRP> contalgoL(500);
PLARandInit initpla(mat);
moeoNSGAII<biVRP> algoL(contalgoL,eval, opL);
double eps=0.1;
int res=0;
for (int k=0; k<100 ; k++){
pop=arc;
algoL(pop);
bool stop=false;
for (int j=0;j<pop.size() && !stop;j++){
for (int l=0;l<arc.size();l++){
if (compL(arc[l].objectiveVector().low(),pop[j].objectiveVector().low())){
res++;
stop=true;
break;
}
}
}
}
std::cout<<res<<std::endl;
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,156 @@
/*
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2010
*
* Legillon Francois
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
* modify and/ or redistribute the software under the terms of the CeCILL
* license as circulated by CEA, CNRS and INRIA at the following URL
* "http://www.cecill.info".
*
* As a counterpart to the access to the source code and rights to copy,
* modify and redistribute granted by the license, users are provided only
* with a limited warranty and the software's author, the holder of the
* economic rights, and the successive licensors have only limited liability.
*
* In this respect, the user's attention is drawn to the risks associated
* with loading, using, modifying and/or developing or reproducing the
* software by the user in light of its specific status of free software,
* that may mean that it is complicated to manipulate, and that also
* therefore means that it is reserved for developers and experienced
* professionals having in-depth computer knowledge. Users are therefore
* encouraged to load and test the software's suitability as regards their
* requirements in conditions enabling the security of their systems and/or
* data to be ensured and, more generally, to use and operate it in the
* same conditions as regards security.
* The fact that you are presently reading this means that you have had
* knowledge of the CeCILL license and that you accept its terms.
*
* ParadisEO WebSite : http://paradiseo.gforge.inria.fr
* Contact: paradiseo-help@lists.gforge.inria.fr
*
*/
//-----------------------------------------------------------------------------
//Implementation of rationality calculator (weighted rationality)
#include <eo>
#include <moeo>
#include <biVRPDistMat.h>
#include <mbiVRPDistMat.h>
#include <VRP2Eval.h>
#include <VRP2.h>
#include <VRP2InitNN.h>
#include <eoSwapMutation.h>
#include <eoOrderXover.h>
#include <eoPop.h>
#include <eoReplacement.h>
#include <eoEasyEA.h>
#include <BEO.h>
#include <PLA.h>
#include <eoStochTournamentSelect.h>
#include <op/biVRPRBX.h>
#include <op/biVRPSBX.h>
#include <op/VRP2Repair.h>
#include <op/beoCoevoUpExchange.h>
#include <op/beoCoevoLowExchange.h>
#include <op/beoBestExchange.h>
#include <eoSurviveAndDie.h>
#include <biVRP.h>
#include <biVRPLowEval.h>
#include <mbiVRPLowEval.h>
#include <biVRPUpEval.h>
#include <beoEval.h>
#include <beoLowQuad.h>
#include <beoUpQuad.h>
#include <beoLowMut.h>
#include <beoInit.h>
#include <PLARandInit.h>
#include <es/eoRealOp.h>
#include <biVRPInit.h>
#include <es/eoNormalMutation.h>
#include <PLAInitResp.h>
#include <beoLowComparator.h>
using namespace std;
int main(int argc, char* argv[])
{
if (argc<3) {
cout<< "donnez un nom d'instance et un fichier de solution a verifier"<<endl;
return EXIT_SUCCESS;
}
mbiVRPDistMat mat;
string filename(argv[1]);
mat.load(filename);
biVRPUpEval evalU(mat);
mbiVRPLowEval evalL(mat);
eoPop<biVRP> pop;
beoEval<biVRP> eval(evalL,evalU);
VRP2 vrp;
vrp.init(mat);
PLA pla;
pla.init(mat);
moeoParetoObjectiveVectorComparator<biVRP::L::ObjectiveVector> compL;
beoLowComparator<biVRP::ObjectiveVector> comp(compL);
moeoUnboundedArchive<biVRP> arc(comp);
for (int x=2;x<argc;x++){
string filenameSol(argv[x]);
ifstream file(filenameSol.data());
int vouvou=0;
bool first=true;
double bestscore;
biVRP best;
if (file.is_open())
while (!file.eof()){
std::vector<int> vrpvector;
std::vector<double> plavector;
for (int i=0;i<vrp.size();i++){
int top;
file>>top;
vrpvector.push_back(top);
}
for (int i=0;i<pla.size();i++){
double top;
file>>top;
plavector.push_back(top);
}
PLA neopla(plavector,mat);
VRP2 neovrp(vrpvector,mat);
biVRP bivrp(neovrp,neopla);
eval(bivrp);
arc(bivrp);
}
}
/*******
* ALGOL
******/
eoEliteSequentialSelect<biVRP> oneselectL;
eoSelectNumber<biVRP> selectL(oneselectL,10);
eoDeterministicSaDReplacement<biVRP> replaceL(0.5);
double sigma=0.5;
double proba=0.1;
eoNormalMutation<biVRP::L> mmutL(sigma,proba);
eoRealUXover<biVRP::L> xoverMMM;
beoLowQuad<biVRP> xoveralgoL(xoverMMM);
beoLowMut<biVRP> mutL(mmutL);
eoMonGenOp<biVRP> genopalgoU1(mutL);
eoEliteSequentialSelect<biVRP> selectalgoL;
eoSequentialOp<biVRP> opL;
eoGeneralBreeder<biVRP> breedalgoL(selectalgoL,opL);
opL.add(mutL,0.5);
opL.add(xoveralgoL,1);
eoPeriodicContinue<biVRP> contalgoL(500);
PLARandInit initpla(mat);
moeoNSGAII<biVRP> algoL(contalgoL,eval, opL);
double eps=0.1;
int res=0;
algoL(arc);
for (int i=0;i<arc.size();i++)
std::cout<<arc[i].objectiveVector().low()<<std::endl;
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,28 @@
#########################################################################################################
# 1) ParadisEO install: SIMPLE Configuration
#########################################################################################################
# Here, just specify PARADISEO_DIR : the directory where ParadisEO has been installed
SET(PARADISEO_DIR "/home/francois/paradiseo_1.3/paradiseo-1.3-beta2/" CACHE PATH "ParadisEO directory" FORCE)
#########################################################################################################
#########################################################################################################
# 2) ParadisEO install: ADVANCED Configuration
#########################################################################################################
SET(PARADISEO_EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE)
SET(PARADISEO_EO_BIN_DIR "${PARADISEO_DIR}/paradiseo-eo/build" CACHE PATH "ParadisEO-EO binary directory" FORCE)
SET(PARADISEO_MO_SRC_DIR "${PARADISEO_DIR}/paradiseo-mo" CACHE PATH "ParadisEO-MO source directory" FORCE)
SET(PARADISEO_MO_BIN_DIR "${PARADISEO_DIR}/paradiseo-mo/build" CACHE PATH "ParadisEO-MO binary directory" FORCE)
SET(PARADISEO_MOEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-moeo" CACHE PATH "ParadisEO-MOEO source directory" FORCE)
SET(PARADISEO_MOEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-moeo/build" CACHE PATH "ParadisEO-MOEO binary directory" FORCE)
SET(PARADISEO_PEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-peo" CACHE PATH "ParadisEO-PEO source directory" FORCE)
SET(PARADISEO_PEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-peo/build" CACHE PATH "ParadisEO-PEO binary directory" FORCE)
#########################################################################################################

View file

@ -0,0 +1,61 @@
8 1 48 4 4
500 200
500 200
500 200
500 200
1 -29.730 64.136 2 12 1 4 1 2 4 8
2 -30.664 5.463 7 8 1 4 1 2 4 8
3 51.642 5.469 21 16 1 4 1 2 4 8
4 -13.171 69.336 24 5 1 4 1 2 4 8
5 -67.413 68.323 1 12 1 4 1 2 4 8
6 48.907 6.274 17 5 1 4 1 2 4 8
7 5.243 22.260 6 13 1 4 1 2 4 8
8 -65.002 77.234 5 20 1 4 1 2 4 8
9 -4.175 -1.569 7 13 1 4 1 2 4 8
10 23.029 11.639 1 18 1 4 1 2 4 8
11 25.482 6.287 4 7 1 4 1 2 4 8
12 -42.615 -26.392 10 6 1 4 1 2 4 8
13 -76.672 99.341 2 9 1 4 1 2 4 8
14 -20.673 57.892 16 9 1 4 1 2 4 8
15 -52.039 6.567 23 4 1 4 1 2 4 8
16 -41.376 50.824 18 25 1 4 1 2 4 8
17 -91.943 27.588 3 5 1 4 1 2 4 8
18 -65.118 30.212 15 17 1 4 1 2 4 8
19 18.597 96.716 13 3 1 4 1 2 4 8
20 -40.942 83.209 10 16 1 4 1 2 4 8
21 -37.756 -33.325 4 25 1 4 1 2 4 8
22 23.767 29.083 23 21 1 4 1 2 4 8
23 -43.030 20.453 20 14 1 4 1 2 4 8
24 -35.297 -24.896 10 19 1 4 1 2 4 8
25 -54.755 14.368 4 14 1 4 1 2 4 8
26 -49.329 33.374 2 6 1 4 1 2 4 8
27 57.404 23.822 23 16 1 4 1 2 4 8
28 -22.754 55.408 6 9 1 4 1 2 4 8
29 -56.622 73.340 8 20 1 4 1 2 4 8
30 -38.562 -3.705 10 13 1 4 1 2 4 8
31 -16.779 19.537 7 10 1 4 1 2 4 8
32 -11.560 11.615 1 16 1 4 1 2 4 8
33 -46.545 97.974 21 19 1 4 1 2 4 8
34 16.229 9.320 6 22 1 4 1 2 4 8
35 1.294 7.349 4 14 1 4 1 2 4 8
36 -26.404 29.529 13 10 1 4 1 2 4 8
37 4.352 14.685 9 11 1 4 1 2 4 8
38 -50.665 -23.126 22 15 1 4 1 2 4 8
39 -22.833 -9.814 22 13 1 4 1 2 4 8
40 -71.100 -18.616 18 15 1 4 1 2 4 8
41 -7.849 32.074 10 8 1 4 1 2 4 8
42 11.877 -24.933 25 22 1 4 1 2 4 8
43 -18.927 -23.730 23 24 1 4 1 2 4 8
44 -11.920 11.755 4 3 1 4 1 2 4 8
45 29.840 11.633 9 25 1 4 1 2 4 8
46 12.268 -55.811 17 19 1 4 1 2 4 8
47 -37.933 -21.613 10 21 1 4 1 2 4 8
48 42.883 -2.966 17 10 1 4 1 2 4 8
49 4.163 13.559 0 0 0 0
50 21.387 17.105 0 0 0 0
51 -36.118 49.097 0 0 0 0
52 -31.201 0.235 0 0 0 0
50 131 51 0 9367 0.779436 2.07504
51 -102 61 0 6093 0.710078 2.66275
52 153 98 0 3781 0.709408 3.0784
53 57 -89 0 8535 0.687987 3.77113

View file

@ -0,0 +1,109 @@
8 2 96 4 4
480 195
480 195
480 195
480 195
1 33.588 30.750 12 4 1 4 1 2 4 8
2 48.828 65.314 1 12 1 4 1 2 4 8
3 86.176 59.344 1 3 1 4 1 2 4 8
4 39.270 -33.057 15 15 1 4 1 2 4 8
5 -23.370 86.853 10 13 1 4 1 2 4 8
6 48.132 95.593 12 20 1 4 1 2 4 8
7 -16.357 93.311 15 21 1 4 1 2 4 8
8 -57.703 -65.601 16 4 1 4 1 2 4 8
9 7.147 32.684 18 25 1 4 1 2 4 8
10 42.950 68.701 9 21 1 4 1 2 4 8
11 37.085 -2.112 5 7 1 4 1 2 4 8
12 77.759 55.817 19 3 1 4 1 2 4 8
13 -17.462 -56.567 11 9 1 4 1 2 4 8
14 58.575 59.888 12 5 1 4 1 2 4 8
15 57.776 15.344 13 20 1 4 1 2 4 8
16 -22.327 36.072 8 21 1 4 1 2 4 8
17 -7.080 30.493 14 19 1 4 1 2 4 8
18 55.658 60.425 9 2 1 4 1 2 4 8
19 -14.307 11.456 2 16 1 4 1 2 4 8
20 -29.724 24.268 25 18 1 4 1 2 4 8
21 43.219 0.739 6 24 1 4 1 2 4 8
22 45.184 35.474 16 24 1 4 1 2 4 8
23 64.484 2.240 18 8 1 4 1 2 4 8
24 55.078 72.241 4 16 1 4 1 2 4 8
25 16.925 15.741 17 19 1 4 1 2 4 8
26 45.038 -3.723 4 12 1 4 1 2 4 8
27 -76.782 5.939 22 9 1 4 1 2 4 8
28 36.169 0.256 12 3 1 4 1 2 4 8
29 29.218 8.936 13 15 1 4 1 2 4 8
30 65.057 5.225 5 4 1 4 1 2 4 8
31 42.175 -22.284 24 24 1 4 1 2 4 8
32 25.574 31.726 12 22 1 4 1 2 4 8
33 31.561 37.262 16 14 1 4 1 2 4 8
34 66.498 -54.169 8 11 1 4 1 2 4 8
35 46.576 -17.938 10 20 1 4 1 2 4 8
36 65.063 40.875 15 5 1 4 1 2 4 8
37 -2.716 24.768 21 11 1 4 1 2 4 8
38 -40.002 3.870 5 12 1 4 1 2 4 8
39 -73.505 57.043 9 7 1 4 1 2 4 8
40 81.146 -25.714 5 1 1 4 1 2 4 8
41 12.006 -7.965 9 23 1 4 1 2 4 8
42 42.761 38.092 20 13 1 4 1 2 4 8
43 3.857 -23.181 14 4 1 4 1 2 4 8
44 -7.367 24.390 24 23 1 4 1 2 4 8
45 35.944 -11.835 23 17 1 4 1 2 4 8
46 52.075 9.692 12 13 1 4 1 2 4 8
47 30.725 30.701 13 9 1 4 1 2 4 8
48 41.223 77.924 19 10 1 4 1 2 4 8
49 68.884 -40.546 21 22 1 4 1 2 4 8
50 76.312 86.670 5 21 1 4 1 2 4 8
51 63.934 78.540 9 13 1 4 1 2 4 8
52 29.150 -9.961 23 25 1 4 1 2 4 8
53 85.522 39.954 8 8 1 4 1 2 4 8
54 31.775 3.870 5 20 1 4 1 2 4 8
55 -20.544 19.086 8 3 1 4 1 2 4 8
56 55.353 43.817 10 4 1 4 1 2 4 8
57 35.406 10.278 9 13 1 4 1 2 4 8
58 25.464 -0.287 21 18 1 4 1 2 4 8
59 12.396 0.244 12 1 1 4 1 2 4 8
60 18.359 20.917 8 10 1 4 1 2 4 8
61 27.960 -15.039 4 16 1 4 1 2 4 8
62 -3.192 19.879 14 9 1 4 1 2 4 8
63 9.332 -41.351 19 13 1 4 1 2 4 8
64 -20.581 38.177 23 23 1 4 1 2 4 8
65 27.820 28.729 4 14 1 4 1 2 4 8
66 59.027 42.310 9 5 1 4 1 2 4 8
67 56.311 58.734 1 1 1 4 1 2 4 8
68 -51.654 -0.342 21 6 1 4 1 2 4 8
69 2.576 32.721 20 20 1 4 1 2 4 8
70 15.131 -3.046 24 10 1 4 1 2 4 8
71 66.595 34.937 22 19 1 4 1 2 4 8
72 19.476 20.142 25 24 1 4 1 2 4 8
73 -1.172 20.648 19 3 1 4 1 2 4 8
74 -21.204 13.660 14 5 1 4 1 2 4 8
75 98.846 1.257 11 13 1 4 1 2 4 8
76 82.593 72.003 22 5 1 4 1 2 4 8
77 30.017 -30.896 25 4 1 4 1 2 4 8
78 33.228 41.663 5 12 1 4 1 2 4 8
79 39.490 -8.539 10 11 1 4 1 2 4 8
80 54.498 70.813 4 20 1 4 1 2 4 8
81 3.058 10.248 4 13 1 4 1 2 4 8
82 51.831 -16.870 6 1 1 4 1 2 4 8
83 76.416 11.346 22 3 1 4 1 2 4 8
84 5.243 0.238 17 2 1 4 1 2 4 8
85 50.592 34.247 22 23 1 4 1 2 4 8
86 -5.231 -2.081 3 8 1 4 1 2 4 8
87 24.194 25.836 25 25 1 4 1 2 4 8
88 33.630 37.585 22 18 1 4 1 2 4 8
89 31.445 -7.001 23 4 1 4 1 2 4 8
90 30.707 -28.168 16 5 1 4 1 2 4 8
91 49.860 1.038 13 21 1 4 1 2 4 8
92 -35.767 14.142 23 23 1 4 1 2 4 8
93 -29.309 4.889 1 19 1 4 1 2 4 8
94 19.049 41.974 11 2 1 4 1 2 4 8
95 27.600 13.934 19 21 1 4 1 2 4 8
96 52.832 50.684 21 10 1 4 1 2 4 8
97 6.229 10.590 0 0 0 0
98 32.663 44.730 0 0 0 0
99 48.807 48.792 0 0 0 0
100 33.179 -4.968 0 0 0 0
99 -95 1 0 1435 0.967877 3.26867
100 62 -102 0 2218 0.981788 4.06512
101 157 -93 0 1830 0.741686 4.39922
102 71 132 0 1615 0.580842 2.47597

View file

@ -0,0 +1,157 @@
8 3 144 4 4
460 190
460 190
460 190
460 190
1 -55.280 -24.371 25 9 1 4 1 2 4 8
2 -48.297 53.314 13 22 1 4 1 2 4 8
3 -49.072 -38.489 20 10 1 4 1 2 4 8
4 25.311 -18.561 16 24 1 4 1 2 4 8
5 -24.469 -3.815 4 25 1 4 1 2 4 8
6 24.591 -17.896 2 6 1 4 1 2 4 8
7 -10.419 60.364 7 22 1 4 1 2 4 8
8 38.177 -35.175 15 1 1 4 1 2 4 8
9 -68.280 93.073 10 19 1 4 1 2 4 8
10 -30.792 -57.336 4 19 1 4 1 2 4 8
11 -37.061 -12.122 19 5 1 4 1 2 4 8
12 -15.741 -47.638 10 9 1 4 1 2 4 8
13 -63.379 -22.919 15 8 1 4 1 2 4 8
14 -43.109 -43.439 4 14 1 4 1 2 4 8
15 -25.623 13.599 17 4 1 4 1 2 4 8
16 -2.625 16.632 4 7 1 4 1 2 4 8
17 -41.577 -28.497 3 10 1 4 1 2 4 8
18 2.081 12.885 9 22 1 4 1 2 4 8
19 3.925 -47.845 25 17 1 4 1 2 4 8
20 -83.295 26.324 14 10 1 4 1 2 4 8
21 -6.458 26.355 23 8 1 4 1 2 4 8
22 3.290 6.732 7 14 1 4 1 2 4 8
23 -34.869 30.426 7 12 1 4 1 2 4 8
24 15.546 -36.273 1 17 1 4 1 2 4 8
25 12.842 5.127 10 19 1 4 1 2 4 8
26 -48.450 -24.426 15 25 1 4 1 2 4 8
27 -88.538 -10.461 1 25 1 4 1 2 4 8
28 -29.773 0.995 2 6 1 4 1 2 4 8
29 9.827 38.416 9 21 1 4 1 2 4 8
30 1.410 92.938 10 3 1 4 1 2 4 8
31 -79.303 15.381 2 19 1 4 1 2 4 8
32 -30.652 40.063 23 16 1 4 1 2 4 8
33 18.927 21.637 15 21 1 4 1 2 4 8
34 45.087 -59.906 13 17 1 4 1 2 4 8
35 -34.949 -3.815 16 19 1 4 1 2 4 8
36 81.201 -74.744 21 6 1 4 1 2 4 8
37 15.594 -28.455 1 10 1 4 1 2 4 8
38 -72.192 29.547 18 22 1 4 1 2 4 8
39 -42.914 -22.675 17 17 1 4 1 2 4 8
40 -76.392 -57.489 13 16 1 4 1 2 4 8
41 -28.540 12.073 5 5 1 4 1 2 4 8
42 -61.389 26.526 23 1 1 4 1 2 4 8
43 -8.472 12.616 20 21 1 4 1 2 4 8
44 -61.475 33.392 1 20 1 4 1 2 4 8
45 -34.674 -27.588 2 6 1 4 1 2 4 8
46 10.315 -12.518 15 1 1 4 1 2 4 8
47 -83.014 77.002 20 11 1 4 1 2 4 8
48 -40.417 49.988 9 22 1 4 1 2 4 8
49 83.832 33.905 13 25 1 4 1 2 4 8
50 -20.563 -75.830 4 18 1 4 1 2 4 8
51 15.442 -18.719 15 9 1 4 1 2 4 8
52 -59.937 -65.802 5 23 1 4 1 2 4 8
53 5.151 47.815 8 17 1 4 1 2 4 8
54 46.008 14.990 19 4 1 4 1 2 4 8
55 82.977 -1.660 16 1 1 4 1 2 4 8
56 39.893 -38.916 11 14 1 4 1 2 4 8
57 90.839 -83.539 23 11 1 4 1 2 4 8
58 7.068 0.067 14 7 1 4 1 2 4 8
59 18.958 40.088 24 21 1 4 1 2 4 8
60 -80.487 58.209 5 3 1 4 1 2 4 8
61 64.459 -62.946 5 18 1 4 1 2 4 8
62 -43.616 -26.117 23 5 1 4 1 2 4 8
63 -18.408 10.303 3 6 1 4 1 2 4 8
64 -43.921 63.251 10 22 1 4 1 2 4 8
65 11.353 26.221 23 13 1 4 1 2 4 8
66 -6.995 38.239 23 17 1 4 1 2 4 8
67 74.084 -34.216 20 5 1 4 1 2 4 8
68 14.301 -0.800 5 7 1 4 1 2 4 8
69 -94.141 -48.779 14 1 1 4 1 2 4 8
70 15.332 -42.169 1 3 1 4 1 2 4 8
71 -46.637 -16.461 10 10 1 4 1 2 4 8
72 -0.958 -81.000 3 5 1 4 1 2 4 8
73 -37.445 -42.505 4 1 1 4 1 2 4 8
74 -3.680 -69.073 23 17 1 4 1 2 4 8
75 34.894 -20.898 21 14 1 4 1 2 4 8
76 45.544 51.410 3 4 1 4 1 2 4 8
77 -31.927 88.239 21 10 1 4 1 2 4 8
78 -13.580 -26.959 25 25 1 4 1 2 4 8
79 12.653 -48.340 5 11 1 4 1 2 4 8
80 -46.179 -38.269 11 16 1 4 1 2 4 8
81 -29.620 35.083 10 25 1 4 1 2 4 8
82 13.696 43.988 5 20 1 4 1 2 4 8
83 38.342 -46.338 3 3 1 4 1 2 4 8
84 -26.227 24.506 13 7 1 4 1 2 4 8
85 90.009 -43.640 19 2 1 4 1 2 4 8
86 -6.995 22.522 13 6 1 4 1 2 4 8
87 -29.993 -28.851 8 14 1 4 1 2 4 8
88 -56.268 -64.740 13 14 1 4 1 2 4 8
89 -87.415 90.796 15 2 1 4 1 2 4 8
90 -5.762 54.034 10 15 1 4 1 2 4 8
91 -34.845 -27.185 4 22 1 4 1 2 4 8
92 -16.479 16.180 23 4 1 4 1 2 4 8
93 23.712 29.492 23 22 1 4 1 2 4 8
94 -40.991 46.594 14 19 1 4 1 2 4 8
95 -53.516 -21.619 20 5 1 4 1 2 4 8
96 -17.560 37.494 3 10 1 4 1 2 4 8
97 -37.311 56.836 5 4 1 4 1 2 4 8
98 71.515 22.510 16 7 1 4 1 2 4 8
99 -41.864 27.710 21 11 1 4 1 2 4 8
100 14.819 -82.117 4 14 1 4 1 2 4 8
101 30.316 -55.322 2 2 1 4 1 2 4 8
102 -39.172 47.998 11 12 1 4 1 2 4 8
103 -94.415 15.192 15 12 1 4 1 2 4 8
104 -7.806 11.273 16 24 1 4 1 2 4 8
105 28.571 -49.908 3 8 1 4 1 2 4 8
106 -20.654 24.554 21 4 1 4 1 2 4 8
107 -30.963 -18.903 21 25 1 4 1 2 4 8
108 1.721 -20.447 25 6 1 4 1 2 4 8
109 -31.012 -21.106 12 9 1 4 1 2 4 8
110 -85.718 -28.015 21 23 1 4 1 2 4 8
111 58.826 -63.043 6 15 1 4 1 2 4 8
112 -15.753 -52.686 2 7 1 4 1 2 4 8
113 -71.661 51.184 24 6 1 4 1 2 4 8
114 -92.633 -6.598 21 5 1 4 1 2 4 8
115 33.508 -49.255 24 12 1 4 1 2 4 8
116 59.314 54.095 11 3 1 4 1 2 4 8
117 30.737 -28.436 12 22 1 4 1 2 4 8
118 -55.896 18.457 22 18 1 4 1 2 4 8
119 -89.960 -39.532 19 16 1 4 1 2 4 8
120 36.438 20.819 8 5 1 4 1 2 4 8
121 -53.674 -56.427 9 1 1 4 1 2 4 8
122 -31.866 32.538 10 8 1 4 1 2 4 8
123 5.658 12.756 5 20 1 4 1 2 4 8
124 -52.905 42.804 14 17 1 4 1 2 4 8
125 47.131 -45.465 7 11 1 4 1 2 4 8
126 30.792 9.869 5 8 1 4 1 2 4 8
127 -45.209 -56.293 22 15 1 4 1 2 4 8
128 10.919 13.306 5 16 1 4 1 2 4 8
129 -32.990 -34.003 1 6 1 4 1 2 4 8
130 -40.869 30.579 9 24 1 4 1 2 4 8
131 -69.348 80.408 16 10 1 4 1 2 4 8
132 -58.966 -29.541 14 4 1 4 1 2 4 8
133 -36.847 -33.710 21 10 1 4 1 2 4 8
134 -21.820 65.369 8 17 1 4 1 2 4 8
135 22.980 -41.010 7 5 1 4 1 2 4 8
136 -77.557 59.814 24 14 1 4 1 2 4 8
137 -47.205 67.725 24 16 1 4 1 2 4 8
138 -21.606 35.168 16 11 1 4 1 2 4 8
139 -55.676 -31.384 4 25 1 4 1 2 4 8
140 -85.229 88.788 7 4 1 4 1 2 4 8
141 -3.918 -63.525 13 12 1 4 1 2 4 8
142 -58.557 59.375 25 19 1 4 1 2 4 8
143 -24.542 14.935 10 6 1 4 1 2 4 8
144 -48.779 16.968 24 23 1 4 1 2 4 8
145 -40.082 -24.780 0 0 0 0
146 24.292 -27.704 0 0 0 0
147 -45.877 41.092 0 0 0 0
148 -11.896 15.875 0 0 0 0
148 116 -69 0 2135 0.605564 4.59546
149 -44 93 0 1342 0.613288 2.36129
150 -173 22 0 2372 0.971887 4.88098
151 -67 -197 0 1187 0.819878 3.52948

View file

@ -0,0 +1,205 @@
8 4 192 4 4
440 185
440 185
440 185
440 185
1 -44.629 -55.640 6 11 1 4 1 2 4 8
2 36.096 64.935 16 11 1 4 1 2 4 8
3 -25.470 44.580 7 23 1 4 1 2 4 8
4 -33.954 -73.059 20 16 1 4 1 2 4 8
5 45.654 35.730 7 16 1 4 1 2 4 8
6 14.954 -36.719 8 2 1 4 1 2 4 8
7 -1.477 47.205 4 1 1 4 1 2 4 8
8 2.155 -40.912 23 25 1 4 1 2 4 8
9 22.992 1.398 4 24 1 4 1 2 4 8
10 -28.857 5.957 5 14 1 4 1 2 4 8
11 -48.120 94.116 15 6 1 4 1 2 4 8
12 7.239 17.322 12 20 1 4 1 2 4 8
13 4.614 27.051 12 10 1 4 1 2 4 8
14 -13.971 28.198 18 11 1 4 1 2 4 8
15 12.946 -11.688 19 2 1 4 1 2 4 8
16 -36.670 23.102 17 22 1 4 1 2 4 8
17 -4.224 -49.310 2 2 1 4 1 2 4 8
18 1.093 -7.135 15 12 1 4 1 2 4 8
19 -56.958 27.905 10 9 1 4 1 2 4 8
20 -80.994 -77.686 3 21 1 4 1 2 4 8
21 72.260 59.027 24 10 1 4 1 2 4 8
22 -21.655 1.636 1 13 1 4 1 2 4 8
23 -20.154 -62.415 22 25 1 4 1 2 4 8
24 -48.157 6.287 22 9 1 4 1 2 4 8
25 -5.078 61.597 17 19 1 4 1 2 4 8
26 17.145 -47.046 7 22 1 4 1 2 4 8
27 -16.064 8.557 11 4 1 4 1 2 4 8
28 6.683 -27.069 4 4 1 4 1 2 4 8
29 15.027 -34.979 15 7 1 4 1 2 4 8
30 37.946 73.914 15 20 1 4 1 2 4 8
31 -41.199 -43.018 9 17 1 4 1 2 4 8
32 32.538 11.786 15 19 1 4 1 2 4 8
33 -20.306 -20.239 1 12 1 4 1 2 4 8
34 -35.480 19.135 13 2 1 4 1 2 4 8
35 58.038 56.659 17 13 1 4 1 2 4 8
36 -36.694 -6.256 17 24 1 4 1 2 4 8
37 0.446 -46.735 25 22 1 4 1 2 4 8
38 -19.690 38.977 5 17 1 4 1 2 4 8
39 -47.339 20.911 25 19 1 4 1 2 4 8
40 -79.236 -57.678 2 4 1 4 1 2 4 8
41 5.597 -34.076 9 12 1 4 1 2 4 8
42 34.454 -8.289 7 22 1 4 1 2 4 8
43 18.500 -51.154 5 2 1 4 1 2 4 8
44 -4.346 -44.525 3 19 1 4 1 2 4 8
45 -14.148 -74.164 17 3 1 4 1 2 4 8
46 19.867 77.515 12 5 1 4 1 2 4 8
47 -50.079 17.871 21 22 1 4 1 2 4 8
48 42.786 -79.883 18 6 1 4 1 2 4 8
49 1.520 -29.034 8 9 1 4 1 2 4 8
50 14.728 -3.436 14 8 1 4 1 2 4 8
51 -26.166 -48.999 22 24 1 4 1 2 4 8
52 -63.873 -5.273 16 15 1 4 1 2 4 8
53 -54.138 7.086 21 16 1 4 1 2 4 8
54 17.932 -34.094 7 9 1 4 1 2 4 8
55 -98.706 34.552 12 1 1 4 1 2 4 8
56 28.802 -8.582 2 18 1 4 1 2 4 8
57 2.716 90.594 5 17 1 4 1 2 4 8
58 -31.024 48.938 3 18 1 4 1 2 4 8
59 -46.545 42.316 11 2 1 4 1 2 4 8
60 27.289 58.179 2 25 1 4 1 2 4 8
61 28.815 -28.027 7 21 1 4 1 2 4 8
62 -26.099 11.328 20 19 1 4 1 2 4 8
63 0.537 -26.221 7 10 1 4 1 2 4 8
64 -50.458 7.812 11 2 1 4 1 2 4 8
65 30.005 19.092 24 21 1 4 1 2 4 8
66 -12.604 22.058 15 20 1 4 1 2 4 8
67 22.009 -8.636 5 21 1 4 1 2 4 8
68 8.942 2.875 25 2 1 4 1 2 4 8
69 -19.812 0.922 12 6 1 4 1 2 4 8
70 -4.230 31.250 22 2 1 4 1 2 4 8
71 17.975 -0.409 11 12 1 4 1 2 4 8
72 -2.350 42.938 16 12 1 4 1 2 4 8
73 -16.516 68.085 10 5 1 4 1 2 4 8
74 -1.190 42.023 3 5 1 4 1 2 4 8
75 56.635 -44.019 10 8 1 4 1 2 4 8
76 57.483 35.504 17 15 1 4 1 2 4 8
77 -26.099 7.477 2 8 1 4 1 2 4 8
78 7.489 -57.239 21 7 1 4 1 2 4 8
79 -22.095 55.780 16 14 1 4 1 2 4 8
80 19.867 38.824 6 18 1 4 1 2 4 8
81 5.310 49.219 12 17 1 4 1 2 4 8
82 15.155 6.299 23 5 1 4 1 2 4 8
83 5.481 -31.500 23 6 1 4 1 2 4 8
84 7.959 -28.662 18 9 1 4 1 2 4 8
85 -75.812 4.010 18 24 1 4 1 2 4 8
86 -43.671 -61.646 14 13 1 4 1 2 4 8
87 -2.576 -62.140 2 5 1 4 1 2 4 8
88 -18.842 -36.884 11 4 1 4 1 2 4 8
89 20.844 21.167 24 22 1 4 1 2 4 8
90 3.137 -19.220 14 24 1 4 1 2 4 8
91 -20.361 18.878 3 25 1 4 1 2 4 8
92 -0.897 -54.938 21 9 1 4 1 2 4 8
93 -29.553 9.277 8 8 1 4 1 2 4 8
94 5.048 -35.046 19 8 1 4 1 2 4 8
95 27.759 48.712 7 25 1 4 1 2 4 8
96 12.079 -42.346 19 7 1 4 1 2 4 8
97 -51.270 41.144 23 24 1 4 1 2 4 8
98 -29.077 4.291 8 16 1 4 1 2 4 8
99 -18.555 -14.819 18 15 1 4 1 2 4 8
100 7.855 -49.451 7 7 1 4 1 2 4 8
101 -19.116 -32.086 1 17 1 4 1 2 4 8
102 17.651 -52.271 9 9 1 4 1 2 4 8
103 16.907 -62.964 5 14 1 4 1 2 4 8
104 18.988 6.219 23 20 1 4 1 2 4 8
105 -68.878 -64.539 18 6 1 4 1 2 4 8
106 -13.361 20.264 5 17 1 4 1 2 4 8
107 -44.440 63.721 17 23 1 4 1 2 4 8
108 -6.500 71.436 9 14 1 4 1 2 4 8
109 -51.978 25.409 19 19 1 4 1 2 4 8
110 -0.739 59.491 20 21 1 4 1 2 4 8
111 -64.679 83.038 1 6 1 4 1 2 4 8
112 -11.273 -35.944 18 1 1 4 1 2 4 8
113 -16.864 7.776 15 22 1 4 1 2 4 8
114 19.843 -49.805 10 7 1 4 1 2 4 8
115 -16.284 -2.936 8 14 1 4 1 2 4 8
116 8.356 67.041 14 7 1 4 1 2 4 8
117 30.878 24.316 15 25 1 4 1 2 4 8
118 93.524 -20.233 17 17 1 4 1 2 4 8
119 -9.332 -56.177 9 10 1 4 1 2 4 8
120 -34.442 -63.312 13 23 1 4 1 2 4 8
121 20.941 -5.646 18 22 1 4 1 2 4 8
122 -3.418 89.594 20 3 1 4 1 2 4 8
123 -18.738 45.227 8 14 1 4 1 2 4 8
124 2.435 -30.524 2 14 1 4 1 2 4 8
125 -28.864 56.616 7 2 1 4 1 2 4 8
126 76.880 -29.901 6 2 1 4 1 2 4 8
127 -90.466 10.278 12 21 1 4 1 2 4 8
128 -35.101 46.545 12 10 1 4 1 2 4 8
129 -48.395 43.854 25 10 1 4 1 2 4 8
130 -40.997 26.703 6 5 1 4 1 2 4 8
131 13.696 34.607 5 9 1 4 1 2 4 8
132 -71.472 11.450 20 15 1 4 1 2 4 8
133 -36.230 51.904 2 19 1 4 1 2 4 8
134 -39.465 4.907 25 7 1 4 1 2 4 8
135 -16.565 23.773 7 11 1 4 1 2 4 8
136 10.754 -28.552 6 2 1 4 1 2 4 8
137 -23.029 47.015 21 25 1 4 1 2 4 8
138 -8.807 21.216 19 14 1 4 1 2 4 8
139 -40.039 27.435 22 15 1 4 1 2 4 8
140 -37.445 -41.040 8 12 1 4 1 2 4 8
141 48.224 0.085 19 11 1 4 1 2 4 8
142 -0.323 68.237 6 17 1 4 1 2 4 8
143 -14.294 -33.423 24 4 1 4 1 2 4 8
144 -1.440 -34.814 15 24 1 4 1 2 4 8
145 -34.454 42.346 25 8 1 4 1 2 4 8
146 8.679 -66.180 6 20 1 4 1 2 4 8
147 -61.249 -51.367 21 12 1 4 1 2 4 8
148 -1.093 9.912 4 10 1 4 1 2 4 8
149 -16.565 66.547 10 12 1 4 1 2 4 8
150 8.435 52.838 16 9 1 4 1 2 4 8
151 -22.034 -36.896 12 16 1 4 1 2 4 8
152 15.765 17.322 13 23 1 4 1 2 4 8
153 9.003 -18.695 2 15 1 4 1 2 4 8
154 -4.584 3.491 3 10 1 4 1 2 4 8
155 8.875 40.662 10 21 1 4 1 2 4 8
156 26.093 -33.966 18 2 1 4 1 2 4 8
157 -32.501 39.526 18 16 1 4 1 2 4 8
158 -32.629 -82.581 11 15 1 4 1 2 4 8
159 -98.486 22.021 7 11 1 4 1 2 4 8
160 -59.052 4.163 18 11 1 4 1 2 4 8
161 7.428 -2.570 15 17 1 4 1 2 4 8
162 -59.601 12.469 5 3 1 4 1 2 4 8
163 -11.224 -31.830 20 9 1 4 1 2 4 8
164 -16.809 -35.040 9 1 1 4 1 2 4 8
165 21.863 18.140 22 13 1 4 1 2 4 8
166 45.038 -61.316 13 1 1 4 1 2 4 8
167 -48.816 25.568 24 2 1 4 1 2 4 8
168 -32.184 -16.736 4 22 1 4 1 2 4 8
169 12.439 -41.492 16 10 1 4 1 2 4 8
170 -21.082 -77.075 16 4 1 4 1 2 4 8
171 -17.822 -18.518 14 9 1 4 1 2 4 8
172 48.334 93.518 14 11 1 4 1 2 4 8
173 -18.677 49.005 25 3 1 4 1 2 4 8
174 12.140 30.042 23 19 1 4 1 2 4 8
175 3.113 -40.302 23 19 1 4 1 2 4 8
176 17.133 37.079 4 4 1 4 1 2 4 8
177 22.577 0.836 17 19 1 4 1 2 4 8
178 -30.426 52.942 12 15 1 4 1 2 4 8
179 33.765 -67.108 11 21 1 4 1 2 4 8
180 5.414 1.532 24 25 1 4 1 2 4 8
181 72.156 30.103 22 4 1 4 1 2 4 8
182 -24.109 -34.625 10 3 1 4 1 2 4 8
183 17.413 75.146 10 6 1 4 1 2 4 8
184 10.638 -60.052 10 6 1 4 1 2 4 8
185 -5.176 -48.999 5 21 1 4 1 2 4 8
186 -19.342 21.118 13 25 1 4 1 2 4 8
187 -46.802 -14.661 18 10 1 4 1 2 4 8
188 -16.779 43.439 25 25 1 4 1 2 4 8
189 14.093 -13.605 12 19 1 4 1 2 4 8
190 -21.063 26.019 18 19 1 4 1 2 4 8
191 39.813 -40.668 9 22 1 4 1 2 4 8
192 52.057 30.334 23 5 1 4 1 2 4 8
193 -0.140 7.266 0 0 0 0
194 -23.138 48.450 0 0 0 0
195 -26.102 16.809 0 0 0 0
196 0.244 -35.892 0 0 0 0
197 -73 64 0 3782 0.570852 2.56079
198 23 168 0 2764 0.568013 4.74148
199 -79 -161 0 1358 0.549619 2.13502
200 -149 -90 0 3328 0.914861 4.19549

View file

@ -0,0 +1,253 @@
8 5 240 4 4
420 180
420 180
420 180
420 180
1 65.991 -49.829 20 10 1 4 1 2 4 8
2 -36.938 -36.743 20 25 1 4 1 2 4 8
3 -2.734 18.774 13 18 1 4 1 2 4 8
4 31.116 -35.907 13 16 1 4 1 2 4 8
5 2.789 8.008 17 14 1 4 1 2 4 8
6 31.152 43.665 24 7 1 4 1 2 4 8
7 -36.304 -21.307 15 9 1 4 1 2 4 8
8 52.814 35.046 12 16 1 4 1 2 4 8
9 11.267 20.660 20 24 1 4 1 2 4 8
10 -0.623 23.114 20 6 1 4 1 2 4 8
11 43.091 -12.360 3 22 1 4 1 2 4 8
12 6.854 19.073 8 11 1 4 1 2 4 8
13 -6.848 25.317 16 19 1 4 1 2 4 8
14 -27.930 -23.712 20 20 1 4 1 2 4 8
15 33.240 -30.487 21 20 1 4 1 2 4 8
16 63.885 -52.881 23 16 1 4 1 2 4 8
17 -13.672 -43.945 21 5 1 4 1 2 4 8
18 -0.647 -27.502 3 21 1 4 1 2 4 8
19 59.406 -49.261 19 19 1 4 1 2 4 8
20 27.167 -5.713 20 18 1 4 1 2 4 8
21 70.001 -20.844 7 22 1 4 1 2 4 8
22 35.327 -65.167 14 19 1 4 1 2 4 8
23 -14.386 -42.236 24 15 1 4 1 2 4 8
24 19.366 30.273 3 24 1 4 1 2 4 8
25 -39.789 10.101 13 20 1 4 1 2 4 8
26 -15.753 -40.204 1 17 1 4 1 2 4 8
27 -28.418 -40.503 5 20 1 4 1 2 4 8
28 27.081 9.735 2 12 1 4 1 2 4 8
29 22.205 -9.216 9 23 1 4 1 2 4 8
30 -0.830 -6.525 18 15 1 4 1 2 4 8
31 10.217 75.531 5 19 1 4 1 2 4 8
32 7.446 18.500 12 23 1 4 1 2 4 8
33 48.914 -20.294 11 9 1 4 1 2 4 8
34 -18.958 -29.675 17 21 1 4 1 2 4 8
35 16.815 -6.659 21 17 1 4 1 2 4 8
36 2.509 -30.420 5 6 1 4 1 2 4 8
37 15.424 4.913 5 10 1 4 1 2 4 8
38 60.315 89.801 7 9 1 4 1 2 4 8
39 40.405 -45.367 24 19 1 4 1 2 4 8
40 -26.837 -54.272 1 17 1 4 1 2 4 8
41 69.171 72.577 12 22 1 4 1 2 4 8
42 -22.815 46.173 6 8 1 4 1 2 4 8
43 -14.258 -30.249 5 25 1 4 1 2 4 8
44 76.050 12.073 19 13 1 4 1 2 4 8
45 63.043 60.022 23 1 1 4 1 2 4 8
46 -20.239 -81.970 8 15 1 4 1 2 4 8
47 -41.168 -42.023 1 16 1 4 1 2 4 8
48 79.199 -29.016 20 20 1 4 1 2 4 8
49 -20.728 -7.068 16 14 1 4 1 2 4 8
50 -4.163 -53.497 8 2 1 4 1 2 4 8
51 39.594 -40.460 16 5 1 4 1 2 4 8
52 -47.125 -77.850 25 16 1 4 1 2 4 8
53 -1.233 49.182 5 12 1 4 1 2 4 8
54 -0.372 -27.264 10 1 1 4 1 2 4 8
55 31.537 -8.722 24 15 1 4 1 2 4 8
56 -0.134 -20.264 16 5 1 4 1 2 4 8
57 66.394 -26.691 7 9 1 4 1 2 4 8
58 6.104 -64.093 14 8 1 4 1 2 4 8
59 13.544 -20.874 11 2 1 4 1 2 4 8
60 54.211 -6.537 15 10 1 4 1 2 4 8
61 22.046 -34.137 23 25 1 4 1 2 4 8
62 -9.723 4.706 5 24 1 4 1 2 4 8
63 -11.584 -46.857 16 7 1 4 1 2 4 8
64 -2.905 -0.305 13 14 1 4 1 2 4 8
65 13.837 -44.452 18 3 1 4 1 2 4 8
66 17.480 27.747 14 23 1 4 1 2 4 8
67 2.972 -43.689 3 21 1 4 1 2 4 8
68 -44.354 -38.202 22 13 1 4 1 2 4 8
69 -59.399 1.514 16 15 1 4 1 2 4 8
70 -13.452 -75.531 16 14 1 4 1 2 4 8
71 -5.518 -51.947 2 7 1 4 1 2 4 8
72 -9.589 -26.880 19 20 1 4 1 2 4 8
73 19.318 29.498 23 6 1 4 1 2 4 8
74 26.245 36.743 6 24 1 4 1 2 4 8
75 43.707 -28.033 11 17 1 4 1 2 4 8
76 -52.026 -35.339 19 3 1 4 1 2 4 8
77 -8.435 -0.116 3 15 1 4 1 2 4 8
78 89.111 62.122 14 6 1 4 1 2 4 8
79 6.067 -16.132 14 21 1 4 1 2 4 8
80 27.094 -5.103 19 25 1 4 1 2 4 8
81 27.527 -15.344 3 18 1 4 1 2 4 8
82 42.511 32.056 18 1 1 4 1 2 4 8
83 25.311 12.689 24 19 1 4 1 2 4 8
84 47.778 -12.769 6 17 1 4 1 2 4 8
85 -3.143 -13.837 1 20 1 4 1 2 4 8
86 12.482 -78.101 3 1 1 4 1 2 4 8
87 -21.039 -3.430 15 13 1 4 1 2 4 8
88 -3.149 -55.432 18 25 1 4 1 2 4 8
89 53.009 84.900 5 16 1 4 1 2 4 8
90 35.638 -47.552 23 5 1 4 1 2 4 8
91 43.427 -18.439 10 18 1 4 1 2 4 8
92 6.598 -54.578 20 17 1 4 1 2 4 8
93 87.952 94.012 11 15 1 4 1 2 4 8
94 39.105 -48.743 16 13 1 4 1 2 4 8
95 -48.340 -26.477 15 15 1 4 1 2 4 8
96 72.003 -9.253 19 2 1 4 1 2 4 8
97 -37.732 3.351 4 1 1 4 1 2 4 8
98 -65.967 -36.749 14 9 1 4 1 2 4 8
99 -16.669 -35.284 23 16 1 4 1 2 4 8
100 10.742 -4.669 11 6 1 4 1 2 4 8
101 15.594 -5.817 21 18 1 4 1 2 4 8
102 21.606 -18.109 14 24 1 4 1 2 4 8
103 9.784 49.280 16 24 1 4 1 2 4 8
104 94.147 -4.492 25 9 1 4 1 2 4 8
105 10.382 -16.302 17 19 1 4 1 2 4 8
106 -1.453 -0.861 16 12 1 4 1 2 4 8
107 -6.219 25.305 13 22 1 4 1 2 4 8
108 -6.250 10.217 23 13 1 4 1 2 4 8
109 -17.444 -70.795 10 20 1 4 1 2 4 8
110 -55.090 -43.854 2 25 1 4 1 2 4 8
111 -9.442 23.724 15 1 1 4 1 2 4 8
112 8.978 35.406 14 24 1 4 1 2 4 8
113 -16.754 -0.812 22 10 1 4 1 2 4 8
114 66.852 -37.842 15 22 1 4 1 2 4 8
115 14.716 -23.724 16 14 1 4 1 2 4 8
116 33.472 20.026 12 12 1 4 1 2 4 8
117 66.394 -70.111 14 23 1 4 1 2 4 8
118 -5.664 8.881 15 14 1 4 1 2 4 8
119 -5.103 -46.729 11 23 1 4 1 2 4 8
120 -8.826 55.743 11 25 1 4 1 2 4 8
121 5.847 -3.186 4 5 1 4 1 2 4 8
122 -25.726 -37.695 23 7 1 4 1 2 4 8
123 -15.363 -24.548 13 25 1 4 1 2 4 8
124 43.793 -11.102 22 11 1 4 1 2 4 8
125 17.664 -25.604 17 18 1 4 1 2 4 8
126 -39.624 54.883 2 18 1 4 1 2 4 8
127 -24.554 -43.225 5 1 1 4 1 2 4 8
128 -26.892 -12.738 14 7 1 4 1 2 4 8
129 34.155 -38.458 1 22 1 4 1 2 4 8
130 -47.314 -29.468 13 7 1 4 1 2 4 8
131 49.365 -25.592 8 3 1 4 1 2 4 8
132 3.705 -16.449 24 18 1 4 1 2 4 8
133 22.430 -23.273 12 8 1 4 1 2 4 8
134 -37.549 -29.608 23 6 1 4 1 2 4 8
135 25.549 3.674 1 7 1 4 1 2 4 8
136 -15.216 3.284 2 20 1 4 1 2 4 8
137 -12.939 -7.495 8 10 1 4 1 2 4 8
138 -22.107 26.434 18 2 1 4 1 2 4 8
139 -17.944 7.733 14 3 1 4 1 2 4 8
140 -21.234 14.490 23 10 1 4 1 2 4 8
141 3.503 -19.708 14 5 1 4 1 2 4 8
142 32.599 -14.935 4 25 1 4 1 2 4 8
143 -5.737 -28.296 24 23 1 4 1 2 4 8
144 -6.128 -39.624 9 21 1 4 1 2 4 8
145 -2.460 12.817 15 13 1 4 1 2 4 8
146 -6.470 8.466 10 1 1 4 1 2 4 8
147 -37.891 -36.115 3 11 1 4 1 2 4 8
148 10.852 -18.750 12 6 1 4 1 2 4 8
149 50.104 8.636 6 9 1 4 1 2 4 8
150 46.844 4.712 1 17 1 4 1 2 4 8
151 19.598 -10.406 24 13 1 4 1 2 4 8
152 -38.947 52.942 3 23 1 4 1 2 4 8
153 -0.641 -21.289 4 19 1 4 1 2 4 8
154 40.906 -33.765 7 11 1 4 1 2 4 8
155 -0.574 -62.299 21 12 1 4 1 2 4 8
156 -9.778 26.794 1 18 1 4 1 2 4 8
157 34.265 -23.895 24 25 1 4 1 2 4 8
158 29.572 -24.561 5 13 1 4 1 2 4 8
159 16.376 -58.887 23 24 1 4 1 2 4 8
160 61.877 -15.167 5 5 1 4 1 2 4 8
161 40.088 -9.625 17 14 1 4 1 2 4 8
162 0.122 -4.645 24 18 1 4 1 2 4 8
163 -8.929 -43.903 23 25 1 4 1 2 4 8
164 -7.135 -57.434 3 11 1 4 1 2 4 8
165 7.550 -21.210 5 18 1 4 1 2 4 8
166 3.949 7.300 22 23 1 4 1 2 4 8
167 -15.118 92.023 9 22 1 4 1 2 4 8
168 84.821 -24.518 23 20 1 4 1 2 4 8
169 -52.325 30.682 15 11 1 4 1 2 4 8
170 7.538 13.818 15 11 1 4 1 2 4 8
171 -21.484 30.359 11 19 1 4 1 2 4 8
172 36.047 29.883 20 13 1 4 1 2 4 8
173 12.781 -40.942 10 24 1 4 1 2 4 8
174 -17.291 -10.254 24 6 1 4 1 2 4 8
175 -10.541 12.402 10 5 1 4 1 2 4 8
176 -15.845 -59.460 6 24 1 4 1 2 4 8
177 29.266 -2.222 22 7 1 4 1 2 4 8
178 -12.598 -58.929 25 13 1 4 1 2 4 8
179 -17.303 -35.297 11 25 1 4 1 2 4 8
180 57.050 -50.354 6 15 1 4 1 2 4 8
181 26.941 17.444 9 15 1 4 1 2 4 8
182 -6.195 -8.881 6 16 1 4 1 2 4 8
183 16.980 -16.321 12 5 1 4 1 2 4 8
184 83.710 -32.520 4 15 1 4 1 2 4 8
185 12.451 34.589 24 24 1 4 1 2 4 8
186 15.057 67.004 18 15 1 4 1 2 4 8
187 25.818 -5.835 3 9 1 4 1 2 4 8
188 13.666 -14.832 18 19 1 4 1 2 4 8
189 48.322 -5.164 17 15 1 4 1 2 4 8
190 13.489 19.739 23 2 1 4 1 2 4 8
191 -18.512 65.405 10 3 1 4 1 2 4 8
192 17.554 38.379 22 18 1 4 1 2 4 8
193 37.775 -16.003 5 20 1 4 1 2 4 8
194 47.968 -30.310 16 14 1 4 1 2 4 8
195 38.806 36.243 10 10 1 4 1 2 4 8
196 -16.089 -42.841 10 6 1 4 1 2 4 8
197 28.656 -1.990 9 17 1 4 1 2 4 8
198 -5.859 -1.862 5 20 1 4 1 2 4 8
199 60.516 63.416 9 3 1 4 1 2 4 8
200 63.196 -47.766 12 14 1 4 1 2 4 8
201 -15.308 -23.285 16 12 1 4 1 2 4 8
202 -2.875 0.787 8 2 1 4 1 2 4 8
203 32.056 -10.175 1 11 1 4 1 2 4 8
204 -18.634 -25.665 1 16 1 4 1 2 4 8
205 -3.632 25.433 18 18 1 4 1 2 4 8
206 10.480 22.888 22 14 1 4 1 2 4 8
207 1.819 -3.009 20 6 1 4 1 2 4 8
208 -25.275 -12.183 4 12 1 4 1 2 4 8
209 56.927 -75.507 15 21 1 4 1 2 4 8
210 13.885 -36.230 7 1 1 4 1 2 4 8
211 32.520 -29.523 25 18 1 4 1 2 4 8
212 4.803 -7.288 3 17 1 4 1 2 4 8
213 11.365 -8.344 22 15 1 4 1 2 4 8
214 17.126 -24.646 5 4 1 4 1 2 4 8
215 -33.661 -41.241 1 18 1 4 1 2 4 8
216 -32.391 -50.885 9 22 1 4 1 2 4 8
217 23.041 -14.496 16 16 1 4 1 2 4 8
218 -21.857 -39.502 23 14 1 4 1 2 4 8
219 32.013 77.332 5 25 1 4 1 2 4 8
220 13.831 -76.190 5 15 1 4 1 2 4 8
221 -8.051 -21.179 6 6 1 4 1 2 4 8
222 25.391 46.613 16 7 1 4 1 2 4 8
223 49.536 -54.639 25 21 1 4 1 2 4 8
224 63.416 -8.636 1 3 1 4 1 2 4 8
225 2.301 -5.536 25 15 1 4 1 2 4 8
226 52.423 29.895 17 24 1 4 1 2 4 8
227 9.296 -16.254 11 2 1 4 1 2 4 8
228 34.845 -96.185 24 17 1 4 1 2 4 8
229 -21.063 -41.498 10 2 1 4 1 2 4 8
230 28.448 10.242 12 25 1 4 1 2 4 8
231 16.254 -22.583 17 15 1 4 1 2 4 8
232 -36.639 -34.033 18 3 1 4 1 2 4 8
233 -27.356 -50.177 5 1 1 4 1 2 4 8
234 -53.705 11.334 16 1 1 4 1 2 4 8
235 26.276 -5.994 9 20 1 4 1 2 4 8
236 -31.519 34.589 6 19 1 4 1 2 4 8
237 -14.612 -31.506 1 2 1 4 1 2 4 8
238 -4.242 -30.865 4 9 1 4 1 2 4 8
239 -18.524 -29.486 20 4 1 4 1 2 4 8
240 -17.133 -19.397 19 16 1 4 1 2 4 8
241 34.430 -17.151 0 0 0 0
242 0.269 -8.154 0 0 0 0
243 3.140 13.297 0 0 0 0
244 -3.113 -29.745 0 0 0 0
246 -158 112 0 4412 0.97751 3.06781
247 76 -73 0 4415 0.602821 2.72011
248 177 -42 0 3222 0.69013 2.81054
249 196 -95 0 4489 0.769888 2.89394

Some files were not shown because too many files have changed in this diff Show more