From fb975379d770d10dae12390c3701c41fa8c8a1f0 Mon Sep 17 00:00:00 2001 From: jhumeau Date: Tue, 10 Mar 2009 15:09:55 +0000 Subject: [PATCH] remove old version of MOLS git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1490 331e1502-861f-0410-8da2-ba01fb791d7f --- contribution/branches/MOLS/CMakeLists.txt | 106 --- contribution/branches/MOLS/CTestConfig.cmake | 7 - contribution/branches/MOLS/doc/CMakeLists.txt | 1 - .../branches/MOLS/flowshop/CMakeLists.txt | 17 - .../MOLS/flowshop/benchs/020_05_01.txt | 63 -- .../MOLS/flowshop/benchs/020_05_02.txt | 63 -- .../MOLS/flowshop/benchs/020_10_01.txt | 63 -- .../MOLS/flowshop/benchs/020_10_02.txt | 63 -- .../MOLS/flowshop/benchs/020_20_01.txt | 63 -- .../MOLS/flowshop/benchs/050_05_01.txt | 153 ----- .../MOLS/flowshop/benchs/050_10_01.txt | 153 ----- .../MOLS/flowshop/benchs/050_20_01.txt | 153 ----- .../MOLS/flowshop/benchs/100_05_01.txt | 303 --------- .../MOLS/flowshop/benchs/100_10_01.txt | 303 --------- .../MOLS/flowshop/benchs/100_20_01.txt | 303 --------- .../MOLS/flowshop/benchs/200_10_01.txt | 603 ------------------ .../branches/MOLS/flowshop/benchs/README | 1 - .../MOLS/flowshop/build/lib/libflowshop.a | Bin 208974 -> 0 bytes .../branches/MOLS/flowshop/src/CMakeLists.txt | 33 - .../branches/MOLS/flowshop/src/FlowShop.cpp | 43 -- .../branches/MOLS/flowshop/src/FlowShop.h | 58 -- .../flowshop/src/FlowShopBenchmarkParser.cpp | 131 ---- .../flowshop/src/FlowShopBenchmarkParser.h | 109 ---- .../MOLS/flowshop/src/FlowShopEval.cpp | 90 --- .../branches/MOLS/flowshop/src/FlowShopEval.h | 104 --- .../MOLS/flowshop/src/FlowShopInit.cpp | 64 -- .../branches/MOLS/flowshop/src/FlowShopInit.h | 49 -- .../flowshop/src/FlowShopObjectiveVector.h | 49 -- .../src/FlowShopObjectiveVectorTraits.cpp | 57 -- .../src/FlowShopObjectiveVectorTraits.h | 71 --- .../flowshop/src/FlowShopOpCrossoverQuad.cpp | 110 ---- .../flowshop/src/FlowShopOpCrossoverQuad.h | 78 --- .../flowshop/src/FlowShopOpMutationExchange.h | 49 -- .../flowshop/src/FlowShopOpMutationShift.h | 49 -- .../MOLS/flowshop/src/exchange_move.cpp | 67 -- .../MOLS/flowshop/src/exchange_move.h | 28 - .../MOLS/flowshop/src/exchange_move_init.cpp | 13 - .../MOLS/flowshop/src/exchange_move_init.h | 20 - .../MOLS/flowshop/src/exchange_move_next.cpp | 30 - .../MOLS/flowshop/src/exchange_move_next.h | 22 - .../MOLS/flowshop/src/make_eval_FlowShop.h | 81 --- .../flowshop/src/make_genotype_FlowShop.h | 74 --- .../MOLS/flowshop/src/make_op_FlowShop.h | 132 ---- contribution/branches/MOLS/install.cmake | 25 - contribution/branches/MOLS/src/CMakeLists.txt | 1 - .../branches/MOLS/src/eoTenTimeContinue.h | 100 --- .../MOLS/src/moeoAllSolAllNeighborsExpl.h | 106 --- .../MOLS/src/moeoAllSolOneNeighborExpl.h | 171 ----- .../MOLS/src/moeoOneSolAllNeighborsExpl.h | 103 --- .../MOLS/src/moeoOneSolOneNeighborExpl.h | 165 ----- contribution/branches/MOLS/src/moeoPopLS.h | 51 -- .../MOLS/src/moeoPopNeighborhoodExplorer.h | 52 -- .../MOLS/src/moeoUnifiedDominanceBasedLS.h | 135 ---- .../branches/MOLS/test/CMakeLists.txt | 56 -- contribution/branches/MOLS/test/param | 11 - .../test/t-moeoUnifiedDominanceBasedLS.cpp | 55 -- 56 files changed, 5060 deletions(-) delete mode 100644 contribution/branches/MOLS/CMakeLists.txt delete mode 100644 contribution/branches/MOLS/CTestConfig.cmake delete mode 100644 contribution/branches/MOLS/doc/CMakeLists.txt delete mode 100755 contribution/branches/MOLS/flowshop/CMakeLists.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/020_05_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/020_05_02.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/020_10_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/020_10_02.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/020_20_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/050_05_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/050_10_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/050_20_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/100_05_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/100_10_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/100_20_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/200_10_01.txt delete mode 100755 contribution/branches/MOLS/flowshop/benchs/README delete mode 100644 contribution/branches/MOLS/flowshop/build/lib/libflowshop.a delete mode 100755 contribution/branches/MOLS/flowshop/src/CMakeLists.txt delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShop.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShop.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopBenchmarkParser.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopBenchmarkParser.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopEval.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopEval.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopInit.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopInit.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVector.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopOpCrossoverQuad.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopOpCrossoverQuad.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopOpMutationExchange.h delete mode 100755 contribution/branches/MOLS/flowshop/src/FlowShopOpMutationShift.h delete mode 100755 contribution/branches/MOLS/flowshop/src/exchange_move.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/exchange_move.h delete mode 100755 contribution/branches/MOLS/flowshop/src/exchange_move_init.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/exchange_move_init.h delete mode 100755 contribution/branches/MOLS/flowshop/src/exchange_move_next.cpp delete mode 100755 contribution/branches/MOLS/flowshop/src/exchange_move_next.h delete mode 100755 contribution/branches/MOLS/flowshop/src/make_eval_FlowShop.h delete mode 100755 contribution/branches/MOLS/flowshop/src/make_genotype_FlowShop.h delete mode 100755 contribution/branches/MOLS/flowshop/src/make_op_FlowShop.h delete mode 100644 contribution/branches/MOLS/install.cmake delete mode 100644 contribution/branches/MOLS/src/CMakeLists.txt delete mode 100644 contribution/branches/MOLS/src/eoTenTimeContinue.h delete mode 100755 contribution/branches/MOLS/src/moeoAllSolAllNeighborsExpl.h delete mode 100644 contribution/branches/MOLS/src/moeoAllSolOneNeighborExpl.h delete mode 100644 contribution/branches/MOLS/src/moeoOneSolAllNeighborsExpl.h delete mode 100644 contribution/branches/MOLS/src/moeoOneSolOneNeighborExpl.h delete mode 100644 contribution/branches/MOLS/src/moeoPopLS.h delete mode 100644 contribution/branches/MOLS/src/moeoPopNeighborhoodExplorer.h delete mode 100644 contribution/branches/MOLS/src/moeoUnifiedDominanceBasedLS.h delete mode 100644 contribution/branches/MOLS/test/CMakeLists.txt delete mode 100644 contribution/branches/MOLS/test/param delete mode 100644 contribution/branches/MOLS/test/t-moeoUnifiedDominanceBasedLS.cpp diff --git a/contribution/branches/MOLS/CMakeLists.txt b/contribution/branches/MOLS/CMakeLists.txt deleted file mode 100644 index 8dfbc91fa..000000000 --- a/contribution/branches/MOLS/CMakeLists.txt +++ /dev/null @@ -1,106 +0,0 @@ -###################################################################################### -### 1) Project properties -###################################################################################### - -# set the project name -PROJECT(MOLS) - -# check cmake version compatibility -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) - -INCLUDE(CMakeBackwardCompatibilityCXX) - -# regular expression checking -INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") - -# set a language -ENABLE_LANGUAGE(CXX) -ENABLE_LANGUAGE(C) - -INCLUDE(Dart OPTIONAL) - -##################################################################################### - -SET(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "Variable that stores the default CMake build type" FORCE) - -FIND_PROGRAM(MEMORYCHECK_COMMAND - NAMES purify valgrind - PATHS - "/usr/local/bin /usr/bin [HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]" - DOC "Path to the memory checking command, used for memory error detection.") - -IF(NOT CMAKE_BUILD_TYPE) - SET( CMAKE_BUILD_TYPE - ${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING - "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." - FORCE) -ENDIF(NOT CMAKE_BUILD_TYPE) - -IF(CMAKE_BUILD_TYPE MATCHES Debug) - ADD_DEFINITIONS(-DCMAKE_VERBOSE_MAKEFILE=ON) -ENDIF(CMAKE_BUILD_TYPE MATCHES Debug) - -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) - - -###################################################################################### -### 2) Include the main configuration variables -###################################################################################### - -# Need the config file whose full path is given thanks to the "config" variable -INCLUDE("install.cmake") - -###################################################################################### - - -###################################################################################### -### 3) Paths checking -###################################################################################### - -IF(WIN32) - SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") -ELSE(WIN32) - SET (ABSOLUTE_PATH_REGEX "^/") -ENDIF(WIN32) - -SET(REQUIRED_PATHS "PARADISEO_EO_SRC_DIR" "PARADISEO_EO_BIN_DIR" "PARADISEO_MO_SRC_DIR" "PARADISEO_MO_BIN_DIR" "PARADISEO_MO_SRC_DIR" "PARADISEO_MOEO_BIN_DIR") -FOREACH (path ${REQUIRED_PATHS}) - IF(EXISTS ${${path}}) - MESSAGE (STATUS "Using ${path}=${${path}}") - ELSE(EXISTS ${${path}}) - MESSAGE (FATAL_ERROR "\n Cannot find \"${${path}}\". Please, fill \"${config}\" with a correct value") - ENDIF(EXISTS ${${path}}) - - IF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") - MESSAGE (FATAL_ERROR "${${path}} MUST BE an absolute path") - ENDIF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}") -ENDFOREACH (path ${REQUIRED_PATHS}) -###################################################################################### - -###################################################################################### -### 6) Where must cmake go now ? -###################################################################################### - -SUBDIRS(flowshop src doc test) - -###################################################################################### - diff --git a/contribution/branches/MOLS/CTestConfig.cmake b/contribution/branches/MOLS/CTestConfig.cmake deleted file mode 100644 index 465d208d6..000000000 --- a/contribution/branches/MOLS/CTestConfig.cmake +++ /dev/null @@ -1,7 +0,0 @@ -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) diff --git a/contribution/branches/MOLS/doc/CMakeLists.txt b/contribution/branches/MOLS/doc/CMakeLists.txt deleted file mode 100644 index f87f5c14c..000000000 --- a/contribution/branches/MOLS/doc/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -# TODO \ No newline at end of file diff --git a/contribution/branches/MOLS/flowshop/CMakeLists.txt b/contribution/branches/MOLS/flowshop/CMakeLists.txt deleted file mode 100755 index 85a6748ec..000000000 --- a/contribution/branches/MOLS/flowshop/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -###################################################################################### -### 1) Where must cmake go now ? -###################################################################################### - -ADD_CUSTOM_TARGET(install DEPENDS ${SOURCES_DIR}/flowshop/benchs) -ADD_CUSTOM_COMMAND( - TARGET install - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS -E copy_directory - ${SOURCES_DIR}/flowshop/benchs - ${INSTALL_DIR}/flowshop/benchs) - -SUBDIRS(src) - -###################################################################################### - diff --git a/contribution/branches/MOLS/flowshop/benchs/020_05_01.txt b/contribution/branches/MOLS/flowshop/benchs/020_05_01.txt deleted file mode 100755 index 2c2f78d86..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/020_05_01.txt +++ /dev/null @@ -1,63 +0,0 @@ -20 -5 -873654221 -0 -468 -54 79 16 66 58 -1 -325 -83 3 89 58 56 -2 -923 -15 11 49 31 20 -3 -513 -71 99 15 68 85 -4 -1070 -77 56 89 78 53 -5 -690 -36 70 45 91 35 -6 -602 -53 99 60 13 53 -7 -289 -38 60 23 59 41 -8 -873 -27 5 57 49 69 -9 -342 -87 56 64 85 13 -10 -764 -76 3 7 85 86 -11 -268 -91 61 1 9 72 -12 -1158 -14 73 63 39 8 -13 -646 -29 75 41 41 49 -14 -1111 -12 47 63 56 47 -15 -965 -77 14 47 40 87 -16 -703 -32 21 26 54 58 -17 -1205 -87 86 75 77 18 -18 -334 -68 5 77 51 68 -19 -1111 -94 77 40 31 28 diff --git a/contribution/branches/MOLS/flowshop/benchs/020_05_02.txt b/contribution/branches/MOLS/flowshop/benchs/020_05_02.txt deleted file mode 100755 index c82c2d033..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/020_05_02.txt +++ /dev/null @@ -1,63 +0,0 @@ -20 -5 -379008056 -0 -517 -26 59 78 88 69 -1 -461 -38 62 90 54 30 -2 -832 -27 44 64 47 61 -3 -653 -88 10 49 83 35 -4 -933 -95 23 47 84 53 -5 -811 -55 64 20 9 98 -6 -966 -54 47 61 30 94 -7 -448 -63 68 93 11 33 -8 -577 -23 54 36 92 77 -9 -1122 -45 9 47 63 31 -10 -666 -86 30 70 62 54 -11 -1189 -43 31 54 75 71 -12 -470 -43 92 87 48 78 -13 -475 -40 7 13 23 9 -14 -462 -37 14 40 85 79 -15 -866 -54 95 34 23 51 -16 -392 -35 76 55 4 76 -17 -310 -59 82 13 31 56 -18 -719 -43 91 11 13 80 -19 -1221 -50 37 5 98 72 diff --git a/contribution/branches/MOLS/flowshop/benchs/020_10_01.txt b/contribution/branches/MOLS/flowshop/benchs/020_10_01.txt deleted file mode 100755 index 96bca095d..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/020_10_01.txt +++ /dev/null @@ -1,63 +0,0 @@ -20 -10 -587595453 -0 -1250 -74 28 89 60 54 92 9 4 25 15 -1 -1371 -21 3 52 88 66 11 8 18 15 84 -2 -637 -58 27 56 26 12 54 88 25 91 8 -3 -616 -4 61 13 58 57 97 72 28 49 30 -4 -917 -21 34 7 76 70 57 27 95 56 95 -5 -937 -28 76 32 98 82 53 22 51 10 79 -6 -1435 -58 64 32 29 99 65 50 84 62 9 -7 -1197 -83 87 98 47 84 77 2 18 70 91 -8 -1301 -31 54 46 79 16 51 49 6 76 76 -9 -637 -61 98 60 26 41 36 82 90 99 26 -10 -749 -94 76 23 19 23 53 93 69 58 42 -11 -1223 -44 41 87 48 11 19 96 61 83 66 -12 -887 -97 70 7 95 68 54 43 57 84 70 -13 -1316 -94 43 36 78 58 86 13 5 64 91 -14 -1330 -66 42 26 77 30 40 60 75 74 67 -15 -1380 -6 79 85 90 5 56 11 4 14 3 -16 -767 -37 88 7 24 5 79 37 38 18 98 -17 -574 -22 15 34 10 39 74 91 28 48 4 -18 -1398 -99 49 36 85 58 24 84 4 96 71 -19 -1179 -83 72 48 55 31 3 67 80 86 62 diff --git a/contribution/branches/MOLS/flowshop/benchs/020_10_02.txt b/contribution/branches/MOLS/flowshop/benchs/020_10_02.txt deleted file mode 100755 index bf23361f5..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/020_10_02.txt +++ /dev/null @@ -1,63 +0,0 @@ -20 -10 -1401007982 -0 -1279 -80 59 59 31 30 53 93 90 65 64 -1 -1481 -13 83 70 64 88 19 79 92 97 38 -2 -1157 -64 85 76 11 14 99 88 35 27 44 -3 -1391 -77 85 10 9 22 62 77 13 25 46 -4 -763 -17 70 65 32 93 88 94 75 61 66 -5 -1456 -78 35 19 58 48 93 39 55 24 31 -6 -900 -82 2 77 98 10 34 74 80 97 48 -7 -1047 -4 76 86 95 7 72 46 67 61 27 -8 -1355 -72 46 21 25 14 42 17 3 75 82 -9 -1262 -93 72 75 4 91 65 30 93 92 51 -10 -1329 -68 69 96 45 5 39 62 54 73 90 -11 -562 -25 46 3 60 43 79 77 67 21 63 -12 -684 -67 3 50 87 30 9 43 25 29 85 -13 -567 -80 57 57 31 79 26 98 77 3 36 -14 -765 -43 71 66 1 39 72 48 38 96 69 -15 -808 -93 77 84 96 34 29 14 98 51 67 -16 -999 -21 33 98 22 77 36 45 96 26 81 -17 -548 -33 49 55 95 81 48 25 20 44 18 -18 -577 -14 59 70 73 11 57 98 15 56 81 -19 -704 -30 82 32 77 10 95 30 36 31 72 diff --git a/contribution/branches/MOLS/flowshop/benchs/020_20_01.txt b/contribution/branches/MOLS/flowshop/benchs/020_20_01.txt deleted file mode 100755 index 2ef8f0bee..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/020_20_01.txt +++ /dev/null @@ -1,63 +0,0 @@ -20 -20 -479340445 -0 -1696 -50 78 36 85 9 75 46 73 71 7 49 3 60 12 75 31 70 20 88 9 -1 -1273 -90 56 43 88 92 64 94 3 49 40 49 53 88 47 19 61 78 78 30 41 -2 -1546 -39 9 10 60 98 96 6 56 36 33 15 59 15 46 60 47 41 38 34 22 -3 -1882 -34 43 19 98 44 95 19 73 87 64 18 7 26 17 87 32 9 26 33 34 -4 -1117 -66 84 55 4 51 22 20 80 8 5 65 65 11 43 27 34 47 64 21 83 -5 -1181 -81 73 48 99 8 41 51 82 25 25 55 58 16 16 48 69 94 62 7 55 -6 -1416 -27 66 85 53 31 26 85 36 76 89 1 24 55 91 72 32 26 11 94 3 -7 -1635 -48 38 70 21 15 33 92 98 73 95 79 55 59 94 88 1 65 38 10 8 -8 -1723 -46 83 82 33 47 68 43 90 80 58 10 26 81 73 48 1 17 68 73 75 -9 -1932 -68 57 39 53 31 9 75 46 6 83 37 40 53 89 59 80 42 37 85 30 -10 -1219 -48 97 91 63 80 81 70 10 6 28 77 89 92 12 74 19 59 74 82 57 -11 -1521 -92 52 82 18 83 28 70 46 33 35 80 94 23 58 86 57 80 9 62 65 -12 -1322 -78 77 85 45 20 61 36 65 79 74 79 51 55 25 49 98 7 65 99 89 -13 -1057 -84 13 17 29 84 69 31 83 10 5 84 74 79 24 94 37 75 16 67 60 -14 -1922 -93 12 6 43 69 37 76 75 93 6 93 54 13 55 15 31 63 38 61 90 -15 -1130 -39 2 54 41 49 57 63 47 65 9 21 86 89 1 95 51 96 85 10 84 -16 -1411 -43 65 87 80 93 36 89 61 26 3 85 22 2 67 41 66 7 50 4 74 -17 -1840 -1 93 85 4 39 80 46 28 73 2 64 83 17 3 94 38 10 62 70 17 -18 -1741 -65 39 4 31 13 96 25 59 42 35 46 19 97 1 15 62 47 39 31 2 -19 -1377 -87 1 72 19 88 74 88 22 18 41 35 44 41 71 71 72 38 97 49 19 diff --git a/contribution/branches/MOLS/flowshop/benchs/050_05_01.txt b/contribution/branches/MOLS/flowshop/benchs/050_05_01.txt deleted file mode 100755 index 5f4b46f37..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/050_05_01.txt +++ /dev/null @@ -1,153 +0,0 @@ -50 -5 -1328042058 -0 -1290 -75 26 48 26 77 -1 -2352 -87 37 4 67 94 -2 -362 -13 25 92 4 9 -3 -305 -11 95 92 14 57 -4 -262 -41 49 72 93 29 -5 -1250 -43 12 45 54 79 -6 -2170 -93 59 5 21 55 -7 -1601 -69 17 98 20 73 -8 -2039 -80 46 93 6 65 -9 -1628 -13 20 17 18 86 -10 -483 -24 52 79 75 25 -11 -285 -72 44 11 25 39 -12 -1092 -38 92 16 16 76 -13 -936 -81 75 89 77 24 -14 -2349 -83 95 81 28 38 -15 -473 -88 33 92 24 5 -16 -2325 -26 10 45 15 91 -17 -747 -6 45 61 77 29 -18 -970 -89 2 39 36 22 -19 -434 -67 62 28 16 27 -20 -1258 -70 62 94 32 39 -21 -2405 -30 82 87 46 31 -22 -862 -89 29 23 21 46 -23 -298 -30 29 1 81 18 -24 -2014 -68 94 55 28 93 -25 -2608 -21 20 91 70 58 -26 -1737 -78 42 67 89 85 -27 -2214 -46 80 91 54 58 -28 -1910 -99 94 4 96 97 -29 -2245 -10 35 60 62 10 -30 -2211 -17 8 38 46 79 -31 -547 -23 41 25 60 93 -32 -2237 -83 65 90 19 2 -33 -1327 -47 4 93 97 87 -34 -700 -86 71 13 13 17 -35 -1011 -18 30 65 7 18 -36 -2001 -67 14 25 44 10 -37 -1230 -46 32 34 7 50 -38 -1020 -4 50 47 73 8 -39 -1918 -14 30 98 15 26 -40 -1001 -4 27 91 66 14 -41 -1383 -20 98 11 70 21 -42 -1229 -88 39 46 97 15 -43 -2594 -50 84 50 33 10 -44 -403 -84 65 77 97 85 -45 -1515 -58 12 5 64 46 -46 -431 -93 58 14 73 42 -47 -1971 -76 45 47 28 18 -48 -939 -50 49 80 4 36 -49 -2028 -30 15 45 87 2 diff --git a/contribution/branches/MOLS/flowshop/benchs/050_10_01.txt b/contribution/branches/MOLS/flowshop/benchs/050_10_01.txt deleted file mode 100755 index 17f3cb117..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/050_10_01.txt +++ /dev/null @@ -1,153 +0,0 @@ -50 -10 -1958948863 -0 -793 -46 61 3 51 37 79 83 22 27 24 -1 -2280 -52 87 1 24 16 93 87 29 92 47 -2 -939 -79 51 58 21 42 68 38 99 75 39 -3 -2591 -45 25 85 57 47 75 38 25 94 66 -4 -1540 -97 73 33 69 94 37 86 98 18 41 -5 -2386 -10 93 71 51 14 44 67 55 41 46 -6 -812 -44 28 58 50 94 34 23 80 37 24 -7 -2524 -24 90 56 51 34 39 19 82 58 23 -8 -1370 -85 94 64 21 72 76 97 33 56 68 -9 -1319 -75 59 43 19 36 62 78 68 20 50 -10 -2388 -66 64 48 63 88 74 66 47 2 93 -11 -961 -49 2 69 91 51 28 67 74 39 22 -12 -2831 -95 16 96 11 41 78 7 26 91 64 -13 -2790 -61 35 35 6 71 43 23 61 81 81 -14 -2076 -19 53 82 31 94 98 67 95 33 94 -15 -2519 -47 40 53 63 99 83 8 55 14 97 -16 -1981 -84 81 64 36 11 91 77 11 88 54 -17 -695 -13 26 11 39 97 27 71 42 22 82 -18 -2133 -11 85 61 57 44 6 85 72 36 11 -19 -1871 -19 4 36 47 77 82 29 14 65 91 -20 -1495 -98 4 53 56 69 60 49 8 79 23 -21 -754 -2 10 87 65 91 44 3 98 23 32 -22 -783 -85 63 88 59 38 43 94 90 66 26 -23 -984 -44 96 10 4 25 76 76 36 5 22 -24 -2004 -7 55 32 10 87 99 95 75 15 12 -25 -2269 -73 71 38 12 7 66 48 69 51 23 -26 -1771 -19 66 25 62 66 11 4 26 2 34 -27 -2030 -69 94 24 43 54 35 37 24 81 87 -28 -2603 -12 7 90 49 86 52 82 55 12 59 -29 -2150 -73 15 7 54 49 8 57 98 40 2 -30 -2157 -85 11 11 87 3 40 61 86 59 38 -31 -2187 -23 99 49 29 48 62 6 30 32 84 -32 -937 -53 37 2 2 44 25 97 92 16 62 -33 -728 -16 50 76 18 93 24 5 94 87 10 -34 -510 -88 56 17 75 37 30 27 66 78 11 -35 -2786 -8 69 32 39 82 1 95 47 41 93 -36 -2134 -26 22 39 77 31 73 46 3 43 57 -37 -1046 -42 56 9 69 59 27 92 41 94 81 -38 -2849 -58 67 83 15 78 16 46 41 1 10 -39 -1956 -63 63 69 78 33 91 52 47 93 40 -40 -2456 -7 96 67 68 36 33 8 89 22 62 -41 -1105 -2 74 28 37 3 11 11 28 93 49 -42 -1560 -44 4 88 22 58 99 7 39 62 90 -43 -1745 -38 42 23 41 10 2 54 80 53 34 -44 -2216 -24 40 91 92 98 60 72 47 30 11 -45 -1157 -76 30 71 67 6 90 57 57 34 81 -46 -1317 -85 93 3 24 44 36 85 74 27 51 -47 -2372 -61 36 26 87 62 62 22 38 30 21 -48 -777 -32 25 41 91 24 15 87 59 54 39 -49 -972 -90 87 96 31 94 3 65 5 77 27 diff --git a/contribution/branches/MOLS/flowshop/benchs/050_20_01.txt b/contribution/branches/MOLS/flowshop/benchs/050_20_01.txt deleted file mode 100755 index 23ccddab3..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/050_20_01.txt +++ /dev/null @@ -1,153 +0,0 @@ -50 -20 -1539989115 -0 -2509 -52 63 82 16 63 94 79 22 80 96 53 54 71 27 95 3 92 80 61 74 -1 -2039 -95 99 21 26 55 34 21 6 13 3 19 67 90 93 53 80 62 38 86 38 -2 -3096 -42 69 79 46 59 89 93 24 64 50 99 25 59 49 54 78 11 55 16 4 -3 -2950 -75 70 95 66 35 62 32 55 77 57 62 77 82 63 22 32 83 34 42 31 -4 -1249 -44 53 46 76 21 47 8 48 17 66 88 38 22 65 84 53 87 85 14 62 -5 -2481 -57 21 23 31 59 66 45 57 78 84 93 98 88 34 54 43 66 44 92 39 -6 -3193 -89 10 40 36 78 76 37 78 82 98 34 96 35 10 2 85 98 47 67 97 -7 -3253 -53 31 95 8 25 15 78 5 4 55 72 20 49 56 80 19 42 66 77 57 -8 -2123 -84 80 87 37 30 18 26 50 72 70 42 15 78 51 84 48 23 19 46 9 -9 -2390 -62 18 37 21 38 54 98 83 93 32 65 36 69 97 66 49 45 66 41 54 -10 -1764 -91 5 24 3 78 24 17 70 68 31 39 65 76 52 25 66 52 61 78 13 -11 -2940 -14 18 24 76 79 55 25 21 25 64 79 97 2 46 16 22 6 60 3 47 -12 -1635 -95 17 65 67 58 96 21 71 67 11 9 27 14 16 79 37 3 98 72 6 -13 -3171 -89 71 62 5 44 10 28 58 80 9 26 25 3 50 90 51 64 82 95 70 -14 -2670 -4 90 19 47 38 12 68 36 43 32 72 61 22 96 51 82 55 79 53 19 -15 -2932 -95 93 67 72 76 96 24 50 93 58 29 24 26 85 29 59 97 71 59 97 -16 -2054 -2 14 66 66 70 53 62 31 21 98 36 97 44 61 29 88 83 28 34 41 -17 -3238 -97 49 6 56 72 92 89 86 33 95 48 61 1 76 90 77 42 74 66 1 -18 -2466 -68 52 65 95 85 77 60 29 14 25 57 75 4 30 83 19 81 27 42 57 -19 -2384 -20 7 59 49 8 6 64 30 30 4 95 92 16 90 83 32 92 33 63 60 -20 -3473 -33 78 2 47 10 91 38 93 59 45 93 73 55 42 19 52 68 13 27 62 -21 -3290 -51 57 67 26 84 14 90 49 83 60 79 21 43 88 95 9 46 9 92 14 -22 -2086 -98 41 82 81 42 41 87 83 85 87 88 29 87 37 87 96 56 12 8 90 -23 -2560 -8 75 90 56 67 30 1 89 85 31 77 3 35 43 12 23 88 51 65 76 -24 -3253 -85 98 30 76 20 85 99 44 70 1 94 96 76 88 34 64 50 16 34 12 -25 -3205 -86 93 63 66 24 17 34 38 35 96 39 51 98 91 23 22 13 49 6 89 -26 -2534 -73 33 5 36 75 23 9 62 2 22 74 26 78 14 44 37 23 83 42 37 -27 -2039 -4 75 93 53 23 60 22 45 76 95 46 44 81 63 30 3 13 48 39 35 -28 -2273 -40 68 53 26 33 76 74 22 46 73 17 56 48 65 82 52 49 13 2 91 -29 -2062 -98 33 85 52 60 39 14 85 72 77 30 31 25 74 83 44 18 78 7 69 -30 -1909 -12 60 81 29 20 85 14 39 69 30 62 64 81 71 42 11 50 96 85 55 -31 -2432 -59 82 73 36 75 10 84 98 46 88 77 38 27 8 56 21 94 77 32 48 -32 -2624 -44 24 34 68 83 65 75 56 3 14 43 44 84 39 89 85 71 68 14 56 -33 -3325 -46 99 74 21 26 15 37 68 57 22 98 46 59 95 38 6 64 88 74 84 -34 -3427 -2 4 13 71 92 55 32 84 71 93 48 66 98 82 96 40 31 77 59 22 -35 -1318 -41 97 78 61 29 41 29 77 77 48 14 31 14 17 10 68 21 76 95 51 -36 -1539 -28 24 35 71 39 28 32 67 33 10 45 48 32 38 3 30 2 73 48 43 -37 -3223 -83 50 20 69 14 93 89 53 49 7 25 27 95 69 53 35 63 92 37 50 -38 -1703 -28 55 16 28 74 88 12 46 59 14 98 82 30 17 97 58 58 72 59 62 -39 -1051 -21 91 48 86 66 27 47 24 82 91 30 51 13 24 11 31 36 87 4 61 -40 -1512 -80 46 12 27 86 77 19 52 59 5 90 90 68 66 65 11 64 66 42 10 -41 -2589 -71 58 11 41 10 81 97 96 70 43 92 63 19 75 47 11 52 98 93 87 -42 -3248 -4 17 80 86 27 19 7 2 76 30 35 85 57 52 76 6 8 40 32 99 -43 -2047 -60 47 9 55 8 76 12 88 10 79 13 36 65 59 22 59 94 31 30 40 -44 -3333 -34 82 24 17 7 55 43 33 65 39 75 69 13 4 17 64 51 75 16 91 -45 -1760 -55 6 76 62 97 67 89 27 19 34 55 67 63 73 14 65 36 45 95 64 -46 -2333 -53 15 32 96 84 65 14 49 77 77 80 81 26 56 11 23 82 98 58 62 -47 -2400 -96 91 35 59 56 8 33 78 86 81 67 18 96 19 69 80 30 90 12 53 -48 -2142 -37 74 66 53 61 18 56 82 21 11 3 81 53 39 91 75 17 4 95 33 -49 -1231 -37 42 48 93 9 56 57 65 75 10 93 72 94 51 53 63 21 23 21 16 diff --git a/contribution/branches/MOLS/flowshop/benchs/100_05_01.txt b/contribution/branches/MOLS/flowshop/benchs/100_05_01.txt deleted file mode 100755 index f0d8d9b38..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/100_05_01.txt +++ /dev/null @@ -1,303 +0,0 @@ -100 -5 -896678084 -0 -1682 -73 34 8 62 10 -1 -4503 -84 46 37 86 60 -2 -1249 -57 97 38 46 34 -3 -4984 -52 88 30 3 96 -4 -2923 -66 52 20 22 79 -5 -2401 -67 49 68 33 62 -6 -1978 -33 88 4 90 6 -7 -5318 -62 15 78 94 15 -8 -4769 -65 55 41 98 94 -9 -2093 -7 6 2 9 39 -10 -2438 -6 77 62 84 85 -11 -3143 -31 49 38 69 17 -12 -698 -42 46 95 26 55 -13 -621 -82 14 82 22 59 -14 -2463 -48 35 96 49 48 -15 -3865 -45 40 56 90 11 -16 -1563 -79 1 61 81 63 -17 -1461 -86 70 34 12 98 -18 -2285 -10 46 1 54 33 -19 -4381 -47 28 9 53 49 -20 -1057 -67 73 57 18 41 -21 -3190 -86 24 80 56 82 -22 -4493 -64 44 58 43 12 -23 -4604 -38 55 7 50 61 -24 -1592 -13 94 56 82 94 -25 -4645 -69 52 31 18 80 -26 -2729 -4 40 92 89 84 -27 -1925 -21 76 84 49 18 -28 -3843 -25 92 25 20 68 -29 -4188 -74 22 20 76 6 -30 -2635 -11 46 65 90 98 -31 -3773 -85 19 36 64 47 -32 -269 -50 18 67 89 6 -33 -307 -21 50 96 16 55 -34 -907 -93 31 35 3 73 -35 -288 -98 41 59 12 70 -36 -5211 -91 51 76 45 56 -37 -331 -26 73 66 67 46 -38 -1499 -4 22 83 97 50 -39 -1119 -28 21 37 80 90 -40 -4399 -61 79 33 97 89 -41 -1306 -8 93 2 92 88 -42 -1149 -55 98 95 56 50 -43 -3919 -68 89 20 50 99 -44 -3875 -30 44 84 95 41 -45 -3485 -26 64 43 25 36 -46 -2800 -81 93 4 52 16 -47 -1893 -95 66 44 21 84 -48 -2341 -49 14 74 47 98 -49 -874 -6 10 92 4 44 -50 -3355 -82 36 55 67 42 -51 -345 -71 36 98 62 43 -52 -1530 -61 69 8 63 62 -53 -3516 -84 79 30 25 49 -54 -3194 -29 90 18 3 22 -55 -985 -44 51 28 55 16 -56 -1638 -83 81 54 87 14 -57 -2970 -12 16 68 84 55 -58 -4265 -54 28 42 28 45 -59 -3494 -19 26 28 73 20 -60 -5134 -52 97 12 8 35 -61 -3520 -59 33 57 38 89 -62 -3570 -74 77 81 80 7 -63 -1335 -42 68 19 53 64 -64 -313 -60 28 16 70 36 -65 -1031 -43 46 88 9 5 -66 -4360 -80 16 75 87 63 -67 -2814 -34 96 11 33 8 -68 -571 -74 59 57 11 76 -69 -538 -46 56 99 65 95 -70 -2856 -40 4 4 92 40 -71 -747 -27 52 51 34 51 -72 -3321 -79 89 26 64 98 -73 -612 -1 84 6 96 77 -74 -4517 -98 42 16 67 92 -75 -1532 -44 37 71 54 35 -76 -2848 -8 90 52 26 3 -77 -4701 -55 51 96 32 56 -78 -263 -55 84 89 10 1 -79 -5340 -27 16 79 91 17 -80 -3979 -69 39 91 90 70 -81 -4804 -79 16 57 31 45 -82 -1574 -97 37 2 7 87 -83 -3644 -39 19 33 6 37 -84 -1512 -54 15 42 77 70 -85 -4445 -75 68 1 91 84 -86 -3253 -88 7 40 42 69 -87 -5334 -87 58 76 5 7 -88 -2338 -97 47 85 46 5 -89 -1071 -4 27 99 54 97 -90 -2398 -79 82 65 56 47 -91 -1675 -59 72 98 1 12 -92 -4974 -7 1 78 24 54 -93 -1785 -89 7 61 62 84 -94 -3391 -61 22 83 47 49 -95 -4517 -42 40 30 63 89 -96 -2909 -79 59 14 39 86 -97 -2733 -85 16 62 63 37 -98 -853 -66 7 41 95 52 -99 -4261 -99 72 91 45 85 diff --git a/contribution/branches/MOLS/flowshop/benchs/100_10_01.txt b/contribution/branches/MOLS/flowshop/benchs/100_10_01.txt deleted file mode 100755 index 480d6be62..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/100_10_01.txt +++ /dev/null @@ -1,303 +0,0 @@ -100 -10 -1539989115 -0 -3490 -52 82 63 79 80 53 71 95 92 61 -1 -2540 -95 21 55 21 13 19 90 53 62 86 -2 -4675 -42 79 59 93 64 99 59 54 11 16 -3 -4381 -75 95 35 32 77 62 82 22 83 42 -4 -945 -44 46 21 8 17 88 22 84 87 14 -5 -3435 -57 23 59 45 78 93 88 54 66 92 -6 -4873 -89 40 78 37 82 34 35 2 98 67 -7 -4993 -53 95 25 78 4 72 49 80 42 77 -8 -2710 -84 87 30 26 72 42 78 84 23 46 -9 -3251 -62 37 38 98 93 65 69 66 45 41 -10 -1985 -91 24 78 17 68 39 76 25 52 78 -11 -4361 -14 24 79 25 25 79 2 16 6 3 -12 -1726 -95 65 58 21 67 9 14 79 3 72 -13 -4828 -89 62 44 28 80 26 3 90 64 95 -14 -3816 -4 19 38 68 43 72 22 51 55 53 -15 -4345 -95 67 76 24 93 29 26 29 97 59 -16 -2572 -2 66 70 62 21 36 44 29 83 34 -17 -4963 -97 6 72 89 33 48 1 90 42 66 -18 -3403 -68 65 85 60 14 57 4 83 81 42 -19 -3238 -20 59 8 64 30 95 16 83 92 63 -20 -5437 -33 2 10 38 59 93 55 19 68 27 -21 -5068 -51 67 84 90 83 79 43 95 46 92 -22 -2635 -98 82 42 87 85 88 87 87 56 8 -23 -3593 -8 90 67 1 85 77 35 12 88 65 -24 -4993 -85 30 20 99 70 94 76 34 50 34 -25 -4897 -86 63 24 34 35 39 98 23 13 6 -26 -3542 -73 5 75 9 2 74 78 44 23 42 -27 -2541 -4 93 23 22 76 46 81 30 13 39 -28 -3014 -40 53 33 74 46 17 48 82 49 2 -29 -2587 -98 85 60 14 72 30 25 83 18 7 -30 -2278 -12 81 20 14 69 62 81 42 50 85 -31 -3336 -59 73 75 84 46 77 27 56 94 32 -32 -3723 -44 34 83 75 3 43 84 89 71 14 -33 -5138 -46 74 26 37 57 98 59 38 64 74 -34 -5345 -2 13 92 32 71 48 98 96 31 59 -35 -1084 -41 78 29 29 77 14 14 10 21 95 -36 -1531 -28 35 39 32 33 45 32 3 2 48 -37 -4932 -83 20 14 89 49 25 95 53 63 37 -38 -1863 -28 16 74 12 59 98 30 97 58 59 -39 -545 -21 48 66 47 82 30 13 11 36 4 -40 -1477 -80 12 86 19 59 90 68 65 64 42 -41 -3653 -71 11 10 97 70 92 19 47 52 93 -42 -4983 -4 80 27 7 76 35 57 76 8 32 -43 -2558 -60 9 8 12 10 13 65 22 94 30 -44 -5156 -34 24 7 43 65 75 13 17 51 16 -45 -1977 -55 76 97 89 19 55 63 14 36 95 -46 -3136 -53 32 84 14 77 80 26 11 82 58 -47 -3271 -96 35 56 33 86 67 96 69 30 12 -48 -2748 -37 66 61 56 21 3 53 91 17 95 -49 -909 -37 48 9 57 75 93 94 53 21 21 -50 -4366 -63 16 94 22 96 54 27 3 80 74 -51 -4943 -99 26 34 6 3 67 93 80 38 38 -52 -4596 -69 46 89 24 50 25 49 78 55 4 -53 -1793 -70 66 62 55 57 77 63 32 34 31 -54 -4596 -53 76 47 48 66 38 65 53 85 62 -55 -3717 -21 31 66 57 84 98 34 43 44 39 -56 -4624 -10 36 76 78 98 96 10 85 47 97 -57 -5212 -31 8 15 5 55 20 56 19 66 57 -58 -5604 -80 37 18 50 70 15 51 48 19 9 -59 -2110 -18 21 54 83 32 36 97 49 66 54 -60 -2568 -5 3 24 70 31 65 52 66 61 13 -61 -5330 -18 76 55 21 64 97 46 22 60 47 -62 -676 -17 67 96 71 11 27 16 37 98 6 -63 -1603 -71 5 10 58 9 25 50 51 82 70 -64 -1085 -90 47 12 36 32 61 96 82 79 19 -65 -5128 -93 72 96 50 58 24 85 59 71 97 -66 -938 -14 66 53 31 98 97 61 88 28 41 -67 -4778 -49 56 92 86 95 61 76 77 74 1 -68 -1986 -52 95 77 29 25 75 30 19 27 57 -69 -2115 -7 49 6 30 4 92 90 32 33 60 -70 -616 -78 47 91 93 45 73 42 52 13 62 -71 -534 -57 26 14 49 60 21 88 9 9 14 -72 -1231 -41 81 41 83 87 29 37 96 12 90 -73 -3376 -75 56 30 89 31 3 43 23 51 76 -74 -2922 -98 76 85 44 1 96 88 64 16 12 -75 -2152 -93 66 17 38 96 51 91 22 49 89 -76 -1813 -33 36 23 62 22 26 14 37 83 37 -77 -3561 -75 53 60 45 95 44 63 3 48 35 -78 -4603 -68 26 76 22 73 56 65 52 13 91 -79 -2813 -33 52 39 85 77 31 74 44 78 69 -80 -528 -60 29 85 39 30 64 71 11 96 55 -81 -1112 -82 36 10 98 88 38 8 21 77 48 -82 -4387 -24 68 65 56 14 44 39 85 68 56 -83 -4573 -99 21 15 68 22 46 95 6 88 84 -84 -5585 -4 71 55 84 93 66 82 40 77 22 -85 -2680 -97 61 41 77 48 31 17 68 76 51 -86 -3262 -24 71 28 67 10 48 38 30 73 43 -87 -3913 -50 69 93 53 7 27 69 35 92 50 -88 -1749 -55 28 88 46 14 82 17 58 72 62 -89 -2369 -91 86 27 24 91 51 24 31 87 61 -90 -888 -46 27 77 52 5 90 66 11 66 10 -91 -3107 -58 41 81 96 43 63 75 11 98 87 -92 -4964 -17 86 19 2 30 85 52 6 40 99 -93 -5249 -47 55 76 88 79 36 59 59 31 40 -94 -5632 -82 17 55 33 39 69 4 64 75 91 -95 -893 -6 62 67 27 34 67 73 65 45 64 -96 -3432 -15 96 65 49 77 81 56 23 98 62 -97 -5507 -91 59 8 78 81 18 19 80 90 53 -98 -2007 -74 53 18 82 11 81 39 75 4 33 -99 -5336 -42 93 56 65 10 72 51 63 23 16 diff --git a/contribution/branches/MOLS/flowshop/benchs/100_20_01.txt b/contribution/branches/MOLS/flowshop/benchs/100_20_01.txt deleted file mode 100755 index f063c0f7c..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/100_20_01.txt +++ /dev/null @@ -1,303 +0,0 @@ -100 -20 -450926852 -0 -1420 -12 27 24 42 5 27 51 48 42 31 48 51 8 1 1 28 4 44 6 57 -1 -1890 -72 97 57 16 42 69 9 44 18 49 92 84 37 77 59 81 40 6 49 88 -2 -5212 -29 53 68 44 47 38 22 73 31 78 43 28 33 92 53 96 5 18 84 88 -3 -2835 -16 16 58 75 47 66 15 95 18 23 35 63 4 57 22 99 37 51 72 43 -4 -4466 -22 36 76 32 47 21 84 72 55 37 7 86 8 46 10 79 80 77 39 25 -5 -5004 -61 28 70 66 78 65 38 12 82 34 51 99 38 75 48 97 46 47 51 81 -6 -1562 -69 50 72 31 94 3 71 30 64 43 85 27 97 2 94 15 14 27 77 3 -7 -1927 -71 41 56 6 18 7 11 22 36 7 66 24 75 14 46 6 81 17 59 3 -8 -2807 -86 42 56 6 14 10 45 25 48 69 87 36 76 14 57 77 16 42 97 78 -9 -2057 -16 86 55 52 97 11 48 92 74 97 71 83 93 79 55 98 10 84 5 97 -10 -5762 -54 2 89 7 54 41 29 5 17 15 16 24 69 64 66 5 79 3 83 74 -11 -5182 -53 45 23 92 73 64 31 44 60 38 40 54 10 8 69 51 35 69 51 71 -12 -5558 -64 86 42 45 94 9 14 90 18 80 22 34 25 73 7 51 41 3 9 50 -13 -2591 -96 43 26 70 17 15 56 35 88 78 12 49 40 15 13 60 83 6 9 70 -14 -4353 -79 92 87 72 97 71 59 24 37 89 2 43 88 71 64 17 13 94 59 23 -15 -4442 -68 73 17 48 7 86 35 64 29 95 90 5 90 6 83 98 93 58 30 43 -16 -2375 -98 99 38 86 94 2 7 82 19 1 63 70 57 54 39 46 55 65 86 51 -17 -3311 -87 84 24 63 94 26 20 7 51 18 52 56 39 59 46 87 48 36 49 97 -18 -2369 -40 83 82 61 68 57 48 34 20 11 15 71 29 49 59 44 35 28 46 57 -19 -4728 -74 61 55 92 4 78 88 91 7 11 6 12 97 38 36 18 75 68 13 77 -20 -5437 -22 7 47 73 60 84 54 59 43 92 18 30 51 21 69 71 66 73 45 90 -21 -3616 -23 8 7 49 70 20 30 5 77 99 87 77 97 60 47 93 82 81 51 58 -22 -4472 -47 62 99 53 68 21 81 47 95 81 66 55 5 8 83 97 3 12 68 75 -23 -2738 -55 3 89 20 22 3 2 96 92 79 7 92 75 35 25 44 79 89 82 4 -24 -1604 -21 21 20 97 17 39 1 7 27 53 43 78 91 81 12 18 78 53 6 12 -25 -3121 -90 50 65 58 59 64 78 53 70 47 27 79 80 96 28 59 48 14 99 2 -26 -2296 -68 71 3 59 98 51 8 60 91 48 78 52 81 61 30 9 99 88 12 4 -27 -2107 -14 95 45 29 55 83 8 77 74 32 80 19 60 89 49 45 91 78 8 28 -28 -5637 -42 70 89 98 76 12 71 61 62 58 73 16 97 58 81 78 29 63 36 54 -29 -1686 -41 60 96 61 3 16 60 14 80 33 86 21 14 32 56 67 87 81 24 39 -30 -2186 -40 4 16 83 21 3 41 88 85 65 82 37 2 59 96 65 27 29 82 30 -31 -5311 -63 58 42 8 10 1 39 97 8 86 33 85 55 89 89 50 2 15 73 71 -32 -3210 -23 16 70 83 11 88 8 92 39 60 92 56 97 99 73 87 48 81 66 89 -33 -1223 -75 30 69 73 44 80 96 65 85 47 8 29 60 7 52 29 33 84 69 33 -34 -2856 -4 80 77 2 29 77 3 73 83 89 87 56 8 79 12 80 92 36 71 85 -35 -4618 -31 71 46 56 43 2 79 19 76 40 64 23 30 38 98 14 15 8 70 2 -36 -1981 -87 59 20 7 60 14 48 99 31 72 7 19 87 1 12 70 55 60 61 69 -37 -2755 -25 75 71 15 14 60 23 92 12 54 26 52 42 67 40 10 24 24 42 20 -38 -1976 -47 52 91 55 46 45 38 19 69 29 79 39 16 63 70 30 59 57 77 64 -39 -1153 -70 25 8 3 3 39 85 66 26 57 49 4 56 42 35 19 41 87 10 94 -40 -5686 -1 86 34 73 60 32 32 25 54 93 71 46 86 3 58 51 49 61 2 3 -41 -4817 -49 48 72 13 72 97 69 79 91 65 72 59 4 29 95 4 88 57 6 41 -42 -1305 -59 53 40 47 90 98 56 36 61 39 69 22 30 23 41 23 67 85 24 37 -43 -4539 -11 54 82 76 1 65 99 10 27 8 30 76 15 21 71 9 49 45 97 36 -44 -4894 -93 98 60 15 42 86 51 23 88 87 28 34 24 25 90 62 81 69 15 74 -45 -2853 -38 36 59 43 74 6 59 37 53 57 46 63 23 48 3 30 89 15 91 53 -46 -1815 -5 9 59 44 54 14 47 76 47 5 75 32 57 33 68 20 43 7 32 49 -47 -5816 -43 78 43 13 41 99 79 83 39 56 78 72 81 92 5 69 24 87 68 77 -48 -5297 -82 80 72 16 15 93 67 58 14 80 34 92 77 2 18 88 70 58 17 13 -49 -4830 -33 88 10 18 38 54 83 99 78 2 4 72 43 12 26 22 74 61 1 37 -50 -4903 -26 52 63 16 24 54 58 29 90 17 23 26 82 32 2 43 44 82 49 34 -51 -3618 -89 30 67 18 91 92 49 35 90 84 69 46 97 38 21 63 23 73 25 31 -52 -4572 -86 62 12 3 49 57 50 49 50 86 33 30 3 67 86 67 89 84 46 15 -53 -5078 -10 8 41 11 23 39 19 89 64 65 11 49 46 93 8 22 96 63 37 32 -54 -1714 -16 45 5 98 63 13 64 79 94 53 5 3 86 80 33 82 80 14 56 45 -55 -1214 -72 77 25 9 88 70 5 82 79 5 54 81 62 75 88 41 44 73 50 50 -56 -2317 -96 90 67 28 1 73 5 92 10 16 42 4 26 59 33 69 69 84 9 81 -57 -1939 -47 52 95 44 30 16 52 45 18 58 12 46 56 51 65 81 7 9 62 46 -58 -4684 -9 39 46 14 85 43 15 42 7 60 40 95 67 7 8 21 10 38 10 93 -59 -2148 -56 95 37 39 22 9 26 21 26 78 30 20 87 65 89 54 15 67 89 13 -60 -4555 -8 86 41 76 94 2 67 51 51 25 51 56 46 6 46 42 55 76 66 47 -61 -5302 -69 15 2 92 39 76 11 30 23 71 94 57 66 59 76 53 27 18 98 50 -62 -1794 -87 98 25 59 70 38 77 70 43 93 24 85 53 30 57 52 55 70 10 70 -63 -2125 -84 59 99 95 85 66 74 2 95 99 28 31 34 67 51 26 2 69 70 21 -64 -3571 -62 22 48 11 7 21 88 20 57 6 84 44 52 41 58 69 82 4 92 41 -65 -5197 -52 43 24 55 65 32 83 82 30 62 69 1 81 32 62 80 42 58 36 12 -66 -1470 -82 85 18 56 43 78 96 13 86 60 44 11 68 63 59 46 88 66 82 18 -67 -2420 -66 93 10 16 4 41 73 92 80 33 98 72 48 7 71 10 84 11 54 28 -68 -4451 -67 6 23 56 60 52 59 91 55 57 36 6 4 8 12 81 38 1 34 22 -69 -1234 -33 46 66 23 90 88 94 2 76 79 21 68 25 89 11 99 69 51 34 60 -70 -1487 -3 51 82 84 73 76 15 80 12 7 9 62 76 51 82 6 31 38 5 69 -71 -5745 -53 97 84 22 21 14 50 38 91 69 48 18 46 81 56 90 5 16 12 49 -72 -1472 -95 79 14 32 25 86 20 54 95 82 30 21 13 9 57 79 3 81 3 38 -73 -5132 -42 46 13 40 33 35 54 45 28 26 15 48 72 13 53 34 37 39 56 80 -74 -3842 -59 71 88 47 48 81 16 19 12 41 21 32 72 27 45 56 14 56 44 52 -75 -3269 -77 18 7 92 25 32 33 65 18 52 43 42 82 74 96 75 35 83 41 45 -76 -4366 -38 33 40 61 27 75 9 35 80 38 91 79 32 59 31 54 61 27 14 34 -77 -4912 -12 13 20 51 37 38 74 66 32 21 49 74 25 98 39 94 43 29 25 3 -78 -3383 -1 3 68 74 63 55 11 26 67 84 86 82 58 31 12 84 38 93 78 61 -79 -4632 -66 32 22 85 28 96 21 18 2 74 36 3 17 98 13 55 48 70 25 96 -80 -2775 -24 28 92 6 88 19 97 32 4 76 41 64 99 48 8 64 89 64 89 99 -81 -5614 -17 48 53 13 27 35 15 51 30 16 10 90 54 74 49 14 86 22 83 49 -82 -3465 -58 8 16 32 94 41 43 23 64 75 75 10 81 76 4 18 37 84 78 78 -83 -1004 -71 42 10 8 20 77 2 18 69 75 56 72 73 75 33 6 20 25 23 34 -84 -1425 -88 26 23 43 54 36 1 87 76 36 70 2 93 78 22 27 33 73 51 78 -85 -1759 -63 26 88 30 17 24 74 74 92 79 73 49 73 11 30 20 1 81 7 79 -86 -5341 -60 95 65 53 74 52 37 10 50 71 57 88 79 71 34 54 8 10 20 64 -87 -1080 -86 44 11 24 35 60 61 76 35 82 51 53 54 54 19 30 61 46 30 55 -88 -4906 -8 74 89 2 15 43 3 31 20 70 34 59 72 10 24 58 41 32 30 63 -89 -2859 -8 82 78 11 53 30 75 31 23 22 62 88 37 96 56 35 40 38 30 24 -90 -5588 -44 28 94 33 64 86 41 93 52 39 3 97 68 97 96 66 10 68 63 58 -91 -5551 -99 4 32 27 38 6 86 61 25 8 34 98 22 75 35 85 10 40 82 25 -92 -5376 -80 42 64 35 79 8 51 26 82 22 27 94 94 41 43 78 75 33 40 93 -93 -5672 -76 81 42 40 45 31 65 39 18 79 29 95 37 30 8 15 9 79 39 73 -94 -5671 -94 56 74 40 67 80 42 83 2 90 25 93 15 73 5 29 81 64 37 45 -95 -4086 -75 38 87 96 93 82 50 11 29 55 97 95 31 84 65 31 40 36 44 93 -96 -1806 -63 50 63 69 16 2 48 57 70 77 30 6 46 22 64 45 13 62 2 37 -97 -5810 -57 12 94 23 59 59 88 81 7 3 28 1 33 8 20 41 10 82 27 64 -98 -1083 -76 43 87 32 47 47 52 40 36 20 48 15 82 98 54 84 53 44 71 92 -99 -1887 -34 51 72 13 95 21 46 97 96 61 99 66 75 68 38 51 28 99 45 59 diff --git a/contribution/branches/MOLS/flowshop/benchs/200_10_01.txt b/contribution/branches/MOLS/flowshop/benchs/200_10_01.txt deleted file mode 100755 index d1bccf9b0..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/200_10_01.txt +++ /dev/null @@ -1,603 +0,0 @@ -200 -10 -471503978 -0 -7166 -17 30 28 15 52 5 53 55 81 47 -1 -7478 -37 26 82 67 82 44 43 65 44 51 -2 -4344 -22 2 88 57 17 2 43 38 46 44 -3 -3004 -71 29 33 64 66 98 56 76 3 27 -4 -4783 -79 98 69 23 62 27 48 45 93 76 -5 -4813 -37 67 28 9 57 10 83 99 14 4 -6 -1411 -69 92 92 1 58 25 34 84 86 76 -7 -4573 -53 51 66 2 91 27 93 67 23 49 -8 -7480 -59 53 92 43 42 41 95 40 59 5 -9 -4429 -64 82 30 73 69 59 48 93 47 25 -10 -841 -11 86 67 94 48 89 63 70 76 23 -11 -9418 -67 47 53 96 46 36 93 45 45 67 -12 -8849 -27 36 93 78 18 62 91 75 64 55 -13 -5306 -64 23 45 14 94 29 94 91 10 40 -14 -4634 -59 34 7 32 83 17 32 21 4 58 -15 -9336 -31 66 70 23 48 37 81 72 29 26 -16 -4344 -43 43 58 83 81 35 69 15 69 36 -17 -10182 -42 71 58 29 57 47 29 73 46 83 -18 -5648 -56 31 17 75 93 37 44 43 68 65 -19 -10009 -88 36 41 55 67 52 2 62 89 91 -20 -7809 -71 41 56 91 19 3 66 40 48 77 -21 -6970 -86 6 34 44 65 87 25 43 68 62 -22 -6260 -6 28 62 46 49 4 60 96 13 6 -23 -3543 -54 43 81 59 45 50 69 39 36 57 -24 -4215 -92 18 44 11 22 96 44 23 85 87 -25 -7436 -75 64 95 20 92 74 34 79 35 4 -26 -2229 -83 28 50 68 41 68 68 66 25 11 -27 -6742 -2 13 88 3 38 30 77 19 21 60 -28 -1878 -60 7 19 17 26 69 31 41 44 23 -29 -3222 -62 13 50 55 2 17 10 71 40 87 -30 -2189 -83 93 25 59 90 34 57 60 20 50 -31 -9874 -73 93 88 18 79 95 21 72 83 18 -32 -1849 -55 56 1 31 17 3 56 62 76 23 -33 -10057 -3 72 6 84 61 24 36 17 26 24 -34 -7309 -71 71 45 61 81 51 26 25 50 82 -35 -9509 -34 28 29 55 67 55 11 59 98 16 -36 -10403 -40 95 2 46 18 60 6 95 6 96 -37 -4515 -13 96 54 77 1 61 86 47 83 37 -38 -1586 -62 55 71 59 36 15 2 10 51 29 -39 -638 -56 58 81 98 31 38 89 94 46 19 -40 -7434 -28 66 22 23 85 83 28 39 99 26 -41 -9737 -53 3 57 18 92 62 62 53 65 56 -42 -5477 -71 77 16 17 6 84 63 50 46 33 -43 -5976 -5 80 88 70 78 44 52 99 24 53 -44 -3293 -73 2 5 73 83 80 12 63 47 6 -45 -5869 -95 82 52 38 39 48 13 59 24 95 -46 -10358 -23 86 23 13 74 45 43 30 32 63 -47 -4698 -49 16 21 77 77 54 99 67 66 84 -48 -9855 -17 29 21 74 85 71 11 18 48 13 -49 -5305 -81 24 58 79 88 10 70 12 83 6 -50 -8401 -88 89 96 51 25 96 82 9 3 19 -51 -6004 -62 96 37 48 33 23 14 41 74 16 -52 -3369 -35 99 46 16 36 8 39 67 97 80 -53 -10335 -78 15 78 93 32 56 83 52 39 37 -54 -2868 -90 49 87 29 82 35 4 39 80 20 -55 -5297 -36 78 91 28 98 72 86 90 27 62 -56 -3744 -46 48 9 6 3 53 93 25 70 81 -57 -9148 -98 64 96 82 46 13 87 13 65 52 -58 -3270 -75 3 93 40 68 72 82 81 1 14 -59 -7616 -36 63 98 9 11 38 78 3 26 67 -60 -5131 -74 14 31 88 30 1 32 8 46 19 -61 -9674 -86 95 78 51 75 69 82 66 8 86 -62 -940 -67 88 20 48 42 85 24 67 74 1 -63 -6286 -87 9 75 1 93 2 88 51 47 53 -64 -1159 -68 61 18 4 36 28 45 54 19 21 -65 -10410 -1 24 34 77 97 18 48 85 85 33 -66 -3268 -87 38 48 48 1 10 67 10 62 68 -67 -6533 -87 50 49 6 63 70 14 95 33 28 -68 -1984 -7 47 69 1 86 67 34 59 96 25 -69 -2658 -34 42 88 32 54 95 76 64 33 69 -70 -7518 -1 30 30 79 33 72 1 90 5 71 -71 -3280 -91 97 34 40 71 64 51 28 23 60 -72 -8989 -7 49 22 14 1 19 15 48 43 69 -73 -4877 -6 79 81 20 18 60 67 57 63 99 -74 -7608 -46 19 50 86 75 31 57 85 10 53 -75 -4775 -3 80 40 40 55 29 3 78 47 77 -76 -4441 -45 30 73 25 62 43 37 18 73 27 -77 -689 -55 24 91 94 21 17 15 59 1 29 -78 -8408 -92 58 7 73 71 78 50 11 19 83 -79 -2103 -67 43 1 44 80 28 75 67 92 22 -80 -6500 -13 6 71 98 5 47 80 36 31 10 -81 -3906 -30 95 72 94 48 78 3 24 29 42 -82 -4713 -27 43 8 61 87 77 9 59 68 64 -83 -9905 -19 99 68 65 22 92 28 24 31 80 -84 -3660 -51 22 49 44 5 42 44 39 92 73 -85 -2405 -86 99 7 75 71 86 2 1 48 91 -86 -7436 -20 11 47 4 69 6 71 80 87 38 -87 -5400 -95 99 90 17 75 19 89 58 8 60 -88 -8689 -79 60 59 1 72 28 24 76 90 53 -89 -5805 -48 42 39 12 36 18 73 59 57 38 -90 -685 -83 33 49 78 54 4 28 90 40 19 -91 -9892 -91 68 28 51 24 24 98 92 25 14 -92 -9000 -78 78 22 55 55 57 17 3 49 35 -93 -2827 -41 26 10 53 5 82 27 51 26 10 -94 -1779 -61 77 96 96 40 7 90 1 35 44 -95 -2539 -90 1 2 92 56 4 4 55 90 97 -96 -5797 -57 13 88 82 8 94 13 50 99 17 -97 -6740 -4 67 90 20 19 9 83 15 30 50 -98 -5913 -21 87 69 22 7 57 43 31 5 22 -99 -1778 -68 31 44 13 12 82 63 99 52 19 -100 -9256 -87 49 74 40 44 98 68 8 12 70 -101 -1943 -62 90 16 43 66 54 74 44 11 88 -102 -2314 -69 6 90 23 39 2 12 91 72 31 -103 -5964 -79 76 7 30 41 71 69 83 32 7 -104 -2160 -69 94 14 16 60 94 38 75 81 81 -105 -5000 -35 76 47 76 11 69 74 66 21 58 -106 -753 -25 79 48 30 31 51 98 98 81 2 -107 -8317 -68 66 36 59 65 80 86 77 64 89 -108 -9608 -14 51 62 64 16 79 72 8 45 1 -109 -5659 -9 14 1 72 67 85 76 6 4 80 -110 -3727 -74 89 63 61 19 56 53 26 10 52 -111 -878 -61 87 86 13 69 79 94 47 90 15 -112 -5610 -58 1 49 81 56 46 45 55 11 25 -113 -8024 -81 65 48 25 96 71 30 39 88 11 -114 -7993 -52 53 3 90 78 85 39 91 52 97 -115 -7345 -93 19 51 67 36 52 60 78 96 90 -116 -5943 -44 21 80 21 56 42 69 49 92 62 -117 -5637 -57 98 86 70 12 66 12 23 44 69 -118 -3377 -89 90 97 96 37 82 83 92 54 34 -119 -10135 -81 45 4 99 1 91 21 68 28 66 -120 -2394 -69 77 58 64 50 48 25 88 85 54 -121 -6036 -98 54 79 68 43 70 50 9 51 84 -122 -6761 -78 86 28 61 58 21 47 38 21 62 -123 -7860 -70 2 19 36 13 82 43 60 4 71 -124 -8007 -3 3 93 57 55 12 58 2 42 70 -125 -7718 -70 88 88 86 87 94 11 8 43 60 -126 -7598 -62 39 44 10 20 17 63 86 55 54 -127 -3245 -81 56 74 57 84 45 74 62 89 52 -128 -4953 -61 24 18 88 28 68 6 41 4 71 -129 -8163 -65 91 95 59 59 60 23 66 1 9 -130 -8429 -65 86 2 73 65 93 94 94 97 99 -131 -8623 -33 80 22 43 56 30 93 54 65 41 -132 -1742 -62 58 7 25 2 5 26 9 38 30 -133 -1409 -19 54 82 37 36 31 49 75 87 23 -134 -5249 -57 57 52 70 41 30 30 43 58 60 -135 -9063 -82 42 17 97 7 71 50 9 47 1 -136 -7293 -78 32 59 29 23 29 47 10 53 67 -137 -1353 -94 5 42 33 25 82 89 79 51 55 -138 -6480 -65 43 51 99 81 20 43 10 40 64 -139 -8191 -14 80 79 34 6 13 32 97 80 21 -140 -7595 -9 86 93 96 67 94 45 39 20 16 -141 -739 -29 47 65 65 5 47 47 30 24 94 -142 -7977 -70 95 27 90 89 57 68 74 77 11 -143 -8304 -90 86 25 52 71 95 13 52 37 90 -144 -6930 -86 40 60 95 86 8 86 90 13 48 -145 -5996 -12 31 72 3 48 46 97 12 29 85 -146 -2438 -40 61 29 64 50 80 2 61 28 34 -147 -2339 -12 12 55 21 54 32 16 34 18 7 -148 -5848 -64 64 58 16 21 7 27 88 22 79 -149 -4982 -32 17 22 70 83 34 38 27 75 95 -150 -7604 -18 52 58 67 27 33 53 68 24 50 -151 -10491 -11 56 61 13 38 33 37 14 79 78 -152 -8007 -40 35 89 96 79 18 94 88 99 39 -153 -6393 -14 60 67 57 71 29 78 74 35 79 -154 -1948 -22 75 14 7 53 19 84 71 45 69 -155 -8138 -49 10 10 30 2 74 49 14 95 27 -156 -3757 -95 50 40 96 9 58 25 16 46 42 -157 -4120 -82 66 11 98 49 52 59 46 15 15 -158 -4850 -7 53 99 72 79 10 36 47 7 51 -159 -4564 -19 58 7 31 39 70 33 54 24 44 -160 -4171 -95 12 20 11 28 78 15 91 45 71 -161 -669 -39 66 78 36 39 59 36 89 20 32 -162 -4803 -71 81 6 10 70 32 47 59 35 66 -163 -5464 -34 51 71 20 72 20 83 39 61 49 -164 -6219 -89 75 48 26 70 12 24 52 97 8 -165 -2726 -63 71 39 67 38 98 71 91 69 7 -166 -6507 -85 46 58 13 48 18 7 21 78 44 -167 -6446 -60 88 7 60 57 12 6 90 13 1 -168 -3416 -91 58 17 50 11 57 55 58 53 15 -169 -918 -49 73 63 28 38 73 43 74 16 6 -170 -3139 -46 27 73 32 37 91 82 30 94 51 -171 -9351 -10 26 43 49 56 46 40 63 59 91 -172 -7171 -19 38 14 54 64 64 78 19 64 33 -173 -2127 -50 48 66 46 64 92 64 18 72 77 -174 -4461 -65 8 59 15 68 45 96 88 13 69 -175 -799 -41 14 75 49 27 86 27 22 47 28 -176 -6861 -58 58 96 94 36 84 99 43 22 8 -177 -9690 -62 89 28 63 94 15 11 60 9 8 -178 -3180 -45 44 12 96 65 99 91 20 68 48 -179 -2449 -67 16 99 43 89 8 78 32 4 7 -180 -8742 -64 20 63 73 23 87 97 67 67 55 -181 -4503 -6 69 19 19 93 61 23 1 92 51 -182 -10135 -77 67 26 19 14 42 48 42 49 89 -183 -8757 -94 80 8 81 57 25 20 95 23 61 -184 -1192 -24 81 72 82 93 35 99 84 37 82 -185 -8334 -38 82 55 69 60 64 39 37 16 39 -186 -9610 -73 27 67 13 82 74 53 30 39 89 -187 -8681 -59 5 1 85 16 40 3 12 47 47 -188 -8465 -61 44 23 32 69 89 65 87 94 24 -189 -8425 -14 38 35 34 57 4 81 13 71 79 -190 -3227 -59 53 6 57 8 43 47 60 36 86 -191 -4628 -83 16 89 69 52 12 25 92 72 60 -192 -1319 -3 48 93 63 98 28 36 52 67 67 -193 -9629 -46 16 88 49 67 68 44 51 78 10 -194 -4236 -16 31 86 56 19 46 29 91 13 61 -195 -5509 -56 79 37 37 56 23 85 76 68 60 -196 -9597 -40 75 53 54 38 3 26 32 36 68 -197 -8513 -7 14 45 60 75 70 4 81 69 72 -198 -2882 -79 67 32 97 69 81 9 57 28 9 -199 -7268 -55 70 69 44 14 14 59 71 69 47 diff --git a/contribution/branches/MOLS/flowshop/benchs/README b/contribution/branches/MOLS/flowshop/benchs/README deleted file mode 100755 index 7f3c69274..000000000 --- a/contribution/branches/MOLS/flowshop/benchs/README +++ /dev/null @@ -1 +0,0 @@ -Further benchmarks for the bi-objective flow-shop scheduling problem are available at http://www.lifl.fr/~liefooga/benchmarks/ \ No newline at end of file diff --git a/contribution/branches/MOLS/flowshop/build/lib/libflowshop.a b/contribution/branches/MOLS/flowshop/build/lib/libflowshop.a deleted file mode 100644 index 7a06d2237b146cc53a29cde78f0798fa04c719f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208974 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⁢%QTmLc1o_&LId8b{^!XW3W1d{|WVXp_*P`9m|C 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 A;{X5v diff --git a/contribution/branches/MOLS/flowshop/src/CMakeLists.txt b/contribution/branches/MOLS/flowshop/src/CMakeLists.txt deleted file mode 100755 index 81bd142df..000000000 --- a/contribution/branches/MOLS/flowshop/src/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -###################################################################################### -### 1) Include the sources -###################################################################################### - -INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${PARADISEO_MOEO_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${PARADISEO_MO_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) - -###################################################################################### - - -###################################################################################### -### 2) Define your target(s): just the flow-shop lib here -###################################################################################### - -SET(FLOWSHOP_LIB_OUTPUT_PATH ${INSTALL_DIR}/flowshop/lib) -SET(LIBRARY_OUTPUT_PATH ${FLOWSHOP_LIB_OUTPUT_PATH}) - -SET (FLOWSHOP_SOURCES FlowShopBenchmarkParser.cpp - FlowShopEval.cpp - FlowShopObjectiveVectorTraits.cpp - FlowShopOpCrossoverQuad.cpp - FlowShop.cpp - exchange_move.cpp - exchange_move_init.cpp - exchange_move_next.cpp - ) - -ADD_LIBRARY(flowshop STATIC ${FLOWSHOP_SOURCES}) - -###################################################################################### - diff --git a/contribution/branches/MOLS/flowshop/src/FlowShop.cpp b/contribution/branches/MOLS/flowshop/src/FlowShop.cpp deleted file mode 100755 index 0bf5dfe89..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShop.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* -* -* 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 -* -*/ -//----------------------------------------------------------------------------- - -#include - -std::string FlowShop::className() const - { - return "FlowShop"; - } diff --git a/contribution/branches/MOLS/flowshop/src/FlowShop.h b/contribution/branches/MOLS/flowshop/src/FlowShop.h deleted file mode 100755 index 993f901d8..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShop.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -* -* 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 FLOWSHOP_H_ -#define FLOWSHOP_H_ - -#include -#include - -/** - * Structure of the genotype for the flow-shop scheduling problem: a vector of unsigned int int. - */ -class FlowShop: public moeoVector < FlowShopObjectiveVector , double , double , unsigned int > - { - public: - - /** - * class name - */ - std::string className() const; - - }; - -#endif /*FLOWSHOP_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopBenchmarkParser.cpp b/contribution/branches/MOLS/flowshop/src/FlowShopBenchmarkParser.cpp deleted file mode 100755 index 5a8b412b5..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopBenchmarkParser.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* -* -* 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 -* -*/ -//----------------------------------------------------------------------------- - -#include -#include - -FlowShopBenchmarkParser::FlowShopBenchmarkParser(const std::string _benchmarkFileName) -{ - init(_benchmarkFileName); -} - - -const unsigned int FlowShopBenchmarkParser::getM() -{ - return M; -} - - -const unsigned int FlowShopBenchmarkParser::getN() -{ - return N; -} - - -const std::vector< std::vector > FlowShopBenchmarkParser::getP() -{ - return p; -} - - -const std::vector FlowShopBenchmarkParser::getD() -{ - return d; -} - - -void FlowShopBenchmarkParser::printOn(std::ostream & _os) const - { - _os << "M=" << M << " N=" << N << std::endl; - _os << "*** processing times" << std::endl; - for (unsigned int i=0; i > (M,N); - d = std::vector (N); - // for each job... - for (unsigned int j=0 ; j j) - getline(inputFile, buffer, '\n'); - // due-date of the job j - getline(inputFile, buffer, '\n'); - d[j] = atoi(buffer.data()); - // processing times of the job j on each machine - getline(inputFile, buffer, '\n'); - start = buffer.find_first_not_of(" "); - for (unsigned int i=0 ; i -* 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 FLOWSHOPBENCHMARKPARSER_H_ -#define FLOWSHOPBENCHMARKPARSER_H_ - -#include -#include -#include - -/** - * Class to handle parameters of a flow-shop instance from a benchmark file - */ -class FlowShopBenchmarkParser - { - public: - - /** - * Ctor - * @param _benchmarkFileName the name of the benchmark file - */ - FlowShopBenchmarkParser(const std::string _benchmarkFileName); - - - /** - * the number of machines - */ - const unsigned int getM(); - - - /** - * the number of jobs - */ - const unsigned int getN(); - - - /** - * the processing times - */ - const std::vector < std::vector < unsigned int > > getP(); - - - /** - * the due-dates - */ - const std::vector < unsigned int > getD(); - - - /** - * printing... - */ - void printOn(std::ostream & _os) const; - - - private: - - /** number of machines */ - unsigned int M; - /** number of jobs */ - unsigned int N; - /** p[i][j] = processing time of job j on machine i */ - std::vector < std::vector < unsigned int > > p; - /** d[j] = due-date of the job j */ - std::vector < unsigned int > d; - - - /** - * Initialisation of the parameters with the data contained in the benchmark file - * @param _benchmarkFileName the name of the benchmark file - */ - void init(const std::string _benchmarkFileName); - - }; - -#endif /*FLOWSHOPBENCHMARKPARSER_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopEval.cpp b/contribution/branches/MOLS/flowshop/src/FlowShopEval.cpp deleted file mode 100755 index 08465a6f8..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopEval.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* -* -* 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 -* -*/ -//----------------------------------------------------------------------------- - -#include - - -FlowShopEval::FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector > & _p, const std::vector & _d) : - M(_M), N (_N), p(_p), d(_d) -{} - - -void FlowShopEval::operator()(FlowShop & _flowshop) -{ - FlowShopObjectiveVector objVector; - objVector[0] = makespan(_flowshop); - objVector[1] = tardiness(_flowshop); - _flowshop.objectiveVector(objVector); -} - - - -double FlowShopEval::makespan(const FlowShop & _flowshop) -{ - // completion times computation for each job on each machine - // C[i][j] = completion of the jth job of the scheduling on the ith machine - std::vector< std::vector > C = completionTime(_flowshop); - return C[M-1][_flowshop[N-1]]; -} - - -double FlowShopEval::tardiness(const FlowShop & _flowshop) -{ - // completion times computation for each job on each machine - // C[i][j] = completion of the jth job of the scheduling on the ith machine - std::vector< std::vector > C = completionTime(_flowshop); - // tardiness computation - unsigned int long sum = 0; - for (unsigned int j=0 ; j > FlowShopEval::completionTime(const FlowShop & _flowshop) -{ - std::vector< std::vector > C(M,N); - C[0][_flowshop[0]] = p[0][_flowshop[0]]; - for (unsigned int j=1; j -* 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 FLOWSHOPEVAL_H_ -#define FLOWSHOPEVAL_H_ - -#include -#include -#include - -/** - * Evaluation of the objective vector a (multi-objective) FlowShop object - */ -class FlowShopEval : public moeoEvalFunc - { - public: - - /** - * Ctor - * @param _M the number of machines - * @param _N the number of jobs to schedule - * @param _p the processing times - * @param _d the due dates - */ - FlowShopEval(unsigned int _M, unsigned int _N, const std::vector< std::vector > & _p, const std::vector & _d); - - - /** - * computation of the multi-objective evaluation of a FlowShop object - * @param _flowshop the FlowShop object to evaluate - */ - void operator()(FlowShop & _flowshop); - - - private: - - /** number of machines */ - unsigned int M; - /** number of jobs */ - unsigned int N; - /** p[i][j] = processing time of job j on machine i */ - std::vector< std::vector < unsigned int > > p; - /** d[j] = due-date of the job j */ - std::vector < unsigned int > d; - - - /** - * computation of the makespan - * @param _flowshop the genotype to evaluate - */ - double makespan(const FlowShop & _flowshop); - - - /** - * computation of the tardiness - * @param _flowshop the genotype to evaluate - */ - double tardiness(const FlowShop & _flowshop); - - - /** - * computation of the completion times of a scheduling (for each job on each machine) - * C[i][j] = completion of the jth job of the scheduling on the ith machine - * @param _flowshop the genotype to evaluate - */ - std::vector< std::vector > completionTime (const FlowShop & _flowshop); - - }; - -#endif /*FLOWSHOPEVAL_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopInit.cpp b/contribution/branches/MOLS/flowshop/src/FlowShopInit.cpp deleted file mode 100755 index dde677384..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopInit.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* -* -* 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 -* -*/ -//----------------------------------------------------------------------------- - -#include - - -FlowShopInit::FlowShopInit(unsigned int _N) : N(_N) -{} - - -void FlowShopInit::operator()(FlowShop & _flowshop) -{ - // scheduling vector - std::vector scheduling(N); - // initialisation of possible values - std::vector possibles(N); - for (unsigned int i=0 ; i -* 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 FLOWSHOPINIT_H_ -#define FLOWSHOPINIT_H_ - -#include -#include - -/** - * Initialization of a random genotype built by the default constructor of the FlowShop class - */ -typedef eoInitPermutation FlowShopInit; - -#endif /*FLOWSHOPINIT_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVector.h b/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVector.h deleted file mode 100755 index 65814085f..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVector.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -* -* 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 FLOWSHOPOBJECTIVEVECTOR_H_ -#define FLOWSHOPOBJECTIVEVECTOR_H_ - -#include -#include - -/** - * Definition of the objective vector for multi-objective flow-shop problems: a vector of doubles - */ -typedef moeoRealObjectiveVector < FlowShopObjectiveVectorTraits > FlowShopObjectiveVector; - -#endif /*FLOWSHOPOBJECTIVEVECTOR_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.cpp b/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.cpp deleted file mode 100755 index 08487e873..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* -* -* 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 -* -*/ -//----------------------------------------------------------------------------- - -#include - - -bool FlowShopObjectiveVectorTraits::minimizing (int _i) -{ - // minimizing both - return true; -} - -bool FlowShopObjectiveVectorTraits::maximizing (int _i) -{ - // minimizing both - return false; -} - -unsigned int FlowShopObjectiveVectorTraits::nObjectives () -{ - // 2 objectives - return 2; -} diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.h b/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.h deleted file mode 100755 index b95d6f2ea..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopObjectiveVectorTraits.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -* -* 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 FLOWSHOPOBJECTIVEVECTORTRAITS_H_ -#define FLOWSHOPOBJECTIVEVECTORTRAITS_H_ - -#include - -/** - * Definition of the objective vector traits for multi-objective flow-shop problems - */ -class FlowShopObjectiveVectorTraits : public moeoObjectiveVectorTraits - { - public: - - /** - * Returns true if the _ith objective have to be minimzed - * @param _i index of the objective - */ - static bool minimizing (int _i); - - - /** - * Returns true if the _ith objective have to be maximzed - * @param _i index of the objective - */ - static bool maximizing (int _i); - - - /** - * Returns the number of objectives - */ - static unsigned int nObjectives (); - - }; - -#endif /*FLOWSHOPOBJECTIVEVECTORTRAITS_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopOpCrossoverQuad.cpp b/contribution/branches/MOLS/flowshop/src/FlowShopOpCrossoverQuad.cpp deleted file mode 100755 index 5b64c7e41..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopOpCrossoverQuad.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* -* -* 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 -* -*/ -//----------------------------------------------------------------------------- - -#include - - -std::string FlowShopOpCrossoverQuad::className() const - { - return "FlowShopOpCrossoverQuad"; - } - - -bool FlowShopOpCrossoverQuad::operator()(FlowShop & _flowshop1, FlowShop & _flowshop2) -{ - bool oneAtLeastIsModified; - // computation of the 2 random points - unsigned int point1, point2; - do - { - point1 = rng.random(std::min(_flowshop1.size(), _flowshop2.size())); - point2 = rng.random(std::min(_flowshop1.size(), _flowshop2.size())); - } - while (fabs((double) point1-point2) <= 2); - // computation of the offspring - FlowShop offspring1 = generateOffspring(_flowshop1, _flowshop2, point1, point2); - FlowShop offspring2 = generateOffspring(_flowshop2, _flowshop1, point1, point2); - // does at least one genotype has been modified ? - if ((_flowshop1 != offspring1) || (_flowshop2 != offspring2)) - { - // update - _flowshop1.value(offspring1); - _flowshop2.value(offspring2); - // at least one genotype has been modified - oneAtLeastIsModified = true; - } - else - { - // no genotype has been modified - oneAtLeastIsModified = false; - } - // return 'true' if at least one genotype has been modified - return oneAtLeastIsModified; -} - - -FlowShop FlowShopOpCrossoverQuad::generateOffspring(const FlowShop & _parent1, const FlowShop & _parent2, unsigned int _point1, unsigned int _point2) -{ - FlowShop result = _parent1; - std::vector taken_values(result.size(), false); - if (_point1 > _point2) - std::swap(_point1, _point2); - /* first parent */ - for (unsigned int i=0 ; i<=_point1 ; i++) - { - // result[i] == _parent1[i] - taken_values[_parent1[i]] = true; - } - for (unsigned int i=_point2 ; i -* 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 FLOWSHOPOPCROSSOVERQUAD_H_ -#define FLOWSHOPOPCROSSOVERQUAD_H_ - -#include -#include - -/** - * Quadratic crossover operator for flow-shop (modify the both genotypes) - */ -class FlowShopOpCrossoverQuad : public eoQuadOp < FlowShop > - { - public: - - /** - * the class name (used to display statistics) - */ - std::string className() const; - - - /** - * eoQuad crossover - _flowshop1 and _flowshop2 are the (future) offspring, i.e. _copies_ of the parents - * @param _flowshop1 the first parent - * @param _flowshop2 the second parent - */ - bool operator()(FlowShop & _flowshop1, FlowShop & _flowshop2); - - - private: - - /** - * generation of an offspring by a 2 points crossover - * @param _parent1 the first parent - * @param _parent2 the second parent - * @param _point1 the first point - * @param _point2 the second point - */ - FlowShop generateOffspring(const FlowShop & _parent1, const FlowShop & _parent2, unsigned int _point1, unsigned int _point2); - - }; - -#endif /*FLOWSHOPOPCROSSOVERQUAD_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopOpMutationExchange.h b/contribution/branches/MOLS/flowshop/src/FlowShopOpMutationExchange.h deleted file mode 100755 index 51801d9d9..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopOpMutationExchange.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -* -* 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 FLOWSHOPOPMUTATIONEXCHANGE_H_ -#define FLOWSHOPOPMUTATIONEXCHANGE_H_ - -#include -#include - -/** - * Exchange mutation operator for the flow-shop - */ -typedef eoSwapMutation FlowShopOpMutationExchange; - -#endif /*FLOWSHOPOPMUTATIONEXCHANGE_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/FlowShopOpMutationShift.h b/contribution/branches/MOLS/flowshop/src/FlowShopOpMutationShift.h deleted file mode 100755 index 523bb88f0..000000000 --- a/contribution/branches/MOLS/flowshop/src/FlowShopOpMutationShift.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -* -* 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 FLOWSHOPOPMUTATIONSHIFT_H_ -#define FLOWSHOPOPMUTATIONSHIFT_H_ - -#include -#include - -/** - * Shift mutation operator for flow-shop - */ -typedef eoShiftMutation FlowShopOpMutationShift; - -#endif /*FLOWSHOPOPMUTATIONSHIFT_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/exchange_move.cpp b/contribution/branches/MOLS/flowshop/src/exchange_move.cpp deleted file mode 100755 index 8073548d9..000000000 --- a/contribution/branches/MOLS/flowshop/src/exchange_move.cpp +++ /dev/null @@ -1,67 +0,0 @@ -#include "exchange_move.h" - -/*ExchangeMove ExchangeMove :: operator ! () const - { - ExchangeMove move = * this ; - FlowShop __flowshop; - //std :: swap (move.first, move.second) ; - __flowshop[move.second] =__flowshop[move.first]; - return move ; - }*/ - -//void ExchangeMove :: operator () (FlowShop & __flowshop) -void ExchangeMove :: operator () (FlowShop& __flowshop) -{ - //bool isModified; - //ExchangeMove move; - int direction; - unsigned int tmp; - //FlowShop result = __flowshop; - - /*std :: vector seq_cities ; - - for (unsigned int i = second ; i > first ; i --) - { - seq_cities.push_back (__flowshop [i]) ; - } - - unsigned int j = 0 ; - for (unsigned int i = first + 1 ; i < second + 1 ; i ++) - { - __flowshop[i] = seq_cities [j ++] ; - }*/ - if (first < second) - direction = 1; - else - direction = -1; - // mutation - tmp = __flowshop[first]; - for (unsigned int i=first ; i!= second ; i+=direction) - __flowshop[i] = __flowshop[i+direction]; - __flowshop[ second] = tmp; - // update (if necessary) - /* if (result != __flowshop) - { - // update - __flowshop.value(result); - // the genotype has been modified - //isModified = true; - } - /*else - { - // the genotype has not been modified - isModified = false; - }*/ - // return 'true' if the genotype has been modified - //return isModified; -} - -void ExchangeMove :: readFrom (std :: istream & __is) -{ - __is >> first >> second ; -} - -void ExchangeMove :: printOn (std :: ostream & __os) const - { - __os << first << ' ' << second ; - } diff --git a/contribution/branches/MOLS/flowshop/src/exchange_move.h b/contribution/branches/MOLS/flowshop/src/exchange_move.h deleted file mode 100755 index f2dda4267..000000000 --- a/contribution/branches/MOLS/flowshop/src/exchange_move.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef exchange_move_h -#define exchange_move_h - -#include - -#include -#include -//#include - -#include - -class ExchangeMove : public moMove , public std :: pair , public eoPersistent - { - - public : - - - ExchangeMove operator ! () const ; - - //void operator () (FlowShop & __FlowShop) ; - void operator () (FlowShop & __FlowShop) ; - - void readFrom (std :: istream & __is) ; - - void printOn (std :: ostream & __os) const ; - } ; - -#endif diff --git a/contribution/branches/MOLS/flowshop/src/exchange_move_init.cpp b/contribution/branches/MOLS/flowshop/src/exchange_move_init.cpp deleted file mode 100755 index 9799fdfb4..000000000 --- a/contribution/branches/MOLS/flowshop/src/exchange_move_init.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include - -void ExchangeMoveInit :: operator () (ExchangeMove & _move, const FlowShop & _flowshop) -{ - FlowShop flowshop=_flowshop; - //eoRNG rng; - do - { - _move.first = rng.random(flowshop.size()); - _move.second = rng.random(flowshop.size()); - }while(_move.first == _move.second); -} diff --git a/contribution/branches/MOLS/flowshop/src/exchange_move_init.h b/contribution/branches/MOLS/flowshop/src/exchange_move_init.h deleted file mode 100755 index 866698453..000000000 --- a/contribution/branches/MOLS/flowshop/src/exchange_move_init.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef exchange_move_init_h -#define exchange_move_init_h - -#include - -//#include - -#include "exchange_move.h" - -/** It sets the first couple of edges */ -class ExchangeMoveInit : public moMoveInit - { - - public : - - void operator () (ExchangeMove & _move, const FlowShop & _flowshop) ; - - } ; - -#endif diff --git a/contribution/branches/MOLS/flowshop/src/exchange_move_next.cpp b/contribution/branches/MOLS/flowshop/src/exchange_move_next.cpp deleted file mode 100755 index eeeab939b..000000000 --- a/contribution/branches/MOLS/flowshop/src/exchange_move_next.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "exchange_move_next.h" -//#include "graph.h" -//int ExchangeMoveNext ::init(static int i) - - -bool ExchangeMoveNext :: operator () (ExchangeMove & _move, const FlowShop & _flowshop) -{ - FlowShop flowshop =_flowshop; - - - if (_move.first >= (flowshop.size() - 4))// && _move.second == _move.first + 2) - //if (_move.second == flowshop.size ()-2) - { - return false ; - } - else - { - //std::cout<<_move.second<<" "<<_move.first<<" "<= flowshop.size () - 1) - { - _move.first ++ ; - _move.second = _move.first + 2 ; - } - - - return true ; - } - -} diff --git a/contribution/branches/MOLS/flowshop/src/exchange_move_next.h b/contribution/branches/MOLS/flowshop/src/exchange_move_next.h deleted file mode 100755 index 798acfa5a..000000000 --- a/contribution/branches/MOLS/flowshop/src/exchange_move_next.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef exchange_move_next_h -#define exchange_move_next_h - -#include -#include "exchange_move.h" - -//#include - -/** It updates a couple of edges */ - -class ExchangeMoveNext : public moNextMove - { - - public : - - - bool operator () (ExchangeMove & _move, const FlowShop & _flowshop) ; - - - } ; - -#endif diff --git a/contribution/branches/MOLS/flowshop/src/make_eval_FlowShop.h b/contribution/branches/MOLS/flowshop/src/make_eval_FlowShop.h deleted file mode 100755 index 4a17049d1..000000000 --- a/contribution/branches/MOLS/flowshop/src/make_eval_FlowShop.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -* -* 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 MAKE_EVAL_FLOWSHOP_H_ -#define MAKE_EVAL_FLOWSHOP_H_ - - -#include -#include -#include -#include -#include -#include - -/* - * This function creates an eoEvalFuncCounter that can later be used to evaluate an individual. - * @param eoParser& _parser to get user parameters - * @param eoState& _state to store the memory - */ -eoEvalFuncCounter & do_make_eval(eoParser& _parser, eoState& _state) -{ - // benchmark file name - std::string benchmarkFileName = _parser.getORcreateParam(std::string("../flowshop/benchs/020_20_01.txt"), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks)", 'B',"Representation", false).value(); -// if (benchmarkFileName == "") -// { -// std::string stmp = "*** Missing name of the benchmark file\n"; -// stmp += " Type '-B=the_benchmark_file_name' or '--BenchmarkFile=the_benchmark_file_name'\n"; -// stmp += " Benchmarks files are available at www.lifl.fr/~liefooga/benchmarks"; -// throw std::runtime_error(stmp.c_str()); -// } - // reading of the parameters contained in the benchmark file - FlowShopBenchmarkParser fParser(benchmarkFileName); - unsigned int M = fParser.getM(); - unsigned int N = fParser.getN(); - std::vector< std::vector > p = fParser.getP(); - std::vector d = fParser.getD(); - // build of the initializer (a pointer, stored in the eoState) - FlowShopEval* plainEval = new FlowShopEval(M, N, p, d); - // turn that object into an evaluation counter - eoEvalFuncCounter* eval = new eoEvalFuncCounter (* plainEval); - // store in state - _state.storeFunctor(eval); - // and return a reference - return *eval; -} - -#endif /*MAKE_EVAL_FLOWSHOP_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/make_genotype_FlowShop.h b/contribution/branches/MOLS/flowshop/src/make_genotype_FlowShop.h deleted file mode 100755 index fbe0d8afe..000000000 --- a/contribution/branches/MOLS/flowshop/src/make_genotype_FlowShop.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -* -* 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 MAKE_GENOTYPE_FLOWSHOP_H_ -#define MAKE_GENOTYPE_FLOWSHOP_H_ - -#include -#include -#include -#include -#include - -/* - * This function creates an eoInit that can later be used to initialize the population (see make_pop.h). - * @param eoParser& _parser to get user parameters - * @param eoState& _state to store the memory - */ -eoInit & do_make_genotype(eoParser& _parser, eoState& _state) -{ - // benchmark file name - std::string benchmarkFileName = _parser.getORcreateParam(std::string("../flowshop/benchs/020_20_01.txt"), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks/)", 'B',"Representation", false).value(); -// if (benchmarkFileName == "") -// { -// std::string stmp = "*** Missing name of the benchmark file\n"; -// stmp += " Type '-B=the_benchmark_file_name' or '--BenchmarkFile=the_benchmark_file_name'\n"; -// stmp += " Benchmarks files are available at www.lifl.fr/~liefooga/benchmarks"; -// throw std::runtime_error(stmp.c_str()); -// } - // reading of number of jobs to schedule contained in the benchmark file - FlowShopBenchmarkParser fParser(benchmarkFileName); - unsigned int N = fParser.getN(); - // build of the initializer (a pointer, stored in the eoState) - eoInit* init = new FlowShopInit(N); - // store in state - _state.storeFunctor(init); - // and return a reference - return *init; -} - -#endif /*MAKE_GENOTYPE_FLOWSHOP_H_*/ diff --git a/contribution/branches/MOLS/flowshop/src/make_op_FlowShop.h b/contribution/branches/MOLS/flowshop/src/make_op_FlowShop.h deleted file mode 100755 index 4316f7f65..000000000 --- a/contribution/branches/MOLS/flowshop/src/make_op_FlowShop.h +++ /dev/null @@ -1,132 +0,0 @@ -/* -* -* 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 MAKE_OP_FLOWSHOP_H_ -#define MAKE_OP_FLOWSHOP_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * This function builds the operators that will be applied to the eoFlowShop - * @param eoParameterLoader& _parser to get user parameters - * @param eoState& _state to store the memory - */ -eoGenOp & do_make_op(eoParameterLoader& _parser, eoState& _state) -{ - - ///////////////////////////// - // Variation operators - //////////////////////////// - - // the crossover - //////////////// - - // a first crossover - eoQuadOp *cross = new FlowShopOpCrossoverQuad; - // store in the state - _state.storeFunctor(cross); - - // relative rate in the combination - double cross1Rate = _parser.createParam(1.0, "crossRate", "Relative rate for the only crossover", 0, "Variation Operators").value(); - // creation of the combined operator with this one - eoPropCombinedQuadOp *propXover = new eoPropCombinedQuadOp(*cross, cross1Rate); - // store in the state - _state.storeFunctor(propXover); - - - // the mutation - /////////////// - - // a first mutation : the shift mutation - eoMonOp *mut = new FlowShopOpMutationShift; - _state.storeFunctor(mut); - // its relative rate in the combination - double mut1Rate = _parser.createParam(0.5, "shiftMutRate", "Relative rate for shift mutation", 0, "Variation Operators").value(); - // creation of the combined operator with this one - eoPropCombinedMonOp *propMutation = new eoPropCombinedMonOp(*mut, mut1Rate); - _state.storeFunctor(propMutation); - - // a second mutation : the exchange mutation - mut = new FlowShopOpMutationExchange; - _state.storeFunctor(mut); - // its relative rate in the combination - double mut2Rate = _parser.createParam(0.5, "exchangeMutRate", "Relative rate for exchange mutation", 0, "Variation Operators").value(); - // addition of this one to the combined operator - propMutation -> add(*mut, mut2Rate); - - // end of crossover and mutation definitions - //////////////////////////////////////////// - - // First read the individual level parameters - eoValueParam& pCrossParam = _parser.createParam(0.25, "pCross", "Probability of Crossover", 'c', "Variation Operators" ); - // minimum check - if ( (pCrossParam.value() < 0) || (pCrossParam.value() > 1) ) - throw std::runtime_error("Invalid pCross"); - - eoValueParam& pMutParam = _parser.createParam(0.35, "pMut", "Probability of Mutation", 'm', "Variation Operators" ); - // minimum check - if ( (pMutParam.value() < 0) || (pMutParam.value() > 1) ) - throw std::runtime_error("Invalid pMut"); - - // the crossover - with probability pCross - eoProportionalOp * propOp = new eoProportionalOp ; - _state.storeFunctor(propOp); - eoQuadOp *ptQuad = new eoQuadCloneOp; - _state.storeFunctor(ptQuad); - propOp -> add(*propXover, pCrossParam.value()); // crossover, with proba pcross - propOp -> add(*ptQuad, 1-pCrossParam.value()); // nothing, with proba 1-pcross - - // now the sequential - eoSequentialOp *op = new eoSequentialOp; - _state.storeFunctor(op); - op -> add(*propOp, 1.0); // always do combined crossover - op -> add(*propMutation, pMutParam.value()); // then mutation, with proba pmut - - // return a reference - return *op; -} - -#endif /*MAKE_OP_FLOWSHOP_H_*/ diff --git a/contribution/branches/MOLS/install.cmake b/contribution/branches/MOLS/install.cmake deleted file mode 100644 index c5d508277..000000000 --- a/contribution/branches/MOLS/install.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# Here, specify PARADISEO_DIR : the directory where ParadisEO has been installed -SET(PARADISEO_DIR "/home/jeremie/workspace/trunk" CACHE PATH "ParadisEO directory" FORCE) - -# Here, specify SOURCES_DIR : the directory where the example sources have been deposed. -SET(SOURCES_DIR "/home/jeremie/workspace/MOLS" CACHE PATH "TP sources directory, where install.cmake is" FORCE) - -########################################################################################################################################### -# PLEASE DO NOT MODIFY WHAT IS BELOW -########################################################################################################################################### - -### ParadisEO Install Configuration -########################################################################################################################################### -SET(PARADISEO_EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE) -SET(PARADISEO_EO_BIN_DIR "${PARADISEO_DIR}/paradiseo-eo/build" CACHE PATH "ParadisEO-EO binary directory" FORCE) - -SET(PARADISEO_MO_SRC_DIR "${PARADISEO_DIR}/paradiseo-mo" CACHE PATH "ParadisEO-MO source directory" FORCE) -SET(PARADISEO_MO_BIN_DIR "${PARADISEO_DIR}/paradiseo-mo/build" CACHE PATH "ParadisEO-MO binary directory" FORCE) - -SET(PARADISEO_MOEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-moeo" CACHE PATH "ParadisEO-MO source directory" FORCE) -SET(PARADISEO_MOEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-moeo/build" CACHE PATH "ParadisEO-MOEO binary directory" FORCE) - -SET(FLOWSHOP_SRC_DIR "${SOURCES_DIR}/flowshop" CACHE PATH "flowshop source directory" FORCE) - -SET(INSTALL_DIR "${SOURCES_DIR}/build" CACHE PATH "Directory where the executable will be put" FORCE) - diff --git a/contribution/branches/MOLS/src/CMakeLists.txt b/contribution/branches/MOLS/src/CMakeLists.txt deleted file mode 100644 index f87f5c14c..000000000 --- a/contribution/branches/MOLS/src/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -# TODO \ No newline at end of file diff --git a/contribution/branches/MOLS/src/eoTenTimeContinue.h b/contribution/branches/MOLS/src/eoTenTimeContinue.h deleted file mode 100644 index 02eb29e3d..000000000 --- a/contribution/branches/MOLS/src/eoTenTimeContinue.h +++ /dev/null @@ -1,100 +0,0 @@ -// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- - -//----------------------------------------------------------------------------- -// eoSeconsElapsedContinue.h -// (c) Maarten Keijzer, 2007 -/* - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Contact: todos@geneura.ugr.es, http://geneura.ugr.es - */ -//----------------------------------------------------------------------------- - -#ifndef _eoTenTimeContinue_h -#define _eoTenTimeContinue_h - -#include - -#include -#include -#include -#include -/** - Timed continuator: continues until a number of seconds is used -*/ -template< class EOT> -class eoTenTimeContinue: public eoContinue -{ - -public: - - eoTenTimeContinue(int _maxTime, std::string _fileName) : start(time(0)), maxTime(_maxTime), id(1), fileName(_fileName) {} - - virtual bool operator() ( const eoPop& _pop ) { - time_t diff = time(0) - start; - - if (diff > (id * maxTime/10) ){ - time_t begin=time(0); - std::cout << id << "start :" << begin << std::endl; - //traitement - std::string tmp=fileName; - std::ostringstream os; - os << id; - - tmp+="."; - tmp+=os.str(); - std::ofstream outfile(tmp.c_str()); - - for(unsigned int i=0 ; i < _pop.size(); i++){ - for(unsigned int j=0 ; j= 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 id; - unsigned int maxTime; - std::string fileName; -}; - -#endif - diff --git a/contribution/branches/MOLS/src/moeoAllSolAllNeighborsExpl.h b/contribution/branches/MOLS/src/moeoAllSolAllNeighborsExpl.h deleted file mode 100755 index 756263761..000000000 --- a/contribution/branches/MOLS/src/moeoAllSolAllNeighborsExpl.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -* -* 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 -#include -#include -#include -#include -#include - -/** - * 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); - } - } - } - 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 comparator; - -}; - -#endif /*_MOEOALLSOLALLNEIGHBORSEXPL_H_*/ diff --git a/contribution/branches/MOLS/src/moeoAllSolOneNeighborExpl.h b/contribution/branches/MOLS/src/moeoAllSolOneNeighborExpl.h deleted file mode 100644 index 2dd719118..000000000 --- a/contribution/branches/MOLS/src/moeoAllSolOneNeighborExpl.h +++ /dev/null @@ -1,171 +0,0 @@ -/* -* -* 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 -#include -#include -#include -#include -#include -#include - -/** - * 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){ -//Move move; - MOEOT * sol; - ObjectiveVector objVec; - 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]); - //copy the solution in destination population - _dest.push_back(_src[i]); - //stock the new solution - sol = & _dest.back(); - //apply the move on it - moveVector[id-1](*sol); - //invalidate it - sol->invalidate(); - //evaluate ir - eval(*sol); - //set it as not yet visisted (flag=0) - sol->flag(0); - //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]); - //copy the solution in destination population - _dest.push_back(_src[i]); - //stock the new solution - sol = & _dest.back(); - //apply the move on it - moveVector[id](*sol); - //invalidate it - sol->invalidate(); - //evaluate ir - eval(*sol); - //set it as not yet visisted (flag=0) - sol->flag(0); - 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; - _dest.push_back(_src[i]); - sol = & _dest.back(); - //objVec = moveIncrEval(move, *sol); - moveVector[id](*sol); - sol->invalidate(); - eval(*sol); - //sol->objectiveVector(objVec); - //if (comparator(sol, _src[i])) - if(!nextMove(moveVector[id], _src[i])){ - _src[i].flag(1); - availableMove.push(id); - } - } - } - } - -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 */ - eoEvalFunc < MOEOT > & eval; - /** the incremental evaluation */ - moMoveIncrEval < Move, ObjectiveVector > & incrEval; - /** comparator */ - moeoParetoObjectiveVectorComparator comparator; - -}; - -#endif /*_MOEOALLSOLONENEIGHBOREXPL_H_*/ diff --git a/contribution/branches/MOLS/src/moeoOneSolAllNeighborsExpl.h b/contribution/branches/MOLS/src/moeoOneSolAllNeighborsExpl.h deleted file mode 100644 index d86312330..000000000 --- a/contribution/branches/MOLS/src/moeoOneSolAllNeighborsExpl.h +++ /dev/null @@ -1,103 +0,0 @@ -/* -* -* 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 -#include -#include -#include -#include -#include - -/** - * 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); - } - } - } - 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 comparator; - -}; - -#endif /*_MOEOONESOLALLNEIGHBORSEXPL_H_*/ diff --git a/contribution/branches/MOLS/src/moeoOneSolOneNeighborExpl.h b/contribution/branches/MOLS/src/moeoOneSolOneNeighborExpl.h deleted file mode 100644 index 97bd16a40..000000000 --- a/contribution/branches/MOLS/src/moeoOneSolOneNeighborExpl.h +++ /dev/null @@ -1,165 +0,0 @@ -/* -* -* 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 _MOEOONESOLONENEIGHBOREXPL_H -#define _MOEOONESOLONENEIGHBOREXPL_H - -#include -#include -#include -#include -#include -#include - -/** - * TODO - */ -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) - { - 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); - } - } - - - - -private: - Move move; - bool start; - /** the move initializer */ - moMoveInit < Move > & moveInit; - /** the neighborhood explorer */ - moNextMove < Move > & nextMove; - /** the incremental evaluation */ - moMoveIncrEval < Move, ObjectiveVector > & incrEval; - /** comparator */ - moeoParetoObjectiveVectorComparator comparator; - - - -// 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_*/ diff --git a/contribution/branches/MOLS/src/moeoPopLS.h b/contribution/branches/MOLS/src/moeoPopLS.h deleted file mode 100644 index 54cbeabe6..000000000 --- a/contribution/branches/MOLS/src/moeoPopLS.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -* -* 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 - -/** - * Abstract class for Population based multi-objective local search. - */ -template < class Move > -class moeoPopLS : public moeoPopAlgo < typename Move::EOType > - {}; - -#endif /*MOEOPOPLS_H_*/ diff --git a/contribution/branches/MOLS/src/moeoPopNeighborhoodExplorer.h b/contribution/branches/MOLS/src/moeoPopNeighborhoodExplorer.h deleted file mode 100644 index be28214f8..000000000 --- a/contribution/branches/MOLS/src/moeoPopNeighborhoodExplorer.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -* -* 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 -#include - -/** - * TODO - */ -template < class Move > -class moeoPopNeighborhoodExplorer : public eoBF &, eoPop < typename Move::EOType > &, void> -{}; - -#endif /*MOEONEIGHBORHOODEXPLORER_H_*/ diff --git a/contribution/branches/MOLS/src/moeoUnifiedDominanceBasedLS.h b/contribution/branches/MOLS/src/moeoUnifiedDominanceBasedLS.h deleted file mode 100644 index b38a19fbf..000000000 --- a/contribution/branches/MOLS/src/moeoUnifiedDominanceBasedLS.h +++ /dev/null @@ -1,135 +0,0 @@ -/* -* -* 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 -#include -#include -#include - -/** - * An easy class to design multi-objective evolutionary algorithms. - */ -template < class Move > -class moeoUnifiedDominanceBasedLS : public moeoPopLS < Move > -{ - //! Alias for the type - typedef typename Move::EOType MOEOT; - -public: - - 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);// A first eval of 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; - - 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++; - } -// std::cout << res << std::endl; - return res; - } - } naturalContinuator; - -// moeoContinue < MOEOT > defaultContinuator; - -// moeoContinue < MOEOT > & naturalContinuator; - - /** a dummy eval */ -// class eoDummyEval : public eoEvalFunc < MOEOT > -// { -// public: -// void operator()(MOEOT &) {} -// } -// dummyEval; - - eoPopLoopEval < MOEOT > loopEval; - eoPopEvalFunc < MOEOT > & popEval; - -// moeoUnboundedArchive < MOEOT > defaultArchive; - moeoArchive < MOEOT > & archive; - - moeoPopNeighborhoodExplorer < Move > & explorer; - -}; - -#endif /*MOEOUNIFIEDDOMINANCEBASEDLS_H_*/ diff --git a/contribution/branches/MOLS/test/CMakeLists.txt b/contribution/branches/MOLS/test/CMakeLists.txt deleted file mode 100644 index de6a937b1..000000000 --- a/contribution/branches/MOLS/test/CMakeLists.txt +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################### -## -## CMakeLists file for ParadisEO-MOEO/test -## -############################################################################### - - -###################################################################################### -### 1) Include the sources -###################################################################################### - -INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${PARADISEO_MO_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${PARADISEO_MOEO_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) -INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}/src) -INCLUDE_DIRECTORIES(${SOURCES_DIR}/src) - - -###################################################################################### - - -###################################################################################### -### 2) Specify where CMake can find the libraries -###################################################################################### - -LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib ${PARADISEO_MOEO_BIN_DIR}/lib ${FLOWSHOP_LIB_OUTPUT_PATH}) - -###################################################################################### - - - -###################################################################################### -### 3) Define your targets and link the librairies -###################################################################################### - -SET (TEST_LIST - t-moeoUnifiedDominanceBasedLS -) - -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 flowshop ga es eoutils eo) -ENDFOREACH (test) - -###################################################################################### - diff --git a/contribution/branches/MOLS/test/param b/contribution/branches/MOLS/test/param deleted file mode 100644 index 4c241f52a..000000000 --- a/contribution/branches/MOLS/test/param +++ /dev/null @@ -1,11 +0,0 @@ - -###### General ###### ---help=0 # -h : Prints this message ---stopOnUnknownParam=1 # Stop if unkown param entered -# --seed=1203083493 # -S : Random number seed - -###### Evolution Engine ###### ---popSize=1000 # -P : Population Size - -###### Representation ###### -#--BenchmarkFile=../examples/flowshop/benchs/020_10_01.txt # -B : Benchmark file name REQUIRED diff --git a/contribution/branches/MOLS/test/t-moeoUnifiedDominanceBasedLS.cpp b/contribution/branches/MOLS/test/t-moeoUnifiedDominanceBasedLS.cpp deleted file mode 100644 index fdb0998d7..000000000 --- a/contribution/branches/MOLS/test/t-moeoUnifiedDominanceBasedLS.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// for the creation of an evaluator -#include -// for the creation of an initializer -#include -// for the creation of the variation operators -#include -// how to initialize the population -#include - - -int main(int argc, char* argv[]) -{ - eoParser parser(argc, argv); // for user-parameter reading - eoState state; // to keep all things allocated - ExchangeMoveNext moveNext; - ExchangeMoveInit moveInit; - ExchangeMove move; - eoEvalFuncCounter& eval = do_make_eval(parser, state); - eoInit& init = do_make_genotype(parser, state); - // population - eoPop& pop = do_make_pop(parser, state, init); - - eoTimeContinue < FlowShop > continuator(10000000); - moeoAllSolOneNeighborExpl < ExchangeMove > explorer(moveInit,moveNext, eval); -// - moeoUnifiedDominanceBasedLS < ExchangeMove > algo(continuator, explorer); - - for (unsigned int i=0; i