moved utilities and contribution in branchez

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2183 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
liefooga 2011-03-11 13:58:48 +00:00
commit 8280cf082b
1346 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MOLS</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>

View file

@ -0,0 +1,124 @@
######################################################################################
### CMake basic configuration
######################################################################################
# check cmake version compatibility
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
# regular expression checking
INCLUDE_REGULAR_EXPRESSION("^.*$" "^$")
# set a language for the entire project.
ENABLE_LANGUAGE(CXX)
ENABLE_LANGUAGE(C)
#####################################################################################
### Include required modules & utilities
#####################################################################################
INCLUDE(CMakeBackwardCompatibilityCXX)
INCLUDE(FindDoxygen)
INCLUDE(CheckLibraryExists)
INCLUDE(Dart OPTIONAL)
# 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 "Debug" 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 /O2 /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)
#####################################################################################
######################################################################################
### compilation of examples?
######################################################################################
SET(ENABLE_CMAKE_EXAMPLE TRUE CACHE BOOL "Enable copy of benchs and parameters file?")
#######################################################################################
### Paths to EO, MO and MOEO must be specified above.
#######################################################################################
SET(PARADISEO_DIR "/home/humeau/Bureau/paradiseo-1.2.1" CACHE PATH "ParadisEO directory" FORCE)
SET(EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE)
SET(EO_BIN_DIR "${PARADISEO_DIR}/paradiseo-eo/build" CACHE PATH "ParadisEO-EO binary directory" FORCE)
SET(MO_SRC_DIR "${PARADISEO_DIR}/paradiseo-mo" CACHE PATH "ParadisMO-MO source directory" FORCE)
SET(MO_BIN_DIR "${PARADISEO_DIR}/paradiseo-mo/build" CACHE PATH "ParadisMO-MO binary directory" FORCE)
SET(MOEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-moeo" CACHE PATH "ParadisMOEO-MOEO source directory" FORCE)
SET(MOEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-moeo/build" CACHE PATH "ParadisMOEO-MOEO binary directory" FORCE)
######################################################################################
### 1) Include the sources
######################################################################################
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(${MO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(/home/humeau/workspace/MOLS/src2)
INCLUDE_DIRECTORIES(/home/humeau/workspace/MOLS/test)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
######################################################################################
### 2) Specify where CMake can find the libraries
######################################################################################
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${MOEO_BIN_DIR}/lib)
######################################################################################
### 3) Define your targets and link the librairies
######################################################################################
ADD_SUBDIRECTORY(src2)
ADD_SUBDIRECTORY(test)
ADD_SUBDIRECTORY(doc)

View file

@ -0,0 +1,318 @@
//eo
#include <eo>
#include <eoSwapMutation.h>
//general
#include <string>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <unistd.h>
// moeo
#include <moeo>
#include <do/make_continue_moeo.h>
#include <do/make_checkpoint_moeo.h>
// fsp
#include <fsp>
//peo
#include <peo>
#include <peoAsyncDataTransfer.h>
#include <peoSyncDataTransfer.h>
#include <core/star_topo.h>
#include <peoParallelAlgorithmWrapper.h>
#include <core/eoVector_mesg.h>
//DMLS
#include <moeoTransfer.h>
void make_help(eoParser & _parser);
using namespace std;
int main(int argc, char* argv[])
{
try{
eoParser parser(argc, argv); // for user-parameter reading
eoState state; // to keep all things allocated
/*** number of objectives ***/
fspObjectiveVectorTraits::nObj = 2;
/*** parameters ***/
eoValueParam<uint32_t>& _seedParam = parser.createParam(uint32_t(0), "seed", "Random number seed", 'S');
std::string _file = parser.createParam(std::string(), "file", "", '\0', "Representation", true).value();
double _crossRate = parser.createParam((double) 0.05, "crossRate", "Rate for 2-PT crossover", 0, "Variation Operators").value();
double _mutRate = parser.createParam((double) 1.0, "mutRate", "Rate for shift mutation", 0, "Variation Operators").value();
unsigned int _popSize = parser.createParam((unsigned int)(100), "popSize", "Population Size", 'P', "Evolution Engine").value();
std::string _strategy = parser.createParam(std::string(), "explorer", "OneOne - OneAll - AllOne - AllAll - OneFirst - AllFirst - OneND - AllND", '\0', "Evolution Engine", true).value();
unsigned int _nbKick = parser.createParam((unsigned int)(10), "nbKick", "Number of kick", 'K', "Evolution Engine").value();
// seed
if (_seedParam.value() == 0)
_seedParam.value() = time(0);
rng.reseed(_seedParam.value());
/*** the representation-dependent things ***/
// load data
fspData data(_file);
// size
unsigned int size = data.getN(); // nb jobs
// init
fspInit init(size, 0);
// eval
fspEval simpleEval(data.getM(), data.getN(), data.getP(), data.getD());
eoEvalFuncCounter<FSP> eval(simpleEval);
// cross
fspCross cross;
// mut
fspMut mut;
// op
eoSGAGenOp<FSP> op(cross, _crossRate, mut, _mutRate);
/*** the representation-independent things ***/
// move init
fspMoveInit moveInit;
// move next
fspMoveNext moveNext;
// move incr eval
fspMoveIncrEval moveIncrEval(data.getM(), data.getN(), data.getP(), data.getD());
bool multiply=true;
moeoPopNeighborhoodExplorer<fspMove> * explorer;
moeoUnvisitedSelect<FSP> * selector;
if (_strategy == std::string("OneOne"))
{
selector = new moeoNumberUnvisitedSelect<FSP> (1);
explorer = new moeoSimpleSubNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval, 1);
}
else if (_strategy == std::string("OneAll"))
{
selector = new moeoNumberUnvisitedSelect<FSP> (1);
explorer = new moeoExhaustiveNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval);
}
else if (_strategy == std::string("AllOne"))
{
selector = new moeoExhaustiveUnvisitedSelect<FSP>;
explorer = new moeoSimpleSubNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval, 1);
multiply=false;
}
else if (_strategy == std::string("AllAll"))
{
selector = new moeoExhaustiveUnvisitedSelect<FSP>;
explorer = new moeoExhaustiveNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval);
}
else if (_strategy == std::string("OneFirst"))
{
selector = new moeoNumberUnvisitedSelect<FSP> (1);
explorer = new moeoFirstImprovingNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval);
}
else if (_strategy == std::string("AllFirst"))
{
selector = new moeoExhaustiveUnvisitedSelect<FSP>;
explorer = new moeoFirstImprovingNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval);
}
else if (_strategy == std::string("OneND"))
{
selector = new moeoNumberUnvisitedSelect<FSP> (1);
explorer = new moeoNoDesimprovingNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval);
}
else if (_strategy == std::string("AllND"))
{
selector = new moeoExhaustiveUnvisitedSelect<FSP>;
explorer = new moeoNoDesimprovingNeighborhoodExplorer<fspMove> (moveInit, moveNext, moveIncrEval);
multiply=false;
}
else
{
std::string stmp = std::string("Invalid explorer strategy: ") + _strategy;
throw std::runtime_error(stmp.c_str());
}
state.storeFunctor(selector);
state.storeFunctor(explorer);
//peo :: init (argc, argv);
eoPop<FSP> popIBEA;
eoPop<FSP> popLS;
eoPop<FSP> popCentral;
eoPop<FSP> popCentral2;
popCentral.resize(0);
popCentral2.resize(0);
// initialization of the population
popIBEA.append(_popSize, init);
popLS.append(1, init);
// definition of an unbounded archive
moeoNewBoundedArchive<FSP> archCentral(100);
moeoNewBoundedArchive<FSP> archCentral2(100);
moeoNewBoundedArchive<FSP> archLS(100);
moeoUnboundedArchive<FSP> archIBEA;
// stopping criteria
eoContinue<FSP> & stop = do_make_continue_moeo(parser, state, eval);
eoGenContinue<FSP> stop1(5000000);
eoGenContinue<FSP> stop2(5000000);
eoGenContinue<FSP> stop3(5000000);
// checkpointing
eoCheckPoint<FSP> & checkpoint1 = do_make_checkpoint_moeo(parser, state, eval, stop1, popIBEA, archIBEA);
eoCheckPoint<FSP> & checkpoint2 = do_make_checkpoint_moeo(parser, state, eval, stop2, popLS, archLS);
eoCheckPoint<FSP> & checkpoint3 = do_make_checkpoint_moeo(parser, state, eval, stop3, popCentral, archCentral);
moeoArchiveObjectiveVectorSavingUpdater < FSP > * save_updater1 = new moeoArchiveObjectiveVectorSavingUpdater < FSP > (archIBEA, "archIBEA");
state.storeFunctor(save_updater1);
checkpoint1.add(*save_updater1);
moeoArchiveObjectiveVectorSavingUpdater < FSP > * save_updater2 = new moeoArchiveObjectiveVectorSavingUpdater < FSP > (archLS, "archLS");
state.storeFunctor(save_updater2);
checkpoint2.add(*save_updater2);
moeoArchiveObjectiveVectorSavingUpdater < FSP > * save_updater3 = new moeoArchiveObjectiveVectorSavingUpdater < FSP > (archCentral, "archCentral");
state.storeFunctor(save_updater3);
checkpoint3.add(*save_updater3);
// metric
moeoAdditiveEpsilonBinaryMetric<fspObjectiveVector> metric;
// algorithms
moeoIBEA<FSP> algo1 (checkpoint1, eval, op, metric);
//moeoSEEA<FSP> algo1 (checkpoint1, eval, op, arch1);
moeoUnifiedDominanceBasedLS <fspMove> algo2(checkpoint2, eval, archLS, *explorer, *selector);
//moeoUnifiedDominanceBasedLS <tspMove> algo3(checkpoint3, eval, arch3, *explorer, *selector);
//moeoSEEA<FSP> algo3 (checkpoint3, eval, op, arch3);
//moeoSEEA<FSP> algo4 (checkpoint4, eval, op, arch4);
//moeoIBEA<FSP> algo3 (checkpoint3, eval, op, metric);
//moeoNSGAII<FSP> algo3 (checkpoint3, eval, op);
//PEO:initialisation
//Topolgy
RingTopology ring1, ring2;
StarTopology star;
eoSwapMutation <FSP> swap;
CentralAggregation<FSP> test;
IBEAAggregation<FSP> test2;
LSAggregation<FSP> test3(swap, eval, _nbKick);
ArchToArchAggregation<FSP> test4;
apply<FSP>(eval, popIBEA);
popIBEA.sort();
apply<FSP>(eval, popLS);
popLS.sort();
/* peoSyncDataTransfer transfer1(archCentral, ring1, test);
centralArchive<FSP> centre1(archCentral, popCentral, transfer1, checkpoint3);
peoSyncDataTransfer transfer2(archCentral, ring2, test);
centralArchive<FSP> centre2(archCentral, popCentral, transfer2, checkpoint3);
peoSyncDataTransfer transfer3(popIBEA, ring1, test2);
eoGenContinue <FSP> cont2(500);
gestionTransfer<FSP> gest2(cont2, transfer3, archIBEA);
//centralArchive centre1(arch1, pop1, transfer1);
checkpoint1.add(gest2);
peoSyncDataTransfer transfer4(archLS, ring2, test3);
eoAmeliorationContinue <FSP> cont(archLS, 1, false);
//eoGenContinue <FSP> cont(10000);
gestionTransfer2<FSP> gest(cont, transfer4, archLS);
checkpoint2.add(gest);*/
// std::vector<peoSyncDataTransfer> vect;
// initDebugging();
//setDebugMode(true);
testPEO<FSP> hop(argc, argv, algo1, algo2, popIBEA, popLS, archCentral, test, test, test2, test3, checkpoint1, checkpoint2, checkpoint3);
hop();
// Start the parallel EA
/*eoPop<FSP> dummyPop;
dummyPop.resize(0);
eoPop<FSP> dummyPop2;
dummyPop2.resize(0);*/
//Wrapp algorithms
/* peoParallelAlgorithmWrapper parallelEA_1(centre1, dummyPop);
transfer1.setOwner( parallelEA_1 );
peoParallelAlgorithmWrapper parallelEA_2(algo1, popIBEA);
transfer3.setOwner( parallelEA_2 );
peoParallelAlgorithmWrapper parallelEA_3(centre2, dummyPop2);
transfer2.setOwner( parallelEA_3 );
peoParallelAlgorithmWrapper parallelEA_4(algo2, popLS);
transfer4.setOwner( parallelEA_4 );*/
/* if (getNodeRank()==1)
{
cout << "Initial Population IBEA\n" << popIBEA << endl;
}
if (getNodeRank()==2)
{
cout << "Initial Population LS\n" << popLS << endl;
}*/
//run
//peo :: run( );
//peo :: finalize( );
//endDebugging();
}
catch (exception& e){
cout << e.what() << endl;
}
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,388 @@
//eo
#include <eo>
// moeo
#include <moeo>
//general
#include <string>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <algorithm>
//peo
#include <peo>
#include <peoAsyncDataTransfer.h>
#include <peoSyncDataTransfer.h>
#include <dmls.h>
template <class A1, class A2, class R>
class generalAggregation: public eoBF<A1, A2, R>{};
template <class EOT, class A, class R>
class AbstractEntityToPopAggregation: public generalAggregation<eoPop<EOT>&, A, R>{};
template <class EOT, class A, class R>
class AbstractEntityToArchiveAggregation: public generalAggregation<moeoArchive<EOT>&, A, R>{};
template <class EOT>
class PopToPopAggregation: public AbstractEntityToPopAggregation<EOT, eoPop<EOT>&, void>{};
template <class EOT>
class ArchiveToPopAggregation: public AbstractEntityToPopAggregation<EOT, moeoArchive<EOT>&, void>{};
template <class EOT>
class PopToArchiveAggregation: public AbstractEntityToArchiveAggregation<EOT, eoPop<EOT>&, void>{};
template <class EOT>
class ArchiveToArchiveAggregation: public AbstractEntityToArchiveAggregation<EOT, moeoArchive<EOT>&, void>{};
/*
*
*/
template <class EOT>
class gestionTransfer: public eoUpdater{
public:
gestionTransfer(eoGenContinue < EOT > & _continuator,
peoDataTransfer & _asyncDataTransfer,
moeoArchive<EOT>& _archive):continuator(_continuator), asyncDataTransfer(_asyncDataTransfer), archive(_archive){}
void operator()(){
if(!continuator(archive)){
asyncDataTransfer();
continuator.totalGenerations(continuator.totalGenerations());
}
}
private:
eoGenContinue < EOT > & continuator;
peoDataTransfer& asyncDataTransfer;
moeoArchive<EOT>& archive;
};
/*
*
*/
template <class EOT>
class gestionTransfer2: public eoUpdater{
public:
gestionTransfer2(eoContinue < EOT > & _continuator,
peoSyncDataTransfer & _asyncDataTransfer,
moeoArchive<EOT>& _archive):continuator(_continuator), asyncDataTransfer(_asyncDataTransfer), archive(_archive){}
void operator()(){
if(!continuator(archive)){
asyncDataTransfer();
}
}
private:
eoContinue < EOT > & continuator;
peoSyncDataTransfer& asyncDataTransfer;
moeoArchive<EOT>& archive;
};
/*
*
*/
/*template <class EOT>
class IBEAAggregationRnd: public ArchiveToPopAggregation<EOT>{
public:
void operator()(eoPop< EOT >& _pop, moeoArchive< EOT >& _archive) {
UF_random_generator<unsigned int> rndGen;
std::vector<unsigned int> tab;
unsigned int resizeValue;
unsigned int popCorrectSize= _pop.size();
if (_pop.size() - _archive.size()>0){
resizeValue=_pop.size() - _archive.size();
_pop.shuffle();
}
else
resizeValue=0;
for(unsigned int i=0; i<_archive.size(); i++)
tab.push_back(i);
std::random_shuffle(tab.begin(), tab.end(), rndGen);
_pop.resize(resizeValue);
for (unsigned int i=0; i<(popCorrectSize-resizeValue); i++)
{
_pop.push_back(_archive[tab[i]]);
}
for (unsigned int i=0; i<_pop.size(); i++)
{
_pop[i].fitness(0.0);
_pop[i].diversity(0.0);
}
}
};*/
/*
*
*/
template <class EOT>
class IBEAAggregation: public ArchiveToPopAggregation<EOT>{
public:
void operator()(eoPop< EOT >& _pop, moeoArchive< EOT >& _archive) {
unsigned int popSize= _pop.size();
_pop.reserve(popSize + _archive.size());
for (unsigned int i=0; i<_archive.size(); i++)
{
_pop.push_back(_archive[i]);
_pop[i+popSize].fitness(0.0);
//_pop[i].diversity(0.0);
}
diversityAssignment(_pop);
std::sort(_pop.begin(), _pop.end(), cmp);
_pop.resize(popSize);
}
private:
moeoCrowdingDiversityAssignment<EOT> diversityAssignment;
moeoDiversityThenFitnessComparator<EOT> cmp;
};
/*
*
*/
/*template <class EOT>
class IBEAAggregationQuiMarchePas{
public:
void operator()(eoPop< EOT >& _pop, moeoArchive< EOT >& _archive) {
UF_random_generator<unsigned int> rndGen;
std::vector<unsigned int> tab;
unsigned int resizeValue;
unsigned int popCorrectSize= _pop.size();
if (_pop.size() <= _archive.size())
_pop.resize(0);
for (unsigned int i=0; i<_archive.size(); i++)
{
_pop.push_back(_archive[i]);
_pop[i].fitness(0.0);
_pop[i].diversity(0.0);
}
}
};*/
/*
*
*/
template <class EOT>
class LSAggregation: public ArchiveToArchiveAggregation<EOT>{
public:
LSAggregation(eoMonOp <EOT> & _op, eoEvalFunc<EOT>& _eval, unsigned int _nbKick): ArchiveToArchiveAggregation<EOT>(),op(_op), eval(_eval), nbKick(_nbKick){}
void operator()(moeoArchive< EOT >& _archive1, moeoArchive <EOT >& _archive2) {
unsigned int archSize=_archive2.size();
if(archSize>0){
_archive1.resize(0);
_archive1.push_back(_archive2[rng.random(archSize)]);
// std::cout << "kick : " << nbKick << std::endl;
//si la solution n'a pas encore été visité
if(_archive1[0].flag()==1){
std::cout << "kick pour du vrai" << std::endl;
//on la kick
for(unsigned int i=0; i<nbKick; i++){
//std::cout << _archive1[0] << std::endl;
op(_archive1[0]);
}
eval(_archive1[0]);
_archive1[0].flag(0);
}
for (unsigned int i=0; i<_archive1.size(); i++)
{
_archive1[i].fitness(0.0);
_archive1[i].diversity(0.0);
}
}
}
private:
eoMonOp<EOT> & op;
eoEvalFunc<EOT> & eval;
unsigned int nbKick;
};
//Aggregation pour archiver une pop
template <class EOT>
class CentralAggregation: public PopToArchiveAggregation<EOT>{
public:
void operator()(moeoArchive< EOT >& _archive, eoPop< EOT >& _pop) {
_archive(_pop);
}
};
//aggregation pour archiver une archive
template <class EOT>
class ArchToArchAggregation{
public:
void operator()(moeoArchive< EOT >& _archive1, moeoArchive< EOT >& _archive2) {
_archive1(_archive2);
}
};
template <class EOT>
class gestArchive{
public:
gestArchive(moeoArchive <EOT>& _archive,
eoPop <EOT>& _pop,
peoSyncDataTransfer & _syncDataTransfer,
eoContinue <EOT>& _cont):
archive(_archive), pop(_pop), syncDataTransfer(_syncDataTransfer), cont(_cont){}
void operator()(eoPop <EOT>& population) {
while(true){
// pop.resize(0);
//for(unsigned int i=0; i<archive.size(); i++)
// pop.push_back(archive[i]);
syncDataTransfer();//appel pour faire l'echange
// archive(pop);
// pop.resize(0);
// for(unsigned int i=0; i<archive.size(); i++)
// pop.push_back(archive[i]);
cont(archive);
}
}
private:
moeoArchive <EOT>& archive;
eoPop <EOT>& pop;
peoSyncDataTransfer& syncDataTransfer;
eoContinue <EOT>& cont;
};
template <class EOT>
class testPEO{
public:
testPEO(int _argc,
char** _argv,
moeoPopAlgo<EOT> & _algo1,
moeoPopAlgo<EOT> & _algo2,
eoPop<EOT> & _pop1,
eoPop<EOT> & _pop2,
moeoNewBoundedArchive<EOT> & _centralArchive,
AbstractEntityToArchiveAggregation<EOT, eoPop<EOT> &, void>& _algo1ToArchive,
AbstractEntityToArchiveAggregation<EOT, eoPop<EOT> &, void>& _algo2ToArchive,
generalAggregation <eoPop<EOT> &, moeoArchive<EOT> &, void>& _archiveToAlgo1,
generalAggregation <moeoArchive<EOT> &, moeoArchive<EOT> &, void>& _archiveToAlgo2,
eoCheckPoint<EOT> & _checkAlgo1,
eoCheckPoint<EOT> & _checkAlgo2,
eoCheckPoint<EOT> & _checkArchive):
argc(_argc),
argv(_argv),
algo1(_algo1),
algo2(_algo2),
pop1(_pop1),
pop2(_pop2),
centralArchive(_centralArchive),
algo1ToArchive(_algo1ToArchive),
algo2ToArchive(_algo2ToArchive),
archiveToAlgo1(_archiveToAlgo1),
archiveToAlgo2(_archiveToAlgo2),
checkAlgo1(_checkAlgo1),
checkAlgo2(_checkAlgo2),
checkArchive(_checkArchive){}
void operator()(){
//PEO Initialization
peo :: init (argc, argv);
//Two RingTopolgy
RingTopology ring1, ring2;
//DataTransfer for the fisrt ring
peoSyncDataTransfer transfer1(centralArchive, ring1, algo1ToArchive);
peoSyncDataTransfer transfer2(pop1, ring1, archiveToAlgo1);
//DataTransfer for the second ring
peoSyncDataTransfer transfer3(centralArchive, ring2, algo2ToArchive);
peoSyncDataTransfer transfer4(pop2, ring2, archiveToAlgo2);
//Transfer Algo1 -> archiveCentral (Ring1)
gestArchive<EOT> toCenter1(centralArchive, pop1, transfer1, checkArchive);
//Transfer archiveCentral -> Algo1 (Ring1)
eoGenContinue <EOT> genContinuator1(100);
gestionTransfer<EOT> exitCenter1(genContinuator1, transfer2, centralArchive);
checkAlgo1.add(exitCenter1);
//Transfer Algo2 -> archiveCentral (Ring2)
gestArchive<EOT> toCenter2(centralArchive, pop2, transfer3, checkArchive);
//Transfer archiveCentral -> Algo2 (Ring2)
eoGenContinue <EOT> genContinuator2(200);
gestionTransfer<EOT> exitCenter2(genContinuator2, transfer4, centralArchive);
checkAlgo2.add(exitCenter2);
//dummyPop
eoPop<EOT> dummyPop;
//Wrapping of algotithm
peoParallelAlgorithmWrapper parallelEA_1(toCenter1, dummyPop);
transfer1.setOwner( parallelEA_1 );
peoParallelAlgorithmWrapper parallelEA_2(algo1, pop1);
transfer2.setOwner( parallelEA_2 );
peoParallelAlgorithmWrapper parallelEA_3(toCenter2, dummyPop);
transfer3.setOwner( parallelEA_3 );
peoParallelAlgorithmWrapper parallelEA_4(algo2, pop2);
transfer4.setOwner( parallelEA_4 );
//run
peo :: run( );
peo :: finalize( );
endDebugging();
}
private:
int argc;
char** argv;
moeoPopAlgo<EOT> & algo1;
moeoPopAlgo<EOT> & algo2;
eoPop<EOT> & pop1;
eoPop<EOT> & pop2;
moeoNewBoundedArchive <EOT> & centralArchive;
AbstractEntityToArchiveAggregation<EOT, eoPop<EOT> &, void> & algo1ToArchive;
AbstractEntityToArchiveAggregation<EOT, eoPop<EOT> &, void> & algo2ToArchive;
generalAggregation <eoPop<EOT> &, moeoArchive<EOT> &, void> & archiveToAlgo1;
generalAggregation <moeoArchive<EOT> &, moeoArchive<EOT> &, void> & archiveToAlgo2;
eoCheckPoint<EOT> & checkAlgo1;
eoCheckPoint<EOT> & checkAlgo2;
eoCheckPoint<EOT> & checkArchive;
};

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,26 @@
##########################################################################################
### MOEO Doc generation using Doxygen
##########################################################################################
IF (DOXYGEN_FOUND)
SET(DOC_DIR ${CMAKE_BINARY_DIR}/doc CACHE PATH "MOEO documentation directory")
SET(MOEO_DOC_CONFIG_FILE "moeo.doxyfile" CACHE PATH "MOEO documentation configuration file")
# define the doc target
IF (DOXYGEN_EXECUTABLE)
ADD_CUSTOM_TARGET(doc
COMMAND ${DOXYGEN_EXECUTABLE} ${MOEO_DOC_CONFIG_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
ENDIF (DOXYGEN_EXECUTABLE)
# configure doxyfile file
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/doc/${MOEO_DOC_CONFIG_FILE}.cmake"
"${CMAKE_BINARY_DIR}/doc/${MOEO_DOC_CONFIG_FILE}")
ELSE (DOXYGEN_FOUND)
MESSAGE(STATUS "Unable to generate the documentation, Doxygen package not found")
ENDIF (DOXYGEN_FOUND)
##########################################################################################

View file

@ -0,0 +1,57 @@
/** @mainpage Welcome to the DMLS plug-in for ParadisEO 1.2
@section Introduction
This plug-in provides classes for the flexible design of Dominance-based Multi-objective Local Search (DMLS) algorithms under ParadisEO. The implementation is based on a fine-grained decomposition following the unified model proposed in the corresponding paper ("A Preliminary Investigation to unify Dominance-based Local Search Approaches for Multiobjective Combinatorial Optimization").
@section Authors
Arnaud Liefooghe, Jérémie Humeau
@section Installation
The installation procedure of the package is detailed in the "README.txt" file located in the top-directory of the source-tree.
@section Design
For an introduction to the design of ParadisEO,
you can look at the <a href="http://paradiseo.gforge.inria.fr">ParadisEO website</a>.
@section LICENSE
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
*/
/** @page webpages Related webpages
- ParadisEO <a href="http://paradiseo.gforge.inria.fr">homepage</a>
- INRIA GForge <a href="http://gforge.inria.fr/projects/paradiseo/">project page</a>
- Fore any questions, please contact paradiseo-help@lists.gforge.inria.fr
*/

View file

@ -0,0 +1,237 @@
# Doxyfile 1.5.1
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = @PACKAGE_NAME@
PROJECT_NUMBER = @PACKAGE_VERSION@
OUTPUT_DIRECTORY = @CMAKE_BINARY_DIR@/doc
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = NO
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = YES
WARNINGS = NO
WARN_IF_UNDOCUMENTED = NO
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = @CMAKE_SOURCE_DIR@
FILE_PATTERNS = *.cpp \
*.h \
NEWS README
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 3
IGNORE_PREFIX = moeo
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = YES
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES = @EO_BIN_DIR@/doc/eo.doxytag=http://eodev.sourceforge.net/eo/doc/html
GENERATE_TAGFILE = @CMAKE_BINARY_DIR@/doc/moeo.doxytag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = YES

View file

@ -0,0 +1,92 @@
/*
* <moeoCombinedLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOCOMBINEDLS_H_
#define MOEOCOMBINEDLS_H_
#include <vector>
#include <algo/moeoLS.h>
#include <archive/moeoArchive.h>
/**
* This class allows to embed a set of local searches that are sequentially applied,
* and so working and updating the same archive of non-dominated solutions.
*/
template < class MOEOT, class Type >
class moeoCombinedLS : public moeoLS < MOEOT, Type >
{
public:
/**
* Ctor
* @param _first_mols the first multi-objective local search to add
*/
moeoCombinedLS(moeoLS < MOEOT, Type > & _first_mols)
{
combinedLS.push_back (& _first_mols);
}
/**
* Adds a new local search to combine
* @param _mols the multi-objective local search to add
*/
void add(moeoLS < MOEOT, Type > & _mols)
{
combinedLS.push_back(& _mols);
}
/**
* Gives a new solution in order to explore the neigborhood.
* The new non-dominated solutions are added to the archive
* @param _type the object to apply the local search to
* @param _arch the archive of non-dominated solutions
*/
void operator () (Type _type, moeoArchive < MOEOT > & _arch)
{
for (unsigned int i=0; i<combinedLS.size(); i++)
combinedLS[i] -> operator()(_type, _arch);
}
private:
/** the vector that contains the combined LS */
std::vector< moeoLS < MOEOT, Type > * > combinedLS;
};
#endif /*MOEOCOMBINEDLS_H_*/

View file

@ -0,0 +1,101 @@
/*
* <moeoHybridLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOHYBRIDLS_H_
#define MOEOHYBRIDLS_H_
#include <eoContinue.h>
#include <eoPop.h>
#include <eoSelect.h>
#include <utils/eoUpdater.h>
#include <algo/moeoLS.h>
#include <archive/moeoArchive.h>
/**
* This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive
* at every generation until a stopping criteria is verified.
*/
template < class MOEOT >
class moeoHybridLS : public eoUpdater
{
public:
/**
* Ctor
* @param _term stopping criteria
* @param _select selector
* @param _mols a multi-objective local search
* @param _arch the archive
*/
moeoHybridLS (eoContinue < MOEOT > & _term, eoSelect < MOEOT > & _select, moeoLS < MOEOT, MOEOT > & _mols, moeoArchive < MOEOT > & _arch) :
term(_term), select(_select), mols(_mols), arch(_arch)
{}
/**
* Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified
*/
void operator () ()
{
if (! term (arch))
{
// selection of solutions
eoPop < MOEOT > selectedSolutions;
select(arch, selectedSolutions);
// apply the local search to every selected solution
for (unsigned int i=0; i<selectedSolutions.size(); i++)
{
mols(selectedSolutions[i], arch);
}
}
}
private:
/** stopping criteria */
eoContinue < MOEOT > & term;
/** selector */
eoSelect < MOEOT > & select;
/** multi-objective local search */
moeoLS < MOEOT, MOEOT > & mols;
/** archive */
moeoArchive < MOEOT > & arch;
};
#endif /*MOEOHYBRIDLS_H_*/

View file

@ -0,0 +1,523 @@
/*
* <moeoIBMOLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOIBMOLS_H_
#define MOEOIBMOLS_H_
#include <math.h>
#include <eoContinue.h>
#include <eoEvalFunc.h>
#include <eoPop.h>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moeoPopLS.h>
#include <archive/moeoArchive.h>
#include <archive/moeoUnboundedArchive.h>
#include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h>
#include <moMoveIncrEval.h>
/**
* Indicator-Based Multi-Objective Local Search (IBMOLS) as described in
* Basseur M., Burke K. : "Indicator-Based Multi-Objective Local Search" (2007).
*/
template < class MOEOT, class Move >
class moeoIBMOLS : public moeoPopLS < Move>
{
public:
/** The type of objective vector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Ctor.
* @param _moveInit the move initializer
* @param _nextMove the neighborhood explorer
* @param _eval the full evaluation
* @param _moveIncrEval the incremental evaluation
* @param _fitnessAssignment the fitness assignment strategy
* @param _continuator the stopping criteria
* @param _arch the archive
*/
moeoIBMOLS(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
eoEvalFunc < MOEOT > & _eval,
moMoveIncrEval < Move , ObjectiveVector > & _moveIncrEval,
moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment,
eoContinue < MOEOT > & _continuator,
moeoArchive < MOEOT > & _arch
) :
moveInit(_moveInit),
nextMove(_nextMove),
eval(_eval),
moveIncrEval(_moveIncrEval),
fitnessAssignment (_fitnessAssignment),
continuator (_continuator),
arch(_arch)
{}
/**
* Apply the local search until a local archive does not change or
* another stopping criteria is met and update the archive _arch with new non-dominated solutions.
* @param _pop the initial population
*/
void operator() (eoPop < MOEOT > & _pop)
{
// evaluation of the objective values
for (unsigned int i=0; i<_pop.size(); i++)
{
eval(_pop[i]);
}
// fitness assignment for the whole population
fitnessAssignment(_pop);
// creation of a local archive
moeoUnboundedArchive < MOEOT > archive;
// creation of another local archive (for the stopping criteria)
moeoUnboundedArchive < MOEOT > previousArchive;
// update the archive with the initial population
archive(_pop);
do
{
previousArchive(archive);
oneStep(_pop);
archive(_pop);
}
while ( (! archive.equals(previousArchive)) && (continuator(arch)) );
arch(archive);
}
private:
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the full evaluation */
eoEvalFunc < MOEOT > & eval;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & moveIncrEval;
/** the fitness assignment strategy */
moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & fitnessAssignment;
/** the stopping criteria */
eoContinue < MOEOT > & continuator;
/** archive */
moeoArchive < MOEOT > & arch;
/**
* Apply one step of the local search to the population _pop
* @param _pop the population
*/
void oneStep (eoPop < MOEOT > & _pop)
{
// the move
Move move;
// the objective vector and the fitness of the current solution
ObjectiveVector x_objVec;
double x_fitness;
// the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one)
int worst_idx;
ObjectiveVector worst_objVec;
double worst_fitness;
////////////////////////////////////////////
// the indexes and the objective vectors of the extreme non-dominated points
int ext_0_idx, ext_1_idx;
ObjectiveVector ext_0_objVec, ext_1_objVec;
unsigned int ind;
////////////////////////////////////////////
// the index of the current solution to be explored
unsigned int i=0;
// initilization of the move for the first individual
moveInit(move, _pop[i]);
while (i<_pop.size() && continuator(_pop))
{
// x = one neigbour of pop[i]
// evaluate x in the objective space
x_objVec = moveIncrEval(move, _pop[i]);
// update every fitness values to take x into account and compute the fitness of x
x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec);
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// extreme solutions (min only!)
// ext_0_idx = -1;
// ext_0_objVec = x_objVec;
// ext_1_idx = -1;
// ext_1_objVec = x_objVec;
// for (unsigned int k=0; k<_pop.size(); k++)
// {
// // ext_0
// if (_pop[k].objectiveVector()[0] < ext_0_objVec[0])
// {
// ext_0_idx = k;
// ext_0_objVec = _pop[k].objectiveVector();
// }
// else if ( (_pop[k].objectiveVector()[0] == ext_0_objVec[0]) && (_pop[k].objectiveVector()[1] < ext_0_objVec[1]) )
// {
// ext_0_idx = k;
// ext_0_objVec = _pop[k].objectiveVector();
// }
// // ext_1
// else if (_pop[k].objectiveVector()[1] < ext_1_objVec[1])
// {
// ext_1_idx = k;
// ext_1_objVec = _pop[k].objectiveVector();
// }
// else if ( (_pop[k].objectiveVector()[1] == ext_1_objVec[1]) && (_pop[k].objectiveVector()[0] < ext_1_objVec[0]) )
// {
// ext_1_idx = k;
// ext_1_objVec = _pop[k].objectiveVector();
// }
// }
// // worst init
// if (ext_0_idx == -1)
// {
// ind = 0;
// while (ind == ext_1_idx)
// {
// ind++;
// }
// worst_idx = ind;
// worst_objVec = _pop[ind].objectiveVector();
// worst_fitness = _pop[ind].fitness();
// }
// else if (ext_1_idx == -1)
// {
// ind = 0;
// while (ind == ext_0_idx)
// {
// ind++;
// }
// worst_idx = ind;
// worst_objVec = _pop[ind].objectiveVector();
// worst_fitness = _pop[ind].fitness();
// }
// else
// {
// worst_idx = -1;
// worst_objVec = x_objVec;
// worst_fitness = x_fitness;
// }
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// who is the worst ?
for (unsigned int j=0; j<_pop.size(); j++)
{
if ( (j!=ext_0_idx) && (j!=ext_1_idx) )
{
if (_pop[j].fitness() < worst_fitness)
{
worst_idx = j;
worst_objVec = _pop[j].objectiveVector();
worst_fitness = _pop[j].fitness();
}
}
}
// if the worst solution is the new one
if (worst_idx == -1)
{
// if all its neighbours have been explored,
// let's explore the neighborhoud of the next individual
if (! nextMove(move, _pop[i]))
{
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
}
// if the worst solution is located before _pop[i]
else if (worst_idx <= i)
{
// the new solution takes place insteed of _pop[worst_idx]
_pop[worst_idx] = _pop[i];
move(_pop[worst_idx]);
_pop[worst_idx].objectiveVector(x_objVec);
_pop[worst_idx].fitness(x_fitness);
// let's explore the neighborhoud of the next individual
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// if the worst solution is located after _pop[i]
else if (worst_idx > i)
{
// the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted
_pop[worst_idx] = _pop[i+1];
_pop[i+1] = _pop[i];
move(_pop[i+1]);
_pop[i+1].objectiveVector(x_objVec);
_pop[i+1].fitness(x_fitness);
// let's explore the neighborhoud of the individual _pop[i+2]
i += 2;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// update fitness values
fitnessAssignment.updateByDeleting(_pop, worst_objVec);
}
}
// INUTILE !!!!
/**
* Apply one step of the local search to the population _pop
* @param _pop the population
*/
void new_oneStep (eoPop < MOEOT > & _pop)
{
// the move
Move move;
// the objective vector and the fitness of the current solution
ObjectiveVector x_objVec;
double x_fitness;
// the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one)
int worst_idx;
ObjectiveVector worst_objVec;
double worst_fitness;
////////////////////////////////////////////
// the index of the extreme non-dominated points
int ext_0_idx, ext_1_idx;
unsigned int ind;
////////////////////////////////////////////
// the index current of the current solution to be explored
unsigned int i=0;
// initilization of the move for the first individual
moveInit(move, _pop[i]);
while (i<_pop.size() && continuator(_pop))
{
// x = one neigbour of pop[i]
// evaluate x in the objective space
x_objVec = moveIncrEval(move, _pop[i]);
// update every fitness values to take x into account and compute the fitness of x
x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec);
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// extremes solutions
OneObjectiveComparator comp0(0);
ext_0_idx = std::min_element(_pop.begin(), _pop.end(), comp0) - _pop.begin();
OneObjectiveComparator comp1(1);
ext_1_idx = std::min_element(_pop.begin(), _pop.end(), comp1) - _pop.begin();
// new = extreme ?
if (x_objVec[0] < _pop[ext_0_idx].objectiveVector()[0])
{
ext_0_idx = -1;
}
else if ( (x_objVec[0] == _pop[ext_0_idx].objectiveVector()[0]) && (x_objVec[1] < _pop[ext_0_idx].objectiveVector()[1]) )
{
ext_0_idx = -1;
}
else if (x_objVec[1] < _pop[ext_1_idx].objectiveVector()[1])
{
ext_1_idx = -1;
}
else if ( (x_objVec[1] == _pop[ext_1_idx].objectiveVector()[1]) && (x_objVec[0] < _pop[ext_1_idx].objectiveVector()[0]) )
{
ext_1_idx = -1;
}
// worst init
if (ext_0_idx == -1)
{
ind = 0;
while (ind == ext_1_idx)
{
ind++;
}
worst_idx = ind;
worst_objVec = _pop[ind].objectiveVector();
worst_fitness = _pop[ind].fitness();
}
else if (ext_1_idx == -1)
{
ind = 0;
while (ind == ext_0_idx)
{
ind++;
}
worst_idx = ind;
worst_objVec = _pop[ind].objectiveVector();
worst_fitness = _pop[ind].fitness();
}
else
{
worst_idx = -1;
worst_objVec = x_objVec;
worst_fitness = x_fitness;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// who is the worst ?
for (unsigned int j=0; j<_pop.size(); j++)
{
if ( (j!=ext_0_idx) && (j!=ext_1_idx) )
{
if (_pop[j].fitness() < worst_fitness)
{
worst_idx = j;
worst_objVec = _pop[j].objectiveVector();
worst_fitness = _pop[j].fitness();
}
}
}
// if the worst solution is the new one
if (worst_idx == -1)
{
// if all its neighbours have been explored,
// let's explore the neighborhoud of the next individual
if (! nextMove(move, _pop[i]))
{
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
}
// if the worst solution is located before _pop[i]
else if (worst_idx <= i)
{
// the new solution takes place insteed of _pop[worst_idx]
_pop[worst_idx] = _pop[i];
move(_pop[worst_idx]);
_pop[worst_idx].objectiveVector(x_objVec);
_pop[worst_idx].fitness(x_fitness);
// let's explore the neighborhoud of the next individual
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// if the worst solution is located after _pop[i]
else if (worst_idx > i)
{
// the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted
_pop[worst_idx] = _pop[i+1];
_pop[i+1] = _pop[i];
move(_pop[i+1]);
_pop[i+1].objectiveVector(x_objVec);
_pop[i+1].fitness(x_fitness);
// let's explore the neighborhoud of the individual _pop[i+2]
i += 2;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// update fitness values
fitnessAssignment.updateByDeleting(_pop, worst_objVec);
}
}
//////////////////////////////////////////////////////////////////////////////////////////
class OneObjectiveComparator : public moeoComparator < MOEOT >
{
public:
OneObjectiveComparator(unsigned int _obj) : obj(_obj)
{
if (obj > MOEOT::ObjectiveVector::nObjectives())
{
throw std::runtime_error("Problem with the index of objective in OneObjectiveComparator");
}
}
const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
{
if (_moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj])
{
return true;
}
else
{
return (_moeo1.objectiveVector()[obj] == _moeo2.objectiveVector()[obj]) && (_moeo1.objectiveVector()[(obj+1)%2] < _moeo2.objectiveVector()[(obj+1)%2]);
}
}
private:
unsigned int obj;
};
//////////////////////////////////////////////////////////////////////////////////////////
};
#endif /*MOEOIBMOLS_H_*/

View file

@ -0,0 +1,519 @@
/*
* <moeoIBMOLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOIBMOLS_H_
#define MOEOIBMOLS_H_
#include <math.h>
#include <eoContinue.h>
#include <eoEvalFunc.h>
#include <eoPop.h>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <algo/moeoLS.h>
#include <archive/moeoArchive.h>
#include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h>
#include <move/moeoMoveIncrEval.h>
/**
* Indicator-Based Multi-Objective Local Search (IBMOLS) as described in
* Basseur M., Burke K. : "Indicator-Based Multi-Objective Local Search" (2007).
*/
template < class MOEOT, class Move >
class moeoIBMOLS : public moeoLS < MOEOT, eoPop < MOEOT > & >
{
public:
/** The type of objective vector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Ctor.
* @param _moveInit the move initializer
* @param _nextMove the neighborhood explorer
* @param _eval the full evaluation
* @param _moveIncrEval the incremental evaluation
* @param _fitnessAssignment the fitness assignment strategy
* @param _continuator the stopping criteria
*/
moeoIBMOLS(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
eoEvalFunc < MOEOT > & _eval,
moeoMoveIncrEval < Move > & _moveIncrEval,
moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment,
eoContinue < MOEOT > & _continuator
) :
moveInit(_moveInit),
nextMove(_nextMove),
eval(_eval),
moveIncrEval(_moveIncrEval),
fitnessAssignment (_fitnessAssignment),
continuator (_continuator)
{}
/**
* Apply the local search until a local archive does not change or
* another stopping criteria is met and update the archive _arch with new non-dominated solutions.
* @param _pop the initial population
* @param _arch the (updated) archive
*/
void operator() (eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _arch)
{
// evaluation of the objective values
/*
for (unsigned int i=0; i<_pop.size(); i++)
{
eval(_pop[i]);
}
*/
// fitness assignment for the whole population
fitnessAssignment(_pop);
// creation of a local archive
moeoArchive < MOEOT > archive;
// creation of another local archive (for the stopping criteria)
moeoArchive < MOEOT > previousArchive;
// update the archive with the initial population
archive.update(_pop);
do
{
previousArchive.update(archive);
oneStep(_pop);
archive.update(_pop);
}
while ( (! archive.equals(previousArchive)) && (continuator(_arch)) );
_arch.update(archive);
}
private:
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the full evaluation */
eoEvalFunc < MOEOT > & eval;
/** the incremental evaluation */
moeoMoveIncrEval < Move > & moveIncrEval;
/** the fitness assignment strategy */
moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & fitnessAssignment;
/** the stopping criteria */
eoContinue < MOEOT > & continuator;
/**
* Apply one step of the local search to the population _pop
* @param _pop the population
*/
void oneStep (eoPop < MOEOT > & _pop)
{
// the move
Move move;
// the objective vector and the fitness of the current solution
ObjectiveVector x_objVec;
double x_fitness;
// the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one)
int worst_idx;
ObjectiveVector worst_objVec;
double worst_fitness;
////////////////////////////////////////////
// the indexes and the objective vectors of the extreme non-dominated points
int ext_0_idx, ext_1_idx;
ObjectiveVector ext_0_objVec, ext_1_objVec;
unsigned int ind;
////////////////////////////////////////////
// the index of the current solution to be explored
unsigned int i=0;
// initilization of the move for the first individual
moveInit(move, _pop[i]);
while (i<_pop.size() && continuator(_pop))
{
// x = one neigbour of pop[i]
// evaluate x in the objective space
x_objVec = moveIncrEval(move, _pop[i]);
// update every fitness values to take x into account and compute the fitness of x
x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec);
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// extreme solutions (min only!)
ext_0_idx = -1;
ext_0_objVec = x_objVec;
ext_1_idx = -1;
ext_1_objVec = x_objVec;
for (unsigned int k=0; k<_pop.size(); k++)
{
// ext_0
if (_pop[k].objectiveVector()[0] < ext_0_objVec[0])
{
ext_0_idx = k;
ext_0_objVec = _pop[k].objectiveVector();
}
else if ( (_pop[k].objectiveVector()[0] == ext_0_objVec[0]) && (_pop[k].objectiveVector()[1] < ext_0_objVec[1]) )
{
ext_0_idx = k;
ext_0_objVec = _pop[k].objectiveVector();
}
// ext_1
else if (_pop[k].objectiveVector()[1] < ext_1_objVec[1])
{
ext_1_idx = k;
ext_1_objVec = _pop[k].objectiveVector();
}
else if ( (_pop[k].objectiveVector()[1] == ext_1_objVec[1]) && (_pop[k].objectiveVector()[0] < ext_1_objVec[0]) )
{
ext_1_idx = k;
ext_1_objVec = _pop[k].objectiveVector();
}
}
// worst init
if (ext_0_idx == -1)
{
ind = 0;
while (ind == ext_1_idx)
{
ind++;
}
worst_idx = ind;
worst_objVec = _pop[ind].objectiveVector();
worst_fitness = _pop[ind].fitness();
}
else if (ext_1_idx == -1)
{
ind = 0;
while (ind == ext_0_idx)
{
ind++;
}
worst_idx = ind;
worst_objVec = _pop[ind].objectiveVector();
worst_fitness = _pop[ind].fitness();
}
else
{
worst_idx = -1;
worst_objVec = x_objVec;
worst_fitness = x_fitness;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// who is the worst ?
for (unsigned int j=0; j<_pop.size(); j++)
{
if ( (j!=ext_0_idx) && (j!=ext_1_idx) )
{
if (_pop[j].fitness() < worst_fitness)
{
worst_idx = j;
worst_objVec = _pop[j].objectiveVector();
worst_fitness = _pop[j].fitness();
}
}
}
// if the worst solution is the new one
if (worst_idx == -1)
{
// if all its neighbours have been explored,
// let's explore the neighborhoud of the next individual
if (! nextMove(move, _pop[i]))
{
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
}
// if the worst solution is located before _pop[i]
else if (worst_idx <= i)
{
// the new solution takes place insteed of _pop[worst_idx]
_pop[worst_idx] = _pop[i];
move(_pop[worst_idx]);
_pop[worst_idx].objectiveVector(x_objVec);
_pop[worst_idx].fitness(x_fitness);
// let's explore the neighborhoud of the next individual
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// if the worst solution is located after _pop[i]
else if (worst_idx > i)
{
// the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted
_pop[worst_idx] = _pop[i+1];
_pop[i+1] = _pop[i];
move(_pop[i+1]);
_pop[i+1].objectiveVector(x_objVec);
_pop[i+1].fitness(x_fitness);
// let's explore the neighborhoud of the individual _pop[i+2]
i += 2;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// update fitness values
fitnessAssignment.updateByDeleting(_pop, worst_objVec);
}
}
// INUTILE !!!!
/**
* Apply one step of the local search to the population _pop
* @param _pop the population
*/
void new_oneStep (eoPop < MOEOT > & _pop)
{
// the move
Move move;
// the objective vector and the fitness of the current solution
ObjectiveVector x_objVec;
double x_fitness;
// the index, the objective vector and the fitness of the worst solution in the population (-1 implies that the worst is the newly created one)
int worst_idx;
ObjectiveVector worst_objVec;
double worst_fitness;
////////////////////////////////////////////
// the index of the extreme non-dominated points
int ext_0_idx, ext_1_idx;
unsigned int ind;
////////////////////////////////////////////
// the index current of the current solution to be explored
unsigned int i=0;
// initilization of the move for the first individual
moveInit(move, _pop[i]);
while (i<_pop.size() && continuator(_pop))
{
// x = one neigbour of pop[i]
// evaluate x in the objective space
x_objVec = moveIncrEval(move, _pop[i]);
// update every fitness values to take x into account and compute the fitness of x
x_fitness = fitnessAssignment.updateByAdding(_pop, x_objVec);
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// extremes solutions
OneObjectiveComparator comp0(0);
ext_0_idx = std::min_element(_pop.begin(), _pop.end(), comp0) - _pop.begin();
OneObjectiveComparator comp1(1);
ext_1_idx = std::min_element(_pop.begin(), _pop.end(), comp1) - _pop.begin();
// new = extreme ?
if (x_objVec[0] < _pop[ext_0_idx].objectiveVector()[0])
{
ext_0_idx = -1;
}
else if ( (x_objVec[0] == _pop[ext_0_idx].objectiveVector()[0]) && (x_objVec[1] < _pop[ext_0_idx].objectiveVector()[1]) )
{
ext_0_idx = -1;
}
else if (x_objVec[1] < _pop[ext_1_idx].objectiveVector()[1])
{
ext_1_idx = -1;
}
else if ( (x_objVec[1] == _pop[ext_1_idx].objectiveVector()[1]) && (x_objVec[0] < _pop[ext_1_idx].objectiveVector()[0]) )
{
ext_1_idx = -1;
}
// worst init
if (ext_0_idx == -1)
{
ind = 0;
while (ind == ext_1_idx)
{
ind++;
}
worst_idx = ind;
worst_objVec = _pop[ind].objectiveVector();
worst_fitness = _pop[ind].fitness();
}
else if (ext_1_idx == -1)
{
ind = 0;
while (ind == ext_0_idx)
{
ind++;
}
worst_idx = ind;
worst_objVec = _pop[ind].objectiveVector();
worst_fitness = _pop[ind].fitness();
}
else
{
worst_idx = -1;
worst_objVec = x_objVec;
worst_fitness = x_fitness;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// who is the worst ?
for (unsigned int j=0; j<_pop.size(); j++)
{
if ( (j!=ext_0_idx) && (j!=ext_1_idx) )
{
if (_pop[j].fitness() < worst_fitness)
{
worst_idx = j;
worst_objVec = _pop[j].objectiveVector();
worst_fitness = _pop[j].fitness();
}
}
}
// if the worst solution is the new one
if (worst_idx == -1)
{
// if all its neighbours have been explored,
// let's explore the neighborhoud of the next individual
if (! nextMove(move, _pop[i]))
{
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
}
// if the worst solution is located before _pop[i]
else if (worst_idx <= i)
{
// the new solution takes place insteed of _pop[worst_idx]
_pop[worst_idx] = _pop[i];
move(_pop[worst_idx]);
_pop[worst_idx].objectiveVector(x_objVec);
_pop[worst_idx].fitness(x_fitness);
// let's explore the neighborhoud of the next individual
i++;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// if the worst solution is located after _pop[i]
else if (worst_idx > i)
{
// the new solution takes place insteed of _pop[i+1] and _pop[worst_idx] is deleted
_pop[worst_idx] = _pop[i+1];
_pop[i+1] = _pop[i];
move(_pop[i+1]);
_pop[i+1].objectiveVector(x_objVec);
_pop[i+1].fitness(x_fitness);
// let's explore the neighborhoud of the individual _pop[i+2]
i += 2;
if (i<_pop.size())
{
// initilization of the move for the next individual
moveInit(move, _pop[i]);
}
}
// update fitness values
fitnessAssignment.updateByDeleting(_pop, worst_objVec);
}
}
//////////////////////////////////////////////////////////////////////////////////////////
class OneObjectiveComparator : public moeoComparator < MOEOT >
{
public:
OneObjectiveComparator(unsigned int _obj) : obj(_obj)
{
if (obj > MOEOT::ObjectiveVector::nObjectives())
{
throw std::runtime_error("Problem with the index of objective in OneObjectiveComparator");
}
}
const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
{
if (_moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj])
{
return true;
}
else
{
return (_moeo1.objectiveVector()[obj] == _moeo2.objectiveVector()[obj]) && (_moeo1.objectiveVector()[(obj+1)%2] < _moeo2.objectiveVector()[(obj+1)%2]);
}
}
private:
unsigned int obj;
};
//////////////////////////////////////////////////////////////////////////////////////////
};
#endif /*MOEOIBMOLS_H_*/

View file

@ -0,0 +1,246 @@
/*
* <moeoIteratedIBMOLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOITERATEDIBMOLS_H_
#define MOEOITERATEDIBMOLS_H_
#include <eoContinue.h>
#include <eoEvalFunc.h>
#include <eoOp.h>
#include <eoPop.h>
#include <utils/rnd_generators.h>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moeoIBMOLS.h>
#include <moeoPopLS.h>
#include <archive/moeoArchive.h>
#include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h>
#include <moMoveIncrEval.h>
//#include <rsCrossQuad.h>
/**
* Iterated version of IBMOLS as described in
* Basseur M., Burke K. : "Indicator-Based Multi-Objective Local Search" (2007).
*/
template < class MOEOT, class Move >
class moeoIteratedIBMOLS : public moeoPopLS < Move>
{
public:
/** The type of objective vector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Ctor.
* @param _moveInit the move initializer
* @param _nextMove the neighborhood explorer
* @param _eval the full evaluation
* @param _moveIncrEval the incremental evaluation
* @param _fitnessAssignment the fitness assignment strategy
* @param _continuator the stopping criteria
* @param _arch the archive
* @param _monOp the monary operator
* @param _randomMonOp the random monary operator (or random initializer)
* @param _nNoiseIterations the number of iterations to apply the random noise
*/
moeoIteratedIBMOLS(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
eoEvalFunc < MOEOT > & _eval,
moMoveIncrEval < Move, ObjectiveVector > & _moveIncrEval,
moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > & _fitnessAssignment,
eoContinue < MOEOT > & _continuator,
moeoArchive < MOEOT > & _arch,
eoMonOp < MOEOT > & _monOp,
eoMonOp < MOEOT > & _randomMonOp,
unsigned int _nNoiseIterations=1
) :
ibmols(_moveInit, _nextMove, _eval, _moveIncrEval, _fitnessAssignment, _continuator, _arch),
eval(_eval),
continuator(_continuator),
arch(_arch),
monOp(_monOp),
randomMonOp(_randomMonOp),
nNoiseIterations(_nNoiseIterations)
{}
/**
* Apply the local search iteratively until the stopping criteria is met.
* @param _pop the initial population
*/
void operator() (eoPop < MOEOT > & _pop)
{
for (unsigned int i=0; i<_pop.size(); i++)
{
eval(_pop[i]);
}
arch(_pop);
ibmols(_pop);
while (continuator(arch))
{
// generate new solutions from the archive
generateNewSolutions(_pop);
// apply the local search (the global archive is updated in the sub-function)
ibmols(_pop);
}
}
private:
/** the local search to iterate */
moeoIBMOLS < MOEOT, Move > ibmols;
/** the full evaluation */
eoEvalFunc < MOEOT > & eval;
/** the stopping criteria */
eoContinue < MOEOT > & continuator;
/** archive */
moeoArchive < MOEOT > & arch;
/** the monary operator */
eoMonOp < MOEOT > & monOp;
/** the random monary operator (or random initializer) */
eoMonOp < MOEOT > & randomMonOp;
/** the number of iterations to apply the random noise */
unsigned int nNoiseIterations;
/**
* Creates new population randomly initialized and/or initialized from the archive _arch.
* @param _pop the output population
*/
void generateNewSolutions(eoPop < MOEOT > & _pop)
{
// shuffle vector for the random selection of individuals
std::vector<unsigned int> shuffle;
shuffle.resize(std::max(_pop.size(), arch.size()));
// init shuffle
for (unsigned int i=0; i<shuffle.size(); i++)
{
shuffle[i] = i;
}
// randomize shuffle
UF_random_generator <unsigned int> gen;
std::random_shuffle(shuffle.begin(), shuffle.end(), gen);
// start the creation of new solutions
for (unsigned int i=0; i<_pop.size(); i++)
{
if (shuffle[i] < arch.size()) // the given archive contains the individual i
{
// add it to the resulting pop
_pop[i] = arch[shuffle[i]];
// apply noise
for (unsigned int j=0; j<nNoiseIterations; j++)
{
monOp(_pop[i]);
}
}
else // a random solution needs to be added
{
// random initialization
randomMonOp(_pop[i]);
}
// evaluation of the new individual
_pop[i].invalidate();
eval(_pop[i]);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
// A DEVELOPPER RAPIDEMENT POUR TESTER AVEC CROSSOVER //
/*
void generateNewSolutions2(eoPop < MOEOT > & _pop, const moeoArchive < MOEOT > & _arch)
{
// here, we must have a QuadOp !
//eoQuadOp < MOEOT > quadOp;
rsCrossQuad quadOp;
// shuffle vector for the random selection of individuals
vector<unsigned int> shuffle;
shuffle.resize(_arch.size());
// init shuffle
for (unsigned int i=0; i<shuffle.size(); i++)
{
shuffle[i] = i;
}
// randomize shuffle
UF_random_generator <unsigned int int> gen;
std::random_shuffle(shuffle.begin(), shuffle.end(), gen);
// start the creation of new solutions
unsigned int i=0;
while ((i<_pop.size()-1) && (i<_arch.size()-1))
{
_pop[i] = _arch[shuffle[i]];
_pop[i+1] = _arch[shuffle[i+1]];
// then, apply the operator nIterationsNoise times
for (unsigned int j=0; j<nNoiseIterations; j++)
{
quadOp(_pop[i], _pop[i+1]);
}
eval(_pop[i]);
eval(_pop[i+1]);
i=i+2;
}
// do we have to add some random solutions ?
while (i<_pop.size())
{
randomMonOp(_pop[i]);
eval(_pop[i]);
i++;
}
}
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////
};
#endif /*MOEOITERATEDIBMOLS_H_*/

View file

@ -0,0 +1,53 @@
/*
* <moeoLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOLS_H_
#define MOEOLS_H_
#include <eoFunctor.h>
#include <algo/moeoAlgo.h>
#include <archive/moeoArchive.h>
/**
* Abstract class for local searches applied to multi-objective optimization.
* Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions.
*/
template < class MOEOT, class Type >
class moeoLS: public moeoAlgo, public eoBF < Type, moeoArchive < MOEOT > &, void >
{};
#endif /*MOEOLS_H_*/

View file

@ -0,0 +1,47 @@
/*
* <moeoMoveIncrEval.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
#ifndef _MOEOMOVEINCREVAL_H
#define _MOEOMOVEINCREVAL_H
#include <eoFunctor.h>
template < class Move >
class moeoMoveIncrEval : public eoBF < const Move &, const typename Move::EOType &, typename Move::EOType::ObjectiveVector >
{};
#endif

View file

@ -0,0 +1,51 @@
/*
* <moeoPopLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOPOPLS_H_
#define MOEOPOPLS_H_
#include <algo/moeoPopAlgo.h>
/**
* Abstract class for Population based multi-objective local search.
*/
template < class Move >
class moeoPopLS : public moeoPopAlgo < typename Move::EOType >
{};
#endif /*MOEOPOPLS_H_*/

View file

@ -0,0 +1,98 @@
#ifndef _eoTenTimeContinue_h
#define _eoTenTimeContinue_h
#include <time.h>
#include <iostream>
#include <sstream>
#include <fstream>
#include <eoContinue.h>
template< class EOT>
class eoTenTimeContinue: public eoContinue<EOT>
{
public:
eoTenTimeContinue(unsigned int _maxTime, std::string _fileName, moeoArchive<EOT> & _arch) :
start(time(0)), maxTime(_maxTime), id(1), fileName(_fileName), arch(_arch) {}
// _pop must be an archive
virtual bool operator() (const eoPop<EOT> & _pop)
{
unsigned int diff = (unsigned int) difftime(time(0), start);
if (diff >= (id * maxTime/10) )
{
time_t begin=time(0);
save(_pop);
id++;
start= start - (time(0)-begin);
//operator()(_pop);
}
if (diff >= maxTime)
{
return false;
}
return true;
}
virtual std::string className(void) const
{
return "eoTenTimeContinue";
}
void readFrom (std :: istream & __is)
{
__is >> start;
}
void printOn (std :: ostream & __os) const
{
__os << start << ' ' << std :: endl;
}
private:
time_t start;
unsigned int maxTime;
unsigned int id;
std::string fileName;
moeoArchive<EOT> & arch;
void save(const eoPop<EOT> & _pop)
{
// update the archive
arch(_pop);
// save the archive contents in a file
std::string tmp = fileName;
std::ostringstream os;
os << id;
tmp += '.';
tmp += os.str();
std::ofstream outfile(tmp.c_str());
// std::cout << "save " << tmp << " - " << difftime(time(0), start) << std::endl;
unsigned int nObj = EOT::ObjectiveVector::nObjectives();
for (unsigned int i=0; i<arch.size(); i++)
{
for (unsigned int j=0; j<nObj; j++)
{
outfile << arch[i].objectiveVector()[j];
if (j != nObj -1)
{
outfile << ' ';
}
}
outfile << std::endl;
}
outfile.close();
}
};
#endif

View file

@ -0,0 +1,107 @@
/*
* <moeoAllSolAllNeighborsExpl.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOALLSOLALLNEIGHBORSEXPL_H
#define _MOEOALLSOLALLNEIGHBORSEXPL_H
#include <eo>
#include <moeo>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
/**
* TODO
*/
template < class Move >
class moeoAllSolAllNeighborsExpl : public moeoPopNeighborhoodExplorer < Move >
{
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
moeoAllSolAllNeighborsExpl(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
{
Move move;
ObjectiveVector objVec;
for (unsigned int i=0; i<_src.size(); i++)
{
if (_src[i].flag() == 0)
{
moveInit(move, _src[i]);
do
{
objVec = incrEval(move, _src[i]);
if (! comparator (objVec, _src[i].objectiveVector()))
{
if (objVec != _src[i].objectiveVector())
{
_dest.push_back(_src[i]);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
}
}
}
while (nextMove(move, _src[i]));
_src[i].flag(1);
}
}
}
private:
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
/** comparator */
moeoParetoObjectiveVectorComparator<ObjectiveVector> comparator;
};
#endif /*_MOEOALLSOLALLNEIGHBORSEXPL_H_*/

View file

@ -0,0 +1,167 @@
/*
* <moeoAllSolOneNeighborExpl.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOALLSOLONENEIGHBOREXPL_H
#define _MOEOALLSOLONENEIGHBOREXPL_H
#include <eo>
#include <moeo>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
#include <queue>
/**
* TODO
*/
template < class Move >
class moeoAllSolOneNeighborExpl : public moeoPopNeighborhoodExplorer < Move >
{
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
moeoAllSolOneNeighborExpl(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
{
int id=0;
for (unsigned int i=0; i<_src.size(); i++)
{
//solution without move
if (_src[i].flag() == 0 )
{
//No move are available -> create a new Move
if (availableMove.empty())
{
//create a new move
Move newMove;
//add it to moveVector
moveVector.push_back(newMove);
//get the moveVector size
id = moveVector.size();
//add a flag to _src
_src[i].flag(-id);
//Init the move
moveInit(moveVector[id-1], _src[i]);
// Apply move or not
m(_src, _dest, i, moveVector[id-1]);
//If it the last move set solution as visited (flag >0) and set the move as available
if (!nextMove(moveVector[id-1], _src[i]))
{
_src[i].flag(1);
availableMove.push(id-1);
}
}
//A move is available -> get it
else
{
//get the id of an available move
id = availableMove.back();
//remove it from available move
availableMove.pop();
//add a flag to _src
_src[i].flag(-1 * (id+1));
//Init the move
moveInit(moveVector[id], _src[i]);
// Apply move or not
m(_src, _dest, i, moveVector[id]);
if (!nextMove(moveVector[id], _src[i]))
{
_src[i].flag(1);
availableMove.push(id);
}
}
}
//solution which have already a move -> do next move
else if (_src[i].flag() < 0)
{
id= (_src[i].flag() + 1) * -1;
m(_src, _dest, i, moveVector[id]);
if (!nextMove(moveVector[id], _src[i]))
{
_src[i].flag(1);
availableMove.push(id);
}
}
}
}
void m(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest, unsigned int i, Move & move)
{
ObjectiveVector objVec = incrEval(move, _src[i]);
// add the moved sol ?
if (! comparator (objVec, _src[i].objectiveVector()))
{
if (objVec != _src[i].objectiveVector())
{
_dest.push_back(_src[i]);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
}
}
}
private:
/** queue of available move */
std::queue < unsigned int > availableMove;
/** the move vector*/
std::vector < Move > moveVector;
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
/** comparator */
moeoParetoObjectiveVectorComparator<ObjectiveVector> comparator;
};
#endif /*_MOEOALLSOLONENEIGHBOREXPL_H_*/

View file

@ -0,0 +1,226 @@
/*
* <moeoArchive.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEONEWARCHIVE_H_
#define MOEONEWARCHIVE_H_
#include <comparator/moeoObjectiveVectorComparator.h>
#include <comparator/moeoParetoObjectiveVectorComparator.h>
#include <archive/moeoArchive.h>
template < class MOEOT >
class moeoNewArchive : public moeoArchive < MOEOT >
{
public:
using moeoArchive < MOEOT > :: size;
using moeoArchive < MOEOT > :: operator[];
using moeoArchive < MOEOT > :: back;
using moeoArchive < MOEOT > :: pop_back;
/**
* The type of an objective vector for a solution
*/
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
*/
moeoNewArchive() : moeoArchive < MOEOT >(), comparator(paretoComparator)
{}
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
*/
moeoNewArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : eoPop < MOEOT >(), comparator(_comparator)
{}
/**
* Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor
* @param _objectiveVector the objective vector to compare with the current archive
*/
bool dominates (const ObjectiveVector & _objectiveVector) const
{
for (unsigned int i = 0; i<size(); i++)
{
// if _objectiveVector is dominated by the ith individual of the archive...
if ( comparator(_objectiveVector, operator[](i).objectiveVector()) )
{
return true;
}
}
return false;
}
/**
* Returns true if the current archive already contains a solution with the same objective values than _objectiveVector
* @param _objectiveVector the objective vector to compare with the current archive
*/
bool contains (const ObjectiveVector & _objectiveVector) const
{
for (unsigned int i = 0; i<size(); i++)
{
if (operator[](i).objectiveVector() == _objectiveVector)
{
return true;
}
}
return false;
}
/**
* Updates the archive with a given individual _moeo
* @param _moeo the given individual
* @return true if _moeo is added to the archive
*/
bool operator()(const MOEOT & _moeo)
{
return update(_moeo);
}
/**
* Updates the archive with a given population _pop
* @param _pop the given population
* @return true if a _pop[i] is added to the archive
*/
bool operator()(const eoPop < MOEOT > & _pop)
{
bool res = false;
for (unsigned int i=0; i<_pop.size(); i++)
{
res = (*this).update(_pop[i]) || res;
}
return res;
}
/**
* Returns true if the current archive contains the same objective vectors than the given archive _arch
* @param _arch the given archive
*/
bool equals (const moeoArchive < MOEOT > & _arch)
{
for (unsigned int i=0; i<size(); i++)
{
if (! _arch.contains(operator[](i).objectiveVector()))
{
return false;
}
}
for (unsigned int i=0; i<_arch.size() ; i++)
{
if (! contains(_arch[i].objectiveVector()))
{
return false;
}
}
return true;
}
private:
/** The moeoObjectiveVectorComparator used to compare solutions */
moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
/** A moeoObjectiveVectorComparator based on Pareto dominance (used as default) */
moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
/**
* Updates the archive with a given individual _moeo *** NEW ***
* @param _moeo the given individual
*/
bool update(const MOEOT & _moeo)
{
// first step: removing the dominated solutions from the archive
for (unsigned int j=0; j<size();)
{
// if the jth solution contained in the archive is dominated by _moeo
if ( comparator(operator[](j).objectiveVector(), _moeo.objectiveVector()) )
{
operator[](j) = back();
pop_back();
}
/////////////////////////////////////////////////////////////////////
// else if (_moeo.objectiveVector() == operator[](j).objectiveVector())
// {
// operator[](j) = back();
// pop_back();
// }
/////////////////////////////////////////////////////////////////////
else
{
j++;
}
}
// second step: is _moeo dominated?
bool dom = false;
for (unsigned int j=0; j<size(); j++)
{
// if _moeo is dominated by the jth solution contained in the archive
if ( comparator(_moeo.objectiveVector(), operator[](j).objectiveVector()) )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
else if ( _moeo.objectiveVector() == operator[](j).objectiveVector() )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
}
if (!dom)
{
push_back(_moeo);
}
return !dom;
}
};
#endif /*MOEONEWARCHIVE_H_ */

View file

@ -0,0 +1,230 @@
/*
* <moeoArchive.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEONEWBOUNDEDARCHIVE_H_
#define MOEONEWBOUNDEDARCHIVE_H_
#include <comparator/moeoObjectiveVectorComparator.h>
#include <comparator/moeoParetoObjectiveVectorComparator.h>
#include <archive/moeoArchive.h>
template < class MOEOT >
class moeoNewBoundedArchive : public moeoArchive < MOEOT >
{
public:
using moeoArchive < MOEOT > :: size;
using moeoArchive < MOEOT > :: operator[];
using moeoArchive < MOEOT > :: back;
using moeoArchive < MOEOT > :: pop_back;
/**
* The type of an objective vector for a solution
*/
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
*/
moeoNewBoundedArchive(unsigned int _maxSize=100) : moeoArchive < MOEOT >(), comparator(paretoComparator), maxSize(_maxSize)
{}
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
*/
moeoNewBoundedArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, unsigned int _maxSize=100) : eoPop < MOEOT >(), comparator(_comparator), maxSize(_maxSize)
{}
/**
* Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor
* @param _objectiveVector the objective vector to compare with the current archive
*/
bool dominates (const ObjectiveVector & _objectiveVector) const
{
for (unsigned int i = 0; i<size(); i++)
{
// if _objectiveVector is dominated by the ith individual of the archive...
if ( comparator(_objectiveVector, operator[](i).objectiveVector()) )
{
return true;
}
}
return false;
}
/**
* Returns true if the current archive already contains a solution with the same objective values than _objectiveVector
* @param _objectiveVector the objective vector to compare with the current archive
*/
bool contains (const ObjectiveVector & _objectiveVector) const
{
for (unsigned int i = 0; i<size(); i++)
{
if (operator[](i).objectiveVector() == _objectiveVector)
{
return true;
}
}
return false;
}
/**
* Updates the archive with a given individual _moeo
* @param _moeo the given individual
* @return true if _moeo is added to the archive
*/
bool operator()(const MOEOT & _moeo)
{
return update(_moeo);
}
/**
* Updates the archive with a given population _pop
* @param _pop the given population
* @return true if a _pop[i] is added to the archive
*/
bool operator()(const eoPop < MOEOT > & _pop)
{
bool res = false;
for (unsigned int i=0; i<_pop.size(); i++)
{
res = (*this).update(_pop[i]) || res;
}
return res;
}
/**
* Returns true if the current archive contains the same objective vectors than the given archive _arch
* @param _arch the given archive
*/
bool equals (const moeoArchive < MOEOT > & _arch)
{
for (unsigned int i=0; i<size(); i++)
{
if (! _arch.contains(operator[](i).objectiveVector()))
{
return false;
}
}
for (unsigned int i=0; i<_arch.size() ; i++)
{
if (! contains(_arch[i].objectiveVector()))
{
return false;
}
}
return true;
}
private:
/** The moeoObjectiveVectorComparator used to compare solutions */
moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
/** A moeoObjectiveVectorComparator based on Pareto dominance (used as default) */
moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
/** Max size of archive*/
unsigned int maxSize;
/**
* Updates the archive with a given individual _moeo *** NEW ***
* @param _moeo the given individual
*/
bool update(const MOEOT & _moeo)
{
// first step: removing the dominated solutions from the archive
for (unsigned int j=0; j<size();)
{
// if the jth solution contained in the archive is dominated by _moeo
if ( comparator(operator[](j).objectiveVector(), _moeo.objectiveVector()) )
{
operator[](j) = back();
pop_back();
}
/////////////////////////////////////////////////////////////////////
// else if (_moeo.objectiveVector() == operator[](j).objectiveVector())
// {
// operator[](j) = back();
// pop_back();
// }
/////////////////////////////////////////////////////////////////////
else
{
j++;
}
}
// second step: is _moeo dominated?
bool dom = false;
for (unsigned int j=0; j<size(); j++)
{
// if _moeo is dominated by the jth solution contained in the archive
if ( comparator(_moeo.objectiveVector(), operator[](j).objectiveVector()) )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
else if ( _moeo.objectiveVector() == operator[](j).objectiveVector() )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
}
if (!dom)
{
//if(size()<maxSize)
push_back(_moeo);
//else
//dom=!dom;
}
return !dom;
}
};
#endif /*MOEONEWBOUNDEDARCHIVE_H_ */

View file

@ -0,0 +1,104 @@
/*
* <moeoOneSolAllNeighborsExpl.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOONESOLALLNEIGHBORSEXPL_H
#define _MOEOONESOLALLNEIGHBORSEXPL_H
#include <eo>
#include <moeo>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
/**
* TODO
*/
template < class Move >
class moeoOneSolAllNeighborsExpl : public moeoPopNeighborhoodExplorer < Move >
{
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
moeoOneSolAllNeighborsExpl(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
{
Move move;
ObjectiveVector objVec;
unsigned int i = 0;
while (_src[i].flag() != 0)
i++;
moveInit(move, _src[i]);
do
{
objVec = incrEval(move, _src[i]);
if (! comparator (objVec, _src[i].objectiveVector()))
{
if (objVec != _src[i].objectiveVector())
{
_dest.push_back(_src[i]);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
}
}
}
while (nextMove(move, _src[i]));
_src[i].flag(1);
}
private:
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
/** comparator */
moeoParetoObjectiveVectorComparator<ObjectiveVector> comparator;
};
#endif /*_MOEOONESOLALLNEIGHBORSEXPL_H_*/

View file

@ -0,0 +1,190 @@
/*
* <moeoOneSolOneNeighborExpl.h>
* Copyright (C) DOLPHIN project-team, LIFL, INRIA Lille, 2009
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOONESOLONENEIGHBOREXPL_H
#define _MOEOONESOLONENEIGHBOREXPL_H
#include <eo>
#include <moeo>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
template < class Move >
class moeoOneSolOneNeighborExpl : public moeoPopNeighborhoodExplorer < Move >
{
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
moeoOneSolOneNeighborExpl(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval) {}
void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
{
// init
Move move;
ObjectiveVector objVec;
unsigned int i = eo::rng.random(_src.size()); // "-1" ???
moveInit(move, _src[i]);
// ttt
do
{
objVec = incrEval(move, _src[i]);
if (! comparator (objVec, _src[i].objectiveVector()))
{
if (objVec != _src[i].objectiveVector())
{
_dest.push_back(_src[i]);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
}
}
} while ( (_dest.size()==0) && nextMove(move,_src[i]) );
// si tous les voisins sont dominés (ie "! nextMove(move,_src[i])"), mettre le flag à ZERO !!!!!!!!!!!!!!!!!!!!!!!!!!!
}
private:
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
/** comparator */
moeoParetoObjectiveVectorComparator<ObjectiveVector> comparator;
/* la même solution est utilisée iteration après iteration (qd c'est possible) */
// void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
// {
// ObjectiveVector objVec;
// unsigned int i = 0;
// // setting _src[i]
// if (!start)
// {
// while (_src[i].flag() != 0)
// i++;
// moveInit(move, _src[i]);
// _src[i].flag(-1);
// }
// else
// {
// while ( (i < _src.size()) && (_src[i].flag() != -1) )
// i++;
// if (_src[i].flag() != -1)
// {
// i=0;
// while (_src[i].flag() != 0)
// i++;
// moveInit(move, _src[i]);
// _src[i].flag(-1);
// }
// }
// // ttt
// objVec = incrEval(move, _src[i]);
// if (! comparator (objVec, _src[i].objectiveVector()))
// {
// if (objVec != _src[i].objectiveVector())
// {
// _dest.push_back(_src[i]);
// move(_dest.back());
// _dest.back().objectiveVector(objVec);
// _dest.back().flag(0);
// }
// }
// // preparing the next iteration
// if (nextMove(move, _src[i]))
// {
// start=true;
// }
// else
// {
// start=false;
// _src[i].flag(1);
// }
// }
/* version 1 */
// if(!start){
// moveInit(move, _src[i]);
// _dest.push_back(_src[i]);
// sol = & _dest.back();
// move(*sol);
// sol->invalidate();
// eval(*sol);
// if(nextMove(move, _src[i]))
// start=true;
// else{
// start=false;
// _src[i].flag(1);
// }
// }
// else{
// _dest.push_back(_src[i]);
// sol = & _dest.back();
// //objVec = moveIncrEval(move, *sol);
// move(*sol);
// sol->invalidate();
// eval(*sol);
// //sol->objectiveVector(objVec);
// //if (comparator(sol, _src[i]))
// if(!nextMove(move, _src[i])){
// start=false;
// _src[i].flag(1);
// }
// }
// }
};
#endif /*_MOEOONESOLONENEIGHBOREXPL_H_*/

View file

@ -0,0 +1,51 @@
/*
* <moeoPopLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOPOPLS_H_
#define MOEOPOPLS_H_
#include <algo/moeoPopAlgo.h>
/**
* Abstract class for Population based multi-objective local search.
*/
template < class Move >
class moeoPopLS : public moeoPopAlgo < typename Move::EOType >
{};
#endif /*MOEOPOPLS_H_*/

View file

@ -0,0 +1,51 @@
/*
* <moeoPopNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOPOPNEIGHBORHOODEXPLORER_H
#define _MOEOPOPNEIGHBORHOODEXPLORER_H
#include <eo>
#include <moeo>
/**
* TODO
*/
template < class Move >
class moeoPopNeighborhoodExplorer{};
#endif /*MOEONEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,112 @@
/*
* <moeoRestartLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEORESTARTLS_H
#define _MOEORESTARTLS_H
#include <eo>
#include <moeo>
#include <moeoPopLS.h>
#include <moeoUnifiedDominanceBasedLS.h>
#include <moeoNewArchive.h>
#include <moeoPopNeighborhoodExplorer.h>
template < class Move >
class moeoRestartLS : public moeoPopLS < Move >
{
public:
typedef typename Move::EOType MOEOT;
moeoRestartLS(
eoInit < MOEOT > & _init,
eoEvalFunc < MOEOT > & _eval,
eoContinue < MOEOT > & _continuator,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoArchive < MOEOT > & _globalArchive,
std::string _fileName) :
init(_init), eval(_eval), continuator(_continuator), ls(continuator, _eval, internalArchive, _explorer), globalArchive(_globalArchive), fileName(_fileName), count(0) {}
virtual void operator()(eoPop<MOEOT> & _pop)
{
do
{
internalArchive.resize(0);
for (unsigned int i=0; i<_pop.size(); i++)
{
init(_pop[i]);
_pop[i].invalidateObjectiveVector();
eval(_pop[i]);
}
ls(_pop);
count++;
globalArchive(internalArchive);
} while (continuator(globalArchive));
save();
// std::cout << "Final archive\n";
// globalArchive.sortedPrintOn(std::cout);
// std::cout << std::endl;
}
protected:
eoInit < MOEOT > & init;
eoEvalFunc < MOEOT > & eval;
eoContinue < MOEOT > & continuator;
moeoNewArchive < MOEOT > internalArchive;
moeoUnifiedDominanceBasedLS < Move > ls;
moeoArchive < MOEOT > & globalArchive;
std::string & fileName;
unsigned int count;
void save()
{
// save count in a file
std::string tmp = fileName;
tmp += ".stat";
std::ofstream outfile(tmp.c_str());
outfile << count << std::endl;
outfile.close();
}
};
#endif /*_MOEORESTARTLS_H*/

View file

@ -0,0 +1,100 @@
/*
* <moeoSimpleAllSolOneNeighborExpl.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOSIMPLEALLSOLONENEIGHBOREXPL_H
#define _MOEOSIMPLEALLSOLONENEIGHBOREXPL_H
#include <eo>
#include <moeo>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
#include <queue>
/**
* TODO
*/
template < class Move >
class moeoSimpleAllSolOneNeighborExpl : public moeoPopNeighborhoodExplorer < Move >
{
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
moeoSimpleAllSolOneNeighborExpl(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
{
for (unsigned int i=0; i<_src.size(); i++)
{
moveInit(move, _src[i]);
// Apply move or not
ObjectiveVector objVec = incrEval(move, _src[i]);
_dest.push_back(_src[i]);
move(_dest.back());
_dest.back().objectiveVector(objVec);
//_dest.back().flag(0);
//m(_src, _dest, i, move);
}
}
private:
/** queue of available move */
//std::queue < unsigned int > availableMove;
/** the move vector*/
Move move;
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
};
#endif /*_MOEOSIMPLEALLSOLONENEIGHBOREXPL_H_*/

View file

@ -0,0 +1,176 @@
/*
* <moeoOneSolOneNeighborExpl.h>
* Copyright (C) DOLPHIN project-team, LIFL, INRIA Lille, 2009
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOSIMPLEONESOLONENEIGHBOREXPL_H
#define _MOEOSIMPLEONESOLONENEIGHBOREXPL_H
#include <eo>
#include <moeo>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
template < class Move >
class moeoSimpleOneSolOneNeighborExpl : public moeoPopNeighborhoodExplorer < Move >
{
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
moeoSimpleOneSolOneNeighborExpl(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval) {}
void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
{
// init
Move move;
ObjectiveVector objVec;
unsigned int i = eo::rng.random(_src.size()); // "-1" ???
moveInit(move, _src[i]);
// ttt
objVec = incrEval(move, _src[i]);
_dest.push_back(_src[i]);
move(_dest.back());
_dest.back().objectiveVector(objVec);
//_dest.back().flag(0);
// si tous les voisins sont dominés (ie "! nextMove(move,_src[i])"), mettre le flag à ZERO !!!!!!!!!!!!!!!!!!!!!!!!!!!
}
private:
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the neighborhood explorer */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
/* la même solution est utilisée iteration après iteration (qd c'est possible) */
// void operator()(eoPop < MOEOT > & _src, eoPop < MOEOT > & _dest)
// {
// ObjectiveVector objVec;
// unsigned int i = 0;
// // setting _src[i]
// if (!start)
// {
// while (_src[i].flag() != 0)
// i++;
// moveInit(move, _src[i]);
// _src[i].flag(-1);
// }
// else
// {
// while ( (i < _src.size()) && (_src[i].flag() != -1) )
// i++;
// if (_src[i].flag() != -1)
// {
// i=0;
// while (_src[i].flag() != 0)
// i++;
// moveInit(move, _src[i]);
// _src[i].flag(-1);
// }
// }
// // ttt
// objVec = incrEval(move, _src[i]);
// if (! comparator (objVec, _src[i].objectiveVector()))
// {
// if (objVec != _src[i].objectiveVector())
// {
// _dest.push_back(_src[i]);
// move(_dest.back());
// _dest.back().objectiveVector(objVec);
// _dest.back().flag(0);
// }
// }
// // preparing the next iteration
// if (nextMove(move, _src[i]))
// {
// start=true;
// }
// else
// {
// start=false;
// _src[i].flag(1);
// }
// }
/* version 1 */
// if(!start){
// moveInit(move, _src[i]);
// _dest.push_back(_src[i]);
// sol = & _dest.back();
// move(*sol);
// sol->invalidate();
// eval(*sol);
// if(nextMove(move, _src[i]))
// start=true;
// else{
// start=false;
// _src[i].flag(1);
// }
// }
// else{
// _dest.push_back(_src[i]);
// sol = & _dest.back();
// //objVec = moveIncrEval(move, *sol);
// move(*sol);
// sol->invalidate();
// eval(*sol);
// //sol->objectiveVector(objVec);
// //if (comparator(sol, _src[i]))
// if(!nextMove(move, _src[i])){
// start=false;
// _src[i].flag(1);
// }
// }
// }
};
#endif /*_MOEOSIMPLEONESOLONENEIGHBOREXPL_H_*/

View file

@ -0,0 +1,114 @@
/*
* <moeoUnifiedDominanceBasedLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOUNIFIEDDOMINANCEBASEDLS_H
#define _MOEOUNIFIEDDOMINANCEBASEDLS_H
#include <eo>
#include <moeo>
#include <moeoPopLS.h>
#include <moeoPopNeighborhoodExplorer.h>
template < class Move >
class moeoUnifiedDominanceBasedLS : public moeoPopLS < Move >
{
public:
typedef typename Move::EOType MOEOT;
moeoUnifiedDominanceBasedLS(
eoContinue < MOEOT > & _continuator,
eoEvalFunc < MOEOT > & _eval,
moeoArchive < MOEOT > & _archive,
moeoPopNeighborhoodExplorer < Move > & _explorer) :
continuator(_continuator), loopEval(_eval), popEval(loopEval), archive(_archive), explorer(_explorer) {}
/**
* Applies a few generation of evolution to the population _pop.
* @param _pop the population
*/
virtual void operator()(eoPop < MOEOT > & _pop)
{
eoPop < MOEOT > tmp_pop;
popEval(tmp_pop, _pop);
archive(_pop);
do{
tmp_pop.resize(0);
//"perturber" la population
explorer(archive, tmp_pop);
//mise à jour de la pop ou archive
archive(tmp_pop);
}
while (continuator(archive) && naturalContinuator(archive));
// std::cout << "Final archive\n";
// archive.sortedPrintOn(std::cout);
// std::cout << std::endl;
}
protected:
eoContinue < MOEOT > & continuator;
eoPopLoopEval < MOEOT > loopEval;
eoPopEvalFunc < MOEOT > & popEval;
moeoArchive < MOEOT > & archive;
moeoPopNeighborhoodExplorer < Move > & explorer;
class moeoContinue : public eoUF < eoPop < MOEOT > &, bool >
{
public:
moeoContinue(){}
virtual bool operator()(eoPop < MOEOT > & _pop)
{
bool res = false;
unsigned int i=0;
while (!res && i < _pop.size()){
res = (_pop[i].flag() != 1);
i++;
}
return res;
}
} naturalContinuator;
};
#endif /*MOEOUNIFIEDDOMINANCEBASEDLS_H_*/

View file

@ -0,0 +1 @@
#Dummy file

View file

@ -0,0 +1,21 @@
#include "eoAmeliorationContinue.h"
#include "eoTenTimeContinue.h"
#include "moeoExhaustiveNeighborhoodExplorer.h"
#include "moeoExhaustiveUnvisitedSelect.h"
#include "moeoFirstImprovingNeighborhoodExplorer.h"
#include "moeoNewArchive.h"
#include "moeoNewBoundedArchive.h"
#include "moeoDMLSArchive.h"
#include "moeoNoDesimprovingNeighborhoodExplorer.h"
#include "moeoNumberUnvisitedSelect.h"
#include "moeoPopLS.h"
#include "moeoPopNeighborhoodExplorer.h"
#include "moeoRestartLS.h"
#include "moeoSimpleSubNeighborhoodExplorer.h"
#include "moeoUnifiedDominanceBasedLS.h"
#include "moeoUnvisitedSelect.h"
#include "moeoPLS1.h"
#include "moeoPLS2.h"
#include "moeoDMLSGenUpdater.h"
#include "moeoDMLSMonOp.h"

View file

@ -0,0 +1,54 @@
#ifndef _eoAmeliorationContinue_h
#define _eoAmeliorationContinue_h
#include <iostream>
#include <sstream>
#include <fstream>
#include <eoContinue.h>
#include <moeoDMLSArchive.h>
#include <archive/moeoArchive.h>
template< class EOT>
class eoAmeliorationContinue: public eoContinue<EOT>
{
public:
eoAmeliorationContinue(moeoDMLSArchive<EOT> & _arch, unsigned int _neighborhoodSize, bool _multiply) : arch(_arch),maxGen(_neighborhoodSize), neighborhoodSize(_neighborhoodSize), counter(0){
if(_multiply)
multiply=1;
else
multiply=0;
}
// _pop must be an archive
virtual bool operator() (const eoPop<EOT> & _pop)
{
bool res;
maxGen=((arch.size()-1) * multiply +1) * neighborhoodSize;
if(arch.modified())
counter=0;
else
counter++;
//std::cout << counter << " " << maxGen << std::endl;
res = (counter < maxGen);
if(!res)
counter=0;
return res;
}
virtual std::string className(void) const
{
return "eoAmeliorationContinue";
}
private:
moeoDMLSArchive <EOT> & arch;
unsigned int maxGen;
unsigned int neighborhoodSize;
unsigned int counter;
unsigned int multiply;
};
#endif

View file

@ -0,0 +1,99 @@
#ifndef _eoTenTimeContinue_h
#define _eoTenTimeContinue_h
#include <time.h>
#include <iostream>
#include <sstream>
#include <fstream>
#include <eoContinue.h>
template< class EOT>
class eoTenTimeContinue: public eoContinue<EOT>
{
public:
eoTenTimeContinue(unsigned int _maxTime, unsigned int _cut, std::string _fileName, moeoArchive<EOT> & _arch) :
start(time(0)), maxTime(_maxTime), cut(_cut), id(1), fileName(_fileName), arch(_arch) {}
// _pop must be an archive
virtual bool operator() (const eoPop<EOT> & _pop)
{
unsigned int diff = (unsigned int) difftime(time(0), start);
if (diff >= (id * maxTime/cut) )
{
time_t begin=time(0);
save(_pop);
id++;
start= start - (time(0)-begin);
operator()(_pop);
}
if (diff >= maxTime)
{
return false;
}
return true;
}
virtual std::string className(void) const
{
return "eoTenTimeContinue";
}
void readFrom (std :: istream & __is)
{
__is >> start;
}
void printOn (std :: ostream & __os) const
{
__os << start << ' ' << std :: endl;
}
private:
time_t start;
unsigned int maxTime;
unsigned int id;
unsigned int cut;
std::string fileName;
moeoArchive<EOT> & arch;
void save(const eoPop<EOT> & _pop)
{
// update the archive
arch(_pop);
// save the archive contents in a file
std::string tmp = fileName;
std::ostringstream os;
os << id;
tmp += '.';
tmp += os.str();
std::ofstream outfile(tmp.c_str());
// std::cout << "save " << tmp << " - " << difftime(time(0), start) << std::endl;
unsigned int nObj = EOT::ObjectiveVector::nObjectives();
for (unsigned int i=0; i<arch.size(); i++)
{
for (unsigned int j=0; j<nObj; j++)
{
outfile << arch[i].objectiveVector()[j];
if (j != nObj -1)
{
outfile << ' ';
}
}
outfile << std::endl;
}
outfile.close();
}
};
#endif

View file

@ -0,0 +1,189 @@
/*
* <moeoDMLSArchive.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEODMLSARCHIVE_H_
#define MOEODMLSARCHIVE_H_
#include <comparator/moeoObjectiveVectorComparator.h>
#include <comparator/moeoParetoObjectiveVectorComparator.h>
#include <archive/moeoArchive.h>
template < class MOEOT >
class moeoDMLSArchive : public moeoArchive < MOEOT >
{
public:
using moeoArchive < MOEOT > :: size;
using moeoArchive < MOEOT > :: operator[];
using moeoArchive < MOEOT > :: back;
using moeoArchive < MOEOT > :: pop_back;
/**
* The type of an objective vector for a solution
*/
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
*/
moeoDMLSArchive() : moeoArchive < MOEOT >(), comparator(paretoComparator), isModified(false)
{}
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
*/
moeoDMLSArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : moeoArchive < MOEOT >(), comparator(_comparator), isModified(false)
{}
/**
* Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor
* @param _objectiveVector the objective vector to compare with the current archive
*/
bool dominates (const ObjectiveVector & _objectiveVector) const
{
for (unsigned int i = 0; i<size(); i++)
{
// if _objectiveVector is dominated by the ith individual of the archive...
if ( comparator(_objectiveVector, operator[](i).objectiveVector()) )
{
return true;
}
}
return false;
}
/**
* Returns true if the current archive already contains a solution with the same objective values than _objectiveVector
* @param _objectiveVector the objective vector to compare with the current archive
*/
bool contains (const ObjectiveVector & _objectiveVector) const
{
for (unsigned int i = 0; i<size(); i++)
{
if (operator[](i).objectiveVector() == _objectiveVector)
{
return true;
}
}
return false;
}
/**
* Updates the archive with a given individual _moeo
* @param _moeo the given individual
* @return true if _moeo is added to the archive
*/
bool operator()(const MOEOT & _moeo)
{
return update(_moeo);
}
/**
* Updates the archive with a given population _pop
* @param _pop the given population
* @return true if a _pop[i] is added to the archive
*/
bool operator()(const eoPop < MOEOT > & _pop)
{
bool res = false;
for (unsigned int i=0; i<_pop.size(); i++)
{
res = (*this).update(_pop[i]) || res;
}
return res;
}
/**
* Returns true if the current archive contains the same objective vectors than the given archive _arch
* @param _arch the given archive
*/
bool equals (const moeoArchive < MOEOT > & _arch)
{
for (unsigned int i=0; i<size(); i++)
{
if (! _arch.contains(operator[](i).objectiveVector()))
{
return false;
}
}
for (unsigned int i=0; i<_arch.size() ; i++)
{
if (! contains(_arch[i].objectiveVector()))
{
return false;
}
}
return true;
}
bool modified(){
bool tmp = isModified;
isModified = false;
return tmp;
}
protected:
/** bool*/
bool isModified;
private:
/** The moeoObjectiveVectorComparator used to compare solutions */
moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
/** A moeoObjectiveVectorComparator based on Pareto dominance (used as default) */
moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
/**
* Updates the archive with a given individual _moeo *** NEW ***
* @param _moeo the given individual
*/
virtual bool update(const MOEOT & _moeo) = 0;
};
#endif /*MOEODMLSARCHIVE_H_ */

View file

@ -0,0 +1,106 @@
#include <eoGenContinue.h>
#include <eoEvalFunc.h>
#include <archive/moeoArchive.h>
#include <archive/moeoUnboundedArchive.h>
#include <moeoPopNeighborhoodExplorer.h>
#include <moeoUnvisitedSelect.h>
#include <moeoUnifiedDominanceBasedLS.h>
/** updater allowing hybridization with a dmls at checkpointing*/
template < class Move >
class moeoDMLSGenUpdater : public eoUpdater
{
typedef typename Move::EOType MOEOT;
public :
/** Ctor with a dmls.
* @param _dmls the dmls use for the hybridization (!!! Special care is needed when choosing the continuator of the dmls !!!)
* @param _dmlsArchive an archive (used to instantiate the dmls)
* @param _globalArchive the same archive used in the other algorithm
* @param _continuator is a Generational Continuator which allow to run dmls on the global archive each X generation(s)
* @param _verbose verbose mode
*/
moeoDMLSGenUpdater(moeoUnifiedDominanceBasedLS <Move> & _dmls,
moeoArchive < MOEOT > & _dmlsArchive,
moeoArchive < MOEOT > & _globalArchive,
eoGenContinue < MOEOT > & _continuator,
bool _verbose = true):
defaultContinuator(0), dmlsArchive(_dmlsArchive), dmls(_dmls), globalArchive(_globalArchive), continuator(_continuator), verbose(_verbose){}
/** Ctor with a dmls.
* @param _eval a evaluation function (used to instantiate the dmls)
* @param _explorer a neighborhood explorer (used to instantiate the dmls)
* @param _select a selector of unvisited individuals of a population (used to instantiate the dmls)
* @param _globalArchive the same archive used in the other algorithm
* @param _continuator is a Generational Continuator which allow to run dmls on the global archive each X generation(s)
* @param _step (default=1) is the number of Generation of dmls (used to instantiate the defaultContinuator for the dmls)
* @param _verbose verbose mode
*/
moeoDMLSGenUpdater(eoEvalFunc < MOEOT > & _eval,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoUnvisitedSelect < MOEOT > & _select,
moeoArchive < MOEOT > & _globalArchive,
eoGenContinue < MOEOT > & _continuator,
unsigned int _step=1,
bool _verbose = true):
defaultContinuator(_step), dmlsArchive(defaultArchive), dmls(defaultContinuator, _eval, defaultArchive, _explorer, _select), globalArchive(_globalArchive), continuator(_continuator), verbose(_verbose){}
/** Ctor with a dmls.
* @param _eval a evaluation function (used to instantiate the dmls)
* @param _dmlsArchive an archive (used to instantiate the dmls)
* @param _explorer a neighborhood explorer (used to instantiate the dmls)
* @param _select a selector of unvisited individuals of a population (used to instantiate the dmls)
* @param _globalArchive the same archive used in the other algorithm
* @param _continuator is a Generational Continuator which allow to run dmls on the global archive each X generation(s)
* @param _step (default=1) is the number of Generation of dmls (used to instantiate the defaultContinuator for the dmls)
* @param _verbose verbose mode
*/
moeoDMLSGenUpdater(eoEvalFunc < MOEOT > & _eval,
moeoArchive < MOEOT > & _dmlsArchive,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoUnvisitedSelect < MOEOT > & _select,
moeoArchive < MOEOT > & _globalArchive,
eoGenContinue < MOEOT > & _continuator,
unsigned int _step=1,
bool _verbose = true):
defaultContinuator(_step), dmlsArchive(_dmlsArchive), dmls(defaultContinuator, _eval, _dmlsArchive, _explorer, _select), globalArchive(_globalArchive), continuator(_continuator), verbose(_verbose){}
/** functor which allow to run the dmls*/
virtual void operator()()
{
if(!continuator(globalArchive)){
if(verbose)
std::cout << std::endl << "moeoDMLSGenUpdater: dmls start" << std::endl;
dmls(globalArchive);
globalArchive(dmlsArchive);
if(verbose)
std::cout << "moeoDMLSGenUpdater: dmls stop" << std::endl;
defaultContinuator.totalGenerations(defaultContinuator.totalGenerations());
if(verbose)
std::cout << "the other algorithm restart for " << continuator.totalGenerations() << " generation(s)" << std::endl << std::endl;
continuator.totalGenerations(continuator.totalGenerations());
}
}
/**
* @return the class name
*/
virtual std::string className(void) const { return "moeoDMLSGenUpdater"; }
private:
/** defaultContinuator used for the dmls */
eoGenContinue < MOEOT > defaultContinuator;
/** dmls archive */
moeoArchive < MOEOT > & dmlsArchive;
/** default archive used for the dmls */
moeoUnboundedArchive < MOEOT > defaultArchive;
/** the dmls */
moeoUnifiedDominanceBasedLS <Move> dmls;
/** the global archive */
moeoArchive < MOEOT > & globalArchive;
/** continuator used to run the dmls each X generation(s) */
eoGenContinue < MOEOT > & continuator;
/** verbose mode */
bool verbose;
};

View file

@ -0,0 +1,91 @@
#include <eoGenContinue.h>
#include <utils/eoRNG.h>
#include <eoEvalFunc.h>
#include <archive/moeoArchive.h>
#include <archive/moeoUnboundedArchive.h>
#include <moeoPopNeighborhoodExplorer.h>
#include <moeoUnvisitedSelect.h>
#include <moeoUnifiedDominanceBasedLS.h>
/** eoMonOp allowing hybridization with a dmls at mutation */
template < class Move >
class moeoDMLSMonOp : public eoMonOp < typename Move::EOType >
{
typedef typename Move::EOType MOEOT;
public :
/** Ctor with a dmls.
* @param _dmls the dmls use for the hybridization (!!! Special care is needed when choosing the continuator of the dmls !!!)
* @param _dmlsArchive an archive (used to instantiate the dmls)
* @param _verbose verbose mode
*/
moeoDMLSMonOp(moeoUnifiedDominanceBasedLS <Move> & _dmls,
moeoArchive < MOEOT > & _dmlsArchive,
bool _verbose = true):
defaultContinuator(0), dmlsArchive(_dmlsArchive), dmls(_dmls), verbose(_verbose) {}
/** Ctor with a dmls.
* @param _eval a evaluation function (used to instantiate the dmls)
* @param _explorer a neighborhood explorer (used to instantiate the dmls)
* @param _select a selector of unvisited individuals of a population (used to instantiate the dmls)
* @param _step (default=1) is the number of Generation of dmls (used to instantiate the defaultContinuator for the dmls)
* @param _verbose verbose mode
*/
moeoDMLSMonOp(eoEvalFunc < MOEOT > & _eval,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoUnvisitedSelect < MOEOT > & _select,
unsigned int _step=1,
bool _verbose = true):
defaultContinuator(_step), dmlsArchive(defaultArchive), dmls(defaultContinuator, _eval, defaultArchive, _explorer, _select), verbose(_verbose){}
/** Ctor with a dmls.
* @param _eval a evaluation function (used to instantiate the dmls)
* @param _dmlsArchive an archive (used to instantiate the dmls)
* @param _explorer a neighborhood explorer (used to instantiate the dmls)
* @param _select a selector of unvisited individuals of a population (used to instantiate the dmls)
* @param _step (default=1) is the number of Generation of dmls (used to instantiate the defaultContinuator for the dmls)
* @param _verbose verbose mode
*/
moeoDMLSMonOp(eoEvalFunc < MOEOT > & _eval,
moeoArchive < MOEOT > & _dmlsArchive,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoUnvisitedSelect < MOEOT > & _select,
unsigned int _step=1,
bool _verbose = true):
defaultContinuator(_step), dmlsArchive(_dmlsArchive), dmls(defaultContinuator, _eval, _dmlsArchive, _explorer, _select), verbose(_verbose){}
/** functor which allow to run the dmls on a MOEOT and return one of the resulting archive*/
bool operator()( MOEOT & _moeo)
{
if(verbose)
std::cout << std::endl << "moeoDMLSMonOp: dmls start" << std::endl;
unsigned int tmp;
eoPop < MOEOT> pop;
pop.push_back(_moeo);
dmls(pop);
tmp = rng.random(dmlsArchive.size());
_moeo = dmlsArchive[tmp];
defaultContinuator.totalGenerations(defaultContinuator.totalGenerations());
if(verbose)
std::cout << "moeoDMLSMonOp: dmls stop" << std::endl << std::endl;
return false;
}
/**
* @return the class name
*/
virtual std::string className(void) const { return "moeoDMLSMonOp"; }
private:
/** defaultContinuator used for the dmls */
eoGenContinue < MOEOT > defaultContinuator;
/** dmls archive */
moeoArchive < MOEOT > & dmlsArchive;
/** default archive used for the dmls */
moeoUnboundedArchive < MOEOT > defaultArchive;
/** the dmls */
moeoUnifiedDominanceBasedLS <Move> dmls;
/** verbose mode */
bool verbose;
};

View file

@ -0,0 +1,121 @@
/*
* <moeoExhaustiveNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOEXHAUSTIVENEIGHBORHOODEXPLORER_H
#define _MOEOEXHAUSTIVENEIGHBORHOODEXPLORER_H
#include <eoPop.h>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
#include <moeoPopNeighborhoodExplorer.h>
/**
* Explorer which explore all the neighborhood
*/
template < class Move >
class moeoExhaustiveNeighborhoodExplorer : public moeoPopNeighborhoodExplorer < Move >
{
/** Alias for the type */
typedef typename Move::EOType MOEOT;
/** Alias for the objeciveVector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
/**
* Ctor
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
*/
moeoExhaustiveNeighborhoodExplorer(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
/**
* functor to explore the neighborhood
* @param _src the population to explore
* @param _select contains index of individuals from the population to explore
* @param _dest contains new generated individuals
*/
void operator()(eoPop < MOEOT > & _src, std::vector < unsigned int> _select, eoPop < MOEOT > & _dest)
{
for(unsigned int i=0; i<_select.size(); i++)
explore(_src[_select[i]], _dest);
}
private:
/**
* explorer of one individual
* @param _src the individual to explore
* @param _dest contains new generated individuals
*/
void explore(MOEOT & _src , eoPop < MOEOT > & _dest)
{
moveInit(move, _src);
do
{
objVec = incrEval(move, _src);
_dest.push_back(_src);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
}
while (nextMove(move, _src));
_src.flag(1);
}
/** Move */
Move move;
/** ObjectiveVector */
ObjectiveVector objVec;
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the entity which allow to do a move */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
};
#endif /*_MOEOEXHAUSTIVENEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,78 @@
/*
* <moeoExhaustiveUnvisitedSelect.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOEXHAUSTIVEUNVISITEDSELECT_H
#define _MOEOEXHAUSTIVEUNVISITEDSELECT_H
#include <eoPop.h>
#include <moeoUnvisitedSelect.h>
/**
* Selector which select all unvisited individuals of a population
*/
template < class MOEOT >
class moeoExhaustiveUnvisitedSelect : public moeoUnvisitedSelect < MOEOT >
{
public:
/**
* Default ctor
*/
moeoExhaustiveUnvisitedSelect(){}
/**
* functor which return index of selected individuals of a population
* @param _src the population
* @return the vector contains index of all unvisited individuals of the population
*/
std::vector <unsigned int> operator()(eoPop < MOEOT > & _src)
{
std::vector <unsigned int> res;
res.resize(0);
for (unsigned int i=0; i<_src.size(); i++)
{
if (_src[i].flag() == 0)
res.push_back(i);
}
return res;
}
};
#endif /*_MOEOEXHAUSTIVEUNVISITEDSELECT_H_*/

View file

@ -0,0 +1,102 @@
/*
* <moeoFirstImprovingNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOFIRSTIMPROVINGNEIGHBORHOODEXPLORER_H
#define _MOEOFIRSTIMPROVINGNEIGHBORHOODEXPLORER_H
#include <moeoSubNeighborhoodExplorer.h>
/**
* Explorer which explore a part of the neighborhood
*/
template < class Move >
class moeoFirstImprovingNeighborhoodExplorer : public moeoSubNeighborhoodExplorer < Move >
{
/** Alias for the type */
typedef typename Move::EOType MOEOT;
/** Alias for the objeciveVector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
using moeoSubNeighborhoodExplorer<Move>::move;
using moeoSubNeighborhoodExplorer<Move>::objVec;
using moeoSubNeighborhoodExplorer<Move>::number;
public:
/**
* Ctor
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
*/
moeoFirstImprovingNeighborhoodExplorer(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moeoSubNeighborhoodExplorer< Move >(_moveInit, _nextMove, _incrEval, 0){}
private:
/**
* explorer of one individual
* @param _src the individual to explore
* @param _dest contains new generated individuals
*/
void explore(MOEOT & _src, eoPop < MOEOT > & _dest)
{
moveInit(move, _src);
do
{
objVec = incrEval(move, _src);
if(!comparator(objVec, _src.objectiveVector())){
_dest.push_back(_src);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
}
}
while (nextMove(move, _src) && (!comparator( _src.objectiveVector(),objVec)));
if(!nextMove(move, _src))
_src.flag(1);
}
/** Objective Vector Pareto Comparator */
moeoParetoObjectiveVectorComparator<ObjectiveVector> comparator;
};
#endif /*_MOEOFIRSTIMPROVINGNEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,113 @@
/*
* <moeoArchive.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEONEWARCHIVE_H_
#define MOEONEWARCHIVE_H_
#include <comparator/moeoObjectiveVectorComparator.h>
#include <comparator/moeoParetoObjectiveVectorComparator.h>
#include <moeoDMLSArchive.h>
template < class MOEOT >
class moeoNewArchive : public moeoDMLSArchive < MOEOT >
{
public:
using moeoArchive < MOEOT > :: size;
using moeoArchive < MOEOT > :: operator[];
using moeoArchive < MOEOT > :: back;
using moeoArchive < MOEOT > :: pop_back;
using moeoDMLSArchive < MOEOT > :: isModified;
private:
/**
* Updates the archive with a given individual _moeo *** NEW ***
* @param _moeo the given individual
*/
bool update(const MOEOT & _moeo)
{
// first step: removing the dominated solutions from the archive
for (unsigned int j=0; j<size();)
{
// if the jth solution contained in the archive is dominated by _moeo
if ( comparator(operator[](j).objectiveVector(), _moeo.objectiveVector()) )
{
operator[](j) = back();
pop_back();
}
/////////////////////////////////////////////////////////////////////
// else if (_moeo.objectiveVector() == operator[](j).objectiveVector())
// {
// operator[](j) = back();
// pop_back();
// }
/////////////////////////////////////////////////////////////////////
else
{
j++;
}
}
// second step: is _moeo dominated?
bool dom = false;
for (unsigned int j=0; j<size(); j++)
{
// if _moeo is dominated by the jth solution contained in the archive
if ( comparator(_moeo.objectiveVector(), operator[](j).objectiveVector()) )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
else if ( _moeo.objectiveVector() == operator[](j).objectiveVector() )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
}
if (!dom)
{
push_back(_moeo);
isModified=true;
}
return !dom;
}
};
#endif /*MOEONEWARCHIVE_H_ */

View file

@ -0,0 +1,150 @@
/*
* <moeoNewBoundedArchive.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEONEWBOUNDEDARCHIVE_H_
#define MOEONEWBOUNDEDARCHIVE_H_
#include <comparator/moeoObjectiveVectorComparator.h>
#include <comparator/moeoParetoObjectiveVectorComparator.h>
#include <archive/moeoArchive.h>
#include <moeoDMLSArchive.h>
template < class MOEOT >
class moeoNewBoundedArchive : public moeoDMLSArchive < MOEOT >
{
public:
using moeoArchive < MOEOT > :: size;
using moeoArchive < MOEOT > :: operator[];
using moeoArchive < MOEOT > :: back;
using moeoArchive < MOEOT > :: pop_back;
using moeoDMLSArchive < MOEOT > :: isModified;
/**
* The type of an objective vector for a solution
*/
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Default ctor.
* The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance
*/
moeoNewBoundedArchive(unsigned int _maxSize=100) : moeoDMLSArchive < MOEOT >(), maxSize(_maxSize)
{}
/**
* Ctor
* @param _comparator the moeoObjectiveVectorComparator used to compare solutions
*/
moeoNewBoundedArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator, unsigned int _maxSize=100) : moeoDMLSArchive < MOEOT >(_comparator), maxSize(_maxSize)
{}
private:
/** Max size of archive*/
unsigned int maxSize;
bool update(const eoPop < MOEOT > & _pop){
std::cout << "enter here\n\n";
return true;
}
/**
* Updates the archive with a given individual _moeo *** NEW ***
* @param _moeo the given individual
*/
bool update(const MOEOT & _moeo)
{
// first step: removing the dominated solutions from the archive
for (unsigned int j=0; j<size();)
{
// if the jth solution contained in the archive is dominated by _moeo
if ( comparator(operator[](j).objectiveVector(), _moeo.objectiveVector()) )
{
operator[](j) = back();
pop_back();
}
/////////////////////////////////////////////////////////////////////
// else if (_moeo.objectiveVector() == operator[](j).objectiveVector())
// {
// operator[](j) = back();
// pop_back();
// }
/////////////////////////////////////////////////////////////////////
else
{
j++;
}
}
// second step: is _moeo dominated?
bool dom = false;
for (unsigned int j=0; j<size(); j++)
{
// if _moeo is dominated by the jth solution contained in the archive
if ( comparator(_moeo.objectiveVector(), operator[](j).objectiveVector()) )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
else if ( _moeo.objectiveVector() == operator[](j).objectiveVector() )
{
dom = true;
break;
}
/////////////////////////////////////////////////////////////////////
}
if (!dom)
{
if(size()<maxSize){
push_back(_moeo);
isModified=true;
}
else
dom=!dom;
}
return !dom;
}
};
#endif /*MOEONEWBOUNDEDARCHIVE_H_ */

View file

@ -0,0 +1,104 @@
/*
* <moeoNoDesimprovingNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEONODESIMPROVINGNEIGHBORHOODEXPLORER_H
#define _MOEONODESIMPROVINGNEIGHBORHOODEXPLORER_H
#include <moeoSubNeighborhoodExplorer.h>
/**
* Explorer which explore a part of the neighborhood
*/
template < class Move >
class moeoNoDesimprovingNeighborhoodExplorer : public moeoSubNeighborhoodExplorer < Move >
{
/** Alias for the type */
typedef typename Move::EOType MOEOT;
/** Alias for the objeciveVector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
using moeoSubNeighborhoodExplorer<Move>::move;
using moeoSubNeighborhoodExplorer<Move>::objVec;
using moeoSubNeighborhoodExplorer<Move>::number;
public:
/**
* Ctor
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
*/
moeoNoDesimprovingNeighborhoodExplorer(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
: moeoSubNeighborhoodExplorer< Move >(_moveInit, _nextMove, _incrEval, 0){}
private:
/**
* explorer of one individual
* @param _src the individual to explore
* @param _dest contains new generated individuals
*/
void explore(MOEOT & _src, eoPop < MOEOT > & _dest)
{
bool tmp=true;
moveInit(move, _src);
do
{
objVec = incrEval(move, _src);
if(!comparator(objVec, _src.objectiveVector())){
_dest.push_back(_src);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
tmp=false;
}
}
while (nextMove(move, _src) && tmp);
if(!nextMove(move, _src))
_src.flag(1);
}
/** Objective Vector Pareto Comparator */
moeoParetoObjectiveVectorComparator<ObjectiveVector> comparator;
};
#endif /*_MOEONODESIMPROVINGNEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,88 @@
/*
* <moeoNumberUnvisitedSelect.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEONUMBERUNVISITEDSELECT_H
#define _MOEONUMBERUNVISITEDSELECT_H
#include <eoPop.h>
#include <moeoUnvisitedSelect.h>
/**
* Selector which select a part of unvisited individuals of a population
*/
template < class MOEOT >
class moeoNumberUnvisitedSelect : public moeoUnvisitedSelect < MOEOT >
{
public:
/**
* Ctor
* @param _number the number of individuals to select
*/
moeoNumberUnvisitedSelect(unsigned int _number): number(_number){}
/**
* functor which return index of selected individuals of a population
* @param _src the population
* @return the vector contains index of the part of unvisited individuals of the population
*/
std::vector <unsigned int> operator()(eoPop < MOEOT > & _src)
{
std::vector <unsigned int> res;
res.resize(0);
for (unsigned int i=0; i<_src.size(); i++)
{
if (_src[i].flag() == 0)
res.push_back(i);
}
if(number < res.size()){
UF_random_generator<unsigned int> rndGen;
std::random_shuffle(res.begin(), res.end(), rndGen);
res.resize(number);
}
return res;
}
private:
/** number of individuals to select */
unsigned int number;
};
#endif /*_MOEONUMBERUNVISITEDSELECT_H_*/

View file

@ -0,0 +1,88 @@
/*
* <moeoPLS1.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOPLS1_H
#define _MOEOPLS1_H
#include <moeoUnifiedDominanceBasedLS.h>
#include <moeoNumberUnvisitedSelect.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
/**
* PLS1 algorithm
*
* Paquete L, Chiarandini M, St ̈ tzle T (2004) Pareto local optimum sets in the biobjective
* traveling salesman problem: An experimental study. In: Metaheuristics for Multiobjective
* Optimisation, Lecture Notes in Economics and Mathematical Systems, vol 535, Springer-
* Verlag, Berlin, Germany, chap 7, pp 177199
*/
template < class Move >
class moeoPLS1 : public moeoUnifiedDominanceBasedLS < Move >
{
public:
/** Alias for the type */
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Ctor
* @param _continuator a stop creterion
* @param _eval a evaluation function
* @param _archive a archive to store no-dominated individuals
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
*/
moeoPLS1(
eoContinue < MOEOT > & _continuator,
eoEvalFunc < MOEOT > & _eval,
moeoArchive < MOEOT > & _archive,
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval):
moeoUnifiedDominanceBasedLS<Move>(
_continuator,
_eval,
_archive,
*(new moeoExhaustiveNeighborhoodExplorer<Move>(_moveInit, _nextMove, _incrEval)),
*(new moeoNumberUnvisitedSelect<MOEOT>(1))
){}
};
#endif /*MOEOPLS1_H_*/

View file

@ -0,0 +1,97 @@
/*
* <moeoPLS2.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOPLS2_H
#define _MOEOPLS2_H
#include <moeoUnifiedDominanceBasedLS.h>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
/**
* PLS2 algorithm
*
* Talbi EG, Rahoual M, Mabed MH, Dhaenens C (2001) A hybrid evolutionary approach for
* multicriteria optimization problems : Application to the fow shop. In: First International
* Conference on Evolutionary Multi-criterion Optimization (EMO 2001), Springer-Verlag,
* Zurich, Switzerland, Lecture Notes in Computer Science, vol 1993, pp 416428
*
* Basseur M, Seynhaeve F, Talbi E (2003) Adaptive mechanisms for multiobjective evolution-
* ary algorithms. In: Congress on Engineering in System Application (CESA 2003), Lille,
* France, pp 7286
*
* Angel E, Bampis E, Gourv ́ s L (2004) A dynasearch neighbohood for the bicriteria travel-
* ing salesman problem. In: Metaheuristics for Multiobjective Optimisation, Lecture Notes
* in Economics and Mathematical Systems, vol 535, Springer-Verlag, Berlin, Germany,
* chap 6, pp 153176
*/
template < class Move >
class moeoPLS2 : public moeoUnifiedDominanceBasedLS < Move >
{
public:
/** Alias for the type */
typedef typename Move::EOType MOEOT;
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
/**
* Ctor
* @param _continuator a stop creterion
* @param _eval a evaluation function
* @param _archive a archive to store no-dominated individuals
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
*/
moeoPLS2(
eoContinue < MOEOT > & _continuator,
eoEvalFunc < MOEOT > & _eval,
moeoArchive < MOEOT > & _archive,
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval):
moeoUnifiedDominanceBasedLS<Move>(
_continuator,
_eval,
_archive,
*(new moeoExhaustiveNeighborhoodExplorer<Move>(_moveInit, _nextMove, _incrEval)),
*(new moeoExhaustiveUnvisitedSelect<MOEOT>())
){}
};
#endif /*MOEOPLS2_H_*/

View file

@ -0,0 +1,50 @@
/*
* <moeoPopLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef MOEOPOPLS_H_
#define MOEOPOPLS_H_
#include <algo/moeoPopAlgo.h>
/**
* Abstract class for Population based multi-objective local search.
*/
template < class Move >
class moeoPopLS : public moeoPopAlgo < typename Move::EOType > {};
#endif /*MOEOPOPLS_H_*/

View file

@ -0,0 +1,58 @@
/*
* <moeoPopNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOPOPNEIGHBORHOODEXPLORER_H
#define _MOEOPOPNEIGHBORHOODEXPLORER_H
#include <eoPop.h>
/**
* Abstract class for multi-objective local search neighborhood exploration
*/
template < class Move >
class moeoPopNeighborhoodExplorer: public eoFunctorBase{
public:
/**
* abstract functor which realise exploration
*/
virtual void operator()(eoPop < typename Move::EOType > &, std::vector <unsigned int>, eoPop < typename Move::EOType > &) = 0;
};
#endif /*MOEONEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,116 @@
/*
* <moeoRestartLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEORESTARTLS_H
#define _MOEORESTARTLS_H
#include <eo>
#include <moeo>
#include <moeoPopLS.h>
#include <moeoUnifiedDominanceBasedLS.h>
#include <moeoNewArchive.h>
#include <moeoPopNeighborhoodExplorer.h>
#include <moeoUnvisitedSelect.h>
template < class Move >
class moeoRestartLS : public moeoPopLS < Move >
{
public:
typedef typename Move::EOType MOEOT;
moeoRestartLS(
eoInit < MOEOT > & _init,
eoEvalFunc < MOEOT > & _eval,
eoContinue < MOEOT > & _continuator1,
eoContinue < MOEOT > & _continuator2,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoUnvisitedSelect < MOEOT > & _select,
moeoArchive < MOEOT > & _internalArchive,
moeoArchive < MOEOT > & _globalArchive,
std::string _fileName) :
init(_init), eval(_eval), continuator(_continuator1), internalArchive(_internalArchive), ls(_continuator2, _eval, _internalArchive, _explorer, _select), globalArchive(_globalArchive), fileName(_fileName), count(0) {}
virtual void operator()(eoPop<MOEOT> & _pop)
{
do
{
internalArchive.resize(0);
for (unsigned int i=0; i<_pop.size(); i++)
{
init(_pop[i]);
_pop[i].invalidateObjectiveVector();
eval(_pop[i]);
}
ls(_pop);
count++;
globalArchive(internalArchive);
} while (continuator(globalArchive));
save();
// std::cout << "Final archive\n";
// globalArchive.sortedPrintOn(std::cout);
// std::cout << std::endl;
}
protected:
eoInit < MOEOT > & init;
eoEvalFunc < MOEOT > & eval;
eoContinue < MOEOT > & continuator;
moeoArchive < MOEOT > & internalArchive;
moeoUnifiedDominanceBasedLS < Move > ls;
moeoArchive < MOEOT > & globalArchive;
std::string & fileName;
unsigned int count;
void save()
{
// save count in a file
std::string tmp = fileName;
tmp += ".stat";
std::ofstream outfile(tmp.c_str());
outfile << count << std::endl;
outfile.close();
}
};
#endif /*_MOEORESTARTLS_H*/

View file

@ -0,0 +1,101 @@
/*
* <moeoSubNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOSIMPLESUBNEIGHBORHOODEXPLORER_H
#define _MOEOSIMPLESUBNEIGHBORHOODEXPLORER_H
#include <moeoSubNeighborhoodExplorer.h>
/**
* Explorer which explore a part of the neighborhood
*/
template < class Move >
class moeoSimpleSubNeighborhoodExplorer : public moeoSubNeighborhoodExplorer < Move >
{
/** Alias for the type */
typedef typename Move::EOType MOEOT;
/** Alias for the objeciveVector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
using moeoSubNeighborhoodExplorer<Move>::move;
using moeoSubNeighborhoodExplorer<Move>::objVec;
using moeoSubNeighborhoodExplorer<Move>::number;
public:
/**
* Ctor
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
* @param _number the number of neighbor to explore
*/
moeoSimpleSubNeighborhoodExplorer(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval,
unsigned int _number)
: moeoSubNeighborhoodExplorer< Move >(_moveInit, _nextMove, _incrEval, _number){}
private:
/**
* explorer of one individual
* @param _src the individual to explore
* @param _dest contains new generated individuals
*/
void explore(MOEOT & _src, eoPop < MOEOT > & _dest)
{
unsigned int tmp = number;
moveInit(move, _src);
do
{
objVec = incrEval(move, _src);
_dest.push_back(_src);
move(_dest.back());
_dest.back().objectiveVector(objVec);
_dest.back().flag(0);
tmp--;
}
while (nextMove(move, _src) && (tmp > 0));
if(!nextMove(move, _src))
_src.flag(1);
}
};
#endif /*_MOEOSIMPLESUBNEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,112 @@
/*
* <moeoSubNeighborhoodExplorer.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOSUBNEIGHBORHOODEXPLORER_H
#define _MOEOSUBNEIGHBORHOODEXPLORER_H
#include <eoPop.h>
#include <moMove.h>
#include <moMoveInit.h>
#include <moNextMove.h>
#include <moMoveIncrEval.h>
#include <moeoPopNeighborhoodExplorer.h>
/**
* Explorer which explore a part of the neighborhood
*/
template < class Move >
class moeoSubNeighborhoodExplorer : public moeoPopNeighborhoodExplorer < Move >
{
/** Alias for the type */
typedef typename Move::EOType MOEOT;
/** Alias for the objeciveVector */
typedef typename MOEOT::ObjectiveVector ObjectiveVector;
public:
/**
* Ctor
* @param _moveInit the move initializer
* @param _nextMove allow to do or not a move
* @param _incrEval a (generally) efficient evaluation fonction
* @param _number the number of neighbor to explore
*/
moeoSubNeighborhoodExplorer(
moMoveInit < Move > & _moveInit,
moNextMove < Move > & _nextMove,
moMoveIncrEval < Move, ObjectiveVector > & _incrEval,
unsigned int _number)
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval), number(_number){}
/**
* functor to explore the neighborhood
* @param _src the population to explore
* @param _select contains index of individuals from the population to explore
* @param _dest contains new generated individuals
*/
void operator()(eoPop < MOEOT > & _src, std::vector <unsigned int> _select, eoPop < MOEOT > & _dest)
{
for(unsigned int i=0; i<_select.size(); i++)
explore(_src[_select[i]], _dest);
}
protected:
/**
* explorer of one individual
* @param _src the individual to explore
* @param _dest contains new generated individuals
*/
virtual void explore(MOEOT & _src, eoPop < MOEOT > & _dest) = 0;
/** Move */
Move move;
/** ObjectiveVector */
ObjectiveVector objVec;
/** the move initializer */
moMoveInit < Move > & moveInit;
/** the entity which allow to do a move */
moNextMove < Move > & nextMove;
/** the incremental evaluation */
moMoveIncrEval < Move, ObjectiveVector > & incrEval;
/** number of neighbor to explore for each selected individual*/
unsigned int number;
};
#endif /*_MOEOSUBNEIGHBORHOODEXPLORER_H_*/

View file

@ -0,0 +1,147 @@
/*
* <moeoUnifiedDominanceBasedLS.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOUNIFIEDDOMINANCEBASEDLS_H
#define _MOEOUNIFIEDDOMINANCEBASEDLS_H
#include <eoPop.h>
#include <eoContinue.h>
#include <eoEvalFunc.h>
#include <eoPopEvalFunc.h>
#include <archive/moeoArchive.h>
#include <moeoPopLS.h>
#include <moeoPopNeighborhoodExplorer.h>
#include <moeoUnvisitedSelect.h>
/**
* A class to design dominance based local searches
*/
template < class Move >
class moeoUnifiedDominanceBasedLS : public moeoPopLS < Move >
{
public:
/** Alias for the type */
typedef typename Move::EOType MOEOT;
/**
* Ctor
* @param _continuator a stop creterion
* @param _eval a evaluation function
* @param _archive a archive to store no-dominated individuals
* @param _explorer a neighborhood explorer
* @param _select a selector of unvisited individuals of a population
*/
moeoUnifiedDominanceBasedLS(
eoContinue < MOEOT > & _continuator,
eoEvalFunc < MOEOT > & _eval,
moeoArchive < MOEOT > & _archive,
moeoPopNeighborhoodExplorer < Move > & _explorer,
moeoUnvisitedSelect < MOEOT > & _select) :
continuator(_continuator), loopEval(_eval), popEval(loopEval), archive(_archive), explorer(_explorer), select(_select) {}
/**
* Applies a few generation of evolution to the population _pop.
* @param _pop the population
*/
virtual void operator()(eoPop < MOEOT > & _pop)
{
std::vector < unsigned int> selectionVector;
eoPop < MOEOT > tmp_pop;
popEval(tmp_pop, _pop);
archive(_pop);
do{
tmp_pop.resize(0);
//selection
selectionVector = select(archive);
//exploration
explorer(archive, selectionVector, tmp_pop);
//archivage
archive(tmp_pop);
}
while (continuator(archive) && naturalContinuator(archive));
}
protected:
/** continuator */
eoContinue < MOEOT > & continuator;
/** loopEval */
eoPopLoopEval < MOEOT > loopEval;
/** popEval */
eoPopEvalFunc < MOEOT > & popEval;
/** archive */
moeoArchive < MOEOT > & archive;
/** explorer */
moeoPopNeighborhoodExplorer < Move > & explorer;
/** selector */
moeoUnvisitedSelect < MOEOT > & select;
/**
* Natural Continuator (Stop when all individuals of the population are visited)
*/
class moeoContinue : public eoUF < eoPop < MOEOT > &, bool >
{
public:
/**
* Ctor
*/
moeoContinue(){}
/**
* functor which evaluate if the algorithm continue or not
* @param _pop the population
* @return true if the algorithm continue, else return false
*/
virtual bool operator()(eoPop < MOEOT > & _pop)
{
bool res = false;
unsigned int i=0;
while (!res && i < _pop.size()){
res = (_pop[i].flag() != 1);
i++;
}
return res;
}
} naturalContinuator;
};
#endif /*MOEOUNIFIEDDOMINANCEBASEDLS_H_*/

View file

@ -0,0 +1,50 @@
/*
* <moeoUnvisitedSelect.h>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jérémie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
#ifndef _MOEOUNVISITEDSELECT_H
#define _MOEOUNVISITEDSELECT_H
#include <eoPop.h>
/**
* Abstract Selector
*/
template < class MOEOT >
class moeoUnvisitedSelect: public eoUF < eoPop < MOEOT > &, std::vector< unsigned int > >{};
#endif /*MOEOUNVISITEDSELECT_H_*/

View file

@ -0,0 +1,31 @@
SET (TEST_LIST
t-moeoExhaustiveUnvisitedSelect
t-moeoNumberUnvisitedSelect
t-moeoExhaustiveNeighborhoodExplorer
t-moeoSimpleSubNeighborhoodExplorer
t-moeoFirstImprovingNeighborhoodExplorer
t-moeoRecursiveFirstImprovingNeighborhoodExplorer
t-moeoUnifiedDominanceBasedLS
t-moeoDMLSGenUpdater
t-moeoDMLSMonOp
t-moeoPLS1
t-moeoPLS2
)
FOREACH (test ${TEST_LIST})
SET ("T_${test}_SOURCES" "${test}.cpp")
ENDFOREACH (test)
FOREACH (test ${TEST_LIST})
ADD_EXECUTABLE(${test} ${T_${test}_SOURCES})
ADD_TEST(${test} ${test})
ENDFOREACH (test)
# Link the librairies
FOREACH (test ${TEST_LIST})
TARGET_LINK_LIBRARIES(${test} moeo ga es eoutils eo)
ENDFOREACH (test)
######################################################################################

View file

@ -0,0 +1,170 @@
#include <eo>
#include <mo>
#include <moeo>
class ObjectiveVectorTraits : public moeoObjectiveVectorTraits
{
public:
static bool minimizing (int i)
{
return true;
}
static bool maximizing (int i)
{
return false;
}
static unsigned int nObjectives ()
{
return 2;
}
};
typedef moeoRealObjectiveVector < ObjectiveVectorTraits > ObjectiveVector;
typedef MOEO < ObjectiveVector, double, double > Solution;
class testEval : public eoEvalFunc<Solution>
{
public:
void operator()(Solution & _solution){
ObjectiveVector objVec;
objVec[0]=500;
objVec[1]=0;
_solution.objectiveVector(objVec);
}
};
class testMove : public moMove < Solution >
{
public :
void operator () (Solution & _solution)
{
Solution sol=_solution;
counter++;
}
void setCounter(unsigned int i){
counter=i;
}
unsigned int getCounter(){
return counter;
}
private:
unsigned int counter;
} ;
class testMoveInit : public moMoveInit <testMove>
{
public :
void operator () (testMove & _move, const Solution & _solution)
{
_move.setCounter(0);
const Solution sol(_solution);
}
} ;
class testMoveNext : public moNextMove <testMove>
{
public :
testMoveNext(unsigned int _counter=0):counter(_counter){};
bool operator () (testMove & _move, const Solution & _solution)
{
testMove move(_move);
const Solution sol(_solution);
return _move.getCounter() < 5;
}
private:
unsigned int counter;
} ;
class testMoveIncrEval : public moMoveIncrEval <testMove, ObjectiveVector>
{
public :
ObjectiveVector operator () (const testMove & _move, const Solution & _solution)
{
ObjectiveVector objVec= _solution.objectiveVector();
objVec[0]+=2;
objVec[1]+=2;
return objVec;
}
} ;
class testMoveIncrEval2 : public moMoveIncrEval <testMove, ObjectiveVector>
{
public :
testMoveIncrEval2(unsigned int _counter=1):counter(_counter){};
ObjectiveVector operator () (const testMove & _move, const Solution & _solution)
{
ObjectiveVector objVec= _solution.objectiveVector();
objVec[0]+=counter;
objVec[1]+=counter;
counter++;
return objVec;
}
private:
unsigned int counter;
} ;
class testMoveIncrEval3 : public moMoveIncrEval <testMove, ObjectiveVector>
{
public :
ObjectiveVector operator () (const testMove & _move, const Solution & _solution)
{
ObjectiveVector objVec= _solution.objectiveVector();
if(objVec[0]>0)
objVec[0]--;
else
objVec[0]=500;
if(objVec[1]<500)
objVec[1]++;
else
objVec[1]=500;
return objVec;
}
} ;
class testMoveIncrEval4 : public moMoveIncrEval <testMove, ObjectiveVector>
{
public :
testMoveIncrEval4(unsigned int _counter=0):counter(_counter){};
ObjectiveVector operator () (const testMove & _move, const Solution & _solution)
{
ObjectiveVector objVec= _solution.objectiveVector();
switch (counter){
case 0:
objVec[0]++;
objVec[1]++;
break;
case 1:
objVec[0]++;
objVec[1]--;
break;
case 2:
objVec[0]--;
objVec[1]++;
break;
default:
if(objVec[0]>0){
objVec[0]--;
objVec[1]--;
}
break;
}
counter++;
return objVec;
}
private:
unsigned int counter;
} ;

View file

@ -0,0 +1,101 @@
/*
* <t-moeoDMLSGenUpdater.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoDMLSGenUpdater.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoTestClass.h>
#include <moeoUnifiedDominanceBasedLS.h>
#include <eoTenTimeContinue.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
#include <moeoDMLSGenUpdater.h>
#include <eoGenContinue.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoDMLSGenUpdater] => ";
moeoExhaustiveUnvisitedSelect < Solution > select;
testEval eval;
testMoveInit init;
testMoveNext next;
testMoveIncrEval2 incr;
testMoveIncrEval3 incr2;
moeoExhaustiveNeighborhoodExplorer < testMove > explorer(init, next, incr);
moeoUnboundedArchive <Solution> arch;
moeoUnboundedArchive <Solution> arch2;
eoGenContinue <Solution> cont(10);
moeoUnifiedDominanceBasedLS <testMove> algo(cont, eval, arch, explorer, select);
eoGenContinue < Solution > cont2(10);
moeoDMLSGenUpdater < testMove > updater(algo, arch, arch2, cont2);
moeoDMLSGenUpdater < testMove > updater2(eval, explorer, select, arch2, cont2);
moeoDMLSGenUpdater < testMove > updater3(eval, arch, explorer, select, arch2, cont2, 10, true);
// objective vectors
eoPop<Solution> pop;
for(unsigned int i=0;i<9; i++){
updater();
assert(cont2.value()==i+1);
}
updater();
updater();
std::cout << cont2.value();
assert(cont2.value()==1);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,92 @@
/*
* <t-moeoDMLSMonOp.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoDMLSMonOp.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoTestClass.h>
#include <moeoUnifiedDominanceBasedLS.h>
#include <eoTenTimeContinue.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
#include <moeoDMLSMonOp.h>
#include <eoGenContinue.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoDMLSMonOp] => ";
moeoExhaustiveUnvisitedSelect < Solution > select;
testEval eval;
testMoveInit init;
testMoveNext next;
testMoveIncrEval2 incr;
testMoveIncrEval3 incr2;
moeoExhaustiveNeighborhoodExplorer < testMove > explorer(init, next, incr);
moeoUnboundedArchive <Solution> arch;
eoGenContinue <Solution> cont(10);
moeoUnifiedDominanceBasedLS <testMove> algo(cont, eval, arch, explorer, select);
moeoDMLSMonOp < testMove > updater(algo, arch);
moeoDMLSMonOp < testMove > updater2(eval, explorer, select);
moeoDMLSMonOp < testMove > updater3(eval, arch, explorer, select, 10, true);
// objective vectors
Solution moeo;
ObjectiveVector obj;
obj[0]=500;
obj[1]=500;
moeo.objectiveVector(obj);
updater(moeo);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,112 @@
/*
* <t-moeoExhaustiveNeighborhoodExplorer.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoExhaustiveNeighborhoodExplorer.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <mo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveNeighborhoodExplorer.h>
#include <moeoTestClass.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoExhaustiveNeighborhoodExplorer]\n\n";
// objective vectors
ObjectiveVector obj0, obj1;
obj0[0]=0;
obj0[1]=1;
obj1[0]=10;
obj1[1]=11;
eoPop < Solution > src;
eoPop < Solution > dest;
std::vector < unsigned int > select;
src.resize(5);
src[2].objectiveVector(obj0);
src[4].objectiveVector(obj1);
src[0].flag(0);
src[1].flag(0);
src[2].flag(0);
src[3].flag(0);
src[4].flag(0);
dest.resize(0);
select.resize(2);
select[0]=2;
select[1]=4;
testMoveInit init;
testMoveNext next;
testMoveIncrEval incr;
moeoExhaustiveNeighborhoodExplorer < testMove > explorer(init, next, incr);
explorer(src, select, dest);
assert(dest.size()==10);
assert(src[0].flag()==0);
assert(src[1].flag()==0);
assert(src[2].flag()==1);
assert(src[3].flag()==0);
assert(src[4].flag()==1);
for(int i=0 ; i< 10 ; i++)
assert(dest[i].flag()==0);
assert(dest[0].objectiveVector()[0]==2);
assert(dest[1].objectiveVector()[1]==3);
assert(dest[2].objectiveVector()[0]==2);
assert(dest[3].objectiveVector()[1]==3);
assert(dest[4].objectiveVector()[0]==2);
assert(dest[5].objectiveVector()[0]==12);
assert(dest[6].objectiveVector()[1]==13);
assert(dest[7].objectiveVector()[0]==12);
assert(dest[8].objectiveVector()[1]==13);
assert(dest[9].objectiveVector()[0]==12);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,79 @@
/*
* <t-moeoExhaustiveUnvisitedSelect.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoExhaustiveUnvisitedSelect.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoTestClass.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoExhaustiveUnvisitedSelect]\n\n";
// objective vectors
eoPop < Solution > pop;
pop.resize(5);
pop[0].flag(1);
pop[1].flag(0);
pop[2].flag(0);
pop[3].flag(1);
pop[4].flag(0);
moeoExhaustiveUnvisitedSelect < Solution > select;
std::vector <unsigned int> res;
res=select(pop);
assert(res.size()==3);
assert(res[0]==1);
assert(res[1]==2);
assert(res[2]==4);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,108 @@
/*
* <t-moeoFirstImprovingNeighborhoodExplorer.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoFirstImprovingNeighborhoodExplorer.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <mo>
#include <moeo>
#include <assert.h>
#include <iostream>
#include <moeoFirstImprovingNeighborhoodExplorer.h>
#include <moeoTestClass.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoFirstImprovingNeighborhoodExplorer] => ";
// objective vectors
ObjectiveVector obj0;
obj0[0]=10;
obj0[1]=10;
eoPop < Solution > src;
eoPop < Solution > dest;
std::vector < unsigned int > select;
src.resize(1);
src[0].objectiveVector(obj0);
src[0].flag(0);
dest.resize(0);
select.resize(1);
select[0]=0;
testMoveInit init;
testMoveNext next;
testMoveIncrEval4 incr;
testMoveIncrEval3 incr2;
moeoFirstImprovingNeighborhoodExplorer < testMove > explorer(init, next, incr);
explorer(src, select, dest);
assert(dest.size()==3);
assert(src[0].flag()==0);
for(int i=0 ; i< 3 ; i++)
assert(dest[i].flag()==0);
assert(dest[0].objectiveVector()[0]==11);
assert(dest[0].objectiveVector()[1]==9);
assert(dest[1].objectiveVector()[0]==9);
assert(dest[1].objectiveVector()[1]==11);
assert(dest[2].objectiveVector()[0]==9);
assert(dest[2].objectiveVector()[1]==9);
moeoFirstImprovingNeighborhoodExplorer < testMove > explorer2(init, next, incr2);
dest.resize(0);
explorer2(src, select, dest);
assert(dest.size()==5);
assert(src[0].flag()==1);
for(int i=0 ; i< 5 ; i++){
assert(dest[i].flag()==0);
assert(dest[i].objectiveVector()[0]==9);
assert(dest[i].objectiveVector()[1]==11);
}
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,98 @@
/*
* <t-moeoNumberUnvisitedSelect.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoNumberUnvisitedSelect.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoNumberUnvisitedSelect.h>
#include <moeoTestClass.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoNumberUnvisitedSelect]\n\n";
// objective vectors
eoPop < Solution > pop;
pop.resize(5);
pop[0].flag(1);
pop[1].flag(0);
pop[2].flag(0);
pop[3].flag(1);
pop[4].flag(0);
moeoNumberUnvisitedSelect < Solution > select(2);
std::vector <unsigned int> res;
//test general
res=select(pop);
assert(res.size()==2);
assert(res[0]==1 || res[0]==2 || res[0]==4);
assert(res[1]==1 || res[1]==2 || res[1]==4);
assert(res[0] != res[1]);
//test au bornes
moeoNumberUnvisitedSelect < Solution > select2(6);
res.resize(0);
res=select2(pop);
assert(res.size()==3);
assert(res[0]==1 || res[0]==2 || res[0]==4);
assert(res[1]==1 || res[1]==2 || res[1]==4);
assert(res[2]==1 || res[2]==2 || res[2]==4);
assert(res[0] != res[1]);
assert(res[0] != res[2]);
assert(res[1] != res[2]);
moeoNumberUnvisitedSelect < Solution > select3(0);
res.resize(0);
res=select3(pop);
assert(res.size()==0);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,83 @@
/*
* <t-moeoPLS1.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoPLS1.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoTestClass.h>
#include <moeoPLS1.h>
#include <eoTenTimeContinue.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoPLS1] => ";
testEval eval;
testMoveInit init;
testMoveNext next;
testMoveIncrEval2 incr;
moeoUnboundedArchive <Solution> arch;
eoCtrlCContinue <Solution> cont;
moeoPLS1 <testMove> algo(cont, eval, arch, init, next, incr);
// objective vectors
eoPop < Solution > pop;
pop.resize(2);
pop[0].flag(0);
pop[1].flag(0);
algo(pop);
assert(arch.size()==1);
assert(arch[0].flag()==1);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,83 @@
/*
* <t-moeoPLS2.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoPLS2.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoTestClass.h>
#include <moeoPLS2.h>
#include <eoTenTimeContinue.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoPLS2] => ";
testEval eval;
testMoveInit init;
testMoveNext next;
testMoveIncrEval2 incr;
moeoUnboundedArchive <Solution> arch;
eoCtrlCContinue <Solution> cont;
moeoPLS2 <testMove> algo(cont, eval, arch, init, next, incr);
// objective vectors
eoPop < Solution > pop;
pop.resize(2);
pop[0].flag(0);
pop[1].flag(0);
algo(pop);
assert(arch.size()==1);
assert(arch[0].flag()==1);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,137 @@
/*
* <t-moeoSubNeighborhoodExplorer.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoSubNeighborhoodExplorer.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <mo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoSimpleSubNeighborhoodExplorer.h>
#include <moeoTestClass.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoSimpleSubNeighborhoodExplorer]\n\n";
// objective vectors
ObjectiveVector obj0, obj1;
obj0[0]=0;
obj0[1]=1;
obj1[0]=10;
obj1[1]=11;
eoPop < Solution > src;
eoPop < Solution > dest;
std::vector < unsigned int > select;
src.resize(5);
src[2].objectiveVector(obj0);
src[4].objectiveVector(obj1);
src[0].flag(0);
src[1].flag(0);
src[2].flag(0);
src[3].flag(0);
src[4].flag(0);
dest.resize(0);
select.resize(2);
select[0]=2;
select[1]=4;
testMoveInit init;
testMoveNext next;
testMoveIncrEval incr;
moeoSimpleSubNeighborhoodExplorer < testMove > explorer(init, next, incr, 6);
explorer(src, select, dest);
assert(dest.size()==10);
assert(src[0].flag()==0);
assert(src[1].flag()==0);
assert(src[2].flag()==1);
assert(src[3].flag()==0);
assert(src[4].flag()==1);
for(int i=0 ; i< 10 ; i++)
assert(dest[i].flag()==0);
assert(dest[0].objectiveVector()[0]==2);
assert(dest[1].objectiveVector()[1]==3);
assert(dest[2].objectiveVector()[0]==2);
assert(dest[3].objectiveVector()[1]==3);
assert(dest[4].objectiveVector()[0]==2);
assert(dest[5].objectiveVector()[0]==12);
assert(dest[6].objectiveVector()[1]==13);
assert(dest[7].objectiveVector()[0]==12);
assert(dest[8].objectiveVector()[1]==13);
assert(dest[9].objectiveVector()[0]==12);
src[2].flag(0);
src[4].flag(0);
dest.resize(0);
moeoSimpleSubNeighborhoodExplorer < testMove > explorer2(init, next, incr, 3);
explorer2(src, select, dest);
assert(dest.size()==6);
assert(src[0].flag()==0);
assert(src[1].flag()==0);
assert(src[2].flag()==0);
assert(src[3].flag()==0);
assert(src[4].flag()==0);
for(int i=0 ; i< 6 ; i++)
assert(dest[i].flag()==0);
assert(dest[0].objectiveVector()[0]==2);
assert(dest[1].objectiveVector()[1]==3);
assert(dest[2].objectiveVector()[0]==2);
assert(dest[3].objectiveVector()[0]==12);
assert(dest[4].objectiveVector()[1]==13);
assert(dest[5].objectiveVector()[0]==12);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,99 @@
/*
* <t-moeoUnifiedDominanceBasedLS.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Lille-Nord Europe, 2006-2008
* (C) OPAC Team, LIFL, 2002-2008
*
* Arnaud Liefooghe
* Jeremie Humeau
*
* 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
*
*/
//-----------------------------------------------------------------------------
// t-moeoUnifiedDominanceBasedLS.cpp
//-----------------------------------------------------------------------------
#include <eo>
#include <moeo>
#include <assert.h>
#include <set>
#include <iostream>
#include <moeoExhaustiveUnvisitedSelect.h>
#include <moeoTestClass.h>
#include <moeoUnifiedDominanceBasedLS.h>
#include <eoTenTimeContinue.h>
#include <moeoExhaustiveNeighborhoodExplorer.h>
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int main()
{
std::cout << "[moeoUnifiedDominanceBasedLS] => ";
moeoExhaustiveUnvisitedSelect < Solution > select;
testEval eval;
testMoveInit init;
testMoveNext next;
testMoveIncrEval2 incr;
testMoveIncrEval3 incr2;
moeoExhaustiveNeighborhoodExplorer < testMove > explorer(init, next, incr);
moeoUnboundedArchive <Solution> arch;
eoCtrlCContinue <Solution> cont;
moeoUnifiedDominanceBasedLS <testMove> algo(cont, eval, arch, explorer, select);
// objective vectors
eoPop < Solution > pop;
pop.resize(2);
pop[0].flag(0);
pop[1].flag(0);
algo(pop);
assert(arch.size()==1);
assert(arch[0].flag()==1);
arch.resize(0);
moeoExhaustiveNeighborhoodExplorer < testMove > explorer2(init, next, incr2);
moeoUnifiedDominanceBasedLS <testMove> algo2(cont, eval, arch, explorer2, select);
algo2(pop);
assert(arch.size()==501);
assert(arch[0].objectiveVector()[0]==500);
assert(arch[0].objectiveVector()[1]==0);
assert(arch[500].objectiveVector()[1]==500);
assert(arch[500].objectiveVector()[0]==0);
std::cout << "OK" << std::endl;
return EXIT_SUCCESS;
}
//-----------------------------------------------------------------------------

View file

@ -0,0 +1,56 @@
#include <iostream>
#include <fstream>
#include <string>
#include <assert.h>
using namespace std;
int main(int argc, char* argv[])
{
unsigned int i, j;
assert(argc ==4);
string s,sub;
ifstream infile(argv[1], std::ios::in);
double p_value = atof(argv[2]);
FILE* fp = fopen(argv[3], "wb");
int tab[8];
double tmp;
for(unsigned int w=0; w<8; w++)
tab[w]=0;
// Ouvre le fichier de données :
i=0;
j=0;
if (infile.is_open()){
double tmp=0.0;
//lit le fichier ligne par ligne
while (std::getline (infile, s)){
if (s.length()>0){
sub=s.substr(35);
std::cout << "atof: " << atof(sub.c_str()) << endl;
tmp=atof(sub.c_str());
std::cout << "tmp: " << tmp << endl;
if( tmp < p_value)
tab[i]++;
j++;
if(j>6){
i++;
j=0;
}
std::cout << i << " " << j << endl;
}
}
std::cout << "hop" << endl;
//ferme le fichier
infile.close();
}
fprintf(fp, "OneOne: %d\n", tab[7]);
fprintf(fp, "OneND: %d\n", tab[6]);
fprintf(fp, "OneFirst: %d\n", tab[5]);
fprintf(fp, "OneAll: %d\n", tab[4]);
fprintf(fp, "AllOne: %d\n", tab[3]);
fprintf(fp, "AllND: %d\n", tab[2]);
fprintf(fp, "AllFirst: %d\n", tab[1]);
fprintf(fp, "AllAll: %d\n", tab[0]);
return 0;
fclose(fp);
}

View file

@ -0,0 +1,82 @@
plotOne()
{
OUTPUT=$1
BENCH=$2
METRIC=$3
# echo "set term postscript eps enhanced" >> temp
echo "set term epslatex colour" >> temp
echo "set output \"$OUTPUT\"" >> temp
echo "set nokey" >> temp
echo "set size 0.6,0.6" >> temp
echo "set bmargin 1" >> temp
echo "set tmargin 1" >> temp
echo "set lmargin 2" >> temp
echo "set rmargin 1" >> temp
echo "set xrange [0:31]" >> temp
echo "set yrange [0:0.15]" >> temp
echo "plot 'fsp2.results/${BENCH}_OneOne_${METRIC}' title 'DMLS \$(1 \cdot 1)\$' with lines lt 1 lw 2, 'fsp2.results/${BENCH}_OneND_${METRIC}' title 'DMLS \$(1 \cdot 1_{\not\prec})\$' with lines lt 2 lw 2, 'fsp2.results/${BENCH}_OneFirst_${METRIC}' title 'DMLS \$(1 \cdot 1_{\succ})\$' with lines lt 3 lw 2, 'fsp2.results/${BENCH}_OneAll_${METRIC}' title 'DMLS \$(1 \cdot \star)\$' with lines lt 4 lw 2, 'fsp2.results/${BENCH}_AllOne_${METRIC}' title 'DMLS \$(\star \cdot 1)\$' with lines lt 5 lw 2, 'fsp2.results/${BENCH}_AllND_${METRIC}' title 'DMLS \$(\star \cdot 1_{\not\prec})\$' with lines lt 9 lw 2,'fsp2.results/${BENCH}_AllFirst_${METRIC}' title 'DMLS \$(\star \cdot 1_{\succ})\$' with lines lt 6 lw 2,'fsp2.results/${BENCH}_AllAll_${METRIC}' title 'DMLS \$(\star \cdot \star)\$' with lines lt 8 lw 2" >> temp
echo "set out" >> temp
gnuplot temp
rm temp
}
plottest()
{
OUTPUT=$1
# echo "set term postscript eps enhanced" >> temp
echo "set term epslatex" >> temp
echo "set output \"$OUTPUT\"" >> temp
echo "set key reverse left center" >> temp
echo "set noborder" >> temp
echo "set noxtics" >> temp
echo "set noytics" >> temp
echo "set size 0.5,0.5" >> temp
# echo "set bmargin 1" >> temp
# echo "set tmargin 1" >> temp
# echo "set lmargin 2" >> temp
#s echo "set rmargin 1" >> temp
echo "set xrange [0:31]" >> temp
echo "set yrange [0:1]" >> temp
echo "plot 2 title 'DMLS \$(1 \cdot 1)\$' with lines lt 1 lw 2, 2 title 'DMLS \$(1 \cdot 1_{\not\prec})\$' with lines lt 2 lw 2, 2 title 'DMLS \$(1 \cdot 1_{\succ})\$' with lines lt 3 lw 2, 2 title 'DMLS \$(1 \cdot \star)\$' with lines lt 4 lw 2, 2 title 'DMLS \$(\star \cdot 1)\$' with lines lt 5 lw 2, 2 title 'DMLS \$(\star \cdot 1_{\not\prec})\$' with lines lt 9 lw 2, 2 title 'DMLS \$(\star \cdot 1_{\succ})\$' with lines lt 6 lw 2, 2 title 'DMLS \$(\star \cdot \star)\$' with lines lt 8 lw 2" >> temp
echo "set out" >> temp
gnuplot temp
rm temp
}
plotOneBis()
{
OUTPUT=$1
BENCH=$2
METRIC=$3
echo "set term postscript eps enhanced" >> temp
echo "set output \"$OUTPUT\"" >> temp
echo "set size 0.7,0.7" >> temp
echo "set xrange [0:21]" >> temp
echo "plot 'fsp2.results/${BENCH}_OneAll_${METRIC}' title 'DMLS (1 . *)' with lines lt 2 lw 5, 'fsp2.results/${BENCH}_AllOne_${METRIC}' title 'DMLS (* . 1)' with lines lt 3 lw 5, 'fsp2.results/${BENCH}_AllAll_${METRIC}' title 'DMLS (* . *)' with lines lt 5 lw 5" >> temp
gnuplot temp
rm temp
}
plot()
{
BENCH=$1
plotOne fsp2.fig.test/$BENCH\_eps.eps $BENCH eps
plotOne fsp2.fig.test/$BENCH\_hyp.eps $BENCH hyp
#plotOneBis fsp2.fig/$BENCH\_eps_bis.eps $BENCH eps
#plotOneBis fsp2.fig/$BENCH\_hyp_bis.eps $BENCH hyp
}
#plot 0200501
#plot 0201001
#plot 0202001
#plot 0500501
#plot 0501001
#plot 0502001
plot 1001001
plot 1002001
#plottest fsp2.fig/legende.eps
cd fsp2.fig
sed -i -e 's/-1287/2450/g' *.tex

View file

@ -0,0 +1,39 @@
######################################################################################
### 0) Include the install configuration file where are defined the main variables
######################################################################################
INCLUDE(${CMAKE_SOURCE_DIR}/install.cmake)
FIND_PROGRAM(XML2_CONFIG_PROGRAM NAMES xml2-config PATHS /usr/local/bin /usr/bin DOC "The libxml2 (www.xmlsoft.org) configuration tool")
IF(NOT XML2_CONFIG_PROGRAM)
#MESSAGE(FATAL_ERROR "Libxml2 cannot be found on your system. Libxml2 is required for ParadisEO-PEO install")
ENDIF(NOT XML2_CONFIG_PROGRAM)
# set libxml2 cflags in XML2_CFLAGS
EXECUTE_PROCESS(COMMAND ${XML2_CONFIG_PROGRAM} --cflags OUTPUT_VARIABLE XML2_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
# set libxml2 libs in XML2_LIBS
EXECUTE_PROCESS(COMMAND ${XML2_CONFIG_PROGRAM} --libs OUTPUT_VARIABLE XML2_LIBS)
######################################################################################
######################################################################################
### Set your application properties
######################################################################################
# Define your project name
PROJECT(PEOPSODVRP)
######################################################################################
######################################################################################
SUBDIRS ( src application )
######################################################################################

View file

@ -0,0 +1,82 @@
==========================================================================================
INFORMATION
==========================================================================================
PARADISEO (PARallel and DIStributed Evolving Objects) is a white-box object-oriented
framework dedicated to the flexible design of metaheursitics.
This package is especially designed to help anyone who uses ParadisEO to build his
own application.
==========================================================================================
RELEASE
==========================================================================================
The current release of the "mySimpleApplication" package is 1.0.
==========================================================================================
WEBSITE
==========================================================================================
Please visit our website at http://paradiseo.gforge.inria.fr.
==========================================================================================
BUGS
==========================================================================================
You can find the ParadisEO's bug tracker at:
http://gforge.inria.fr/tracker/?atid=663&group_id=145&func=browse
==========================================================================================
CONTACT
==========================================================================================
For any question or for help, please write us at: paradiseo-help@lists.gforge.inria.fr.
==========================================================================================
DEPENDENCIES
==========================================================================================
ParadisEO uses EO, a templates-based, ANSI-C++ compliant evolutionary computation library.
It contains classes for almost any kind of evolutionary computation you might come up to - at
least for the ones we could think of.
EO Website:
http://eodev.sourceforge.net/.
EO is distributed under the GNU Lesser General Public License:
http://www.gnu.org/copyleft/lesser.html
==========================================================================================
LICENSE
==========================================================================================
ParadisEO 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.

View file

@ -0,0 +1,3 @@
[Dolphin]
Timestamp=2009,1,14,23,22,41
ViewMode=1

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from c100 by convert2vt
COMMENT: Best known objective: 826.14
NAME: c100
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 10
2 7
3 13
4 19
5 26
6 3
7 5
8 9
9 16
10 16
11 12
12 19
13 23
14 20
15 8
16 19
17 2
18 12
19 17
20 9
21 11
22 18
23 29
24 3
25 6
26 17
27 16
28 16
29 9
30 21
31 27
32 23
33 11
34 14
35 8
36 5
37 8
38 16
39 31
40 9
41 5
42 5
43 7
44 18
45 16
46 1
47 27
48 36
49 30
50 13
51 10
52 9
53 14
54 18
55 2
56 6
57 7
58 18
59 28
60 3
61 13
62 19
63 10
64 9
65 20
66 25
67 25
68 36
69 6
70 5
71 15
72 25
73 9
74 8
75 18
76 13
77 14
78 3
79 23
80 6
81 26
82 16
83 11
84 7
85 41
86 35
87 26
88 9
89 15
90 3
91 1
92 2
93 22
94 27
95 20
96 11
97 12
98 10
99 9
100 17
LOCATION_COORD_SECTION
0 35 35
1 41 49
2 35 17
3 55 45
4 55 20
5 15 30
6 25 30
7 20 50
8 10 43
9 55 60
10 30 60
11 20 65
12 50 35
13 30 25
14 15 10
15 30 5
16 10 20
17 5 30
18 20 40
19 15 60
20 45 65
21 45 20
22 45 10
23 55 5
24 65 35
25 65 20
26 45 30
27 35 40
28 41 37
29 64 42
30 40 60
31 31 52
32 35 69
33 53 52
34 65 55
35 63 65
36 2 60
37 20 20
38 5 5
39 60 12
40 40 25
41 42 7
42 24 12
43 23 3
44 11 14
45 6 38
46 2 48
47 8 56
48 13 52
49 6 68
50 47 47
51 49 58
52 27 43
53 37 31
54 57 29
55 63 23
56 53 12
57 32 12
58 36 26
59 21 24
60 17 34
61 12 24
62 24 58
63 27 69
64 15 77
65 62 77
66 49 73
67 67 5
68 56 39
69 37 47
70 37 56
71 57 68
72 47 16
73 44 17
74 46 13
75 49 11
76 49 42
77 53 43
78 61 52
79 57 48
80 56 37
81 55 54
82 15 47
83 14 37
84 11 31
85 16 22
86 4 18
87 28 18
88 26 52
89 26 35
90 31 67
91 15 19
92 22 22
93 18 24
94 26 27
95 25 24
96 22 27
97 25 21
98 19 21
99 20 26
100 18 18
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 12
2 12
3 12
4 12
5 12
6 12
7 12
8 12
9 12
10 12
11 12
12 12
13 12
14 12
15 12
16 12
17 12
18 12
19 12
20 12
21 12
22 12
23 12
24 12
25 12
26 12
27 12
28 12
29 12
30 12
31 12
32 12
33 12
34 12
35 12
36 12
37 12
38 12
39 12
40 12
41 12
42 12
43 12
44 12
45 12
46 12
47 12
48 12
49 12
50 12
51 12
52 12
53 12
54 12
55 12
56 12
57 12
58 12
59 12
60 12
61 12
62 12
63 12
64 12
65 12
66 12
67 12
68 12
69 12
70 12
71 12
72 12
73 12
74 12
75 12
76 12
77 12
78 12
79 12
80 12
81 12
82 12
83 12
84 12
85 12
86 12
87 12
88 12
89 12
90 12
91 12
92 12
93 12
94 12
95 12
96 12
97 12
98 12
99 12
100 12
DEPOT_TIME_WINDOW_SECTION
0 0 399
COMMENT: TIMESTEP: 7
TIME_AVAIL_SECTION
1 9
2 17
3 19
4 22
5 22
6 22
7 26
8 27
9 30
10 33
11 39
12 44
13 45
14 49
15 49
16 59
17 67
18 70
19 72
20 77
21 77
22 85
23 96
24 105
25 106
26 107
27 119
28 120
29 123
30 127
31 135
32 143
33 144
34 148
35 148
36 153
37 156
38 157
39 159
40 161
41 168
42 168
43 172
44 172
45 173
46 176
47 178
48 178
49 180
50 195
51 200
52 204
53 215
54 218
55 220
56 224
57 225
58 238
59 240
60 243
61 246
62 248
63 249
64 250
65 253
66 265
67 265
68 266
69 271
70 271
71 274
72 277
73 278
74 282
75 282
76 298
77 307
78 316
79 329
80 331
81 331
82 332
83 342
84 344
85 349
86 349
87 349
88 357
89 357
90 358
91 365
92 365
93 374
94 380
95 387
96 389
97 390
98 393
99 393
100 395
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from c100 by convert2vt
COMMENT: Best known objective: 826.14
NAME: c100
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -10
2 -7
3 -13
4 -19
5 -26
6 -3
7 -5
8 -9
9 -16
10 -16
11 -12
12 -19
13 -23
14 -20
15 -8
16 -19
17 -2
18 -12
19 -17
20 -9
21 -11
22 -18
23 -29
24 -3
25 -6
26 -17
27 -16
28 -16
29 -9
30 -21
31 -27
32 -23
33 -11
34 -14
35 -8
36 -5
37 -8
38 -16
39 -31
40 -9
41 -5
42 -5
43 -7
44 -18
45 -16
46 -1
47 -27
48 -36
49 -30
50 -13
51 -10
52 -9
53 -14
54 -18
55 -2
56 -6
57 -7
58 -18
59 -28
60 -3
61 -13
62 -19
63 -10
64 -9
65 -20
66 -25
67 -25
68 -36
69 -6
70 -5
71 -15
72 -25
73 -9
74 -8
75 -18
76 -13
77 -14
78 -3
79 -23
80 -6
81 -26
82 -16
83 -11
84 -7
85 -41
86 -35
87 -26
88 -9
89 -15
90 -3
91 -1
92 -2
93 -22
94 -27
95 -20
96 -11
97 -12
98 -10
99 -9
100 -17
LOCATION_COORD_SECTION
0 35 35
1 41 49
2 35 17
3 55 45
4 55 20
5 15 30
6 25 30
7 20 50
8 10 43
9 55 60
10 30 60
11 20 65
12 50 35
13 30 25
14 15 10
15 30 5
16 10 20
17 5 30
18 20 40
19 15 60
20 45 65
21 45 20
22 45 10
23 55 5
24 65 35
25 65 20
26 45 30
27 35 40
28 41 37
29 64 42
30 40 60
31 31 52
32 35 69
33 53 52
34 65 55
35 63 65
36 2 60
37 20 20
38 5 5
39 60 12
40 40 25
41 42 7
42 24 12
43 23 3
44 11 14
45 6 38
46 2 48
47 8 56
48 13 52
49 6 68
50 47 47
51 49 58
52 27 43
53 37 31
54 57 29
55 63 23
56 53 12
57 32 12
58 36 26
59 21 24
60 17 34
61 12 24
62 24 58
63 27 69
64 15 77
65 62 77
66 49 73
67 67 5
68 56 39
69 37 47
70 37 56
71 57 68
72 47 16
73 44 17
74 46 13
75 49 11
76 49 42
77 53 43
78 61 52
79 57 48
80 56 37
81 55 54
82 15 47
83 14 37
84 11 31
85 16 22
86 4 18
87 28 18
88 26 52
89 26 35
90 31 67
91 15 19
92 22 22
93 18 24
94 26 27
95 25 24
96 22 27
97 25 21
98 19 21
99 20 26
100 18 18
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 12
2 12
3 12
4 12
5 12
6 12
7 12
8 12
9 12
10 12
11 12
12 12
13 12
14 12
15 12
16 12
17 12
18 12
19 12
20 12
21 12
22 12
23 12
24 12
25 12
26 12
27 12
28 12
29 12
30 12
31 12
32 12
33 12
34 12
35 12
36 12
37 12
38 12
39 12
40 12
41 12
42 12
43 12
44 12
45 12
46 12
47 12
48 12
49 12
50 12
51 12
52 12
53 12
54 12
55 12
56 12
57 12
58 12
59 12
60 12
61 12
62 12
63 12
64 12
65 12
66 12
67 12
68 12
69 12
70 12
71 12
72 12
73 12
74 12
75 12
76 12
77 12
78 12
79 12
80 12
81 12
82 12
83 12
84 12
85 12
86 12
87 12
88 12
89 12
90 12
91 12
92 12
93 12
94 12
95 12
96 12
97 12
98 12
99 12
100 12
DEPOT_TIME_WINDOW_SECTION
0 0 399
COMMENT: TIMESTEP: 7
TIME_AVAIL_SECTION
1 2
2 9
3 9
4 16
5 17
6 22
7 28
8 35
9 41
10 47
11 48
12 49
13 57
14 57
15 59
16 59
17 60
18 64
19 64
20 73
21 75
22 75
23 82
24 83
25 83
26 86
27 89
28 94
29 94
30 97
31 102
32 105
33 106
34 108
35 111
36 114
37 119
38 124
39 126
40 141
41 146
42 147
43 149
44 149
45 153
46 159
47 160
48 161
49 163
50 167
51 167
52 167
53 169
54 171
55 174
56 175
57 176
58 177
59 185
60 207
61 216
62 216
63 218
64 226
65 227
66 231
67 243
68 251
69 252
70 259
71 260
72 264
73 268
74 270
75 274
76 279
77 286
78 287
79 288
80 291
81 294
82 296
83 297
84 299
85 307
86 310
87 316
88 319
89 322
90 326
91 328
92 329
93 349
94 359
95 359
96 360
97 362
98 370
99 374
100 374
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from c100b by convert2vt
COMMENT: Best known objective: 819.56
NAME: c100b
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 10
2 30
3 10
4 10
5 10
6 20
7 20
8 20
9 10
10 10
11 10
12 20
13 30
14 10
15 40
16 40
17 20
18 20
19 10
20 10
21 20
22 20
23 10
24 10
25 40
26 10
27 10
28 20
29 10
30 10
31 20
32 30
33 40
34 20
35 10
36 10
37 20
38 30
39 20
40 10
41 10
42 20
43 10
44 10
45 10
46 30
47 10
48 10
49 10
50 10
51 10
52 10
53 20
54 40
55 10
56 30
57 40
58 30
59 10
60 20
61 10
62 20
63 50
64 10
65 10
66 10
67 10
68 10
69 10
70 30
71 20
72 10
73 10
74 50
75 20
76 10
77 10
78 20
79 10
80 10
81 30
82 20
83 10
84 20
85 30
86 10
87 20
88 30
89 10
90 10
91 10
92 20
93 40
94 10
95 30
96 10
97 30
98 20
99 10
100 20
LOCATION_COORD_SECTION
0 40 50
1 45 68
2 45 70
3 42 66
4 42 68
5 42 65
6 40 69
7 40 66
8 38 68
9 38 70
10 35 66
11 35 69
12 25 85
13 22 75
14 22 85
15 20 80
16 20 85
17 18 75
18 15 75
19 15 80
20 30 50
21 30 52
22 28 52
23 28 55
24 25 50
25 25 52
26 25 55
27 23 52
28 23 55
29 20 50
30 20 55
31 10 35
32 10 40
33 8 40
34 8 45
35 5 35
36 5 45
37 2 40
38 0 40
39 0 45
40 35 30
41 35 32
42 33 32
43 33 35
44 32 30
45 30 30
46 30 32
47 30 35
48 28 30
49 28 35
50 26 32
51 25 30
52 25 35
53 44 5
54 42 10
55 42 15
56 40 5
57 40 15
58 38 5
59 38 15
60 35 5
61 50 30
62 50 35
63 50 40
64 48 30
65 48 40
66 47 35
67 47 40
68 45 30
69 45 35
70 95 30
71 95 35
72 53 30
73 92 30
74 53 35
75 45 65
76 90 35
77 88 30
78 88 35
79 87 30
80 85 25
81 85 35
82 75 55
83 72 55
84 70 58
85 68 60
86 66 55
87 65 55
88 65 60
89 63 58
90 60 55
91 60 60
92 67 85
93 65 85
94 65 82
95 62 80
96 60 80
97 60 85
98 58 75
99 55 80
100 55 85
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 12
2 12
3 12
4 12
5 12
6 12
7 12
8 12
9 12
10 12
11 12
12 12
13 12
14 12
15 12
16 12
17 12
18 12
19 12
20 12
21 12
22 12
23 12
24 12
25 12
26 12
27 12
28 12
29 12
30 12
31 12
32 12
33 12
34 12
35 12
36 12
37 12
38 12
39 12
40 12
41 12
42 12
43 12
44 12
45 12
46 12
47 12
48 12
49 12
50 12
51 12
52 12
53 12
54 12
55 12
56 12
57 12
58 12
59 12
60 12
61 12
62 12
63 12
64 12
65 12
66 12
67 12
68 12
69 12
70 12
71 12
72 12
73 12
74 12
75 12
76 12
77 12
78 12
79 12
80 12
81 12
82 12
83 12
84 12
85 12
86 12
87 12
88 12
89 12
90 12
91 12
92 12
93 12
94 12
95 12
96 12
97 12
98 12
99 12
100 12
DEPOT_TIME_WINDOW_SECTION
0 0 468
COMMENT: TIMESTEP: 9
TIME_AVAIL_SECTION
1 2
2 11
3 11
4 18
5 20
6 25
7 33
8 42
9 48
10 56
11 56
12 58
13 67
14 67
15 69
16 69
17 70
18 75
19 75
20 86
21 88
22 88
23 97
24 97
25 98
26 100
27 105
28 110
29 110
30 114
31 120
32 124
33 124
34 127
35 130
36 134
37 140
38 145
39 148
40 165
41 172
42 173
43 174
44 174
45 180
46 187
47 188
48 189
49 191
50 196
51 196
52 196
53 199
54 201
55 205
56 205
57 206
58 207
59 217
60 243
61 253
62 254
63 256
64 265
65 267
66 271
67 285
68 294
69 295
70 304
71 305
72 310
73 314
74 317
75 322
76 327
77 336
78 336
79 337
80 341
81 345
82 347
83 349
84 351
85 360
86 363
87 371
88 374
89 378
90 382
91 385
92 386
93 410
94 421
95 421
96 423
97 424
98 434
99 438
100 439
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from c100b by convert2vt
COMMENT: Best known objective: 819.56
NAME: c100b
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -10
2 -30
3 -10
4 -10
5 -10
6 -20
7 -20
8 -20
9 -10
10 -10
11 -10
12 -20
13 -30
14 -10
15 -40
16 -40
17 -20
18 -20
19 -10
20 -10
21 -20
22 -20
23 -10
24 -10
25 -40
26 -10
27 -10
28 -20
29 -10
30 -10
31 -20
32 -30
33 -40
34 -20
35 -10
36 -10
37 -20
38 -30
39 -20
40 -10
41 -10
42 -20
43 -10
44 -10
45 -10
46 -30
47 -10
48 -10
49 -10
50 -10
51 -10
52 -10
53 -20
54 -40
55 -10
56 -30
57 -40
58 -30
59 -10
60 -20
61 -10
62 -20
63 -50
64 -10
65 -10
66 -10
67 -10
68 -10
69 -10
70 -30
71 -20
72 -10
73 -10
74 -50
75 -20
76 -10
77 -10
78 -20
79 -10
80 -10
81 -30
82 -20
83 -10
84 -20
85 -30
86 -10
87 -20
88 -30
89 -10
90 -10
91 -10
92 -20
93 -40
94 -10
95 -30
96 -10
97 -30
98 -20
99 -10
100 -20
LOCATION_COORD_SECTION
0 40 50
1 45 68
2 45 70
3 42 66
4 42 68
5 42 65
6 40 69
7 40 66
8 38 68
9 38 70
10 35 66
11 35 69
12 25 85
13 22 75
14 22 85
15 20 80
16 20 85
17 18 75
18 15 75
19 15 80
20 30 50
21 30 52
22 28 52
23 28 55
24 25 50
25 25 52
26 25 55
27 23 52
28 23 55
29 20 50
30 20 55
31 10 35
32 10 40
33 8 40
34 8 45
35 5 35
36 5 45
37 2 40
38 0 40
39 0 45
40 35 30
41 35 32
42 33 32
43 33 35
44 32 30
45 30 30
46 30 32
47 30 35
48 28 30
49 28 35
50 26 32
51 25 30
52 25 35
53 44 5
54 42 10
55 42 15
56 40 5
57 40 15
58 38 5
59 38 15
60 35 5
61 50 30
62 50 35
63 50 40
64 48 30
65 48 40
66 47 35
67 47 40
68 45 30
69 45 35
70 95 30
71 95 35
72 53 30
73 92 30
74 53 35
75 45 65
76 90 35
77 88 30
78 88 35
79 87 30
80 85 25
81 85 35
82 75 55
83 72 55
84 70 58
85 68 60
86 66 55
87 65 55
88 65 60
89 63 58
90 60 55
91 60 60
92 67 85
93 65 85
94 65 82
95 62 80
96 60 80
97 60 85
98 58 75
99 55 80
100 55 85
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 12
2 12
3 12
4 12
5 12
6 12
7 12
8 12
9 12
10 12
11 12
12 12
13 12
14 12
15 12
16 12
17 12
18 12
19 12
20 12
21 12
22 12
23 12
24 12
25 12
26 12
27 12
28 12
29 12
30 12
31 12
32 12
33 12
34 12
35 12
36 12
37 12
38 12
39 12
40 12
41 12
42 12
43 12
44 12
45 12
46 12
47 12
48 12
49 12
50 12
51 12
52 12
53 12
54 12
55 12
56 12
57 12
58 12
59 12
60 12
61 12
62 12
63 12
64 12
65 12
66 12
67 12
68 12
69 12
70 12
71 12
72 12
73 12
74 12
75 12
76 12
77 12
78 12
79 12
80 12
81 12
82 12
83 12
84 12
85 12
86 12
87 12
88 12
89 12
90 12
91 12
92 12
93 12
94 12
95 12
96 12
97 12
98 12
99 12
100 12
DEPOT_TIME_WINDOW_SECTION
0 0 468
COMMENT: TIMESTEP: 9
TIME_AVAIL_SECTION
1 2
2 11
3 11
4 18
5 20
6 25
7 33
8 42
9 48
10 56
11 56
12 58
13 67
14 67
15 69
16 69
17 70
18 75
19 75
20 86
21 88
22 88
23 97
24 97
25 98
26 100
27 105
28 110
29 110
30 114
31 120
32 124
33 124
34 127
35 130
36 134
37 140
38 145
39 148
40 165
41 172
42 173
43 174
44 174
45 180
46 187
47 188
48 189
49 191
50 196
51 196
52 196
53 199
54 201
55 205
56 205
57 206
58 207
59 217
60 243
61 253
62 254
63 256
64 265
65 267
66 271
67 285
68 294
69 295
70 304
71 305
72 310
73 314
74 317
75 322
76 327
77 336
78 336
79 337
80 341
81 345
82 347
83 349
84 351
85 360
86 363
87 371
88 374
89 378
90 382
91 385
92 386
93 410
94 421
95 421
96 423
97 424
98 434
99 438
100 439
EOF

View file

@ -0,0 +1,625 @@
VRPTEST 1.0
COMMENT: Converted from c120 by convert2vt
COMMENT: Best known objective: 1042.11
NAME: c120
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 120
NUM_LOCATIONS: 121
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 25
2 7
3 13
4 6
5 14
6 5
7 11
8 19
9 5
10 15
11 15
12 17
13 13
14 12
15 18
16 13
17 18
18 12
19 17
20 4
21 7
22 12
23 13
24 8
25 16
26 15
27 6
28 5
29 9
30 11
31 10
32 3
33 7
34 2
35 4
36 4
37 18
38 14
39 12
40 17
41 20
42 14
43 16
44 10
45 9
46 11
47 7
48 13
49 5
50 4
51 21
52 13
53 11
54 12
55 14
56 10
57 8
58 16
59 19
60 5
61 17
62 7
63 16
64 14
65 17
66 13
67 17
68 13
69 14
70 16
71 7
72 13
73 9
74 11
75 35
76 5
77 28
78 7
79 3
80 10
81 7
82 12
83 11
84 10
85 8
86 11
87 21
88 4
89 15
90 16
91 4
92 16
93 7
94 10
95 9
96 11
97 17
98 12
99 11
100 7
101 9
102 11
103 12
104 7
105 8
106 6
107 5
108 12
109 13
110 7
111 7
112 8
113 11
114 13
115 11
116 10
117 7
118 4
119 20
120 13
LOCATION_COORD_SECTION
0 10 45
1 25 1
2 25 3
3 31 5
4 32 5
5 31 7
6 32 9
7 34 9
8 46 9
9 35 7
10 34 6
11 35 5
12 47 6
13 40 5
14 39 3
15 36 3
16 73 6
17 73 8
18 24 36
19 76 6
20 76 10
21 76 13
22 78 3
23 78 9
24 79 3
25 79 5
26 79 11
27 82 3
28 82 7
29 90 15
30 84 3
31 84 5
32 84 9
33 85 1
34 87 5
35 85 8
36 87 7
37 86 41
38 86 44
39 86 46
40 85 55
41 89 43
42 89 46
43 89 52
44 92 42
45 92 52
46 94 42
47 94 44
48 94 48
49 96 42
50 99 46
51 99 50
52 83 80
53 83 83
54 85 81
55 85 85
56 85 89
57 87 80
58 87 86
59 90 77
60 90 88
61 93 82
62 93 84
63 93 89
64 94 86
65 95 80
66 99 89
67 37 83
68 50 80
69 35 85
70 35 87
71 44 86
72 46 89
73 46 83
74 46 87
75 46 89
76 48 83
77 50 85
78 50 88
79 54 86
80 54 90
81 10 35
82 10 40
83 18 30
84 17 35
85 16 38
86 14 40
87 15 42
88 11 42
89 18 40
90 21 39
91 20 40
92 18 41
93 20 44
94 22 44
95 16 45
96 20 45
97 25 45
98 30 55
99 20 50
100 22 51
101 18 49
102 16 48
103 20 55
104 18 53
105 14 50
106 15 51
107 16 54
108 28 33
109 33 38
110 30 50
111 13 40
112 15 36
113 18 31
114 25 37
115 30 46
116 25 52
117 16 33
118 25 35
119 5 40
120 5 50
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
DURATION_SECTION
1 13
2 13
3 13
4 13
5 13
6 13
7 13
8 13
9 13
10 13
11 13
12 13
13 13
14 13
15 13
16 13
17 13
18 13
19 13
20 13
21 13
22 13
23 13
24 13
25 13
26 13
27 13
28 13
29 13
30 13
31 13
32 13
33 13
34 13
35 13
36 13
37 13
38 13
39 13
40 13
41 13
42 13
43 13
44 13
45 13
46 13
47 13
48 13
49 13
50 13
51 13
52 13
53 13
54 13
55 13
56 13
57 13
58 13
59 13
60 13
61 13
62 13
63 13
64 13
65 13
66 13
67 13
68 13
69 13
70 13
71 13
72 13
73 13
74 13
75 13
76 13
77 13
78 13
79 13
80 13
81 13
82 13
83 13
84 13
85 13
86 13
87 13
88 13
89 13
90 13
91 13
92 13
93 13
94 13
95 13
96 13
97 13
98 13
99 13
100 13
101 13
102 13
103 13
104 13
105 13
106 13
107 13
108 13
109 13
110 13
111 13
112 13
113 13
114 13
115 13
116 13
117 13
118 13
119 13
120 13
DEPOT_TIME_WINDOW_SECTION
0 0 794
COMMENT: TIMESTEP: 15
TIME_AVAIL_SECTION
1 1
2 14
3 26
4 27
5 29
6 34
7 35
8 38
9 46
10 62
11 70
12 70
13 71
14 89
15 114
16 122
17 140
18 152
19 166
20 172
21 181
22 188
23 200
24 206
25 223
26 223
27 226
28 234
29 235
30 251
31 254
32 273
33 274
34 276
35 289
36 292
37 304
38 324
39 324
40 324
41 330
42 330
43 339
44 346
45 356
46 358
47 361
48 377
49 383
50 396
51 402
52 406
53 409
54 412
55 432
56 435
57 443
58 445
59 454
60 469
61 472
62 476
63 476
64 485
65 485
66 488
67 495
68 498
69 503
70 506
71 524
72 527
73 529
74 533
75 539
76 539
77 539
78 546
79 548
80 554
81 558
82 573
83 574
84 576
85 577
86 581
87 584
88 620
89 625
90 625
91 633
92 639
93 643
94 646
95 647
96 657
97 661
98 673
99 682
100 682
101 688
102 691
103 694
104 704
105 706
106 707
107 710
108 722
109 725
110 732
111 734
112 752
113 761
114 766
115 769
116 780
117 785
118 785
119 788
120 792
EOF

View file

@ -0,0 +1,625 @@
VRPTEST 1.0
COMMENT: Converted from c120 by convert2vt
COMMENT: Best known objective: 1042.11
NAME: c120
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 120
NUM_LOCATIONS: 121
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -25
2 -7
3 -13
4 -6
5 -14
6 -5
7 -11
8 -19
9 -5
10 -15
11 -15
12 -17
13 -13
14 -12
15 -18
16 -13
17 -18
18 -12
19 -17
20 -4
21 -7
22 -12
23 -13
24 -8
25 -16
26 -15
27 -6
28 -5
29 -9
30 -11
31 -10
32 -3
33 -7
34 -2
35 -4
36 -4
37 -18
38 -14
39 -12
40 -17
41 -20
42 -14
43 -16
44 -10
45 -9
46 -11
47 -7
48 -13
49 -5
50 -4
51 -21
52 -13
53 -11
54 -12
55 -14
56 -10
57 -8
58 -16
59 -19
60 -5
61 -17
62 -7
63 -16
64 -14
65 -17
66 -13
67 -17
68 -13
69 -14
70 -16
71 -7
72 -13
73 -9
74 -11
75 -35
76 -5
77 -28
78 -7
79 -3
80 -10
81 -7
82 -12
83 -11
84 -10
85 -8
86 -11
87 -21
88 -4
89 -15
90 -16
91 -4
92 -16
93 -7
94 -10
95 -9
96 -11
97 -17
98 -12
99 -11
100 -7
101 -9
102 -11
103 -12
104 -7
105 -8
106 -6
107 -5
108 -12
109 -13
110 -7
111 -7
112 -8
113 -11
114 -13
115 -11
116 -10
117 -7
118 -4
119 -20
120 -13
LOCATION_COORD_SECTION
0 10 45
1 25 1
2 25 3
3 31 5
4 32 5
5 31 7
6 32 9
7 34 9
8 46 9
9 35 7
10 34 6
11 35 5
12 47 6
13 40 5
14 39 3
15 36 3
16 73 6
17 73 8
18 24 36
19 76 6
20 76 10
21 76 13
22 78 3
23 78 9
24 79 3
25 79 5
26 79 11
27 82 3
28 82 7
29 90 15
30 84 3
31 84 5
32 84 9
33 85 1
34 87 5
35 85 8
36 87 7
37 86 41
38 86 44
39 86 46
40 85 55
41 89 43
42 89 46
43 89 52
44 92 42
45 92 52
46 94 42
47 94 44
48 94 48
49 96 42
50 99 46
51 99 50
52 83 80
53 83 83
54 85 81
55 85 85
56 85 89
57 87 80
58 87 86
59 90 77
60 90 88
61 93 82
62 93 84
63 93 89
64 94 86
65 95 80
66 99 89
67 37 83
68 50 80
69 35 85
70 35 87
71 44 86
72 46 89
73 46 83
74 46 87
75 46 89
76 48 83
77 50 85
78 50 88
79 54 86
80 54 90
81 10 35
82 10 40
83 18 30
84 17 35
85 16 38
86 14 40
87 15 42
88 11 42
89 18 40
90 21 39
91 20 40
92 18 41
93 20 44
94 22 44
95 16 45
96 20 45
97 25 45
98 30 55
99 20 50
100 22 51
101 18 49
102 16 48
103 20 55
104 18 53
105 14 50
106 15 51
107 16 54
108 28 33
109 33 38
110 30 50
111 13 40
112 15 36
113 18 31
114 25 37
115 30 46
116 25 52
117 16 33
118 25 35
119 5 40
120 5 50
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
DURATION_SECTION
1 13
2 13
3 13
4 13
5 13
6 13
7 13
8 13
9 13
10 13
11 13
12 13
13 13
14 13
15 13
16 13
17 13
18 13
19 13
20 13
21 13
22 13
23 13
24 13
25 13
26 13
27 13
28 13
29 13
30 13
31 13
32 13
33 13
34 13
35 13
36 13
37 13
38 13
39 13
40 13
41 13
42 13
43 13
44 13
45 13
46 13
47 13
48 13
49 13
50 13
51 13
52 13
53 13
54 13
55 13
56 13
57 13
58 13
59 13
60 13
61 13
62 13
63 13
64 13
65 13
66 13
67 13
68 13
69 13
70 13
71 13
72 13
73 13
74 13
75 13
76 13
77 13
78 13
79 13
80 13
81 13
82 13
83 13
84 13
85 13
86 13
87 13
88 13
89 13
90 13
91 13
92 13
93 13
94 13
95 13
96 13
97 13
98 13
99 13
100 13
101 13
102 13
103 13
104 13
105 13
106 13
107 13
108 13
109 13
110 13
111 13
112 13
113 13
114 13
115 13
116 13
117 13
118 13
119 13
120 13
DEPOT_TIME_WINDOW_SECTION
0 0 794
COMMENT: TIMESTEP: 15
TIME_AVAIL_SECTION
1 1
2 14
3 26
4 27
5 29
6 34
7 35
8 38
9 46
10 62
11 70
12 70
13 71
14 89
15 114
16 122
17 140
18 152
19 166
20 172
21 181
22 188
23 200
24 206
25 223
26 223
27 226
28 234
29 235
30 251
31 254
32 273
33 274
34 276
35 289
36 292
37 304
38 324
39 324
40 324
41 330
42 330
43 339
44 346
45 356
46 358
47 361
48 377
49 383
50 396
51 402
52 406
53 409
54 412
55 432
56 435
57 443
58 445
59 454
60 469
61 472
62 476
63 476
64 485
65 485
66 488
67 495
68 498
69 503
70 506
71 524
72 527
73 529
74 533
75 539
76 539
77 539
78 546
79 548
80 554
81 558
82 573
83 574
84 576
85 577
86 581
87 584
88 620
89 625
90 625
91 633
92 639
93 643
94 646
95 647
96 657
97 661
98 673
99 682
100 682
101 688
102 691
103 694
104 704
105 706
106 707
107 710
108 722
109 725
110 732
111 734
112 752
113 761
114 766
115 769
116 780
117 785
118 785
119 788
120 792
EOF

View file

@ -0,0 +1,775 @@
VRPTEST 1.0
COMMENT: Converted from c150 by convert2vt
COMMENT: Best known objective: 1028.42
NAME: c150
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 150
NUM_LOCATIONS: 151
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 10
2 7
3 13
4 19
5 26
6 3
7 5
8 9
9 16
10 16
11 12
12 19
13 23
14 20
15 8
16 19
17 2
18 12
19 17
20 9
21 11
22 18
23 29
24 3
25 6
26 17
27 16
28 16
29 9
30 21
31 27
32 23
33 11
34 14
35 8
36 5
37 8
38 16
39 31
40 9
41 5
42 5
43 7
44 18
45 16
46 1
47 27
48 36
49 30
50 13
51 10
52 9
53 14
54 18
55 2
56 6
57 7
58 18
59 28
60 3
61 13
62 19
63 10
64 9
65 20
66 25
67 25
68 36
69 6
70 5
71 15
72 25
73 9
74 8
75 18
76 13
77 14
78 3
79 23
80 6
81 26
82 16
83 11
84 7
85 41
86 35
87 26
88 9
89 15
90 3
91 1
92 2
93 22
94 27
95 20
96 11
97 12
98 10
99 9
100 17
101 7
102 30
103 16
104 9
105 21
106 15
107 19
108 23
109 11
110 5
111 19
112 29
113 23
114 21
115 10
116 15
117 3
118 41
119 9
120 28
121 8
122 8
123 16
124 10
125 28
126 7
127 15
128 14
129 6
130 19
131 11
132 12
133 23
134 26
135 17
136 6
137 9
138 15
139 14
140 7
141 27
142 13
143 11
144 16
145 10
146 5
147 25
148 17
149 18
150 10
LOCATION_COORD_SECTION
0 35 35
1 41 49
2 35 17
3 55 45
4 55 20
5 15 30
6 25 30
7 20 50
8 10 43
9 55 60
10 30 60
11 20 65
12 50 35
13 30 25
14 15 10
15 30 5
16 10 20
17 5 30
18 20 40
19 15 60
20 45 65
21 45 20
22 45 10
23 55 5
24 65 35
25 65 20
26 45 30
27 35 40
28 41 37
29 64 42
30 40 60
31 31 52
32 35 69
33 53 52
34 65 55
35 63 65
36 2 60
37 20 20
38 5 5
39 60 12
40 40 25
41 42 7
42 24 12
43 23 3
44 11 14
45 6 38
46 2 48
47 8 56
48 13 52
49 6 68
50 47 47
51 49 58
52 27 43
53 37 31
54 57 29
55 63 23
56 53 12
57 32 12
58 36 26
59 21 24
60 17 34
61 12 24
62 24 58
63 27 69
64 15 77
65 62 77
66 49 73
67 67 5
68 56 39
69 37 47
70 37 56
71 57 68
72 47 16
73 44 17
74 46 13
75 49 11
76 49 42
77 53 43
78 61 52
79 57 48
80 56 37
81 55 54
82 15 47
83 14 37
84 11 31
85 16 22
86 4 18
87 28 18
88 26 52
89 26 35
90 31 67
91 15 19
92 22 22
93 18 24
94 26 27
95 25 24
96 22 27
97 25 21
98 19 21
99 20 26
100 18 18
101 37 52
102 49 49
103 52 64
104 20 26
105 40 30
106 21 47
107 17 63
108 31 62
109 52 33
110 51 21
111 42 41
112 31 32
113 5 25
114 12 42
115 36 16
116 52 41
117 27 23
118 17 33
119 13 13
120 57 58
121 62 42
122 42 57
123 16 57
124 8 52
125 7 38
126 27 68
127 30 48
128 43 67
129 58 48
130 58 27
131 37 69
132 38 46
133 46 10
134 61 33
135 62 63
136 63 69
137 32 22
138 45 35
139 59 15
140 5 6
141 10 17
142 21 10
143 5 64
144 30 15
145 39 10
146 32 39
147 25 32
148 25 55
149 48 28
150 56 37
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
135 135
136 136
137 137
138 138
139 139
140 140
141 141
142 142
143 143
144 144
145 145
146 146
147 147
148 148
149 149
150 150
DURATION_SECTION
1 10
2 10
3 10
4 10
5 10
6 10
7 10
8 10
9 10
10 10
11 10
12 10
13 10
14 10
15 10
16 10
17 10
18 10
19 10
20 10
21 10
22 10
23 10
24 10
25 10
26 10
27 10
28 10
29 10
30 10
31 10
32 10
33 10
34 10
35 10
36 10
37 10
38 10
39 10
40 10
41 10
42 10
43 10
44 10
45 10
46 10
47 10
48 10
49 10
50 10
51 10
52 10
53 10
54 10
55 10
56 10
57 10
58 10
59 10
60 10
61 10
62 10
63 10
64 10
65 10
66 10
67 10
68 10
69 10
70 10
71 10
72 10
73 10
74 10
75 10
76 10
77 10
78 10
79 10
80 10
81 10
82 10
83 10
84 10
85 10
86 10
87 10
88 10
89 10
90 10
91 10
92 10
93 10
94 10
95 10
96 10
97 10
98 10
99 10
100 10
101 10
102 10
103 10
104 10
105 10
106 10
107 10
108 10
109 10
110 10
111 10
112 10
113 10
114 10
115 10
116 10
117 10
118 10
119 10
120 10
121 10
122 10
123 10
124 10
125 10
126 10
127 10
128 10
129 10
130 10
131 10
132 10
133 10
134 10
135 10
136 10
137 10
138 10
139 10
140 10
141 10
142 10
143 10
144 10
145 10
146 10
147 10
148 10
149 10
150 10
DEPOT_TIME_WINDOW_SECTION
0 0 399
COMMENT: TIMESTEP: 7
TIME_AVAIL_SECTION
1 0
2 7
3 13
4 13
5 14
6 17
7 17
8 19
9 23
10 31
11 32
12 35
13 35
14 36
15 44
16 47
17 55
18 57
19 61
20 62
21 67
22 70
23 71
24 71
25 71
26 74
27 76
28 79
29 83
30 86
31 91
32 94
33 100
34 103
35 112
36 112
37 113
38 117
39 118
40 126
41 127
42 137
43 137
44 138
45 138
46 143
47 143
48 145
49 146
50 152
51 163
52 163
53 163
54 166
55 166
56 168
57 170
58 174
59 179
60 180
61 181
62 181
63 189
64 192
65 199
66 202
67 202
68 204
69 205
70 207
71 217
72 218
73 222
74 223
75 224
76 228
77 229
78 235
79 235
80 237
81 239
82 239
83 243
84 243
85 245
86 247
87 249
88 250
89 252
90 254
91 254
92 263
93 265
94 266
95 268
96 271
97 271
98 271
99 274
100 275
101 278
102 280
103 288
104 288
105 289
106 290
107 292
108 293
109 310
110 311
111 314
112 314
113 316
114 318
115 321
116 323
117 324
118 325
119 330
120 332
121 334
122 338
123 343
124 343
125 346
126 347
127 348
128 348
129 354
130 354
131 355
132 357
133 359
134 363
135 363
136 364
137 368
138 368
139 373
140 378
141 382
142 384
143 386
144 389
145 392
146 394
147 394
148 396
149 396
150 398
EOF

View file

@ -0,0 +1,775 @@
VRPTEST 1.0
COMMENT: Converted from c150 by convert2vt
COMMENT: Best known objective: 1028.42
NAME: c150
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 150
NUM_LOCATIONS: 151
NUM_VEHICLES: 50
CAPACITIES: 200
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -10
2 -7
3 -13
4 -19
5 -26
6 -3
7 -5
8 -9
9 -16
10 -16
11 -12
12 -19
13 -23
14 -20
15 -8
16 -19
17 -2
18 -12
19 -17
20 -9
21 -11
22 -18
23 -29
24 -3
25 -6
26 -17
27 -16
28 -16
29 -9
30 -21
31 -27
32 -23
33 -11
34 -14
35 -8
36 -5
37 -8
38 -16
39 -31
40 -9
41 -5
42 -5
43 -7
44 -18
45 -16
46 -1
47 -27
48 -36
49 -30
50 -13
51 -10
52 -9
53 -14
54 -18
55 -2
56 -6
57 -7
58 -18
59 -28
60 -3
61 -13
62 -19
63 -10
64 -9
65 -20
66 -25
67 -25
68 -36
69 -6
70 -5
71 -15
72 -25
73 -9
74 -8
75 -18
76 -13
77 -14
78 -3
79 -23
80 -6
81 -26
82 -16
83 -11
84 -7
85 -41
86 -35
87 -26
88 -9
89 -15
90 -3
91 -1
92 -2
93 -22
94 -27
95 -20
96 -11
97 -12
98 -10
99 -9
100 -17
101 -7
102 -30
103 -16
104 -9
105 -21
106 -15
107 -19
108 -23
109 -11
110 -5
111 -19
112 -29
113 -23
114 -21
115 -10
116 -15
117 -3
118 -41
119 -9
120 -28
121 -8
122 -8
123 -16
124 -10
125 -28
126 -7
127 -15
128 -14
129 -6
130 -19
131 -11
132 -12
133 -23
134 -26
135 -17
136 -6
137 -9
138 -15
139 -14
140 -7
141 -27
142 -13
143 -11
144 -16
145 -10
146 -5
147 -25
148 -17
149 -18
150 -10
LOCATION_COORD_SECTION
0 35 35
1 41 49
2 35 17
3 55 45
4 55 20
5 15 30
6 25 30
7 20 50
8 10 43
9 55 60
10 30 60
11 20 65
12 50 35
13 30 25
14 15 10
15 30 5
16 10 20
17 5 30
18 20 40
19 15 60
20 45 65
21 45 20
22 45 10
23 55 5
24 65 35
25 65 20
26 45 30
27 35 40
28 41 37
29 64 42
30 40 60
31 31 52
32 35 69
33 53 52
34 65 55
35 63 65
36 2 60
37 20 20
38 5 5
39 60 12
40 40 25
41 42 7
42 24 12
43 23 3
44 11 14
45 6 38
46 2 48
47 8 56
48 13 52
49 6 68
50 47 47
51 49 58
52 27 43
53 37 31
54 57 29
55 63 23
56 53 12
57 32 12
58 36 26
59 21 24
60 17 34
61 12 24
62 24 58
63 27 69
64 15 77
65 62 77
66 49 73
67 67 5
68 56 39
69 37 47
70 37 56
71 57 68
72 47 16
73 44 17
74 46 13
75 49 11
76 49 42
77 53 43
78 61 52
79 57 48
80 56 37
81 55 54
82 15 47
83 14 37
84 11 31
85 16 22
86 4 18
87 28 18
88 26 52
89 26 35
90 31 67
91 15 19
92 22 22
93 18 24
94 26 27
95 25 24
96 22 27
97 25 21
98 19 21
99 20 26
100 18 18
101 37 52
102 49 49
103 52 64
104 20 26
105 40 30
106 21 47
107 17 63
108 31 62
109 52 33
110 51 21
111 42 41
112 31 32
113 5 25
114 12 42
115 36 16
116 52 41
117 27 23
118 17 33
119 13 13
120 57 58
121 62 42
122 42 57
123 16 57
124 8 52
125 7 38
126 27 68
127 30 48
128 43 67
129 58 48
130 58 27
131 37 69
132 38 46
133 46 10
134 61 33
135 62 63
136 63 69
137 32 22
138 45 35
139 59 15
140 5 6
141 10 17
142 21 10
143 5 64
144 30 15
145 39 10
146 32 39
147 25 32
148 25 55
149 48 28
150 56 37
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
135 135
136 136
137 137
138 138
139 139
140 140
141 141
142 142
143 143
144 144
145 145
146 146
147 147
148 148
149 149
150 150
DURATION_SECTION
1 10
2 10
3 10
4 10
5 10
6 10
7 10
8 10
9 10
10 10
11 10
12 10
13 10
14 10
15 10
16 10
17 10
18 10
19 10
20 10
21 10
22 10
23 10
24 10
25 10
26 10
27 10
28 10
29 10
30 10
31 10
32 10
33 10
34 10
35 10
36 10
37 10
38 10
39 10
40 10
41 10
42 10
43 10
44 10
45 10
46 10
47 10
48 10
49 10
50 10
51 10
52 10
53 10
54 10
55 10
56 10
57 10
58 10
59 10
60 10
61 10
62 10
63 10
64 10
65 10
66 10
67 10
68 10
69 10
70 10
71 10
72 10
73 10
74 10
75 10
76 10
77 10
78 10
79 10
80 10
81 10
82 10
83 10
84 10
85 10
86 10
87 10
88 10
89 10
90 10
91 10
92 10
93 10
94 10
95 10
96 10
97 10
98 10
99 10
100 10
101 10
102 10
103 10
104 10
105 10
106 10
107 10
108 10
109 10
110 10
111 10
112 10
113 10
114 10
115 10
116 10
117 10
118 10
119 10
120 10
121 10
122 10
123 10
124 10
125 10
126 10
127 10
128 10
129 10
130 10
131 10
132 10
133 10
134 10
135 10
136 10
137 10
138 10
139 10
140 10
141 10
142 10
143 10
144 10
145 10
146 10
147 10
148 10
149 10
150 10
DEPOT_TIME_WINDOW_SECTION
0 0 399
COMMENT: TIMESTEP: 7
TIME_AVAIL_SECTION
1 3
2 4
3 5
4 7
5 9
6 11
7 15
8 20
9 20
10 22
11 22
12 25
13 30
14 33
15 36
16 41
17 45
18 45
19 52
20 53
21 59
22 61
23 62
24 63
25 65
26 67
27 70
28 71
29 71
30 75
31 76
32 80
33 83
34 83
35 86
36 89
37 92
38 95
39 97
40 99
41 100
42 103
43 108
44 109
45 112
46 117
47 118
48 118
49 119
50 122
51 124
52 127
53 128
54 130
55 141
56 141
57 143
58 150
59 156
60 169
61 170
62 174
63 180
64 180
65 181
66 185
67 190
68 192
69 193
70 197
71 201
72 201
73 202
74 205
75 205
76 210
77 212
78 216
79 230
80 233
81 233
82 234
83 235
84 243
85 247
86 255
87 260
88 261
89 261
90 263
91 263
92 264
93 266
94 273
95 273
96 277
97 277
98 278
99 282
100 282
101 284
102 287
103 287
104 287
105 289
106 293
107 295
108 295
109 297
110 298
111 300
112 300
113 310
114 320
115 321
116 325
117 327
118 329
119 331
120 335
121 339
122 341
123 341
124 343
125 345
126 345
127 345
128 346
129 349
130 350
131 351
132 352
133 354
134 358
135 361
136 362
137 365
138 366
139 366
140 371
141 373
142 373
143 374
144 377
145 381
146 384
147 388
148 390
149 396
150 397
EOF

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,275 @@
VRPTEST 1.0
COMMENT: Converted from c50 by convert2vt
COMMENT: Best known objective: 524.61
NAME: c50
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 50
NUM_LOCATIONS: 51
NUM_VEHICLES: 50
CAPACITIES: 160
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 7
2 30
3 16
4 9
5 21
6 15
7 19
8 23
9 11
10 5
11 19
12 29
13 23
14 21
15 10
16 15
17 3
18 41
19 9
20 28
21 8
22 8
23 16
24 10
25 28
26 7
27 15
28 14
29 6
30 19
31 11
32 12
33 23
34 26
35 17
36 6
37 9
38 15
39 14
40 7
41 27
42 13
43 11
44 16
45 10
46 5
47 25
48 17
49 18
50 10
LOCATION_COORD_SECTION
0 30 40
1 37 52
2 49 49
3 52 64
4 20 26
5 40 30
6 21 47
7 17 63
8 31 62
9 52 33
10 51 21
11 42 41
12 31 32
13 5 25
14 12 42
15 36 16
16 52 41
17 27 23
18 17 33
19 13 13
20 57 58
21 62 42
22 42 57
23 16 57
24 8 52
25 7 38
26 27 68
27 30 48
28 43 67
29 58 48
30 58 27
31 37 69
32 38 46
33 46 10
34 61 33
35 62 63
36 63 69
37 32 22
38 45 35
39 59 15
40 5 6
41 10 17
42 21 10
43 5 64
44 30 15
45 39 10
46 32 39
47 25 32
48 25 55
49 48 28
50 56 37
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
DURATION_SECTION
1 15
2 15
3 15
4 15
5 15
6 15
7 15
8 15
9 15
10 15
11 15
12 15
13 15
14 15
15 15
16 15
17 15
18 15
19 15
20 15
21 15
22 15
23 15
24 15
25 15
26 15
27 15
28 15
29 15
30 15
31 15
32 15
33 15
34 15
35 15
36 15
37 15
38 15
39 15
40 15
41 15
42 15
43 15
44 15
45 15
46 15
47 15
48 15
49 15
50 15
DEPOT_TIME_WINDOW_SECTION
0 0 351
COMMENT: TIMESTEP: 7
TIME_AVAIL_SECTION
1 1
2 4
3 9
4 12
5 12
6 16
7 21
8 34
9 42
10 44
11 51
12 58
13 63
14 79
15 80
16 80
17 86
18 100
19 104
20 116
21 128
22 138
23 157
24 184
25 189
26 204
27 217
28 224
29 224
30 226
31 232
32 241
33 242
34 245
35 251
36 255
37 282
38 283
39 289
40 290
41 294
42 294
43 296
44 298
45 302
46 305
47 312
48 314
49 340
50 345
EOF

View file

@ -0,0 +1,275 @@
VRPTEST 1.0
COMMENT: Converted from c50 by convert2vt
COMMENT: Best known objective: 524.61
NAME: c50
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 50
NUM_LOCATIONS: 51
NUM_VEHICLES: 50
CAPACITIES: 160
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -7
2 -30
3 -16
4 -9
5 -21
6 -15
7 -19
8 -23
9 -11
10 -5
11 -19
12 -29
13 -23
14 -21
15 -10
16 -15
17 -3
18 -41
19 -9
20 -28
21 -8
22 -8
23 -16
24 -10
25 -28
26 -7
27 -15
28 -14
29 -6
30 -19
31 -11
32 -12
33 -23
34 -26
35 -17
36 -6
37 -9
38 -15
39 -14
40 -7
41 -27
42 -13
43 -11
44 -16
45 -10
46 -5
47 -25
48 -17
49 -18
50 -10
LOCATION_COORD_SECTION
0 30 40
1 37 52
2 49 49
3 52 64
4 20 26
5 40 30
6 21 47
7 17 63
8 31 62
9 52 33
10 51 21
11 42 41
12 31 32
13 5 25
14 12 42
15 36 16
16 52 41
17 27 23
18 17 33
19 13 13
20 57 58
21 62 42
22 42 57
23 16 57
24 8 52
25 7 38
26 27 68
27 30 48
28 43 67
29 58 48
30 58 27
31 37 69
32 38 46
33 46 10
34 61 33
35 62 63
36 63 69
37 32 22
38 45 35
39 59 15
40 5 6
41 10 17
42 21 10
43 5 64
44 30 15
45 39 10
46 32 39
47 25 32
48 25 55
49 48 28
50 56 37
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
DURATION_SECTION
1 15
2 15
3 15
4 15
5 15
6 15
7 15
8 15
9 15
10 15
11 15
12 15
13 15
14 15
15 15
16 15
17 15
18 15
19 15
20 15
21 15
22 15
23 15
24 15
25 15
26 15
27 15
28 15
29 15
30 15
31 15
32 15
33 15
34 15
35 15
36 15
37 15
38 15
39 15
40 15
41 15
42 15
43 15
44 15
45 15
46 15
47 15
48 15
49 15
50 15
DEPOT_TIME_WINDOW_SECTION
0 0 351
COMMENT: TIMESTEP: 7
TIME_AVAIL_SECTION
1 1
2 4
3 9
4 12
5 12
6 16
7 21
8 34
9 42
10 44
11 51
12 58
13 63
14 79
15 80
16 80
17 86
18 100
19 104
20 116
21 128
22 138
23 157
24 184
25 189
26 204
27 217
28 224
29 224
30 226
31 232
32 241
33 242
34 245
35 251
36 255
37 282
38 283
39 289
40 290
41 294
42 294
43 296
44 298
45 302
46 305
47 312
48 314
49 340
50 345
EOF

View file

@ -0,0 +1,400 @@
VRPTEST 1.0
COMMENT: Converted from c75 by convert2vt
COMMENT: Best known objective: 835.26
NAME: c75
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 75
NUM_LOCATIONS: 76
NUM_VEHICLES: 50
CAPACITIES: 140
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 18
2 26
3 11
4 30
5 21
6 19
7 15
8 16
9 29
10 26
11 37
12 16
13 12
14 31
15 8
16 19
17 20
18 13
19 15
20 22
21 28
22 12
23 6
24 27
25 14
26 18
27 17
28 29
29 13
30 22
31 25
32 28
33 27
34 19
35 10
36 12
37 14
38 24
39 16
40 33
41 15
42 11
43 18
44 17
45 21
46 27
47 19
48 20
49 5
50 22
51 12
52 19
53 22
54 16
55 7
56 26
57 14
58 21
59 24
60 13
61 15
62 18
63 11
64 28
65 9
66 37
67 30
68 10
69 8
70 11
71 3
72 1
73 6
74 10
75 20
LOCATION_COORD_SECTION
0 40 40
1 22 22
2 36 26
3 21 45
4 45 35
5 55 20
6 33 34
7 50 50
8 55 45
9 26 59
10 40 66
11 55 65
12 35 51
13 62 35
14 62 57
15 62 24
16 21 36
17 33 44
18 9 56
19 62 48
20 66 14
21 44 13
22 26 13
23 11 28
24 7 43
25 17 64
26 41 46
27 55 34
28 35 16
29 52 26
30 43 26
31 31 76
32 22 53
33 26 29
34 50 40
35 55 50
36 54 10
37 60 15
38 47 66
39 30 60
40 30 50
41 12 17
42 15 14
43 16 19
44 21 48
45 50 30
46 51 42
47 50 15
48 48 21
49 12 38
50 15 56
51 29 39
52 54 38
53 55 57
54 67 41
55 10 70
56 6 25
57 65 27
58 40 60
59 70 64
60 64 4
61 36 6
62 30 20
63 20 30
64 15 5
65 50 70
66 57 72
67 45 42
68 38 33
69 50 4
70 66 8
71 59 5
72 35 60
73 27 24
74 40 20
75 40 37
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
DURATION_SECTION
1 16
2 16
3 16
4 16
5 16
6 16
7 16
8 16
9 16
10 16
11 16
12 16
13 16
14 16
15 16
16 16
17 16
18 16
19 16
20 16
21 16
22 16
23 16
24 16
25 16
26 16
27 16
28 16
29 16
30 16
31 16
32 16
33 16
34 16
35 16
36 16
37 16
38 16
39 16
40 16
41 16
42 16
43 16
44 16
45 16
46 16
47 16
48 16
49 16
50 16
51 16
52 16
53 16
54 16
55 16
56 16
57 16
58 16
59 16
60 16
61 16
62 16
63 16
64 16
65 16
66 16
67 16
68 16
69 16
70 16
71 16
72 16
73 16
74 16
75 16
DEPOT_TIME_WINDOW_SECTION
0 0 346
COMMENT: TIMESTEP: 6
TIME_AVAIL_SECTION
1 3
2 5
3 8
4 13
5 17
6 20
7 20
8 20
9 22
10 24
11 25
12 30
13 32
14 34
15 42
16 42
17 47
18 66
19 71
20 79
21 84
22 84
23 85
24 87
25 101
26 107
27 108
28 109
29 112
30 119
31 121
32 122
33 128
34 131
35 135
36 138
37 150
38 152
39 152
40 181
41 182
42 189
43 196
44 199
45 203
46 210
47 216
48 217
49 231
50 231
51 235
52 237
53 237
54 245
55 251
56 253
57 254
58 258
59 258
60 268
61 284
62 284
63 300
64 305
65 313
66 321
67 322
68 328
69 333
70 335
71 336
72 337
73 338
74 343
75 345
EOF

View file

@ -0,0 +1,400 @@
VRPTEST 1.0
COMMENT: Converted from c75 by convert2vt
COMMENT: Best known objective: 835.26
NAME: c75
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 75
NUM_LOCATIONS: 76
NUM_VEHICLES: 50
CAPACITIES: 140
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -18
2 -26
3 -11
4 -30
5 -21
6 -19
7 -15
8 -16
9 -29
10 -26
11 -37
12 -16
13 -12
14 -31
15 -8
16 -19
17 -20
18 -13
19 -15
20 -22
21 -28
22 -12
23 -6
24 -27
25 -14
26 -18
27 -17
28 -29
29 -13
30 -22
31 -25
32 -28
33 -27
34 -19
35 -10
36 -12
37 -14
38 -24
39 -16
40 -33
41 -15
42 -11
43 -18
44 -17
45 -21
46 -27
47 -19
48 -20
49 -5
50 -22
51 -12
52 -19
53 -22
54 -16
55 -7
56 -26
57 -14
58 -21
59 -24
60 -13
61 -15
62 -18
63 -11
64 -28
65 -9
66 -37
67 -30
68 -10
69 -8
70 -11
71 -3
72 -1
73 -6
74 -10
75 -20
LOCATION_COORD_SECTION
0 40 40
1 22 22
2 36 26
3 21 45
4 45 35
5 55 20
6 33 34
7 50 50
8 55 45
9 26 59
10 40 66
11 55 65
12 35 51
13 62 35
14 62 57
15 62 24
16 21 36
17 33 44
18 9 56
19 62 48
20 66 14
21 44 13
22 26 13
23 11 28
24 7 43
25 17 64
26 41 46
27 55 34
28 35 16
29 52 26
30 43 26
31 31 76
32 22 53
33 26 29
34 50 40
35 55 50
36 54 10
37 60 15
38 47 66
39 30 60
40 30 50
41 12 17
42 15 14
43 16 19
44 21 48
45 50 30
46 51 42
47 50 15
48 48 21
49 12 38
50 15 56
51 29 39
52 54 38
53 55 57
54 67 41
55 10 70
56 6 25
57 65 27
58 40 60
59 70 64
60 64 4
61 36 6
62 30 20
63 20 30
64 15 5
65 50 70
66 57 72
67 45 42
68 38 33
69 50 4
70 66 8
71 59 5
72 35 60
73 27 24
74 40 20
75 40 37
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
DURATION_SECTION
1 16
2 16
3 16
4 16
5 16
6 16
7 16
8 16
9 16
10 16
11 16
12 16
13 16
14 16
15 16
16 16
17 16
18 16
19 16
20 16
21 16
22 16
23 16
24 16
25 16
26 16
27 16
28 16
29 16
30 16
31 16
32 16
33 16
34 16
35 16
36 16
37 16
38 16
39 16
40 16
41 16
42 16
43 16
44 16
45 16
46 16
47 16
48 16
49 16
50 16
51 16
52 16
53 16
54 16
55 16
56 16
57 16
58 16
59 16
60 16
61 16
62 16
63 16
64 16
65 16
66 16
67 16
68 16
69 16
70 16
71 16
72 16
73 16
74 16
75 16
DEPOT_TIME_WINDOW_SECTION
0 0 346
COMMENT: TIMESTEP: 6
TIME_AVAIL_SECTION
1 3
2 5
3 8
4 13
5 17
6 20
7 20
8 20
9 22
10 24
11 25
12 30
13 32
14 34
15 42
16 42
17 47
18 66
19 71
20 79
21 84
22 84
23 85
24 87
25 101
26 107
27 108
28 109
29 112
30 119
31 121
32 122
33 128
34 131
35 135
36 138
37 150
38 152
39 152
40 181
41 182
42 189
43 196
44 199
45 203
46 210
47 216
48 217
49 231
50 231
51 235
52 237
53 237
54 245
55 251
56 253
57 254
58 258
59 258
60 268
61 284
62 284
63 300
64 305
65 313
66 321
67 322
68 328
69 333
70 335
71 336
72 337
73 338
74 343
75 345
EOF

View file

@ -0,0 +1,695 @@
VRPTEST 1.0
COMMENT: Converted from f134 by convert2vt
COMMENT: Best known objective: 1162.96
NAME: f134
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 134
NUM_LOCATIONS: 135
NUM_VEHICLES: 50
CAPACITIES: 2210
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 30
2 226
3 37
4 24
5 36
6 1
7 31
8 24
9 30
10 24
11 24
12 32
13 24
14 24
15 19
16 24
17 18
18 36
19 115
20 24
21 24
22 61
23 71
24 36
25 18
26 30
27 31
28 36
29 18
30 1004
31 18
32 34
33 504
34 18
35 39
36 24
37 37
38 24
39 99
40 24
41 24
42 36
43 30
44 25
45 24
46 122
47 196
48 229
49 83
50 18
51 24
52 306
53 18
54 20
55 18
56 24
57 22
58 24
59 18
60 18
61 24
62 24
63 30
64 24
65 40
66 166
67 254
68 187
69 94
70 17
71 285
72 24
73 24
74 205
75 23
76 28
77 51
78 49
79 19
80 262
81 120
82 266
83 704
84 38
85 18
86 30
87 25
88 12
89 18
90 25
91 35
92 18
93 12
94 20
95 1126
96 9
97 36
98 12
99 31
100 96
101 27
102 54
103 137
104 12
105 58
106 206
107 178
108 486
109 36
110 261
111 135
112 135
113 373
114 535
115 42
116 9
117 110
118 36
119 18
120 726
121 187
122 23
123 134
124 47
125 51
126 43
127 79
128 112
129 91
130 232
131 483
132 828
133 11
134 12
LOCATION_COORD_SECTION
0 -60 150
1 32 51
2 246 83
3 233 13
4 278 83
5 290 80
6 310 80
7 335 105
8 300 105
9 290 100
10 265 117
11 283 143
12 270 143
13 235 190
14 260 200
15 250 200
16 205 190
17 -200 130
18 -210 140
19 -300 300
20 -50 300
21 13 178
22 18 138
23 18 131
24 20 136
25 48 170
26 70 150
27 98 166
28 114 145
29 144 113
30 110 120
31 93 107
32 6 28
33 -300 -100
34 20 0
35 145 10
36 150 18
37 172 24
38 172 42
39 182 44
40 203 21
41 228 31
42 230 40
43 208 40
44 208 40
45 185 64
46 -140 160
47 -5 69
48 32 28
49 56 18
50 87 28
51 90 33
52 90 35
53 112 33
54 108 47
55 115 46
56 123 47
57 123 55
58 112 69
59 65 97
60 58 85
61 72 60
62 72 40
63 -40 -40
64 -30 12
65 -400 490
66 -150 100
67 -110 -100
68 -250 -200
69 -250 -350
70 -240 -350
71 -180 100
72 -20 100
73 -40 80
74 -30 50
75 21 62
76 -17 30
77 -30 20
78 -70 0
79 -30 -60
80 -300 -110
81 -620 -100
82 -80 300
83 10 600
84 100 520
85 100 520
86 100 510
87 160 290
88 260 210
89 160 210
90 155 192
91 0 165
92 172 143
93 165 78
94 169 77
95 180 20
96 162 40
97 150 40
98 150 30
99 148 24
100 145 30
101 130 26
102 118 30
103 120 40
104 128 36
105 134 55
106 -1500 80
107 -1520 10
108 -1520 0
109 -1420 -310
110 -780 -190
111 -780 -180
112 -780 -170
113 -800 -140
114 -1180 220
115 -1070 300
116 -850 140
117 -780 150
118 -150 160
119 -620 320
120 -1200 -200
121 -900 -220
122 -790 -190
123 -790 -185
124 -790 -180
125 -780 -175
126 -790 -170
127 -800 -170
128 -800 -160
129 -800 -150
130 -480 370
131 -850 150
132 -620 -90
133 -150 -40
134 -10 32
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
DURATION_SECTION
1 13
2 13
3 13
4 13
5 13
6 13
7 13
8 13
9 13
10 13
11 13
12 13
13 13
14 13
15 13
16 13
17 13
18 13
19 13
20 13
21 13
22 13
23 13
24 13
25 13
26 13
27 13
28 13
29 13
30 13
31 13
32 13
33 13
34 13
35 13
36 13
37 13
38 13
39 13
40 13
41 13
42 13
43 13
44 13
45 13
46 13
47 13
48 13
49 13
50 13
51 13
52 13
53 13
54 13
55 13
56 13
57 13
58 13
59 13
60 13
61 13
62 13
63 13
64 13
65 13
66 13
67 13
68 13
69 13
70 13
71 13
72 13
73 13
74 13
75 13
76 13
77 13
78 13
79 13
80 13
81 13
82 13
83 13
84 13
85 13
86 13
87 13
88 13
89 13
90 13
91 13
92 13
93 13
94 13
95 13
96 13
97 13
98 13
99 13
100 13
101 13
102 13
103 13
104 13
105 13
106 13
107 13
108 13
109 13
110 13
111 13
112 13
113 13
114 13
115 13
116 13
117 13
118 13
119 13
120 13
121 13
122 13
123 13
124 13
125 13
126 13
127 13
128 13
129 13
130 13
131 13
132 13
133 13
134 13
DEPOT_TIME_WINDOW_SECTION
0 0 11741
COMMENT: TIMESTEP: 234
TIME_AVAIL_SECTION
1 43
2 174
3 237
4 301
5 345
6 369
7 430
8 516
9 583
10 605
11 756
12 778
13 865
14 1100
15 1210
16 1275
17 1426
18 1708
19 1708
20 1750
21 1771
22 1773
23 2012
24 2227
25 2248
26 2270
27 2358
28 2443
29 2529
30 2552
31 2788
32 2963
33 3049
34 3092
35 3111
36 3177
37 3223
38 3351
39 3567
40 3652
41 3653
42 3719
43 3868
44 3914
45 4021
46 4042
47 4108
48 4174
49 4324
50 4344
51 4410
52 4411
53 4476
54 4561
55 4736
56 4778
57 4843
58 4887
59 5187
60 5254
61 5341
62 5557
63 5643
64 5727
65 5729
66 5730
67 5903
68 5924
69 6009
70 6095
71 6097
72 6117
73 6117
74 6226
75 6313
76 6314
77 6509
78 6529
79 6724
80 7071
81 7092
82 7198
83 7264
84 7478
85 7608
86 7697
87 7825
88 7956
89 8238
90 8538
91 8540
92 8562
93 8606
94 8648
95 8713
96 8779
97 8842
98 9036
99 9273
100 9338
101 9426
102 9449
103 9470
104 9644
105 9687
106 9749
107 9773
108 9859
109 9903
110 9944
111 9968
112 9990
113 10055
114 10073
115 10489
116 10508
117 10570
118 10594
119 10766
120 10918
121 10962
122 11006
123 11179
124 11264
125 11351
126 11372
127 11373
128 11459
129 11460
130 11481
131 11522
132 11568
133 11652
134 11740
EOF

View file

@ -0,0 +1,695 @@
VRPTEST 1.0
COMMENT: Converted from f134 by convert2vt
COMMENT: Best known objective: 1162.96
NAME: f134
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 134
NUM_LOCATIONS: 135
NUM_VEHICLES: 50
CAPACITIES: 2210
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -30
2 -226
3 -37
4 -24
5 -36
6 -1
7 -31
8 -24
9 -30
10 -24
11 -24
12 -32
13 -24
14 -24
15 -19
16 -24
17 -18
18 -36
19 -115
20 -24
21 -24
22 -61
23 -71
24 -36
25 -18
26 -30
27 -31
28 -36
29 -18
30 -1004
31 -18
32 -34
33 -504
34 -18
35 -39
36 -24
37 -37
38 -24
39 -99
40 -24
41 -24
42 -36
43 -30
44 -25
45 -24
46 -122
47 -196
48 -229
49 -83
50 -18
51 -24
52 -306
53 -18
54 -20
55 -18
56 -24
57 -22
58 -24
59 -18
60 -18
61 -24
62 -24
63 -30
64 -24
65 -40
66 -166
67 -254
68 -187
69 -94
70 -17
71 -285
72 -24
73 -24
74 -205
75 -23
76 -28
77 -51
78 -49
79 -19
80 -262
81 -120
82 -266
83 -704
84 -38
85 -18
86 -30
87 -25
88 -12
89 -18
90 -25
91 -35
92 -18
93 -12
94 -20
95 -1126
96 -9
97 -36
98 -12
99 -31
100 -96
101 -27
102 -54
103 -137
104 -12
105 -58
106 -206
107 -178
108 -486
109 -36
110 -261
111 -135
112 -135
113 -373
114 -535
115 -42
116 -9
117 -110
118 -36
119 -18
120 -726
121 -187
122 -23
123 -134
124 -47
125 -51
126 -43
127 -79
128 -112
129 -91
130 -232
131 -483
132 -828
133 -11
134 -12
LOCATION_COORD_SECTION
0 -60 150
1 32 51
2 246 83
3 233 13
4 278 83
5 290 80
6 310 80
7 335 105
8 300 105
9 290 100
10 265 117
11 283 143
12 270 143
13 235 190
14 260 200
15 250 200
16 205 190
17 -200 130
18 -210 140
19 -300 300
20 -50 300
21 13 178
22 18 138
23 18 131
24 20 136
25 48 170
26 70 150
27 98 166
28 114 145
29 144 113
30 110 120
31 93 107
32 6 28
33 -300 -100
34 20 0
35 145 10
36 150 18
37 172 24
38 172 42
39 182 44
40 203 21
41 228 31
42 230 40
43 208 40
44 208 40
45 185 64
46 -140 160
47 -5 69
48 32 28
49 56 18
50 87 28
51 90 33
52 90 35
53 112 33
54 108 47
55 115 46
56 123 47
57 123 55
58 112 69
59 65 97
60 58 85
61 72 60
62 72 40
63 -40 -40
64 -30 12
65 -400 490
66 -150 100
67 -110 -100
68 -250 -200
69 -250 -350
70 -240 -350
71 -180 100
72 -20 100
73 -40 80
74 -30 50
75 21 62
76 -17 30
77 -30 20
78 -70 0
79 -30 -60
80 -300 -110
81 -620 -100
82 -80 300
83 10 600
84 100 520
85 100 520
86 100 510
87 160 290
88 260 210
89 160 210
90 155 192
91 0 165
92 172 143
93 165 78
94 169 77
95 180 20
96 162 40
97 150 40
98 150 30
99 148 24
100 145 30
101 130 26
102 118 30
103 120 40
104 128 36
105 134 55
106 -1500 80
107 -1520 10
108 -1520 0
109 -1420 -310
110 -780 -190
111 -780 -180
112 -780 -170
113 -800 -140
114 -1180 220
115 -1070 300
116 -850 140
117 -780 150
118 -150 160
119 -620 320
120 -1200 -200
121 -900 -220
122 -790 -190
123 -790 -185
124 -790 -180
125 -780 -175
126 -790 -170
127 -800 -170
128 -800 -160
129 -800 -150
130 -480 370
131 -850 150
132 -620 -90
133 -150 -40
134 -10 32
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
DURATION_SECTION
1 13
2 13
3 13
4 13
5 13
6 13
7 13
8 13
9 13
10 13
11 13
12 13
13 13
14 13
15 13
16 13
17 13
18 13
19 13
20 13
21 13
22 13
23 13
24 13
25 13
26 13
27 13
28 13
29 13
30 13
31 13
32 13
33 13
34 13
35 13
36 13
37 13
38 13
39 13
40 13
41 13
42 13
43 13
44 13
45 13
46 13
47 13
48 13
49 13
50 13
51 13
52 13
53 13
54 13
55 13
56 13
57 13
58 13
59 13
60 13
61 13
62 13
63 13
64 13
65 13
66 13
67 13
68 13
69 13
70 13
71 13
72 13
73 13
74 13
75 13
76 13
77 13
78 13
79 13
80 13
81 13
82 13
83 13
84 13
85 13
86 13
87 13
88 13
89 13
90 13
91 13
92 13
93 13
94 13
95 13
96 13
97 13
98 13
99 13
100 13
101 13
102 13
103 13
104 13
105 13
106 13
107 13
108 13
109 13
110 13
111 13
112 13
113 13
114 13
115 13
116 13
117 13
118 13
119 13
120 13
121 13
122 13
123 13
124 13
125 13
126 13
127 13
128 13
129 13
130 13
131 13
132 13
133 13
134 13
DEPOT_TIME_WINDOW_SECTION
0 0 11741
COMMENT: TIMESTEP: 234
TIME_AVAIL_SECTION
1 25
2 111
3 130
4 259
5 282
6 345
7 389
8 453
9 541
10 587
11 672
12 716
13 909
14 953
15 1039
16 1040
17 1171
18 1234
19 1278
20 1278
21 1430
22 1492
23 1495
24 1666
25 1754
26 1819
27 1967
28 1969
29 1969
30 2096
31 2098
32 2142
33 2164
34 2273
35 2399
36 2488
37 2509
38 2550
39 2598
40 2702
41 2702
42 2898
43 3006
44 3030
45 3049
46 3073
47 3203
48 3265
49 3354
50 3547
51 3632
52 3700
53 3719
54 3762
55 3828
56 3874
57 4043
58 4066
59 4066
60 4155
61 4194
62 4281
63 4326
64 4327
65 4479
66 4543
67 4648
68 4650
69 4975
70 5063
71 5319
72 5386
73 5538
74 5603
75 5729
76 5751
77 5817
78 5902
79 5968
80 5989
81 6076
82 6077
83 6079
84 6143
85 6358
86 6487
87 6554
88 6619
89 6639
90 6790
91 6857
92 7093
93 7331
94 7396
95 7633
96 7745
97 7849
98 7873
99 7937
100 7980
101 8068
102 8087
103 8174
104 8391
105 8477
106 8648
107 8932
108 8972
109 9081
110 9149
111 9170
112 9191
113 9212
114 9298
115 9323
116 9429
117 9859
118 9925
119 9993
120 10011
121 10140
122 10210
123 10317
124 10531
125 10576
126 10598
127 10921
128 10941
129 10963
130 11202
131 11222
132 11571
133 11612
134 11700
EOF

View file

@ -0,0 +1,380 @@
VRPTEST 1.0
COMMENT: Converted from f71 by convert2vt
COMMENT: Best known objective: 241.97
NAME: f71
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 71
NUM_LOCATIONS: 72
NUM_VEHICLES: 50
CAPACITIES: 30000
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 7063
2 51
3 23
4 3074
5 349
6 1047
7 698
8 3001
9 31
10 1135
11 21611
12 57
13 51
14 551
15 179
16 6
17 528
18 2832
19 1514
20 889
21 2554
22 1215
23 1810
24 3050
25 4
26 1563
27 741
28 1532
29 709
30 1022
31 883
32 1689
33 10235
34 29
35 2894
36 450
37 411
38 207
39 496
40 1021
41 117
42 46
43 8
44 18
45 561
46 1877
47 3542
48 801
49 967
50 62
51 1366
52 230
53 4
54 12
55 145
56 7149
57 2250
58 383
59 134
60 1947
61 182
62 3934
63 468
64 18
65 133
66 2340
67 754
68 1264
69 806
70 3665
71 2452
LOCATION_COORD_SECTION
0 0 0
1 -12 -6
2 -15 -5
3 -1 -18
4 2 -21
5 -1 -17
6 -9 -12
7 2 -22
8 1 -21
9 7 -25
10 -7 -17
11 -11 -5
12 -14 -9
13 -14 -8
14 -11 -2
15 -14 -5
16 -15 -9
17 -15 -8
18 -9 -6
19 -14 -4
20 3 6
21 5 9
22 5 10
23 2 8
24 1 9
25 1 10
26 2 9
27 6 14
28 5 12
29 3 7
30 4 8
31 -6 1
32 -6 2
33 -8 -2
34 -7 2
35 -7 -3
36 -7 -2
37 -20 12
38 -20 13
39 -12 10
40 -20 15
41 -6 8
42 2 21
43 2 22
44 1 21
45 -1 24
46 1 22
47 -2 20
48 -2 21
49 -4 18
50 -4 19
51 -5 18
52 -5 26
53 1 23
54 -6 5
55 -6 6
56 -9 6
57 -9 7
58 -12 5
59 -12 6
60 -11 3
61 -11 4
62 -14 4
63 -14 5
64 -15 4
65 -15 5
66 -16 7
67 -16 8
68 -15 10
69 -20 10
70 -5 19
71 -9 -11
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
DURATION_SECTION
1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5
10 5
11 5
12 5
13 5
14 5
15 5
16 5
17 5
18 5
19 5
20 5
21 5
22 5
23 5
24 5
25 5
26 5
27 5
28 5
29 5
30 5
31 5
32 5
33 5
34 5
35 5
36 5
37 5
38 5
39 5
40 5
41 5
42 5
43 5
44 5
45 5
46 5
47 5
48 5
49 5
50 5
51 5
52 5
53 5
54 5
55 5
56 5
57 5
58 5
59 5
60 5
61 5
62 5
63 5
64 5
65 5
66 5
67 5
68 5
69 5
70 5
71 5
DEPOT_TIME_WINDOW_SECTION
0 0 211
COMMENT: TIMESTEP: 4
TIME_AVAIL_SECTION
1 2
2 4
3 5
4 6
5 7
6 8
7 12
8 16
9 17
10 18
11 22
12 26
13 29
14 35
15 35
16 37
17 38
18 38
19 43
20 45
21 48
22 48
23 52
24 54
25 54
26 58
27 63
28 65
29 66
30 67
31 72
32 73
33 75
34 76
35 77
36 80
37 83
38 83
39 95
40 102
41 103
42 104
43 106
44 107
45 109
46 109
47 114
48 116
49 122
50 127
51 131
52 132
53 141
54 142
55 143
56 144
57 145
58 155
59 161
60 163
61 165
62 165
63 169
64 177
65 179
66 182
67 189
68 196
69 197
70 201
71 208
EOF

View file

@ -0,0 +1,380 @@
VRPTEST 1.0
COMMENT: Converted from f71 by convert2vt
COMMENT: Best known objective: 241.97
NAME: f71
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 71
NUM_LOCATIONS: 72
NUM_VEHICLES: 50
CAPACITIES: 30000
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -7063
2 -51
3 -23
4 -3074
5 -349
6 -1047
7 -698
8 -3001
9 -31
10 -1135
11 -21611
12 -57
13 -51
14 -551
15 -179
16 -6
17 -528
18 -2832
19 -1514
20 -889
21 -2554
22 -1215
23 -1810
24 -3050
25 -4
26 -1563
27 -741
28 -1532
29 -709
30 -1022
31 -883
32 -1689
33 -10235
34 -29
35 -2894
36 -450
37 -411
38 -207
39 -496
40 -1021
41 -117
42 -46
43 -8
44 -18
45 -561
46 -1877
47 -3542
48 -801
49 -967
50 -62
51 -1366
52 -230
53 -4
54 -12
55 -145
56 -7149
57 -2250
58 -383
59 -134
60 -1947
61 -182
62 -3934
63 -468
64 -18
65 -133
66 -2340
67 -754
68 -1264
69 -806
70 -3665
71 -2452
LOCATION_COORD_SECTION
0 0 0
1 -12 -6
2 -15 -5
3 -1 -18
4 2 -21
5 -1 -17
6 -9 -12
7 2 -22
8 1 -21
9 7 -25
10 -7 -17
11 -11 -5
12 -14 -9
13 -14 -8
14 -11 -2
15 -14 -5
16 -15 -9
17 -15 -8
18 -9 -6
19 -14 -4
20 3 6
21 5 9
22 5 10
23 2 8
24 1 9
25 1 10
26 2 9
27 6 14
28 5 12
29 3 7
30 4 8
31 -6 1
32 -6 2
33 -8 -2
34 -7 2
35 -7 -3
36 -7 -2
37 -20 12
38 -20 13
39 -12 10
40 -20 15
41 -6 8
42 2 21
43 2 22
44 1 21
45 -1 24
46 1 22
47 -2 20
48 -2 21
49 -4 18
50 -4 19
51 -5 18
52 -5 26
53 1 23
54 -6 5
55 -6 6
56 -9 6
57 -9 7
58 -12 5
59 -12 6
60 -11 3
61 -11 4
62 -14 4
63 -14 5
64 -15 4
65 -15 5
66 -16 7
67 -16 8
68 -15 10
69 -20 10
70 -5 19
71 -9 -11
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
DURATION_SECTION
1 5
2 5
3 5
4 5
5 5
6 5
7 5
8 5
9 5
10 5
11 5
12 5
13 5
14 5
15 5
16 5
17 5
18 5
19 5
20 5
21 5
22 5
23 5
24 5
25 5
26 5
27 5
28 5
29 5
30 5
31 5
32 5
33 5
34 5
35 5
36 5
37 5
38 5
39 5
40 5
41 5
42 5
43 5
44 5
45 5
46 5
47 5
48 5
49 5
50 5
51 5
52 5
53 5
54 5
55 5
56 5
57 5
58 5
59 5
60 5
61 5
62 5
63 5
64 5
65 5
66 5
67 5
68 5
69 5
70 5
71 5
DEPOT_TIME_WINDOW_SECTION
0 0 211
COMMENT: TIMESTEP: 4
TIME_AVAIL_SECTION
1 2
2 4
3 5
4 6
5 7
6 8
7 12
8 16
9 17
10 18
11 22
12 26
13 29
14 35
15 35
16 37
17 38
18 38
19 43
20 45
21 48
22 48
23 52
24 54
25 54
26 58
27 63
28 65
29 66
30 67
31 72
32 73
33 75
34 76
35 77
36 80
37 83
38 83
39 95
40 102
41 103
42 104
43 106
44 107
45 109
46 109
47 114
48 116
49 122
50 127
51 131
52 132
53 141
54 142
55 143
56 144
57 145
58 155
59 161
60 163
61 165
62 165
63 169
64 177
65 179
66 182
67 189
68 196
69 197
70 201
71 208
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100a by convert2vt
COMMENT: Best known objective: 2047.90
NAME: tai100a
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 1409
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 13
2 122
3 30
4 3
5 5
6 422
7 13
8 22
9 173
10 41
11 8
12 8
13 110
14 198
15 384
16 193
17 238
18 265
19 3
20 469
21 7
22 6
23 108
24 10
25 40
26 635
27 49
28 149
29 403
30 42
31 70
32 201
33 66
34 526
35 6
36 279
37 160
38 3
39 4
40 105
41 46
42 474
43 7
44 7
45 99
46 126
47 119
48 46
49 273
50 91
51 294
52 4
53 81
54 285
55 90
56 462
57 65
58 6
59 4
60 529
61 165
62 4
63 394
64 3
65 60
66 899
67 169
68 10
69 47
70 37
71 23
72 25
73 444
74 3
75 99
76 58
77 7
78 11
79 15
80 381
81 7
82 39
83 502
84 115
85 85
86 3
87 136
88 111
89 66
90 50
91 252
92 4
93 119
94 746
95 6
96 51
97 322
98 1023
99 5
100 10
LOCATION_COORD_SECTION
0 0 0
1 -5 70
2 -17 69
3 -19 85
4 9 99
5 15 82
6 -21 102
7 -16 68
8 15 72
9 12 78
10 1 102
11 15 91
12 9 83
13 2 82
14 -7 76
15 -17 79
16 12 70
17 -18 99
18 -9 104
19 9 -24
20 23 -34
21 9 -44
22 12 -30
23 16 -36
24 40 -21
25 39 -15
26 42 -6
27 29 -43
28 20 -8
29 24 -38
30 47 -15
31 34 -28
32 41 -39
33 39 -30
34 23 -34
35 38 -8
36 20 -40
37 21 -9
38 46 -13
39 90 67
40 70 39
41 78 73
42 49 47
43 45 75
44 86 61
45 86 59
46 54 65
47 46 38
48 63 68
49 55 74
50 62 69
51 58 70
52 25 17
53 7 1
54 8 6
55 12 -2
56 14 -7
57 13 -1
58 8 12
59 25 13
60 11 3
61 15 -7
62 4 -6
63 18 -4
64 10 -1
65 16 -10
66 96 5
67 60 28
68 75 -19
69 107 5
70 70 -4
71 110 -2
72 90 3
73 80 -17
74 59 -21
75 83 14
76 -56 62
77 -39 71
78 -40 72
79 -41 77
80 -37 78
81 -31 70
82 -52 81
83 -50 81
84 -41 77
85 -35 85
86 -41 71
87 -57 72
88 -47 74
89 -56 70
90 -32 82
91 -50 69
92 -57 86
93 -33 79
94 -64 71
95 -58 56
96 -74 69
97 -65 57
98 1 56
99 12 41
100 24 53
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 30
2 30
3 30
4 30
5 30
6 30
7 30
8 30
9 30
10 30
11 30
12 30
13 30
14 30
15 30
16 30
17 30
18 30
19 30
20 30
21 30
22 30
23 30
24 30
25 30
26 30
27 30
28 30
29 30
30 30
31 30
32 30
33 30
34 30
35 30
36 30
37 30
38 30
39 30
40 30
41 30
42 30
43 30
44 30
45 30
46 30
47 30
48 30
49 30
50 30
51 30
52 30
53 30
54 30
55 30
56 30
57 30
58 30
59 30
60 30
61 30
62 30
63 30
64 30
65 30
66 30
67 30
68 30
69 30
70 30
71 30
72 30
73 30
74 30
75 30
76 30
77 30
78 30
79 30
80 30
81 30
82 30
83 30
84 30
85 30
86 30
87 30
88 30
89 30
90 30
91 30
92 30
93 30
94 30
95 30
96 30
97 30
98 30
99 30
100 30
DEPOT_TIME_WINDOW_SECTION
0 0 897
COMMENT: TIMESTEP: 17
TIME_AVAIL_SECTION
1 6
2 10
3 11
4 11
5 13
6 21
7 23
8 29
9 33
10 56
11 62
12 79
13 89
14 92
15 104
16 105
17 120
18 135
19 137
20 137
21 145
22 152
23 153
24 166
25 168
26 195
27 198
28 209
29 225
30 239
31 251
32 254
33 254
34 274
35 282
36 299
37 303
38 313
39 322
40 322
41 328
42 338
43 342
44 345
45 355
46 360
47 373
48 380
49 403
50 408
51 416
52 474
53 484
54 485
55 489
56 498
57 507
58 508
59 514
60 538
61 550
62 590
63 600
64 603
65 627
66 644
67 654
68 662
69 664
70 683
71 685
72 690
73 692
74 693
75 713
76 716
77 725
78 728
79 733
80 741
81 766
82 769
83 778
84 788
85 799
86 806
87 813
88 821
89 822
90 825
91 837
92 847
93 852
94 864
95 864
96 867
97 877
98 883
99 884
100 895
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100a by convert2vt
COMMENT: Best known objective: 2047.90
NAME: tai100a
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 1409
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -13
2 -122
3 -30
4 -3
5 -5
6 -422
7 -13
8 -22
9 -173
10 -41
11 -8
12 -8
13 -110
14 -198
15 -384
16 -193
17 -238
18 -265
19 -3
20 -469
21 -7
22 -6
23 -108
24 -10
25 -40
26 -635
27 -49
28 -149
29 -403
30 -42
31 -70
32 -201
33 -66
34 -526
35 -6
36 -279
37 -160
38 -3
39 -4
40 -105
41 -46
42 -474
43 -7
44 -7
45 -99
46 -126
47 -119
48 -46
49 -273
50 -91
51 -294
52 -4
53 -81
54 -285
55 -90
56 -462
57 -65
58 -6
59 -4
60 -529
61 -165
62 -4
63 -394
64 -3
65 -60
66 -899
67 -169
68 -10
69 -47
70 -37
71 -23
72 -25
73 -444
74 -3
75 -99
76 -58
77 -7
78 -11
79 -15
80 -381
81 -7
82 -39
83 -502
84 -115
85 -85
86 -3
87 -136
88 -111
89 -66
90 -50
91 -252
92 -4
93 -119
94 -746
95 -6
96 -51
97 -322
98 -1023
99 -5
100 -10
LOCATION_COORD_SECTION
0 0 0
1 -5 70
2 -17 69
3 -19 85
4 9 99
5 15 82
6 -21 102
7 -16 68
8 15 72
9 12 78
10 1 102
11 15 91
12 9 83
13 2 82
14 -7 76
15 -17 79
16 12 70
17 -18 99
18 -9 104
19 9 -24
20 23 -34
21 9 -44
22 12 -30
23 16 -36
24 40 -21
25 39 -15
26 42 -6
27 29 -43
28 20 -8
29 24 -38
30 47 -15
31 34 -28
32 41 -39
33 39 -30
34 23 -34
35 38 -8
36 20 -40
37 21 -9
38 46 -13
39 90 67
40 70 39
41 78 73
42 49 47
43 45 75
44 86 61
45 86 59
46 54 65
47 46 38
48 63 68
49 55 74
50 62 69
51 58 70
52 25 17
53 7 1
54 8 6
55 12 -2
56 14 -7
57 13 -1
58 8 12
59 25 13
60 11 3
61 15 -7
62 4 -6
63 18 -4
64 10 -1
65 16 -10
66 96 5
67 60 28
68 75 -19
69 107 5
70 70 -4
71 110 -2
72 90 3
73 80 -17
74 59 -21
75 83 14
76 -56 62
77 -39 71
78 -40 72
79 -41 77
80 -37 78
81 -31 70
82 -52 81
83 -50 81
84 -41 77
85 -35 85
86 -41 71
87 -57 72
88 -47 74
89 -56 70
90 -32 82
91 -50 69
92 -57 86
93 -33 79
94 -64 71
95 -58 56
96 -74 69
97 -65 57
98 1 56
99 12 41
100 24 53
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 30
2 30
3 30
4 30
5 30
6 30
7 30
8 30
9 30
10 30
11 30
12 30
13 30
14 30
15 30
16 30
17 30
18 30
19 30
20 30
21 30
22 30
23 30
24 30
25 30
26 30
27 30
28 30
29 30
30 30
31 30
32 30
33 30
34 30
35 30
36 30
37 30
38 30
39 30
40 30
41 30
42 30
43 30
44 30
45 30
46 30
47 30
48 30
49 30
50 30
51 30
52 30
53 30
54 30
55 30
56 30
57 30
58 30
59 30
60 30
61 30
62 30
63 30
64 30
65 30
66 30
67 30
68 30
69 30
70 30
71 30
72 30
73 30
74 30
75 30
76 30
77 30
78 30
79 30
80 30
81 30
82 30
83 30
84 30
85 30
86 30
87 30
88 30
89 30
90 30
91 30
92 30
93 30
94 30
95 30
96 30
97 30
98 30
99 30
100 30
DEPOT_TIME_WINDOW_SECTION
0 0 897
COMMENT: TIMESTEP: 17
TIME_AVAIL_SECTION
1 1
2 21
3 21
4 56
5 70
6 89
7 90
8 92
9 94
10 100
11 105
12 110
13 110
14 110
15 123
16 125
17 128
18 141
19 152
20 155
21 156
22 170
23 203
24 208
25 209
26 218
27 229
28 236
29 242
30 247
31 249
32 256
33 267
34 275
35 293
36 298
37 300
38 300
39 317
40 317
41 322
42 341
43 342
44 351
45 353
46 353
47 358
48 358
49 374
50 378
51 379
52 394
53 406
54 422
55 437
56 447
57 451
58 465
59 465
60 470
61 482
62 541
63 543
64 551
65 569
66 573
67 576
68 576
69 597
70 642
71 645
72 650
73 659
74 665
75 672
76 687
77 693
78 710
79 715
80 718
81 721
82 730
83 736
84 738
85 740
86 756
87 766
88 776
89 781
90 789
91 801
92 817
93 819
94 837
95 837
96 864
97 872
98 875
99 893
100 896
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100b by convert2vt
COMMENT: Best known objective: 1940.61
NAME: tai100b
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 1842
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 50
2 50
3 170
4 297
5 9
6 630
7 179
8 179
9 216
10 4
11 9
12 154
13 117
14 63
15 436
16 905
17 14
18 3
19 10
20 166
21 211
22 8
23 25
24 139
25 213
26 758
27 429
28 5
29 136
30 501
31 93
32 21
33 169
34 22
35 3
36 271
37 433
38 3
39 1079
40 233
41 11
42 10
43 78
44 63
45 4
46 59
47 8
48 34
49 234
50 30
51 40
52 123
53 7
54 33
55 369
56 11
57 23
58 208
59 4
60 8
61 36
62 504
63 16
64 574
65 19
66 235
67 445
68 6
69 43
70 210
71 268
72 410
73 124
74 11
75 1085
76 5
77 529
78 107
79 274
80 23
81 156
82 32
83 177
84 16
85 8
86 19
87 52
88 47
89 4
90 372
91 525
92 101
93 898
94 40
95 32
96 1017
97 103
98 109
99 76
100 1025
LOCATION_COORD_SECTION
0 0 0
1 35 -56
2 72 -58
3 70 -66
4 45 -40
5 39 -40
6 60 -50
7 42 -59
8 31 -46
9 44 -58
10 45 -67
11 69 -46
12 24 0
13 12 -4
14 1 -21
15 3 29
16 19 -13
17 13 -14
18 25 11
19 24 23
20 3 7
21 23 19
22 2 -7
23 5 23
24 32 5
25 14 25
26 -16 -4
27 24 17
28 0 -7
29 -74 -22
30 -64 -24
31 -71 -19
32 -91 -15
33 -65 -14
34 -91 -26
35 -76 -7
36 -66 -4
37 -87 -10
38 -73 -8
39 -81 -1
40 -82 -24
41 -87 -25
42 -76 -25
43 -75 -6
44 -70 -3
45 -64 -22
46 -66 -5
47 -72 -10
48 -89 -3
49 -86 -3
50 -57 -9
51 -22 -36
52 -44 19
53 -21 6
54 -49 -4
55 -68 -7
56 -42 11
57 -69 3
58 -49 9
59 -68 -19
60 -57 -7
61 -61 -34
62 -36 16
63 -56 2
64 -67 0
65 -17 -14
66 -17 -20
67 -28 -26
68 -70 -21
69 -46 -14
70 -52 36
71 -33 62
72 -53 49
73 -39 59
74 33 73
75 38 88
76 43 77
77 -60 19
78 -61 27
79 -66 23
80 -61 20
81 -55 19
82 -5 -38
83 -9 -41
84 -12 -31
85 -9 -45
86 -6 -33
87 -1 -49
88 -14 -44
89 85 -1
90 67 -1
91 60 30
92 78 12
93 57 31
94 63 -1
95 88 -3
96 85 -13
97 78 17
98 56 4
99 99 -14
100 53 16
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 29
2 29
3 29
4 29
5 29
6 29
7 29
8 29
9 29
10 29
11 29
12 29
13 29
14 29
15 29
16 29
17 29
18 29
19 29
20 29
21 29
22 29
23 29
24 29
25 29
26 29
27 29
28 29
29 29
30 29
31 29
32 29
33 29
34 29
35 29
36 29
37 29
38 29
39 29
40 29
41 29
42 29
43 29
44 29
45 29
46 29
47 29
48 29
49 29
50 29
51 29
52 29
53 29
54 29
55 29
56 29
57 29
58 29
59 29
60 29
61 29
62 29
63 29
64 29
65 29
66 29
67 29
68 29
69 29
70 29
71 29
72 29
73 29
74 29
75 29
76 29
77 29
78 29
79 29
80 29
81 29
82 29
83 29
84 29
85 29
86 29
87 29
88 29
89 29
90 29
91 29
92 29
93 29
94 29
95 29
96 29
97 29
98 29
99 29
100 29
DEPOT_TIME_WINDOW_SECTION
0 0 799
COMMENT: TIMESTEP: 15
TIME_AVAIL_SECTION
1 1
2 19
3 19
4 50
5 63
6 79
7 80
8 82
9 83
10 89
11 94
12 98
13 98
14 98
15 110
16 111
17 114
18 126
19 135
20 138
21 139
22 151
23 180
24 185
25 186
26 194
27 204
28 210
29 216
30 220
31 222
32 228
33 238
34 245
35 261
36 266
37 267
38 267
39 282
40 282
41 286
42 304
43 304
44 313
45 314
46 314
47 319
48 319
49 333
50 336
51 338
52 351
53 361
54 376
55 389
56 398
57 401
58 414
59 415
60 419
61 429
62 482
63 484
64 491
65 507
66 510
67 513
68 513
69 532
70 572
71 575
72 579
73 587
74 593
75 598
76 612
77 618
78 632
79 637
80 640
81 642
82 650
83 656
84 657
85 659
86 673
87 682
88 691
89 695
90 703
91 713
92 728
93 729
94 746
95 746
96 769
97 776
98 779
99 795
100 798
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100b by convert2vt
COMMENT: Best known objective: 1940.61
NAME: tai100b
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 1842
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -50
2 -50
3 -170
4 -297
5 -9
6 -630
7 -179
8 -179
9 -216
10 -4
11 -9
12 -154
13 -117
14 -63
15 -436
16 -905
17 -14
18 -3
19 -10
20 -166
21 -211
22 -8
23 -25
24 -139
25 -213
26 -758
27 -429
28 -5
29 -136
30 -501
31 -93
32 -21
33 -169
34 -22
35 -3
36 -271
37 -433
38 -3
39 -1079
40 -233
41 -11
42 -10
43 -78
44 -63
45 -4
46 -59
47 -8
48 -34
49 -234
50 -30
51 -40
52 -123
53 -7
54 -33
55 -369
56 -11
57 -23
58 -208
59 -4
60 -8
61 -36
62 -504
63 -16
64 -574
65 -19
66 -235
67 -445
68 -6
69 -43
70 -210
71 -268
72 -410
73 -124
74 -11
75 -1085
76 -5
77 -529
78 -107
79 -274
80 -23
81 -156
82 -32
83 -177
84 -16
85 -8
86 -19
87 -52
88 -47
89 -4
90 -372
91 -525
92 -101
93 -898
94 -40
95 -32
96 -1017
97 -103
98 -109
99 -76
100 -1025
LOCATION_COORD_SECTION
0 0 0
1 35 -56
2 72 -58
3 70 -66
4 45 -40
5 39 -40
6 60 -50
7 42 -59
8 31 -46
9 44 -58
10 45 -67
11 69 -46
12 24 0
13 12 -4
14 1 -21
15 3 29
16 19 -13
17 13 -14
18 25 11
19 24 23
20 3 7
21 23 19
22 2 -7
23 5 23
24 32 5
25 14 25
26 -16 -4
27 24 17
28 0 -7
29 -74 -22
30 -64 -24
31 -71 -19
32 -91 -15
33 -65 -14
34 -91 -26
35 -76 -7
36 -66 -4
37 -87 -10
38 -73 -8
39 -81 -1
40 -82 -24
41 -87 -25
42 -76 -25
43 -75 -6
44 -70 -3
45 -64 -22
46 -66 -5
47 -72 -10
48 -89 -3
49 -86 -3
50 -57 -9
51 -22 -36
52 -44 19
53 -21 6
54 -49 -4
55 -68 -7
56 -42 11
57 -69 3
58 -49 9
59 -68 -19
60 -57 -7
61 -61 -34
62 -36 16
63 -56 2
64 -67 0
65 -17 -14
66 -17 -20
67 -28 -26
68 -70 -21
69 -46 -14
70 -52 36
71 -33 62
72 -53 49
73 -39 59
74 33 73
75 38 88
76 43 77
77 -60 19
78 -61 27
79 -66 23
80 -61 20
81 -55 19
82 -5 -38
83 -9 -41
84 -12 -31
85 -9 -45
86 -6 -33
87 -1 -49
88 -14 -44
89 85 -1
90 67 -1
91 60 30
92 78 12
93 57 31
94 63 -1
95 88 -3
96 85 -13
97 78 17
98 56 4
99 99 -14
100 53 16
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 29
2 29
3 29
4 29
5 29
6 29
7 29
8 29
9 29
10 29
11 29
12 29
13 29
14 29
15 29
16 29
17 29
18 29
19 29
20 29
21 29
22 29
23 29
24 29
25 29
26 29
27 29
28 29
29 29
30 29
31 29
32 29
33 29
34 29
35 29
36 29
37 29
38 29
39 29
40 29
41 29
42 29
43 29
44 29
45 29
46 29
47 29
48 29
49 29
50 29
51 29
52 29
53 29
54 29
55 29
56 29
57 29
58 29
59 29
60 29
61 29
62 29
63 29
64 29
65 29
66 29
67 29
68 29
69 29
70 29
71 29
72 29
73 29
74 29
75 29
76 29
77 29
78 29
79 29
80 29
81 29
82 29
83 29
84 29
85 29
86 29
87 29
88 29
89 29
90 29
91 29
92 29
93 29
94 29
95 29
96 29
97 29
98 29
99 29
100 29
DEPOT_TIME_WINDOW_SECTION
0 0 799
COMMENT: TIMESTEP: 15
TIME_AVAIL_SECTION
1 1
2 19
3 19
4 50
5 63
6 79
7 80
8 82
9 83
10 89
11 94
12 98
13 98
14 98
15 110
16 111
17 114
18 126
19 135
20 138
21 139
22 151
23 180
24 185
25 186
26 194
27 204
28 210
29 216
30 220
31 222
32 228
33 238
34 245
35 261
36 266
37 267
38 267
39 282
40 282
41 286
42 304
43 304
44 313
45 314
46 314
47 319
48 319
49 333
50 336
51 338
52 351
53 361
54 376
55 389
56 398
57 401
58 414
59 415
60 419
61 429
62 482
63 484
64 491
65 507
66 510
67 513
68 513
69 532
70 572
71 575
72 579
73 587
74 593
75 598
76 612
77 618
78 632
79 637
80 640
81 642
82 650
83 656
84 657
85 659
86 673
87 682
88 691
89 695
90 703
91 713
92 728
93 729
94 746
95 746
96 769
97 776
98 779
99 795
100 798
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100c by convert2vt
COMMENT: Best known objective: 1407.44
NAME: tai100c
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 2043
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 1066
2 841
3 74
4 687
5 175
6 183
7 124
8 4
9 81
10 56
11 29
12 23
13 4
14 9
15 7
16 181
17 54
18 884
19 822
20 637
21 59
22 140
23 531
24 58
25 15
26 11
27 185
28 159
29 285
30 4
31 10
32 3
33 4
34 11
35 45
36 4
37 225
38 286
39 262
40 4
41 391
42 54
43 518
44 815
45 25
46 29
47 18
48 588
49 68
50 480
51 5
52 16
53 34
54 5
55 9
56 22
57 120
58 152
59 21
60 44
61 676
62 17
63 764
64 13
65 6
66 718
67 52
68 11
69 93
70 398
71 48
72 37
73 3
74 8
75 406
76 1086
77 3
78 52
79 88
80 28
81 686
82 25
83 101
84 4
85 15
86 445
87 4
88 593
89 327
90 92
91 21
92 12
93 44
94 773
95 4
96 14
97 783
98 3
99 500
100 390
LOCATION_COORD_SECTION
0 0 0
1 -2 -5
2 3 -1
3 -2 7
4 3 0
5 7 -3
6 -5 -1
7 -3 0
8 0 -3
9 4 1
10 4 -5
11 -2 -4
12 5 -5
13 -4 1
14 -2 3
15 7 2
16 -13 80
17 -6 88
18 -16 83
19 -14 77
20 -26 88
21 -24 79
22 -25 78
23 -11 80
24 -5 88
25 -21 90
26 -5 82
27 -20 80
28 -6 91
29 -25 89
30 -25 74
31 -8 88
32 -21 74
33 -23 74
34 -5 87
35 -8 91
36 -3 -8
37 -30 15
38 -14 24
39 -12 11
40 -1 7
41 2 14
42 -26 15
43 -36 2
44 -29 7
45 -1 28
46 -7 17
47 -10 31
48 -20 -2
49 -33 20
50 -26 0
51 -13 9
52 -8 12
53 -35 -8
54 -33 23
55 10 -70
56 8 -95
57 -12 -101
58 6 -113
59 -17 -76
60 -23 -102
61 11 -104
62 -19 -96
63 -13 -79
64 -53 -32
65 -78 -2
66 -87 -61
67 -60 -32
68 -6 -12
69 10 -16
70 -7 -11
71 0 3
72 10 2
73 -1 -15
74 1 -3
75 15 -2
76 10 4
77 8 3
78 -58 32
79 -88 38
80 -76 34
81 -83 50
82 -67 43
83 -75 34
84 -91 44
85 -24 1
86 -20 4
87 -17 -4
88 -25 -1
89 -17 2
90 -24 2
91 -12 -2
92 -14 1
93 -18 2
94 -20 5
95 -14 4
96 -23 9
97 -22 -3
98 -22 -2
99 17 1
100 5 7
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 21
2 21
3 21
4 21
5 21
6 21
7 21
8 21
9 21
10 21
11 21
12 21
13 21
14 21
15 21
16 21
17 21
18 21
19 21
20 21
21 21
22 21
23 21
24 21
25 21
26 21
27 21
28 21
29 21
30 21
31 21
32 21
33 21
34 21
35 21
36 21
37 21
38 21
39 21
40 21
41 21
42 21
43 21
44 21
45 21
46 21
47 21
48 21
49 21
50 21
51 21
52 21
53 21
54 21
55 21
56 21
57 21
58 21
59 21
60 21
61 21
62 21
63 21
64 21
65 21
66 21
67 21
68 21
69 21
70 21
71 21
72 21
73 21
74 21
75 21
76 21
77 21
78 21
79 21
80 21
81 21
82 21
83 21
84 21
85 21
86 21
87 21
88 21
89 21
90 21
91 21
92 21
93 21
94 21
95 21
96 21
97 21
98 21
99 21
100 21
DEPOT_TIME_WINDOW_SECTION
0 0 905
COMMENT: TIMESTEP: 18
TIME_AVAIL_SECTION
1 16
2 21
3 28
4 33
5 33
6 40
7 56
8 61
9 65
10 96
11 123
12 123
13 131
14 140
15 151
16 151
17 166
18 170
19 188
20 188
21 193
22 198
23 218
24 233
25 233
26 285
27 290
28 303
29 315
30 326
31 330
32 351
33 355
34 360
35 361
36 368
37 370
38 391
39 410
40 413
41 420
42 425
43 435
44 440
45 443
46 450
47 455
48 456
49 461
50 473
51 473
52 475
53 491
54 491
55 493
56 496
57 528
58 538
59 543
60 546
61 546
62 556
63 560
64 575
65 578
66 578
67 580
68 583
69 586
70 610
71 620
72 623
73 648
74 650
75 663
76 663
77 688
78 693
79 701
80 735
81 735
82 746
83 750
84 753
85 755
86 800
87 805
88 825
89 828
90 830
91 833
92 836
93 843
94 854
95 858
96 860
97 861
98 868
99 881
100 900
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100c by convert2vt
COMMENT: Best known objective: 1407.44
NAME: tai100c
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 2043
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -1066
2 -841
3 -74
4 -687
5 -175
6 -183
7 -124
8 -4
9 -81
10 -56
11 -29
12 -23
13 -4
14 -9
15 -7
16 -181
17 -54
18 -884
19 -822
20 -637
21 -59
22 -140
23 -531
24 -58
25 -15
26 -11
27 -185
28 -159
29 -285
30 -4
31 -10
32 -3
33 -4
34 -11
35 -45
36 -4
37 -225
38 -286
39 -262
40 -4
41 -391
42 -54
43 -518
44 -815
45 -25
46 -29
47 -18
48 -588
49 -68
50 -480
51 -5
52 -16
53 -34
54 -5
55 -9
56 -22
57 -120
58 -152
59 -21
60 -44
61 -676
62 -17
63 -764
64 -13
65 -6
66 -718
67 -52
68 -11
69 -93
70 -398
71 -48
72 -37
73 -3
74 -8
75 -406
76 -1086
77 -3
78 -52
79 -88
80 -28
81 -686
82 -25
83 -101
84 -4
85 -15
86 -445
87 -4
88 -593
89 -327
90 -92
91 -21
92 -12
93 -44
94 -773
95 -4
96 -14
97 -783
98 -3
99 -500
100 -390
LOCATION_COORD_SECTION
0 0 0
1 -2 -5
2 3 -1
3 -2 7
4 3 0
5 7 -3
6 -5 -1
7 -3 0
8 0 -3
9 4 1
10 4 -5
11 -2 -4
12 5 -5
13 -4 1
14 -2 3
15 7 2
16 -13 80
17 -6 88
18 -16 83
19 -14 77
20 -26 88
21 -24 79
22 -25 78
23 -11 80
24 -5 88
25 -21 90
26 -5 82
27 -20 80
28 -6 91
29 -25 89
30 -25 74
31 -8 88
32 -21 74
33 -23 74
34 -5 87
35 -8 91
36 -3 -8
37 -30 15
38 -14 24
39 -12 11
40 -1 7
41 2 14
42 -26 15
43 -36 2
44 -29 7
45 -1 28
46 -7 17
47 -10 31
48 -20 -2
49 -33 20
50 -26 0
51 -13 9
52 -8 12
53 -35 -8
54 -33 23
55 10 -70
56 8 -95
57 -12 -101
58 6 -113
59 -17 -76
60 -23 -102
61 11 -104
62 -19 -96
63 -13 -79
64 -53 -32
65 -78 -2
66 -87 -61
67 -60 -32
68 -6 -12
69 10 -16
70 -7 -11
71 0 3
72 10 2
73 -1 -15
74 1 -3
75 15 -2
76 10 4
77 8 3
78 -58 32
79 -88 38
80 -76 34
81 -83 50
82 -67 43
83 -75 34
84 -91 44
85 -24 1
86 -20 4
87 -17 -4
88 -25 -1
89 -17 2
90 -24 2
91 -12 -2
92 -14 1
93 -18 2
94 -20 5
95 -14 4
96 -23 9
97 -22 -3
98 -22 -2
99 17 1
100 5 7
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 21
2 21
3 21
4 21
5 21
6 21
7 21
8 21
9 21
10 21
11 21
12 21
13 21
14 21
15 21
16 21
17 21
18 21
19 21
20 21
21 21
22 21
23 21
24 21
25 21
26 21
27 21
28 21
29 21
30 21
31 21
32 21
33 21
34 21
35 21
36 21
37 21
38 21
39 21
40 21
41 21
42 21
43 21
44 21
45 21
46 21
47 21
48 21
49 21
50 21
51 21
52 21
53 21
54 21
55 21
56 21
57 21
58 21
59 21
60 21
61 21
62 21
63 21
64 21
65 21
66 21
67 21
68 21
69 21
70 21
71 21
72 21
73 21
74 21
75 21
76 21
77 21
78 21
79 21
80 21
81 21
82 21
83 21
84 21
85 21
86 21
87 21
88 21
89 21
90 21
91 21
92 21
93 21
94 21
95 21
96 21
97 21
98 21
99 21
100 21
DEPOT_TIME_WINDOW_SECTION
0 0 905
COMMENT: TIMESTEP: 18
TIME_AVAIL_SECTION
1 16
2 21
3 28
4 33
5 33
6 40
7 56
8 61
9 65
10 96
11 123
12 123
13 131
14 140
15 151
16 151
17 166
18 170
19 188
20 188
21 193
22 198
23 218
24 233
25 233
26 285
27 290
28 303
29 315
30 326
31 330
32 351
33 355
34 360
35 361
36 368
37 370
38 391
39 410
40 413
41 420
42 425
43 435
44 440
45 443
46 450
47 455
48 456
49 461
50 473
51 473
52 475
53 491
54 491
55 493
56 496
57 528
58 538
59 543
60 546
61 546
62 556
63 560
64 575
65 578
66 578
67 580
68 583
69 586
70 610
71 620
72 623
73 648
74 650
75 663
76 663
77 688
78 693
79 701
80 735
81 735
82 746
83 750
84 753
85 755
86 800
87 805
88 825
89 828
90 830
91 833
92 836
93 843
94 854
95 858
96 860
97 861
98 868
99 881
100 900
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100d by convert2vt
COMMENT: Best known objective: 1581.25
NAME: tai100d
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 1297
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 94
2 12
3 17
4 619
5 61
6 3
7 4
8 13
9 44
10 12
11 35
12 114
13 29
14 76
15 106
16 157
17 43
18 4
19 38
20 212
21 42
22 10
23 19
24 856
25 13
26 67
27 144
28 310
29 85
30 1061
31 344
32 22
33 15
34 219
35 44
36 370
37 74
38 82
39 3
40 39
41 54
42 22
43 171
44 65
45 405
46 19
47 7
48 586
49 15
50 149
51 141
52 9
53 261
54 4
55 5
56 21
57 25
58 86
59 86
60 124
61 123
62 11
63 41
64 279
65 149
66 9
67 65
68 155
69 6
70 83
71 11
72 735
73 4
74 56
75 26
76 5
77 34
78 13
79 1017
80 85
81 10
82 7
83 6
84 524
85 16
86 15
87 117
88 48
89 43
90 64
91 30
92 3
93 21
94 514
95 625
96 7
97 257
98 603
99 4
100 4
LOCATION_COORD_SECTION
0 0 0
1 -7 9
2 -7 8
3 -15 16
4 -2 13
5 0 3
6 -9 6
7 2 5
8 -13 9
9 -15 10
10 -14 2
11 1 0
12 -40 24
13 -54 -15
14 -43 10
15 -73 -2
16 -76 4
17 -45 31
18 -29 36
19 -78 11
20 -31 25
21 -67 17
22 -31 4
23 -51 10
24 -30 -9
25 -51 24
26 -80 -10
27 -34 4
28 -45 25
29 73 32
30 78 59
31 58 53
32 57 55
33 20 85
34 -12 81
35 -8 86
36 12 33
37 19 86
38 -11 44
39 -2 67
40 25 76
41 -29 44
42 4 80
43 -2 84
44 -8 54
45 -16 34
46 -14 80
47 -17 32
48 19 39
49 -20 82
50 17 42
51 -4 5
52 -20 25
53 -12 14
54 -11 11
55 -12 4
56 -1 21
57 -1 1
58 -9 21
59 9 3
60 5 14
61 -9 27
62 -20 11
63 0 30
64 -12 15
65 -3 17
66 -58 -60
67 -71 -58
68 -32 -34
69 -59 -37
70 -48 -19
71 -71 -49
72 22 -4
73 13 -10
74 22 -17
75 13 12
76 3 -5
77 27 -4
78 2 -3
79 -2 -22
80 30 1
81 22 -6
82 -27 62
83 -20 64
84 -26 69
85 -20 66
86 -29 67
87 -84 -10
88 -69 -22
89 -79 -4
90 -84 -19
91 -63 -12
92 -76 -14
93 -70 -4
94 30 39
95 23 39
96 30 48
97 36 21
98 32 16
99 42 30
100 62 16
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 23
2 23
3 23
4 23
5 23
6 23
7 23
8 23
9 23
10 23
11 23
12 23
13 23
14 23
15 23
16 23
17 23
18 23
19 23
20 23
21 23
22 23
23 23
24 23
25 23
26 23
27 23
28 23
29 23
30 23
31 23
32 23
33 23
34 23
35 23
36 23
37 23
38 23
39 23
40 23
41 23
42 23
43 23
44 23
45 23
46 23
47 23
48 23
49 23
50 23
51 23
52 23
53 23
54 23
55 23
56 23
57 23
58 23
59 23
60 23
61 23
62 23
63 23
64 23
65 23
66 23
67 23
68 23
69 23
70 23
71 23
72 23
73 23
74 23
75 23
76 23
77 23
78 23
79 23
80 23
81 23
82 23
83 23
84 23
85 23
86 23
87 23
88 23
89 23
90 23
91 23
92 23
93 23
94 23
95 23
96 23
97 23
98 23
99 23
100 23
DEPOT_TIME_WINDOW_SECTION
0 0 782
COMMENT: TIMESTEP: 15
TIME_AVAIL_SECTION
1 14
2 18
3 24
4 28
5 28
6 34
7 49
8 53
9 56
10 83
11 106
12 106
13 113
14 121
15 131
16 131
17 144
18 146
19 162
20 162
21 167
22 171
23 188
24 201
25 201
26 246
27 250
28 262
29 272
30 282
31 285
32 303
33 306
34 311
35 312
36 318
37 319
38 338
39 354
40 357
41 362
42 367
43 375
44 380
45 383
46 388
47 393
48 394
49 399
50 408
51 409
52 410
53 424
54 424
55 426
56 429
57 456
58 465
59 469
60 472
61 472
62 481
63 484
64 496
65 499
66 499
67 501
68 504
69 506
70 527
71 535
72 538
73 560
74 561
75 573
76 573
77 594
78 599
79 606
80 635
81 635
82 645
83 648
84 650
85 652
86 691
87 695
88 712
89 715
90 717
91 720
92 723
93 728
94 738
95 741
96 743
97 744
98 750
99 761
100 777
EOF

View file

@ -0,0 +1,525 @@
VRPTEST 1.0
COMMENT: Converted from tai100d by convert2vt
COMMENT: Best known objective: 1581.25
NAME: tai100d
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 100
NUM_LOCATIONS: 101
NUM_VEHICLES: 50
CAPACITIES: 1297
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -94
2 -12
3 -17
4 -619
5 -61
6 -3
7 -4
8 -13
9 -44
10 -12
11 -35
12 -114
13 -29
14 -76
15 -106
16 -157
17 -43
18 -4
19 -38
20 -212
21 -42
22 -10
23 -19
24 -856
25 -13
26 -67
27 -144
28 -310
29 -85
30 -1061
31 -344
32 -22
33 -15
34 -219
35 -44
36 -370
37 -74
38 -82
39 -3
40 -39
41 -54
42 -22
43 -171
44 -65
45 -405
46 -19
47 -7
48 -586
49 -15
50 -149
51 -141
52 -9
53 -261
54 -4
55 -5
56 -21
57 -25
58 -86
59 -86
60 -124
61 -123
62 -11
63 -41
64 -279
65 -149
66 -9
67 -65
68 -155
69 -6
70 -83
71 -11
72 -735
73 -4
74 -56
75 -26
76 -5
77 -34
78 -13
79 -1017
80 -85
81 -10
82 -7
83 -6
84 -524
85 -16
86 -15
87 -117
88 -48
89 -43
90 -64
91 -30
92 -3
93 -21
94 -514
95 -625
96 -7
97 -257
98 -603
99 -4
100 -4
LOCATION_COORD_SECTION
0 0 0
1 -7 9
2 -7 8
3 -15 16
4 -2 13
5 0 3
6 -9 6
7 2 5
8 -13 9
9 -15 10
10 -14 2
11 1 0
12 -40 24
13 -54 -15
14 -43 10
15 -73 -2
16 -76 4
17 -45 31
18 -29 36
19 -78 11
20 -31 25
21 -67 17
22 -31 4
23 -51 10
24 -30 -9
25 -51 24
26 -80 -10
27 -34 4
28 -45 25
29 73 32
30 78 59
31 58 53
32 57 55
33 20 85
34 -12 81
35 -8 86
36 12 33
37 19 86
38 -11 44
39 -2 67
40 25 76
41 -29 44
42 4 80
43 -2 84
44 -8 54
45 -16 34
46 -14 80
47 -17 32
48 19 39
49 -20 82
50 17 42
51 -4 5
52 -20 25
53 -12 14
54 -11 11
55 -12 4
56 -1 21
57 -1 1
58 -9 21
59 9 3
60 5 14
61 -9 27
62 -20 11
63 0 30
64 -12 15
65 -3 17
66 -58 -60
67 -71 -58
68 -32 -34
69 -59 -37
70 -48 -19
71 -71 -49
72 22 -4
73 13 -10
74 22 -17
75 13 12
76 3 -5
77 27 -4
78 2 -3
79 -2 -22
80 30 1
81 22 -6
82 -27 62
83 -20 64
84 -26 69
85 -20 66
86 -29 67
87 -84 -10
88 -69 -22
89 -79 -4
90 -84 -19
91 -63 -12
92 -76 -14
93 -70 -4
94 30 39
95 23 39
96 30 48
97 36 21
98 32 16
99 42 30
100 62 16
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
DURATION_SECTION
1 23
2 23
3 23
4 23
5 23
6 23
7 23
8 23
9 23
10 23
11 23
12 23
13 23
14 23
15 23
16 23
17 23
18 23
19 23
20 23
21 23
22 23
23 23
24 23
25 23
26 23
27 23
28 23
29 23
30 23
31 23
32 23
33 23
34 23
35 23
36 23
37 23
38 23
39 23
40 23
41 23
42 23
43 23
44 23
45 23
46 23
47 23
48 23
49 23
50 23
51 23
52 23
53 23
54 23
55 23
56 23
57 23
58 23
59 23
60 23
61 23
62 23
63 23
64 23
65 23
66 23
67 23
68 23
69 23
70 23
71 23
72 23
73 23
74 23
75 23
76 23
77 23
78 23
79 23
80 23
81 23
82 23
83 23
84 23
85 23
86 23
87 23
88 23
89 23
90 23
91 23
92 23
93 23
94 23
95 23
96 23
97 23
98 23
99 23
100 23
DEPOT_TIME_WINDOW_SECTION
0 0 782
COMMENT: TIMESTEP: 15
TIME_AVAIL_SECTION
1 7
2 14
3 23
4 25
5 27
6 36
7 39
8 40
9 50
10 63
11 73
12 82
13 82
14 87
15 89
16 109
17 111
18 115
19 128
20 128
21 128
22 132
23 138
24 145
25 156
26 160
27 174
28 174
29 175
30 175
31 183
32 188
33 204
34 206
35 210
36 213
37 213
38 217
39 233
40 253
41 255
42 289
43 295
44 326
45 327
46 347
47 354
48 364
49 378
50 396
51 403
52 404
53 411
54 416
55 420
56 423
57 426
58 446
59 455
60 456
61 456
62 459
63 460
64 471
65 475
66 497
67 501
68 508
69 511
70 517
71 534
72 540
73 554
74 563
75 570
76 596
77 597
78 597
79 599
80 609
81 620
82 636
83 642
84 646
85 646
86 649
87 666
88 674
89 691
90 698
91 702
92 705
93 727
94 740
95 743
96 744
97 750
98 770
99 772
100 777
EOF

View file

@ -0,0 +1,775 @@
VRPTEST 1.0
COMMENT: Converted from tai150a by convert2vt
COMMENT: Best known objective: 3055.23
NAME: tai150a
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 150
NUM_LOCATIONS: 151
NUM_VEHICLES: 50
CAPACITIES: 1544
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 13
2 122
3 30
4 3
5 5
6 422
7 13
8 22
9 173
10 41
11 8
12 8
13 110
14 198
15 384
16 193
17 238
18 265
19 3
20 469
21 7
22 6
23 108
24 10
25 40
26 635
27 49
28 149
29 403
30 42
31 70
32 201
33 66
34 526
35 6
36 279
37 160
38 3
39 4
40 105
41 46
42 474
43 7
44 7
45 99
46 126
47 119
48 46
49 273
50 91
51 294
52 4
53 81
54 285
55 90
56 462
57 65
58 6
59 4
60 529
61 165
62 4
63 394
64 3
65 60
66 899
67 169
68 10
69 47
70 37
71 23
72 25
73 444
74 3
75 99
76 58
77 7
78 11
79 15
80 381
81 7
82 39
83 502
84 115
85 85
86 3
87 136
88 111
89 66
90 50
91 252
92 4
93 119
94 746
95 6
96 51
97 322
98 1023
99 5
100 10
101 153
102 29
103 13
104 3
105 4
106 70
107 9
108 147
109 3
110 10
111 4
112 439
113 14
114 729
115 29
116 3
117 98
118 113
119 122
120 11
121 90
122 789
123 6
124 179
125 3
126 3
127 21
128 869
129 246
130 10
131 36
132 14
133 134
134 175
135 32
136 20
137 212
138 45
139 173
140 240
141 16
142 27
143 61
144 203
145 5
146 369
147 81
148 128
149 406
150 32
LOCATION_COORD_SECTION
0 0 0
1 -4 106
2 -11 106
3 -12 115
4 4 123
5 7 113
6 -13 125
7 -11 105
8 8 107
9 6 111
10 0 125
11 8 118
12 4 114
13 0 113
14 -5 109
15 -11 112
16 6 106
17 -11 123
18 -6 126
19 26 -33
20 34 -38
21 26 -44
22 28 -36
23 30 -39
24 44 -31
25 43 -27
26 45 -22
27 37 -44
28 32 -23
29 35 -41
30 48 -27
31 41 -35
32 45 -41
33 43 -36
34 34 -38
35 43 -23
36 32 -41
37 33 -24
38 48 -26
39 102 85
40 90 69
41 95 88
42 79 74
43 77 89
44 99 81
45 99 80
46 81 84
47 77 69
48 86 85
49 82 89
50 86 86
51 84 87
52 23 14
53 13 4
54 13 7
55 16 2
56 17 -1
57 16 3
58 13 10
59 23 11
60 15 5
61 17 -1
62 11 0
63 19 1
64 14 3
65 18 -3
66 118 8
67 99 21
68 106 -5
69 124 8
70 104 3
71 126 4
72 115 7
73 110 -3
74 98 -6
75 111 13
76 -67 90
77 -56 96
78 -56 97
79 -57 100
80 -54 101
81 -50 96
82 -64 103
83 -63 103
84 -57 100
85 -53 106
86 -57 96
87 -67 97
88 -61 98
89 -66 95
90 -51 104
91 -62 95
92 -67 106
93 -51 102
94 -86 87
95 -82 78
96 -92 86
97 -86 78
98 6 67
99 13 59
100 21 66
101 8 59
102 20 70
103 1 62
104 19 57
105 15 70
106 20 55
107 8 51
108 3 54
109 18 68
110 12 53
111 3 65
112 4 62
113 19 52
114 92 -28
115 92 -26
116 80 -28
117 91 -18
118 93 -24
119 76 -15
120 88 -33
121 83 -28
122 86 -23
123 92 -20
124 82 -29
125 88 -29
126 82 -27
127 88 -13
128 83 -29
129 90 -17
130 49 -4
131 58 -6
132 64 -7
133 54 -15
134 66 -3
135 65 -13
136 57 -20
137 38 -2
138 -44 88
139 -36 100
140 -37 98
141 -39 110
142 -34 111
143 -47 111
144 -28 105
145 -38 98
146 -32 91
147 -25 97
148 -46 111
149 -36 107
150 -35 92
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
135 135
136 136
137 137
138 138
139 139
140 140
141 141
142 142
143 143
144 144
145 145
146 146
147 147
148 148
149 149
150 150
DURATION_SECTION
1 30
2 30
3 30
4 30
5 30
6 30
7 30
8 30
9 30
10 30
11 30
12 30
13 30
14 30
15 30
16 30
17 30
18 30
19 30
20 30
21 30
22 30
23 30
24 30
25 30
26 30
27 30
28 30
29 30
30 30
31 30
32 30
33 30
34 30
35 30
36 30
37 30
38 30
39 30
40 30
41 30
42 30
43 30
44 30
45 30
46 30
47 30
48 30
49 30
50 30
51 30
52 30
53 30
54 30
55 30
56 30
57 30
58 30
59 30
60 30
61 30
62 30
63 30
64 30
65 30
66 30
67 30
68 30
69 30
70 30
71 30
72 30
73 30
74 30
75 30
76 30
77 30
78 30
79 30
80 30
81 30
82 30
83 30
84 30
85 30
86 30
87 30
88 30
89 30
90 30
91 30
92 30
93 30
94 30
95 30
96 30
97 30
98 30
99 30
100 30
101 30
102 30
103 30
104 30
105 30
106 30
107 30
108 30
109 30
110 30
111 30
112 30
113 30
114 30
115 30
116 30
117 30
118 30
119 30
120 30
121 30
122 30
123 30
124 30
125 30
126 30
127 30
128 30
129 30
130 30
131 30
132 30
133 30
134 30
135 30
136 30
137 30
138 30
139 30
140 30
141 30
142 30
143 30
144 30
145 30
146 30
147 30
148 30
149 30
150 30
DEPOT_TIME_WINDOW_SECTION
0 0 1062
COMMENT: TIMESTEP: 21
TIME_AVAIL_SECTION
1 10
2 19
3 21
4 31
5 33
6 35
7 37
8 49
9 52
10 55
11 62
12 68
13 86
14 99
15 101
16 111
17 111
18 119
19 121
20 148
21 150
22 156
23 164
24 164
25 168
26 174
27 174
28 174
29 180
30 180
31 188
32 197
33 201
34 201
35 205
36 213
37 217
38 228
39 236
40 236
41 238
42 238
43 240
44 248
45 252
46 256
47 277
48 279
49 285
50 289
51 289
52 295
53 305
54 307
55 317
56 318
57 320
58 330
59 344
60 346
61 354
62 363
63 393
64 401
65 443
66 444
67 453
68 471
69 481
70 494
71 495
72 514
73 516
74 526
75 537
76 538
77 541
78 547
79 549
80 555
81 559
82 565
83 571
84 575
85 579
86 606
87 618
88 620
89 620
90 624
91 625
92 637
93 639
94 645
95 645
96 675
97 678
98 680
99 682
100 690
101 694
102 700
103 702
104 717
105 725
106 729
107 733
108 753
109 764
110 766
111 774
112 780
113 807
114 809
115 811
116 811
117 813
118 827
119 835
120 843
121 843
122 858
123 864
124 872
125 878
126 878
127 882
128 886
129 905
130 915
131 921
132 925
133 931
134 938
135 939
136 948
137 954
138 958
139 987
140 991
141 1005
142 1009
143 1009
144 1011
145 1019
146 1032
147 1044
148 1046
149 1048
150 1056
EOF

View file

@ -0,0 +1,775 @@
VRPTEST 1.0
COMMENT: Converted from tai150a by convert2vt
COMMENT: Best known objective: 3055.23
NAME: tai150a
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 150
NUM_LOCATIONS: 151
NUM_VEHICLES: 50
CAPACITIES: 1544
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -13
2 -122
3 -30
4 -3
5 -5
6 -422
7 -13
8 -22
9 -173
10 -41
11 -8
12 -8
13 -110
14 -198
15 -384
16 -193
17 -238
18 -265
19 -3
20 -469
21 -7
22 -6
23 -108
24 -10
25 -40
26 -635
27 -49
28 -149
29 -403
30 -42
31 -70
32 -201
33 -66
34 -526
35 -6
36 -279
37 -160
38 -3
39 -4
40 -105
41 -46
42 -474
43 -7
44 -7
45 -99
46 -126
47 -119
48 -46
49 -273
50 -91
51 -294
52 -4
53 -81
54 -285
55 -90
56 -462
57 -65
58 -6
59 -4
60 -529
61 -165
62 -4
63 -394
64 -3
65 -60
66 -899
67 -169
68 -10
69 -47
70 -37
71 -23
72 -25
73 -444
74 -3
75 -99
76 -58
77 -7
78 -11
79 -15
80 -381
81 -7
82 -39
83 -502
84 -115
85 -85
86 -3
87 -136
88 -111
89 -66
90 -50
91 -252
92 -4
93 -119
94 -746
95 -6
96 -51
97 -322
98 -1023
99 -5
100 -10
101 -153
102 -29
103 -13
104 -3
105 -4
106 -70
107 -9
108 -147
109 -3
110 -10
111 -4
112 -439
113 -14
114 -729
115 -29
116 -3
117 -98
118 -113
119 -122
120 -11
121 -90
122 -789
123 -6
124 -179
125 -3
126 -3
127 -21
128 -869
129 -246
130 -10
131 -36
132 -14
133 -134
134 -175
135 -32
136 -20
137 -212
138 -45
139 -173
140 -240
141 -16
142 -27
143 -61
144 -203
145 -5
146 -369
147 -81
148 -128
149 -406
150 -32
LOCATION_COORD_SECTION
0 0 0
1 -4 106
2 -11 106
3 -12 115
4 4 123
5 7 113
6 -13 125
7 -11 105
8 8 107
9 6 111
10 0 125
11 8 118
12 4 114
13 0 113
14 -5 109
15 -11 112
16 6 106
17 -11 123
18 -6 126
19 26 -33
20 34 -38
21 26 -44
22 28 -36
23 30 -39
24 44 -31
25 43 -27
26 45 -22
27 37 -44
28 32 -23
29 35 -41
30 48 -27
31 41 -35
32 45 -41
33 43 -36
34 34 -38
35 43 -23
36 32 -41
37 33 -24
38 48 -26
39 102 85
40 90 69
41 95 88
42 79 74
43 77 89
44 99 81
45 99 80
46 81 84
47 77 69
48 86 85
49 82 89
50 86 86
51 84 87
52 23 14
53 13 4
54 13 7
55 16 2
56 17 -1
57 16 3
58 13 10
59 23 11
60 15 5
61 17 -1
62 11 0
63 19 1
64 14 3
65 18 -3
66 118 8
67 99 21
68 106 -5
69 124 8
70 104 3
71 126 4
72 115 7
73 110 -3
74 98 -6
75 111 13
76 -67 90
77 -56 96
78 -56 97
79 -57 100
80 -54 101
81 -50 96
82 -64 103
83 -63 103
84 -57 100
85 -53 106
86 -57 96
87 -67 97
88 -61 98
89 -66 95
90 -51 104
91 -62 95
92 -67 106
93 -51 102
94 -86 87
95 -82 78
96 -92 86
97 -86 78
98 6 67
99 13 59
100 21 66
101 8 59
102 20 70
103 1 62
104 19 57
105 15 70
106 20 55
107 8 51
108 3 54
109 18 68
110 12 53
111 3 65
112 4 62
113 19 52
114 92 -28
115 92 -26
116 80 -28
117 91 -18
118 93 -24
119 76 -15
120 88 -33
121 83 -28
122 86 -23
123 92 -20
124 82 -29
125 88 -29
126 82 -27
127 88 -13
128 83 -29
129 90 -17
130 49 -4
131 58 -6
132 64 -7
133 54 -15
134 66 -3
135 65 -13
136 57 -20
137 38 -2
138 -44 88
139 -36 100
140 -37 98
141 -39 110
142 -34 111
143 -47 111
144 -28 105
145 -38 98
146 -32 91
147 -25 97
148 -46 111
149 -36 107
150 -35 92
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
135 135
136 136
137 137
138 138
139 139
140 140
141 141
142 142
143 143
144 144
145 145
146 146
147 147
148 148
149 149
150 150
DURATION_SECTION
1 30
2 30
3 30
4 30
5 30
6 30
7 30
8 30
9 30
10 30
11 30
12 30
13 30
14 30
15 30
16 30
17 30
18 30
19 30
20 30
21 30
22 30
23 30
24 30
25 30
26 30
27 30
28 30
29 30
30 30
31 30
32 30
33 30
34 30
35 30
36 30
37 30
38 30
39 30
40 30
41 30
42 30
43 30
44 30
45 30
46 30
47 30
48 30
49 30
50 30
51 30
52 30
53 30
54 30
55 30
56 30
57 30
58 30
59 30
60 30
61 30
62 30
63 30
64 30
65 30
66 30
67 30
68 30
69 30
70 30
71 30
72 30
73 30
74 30
75 30
76 30
77 30
78 30
79 30
80 30
81 30
82 30
83 30
84 30
85 30
86 30
87 30
88 30
89 30
90 30
91 30
92 30
93 30
94 30
95 30
96 30
97 30
98 30
99 30
100 30
101 30
102 30
103 30
104 30
105 30
106 30
107 30
108 30
109 30
110 30
111 30
112 30
113 30
114 30
115 30
116 30
117 30
118 30
119 30
120 30
121 30
122 30
123 30
124 30
125 30
126 30
127 30
128 30
129 30
130 30
131 30
132 30
133 30
134 30
135 30
136 30
137 30
138 30
139 30
140 30
141 30
142 30
143 30
144 30
145 30
146 30
147 30
148 30
149 30
150 30
DEPOT_TIME_WINDOW_SECTION
0 0 1062
COMMENT: TIMESTEP: 21
TIME_AVAIL_SECTION
1 4
2 9
3 11
4 15
5 33
6 40
7 42
8 49
9 62
10 68
11 70
12 74
13 76
14 86
15 91
16 101
17 105
18 115
19 119
20 137
21 138
22 140
23 142
24 152
25 152
26 154
27 175
28 177
29 185
30 191
31 203
32 203
33 205
34 207
35 222
36 234
37 240
38 242
39 265
40 275
41 275
42 277
43 287
44 297
45 322
46 344
47 347
48 355
49 365
50 365
51 367
52 369
53 369
54 375
55 381
56 402
57 426
58 432
59 438
60 445
61 467
62 471
63 471
64 476
65 484
66 496
67 498
68 498
69 508
70 543
71 549
72 566
73 578
74 586
75 594
76 598
77 600
78 604
79 611
80 615
81 621
82 635
83 635
84 639
85 639
86 649
87 649
88 653
89 662
90 666
91 666
92 682
93 692
94 695
95 700
96 703
97 710
98 721
99 723
100 723
101 729
102 743
103 747
104 754
105 768
106 768
107 772
108 778
109 788
110 789
111 791
112 795
113 796
114 809
115 811
116 821
117 821
118 829
119 833
120 838
121 840
122 842
123 848
124 864
125 866
126 866
127 872
128 882
129 891
130 907
131 915
132 925
133 930
134 932
135 938
136 950
137 950
138 958
139 967
140 997
141 1005
142 1007
143 1016
144 1022
145 1028
146 1030
147 1042
148 1048
149 1058
150 1058
EOF

View file

@ -0,0 +1,775 @@
VRPTEST 1.0
COMMENT: Converted from tai150b by convert2vt
COMMENT: Best known objective: 2727.99
NAME: tai150b
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 150
NUM_LOCATIONS: 151
NUM_VEHICLES: 50
CAPACITIES: 1918
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 50
2 50
3 170
4 297
5 9
6 630
7 179
8 179
9 216
10 4
11 9
12 154
13 117
14 63
15 436
16 905
17 14
18 3
19 10
20 166
21 211
22 8
23 25
24 139
25 213
26 758
27 429
28 5
29 136
30 501
31 93
32 21
33 169
34 22
35 3
36 271
37 433
38 3
39 1079
40 233
41 11
42 10
43 78
44 63
45 4
46 59
47 8
48 34
49 234
50 30
51 40
52 123
53 7
54 33
55 369
56 11
57 23
58 208
59 4
60 8
61 36
62 504
63 16
64 574
65 19
66 235
67 445
68 6
69 43
70 210
71 268
72 410
73 124
74 11
75 1085
76 5
77 529
78 107
79 274
80 23
81 156
82 32
83 177
84 16
85 8
86 19
87 52
88 47
89 4
90 372
91 525
92 101
93 898
94 40
95 32
96 1017
97 103
98 109
99 76
100 1025
101 53
102 22
103 991
104 4
105 147
106 49
107 276
108 7
109 78
110 389
111 4
112 388
113 135
114 233
115 74
116 51
117 4
118 216
119 85
120 37
121 6
122 12
123 12
124 45
125 3
126 122
127 46
128 132
129 464
130 11
131 11
132 16
133 119
134 60
135 14
136 13
137 90
138 5
139 458
140 6
141 3
142 99
143 73
144 13
145 10
146 9
147 417
148 150
149 49
150 271
LOCATION_COORD_SECTION
0 0 0
1 58 -75
2 80 -76
3 79 -80
4 64 -66
5 61 -65
6 73 -71
7 63 -76
8 57 -69
9 64 -76
10 64 -81
11 78 -69
12 20 2
13 14 0
14 7 -9
15 9 18
16 17 -5
17 14 -6
18 20 8
19 20 15
20 9 6
21 19 12
22 8 -2
23 9 15
24 24 5
25 14 16
26 -2 0
27 20 11
28 7 -2
29 -101 -25
30 -94 -26
31 -99 -22
32 -112 -20
33 -95 -19
34 -112 -27
35 -102 -15
36 -96 -13
37 -110 -17
38 -101 -15
39 -105 -10
40 -106 -26
41 -109 -26
42 -102 -26
43 -101 -14
44 -99 -12
45 -94 -24
46 -96 -13
47 -100 -16
48 -111 -12
49 -109 -12
50 -66 -12
51 -48 -27
52 -59 3
53 -47 -4
54 -62 -10
55 -72 -11
56 -59 -1
57 -73 -6
58 -62 -3
59 -72 -17
60 -67 -11
61 -69 -25
62 -56 1
63 -66 -6
64 -72 -7
65 -46 -15
66 -45 -18
67 -51 -21
68 -73 -18
69 -61 -15
70 -57 60
71 -46 74
72 -57 67
73 -49 72
74 46 101
75 50 113
76 54 103
77 -80 28
78 -81 35
79 -85 31
80 -81 29
81 -76 28
82 -8 -53
83 -11 -55
84 -12 -48
85 -10 -57
86 -8 -49
87 -5 -61
88 -14 -57
89 106 6
90 96 6
91 92 23
92 102 13
93 90 24
94 94 6
95 107 5
96 106 -1
97 102 16
98 90 8
99 113 -1
100 88 15
101 87 21
102 100 2
103 108 16
104 114 18
105 99 11
106 87 4
107 110 16
108 102 25
109 -8 108
110 -9 102
111 -10 108
112 -4 108
113 -8 104
114 -9 100
115 -7 111
116 -4 102
117 -12 101
118 -14 112
119 -10 105
120 15 -4
121 30 -7
122 31 8
123 15 1
124 17 7
125 19 -8
126 19 -9
127 14 -2
128 21 -7
129 24 -10
130 26 10
131 20 -6
132 23 3
133 27 -5
134 25 3
135 27 -2
136 17 -4
137 31 -10
138 22 2
139 28 -3
140 -5 13
141 1 18
142 2 -2
143 -9 10
144 5 -4
145 -1 1
146 -11 19
147 -12 3
148 -3 -3
149 -18 4
150 -21 1
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
135 135
136 136
137 137
138 138
139 139
140 140
141 141
142 142
143 143
144 144
145 145
146 146
147 147
148 148
149 149
150 150
DURATION_SECTION
1 27
2 27
3 27
4 27
5 27
6 27
7 27
8 27
9 27
10 27
11 27
12 27
13 27
14 27
15 27
16 27
17 27
18 27
19 27
20 27
21 27
22 27
23 27
24 27
25 27
26 27
27 27
28 27
29 27
30 27
31 27
32 27
33 27
34 27
35 27
36 27
37 27
38 27
39 27
40 27
41 27
42 27
43 27
44 27
45 27
46 27
47 27
48 27
49 27
50 27
51 27
52 27
53 27
54 27
55 27
56 27
57 27
58 27
59 27
60 27
61 27
62 27
63 27
64 27
65 27
66 27
67 27
68 27
69 27
70 27
71 27
72 27
73 27
74 27
75 27
76 27
77 27
78 27
79 27
80 27
81 27
82 27
83 27
84 27
85 27
86 27
87 27
88 27
89 27
90 27
91 27
92 27
93 27
94 27
95 27
96 27
97 27
98 27
99 27
100 27
101 27
102 27
103 27
104 27
105 27
106 27
107 27
108 27
109 27
110 27
111 27
112 27
113 27
114 27
115 27
116 27
117 27
118 27
119 27
120 27
121 27
122 27
123 27
124 27
125 27
126 27
127 27
128 27
129 27
130 27
131 27
132 27
133 27
134 27
135 27
136 27
137 27
138 27
139 27
140 27
141 27
142 27
143 27
144 27
145 27
146 27
147 27
148 27
149 27
150 27
DEPOT_TIME_WINDOW_SECTION
0 0 988
COMMENT: TIMESTEP: 19
TIME_AVAIL_SECTION
1 3
2 8
3 10
4 14
5 30
6 38
7 39
8 45
9 58
10 63
11 65
12 69
13 70
14 80
15 85
16 94
17 98
18 107
19 110
20 127
21 129
22 130
23 132
24 141
25 141
26 143
27 163
28 165
29 172
30 178
31 189
32 189
33 190
34 192
35 207
36 218
37 223
38 225
39 247
40 256
41 256
42 258
43 267
44 276
45 300
46 320
47 323
48 331
49 340
50 340
51 341
52 343
53 343
54 349
55 354
56 374
57 396
58 401
59 407
60 414
61 434
62 438
63 438
64 443
65 451
66 462
67 463
68 463
69 473
70 505
71 511
72 527
73 538
74 545
75 552
76 556
77 558
78 562
79 569
80 572
81 578
82 591
83 591
84 594
85 594
86 603
87 603
88 607
89 616
90 620
91 620
92 634
93 643
94 647
95 651
96 654
97 660
98 671
99 673
100 673
101 678
102 691
103 695
104 702
105 714
106 714
107 718
108 724
109 733
110 734
111 736
112 740
113 740
114 753
115 755
116 764
117 764
118 771
119 775
120 780
121 782
122 784
123 789
124 804
125 806
126 806
127 811
128 820
129 829
130 844
131 851
132 860
133 865
134 867
135 873
136 884
137 884
138 891
139 900
140 927
141 935
142 936
143 945
144 951
145 957
146 958
147 969
148 975
149 984
150 984
EOF

View file

@ -0,0 +1,775 @@
VRPTEST 1.0
COMMENT: Converted from tai150b by convert2vt
COMMENT: Best known objective: 2727.99
NAME: tai150b
NUM_DEPOTS: 1
NUM_CAPACITIES: 1
NUM_VISITS: 150
NUM_LOCATIONS: 151
NUM_VEHICLES: 50
CAPACITIES: 1918
DATA_SECTION
DEPOTS
0
DEMAND_SECTION
1 -50
2 -50
3 -170
4 -297
5 -9
6 -630
7 -179
8 -179
9 -216
10 -4
11 -9
12 -154
13 -117
14 -63
15 -436
16 -905
17 -14
18 -3
19 -10
20 -166
21 -211
22 -8
23 -25
24 -139
25 -213
26 -758
27 -429
28 -5
29 -136
30 -501
31 -93
32 -21
33 -169
34 -22
35 -3
36 -271
37 -433
38 -3
39 -1079
40 -233
41 -11
42 -10
43 -78
44 -63
45 -4
46 -59
47 -8
48 -34
49 -234
50 -30
51 -40
52 -123
53 -7
54 -33
55 -369
56 -11
57 -23
58 -208
59 -4
60 -8
61 -36
62 -504
63 -16
64 -574
65 -19
66 -235
67 -445
68 -6
69 -43
70 -210
71 -268
72 -410
73 -124
74 -11
75 -1085
76 -5
77 -529
78 -107
79 -274
80 -23
81 -156
82 -32
83 -177
84 -16
85 -8
86 -19
87 -52
88 -47
89 -4
90 -372
91 -525
92 -101
93 -898
94 -40
95 -32
96 -1017
97 -103
98 -109
99 -76
100 -1025
101 -53
102 -22
103 -991
104 -4
105 -147
106 -49
107 -276
108 -7
109 -78
110 -389
111 -4
112 -388
113 -135
114 -233
115 -74
116 -51
117 -4
118 -216
119 -85
120 -37
121 -6
122 -12
123 -12
124 -45
125 -3
126 -122
127 -46
128 -132
129 -464
130 -11
131 -11
132 -16
133 -119
134 -60
135 -14
136 -13
137 -90
138 -5
139 -458
140 -6
141 -3
142 -99
143 -73
144 -13
145 -10
146 -9
147 -417
148 -150
149 -49
150 -271
LOCATION_COORD_SECTION
0 0 0
1 58 -75
2 80 -76
3 79 -80
4 64 -66
5 61 -65
6 73 -71
7 63 -76
8 57 -69
9 64 -76
10 64 -81
11 78 -69
12 20 2
13 14 0
14 7 -9
15 9 18
16 17 -5
17 14 -6
18 20 8
19 20 15
20 9 6
21 19 12
22 8 -2
23 9 15
24 24 5
25 14 16
26 -2 0
27 20 11
28 7 -2
29 -101 -25
30 -94 -26
31 -99 -22
32 -112 -20
33 -95 -19
34 -112 -27
35 -102 -15
36 -96 -13
37 -110 -17
38 -101 -15
39 -105 -10
40 -106 -26
41 -109 -26
42 -102 -26
43 -101 -14
44 -99 -12
45 -94 -24
46 -96 -13
47 -100 -16
48 -111 -12
49 -109 -12
50 -66 -12
51 -48 -27
52 -59 3
53 -47 -4
54 -62 -10
55 -72 -11
56 -59 -1
57 -73 -6
58 -62 -3
59 -72 -17
60 -67 -11
61 -69 -25
62 -56 1
63 -66 -6
64 -72 -7
65 -46 -15
66 -45 -18
67 -51 -21
68 -73 -18
69 -61 -15
70 -57 60
71 -46 74
72 -57 67
73 -49 72
74 46 101
75 50 113
76 54 103
77 -80 28
78 -81 35
79 -85 31
80 -81 29
81 -76 28
82 -8 -53
83 -11 -55
84 -12 -48
85 -10 -57
86 -8 -49
87 -5 -61
88 -14 -57
89 106 6
90 96 6
91 92 23
92 102 13
93 90 24
94 94 6
95 107 5
96 106 -1
97 102 16
98 90 8
99 113 -1
100 88 15
101 87 21
102 100 2
103 108 16
104 114 18
105 99 11
106 87 4
107 110 16
108 102 25
109 -8 108
110 -9 102
111 -10 108
112 -4 108
113 -8 104
114 -9 100
115 -7 111
116 -4 102
117 -12 101
118 -14 112
119 -10 105
120 15 -4
121 30 -7
122 31 8
123 15 1
124 17 7
125 19 -8
126 19 -9
127 14 -2
128 21 -7
129 24 -10
130 26 10
131 20 -6
132 23 3
133 27 -5
134 25 3
135 27 -2
136 17 -4
137 31 -10
138 22 2
139 28 -3
140 -5 13
141 1 18
142 2 -2
143 -9 10
144 5 -4
145 -1 1
146 -11 19
147 -12 3
148 -3 -3
149 -18 4
150 -21 1
DEPOT_LOCATION_SECTION
0 0
VISIT_LOCATION_SECTION
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 63
64 64
65 65
66 66
67 67
68 68
69 69
70 70
71 71
72 72
73 73
74 74
75 75
76 76
77 77
78 78
79 79
80 80
81 81
82 82
83 83
84 84
85 85
86 86
87 87
88 88
89 89
90 90
91 91
92 92
93 93
94 94
95 95
96 96
97 97
98 98
99 99
100 100
101 101
102 102
103 103
104 104
105 105
106 106
107 107
108 108
109 109
110 110
111 111
112 112
113 113
114 114
115 115
116 116
117 117
118 118
119 119
120 120
121 121
122 122
123 123
124 124
125 125
126 126
127 127
128 128
129 129
130 130
131 131
132 132
133 133
134 134
135 135
136 136
137 137
138 138
139 139
140 140
141 141
142 142
143 143
144 144
145 145
146 146
147 147
148 148
149 149
150 150
DURATION_SECTION
1 27
2 27
3 27
4 27
5 27
6 27
7 27
8 27
9 27
10 27
11 27
12 27
13 27
14 27
15 27
16 27
17 27
18 27
19 27
20 27
21 27
22 27
23 27
24 27
25 27
26 27
27 27
28 27
29 27
30 27
31 27
32 27
33 27
34 27
35 27
36 27
37 27
38 27
39 27
40 27
41 27
42 27
43 27
44 27
45 27
46 27
47 27
48 27
49 27
50 27
51 27
52 27
53 27
54 27
55 27
56 27
57 27
58 27
59 27
60 27
61 27
62 27
63 27
64 27
65 27
66 27
67 27
68 27
69 27
70 27
71 27
72 27
73 27
74 27
75 27
76 27
77 27
78 27
79 27
80 27
81 27
82 27
83 27
84 27
85 27
86 27
87 27
88 27
89 27
90 27
91 27
92 27
93 27
94 27
95 27
96 27
97 27
98 27
99 27
100 27
101 27
102 27
103 27
104 27
105 27
106 27
107 27
108 27
109 27
110 27
111 27
112 27
113 27
114 27
115 27
116 27
117 27
118 27
119 27
120 27
121 27
122 27
123 27
124 27
125 27
126 27
127 27
128 27
129 27
130 27
131 27
132 27
133 27
134 27
135 27
136 27
137 27
138 27
139 27
140 27
141 27
142 27
143 27
144 27
145 27
146 27
147 27
148 27
149 27
150 27
DEPOT_TIME_WINDOW_SECTION
0 0 988
COMMENT: TIMESTEP: 19
TIME_AVAIL_SECTION
1 3
2 5
3 7
4 18
5 23
6 31
7 34
8 45
9 51
10 74
11 74
12 85
13 87
14 96
15 96
16 100
17 102
18 102
19 109
20 114
21 123
22 131
23 133
24 136
25 142
26 142
27 144
28 149
29 154
30 165
31 174
32 180
33 207
34 207
35 211
36 213
37 218
38 222
39 227
40 244
41 247
42 258
43 271
44 280
45 282
46 293
47 298
48 300
49 300
50 302
51 311
52 320
53 320
54 320
55 333
56 338
57 353
58 355
59 362
60 365
61 366
62 371
63 402
64 407
65 415
66 426
67 447
68 453
69 455
70 460
71 486
72 487
73 491
74 496
75 500
76 506
77 513
78 513
79 527
80 527
81 529
82 546
83 547
84 558
85 566
86 566
87 569
88 571
89 577
90 584
91 584
92 591
93 595
94 628
95 631
96 640
97 644
98 649
99 651
100 651
101 658
102 676
103 678
104 680
105 689
106 702
107 740
108 742
109 744
110 744
111 749
112 757
113 758
114 758
115 760
116 768
117 769
118 771
119 780
120 786
121 786
122 791
123 797
124 799
125 806
126 818
127 819
128 828
129 829
130 831
131 839
132 851
133 853
134 857
135 859
136 871
137 875
138 880
139 888
140 890
141 908
142 920
143 922
144 924
145 946
146 962
147 970
148 973
149 973
150 986
EOF

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