diff --git a/tags/paradiseo-ix86-1.0-beta2/.mpd.conf b/tags/paradiseo-ix86-1.0-beta2/.mpd.conf new file mode 100644 index 000000000..bf47811ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/.mpd.conf @@ -0,0 +1 @@ +secretword=Nothing diff --git a/tags/paradiseo-ix86-1.0-beta2/README b/tags/paradiseo-ix86-1.0-beta2/README new file mode 100644 index 000000000..08cefd72a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/README @@ -0,0 +1,89 @@ + +========================================================================================== + BUILDING PARADISEO FULL PACKAGE +========================================================================================== +The basic installation procedure must be done in the directory +which contains the extracted archive. + + --> Example : source installParadiseo.sh + +Please try source installParadiseo.sh --help for further information + +========================================================================================== + DIRECTORY STRUCTURE +========================================================================================== +After unpacking the archive file, you should end up with the following +structure: + +.../ Installation directory (specified with ./installParadiseo.sh) + | + +-- lib/ + | | +-- /libxml2-2.6.0.tar.bz2 LIBXML2 archive (required for ParadisEO) + | | +-- /mpich2-1.0.3.tar.gz MPICH2 archive (required for ParadisEO) + | + | + +-- paradiseo-eo paradiseo-eo dir + | + | + +-- paradiseo-mo paradiseo-mo dir + | + | + +-- paradiseo-moeo paradiseo-moeo dir + | + | + +-- paradiseo-peo paradiseo-peo dir + | + +-- README README file + | + +-- installParadiseo.sh Install script + | + +-- .mpd.conf Paradiseo-peo config file + +========================================================================================== + DIRECTORY STRUCTURE AFTER INSTALLATION +========================================================================================== +After running the script "installParadiseo.sh" and if the process is successful, +you should have the following structure : + +.../ Installation directory (specified with ./installParadiseo.sh) + | + +-- lib/ + | | +-- /libxml2-2.6.0.tar.bz2 LIBXML2 archive (required for ParadisEO) + | | +-- /mpich2-1.0.3.tar.gz MPICH2 archive (required for ParadisEO) + | + | + +-- paradiseo-eo paradiseo-eo dir + | + | + +-- paradiseo-mo paradiseo-mo dir + | + | + +-- paradiseo-moeo paradiseo-moeo dir + | + | + +-- paradiseo-peo paradiseo-peo dir + | + | + +-- libxml2 LIBXML2 dir (required for ParadisEO) + | + | + +-- mpich2 MPICH2 dir (required for ParadisEO) + | + +-- README README file + | + +-- installParadiseo.sh Install script + | + +-- .mpd.conf Paradiseo-peo config file + +========================================================================================== + NOTES +========================================================================================== +Please read README file of each extracted directory if you have +problems for the installation. + + +========================================================================================== + CONTACT +========================================================================================== +For further information about ParadisEO, help or to report any +problem : paradiseo-help@lists.gforge.inria.fr diff --git a/tags/paradiseo-ix86-1.0-beta2/installParadiseo.sh b/tags/paradiseo-ix86-1.0-beta2/installParadiseo.sh new file mode 100755 index 000000000..1479dba8b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/installParadiseo.sh @@ -0,0 +1,1026 @@ +#!/bin/sh + +######################################################################################### +# +# Project : paradisEO full package install +# File : installParadiseo.sh +# Comment : # This file attempts to install ParadisEO # +# +######################################################################################### + +# global variables +installStartTime=$SECONDS +resourceKitPath=$PWD +TAR_MSG=" " +DIE=0 +PROG=ParadisEO + +# install types to select in the main menu +P_FULL_INSTALL=1 +P_BASIC_INSTALL=2 +P_PARALLEL_INSTALL=3 +P_RM_PREVIOUS_INSTALLL=4 +P_EXIT_INSTALL=5 + +IS_MPICH_INSTALLED=1 +IS_LIBXML2_INSTALLED=1 +USE_EXISTING_MPICH=-1 +USE_EXISTING_LIBXML2=-1 + +# install steps +S_INTRODUCTION=1000 +S_UNPACK_EO=1001 +S_UNPACK_LIBXML=1002 +S_UNPACK_MPICH=1003 +S_INSTALL_EO=1004 +S_INSTALL_MO=1005 +S_INSTALL_MOEO=1006 +S_INSTALL_LIBXML=1007 +S_INSTALL_MPICH=1008 +S_INSTALL_PEO=1009 +S_REMOVE_TEMP_LIBXML=1010 +S_REMOVE_TEMP_MPICH=1011 +S_CONFIGURE_ENV=1012 +S_CONFIGURE_MPD=1013 +S_PEO_CHECK=1014 +S_REMOVE_INSTALL=1015 +S_END=1016 + +#### define what are the possible installs and their content + +# full install +FULL_INSTALL="$S_INTRODUCTION $S_UNPACK_LIBXML $S_UNPACK_MPICH $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_LIBXML $S_REMOVE_TEMP_LIBXML $S_INSTALL_MPICH $S_REMOVE_TEMP_MPICH $S_CONFIGURE_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +FULL_INSTALL_WITHOUT_LIBXML2="$S_INTRODUCTION $S_UNPACK_MPICH $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_MPICH $S_REMOVE_TEMP_MPICH $S_CONFIGURE_MPICH_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +FULL_INSTALL_WITHOUT_MPICH2="$S_INTRODUCTION $S_UNPACK_LIBXML $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_LIBXML $S_REMOVE_TEMP_LIBXML $S_CONFIGURE_LIBXML2_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +FULL_INSTALL_WITHOUT_LIBXML2_MPICH2="$S_INTRODUCTION $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +# basic install +BASIC_INSTALL="$S_INTRODUCTION $S_INSTALL_EO $S_INSTALL_MO $S_INSTALL_MOEO $S_END" + +# install only paradiseo-peo +PARALLEL_INSTALL="$S_PEO_CHECK $S_INTRODUCTION $S_UNPACK_LIBXML $S_INSTALL_LIBXML $S_REMOVE_TEMP_LIBXML $S_UNPACK_MPICH $S_INSTALL_MPICH $S_REMOVE_TEMP_MPICH $S_CONFIGURE_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +PARALLEL_INSTALL_WITHOUT_LIBXML2="$S_PEO_CHECK $S_INTRODUCTION $S_UNPACK_MPICH $S_INSTALL_MPICH $S_REMOVE_TEMP_MPICH $S_CONFIGURE_MPICH_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +PARALLEL_INSTALL_WITHOUT_MPICH2="$S_PEO_CHECK $S_INTRODUCTION $S_UNPACK_LIBXML $S_INSTALL_LIBXML $S_REMOVE_TEMP_LIBXML $S_CONFIGURE_LIBXML2_ENV $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +PARALLEL_INSTALL_WITHOUT_LIBXML2_MPICH2="$S_PEO_CHECK $S_INTRODUCTION $S_INSTALL_PEO $S_CONFIGURE_MPD $S_END" + +# remove a previous install +RM_PREVIOUS_INSTALL="$S_REMOVE_INSTALL" + +#others +LIBS_PATH=lib +LIBXML2_ARCHIVE=libxml2-2.6.0.tar.bz2 +MPICH2_ARCHIVE=mpich2-1.0.3.tar.gz + +# errors +SUCCESSFUL_STEP=0 +EO_UNPACKING_ERROR=100 +LIBXML_UNPACKING_ERROR=104 +MPICH_UNPACKING_ERROR=105 +EO_INSTALL_ERROR=106 +MO_INSTALL_ERROR=107 +MOEO_INSTALL_ERROR=108 +PARADISEO_INSTALL_ERROR=110 +LIBXML_INSTALL_ERROR=111 +MPICH_INSTALL_ERROR=112 +REMOVE_TEMP_DIRECTORY_ERROR=113 +VAR_CONFIG_ERROR=114 +MPD_COPY_ERROR=115 +LIBXML_INSTALL_ERROR=116 +MPICH_INSTALL_ERROR=117 +PEO_CHECK_ERROR=118 +RM_PARADISEO_EO_ERROR=119 +RM_UTIL_ERROR=120 +BASIC_INSTALL_MISSING_ERROR=121 + +#Date +DATE=`/bin/date '+%Y%m%d%H%M%S'` +# create log file +SPY=$PWD/install-paradiseo.${DATE}.log + +#------------------------------------------------------# +#-- FUNCTION : execute_cmd ---# +#------------------------------------------------------# +#-- PARAMETERS : ---# +#-- $1 : cmd line ---# +#-- $2 : comment ---# +#-- $3 : spy file ---# +#-- $4 : output std file ---# +#-- $5 : error log file ---# +#-- ---# +#------------------------------------------------------# +#-- CODE RETURN : 0 : OK ---# +#-- CODE RETURN : 1 : NOK ---# +#------------------------------------------------------# +function execute_cmd +{ + COMMAND=${1} + COMMENT=${2} + FIC_ESP=${3} + FIC_OUT=${4} + FIC_ERR=${5} + + if [ `echo ${FIC_OUT} | wc -c` -eq 1 ] + then + FIC_OUT=${FIC_ESP} + fi + + if [ `echo ${FIC_ERR} | wc -c` -eq 1 ] + then + FIC_ERR=${FIC_ESP} + fi + + echo "" >> ${FIC_ESP} + echo "[execute_cmd][Begin][`/bin/date +%H:%M:%S`]" >> ${FIC_ESP} + + echo "------------------------------------------------------------------------------------------------------------" >> ${FIC_ESP} + echo "${COMMENT}" >> ${FIC_ESP} + echo "------------------------------------------------------------------------------------------------------------" >> ${FIC_ESP} + echo "${COMMAND}" >> ${FIC_ESP} + + ${COMMAND} >> ${FIC_OUT} 2>> ${FIC_ERR} + + RETURN_CODE=$? + echo "RETURN_CODE : ${RETURN_CODE}" >> ${FIC_ESP} + + if [ ${RETURN_CODE} -eq 0 ] + then + echo " ${COMMENT} OK" >> ${FIC_ESP} + echo "[execute_cmd][End][`/bin/date +%H:%M:%S`]" >> ${FIC_ESP} + return 0 + else + echo " $ERROR_TAG ${COMMENT} NOK" >> ${FIC_ESP} + return 1 + fi +} + + + +#------------------------------------------------------# +#-- FUNCTION : on_error ---# +#------------------------------------------------------# +#-- PARAMETERS : ---# +#-- Error number ---# +#------------------------------------------------------# +#-- RETURN: ---# +#------------------------------------------------------# +function on_error() +{ + case $1 in + $LIBXML_UNPACKING_ERROR) + echo + echo " An error has occured : impossible to unpack libxml2 archive.See $SPY for more details" + echo " Make sure that libxml2 archive exists in current directory" + echo + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + + $EDIT_BASH_VARIABLES) + echo + echo " " + + kill $$;; + + + $MPICH_UNPACKING_ERROR) + echo + echo " An error has occured : impossible to unpack mpich2 archive.See $SPY for more details" + echo " Make sure that mpich2 archive exists in current directory" + echo + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo ;; + + $EO_INSTALL_ERROR) + echo + echo " An error has occured : impossible to install Paradiseo-EO.See $SPY for more details" + echo "If you need help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + echo + kill $$;; + + $MO_INSTALL_ERROR) + echo + echo " An error has occured : impossible to install Paradiseo-MO.See $SPY for more details" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $MOEO_INSTALL_ERROR) + echo + echo " An error has occured : impossible to install Paradiseo-MOEO.See $SPY for more details" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $PARADISEO_INSTALL_ERROR) + echo + echo " An error has occured : impossible to install Paradiseo-PEO.See $SPY for more details" + echo ' Make sure you have the required variables in your environment (ex: by using "echo $PATH" for PATH variable) : ' + echo ' -LD_LIBRARY_PATH=/libxml2/lib:$LD_LIBRARY_PATH' + echo ' -PATH=/libxml2/bin:/mpich2/bin:$PATH' + echo + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $LIBXML_INSTALL_ERROR) + echo + echo " An error has occured : impossible to install libxml2. See $SPY for more details" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $MPICH_INSTALL_ERROR) + echo + echo " An error has occured : impossible to install mpich2 See $SPY for more details" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $PEO_CHECK_ERROR) + echo + echo " If you want to install ParadisEO-PEO, you should remove the old directories of libxml2 or mpich2 or choose another location." + echo + kill $$;; + + $RM_PARADISEO_EO_ERROR) + echo + echo " An error has occured : impossible to remove ParadisEO-EO. See $SPY for more details" + echo " You may not have a previous ParadisEO install available in the current directory" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $RM_UTIL_ERROR) + echo + echo " An error has occured : impossible to remove the previous install of mpich2 and libxml2. See $SPY for more details" + echo " You may not have a previous ParadisEO install available in the current directory" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $BASIC_INSTALL_MISSING_ERROR) + echo + echo " An error has occured : impossible to find the basic install of ParadisEO. See $SPY for more details" + echo " You may not have a basic ParadisEO install available in the current directory" + echo " => To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr and join $SPY" + echo + kill $$;; + + $SUCCESSFUL_STEP) + ;; + *) + echo + ;; + esac +} + +#------------------------------------------------------# +#-- FUNCTION : run_install_step ---# +#------------------------------------------------------# +#-- PARAMETERS : ---# +#-- install path ---# +#-- step to launch (0,1 ...) ---# +#-- counter for loop ---# +#-- Major function for install ---# +#------------------------------------------------------# +#-- RETURN: 0 if install OK ---# +#------------------------------------------------------# + +function run_install_step() +{ + installKitPath=$1 + stepToRun=$2 + currentStepCounter=$3 + + RETURN=0 + + case "$stepToRun" in + $S_INTRODUCTION) + ########## Introduction ######### + clear + echo "" + echo -e ' \033[40m\033[1;33m### ParadisEO install starting .... ### \033[0m ' + echo + echo "Installing the environment for ParadisEO...Note that the librairies \"libxml2\" ans \"mpich2\" required for ParadisEO are provided with this package." + sleep 3 + + echo + echo + return $SUCCESSFUL_STEP + ;; + + $S_UNPACK_EO) + ########## unpacking paradiseo-eo ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Unpacking Paradiseo-EO (Evolving Objects) ...' + + execute_cmd "tar xvf $resourceKitPath/$LIBS_PATH/$PARADISEO_EO_ARCHIVE --directory $installKitPath" "[$currentStepCounter] Unpack Paradiseo-EO" $SPY + if [ ! "$?" = "0" ] + then + echo '' + echo " --> Error when unpacking Paradiseo-EO" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $EO_UNPACKING_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_UNPACK_LIBXML) + ########## unpacking libxml2 ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Unpacking libxml2 (required for ParadisEO) ...' + + execute_cmd "tar xvjf $resourceKitPath/$LIBS_PATH/$LIBXML2_ARCHIVE --directory $installKitPath" "[$currentStepCounter] Unpack Libxml2" $SPY + if [ ! "$?" = "0" ] + then + echo '' + echo " --> Error when unpacking libxml2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $LIBXML_UNPACKING_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_UNPACK_MPICH) + ########## unpacking mpich2 ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Unpacking mpich2 (required for ParadisEO) ...' + + execute_cmd "tar xzvf $resourceKitPath/$LIBS_PATH/$MPICH2_ARCHIVE --directory $installKitPath" "[3] Unpack Mpich2" $SPY + if [ ! "$?" = "0" ] + then + echo '' + echo " --> Error when unpacking mpich2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $MPICH_UNPACKING_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_INSTALL_EO) + ########## installing paradiseo-eo ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Installing Paradiseo-EO. Please wait ...' + + execute_cmd "cd $installKitPath/paradiseo-eo" "[$currentStepCounter-1] Go in Paradiseo-EO dir" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "./autogen.sh" "[$currentStepCounter-2] Run autogen" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "./configure" "[$currentStepCounter-3] Run configure" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make" "[$currentStepCounter-4] Compile ParadisEO-EO" $SPY + RETURN=`expr $RETURN + $?` + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when installing Paradiseo-EO" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $EO_INSTALL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_INSTALL_MO) + ########## installing paradiseo-mo ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Installing Paradiseo-MO. Please wait ...' + + execute_cmd "cd $installKitPath/paradiseo-mo/build" "[$currentStepCounter-1] Go in Paradiseo-MO dir" $SPY + RETURN=$? + execute_cmd "cmake ../ -DEOdir=$installKitPath/paradiseo-eo" "[$currentStepCounter-2] Run CMake" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make" "[$currentStepCounter-3] Compile ParadisEO-MO" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make install" "[$currentStepCounter-4] Make install of ParadisEO-MO" $SPY + RETURN=`expr $RETURN + $?` + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when installing Paradiseo-MO" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $MO_INSTALL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_INSTALL_MOEO) + ########## installing MOEO ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Installing Paradiseo-MOEO. Please wait ...' + + execute_cmd "cd $installKitPath/paradiseo-moeo/build" "[$currentStepCounter-1] Go in Paradiseo-MOEO dir" $SPY + RETURN=$? + execute_cmd "cmake ../ -DEOdir=$installKitPath/paradiseo-eo" "[$currentStepCounter-2] Run CMake" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make" "[$currentStepCounter-3] Compile ParadisEO-MOEO" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make install" "[$currentStepCounter-4] Make install ParadisEO-MOEO" $SPY + RETURN=`expr $RETURN + $?` + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when installing Paradiseo-MOEO" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $MOEO_INSTALL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_INSTALL_LIBXML) + ########## installing LIBXML2 ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Installing libxml2. Please wait ...' + + execute_cmd "mkdir $installKitPath/libxml2" "[$currentStepCounter-1] Create libxml2 dir" $SPY + RETURN=$? + execute_cmd "cd $installKitPath/libxml2-2.6.0/" "[$currentStepCounter-2] Go in libxml2-2.6.0 dir" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "./configure --prefix=$installKitPath/libxml2/ --exec-prefix=$installKitPath/libxml2/" "[$currentStepCounter-3] Run configure for libxml2" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make" "[$currentStepCounter-4] Compile libxml2" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make install" "[$currentStepCounter-5] Run install libxml2 " $SPY + RETURN=`expr $RETURN + $?` + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when installing libxml2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $LIBXML_INSTALL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_INSTALL_MPICH) + ########## installing MPICH2 ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Installing mpich2. Please wait ...' + + execute_cmd "mkdir $installKitPath/mpich2" "[$currentStepCounter-1] Create mpich2 dir" $SPY + RETURN=$? + execute_cmd "cd $installKitPath/mpich2-1.0.3/" "[$currentStepCounter-2] Go in mpich2-1.0.3 dir" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "./configure --prefix=$installKitPath/mpich2/" "[$currentStepCounter-3] Run configure for mpich2" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make" "[$currentStepCounter-4] Compile mpich2" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make install" "[$currentStepCounter-5] Run install mpich2 " $SPY + RETURN=`expr $RETURN + $?` + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when installing MPICH2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $MPICH_INSTALL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_REMOVE_TEMP_LIBXML) + ########## removing temp directory for libxml ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Removing libxml2 temp install directory ...' + + execute_cmd "rm -fr $installKitPath/libxml2-2.6.0" "[$currentStepCounter] Remove Libxml2 temporary directory" $SPY + if [ ! "$?" = "0" ] + then + echo '' + echo " --> Error when removing $installKitPath/libxml2-2.6.0" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $REMOVE_TEMP_DIRECTORY_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_REMOVE_TEMP_MPICH) + ########## removing temp directory for mpich ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Removing mpich2 temp install directory ...' + + execute_cmd "rm -fr $installKitPath/mpich2-1.0.3" "[$currentStepCounter] Remove Mpich2 temporary directory" $SPY + if [ ! "$?" = "0" ] + then + echo '' + echo " --> Error when removing $installKitPath/mpich2-1.0.3" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $REMOVE_TEMP_DIRECTORY_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_REMOVE_INSTALL) + ########## removing a previous install of EO ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Removing your previous install of ParadisEO ...' + + + if [ -d "$installKitPath/mpich2" ] + then + execute_cmd "rm -r $installKitPath/mpich2" "[$currentStepCounter] Remove previous install of mpich2" $SPY + fi + idx=$? + + if [ -d "$installKitPath/libxml2" ] + then + execute_cmd "rm -r $installKitPath/libxml2" "[$currentStepCounter] Remove previous install of libxml2" $SPY + fi + idx=`expr $idx + $?` + + if [ ! $(($idx)) = 0 ] + then + echo '' + echo " --> Error when removing previous install of libxml2 and mpich2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $RM_UTIL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_CONFIGURE_MPICH_ENV) + ########## Configuring mpich environment variables ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Configuring environment variables for mpich2 ...' + + execute_cmd "export PATH=$PATH:`xml2-config --prefix`/bin:$installKitPath/mpich2/bin" "[$currentStepCounter-2] Export PATH variable" $SPY + idx=$? + + execute_cmd "echo export PATH=$PATH:$installKitPath/mpich2/bin" "[$currentStepCounter-4] Export PATH variable into env" $SPY $homePath/.bashrc + idx=`expr $idx + $?` + + execute_cmd "source $homePath/.bashrc" "[$currentStepCounter-5] Export variables for mpich2" $SPY + idx=`expr $idx + $?` + + if [ ! $(($idx)) = 0 ] + then + echo '' + echo " --> Error when configuring environment variables for mpich2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $VAR_CONFIG_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_CONFIGURE_LIBXML2_ENV) + ########## Configuring environment variables ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Configuring environment variables for libxml2 ...' + + execute_cmd "XML2_CONFIG=\`xml2-config --prefix\`" "[$currentStepCounter-1] Run xml2-config variable" $SPY + idx=$? + echo "******** $XML2_CONFIG *********" + + execute_cmd "export LD_LIBRARY_PATH=`xml2-config --prefix`/lib:" "[$currentStepCounter-2] Export LD_LIBRARY_PATH variable" $SPY + idx=$? + + execute_cmd "echo export LD_LIBRARY_PATH=$`xml2-config --prefix`/lib" "[$currentStepCounter-3] Export LD_LIBRARY_PATH variable into env" $SPY $homePath/.bashrc + idx=$? + + execute_cmd "echo export PATH=$PATH:`xml2-config --prefix`/bin" "[$currentStepCounter-4] Export PATH variable into env" $SPY $homePath/.bashrc + idx=`expr $idx + $?` + + execute_cmd "source $homePath/.bashrc" "[$currentStepCounter-5] Export variables for libxml2" $SPY + idx=`expr $idx + $?` + + if [ ! $(($idx)) = 0 ] + then + echo '' + echo " --> Error when configuring environment variables for libxml2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $VAR_CONFIG_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_CONFIGURE_ENV) + ########## Configuring environment variables ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Configuring environment variables for libxml2 and mpich2 ...' + + execute_cmd "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$installKitPath/libxml2/lib:" "[$currentStepCounter-1] Export LD_LIBRARY_PATH variable" $SPY + idx=$? + execute_cmd "export PATH=$PATH:$installKitPath/libxml2/bin:$installKitPath/mpich2/bin" "[$currentStepCounter-2] Export PATH variable" $SPY + + execute_cmd "echo export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$installKitPath/libxml2/lib" "[$currentStepCounter-3] Export LD_LIBRARY_PATH variable into env" $SPY $homePath/.bashrc + idx=$? + + execute_cmd "echo export PATH=$PATH:$installKitPath/libxml2/bin:$installKitPath/mpich2/bin" "[$currentStepCounter-4] Export PATH variable into env" $SPY $homePath/.bashrc + idx=`expr $idx + $?` + + execute_cmd "source $homePath/.bashrc" "[$currentStepCounter-5] Export variables" $SPY + idx=`expr $idx + $?` + + if [ ! $(($idx)) = 0 ] + then + echo '' + echo " --> Error when configuring environment variables for libxml2 and mpich2" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $VAR_CONFIG_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + $S_INSTALL_PEO) + ######## installing paradiseo-peo ########## + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Installing Paradiseo-PEO. Please wait ...' + + execute_cmd "cd $installKitPath/paradiseo-peo/build" "[$currentStepCounter-1] Go in Paradiseo-PEO dir" $SPY + RETURN=$? + execute_cmd "cmake ../ -DEOdir=$installKitPath/paradiseo-eo/ -DMOdir=$installKitPath/paradiseo-mo" "[$currentStepCounter-2] Run CMake for ParadisEO-PEO" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make" "[$currentStepCounter-3] Compile ParadisEO-PEO " $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "make install" "[$currentStepCounter-4] Make install ParadisEO-PEO " $SPY + RETURN=`expr $RETURN + $?` + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when installing Paradiseo-PEO" + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $PARADISEO_INSTALL_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_CONFIGURE_MPD) + ######## copy .mpd.conf file in your HOME directory or in /etc if you are root (required for mpich2) + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter \033[0m " + echo ' --> Copy .mpd.conf file in your HOME directory or in /etc if you are root (required for mpich2) ...' + if [ "$UID" = "0" ] + then + execute_cmd "cp $resourceKitPath/.mpd.conf /etc" "[$currentStepCounter-1] Copy mpd.conf file in /etc (root)" $SPY + RETURN=$? + execute_cmd "mv /etc/.mpd.conf /etc/mpd.conf" "[$currentStepCounter-2] Move .mpd.conf to mpd.conf" $SPY + RETURN=`expr $RETURN + $?` + execute_cmd "chmod 600 /etc/mpd.conf" "[$currentStepCounter-3] Change .mpd.conf rights" $SPY + RETURN=`expr $RETURN + $?` + else + execute_cmd "cp $resourceKitPath/.mpd.conf $HOME" "[$currentStepCounter-1] Copy mpd.conf file in in your HOME directory" $SPY + RETURN=$? + execute_cmd "chmod 600 $HOME/.mpd.conf" "[$currentStepCounter-2] Change .mpd.conf rights" $SPY + RETURN=`expr $RETURN + $?` + fi + if [ ! $(($RETURN)) = 0 ] + then + echo '' + echo " --> Error when copying .mpd.conf file " + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $MPD_COPY_ERROR + else + echo -e " \033[40m\033[1;34m# STEP $currentStepCounter OK \033[0m" + echo + return $SUCCESSFUL_STEP + fi + ;; + + $S_PEO_CHECK) + if [ -d paradiseo-eo -a -d paradiseo-mo -a -d paradiseo-moeo ] + then + if [ -d libxml2 -o -d mpich2 ] + then + echo + echo "A previous installation of ParadisEO-PEO may exist because libxml2 or mpich2 directory have been detected in $installKitPath." + echo -e " \033[40m\033[1;33m => Do you want to remove these directories for a new installation ? If you choose NO, the installation will stop. (y/n) ? \033[0m " + read ANSWER + if [ "$ANSWER" = "y" ] + then + execute_cmd "rm -rf $installKitPath/libxml2 $installKitPath/mpich2" "[$currentStepCounter] Remove libxml2 ans mpich2 directories for a new install" $SPY "/dev/null" "/dev/null" + else + return $PEO_CHECK_ERROR + fi + fi + else + echo + echo "Basic install not found (at least one of the EO,MO,MOEO components is missing) in $installKitPath." + + execute_cmd "test -d paradiseo-eo" "[$currentStepCounter-1] Check previous basic install" $SPY + execute_cmd "test -d paradiseo-mo" "[$currentStepCounter-2] Check previous basic install" $SPY + execute_cmd "test -d paradiseo-moeo" "[$currentStepCounter-3] Check previous basic install" $SPY + + echo '' + echo " --> Error when searching for a previous basic install in $installKitPath." + echo -e ' \033[40m\033[1;33m### END ### \033[0m ' + return $BASIC_INSTALL_MISSING_ERROR + fi + ;; + $S_END) + echo -e "\033[40m\033[1;33m### Now please run \"source $homePath/.bashrc\" to save the context ### \033[0m" + sleep 2 + echo + echo + echo '=> ParadisEO install successful.To report any problem or for help, please contact paradiseo-help@lists.gforge.inria.fr' + echo + return $SUCCESSFUL_STEP + ;; + *) + + ;; + esac +} + + +#------------------------------------------------------# +#-- FUNCTION : check_utils_install ---# +#------------------------------------------------------# +#-- PARAMETERS : No ---# +#-- Set some global variables (used for libxml2 ---# +#-- and mpich2 install management) ---# +#------------------------------------------------------# +function check_utils_install +{ + # is there an available version of mpich on the system ? + (mpicxx --version) < /dev/null > /dev/null 2>&1 || + { + IS_MPICH_INSTALLED=0 + } + + # is there an available version of libxml2 on the system ? + (xml2-config --version) < /dev/null > /dev/null 2>&1 || + { + IS_LIBXML2_INSTALLED=0 + } + + # ask the user if he'd like to keep his mpich version instead of the provided one + if [ "$IS_MPICH_INSTALLED" = "1" ] + then + echo + echo -e ' \033[40m\033[1;31m### A version of the MPI compiler has been detected on your system. Do you want to use it (if no, the mpich2 package, provided with ParadisEO, will be installed on your computer) [y/n] \033[0m ' + + execute_cmd "echo \" A version of the MPI compiler has been detected on the system\"" "Is there a previous install of MPI ?" $SPY + + TREATENED=0 + while [ "$TREATENED" = "0" ] + do + read MPICH_YES_NO + if [ ! "$MPICH_YES_NO" = "y" ] && [ ! "$MPICH_YES_NO" = "n" ] + then + TREATENED=0 + else + if [ "$MPICH_YES_NO" = "y" ] + then + USE_EXISTING_MPICH=1 + else + USE_EXISTING_MPICH=0 + fi + TREATENED=1 + fi + done + fi + + + # ask the user if he'd like to keep his libxml2 version instead of the provided one + if [ "$IS_LIBXML2_INSTALLED" = "1" ] + then + echo + echo -e ' \033[40m\033[1;31m### A version of libxml2 has been detected on your system. Do you want to use it (if no, the libxml2 package, provided with ParadisEO, will be installed on your computer) [y/n] \033[0m ' + + execute_cmd "echo \" A version of libxml2 has been detected on the system\"" "Is there a previous install of libxml2 ?" $SPY + + TREATENED=0 + while [ "$TREATENED" = "0" ] + do + read LIBXML2_YES_NO + if [ ! "$LIBXML2_YES_NO" = "y" ] && [ ! "$LIBXML2_YES_NO" = "n" ] + then + TREATENED=0 + else + if [ "$LIBXML2_YES_NO" = "y" ] + then + USE_EXISTING_LIBXML2=1 + else + USE_EXISTING_LIBXML2=0 + fi + TREATENED=1 + fi + done + fi + +} + + + +######################################################## +######### BODY ######## +######################################################### + + +#check if we have all we need +(autoconf --version) < /dev/null > /dev/null 2>&1 || +{ + echo "You must have autoconf installed to compile $PROG. Please update your system to get it before installing $PROG." + execute_cmd "echo \"You must have autoconf installed to compile $PROG. Please update your system to get it before installing $PROG.\"" "[0-1] Check autoconf" $SPY + DIE=1 +} + +(automake --version) < /dev/null > /dev/null 2>&1 || +{ + echo "You must have automake installed to compile $PROG. Please update your system to get it before installing $PROG." + execute_cmd "echo \"You must have automake installed to compile $PROG. Please update your system to get it before installing $PROG.\"" "[0-2] Check autoconf" $SPY + DIE=1 +} + +(cmake --version) < /dev/null > /dev/null 2>&1 || +{ + echo "You must have CMake installed to compile $PROG. Please update your system to get it before installing $PROG." + execute_cmd "echo \"You must have CMake installed to compile $PROG. Please update your system to get it before installing $PROG.\"" "[0-3] Check autoconf" $SPY + DIE=1 +} + + + +if [ "$DIE" = "1" ] +then + exit 1 +fi + + +# main +if [ "$1" = "--help" ] +then + echo + echo 'Use : ./installParadiseo.sh for standard install' + echo + echo 'Use : ./installParadiseo.sh to give your HOME path' + echo 'Example: ./installParadiseo.sh /usr/home/me' + echo + echo '=> For further help, please contact paradiseo-help@lists.gforge.inria.fr' + echo + exit +fi + +# do we have a valid path ? +if [ ! -d $HOME ] +then + if [ "$1" = "" ] + then + echo " Please give a valid path for your home directory (use ./installParadiseo.sh --help for further information)" + else + homePath=$1 + fi +else + homePath=$HOME +fi + + +# simple menu +INSTALL_TREATENED=0 +INSTALL_PATH=$PWD + +while [ ! "$INSTALL_TREATENED" = "1" ] +do + case "$INSTALL_TYPE" in + $P_FULL_INSTALL) + + check_utils_install + + if [ "$USE_EXISTING_MPICH" = "1" ] && [ "$USE_EXISTING_LIBXML2" = "1" ] + then + THE_GOOD_INSTALL=$FULL_INSTALL_WITHOUT_LIBXML2_MPICH2 + + elif [ "$USE_EXISTING_MPICH" = "1" ] && [ "$USE_EXISTING_LIBXML2" = "0" ] + then + THE_GOOD_INSTALL=$FULL_INSTALL_WITHOUT_MPICH + + elif [ "$USE_EXISTING_MPICH" = "0" ] && [ "$USE_EXISTING_LIBXML2" = "1" ] + then + THE_GOOD_INSTALL=$FULL_INSTALL_WITHOUT_LIBXML2 + + elif [ "$USE_EXISTING_MPICH" = "0" ] && [ "$USE_EXISTING_LIBXML2" = "0" ] + then + THE_GOOD_INSTALL=$FULL_INSTALL + else + THE_GOOD_INSTALL=$FULL_INSTALL + fi + + counter=0 + for step in $THE_GOOD_INSTALL + do + run_install_step $INSTALL_PATH $step $counter + on_error $? + counter=`expr $counter + 1` + done + INSTALL_TREATENED=1 + ;; + + $P_BASIC_INSTALL) + counter=0 + for step in $BASIC_INSTALL + do + run_install_step $INSTALL_PATH $step $counter + on_error $? + counter=`expr $counter + 1` + done + INSTALL_TREATENED=1 + ;; + + $P_PARALLEL_INSTALL) + + check_utils_install + + if [ "$USE_EXISTING_MPICH" = "1" ] && [ "$USE_EXISTING_LIBXML2" = "1" ] + then + THE_GOOD_PARALLEL_INSTALL=$PARALLEL_INSTALL_WITHOUT_LIBXML2_MPICH2 + + elif [ "$USE_EXISTING_MPICH" = "1" ] && [ "$USE_EXISTING_LIBXML2" = "0" ] + then + THE_GOOD_PARALLEL_INSTALL=$PARALLEL_INSTALL_WITHOUT_MPICH2 + + elif [ "$USE_EXISTING_MPICH" = "0" ] && [ "$USE_EXISTING_LIBXML2" = "1" ] + then + THE_GOOD_PARALLEL_INSTALL=$PARALLEL_INSTALL_WITHOUT_LIBXML2 + + elif [ "$USE_EXISTING_MPICH" = "0" ] && [ "$USE_EXISTING_LIBXML2" = "0" ] + then + THE_GOOD_PARALLEL_INSTALL=$PARALLEL_INSTALL + else + THE_GOOD_PARALLEL_INSTALL=$PARALLEL_INSTALL + fi + + counter=0 + for step in $THE_GOOD_PARALLEL_INSTALL + do + run_install_step $INSTALL_PATH $step $counter + on_error $? + counter=`expr $counter + 1` + done + INSTALL_TREATENED=1 + ;; + + $P_RM_PREVIOUS_INSTALLL) + counter=0 + for step in $RM_PREVIOUS_INSTALL + do + run_install_step $INSTALL_PATH $step $counter + on_error $? + counter=`expr $counter + 1` + done + INSTALL_TREATENED=1 + ;; + + $P_EXIT_INSTALL) + INSTALL_TREATENED=1 + ;; + + *) + echo + echo -e ' \033[40m\033[1;33m### Please select your install for ParadisEO : ### \033[0m ' + echo + echo " 1 : Full install (all the components : EO,MO,MOEO and PEO)" + echo " 2 : Basic install: only EO,MO and MOEO components will be installed." + echo " 3 : ParadisEO-PEO install. I've already installed the basic version and I want to install ParadisEO-PEO" + echo " 4 : Remove a previous install of ParadisEO located in $INSTALL_PATH" + echo " 5 : Exit install" + read INSTALL_TYPE + ;; + esac +done + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/lib/libxml2-2.6.0.tar.bz2 b/tags/paradiseo-ix86-1.0-beta2/lib/libxml2-2.6.0.tar.bz2 new file mode 100644 index 000000000..9ff2c6f9d Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/lib/libxml2-2.6.0.tar.bz2 differ diff --git a/tags/paradiseo-ix86-1.0-beta2/lib/mpich2-1.0.3.tar.gz b/tags/paradiseo-ix86-1.0-beta2/lib/mpich2-1.0.3.tar.gz new file mode 100644 index 000000000..676719b2a Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/lib/mpich2-1.0.3.tar.gz differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/AUTHORS b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/AUTHORS new file mode 100644 index 000000000..6bb4943d4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/AUTHORS @@ -0,0 +1 @@ +Documentation : boisson@lifl.fr diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/CMakeLists.txt new file mode 100644 index 000000000..bea386899 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/CMakeLists.txt @@ -0,0 +1,111 @@ + +###################################################################################### +### 0) If you want to set your variables in mo-conf.cmake and avoid the cmd line +###################################################################################### + +INCLUDE(mo-conf.cmake OPTIONAL) + +###################################################################################### + + +###################################################################################### +### 1) Main project config +###################################################################################### + +# set the project name +PROJECT(ParadisEO-MO) + +# check cmake version compatibility +CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) + +# regular expression checking +INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") + +# set a language for the entire project. +ENABLE_LANGUAGE(CXX) +ENABLE_LANGUAGE(C) + +##################################################################################### + + +##################################################################################### +### 2) Include required modules +##################################################################################### +INCLUDE(CMakeBackwardCompatibilityCXX) + +INCLUDE(FindDoxygen) + +INCLUDE(FindGnuplot) + +# check for some functions +INCLUDE(CheckLibraryExists) + +###################################################################################### + + +###################################################################################### +### 3) SET main paths (can be defined in mo-conf.cmake) +###################################################################################### + +IF(NOT DEFINED MO_DIR) + SET(MO_DIR ${ParadisEO-MO_SOURCE_DIR} CACHE PATH "ParadisEO-MO main directory") +ENDIF(NOT DEFINED MO_DIR) + +# Need main EO directory path +IF(NOT DEFINED EO_DIR OR NOT EO_DIR) + SET(EO_DIR ${EOdir} CACHE PATH "ParadisEO-EO main directory" FORCE) # given on the command line +ELSE(NOT DEFINED EO_DIR OR NOT EO_DIR) + MESSAGE(STATUS "EOdir already defined as ${EO_DIR}") +ENDIF(NOT DEFINED EO_DIR OR NOT EO_DIR) + +# Set the main paths +IF(NOT DEFINED EO_SRC_DIR) + SET(EO_SRC_DIR "${EO_DIR}/src") +ENDIF(NOT DEFINED EO_SRC_DIR) + +IF(NOT DEFINED MO_SRC_DIR) + SET(MO_SRC_DIR ${MO_DIR}/src) +ENDIF(NOT DEFINED MO_SRC_DIR) + +IF(NOT DEFINED MO_DOC_DIR) + SET(MO_DOC_DIR ${MO_DIR}/doc) +ENDIF(NOT DEFINED MO_DOC_DIR) +###################################################################################### + + +###################################################################################### +### 4) Paths checking +###################################################################################### +IF(EXISTS ${EO_DIR}) + MESSAGE (STATUS "Using ParadisEO-EO path: ${EO_DIR}") +ELSE(EXISTS ${EO_DIR}) + MESSAGE (FATAL_ERROR "Could not find the ParadisEO-EO path: ${EO_DIR}. You should use : cmake . -DEOdir=") +ENDIF(EXISTS ${EO_DIR}) + +# Is it an absolute path ? +IF(WIN32) + SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") +ELSE(WIN32) + SET (ABSOLUTE_PATH_REGEX "^/") +ENDIF(WIN32) + +IF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + MESSAGE (FATAL_ERROR "${EO_DIR} MUST BE an absolute path") +ENDIF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + +IF(WIN32) + SET(EO_LIB_DIR "${EO_DIR}\\win\\lib\\") +ELSE(WIN32) + SET(EO_LIB_DIR "${EO_DIR}/src") +ENDIF(WIN32) + +###################################################################################### + + +###################################################################################### +### 5) Where must cmake go now ? +###################################################################################### + +SUBDIRS(doc tutorial) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/NEWS b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/NEWS new file mode 100644 index 000000000..e69de29bb diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/README b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/README new file mode 100644 index 000000000..2ec907692 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/README @@ -0,0 +1,77 @@ + PARADISEO-MO README FILE +======================================================================= + +======================================================================= + +Welcome to PARADISEO-MO (Moving Objects), one part of the ParadisEO framework. + +======================================================================= + BUILDING PARADISEO-MO +======================================================================= +The basic installation procedure goes the following: + +To compile paradiseo-mo in the default directory, +go to paradiseo-mo/build/ and run: + > cmake ../ -DEOdir=$(EO) + > make + // for an easy-use of the provided lessons + > make install + // optional (if the documentation is not already available) + > make doc + +To compile paradiseo-mo anywhere else, simply run: + > cmake $(MO) -DEOdir=$(EO) + > make + // for an easy-use of the provided lessons + > make install + // optional (if the documentation is not already available) + > make doc + +where $(EO) is the top-level directory of PARADISEO-EO, + and $(MO) is the top-level directory of PARADISEO-MO. + +To clean everything, simply run + > make clean + +====================================================================== + DIRECTORY STRUCTURE +====================================================================== +After unpacking the archive file, you should end up with the following +structure: + +.../ The MAIN PARADISEO-MO directory, created when unpacking. + | + +-- build Repertory where the executables will be produced. + | + | + +-- src SOURCE directory contains most PARADISEO-MO .h files. + | + | + +-- doc DOCUMENTATION directory (generated by Doxygen). + | | + | +- html HTML files - start at index.html. + | | + | +- latex latex files - use to generate Postcript doc. + | | + | +- man Unix man format documentation. + | + | + +-- tutorial TUTORIAL with lessons + | + +- examples APPLICATIONS - one directory per separate application. + | | + | +- tsp traveling salesman problem (TSP) example sources. + | | + | +- benchs TSP instance files. + | + +- Lesson1 How make a Hill Climbing on the TSP example (source file and lesson_1.pdf). + | + +- Lesson2 How make a Tabu Search on the TSP example (source file and lesson_2.pdf). + | + +- Lesson3 How make a Simulated Annealing on the TSP example (source file and lesson_3.pdf). + +=================================================================== + NOTES +=================================================================== + +Mailing list : paradiseo-help@lists.gforge.inria.fr diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/CMakeLists.txt new file mode 100755 index 000000000..7546c18d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/CMakeLists.txt @@ -0,0 +1,38 @@ + +### ParadisEO-MO Doc generation using Doxygen ### + +# Find the Doxygen package - will set all the variables required to use Doxygen +FIND_PACKAGE(Doxygen) + +IF (DOXYGEN_FOUND) + +SET(MO_DOC_COMMENT "ParadisEO-MO framework documentation") +SET(DOXYGEN_INPUT "mo.doxyfile") +SET(DOXYGEN_OUTPUT "ParadisEO-MO documentation") + +ADD_CUSTOM_COMMAND( + OUTPUT ${DOXYGEN_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from ${MO_DOC_DIR} ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo "Done." + WORKING_DIRECTORY ${MO_DOC_DIR} + COMMENT ${MO_DOC_COMMENT} + DEPENDS ${DOXYGEN_INPUT} + ) + +# The main target launched with "make doc" +ADD_CUSTOM_TARGET(doc DEPENDS ${DOXYGEN_OUTPUT}) + +# A forced additionnal target that generate the documentation in the current directory +ADD_CUSTOM_TARGET(doc_forced + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from current directory ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo " Done." + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + +ELSE (DOXYGEN_FOUND) + MESSAGE(STATUS "Unable to generate the document, Doxygen package not found") +ENDIF (DOXYGEN_FOUND) + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/annotated.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/annotated.html new file mode 100644 index 000000000..467c34a38 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/annotated.html @@ -0,0 +1,68 @@ + + +PARADISEO-MO: Class List + + + + +
+
+ +

PARADISEO-MO Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EmptySelectionSpecial class that describes the case of no selection
moAlgo< EOT >Description of an algorithm of the paradiseo-mo library
moAspirCrit< M >Description of the conditions in which a tabu move could be accepted
moBestImprSelect< M >One of the possible moMoveSelect
moCoolingScheduleThis class gives the description of a cooling schedule
moExponentialCoolingScheduleOne of the possible moCoolingSchedule
moFirstImprSelect< M >One possible moMoveSelect
moGenSolContinue< EOT >One possible stop criterion for a solution-based heuristic
moHC< M >Hill Climbing (HC)
moHCMoveLoopExpl< M >Iterative explorer used by a moHC
moImprBestFitAspirCrit< M >One of the possible moAspirCrit
moItRandNextMove< M >One of the possible moNextMove
moLinearCoolingScheduleOne of the possible moCoolingSchedule
moLSCheckPoint< M >Class which allows a checkpointing system
moMove< EOT >Definition of a move
moMoveExpl< M >Description of a move (moMove) explorer
moMoveIncrEval< M >(generally) Efficient evaluation function based a move and a solution
moMoveInit< M >Move (moMove) initializer
moMoveLoopExpl< M >Class which describes an iterative explorer
moMoveSelect< M >Class that describes a move selector (moMove)
moNextMove< M >Class which allows to generate a new move (moMove)
moNoAspirCrit< M >One of the possible aspiration criterion (moAspirCrit)
moRandImprSelect< M >One of the possible moMove selector (moMoveSelect)
moRandMove< M >Random move generator
moSA< M >Simulated Annealing (SA)
moSimpleMoveTabuList< M >Class describing a move tabu list with a limited memory
moSimpleSolutionTabuList< M >Class describing a solution tabu list with limited length
moSolContinue< EOT >Class that describes a stop criterion for a solution-based heuristic
moTabuList< M >Class describing a tabu list that a moTS uses
moTS< M >Tabu Search (TS)
moTSMoveLoopExpl< M >Explorer for a Tabu Search algorithm
+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/class_empty_selection.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/class_empty_selection.html new file mode 100644 index 000000000..4e89d7055 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/class_empty_selection.html @@ -0,0 +1,52 @@ + + +PARADISEO-MO: EmptySelection Class Reference + + + + +
+
+ +

EmptySelection Class Reference

Special class that describes the case of no selection. +More... +

+#include <moMoveSelect.h> +

+ + +
+


Detailed Description

+Special class that describes the case of no selection. +

+This class is used as an exception that can be thrown if a solution selector has completly failed. +

+ +

+Definition at line 21 of file moMoveSelect.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classes.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classes.html new file mode 100644 index 000000000..2dfd3b2b5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classes.html @@ -0,0 +1,52 @@ + + +PARADISEO-MO: Alphabetical List + + + + +
+
+ +

PARADISEO-MO Class Index

A | B | C | E | F | G | H | I | L | M | N | R | S | T

+ +
  A  
+
moHC   
  N  
+
moAlgo   moHCMoveLoopExpl   moNextMove   
moAspirCrit   
  I  
+
moNoAspirCrit   
  B  
+
moImprBestFitAspirCrit   
  R  
+
moBestImprSelect   moItRandNextMove   moRandImprSelect   
  C  
+
  L  
+
moRandMove   
moCoolingSchedule   moLinearCoolingSchedule   
  S  
+
  E  
+
moLSCheckPoint   moSA   
EmptySelection   
  M  
+
moSimpleMoveTabuList   
moExponentialCoolingSchedule   moMove   moSimpleSolutionTabuList   
  F  
+
moMoveExpl   moSolContinue   
moFirstImprSelect   moMoveIncrEval   
  T  
+
  G  
+
moMoveInit   moTabuList   
moGenSolContinue   moMoveLoopExpl   moTS   
  H  
+
moMoveSelect   moTSMoveLoopExpl   

A | B | C | E | F | G | H | I | L | M | N | R | S | T

+


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo-members.html new file mode 100644 index 000000000..6bbf77bab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo-members.html @@ -0,0 +1,47 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moAlgo< EOT > Member List

This is the complete list of members for moAlgo< EOT >, including all inherited members.

+ + + + + + + + + + + +
className() const eoMonOp< EOT > [virtual]
eoMonOp()eoMonOp< EOT >
eoOp(OpType _type)eoOp< EOType >
eoOp(const eoOp &_eop)eoOp< EOType >
functor_category()eoUF< EOT &, bool > [static]
getType() const eoOp< EOType >
operator()(EOT &)=0eoUF< EOT &, bool > [pure virtual]
OpType enum nameeoOp< EOType >
~eoFunctorBase()eoFunctorBase [virtual]
~eoOp()eoOp< EOType > [virtual]
~eoUF()eoUF< EOT &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo.html new file mode 100644 index 000000000..3112bc160 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo.html @@ -0,0 +1,63 @@ + + +PARADISEO-MO: moAlgo< EOT > Class Template Reference + + + + +
+
+ +

moAlgo< EOT > Class Template Reference

Description of an algorithm of the paradiseo-mo library. +More... +

+#include <moAlgo.h> +

+

Inheritance diagram for moAlgo< EOT >: +

+ +eoMonOp< EOT > +eoOp< EOType > +eoUF< EOT &, bool > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class EOT>
+ class moAlgo< EOT >

+ +Description of an algorithm of the paradiseo-mo library. +

+moHC, moTS and moSA are 3 examples of algorithm of the paradiseo-mo library. +

+ +

+Definition at line 21 of file moAlgo.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo.png new file mode 100644 index 000000000..7c245ada8 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_algo.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit-members.html new file mode 100644 index 000000000..2b6c0687b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit-members.html @@ -0,0 +1,41 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moAspirCrit< M > Member List

This is the complete list of members for moAspirCrit< M >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
init()=0moAspirCrit< M > [pure virtual]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit.html new file mode 100644 index 000000000..caee932ea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit.html @@ -0,0 +1,93 @@ + + +PARADISEO-MO: moAspirCrit< M > Class Template Reference + + + + +
+
+ +

moAspirCrit< M > Class Template Reference

Description of the conditions in which a tabu move could be accepted. +More... +

+#include <moAspirCrit.h> +

+

Inheritance diagram for moAspirCrit< M >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moImprBestFitAspirCrit< M > +moNoAspirCrit< M > + +List of all members. + + + + + +

Public Member Functions

virtual void init ()=0
 Procedure which initialises all that needs a aspiration criterion.
+

Detailed Description

+

template<class M>
+ class moAspirCrit< M >

+ +Description of the conditions in which a tabu move could be accepted. +

+It is only a description... An object that herits from this class is needed to be used in a moTS. See moNoAspriCrit for example. +

+ +

+Definition at line 22 of file moAspirCrit.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + +
virtual void moAspirCrit< M >::init (  )  [pure virtual]
+
+
+ +

+Procedure which initialises all that needs a aspiration criterion. +

+It can be possible that this procedure do nothing... +

+Implemented in moImprBestFitAspirCrit< M >, and moNoAspirCrit< M >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit.png new file mode 100644 index 000000000..e6cefe1bf Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_aspir_crit.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select-members.html new file mode 100644 index 000000000..11f9293af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select-members.html @@ -0,0 +1,46 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moBestImprSelect< M > Member List

This is the complete list of members for moBestImprSelect< M >, including all inherited members.

+ + + + + + + + + + +
best_fitmoBestImprSelect< M > [private]
best_movemoBestImprSelect< M > [private]
first_timemoBestImprSelect< M > [private]
Fitness typedefmoBestImprSelect< M >
functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
init(const Fitness &__fit)moBestImprSelect< M > [inline, virtual]
operator()(M &__move, Fitness &__fit)moBestImprSelect< M > [inline, virtual]
update(const M &__move, const Fitness &__fit)moBestImprSelect< M > [inline, virtual]
~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select.html new file mode 100644 index 000000000..afd96fef2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select.html @@ -0,0 +1,189 @@ + + +PARADISEO-MO: moBestImprSelect< M > Class Template Reference + + + + +
+
+ +

moBestImprSelect< M > Class Template Reference

One of the possible moMoveSelect. +More... +

+#include <moBestImprSelect.h> +

+

Inheritance diagram for moBestImprSelect< M >: +

+ +moMoveSelect< M > +eoBF< M &, M::EOType::Fitness &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

+void init (const Fitness &__fit)
 Procedure which initialise the exploration.
bool update (const M &__move, const Fitness &__fit)
 Function that indicates if the current move has not improved the fitness.
void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
 Procedure which saved the best move and fitness.

Private Attributes

+bool first_time
 Allowing to know if at least one move has been generated.
+M best_move
 The best move.
+Fitness best_fit
 The best fitness.
+

Detailed Description

+

template<class M>
+ class moBestImprSelect< M >

+ +One of the possible moMoveSelect. +

+All neighbors are considered, and the movement which enables the best improvement is selected. +

+ +

+Definition at line 22 of file moBestImprSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moBestImprSelect< M >::update (const M &  __move,
const Fitness __fit 
) [inline, virtual]
+
+
+ +

+Function that indicates if the current move has not improved the fitness. +

+If the given fitness enables an improvment, the move (moMove) and the fitness linked to this move are saved.

+

Parameters:
+ + + +
__move a move.
__fit a fitness linked to the move.
+
+
Returns:
TRUE if the move does not improve the fitness.
+ +

+Implements moMoveSelect< M >. +

+Definition at line 47 of file moBestImprSelect.h. +

+References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moBestImprSelect< M >::operator() (M &  __move,
Fitness __fit 
) throw (EmptySelection) [inline, virtual]
+
+
+ +

+Procedure which saved the best move and fitness. +

+

Parameters:
+ + + +
__move the current move (result of the procedure).
__fit the current fitness (result of the procedure).
+
+
Exceptions:
+ + +
EmptySelection if no move has improved the fitness.
+
+ +

+Implements eoBF< M &, M::EOType::Fitness &, void >. +

+Definition at line 68 of file moBestImprSelect.h. +

+References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select.png new file mode 100644 index 000000000..e803a39a4 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_best_impr_select.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule-members.html new file mode 100644 index 000000000..ea25f1e64 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moCoolingSchedule Member List

This is the complete list of members for moCoolingSchedule, including all inherited members.

+ + + + +
functor_category()eoUF< double &, bool > [static]
operator()(double &)=0eoUF< double &, bool > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< double &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule.html new file mode 100644 index 000000000..128844bb1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule.html @@ -0,0 +1,60 @@ + + +PARADISEO-MO: moCoolingSchedule Class Reference + + + + +
+
+ +

moCoolingSchedule Class Reference

This class gives the description of a cooling schedule. +More... +

+#include <moCoolingSchedule.h> +

+

Inheritance diagram for moCoolingSchedule: +

+ +eoUF< double &, bool > +eoFunctorBase +moExponentialCoolingSchedule +moLinearCoolingSchedule + +List of all members. + +
+

Detailed Description

+This class gives the description of a cooling schedule. +

+It is only a description... An object that herits from this class is needed to be used in a moSA. See moExponentialCoolingSchedule or moLinearCoolingSchedule for example. +

+ +

+Definition at line 22 of file moCoolingSchedule.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule.png new file mode 100644 index 000000000..f60c26373 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_cooling_schedule.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule-members.html new file mode 100644 index 000000000..32f66b6aa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moExponentialCoolingSchedule Member List

This is the complete list of members for moExponentialCoolingSchedule, including all inherited members.

+ + + + + + + +
functor_category()eoUF< double &, bool > [static]
moExponentialCoolingSchedule(double __threshold, double __ratio)moExponentialCoolingSchedule [inline]
operator()(double &__temp)moExponentialCoolingSchedule [inline, virtual]
ratiomoExponentialCoolingSchedule [private]
thresholdmoExponentialCoolingSchedule [private]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< double &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule.html new file mode 100644 index 000000000..663a0c774 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule.html @@ -0,0 +1,151 @@ + + +PARADISEO-MO: moExponentialCoolingSchedule Class Reference + + + + +
+
+ +

moExponentialCoolingSchedule Class Reference

One of the possible moCoolingSchedule. +More... +

+#include <moExponentialCoolingSchedule.h> +

+

Inheritance diagram for moExponentialCoolingSchedule: +

+ +moCoolingSchedule +eoUF< double &, bool > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moExponentialCoolingSchedule (double __threshold, double __ratio)
 Simple constructor.
bool operator() (double &__temp)
 Function which proceeds to the cooling.

Private Attributes

+double threshold
 The temperature threhold.
+double ratio
 The decreasing factor of the temperature.
+

Detailed Description

+One of the possible moCoolingSchedule. +

+An other very simple cooling schedule, the temperature decrease according to a ratio while the temperature is greater than a given threshold. +

+ +

+Definition at line 22 of file moExponentialCoolingSchedule.h.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
moExponentialCoolingSchedule::moExponentialCoolingSchedule (double  __threshold,
double  __ratio 
) [inline]
+
+
+ +

+Simple constructor. +

+

Parameters:
+ + + +
__threshold the threshold.
__ratio the ratio used to descrease the temperature.
+
+ +

+Definition at line 31 of file moExponentialCoolingSchedule.h. +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
bool moExponentialCoolingSchedule::operator() (double &  __temp  )  [inline, virtual]
+
+
+ +

+Function which proceeds to the cooling. +

+It decreases the temperature and indicates if it is greater than the threshold.

+

Parameters:
+ + +
__temp the current temperature.
+
+
Returns:
if the new temperature (current temperature * ratio) is greater than the threshold.
+ +

+Implements eoUF< double &, bool >. +

+Definition at line 41 of file moExponentialCoolingSchedule.h. +

+References ratio, and threshold. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule.png new file mode 100644 index 000000000..02c711475 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_exponential_cooling_schedule.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select-members.html new file mode 100644 index 000000000..7735aa3d2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select-members.html @@ -0,0 +1,48 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moFirstImprSelect< M > Member List

This is the complete list of members for moFirstImprSelect< M >, including all inherited members.

+ + + + + + + + + + + + +
best_fitmoFirstImprSelect< M > [private]
best_movemoFirstImprSelect< M > [private]
Fitness typedefmoFirstImprSelect< M >
functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
init(const Fitness &__fit)moFirstImprSelect< M > [inline, virtual]
init_fitmoFirstImprSelect< M > [private]
operator()(M &__move, Fitness &__fit)moFirstImprSelect< M > [inline, virtual]
update(const M &__move, const typename M::EOType::Fitness &__fit)moFirstImprSelect< M > [inline]
moMoveSelect::update(const M &__move, const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
validmoFirstImprSelect< M > [private]
~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select.html new file mode 100644 index 000000000..2ce659c94 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select.html @@ -0,0 +1,220 @@ + + +PARADISEO-MO: moFirstImprSelect< M > Class Template Reference + + + + +
+
+ +

moFirstImprSelect< M > Class Template Reference

One possible moMoveSelect. +More... +

+#include <moFirstImprSelect.h> +

+

Inheritance diagram for moFirstImprSelect< M >: +

+ +moMoveSelect< M > +eoBF< M &, M::EOType::Fitness &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

virtual void init (const Fitness &__fit)
 Procedure which initialise the exploration.
bool update (const M &__move, const typename M::EOType::Fitness &__fit)
 Function that indicates if the current move has not improved the fitness.
void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
 Procedure which saved the best move and fitness.

Private Attributes

+bool valid
 Allow to know if at least one move has improved the solution.
+M best_move
 Best stored movement.
+Fitness init_fit
 Initial fitness.
+Fitness best_fit
 Best stored fitness.
+

Detailed Description

+

template<class M>
+ class moFirstImprSelect< M >

+ +One possible moMoveSelect. +

+The neighborhood is explored until a move enables an improvment of the current solution. +

+ +

+Definition at line 23 of file moFirstImprSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
virtual void moFirstImprSelect< M >::init (const Fitness __fit  )  [inline, virtual]
+
+
+ +

+Procedure which initialise the exploration. +

+It save the current fitness as the initial value for the fitness. +

+Implements moMoveSelect< M >. +

+Definition at line 35 of file moFirstImprSelect.h. +

+References moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moFirstImprSelect< M >::update (const M &  __move,
const typename M::EOType::Fitness &  __fit 
) [inline]
+
+
+ +

+Function that indicates if the current move has not improved the fitness. +

+If the given fitness enables an improvment, the move (moMove) should be applied to the current solution.

+

Parameters:
+ + + +
__move a move.
__fit a fitness linked to the move.
+
+
Returns:
TRUE if the move does not improve the fitness.
+ +

+Definition at line 52 of file moFirstImprSelect.h. +

+References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moFirstImprSelect< M >::operator() (M &  __move,
Fitness __fit 
) throw (EmptySelection) [inline, virtual]
+
+
+ +

+Procedure which saved the best move and fitness. +

+

Parameters:
+ + + +
__move the current move (result of the procedure).
__fit the current fitness (result of the procedure).
+
+
Exceptions:
+ + +
EmptySelection if no move has improved the fitness.
+
+ +

+Implements eoBF< M &, M::EOType::Fitness &, void >. +

+Definition at line 76 of file moFirstImprSelect.h. +

+References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, and moFirstImprSelect< M >::valid. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select.png new file mode 100644 index 000000000..a2a1234c8 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_first_impr_select.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue-members.html new file mode 100644 index 000000000..396a8c198 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue-members.html @@ -0,0 +1,44 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moGenSolContinue< EOT > Member List

This is the complete list of members for moGenSolContinue< EOT >, including all inherited members.

+ + + + + + + + +
functor_category()eoUF< const EOT &, bool > [static]
init()moGenSolContinue< EOT > [inline, virtual]
maxNumGenmoGenSolContinue< EOT > [private]
moGenSolContinue(unsigned int __maxNumGen)moGenSolContinue< EOT > [inline]
numGenmoGenSolContinue< EOT > [private]
operator()(const EOT &__sol)moGenSolContinue< EOT > [inline, virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const EOT &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue.html new file mode 100644 index 000000000..4a1ba7c40 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue.html @@ -0,0 +1,180 @@ + + +PARADISEO-MO: moGenSolContinue< EOT > Class Template Reference + + + + +
+
+ +

moGenSolContinue< EOT > Class Template Reference

One possible stop criterion for a solution-based heuristic. +More... +

+#include <moGenSolContinue.h> +

+

Inheritance diagram for moGenSolContinue< EOT >: +

+ +moSolContinue< EOT > +eoUF< const EOT &, bool > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moGenSolContinue (unsigned int __maxNumGen)
 Simple constructor.
bool operator() (const EOT &__sol)
 Function that activates the stop criterion.
void init ()
 Procedure which allows to initialise the generation counter.

Private Attributes

+unsigned int maxNumGen
 Iteration maximum number.
+unsigned int numGen
 Iteration current number.
+

Detailed Description

+

template<class EOT>
+ class moGenSolContinue< EOT >

+ +One possible stop criterion for a solution-based heuristic. +

+The stop criterion corresponds to a maximum number of iteration. +

+ +

+Definition at line 21 of file moGenSolContinue.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
moGenSolContinue< EOT >::moGenSolContinue (unsigned int  __maxNumGen  )  [inline]
+
+
+ +

+Simple constructor. +

+

Parameters:
+ + +
__maxNumGen the maximum number of generation.
+
+ +

+Definition at line 30 of file moGenSolContinue.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
bool moGenSolContinue< EOT >::operator() (const EOT &  __sol  )  [inline, virtual]
+
+
+ +

+Function that activates the stop criterion. +

+Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations.

+

Parameters:
+ + +
__sol the current solution.
+
+
Returns:
TRUE or FALSE according to the current generation number.
+ +

+Implements eoUF< const EOT &, bool >. +

+Definition at line 44 of file moGenSolContinue.h. +

+References moGenSolContinue< EOT >::maxNumGen, and moGenSolContinue< EOT >::numGen. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void moGenSolContinue< EOT >::init (  )  [inline, virtual]
+
+
+ +

+Procedure which allows to initialise the generation counter. +

+It can also be used to reset the iteration counter. +

+Implements moSolContinue< EOT >. +

+Definition at line 54 of file moGenSolContinue.h. +

+References moGenSolContinue< EOT >::numGen. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue.png new file mode 100644 index 000000000..b40e34991 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_gen_sol_continue.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c-members.html new file mode 100644 index 000000000..5e9d83be0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c-members.html @@ -0,0 +1,53 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moHC< M > Member List

This is the complete list of members for moHC< M >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
className() const eoMonOp< M::EOType > [virtual]
eoMonOp()eoMonOp< M::EOType >
eoOp(OpType _type)eoOp< EOType >
eoOp(const eoOp &_eop)eoOp< EOType >
EOT typedefmoHC< M > [private]
Fitness typedefmoHC< M > [private]
full_evalmoHC< M > [private]
functor_category()eoUF< M::EOType &, bool > [static]
getType() const eoOp< EOType >
moHC(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)moHC< M > [inline]
moHC(moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)moHC< M > [inline]
move_explmoHC< M > [private]
operator()(EOT &__sol)moHC< M > [inline, virtual]
OpType enum nameeoOp< EOType >
~eoFunctorBase()eoFunctorBase [virtual]
~eoOp()eoOp< EOType > [virtual]
~eoUF()eoUF< M::EOType &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c.html new file mode 100644 index 000000000..bdee812c1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c.html @@ -0,0 +1,236 @@ + + +PARADISEO-MO: moHC< M > Class Template Reference + + + + +
+
+ +

moHC< M > Class Template Reference

Hill Climbing (HC). +More... +

+#include <moHC.h> +

+

Inheritance diagram for moHC< M >: +

+ +moAlgo< M::EOType > +eoMonOp< M::EOType > +eoOp< EOType > +eoUF< M::EOType &, bool > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moHC (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select, eoEvalFunc< EOT > &__full_eval)
 Full constructor.
 moHC (moMoveExpl< M > &__move_expl, eoEvalFunc< EOT > &__full_eval)
 Light constructor.
bool operator() (EOT &__sol)
 Function which launches the HC.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef EOT::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveExpl< M > & move_expl
 Complete exploration of the neighborhood.
+eoEvalFunc< EOT > & full_eval
 A full evaluation function.
+

Detailed Description

+

template<class M>
+ class moHC< M >

+ +Hill Climbing (HC). +

+Class which describes the algorithm for a hill climbing. +

+ +

+Definition at line 26 of file moHC.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moHC< M >::moHC (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moMoveSelect< M > &  __move_select,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Full constructor. +

+All the boxes are given in order the HC to use a moHCMoveLoopExpl.

+

Parameters:
+ + + + + + +
__move_init a move initialiser.
__next_move a neighborhood explorer.
__incr_eval a (generally) efficient evaluation function.
__move_select a move selector.
__full_eval a full evaluation function.
+
+ +

+Definition at line 53 of file moHC.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
moHC< M >::moHC (moMoveExpl< M > &  __move_expl,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Light constructor. +

+This constructor allow to use another moMoveExpl (generally not a moHCMoveLoopExpl).

+

Parameters:
+ + + +
__move_expl a complete explorer.
__full_eval a full evaluation function.
+
+ +

+Definition at line 67 of file moHC.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
bool moHC< M >::operator() (EOT __sol  )  [inline, virtual]
+
+
+ +

+Function which launches the HC. +

+The HC has to improve a current solution. As the moSA and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm.

+

Parameters:
+ + +
__sol a current solution to improve.
+
+
Returns:
TRUE.
+ +

+Implements eoUF< M::EOType &, bool >. +

+Definition at line 82 of file moHC.h. +

+References moHC< M >::full_eval, and moHC< M >::move_expl. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c.png new file mode 100644 index 000000000..6a4aadb1e Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl-members.html new file mode 100644 index 000000000..9a5d25f7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl-members.html @@ -0,0 +1,47 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moHCMoveLoopExpl< M > Member List

This is the complete list of members for moHCMoveLoopExpl< M >, including all inherited members.

+ + + + + + + + + + + +
EOT typedefmoHCMoveLoopExpl< M > [private]
Fitness typedefmoHCMoveLoopExpl< M > [private]
functor_category()eoBF< const M::EOType &, M::EOType &, void > [static]
incr_evalmoHCMoveLoopExpl< M > [private]
moHCMoveLoopExpl(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select)moHCMoveLoopExpl< M > [inline]
move_initmoHCMoveLoopExpl< M > [private]
move_selectmoHCMoveLoopExpl< M > [private]
next_movemoHCMoveLoopExpl< M > [private]
operator()(const EOT &__old_sol, EOT &__new_sol)moHCMoveLoopExpl< M > [inline, virtual]
~eoBF()eoBF< const M::EOType &, M::EOType &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl.html new file mode 100644 index 000000000..65fa66c00 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl.html @@ -0,0 +1,198 @@ + + +PARADISEO-MO: moHCMoveLoopExpl< M > Class Template Reference + + + + +
+
+ +

moHCMoveLoopExpl< M > Class Template Reference

Iterative explorer used by a moHC. +More... +

+#include <moHCMoveLoopExpl.h> +

+

Inheritance diagram for moHCMoveLoopExpl< M >: +

+ +moMoveLoopExpl< M > +moMoveExpl< M > +eoBF< const M::EOType &, M::EOType &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moHCMoveLoopExpl (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moMoveSelect< M > &__move_select)
 Constructor.
void operator() (const EOT &__old_sol, EOT &__new_sol)
 Procedure which launches the explorer.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveInit< M > & move_init
 Move initialiser.
+moNextMove< M > & next_move
 Neighborhood explorer.
+moMoveIncrEval< M > & incr_eval
 (generally) Efficient evaluation.
+moMoveSelect< M > & move_select
 Move selector.
+

Detailed Description

+

template<class M>
+ class moHCMoveLoopExpl< M >

+ +Iterative explorer used by a moHC. +

+ +

+Definition at line 23 of file moHCMoveLoopExpl.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moHCMoveLoopExpl< M >::moHCMoveLoopExpl (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moMoveSelect< M > &  __move_select 
) [inline]
+
+
+ +

+Constructor. +

+All the boxes have to be specified.

+

Parameters:
+ + + + + +
__move_init the move initialiser.
__next_move the neighborhood explorer.
__incr_eval (generally) efficient evaluation function.
__move_select the move selector.
+
+ +

+Definition at line 43 of file moHCMoveLoopExpl.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moHCMoveLoopExpl< M >::operator() (const EOT __old_sol,
EOT __new_sol 
) [inline, virtual]
+
+
+ +

+Procedure which launches the explorer. +

+The exploration starts from an old solution and provides a new solution.

+

Parameters:
+ + + +
__old_sol the current solution.
__new_sol the new_sol (result of the procedure).
+
+ +

+Implements eoBF< const M::EOType &, M::EOType &, void >. +

+Definition at line 59 of file moHCMoveLoopExpl.h. +

+References moHCMoveLoopExpl< M >::incr_eval, moHCMoveLoopExpl< M >::move_init, moHCMoveLoopExpl< M >::move_select, and moHCMoveLoopExpl< M >::next_move. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl.png new file mode 100644 index 000000000..8c76fd46e Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_h_c_move_loop_expl.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit-members.html new file mode 100644 index 000000000..d5590a3de --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit-members.html @@ -0,0 +1,46 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moImprBestFitAspirCrit< M > Member List

This is the complete list of members for moImprBestFitAspirCrit< M >, including all inherited members.

+ + + + + + + + + + +
best_fitmoImprBestFitAspirCrit< M > [private]
first_timemoImprBestFitAspirCrit< M > [private]
Fitness typedefmoImprBestFitAspirCrit< M >
functor_category()eoBF< A1, A2, R > [static]
init()moImprBestFitAspirCrit< M > [inline, virtual]
moImprBestFitAspirCrit()moImprBestFitAspirCrit< M > [inline]
operator()(const M &__move, const Fitness &__fit)moImprBestFitAspirCrit< M > [inline]
moAspirCrit::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit.html new file mode 100644 index 000000000..f671cea3f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit.html @@ -0,0 +1,134 @@ + + +PARADISEO-MO: moImprBestFitAspirCrit< M > Class Template Reference + + + + +
+
+ +

moImprBestFitAspirCrit< M > Class Template Reference

One of the possible moAspirCrit. +More... +

+#include <moImprBestFitAspirCrit.h> +

+

Inheritance diagram for moImprBestFitAspirCrit< M >: +

+ +moAspirCrit< M > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

moImprBestFitAspirCrit ()
 Contructor.
+void init ()
 Initialisation procedure.
bool operator() (const M &__move, const Fitness &__fit)
 Function that indicates if the fit is better that the already saved fit.

Private Attributes

+Fitness best_fit
 Best fitness found until now.
+bool first_time
 Indicates that a fitness has been already saved or not.
+

Detailed Description

+

template<class M>
+ class moImprBestFitAspirCrit< M >

+ +One of the possible moAspirCrit. +

+This criterion is satisfied when a given fitness is the best ever considered. +

+ +

+Definition at line 22 of file moImprBestFitAspirCrit.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moImprBestFitAspirCrit< M >::operator() (const M &  __move,
const Fitness __fit 
) [inline]
+
+
+ +

+Function that indicates if the fit is better that the already saved fit. +

+The first time, the function only saved the current move and fitness.

+

Parameters:
+ + + +
__move a move.
__fit a fitnes linked to the move.
+
+
Returns:
TRUE the first time and if __fit > best_fit, else FALSE.
+ +

+Definition at line 52 of file moImprBestFitAspirCrit.h. +

+References moImprBestFitAspirCrit< M >::best_fit, and moImprBestFitAspirCrit< M >::first_time. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit.png new file mode 100644 index 000000000..76e0473f0 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_impr_best_fit_aspir_crit.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move-members.html new file mode 100644 index 000000000..8e1d385c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move-members.html @@ -0,0 +1,46 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moItRandNextMove< M > Member List

This is the complete list of members for moItRandNextMove< M >, including all inherited members.

+ + + + + + + + + + +
EOT typedefmoItRandNextMove< M > [private]
functor_category()eoBF< A1, A2, R > [static]
max_itermoItRandNextMove< M > [private]
moItRandNextMove(moRandMove< M > &__rand_move, unsigned int __max_iter)moItRandNextMove< M > [inline]
num_itermoItRandNextMove< M > [private]
operator()(M &__move, const EOT &__sol)moItRandNextMove< M > [inline]
moNextMove::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
rand_movemoItRandNextMove< M > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move.html new file mode 100644 index 000000000..5727d8f65 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move.html @@ -0,0 +1,176 @@ + + +PARADISEO-MO: moItRandNextMove< M > Class Template Reference + + + + +
+
+ +

moItRandNextMove< M > Class Template Reference

One of the possible moNextMove. +More... +

+#include <moItRandNextMove.h> +

+

Inheritance diagram for moItRandNextMove< M >: +

+ +moNextMove< M > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moItRandNextMove (moRandMove< M > &__rand_move, unsigned int __max_iter)
 The constructor.
bool operator() (M &__move, const EOT &__sol)
 Generation of a new move.

Private Types

+typedef M::EOType EOT
 Alias for the type.

Private Attributes

+moRandMove< M > & rand_move
 A move generator (generally randomly).
+unsigned int max_iter
 Iteration maximum number.
+unsigned int num_iter
 Iteration current number.
+

Detailed Description

+

template<class M>
+ class moItRandNextMove< M >

+ +One of the possible moNextMove. +

+This class is a move (moMove) generator with a bound for the maximum number of iterations. +

+ +

+Definition at line 22 of file moItRandNextMove.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
moItRandNextMove< M >::moItRandNextMove (moRandMove< M > &  __rand_move,
unsigned int  __max_iter 
) [inline]
+
+
+ +

+The constructor. +

+Parameters only for initialising the attributes.

+

Parameters:
+ + + +
__rand_move the random move generator.
__max_iter the iteration maximum number.
+
+ +

+Definition at line 37 of file moItRandNextMove.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moItRandNextMove< M >::operator() (M &  __move,
const EOT __sol 
) [inline]
+
+
+ +

+Generation of a new move. +

+If the maximum number is not already reached, the current move is forgotten and remplaced by another one.

+

Parameters:
+ + + +
__move the current move.
__sol the current solution.
+
+
Returns:
FALSE if the maximum number of iteration is reached, else TRUE.
+ +

+Definition at line 52 of file moItRandNextMove.h. +

+References moItRandNextMove< M >::max_iter, moItRandNextMove< M >::num_iter, and moItRandNextMove< M >::rand_move. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move.png new file mode 100644 index 000000000..3ec8c9761 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_it_rand_next_move.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point-members.html new file mode 100644 index 000000000..205c15646 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moLSCheckPoint< M > Member List

This is the complete list of members for moLSCheckPoint< M >, including all inherited members.

+ + + + + + + +
add(eoBF< const M &, const typename M::EOType &, void > &__f)moLSCheckPoint< M > [inline]
funcmoLSCheckPoint< M > [private]
functor_category()eoBF< A1, A2, R > [static]
operator()(const M &__move, const typename M::EOType &__sol)moLSCheckPoint< M > [inline]
eoBF::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point.html new file mode 100644 index 000000000..43b3aae24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point.html @@ -0,0 +1,153 @@ + + +PARADISEO-MO: moLSCheckPoint< M > Class Template Reference + + + + +
+
+ +

moLSCheckPoint< M > Class Template Reference

Class which allows a checkpointing system. +More... +

+#include <moLSCheckPoint.h> +

+

Inheritance diagram for moLSCheckPoint< M >: +

+ +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

void operator() (const M &__move, const typename M::EOType &__sol)
 Function which launches the checkpointing.
void add (eoBF< const M &, const typename M::EOType &, void > &__f)
 Procedure which add a new function to the function vector.

Private Attributes

+std::vector< eoBF< const M &,
+ const typename M::EOType &,
+ void > * > 
func
 vector of function
+

Detailed Description

+

template<class M>
+ class moLSCheckPoint< M >

+ +Class which allows a checkpointing system. +

+Thanks to this class, at each iteration, additionnal function can be used (and not only one). +

+ +

+Definition at line 21 of file moLSCheckPoint.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moLSCheckPoint< M >::operator() (const M &  __move,
const typename M::EOType &  __sol 
) [inline]
+
+
+ +

+Function which launches the checkpointing. +

+Each saved function is used on the current move and the current solution.

+

Parameters:
+ + + +
__move a move.
__sol a solution.
+
+ +

+Definition at line 34 of file moLSCheckPoint.h. +

+References moLSCheckPoint< M >::func. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + +
void moLSCheckPoint< M >::add (eoBF< const M &, const typename M::EOType &, void > &  __f  )  [inline]
+
+
+ +

+Procedure which add a new function to the function vector. +

+The new function is added at the end of the vector.

Parameters:
+ + +
__f a new function to add.
+
+ +

+Definition at line 49 of file moLSCheckPoint.h. +

+References moLSCheckPoint< M >::func. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point.png new file mode 100644 index 000000000..1e121e05e Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_l_s_check_point.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule-members.html new file mode 100644 index 000000000..8df03eb57 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moLinearCoolingSchedule Member List

This is the complete list of members for moLinearCoolingSchedule, including all inherited members.

+ + + + + + + +
functor_category()eoUF< double &, bool > [static]
moLinearCoolingSchedule(double __threshold, double __quantity)moLinearCoolingSchedule [inline]
operator()(double &__temp)moLinearCoolingSchedule [inline, virtual]
quantitymoLinearCoolingSchedule [private]
thresholdmoLinearCoolingSchedule [private]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< double &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule.html new file mode 100644 index 000000000..9afd00bfa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule.html @@ -0,0 +1,151 @@ + + +PARADISEO-MO: moLinearCoolingSchedule Class Reference + + + + +
+
+ +

moLinearCoolingSchedule Class Reference

One of the possible moCoolingSchedule. +More... +

+#include <moLinearCoolingSchedule.h> +

+

Inheritance diagram for moLinearCoolingSchedule: +

+ +moCoolingSchedule +eoUF< double &, bool > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moLinearCoolingSchedule (double __threshold, double __quantity)
 Simple constructor.
bool operator() (double &__temp)
 Function which proceeds to the cooling.

Private Attributes

+double threshold
 The temperature threhold.
+double quantity
 The quantity that allows the temperature to decrease.
+

Detailed Description

+One of the possible moCoolingSchedule. +

+An another very simple cooling schedule, the temperature decrease according to a quantity while the temperature is greater than a threshold. +

+ +

+Definition at line 22 of file moLinearCoolingSchedule.h.


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
moLinearCoolingSchedule::moLinearCoolingSchedule (double  __threshold,
double  __quantity 
) [inline]
+
+
+ +

+Simple constructor. +

+

Parameters:
+ + + +
__threshold the threshold.
__quantity the quantity used to descrease the temperature.
+
+ +

+Definition at line 31 of file moLinearCoolingSchedule.h. +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
bool moLinearCoolingSchedule::operator() (double &  __temp  )  [inline, virtual]
+
+
+ +

+Function which proceeds to the cooling. +

+It decreases the temperature and indicates if it is greater than the threshold.

+

Parameters:
+ + +
__temp the current temperature.
+
+
Returns:
if the new temperature (current temperature - quantity) is greater than the threshold.
+ +

+Implements eoUF< double &, bool >. +

+Definition at line 41 of file moLinearCoolingSchedule.h. +

+References quantity, and threshold. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule.png new file mode 100644 index 000000000..064f41e2d Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_linear_cooling_schedule.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move-members.html new file mode 100644 index 000000000..406302bcc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move-members.html @@ -0,0 +1,41 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMove< EOT > Member List

This is the complete list of members for moMove< EOT >, including all inherited members.

+ + + + + +
EOType typedefmoMove< EOT >
functor_category()eoUF< EOT &, void > [static]
operator()(EOT &)=0eoUF< EOT &, void > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< EOT &, void > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move.html new file mode 100644 index 000000000..1e1aa0cd8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move.html @@ -0,0 +1,66 @@ + + +PARADISEO-MO: moMove< EOT > Class Template Reference + + + + +
+
+ +

moMove< EOT > Class Template Reference

Definition of a move. +More... +

+#include <moMove.h> +

+

Inheritance diagram for moMove< EOT >: +

+ +eoUF< EOT &, void > +eoFunctorBase + +List of all members. + + + + + +

Public Types

+typedef EOT EOType
 Alias for the type.
+

Detailed Description

+

template<class EOT>
+ class moMove< EOT >

+ +Definition of a move. +

+A move transforms a solution to another close solution. It describes how a solution can be modified to another one. +

+ +

+Definition at line 23 of file moMove.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move.png new file mode 100644 index 000000000..df5473c40 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl-members.html new file mode 100644 index 000000000..76d0e7a42 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMoveExpl< M > Member List

This is the complete list of members for moMoveExpl< M >, including all inherited members.

+ + + + +
functor_category()eoBF< const M::EOType &, M::EOType &, void > [static]
operator()(const M::EOType &, M::EOType &)=0eoBF< const M::EOType &, M::EOType &, void > [pure virtual]
~eoBF()eoBF< const M::EOType &, M::EOType &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl.html new file mode 100644 index 000000000..f5b28540b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl.html @@ -0,0 +1,64 @@ + + +PARADISEO-MO: moMoveExpl< M > Class Template Reference + + + + +
+
+ +

moMoveExpl< M > Class Template Reference

Description of a move (moMove) explorer. +More... +

+#include <moMoveExpl.h> +

+

Inheritance diagram for moMoveExpl< M >: +

+ +eoBF< const M::EOType &, M::EOType &, void > +eoFunctorBase +moMoveLoopExpl< M > +moHCMoveLoopExpl< M > +moTSMoveLoopExpl< M > + +List of all members. + +
+

Detailed Description

+

template<class M>
+ class moMoveExpl< M >

+ +Description of a move (moMove) explorer. +

+Only a description...See moMoveLoopExpl. +

+ +

+Definition at line 21 of file moMoveExpl.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl.png new file mode 100644 index 000000000..66c1602bb Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_expl.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval-members.html new file mode 100644 index 000000000..315c34f99 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMoveIncrEval< M > Member List

This is the complete list of members for moMoveIncrEval< M >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval.html new file mode 100644 index 000000000..f2a90aa5e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval.html @@ -0,0 +1,61 @@ + + +PARADISEO-MO: moMoveIncrEval< M > Class Template Reference + + + + +
+
+ +

moMoveIncrEval< M > Class Template Reference

(generally) Efficient evaluation function based a move and a solution. +More... +

+#include <moMoveIncrEval.h> +

+

Inheritance diagram for moMoveIncrEval< M >: +

+ +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class M>
+ class moMoveIncrEval< M >

+ +(generally) Efficient evaluation function based a move and a solution. +

+From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated. +

+ +

+Definition at line 24 of file moMoveIncrEval.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval.png new file mode 100644 index 000000000..1a63407f8 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_incr_eval.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init-members.html new file mode 100644 index 000000000..4e9b47b86 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMoveInit< M > Member List

This is the complete list of members for moMoveInit< M >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init.html new file mode 100644 index 000000000..bb6440359 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init.html @@ -0,0 +1,61 @@ + + +PARADISEO-MO: moMoveInit< M > Class Template Reference + + + + +
+
+ +

moMoveInit< M > Class Template Reference

Move (moMove) initializer. +More... +

+#include <moMoveInit.h> +

+

Inheritance diagram for moMoveInit< M >: +

+ +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class M>
+ class moMoveInit< M >

+ +Move (moMove) initializer. +

+Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used. +

+ +

+Definition at line 22 of file moMoveInit.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init.png new file mode 100644 index 000000000..df2d15f95 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_init.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl-members.html new file mode 100644 index 000000000..be3222fd0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMoveLoopExpl< M > Member List

This is the complete list of members for moMoveLoopExpl< M >, including all inherited members.

+ + + + +
functor_category()eoBF< const M::EOType &, M::EOType &, void > [static]
operator()(const M::EOType &, M::EOType &)=0eoBF< const M::EOType &, M::EOType &, void > [pure virtual]
~eoBF()eoBF< const M::EOType &, M::EOType &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl.html new file mode 100644 index 000000000..614eee175 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl.html @@ -0,0 +1,64 @@ + + +PARADISEO-MO: moMoveLoopExpl< M > Class Template Reference + + + + +
+
+ +

moMoveLoopExpl< M > Class Template Reference

Class which describes an iterative explorer. +More... +

+#include <moMoveLoopExpl.h> +

+

Inheritance diagram for moMoveLoopExpl< M >: +

+ +moMoveExpl< M > +eoBF< const M::EOType &, M::EOType &, void > +eoFunctorBase +moHCMoveLoopExpl< M > +moTSMoveLoopExpl< M > + +List of all members. + +
+

Detailed Description

+

template<class M>
+ class moMoveLoopExpl< M >

+ +Class which describes an iterative explorer. +

+Only a description... moHCMoveLoopExpl and moTSMoveLoopExpl are exemples of class that are a moMoveLoopExpl. +

+ +

+Definition at line 21 of file moMoveLoopExpl.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl.png new file mode 100644 index 000000000..82d725cec Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_loop_expl.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select-members.html new file mode 100644 index 000000000..32a1a7331 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select-members.html @@ -0,0 +1,43 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moMoveSelect< M > Member List

This is the complete list of members for moMoveSelect< M >, including all inherited members.

+ + + + + + + +
Fitness typedefmoMoveSelect< M >
functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
init(const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
operator()(M &, M::EOType::Fitness &)=0eoBF< M &, M::EOType::Fitness &, void > [pure virtual]
update(const M &__move, const Fitness &__fit)=0moMoveSelect< M > [pure virtual]
~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select.html new file mode 100644 index 000000000..9865c0e0b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select.html @@ -0,0 +1,151 @@ + + +PARADISEO-MO: moMoveSelect< M > Class Template Reference + + + + +
+
+ +

moMoveSelect< M > Class Template Reference

Class that describes a move selector (moMove). +More... +

+#include <moMoveSelect.h> +

+

Inheritance diagram for moMoveSelect< M >: +

+ +eoBF< M &, M::EOType::Fitness &, void > +eoFunctorBase +moBestImprSelect< M > +moFirstImprSelect< M > +moRandImprSelect< M > + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

virtual void init (const Fitness &__fit)=0
 Procedure which initialises all that the move selector needs including the initial fitness.
virtual bool update (const M &__move, const Fitness &__fit)=0
 Function which updates the best solutions.
+

Detailed Description

+

template<class M>
+ class moMoveSelect< M >

+ +Class that describes a move selector (moMove). +

+It iteratively considers some moves (moMove) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed. +

+ +

+Definition at line 32 of file moMoveSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
virtual void moMoveSelect< M >::init (const Fitness __fit  )  [pure virtual]
+
+
+ +

+Procedure which initialises all that the move selector needs including the initial fitness. +

+In order to know the fitness of the solution, for which the neighborhood will be soon explored

+

Parameters:
+ + +
__fit the current fitness.
+
+ +

+Implemented in moBestImprSelect< M >, moFirstImprSelect< M >, and moRandImprSelect< M >. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
virtual bool moMoveSelect< M >::update (const M &  __move,
const Fitness __fit 
) [pure virtual]
+
+
+ +

+Function which updates the best solutions. +

+

Parameters:
+ + + +
__move a new move.
__fit a fitness linked to the new move.
+
+
Returns:
a boolean that expresses the need to resume the exploration.
+ +

+Implemented in moBestImprSelect< M >, and moRandImprSelect< M >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select.png new file mode 100644 index 000000000..10bda515a Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_move_select.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move-members.html new file mode 100644 index 000000000..83e249096 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moNextMove< M > Member List

This is the complete list of members for moNextMove< M >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move.html new file mode 100644 index 000000000..52b644cc1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move.html @@ -0,0 +1,62 @@ + + +PARADISEO-MO: moNextMove< M > Class Template Reference + + + + +
+
+ +

moNextMove< M > Class Template Reference

Class which allows to generate a new move (moMove). +More... +

+#include <moNextMove.h> +

+

Inheritance diagram for moNextMove< M >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moItRandNextMove< M > + +List of all members. + +
+

Detailed Description

+

template<class M>
+ class moNextMove< M >

+ +Class which allows to generate a new move (moMove). +

+Useful for the explorer (for moTS or moHC). Does nothing... An object that herits from this class needs to be designed for being used. +

+ +

+Definition at line 22 of file moNextMove.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move.png new file mode 100644 index 000000000..2021f9a10 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_next_move.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit-members.html new file mode 100644 index 000000000..eaa6484a4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit-members.html @@ -0,0 +1,42 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moNoAspirCrit< M > Member List

This is the complete list of members for moNoAspirCrit< M >, including all inherited members.

+ + + + + + +
functor_category()eoBF< A1, A2, R > [static]
init()moNoAspirCrit< M > [inline, private, virtual]
operator()(const M &__move, const typename M::EOType::Fitness &__sol)moNoAspirCrit< M > [inline, private]
moAspirCrit::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit.html new file mode 100644 index 000000000..1743b7e04 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit.html @@ -0,0 +1,140 @@ + + +PARADISEO-MO: moNoAspirCrit< M > Class Template Reference + + + + +
+
+ +

moNoAspirCrit< M > Class Template Reference

One of the possible aspiration criterion (moAspirCrit). +More... +

+#include <moNoAspirCrit.h> +

+

Inheritance diagram for moNoAspirCrit< M >: +

+ +moAspirCrit< M > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + +

Private Member Functions

bool operator() (const M &__move, const typename M::EOType::Fitness &__sol)
 Function which describes the aspiration criterion behaviour.
void init ()
 Procedure which initialises all that needs a moNoAspirCrit.
+

Detailed Description

+

template<class M>
+ class moNoAspirCrit< M >

+ +One of the possible aspiration criterion (moAspirCrit). +

+The simplest : never satisfied. +

+ +

+Definition at line 21 of file moNoAspirCrit.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moNoAspirCrit< M >::operator() (const M &  __move,
const typename M::EOType::Fitness &  __sol 
) [inline, private]
+
+
+ +

+Function which describes the aspiration criterion behaviour. +

+Does nothing.

+

Parameters:
+ + + +
__move a move.
__sol a fitness.
+
+
Returns:
FALSE.
+ +

+Definition at line 32 of file moNoAspirCrit.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
void moNoAspirCrit< M >::init (  )  [inline, private, virtual]
+
+
+ +

+Procedure which initialises all that needs a moNoAspirCrit. +

+Nothing... +

+Implements moAspirCrit< M >. +

+Definition at line 43 of file moNoAspirCrit.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit.png new file mode 100644 index 000000000..c0687eec9 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_no_aspir_crit.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select-members.html new file mode 100644 index 000000000..a8e0e2f87 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select-members.html @@ -0,0 +1,46 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moRandImprSelect< M > Member List

This is the complete list of members for moRandImprSelect< M >, including all inherited members.

+ + + + + + + + + + +
Fitness typedefmoRandImprSelect< M >
functor_category()eoBF< M &, M::EOType::Fitness &, void > [static]
init(const Fitness &__fit)moRandImprSelect< M > [inline, virtual]
init_fitmoRandImprSelect< M > [private]
operator()(M &__move, Fitness &__fit)moRandImprSelect< M > [inline, virtual]
update(const M &__move, const Fitness &__fit)moRandImprSelect< M > [inline, virtual]
vect_better_fitmoRandImprSelect< M > [private]
vect_better_movesmoRandImprSelect< M > [private]
~eoBF()eoBF< M &, M::EOType::Fitness &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select.html new file mode 100644 index 000000000..db2eef38c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select.html @@ -0,0 +1,225 @@ + + +PARADISEO-MO: moRandImprSelect< M > Class Template Reference + + + + +
+
+ +

moRandImprSelect< M > Class Template Reference

One of the possible moMove selector (moMoveSelect). +More... +

+#include <moRandImprSelect.h> +

+

Inheritance diagram for moRandImprSelect< M >: +

+ +moMoveSelect< M > +eoBF< M &, M::EOType::Fitness &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Public Member Functions

void init (const Fitness &__fit)
 Procedure which all that needs a moRandImprSelect.
bool update (const M &__move, const Fitness &__fit)
 Function that updates the fitness and move vectors.
void operator() (M &__move, Fitness &__fit) throw (EmptySelection)
 The move selection.

Private Attributes

+Fitness init_fit
 Fitness of the current solution.
+std::vector< Fitnessvect_better_fit
 Candidate fitnesse vector.
+std::vector< M > vect_better_moves
 Candidate move vector.
+

Detailed Description

+

template<class M>
+ class moRandImprSelect< M >

+ +One of the possible moMove selector (moMoveSelect). +

+All the neighbors are considered. One of them that enables an improvment of the objective function is choosen. +

+ +

+Definition at line 25 of file moRandImprSelect.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
void moRandImprSelect< M >::init (const Fitness __fit  )  [inline, virtual]
+
+
+ +

+Procedure which all that needs a moRandImprSelect. +

+Give a value to the initialise fitness. Clean the move and fitness vectors.

+

Parameters:
+ + +
__fit the current best fitness
+
+ +

+Implements moMoveSelect< M >. +

+Definition at line 40 of file moRandImprSelect.h. +

+References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moRandImprSelect< M >::update (const M &  __move,
const Fitness __fit 
) [inline, virtual]
+
+
+ +

+Function that updates the fitness and move vectors. +

+if a move give a better fitness than the initial fitness, it is saved and the fitness too.

+

Parameters:
+ + + +
__move a new move.
__fit a new fitness associated to the new move.
+
+
Returns:
TRUE.
+ +

+Implements moMoveSelect< M >. +

+Definition at line 56 of file moRandImprSelect.h. +

+References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moRandImprSelect< M >::operator() (M &  __move,
Fitness __fit 
) throw (EmptySelection) [inline, virtual]
+
+
+ +

+The move selection. +

+One the saved move is randomly chosen.

+

Parameters:
+ + + +
__move the reference of the move that can be initialised by the function.
__fit the reference of the fitness that can be initialised by the function.
+
+
Exceptions:
+ + +
EmptySelection If no move which improves the current fitness are found.
+
+ +

+Implements eoBF< M &, M::EOType::Fitness &, void >. +

+Definition at line 77 of file moRandImprSelect.h. +

+References eoRng::random(), moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select.png new file mode 100644 index 000000000..b935a8e2f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_impr_select.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move-members.html new file mode 100644 index 000000000..0a8a9e203 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move-members.html @@ -0,0 +1,40 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moRandMove< M > Member List

This is the complete list of members for moRandMove< M >, including all inherited members.

+ + + + +
functor_category()eoUF< M &, void > [static]
operator()(M &)=0eoUF< M &, void > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< M &, void > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move.html new file mode 100644 index 000000000..2ebbcffdf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move.html @@ -0,0 +1,61 @@ + + +PARADISEO-MO: moRandMove< M > Class Template Reference + + + + +
+
+ +

moRandMove< M > Class Template Reference

Random move generator. +More... +

+#include <moRandMove.h> +

+

Inheritance diagram for moRandMove< M >: +

+ +eoUF< M &, void > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class M>
+ class moRandMove< M >

+ +Random move generator. +

+Only a description... An object that herits from this class needs to be designed in order to use a moSA. +

+ +

+Definition at line 21 of file moRandMove.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move.png new file mode 100644 index 000000000..2e8f6148e Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_rand_move.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a-members.html new file mode 100644 index 000000000..a773ed0d9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a-members.html @@ -0,0 +1,56 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moSA< M > Member List

This is the complete list of members for moSA< M >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
className() const eoMonOp< M::EOType > [virtual]
contmoSA< M > [private]
cool_schedmoSA< M > [private]
eoMonOp()eoMonOp< M::EOType >
eoOp(OpType _type)eoOp< EOType >
eoOp(const eoOp &_eop)eoOp< EOType >
EOT typedefmoSA< M > [private]
Fitness typedefmoSA< M > [private]
full_evalmoSA< M > [private]
functor_category()eoUF< M::EOType &, bool > [static]
getType() const eoOp< EOType >
incr_evalmoSA< M > [private]
init_tempmoSA< M > [private]
moSA(moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolingSchedule &__cool_sched, eoEvalFunc< EOT > &__full_eval)moSA< M > [inline]
move_randmoSA< M > [private]
operator()(EOT &__sol)moSA< M > [inline, virtual]
OpType enum nameeoOp< EOType >
~eoFunctorBase()eoFunctorBase [virtual]
~eoOp()eoOp< EOType > [virtual]
~eoUF()eoUF< M::EOType &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a.html new file mode 100644 index 000000000..0030514f4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a.html @@ -0,0 +1,214 @@ + + +PARADISEO-MO: moSA< M > Class Template Reference + + + + +
+
+ +

moSA< M > Class Template Reference

Simulated Annealing (SA). +More... +

+#include <moSA.h> +

+

Inheritance diagram for moSA< M >: +

+ +moAlgo< M::EOType > +eoMonOp< M::EOType > +eoOp< EOType > +eoUF< M::EOType &, bool > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moSA (moRandMove< M > &__move_rand, moMoveIncrEval< M > &__incr_eval, moSolContinue< EOT > &__cont, double __init_temp, moCoolingSchedule &__cool_sched, eoEvalFunc< EOT > &__full_eval)
 SA constructor.
bool operator() (EOT &__sol)
 function that launches the SA algorithm.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef EOT::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moRandMove< M > & move_rand
 A move generator (generally randomly).
+moMoveIncrEval< M > & incr_eval
 A (generally) efficient evaluation function.
+moSolContinue< EOT > & cont
 Stopping criterion before temperature update.
+double init_temp
 Initial temperature.
+moCoolingSchedulecool_sched
 The cooling schedule.
+eoEvalFunc< EOT > & full_eval
 A full evaluation function.
+

Detailed Description

+

template<class M>
+ class moSA< M >

+ +Simulated Annealing (SA). +

+Class that describes a Simulated Annealing algorithm. +

+ +

+Definition at line 30 of file moSA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moSA< M >::moSA (moRandMove< M > &  __move_rand,
moMoveIncrEval< M > &  __incr_eval,
moSolContinue< EOT > &  __cont,
double  __init_temp,
moCoolingSchedule __cool_sched,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+SA constructor. +

+All the boxes used by a SA need to be given.

+

Parameters:
+ + + + + + + +
__move_rand a move generator (generally randomly).
__incr_eval a (generaly) efficient evaluation function
__cont a stopping criterion.
__init_temp the initial temperature.
__cool_sched a cooling schedule, describes how the temperature is modified.
__full_eval a full evaluation function.
+
+ +

+Definition at line 58 of file moSA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
bool moSA< M >::operator() (EOT __sol  )  [inline, virtual]
+
+
+ +

+function that launches the SA algorithm. +

+As a moTS or a moHC, the SA can be used for HYBRIDATION in an evolutionary algorithm.

+

Parameters:
+ + +
__sol a solution to improve.
+
+
Returns:
TRUE.
+ +

+Implements eoUF< M::EOType &, bool >. +

+Definition at line 80 of file moSA.h. +

+References moSA< M >::cont, moSA< M >::cool_sched, moSA< M >::full_eval, moSA< M >::incr_eval, moSA< M >::init_temp, moSA< M >::move_rand, and eoRng::uniform(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a.png new file mode 100644 index 000000000..e14866c80 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_s_a.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list-members.html new file mode 100644 index 000000000..0192c03be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list-members.html @@ -0,0 +1,50 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moSimpleMoveTabuList< M > Member List

This is the complete list of members for moSimpleMoveTabuList< M >, including all inherited members.

+ + + + + + + + + + + + + + +
add(const M &__move, const EOT &__sol)moSimpleMoveTabuList< M > [inline, virtual]
currentSizemoSimpleMoveTabuList< M > [private]
EOT typedefmoSimpleMoveTabuList< M >
functor_category()eoBF< A1, A2, R > [static]
init()moSimpleMoveTabuList< M > [inline, virtual]
maxSizemoSimpleMoveTabuList< M > [private]
moSimpleMoveTabuList(unsigned int __size)moSimpleMoveTabuList< M > [inline]
operator()(const M &__move, const EOT &__sol)moSimpleMoveTabuList< M > [inline]
moTabuList::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
removeMove(const M &__move)moSimpleMoveTabuList< M > [inline, private]
tabuListmoSimpleMoveTabuList< M > [private]
update()moSimpleMoveTabuList< M > [inline, virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list.html new file mode 100644 index 000000000..b4bde1fe3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list.html @@ -0,0 +1,279 @@ + + +PARADISEO-MO: moSimpleMoveTabuList< M > Class Template Reference + + + + +
+
+ +

moSimpleMoveTabuList< M > Class Template Reference

Class describing a move tabu list with a limited memory. +More... +

+#include <moSimpleMoveTabuList.h> +

+

Inheritance diagram for moSimpleMoveTabuList< M >: +

+ +moTabuList< M > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType EOT
 Alias for the type.

Public Member Functions

moSimpleMoveTabuList (unsigned int __size)
 Constructor.
bool operator() (const M &__move, const EOT &__sol)
 Function that indicates if, in a given state, the _move is tabu or not.
void add (const M &__move, const EOT &__sol)
 Procedure to add a move in the tabu list.
void update ()
 Procedure that updates the tabu list content.
void init ()
 Procedure which initialises the tabu list.

Private Member Functions

void removeMove (const M &__move)
 Procedure that removes a given move from the tabu list (if it is into, else do nothing).

Private Attributes

+unsigned int maxSize
 The maximum size of the tabu list.
+unsigned int currentSize
 The current size of the tabu list.
+std::list< M > tabuList
 The move tabu list.
+

Detailed Description

+

template<class M>
+ class moSimpleMoveTabuList< M >

+ +Class describing a move tabu list with a limited memory. +

+ +

+Definition at line 22 of file moSimpleMoveTabuList.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moSimpleMoveTabuList< M >::operator() (const M &  __move,
const EOT __sol 
) [inline]
+
+
+ +

+Function that indicates if, in a given state, the _move is tabu or not. +

+

Parameters:
+ + + +
__move A given moMove.
__sol A solution.
+
+
Returns:
true or false.
+ +

+Definition at line 46 of file moSimpleMoveTabuList.h. +

+References moSimpleMoveTabuList< M >::tabuList. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moSimpleMoveTabuList< M >::add (const M &  __move,
const EOT __sol 
) [inline, virtual]
+
+
+ +

+Procedure to add a move in the tabu list. +

+The two parameters have not to be modified so they are constant parameters.

+

Parameters:
+ + + +
__move a new tabu move.
__sol the origianl solution associated to this move.
+
+ +

+Implements moTabuList< M >. +

+Definition at line 60 of file moSimpleMoveTabuList.h. +

+References moSimpleMoveTabuList< M >::currentSize, moSimpleMoveTabuList< M >::maxSize, moSimpleMoveTabuList< M >::removeMove(), and moSimpleMoveTabuList< M >::tabuList. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
void moSimpleMoveTabuList< M >::update (  )  [inline, virtual]
+
+
+ +

+Procedure that updates the tabu list content. +

+Generally, a counter associated to each saved move is decreased by one. +

+Implements moTabuList< M >. +

+Definition at line 82 of file moSimpleMoveTabuList.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
void moSimpleMoveTabuList< M >::init (  )  [inline, virtual]
+
+
+ +

+Procedure which initialises the tabu list. +

+Can be useful if the data structure needs to be allocated before being used. +

+Implements moTabuList< M >. +

+Definition at line 88 of file moSimpleMoveTabuList.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + +
void moSimpleMoveTabuList< M >::removeMove (const M &  __move  )  [inline, private]
+
+
+ +

+Procedure that removes a given move from the tabu list (if it is into, else do nothing). +

+

Parameters:
+ + +
__move A given moMove.
+
+ +

+Definition at line 100 of file moSimpleMoveTabuList.h. +

+References moSimpleMoveTabuList< M >::tabuList. +

+Referenced by moSimpleMoveTabuList< M >::add(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list.png new file mode 100644 index 000000000..f4a038c83 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_move_tabu_list.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list-members.html new file mode 100644 index 000000000..3aa1e8b1e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list-members.html @@ -0,0 +1,50 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moSimpleSolutionTabuList< M > Member List

This is the complete list of members for moSimpleSolutionTabuList< M >, including all inherited members.

+ + + + + + + + + + + + + + +
add(const M &__move, const EOT &__sol)moSimpleSolutionTabuList< M > [inline, virtual]
currentSizemoSimpleSolutionTabuList< M > [private]
EOT typedefmoSimpleSolutionTabuList< M >
functor_category()eoBF< A1, A2, R > [static]
init()moSimpleSolutionTabuList< M > [inline, virtual]
maxSizemoSimpleSolutionTabuList< M > [private]
moSimpleSolutionTabuList(unsigned int __size)moSimpleSolutionTabuList< M > [inline]
operator()(const M &__move, const EOT &__sol)moSimpleSolutionTabuList< M > [inline]
moTabuList::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
removeSolution(const EOT &__sol)moSimpleSolutionTabuList< M > [inline, private]
tabuListmoSimpleSolutionTabuList< M > [private]
update()moSimpleSolutionTabuList< M > [inline, virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list.html new file mode 100644 index 000000000..dc90a8b6f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list.html @@ -0,0 +1,312 @@ + + +PARADISEO-MO: moSimpleSolutionTabuList< M > Class Template Reference + + + + +
+
+ +

moSimpleSolutionTabuList< M > Class Template Reference

Class describing a solution tabu list with limited length. +More... +

+#include <moSimpleSolutionTabuList.h> +

+

Inheritance diagram for moSimpleSolutionTabuList< M >: +

+ +moTabuList< M > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType EOT
 Alias for the type.

Public Member Functions

 moSimpleSolutionTabuList (unsigned int __size)
 Constructor.
bool operator() (const M &__move, const EOT &__sol)
 Function that indicates if, in a given state, the _move is tabu or not.
void add (const M &__move, const EOT &__sol)
 Procedure to add a move in the tabu list.
void update ()
 Procedure that updates the tabu list content.
void init ()
 Procedure which initialises the tabu list.

Private Member Functions

void removeSolution (const EOT &__sol)
 Procedure that removes a given solution from the tabu list (if it is into, else does nothing).

Private Attributes

+unsigned int maxSize
 The maximum size of the tabu list.
+unsigned int currentSize
 The current size of the tabu list.
+std::list< EOTtabuList
 The solution tabu list.
+

Detailed Description

+

template<class M>
+ class moSimpleSolutionTabuList< M >

+ +Class describing a solution tabu list with limited length. +

+ +

+Definition at line 22 of file moSimpleSolutionTabuList.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
moSimpleSolutionTabuList< M >::moSimpleSolutionTabuList (unsigned int  __size  )  [inline]
+
+
+ +

+Constructor. +

+

Parameters:
+ + +
__size The maximum size of the solution tabu list.
+
+ +

+Definition at line 34 of file moSimpleSolutionTabuList.h. +

+References moSimpleSolutionTabuList< M >::currentSize. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
bool moSimpleSolutionTabuList< M >::operator() (const M &  __move,
const EOT __sol 
) [inline]
+
+
+ +

+Function that indicates if, in a given state, the _move is tabu or not. +

+

Parameters:
+ + + +
__move A given moMove.
__sol A solution.
+
+
Returns:
true or false.
+ +

+Definition at line 45 of file moSimpleSolutionTabuList.h. +

+References moSimpleSolutionTabuList< M >::tabuList. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moSimpleSolutionTabuList< M >::add (const M &  __move,
const EOT __sol 
) [inline, virtual]
+
+
+ +

+Procedure to add a move in the tabu list. +

+The two parameters have not to be modified so they are constant parameters.

+

Parameters:
+ + + +
__move a new tabu move.
__sol the origianl solution associated to this move.
+
+ +

+Implements moTabuList< M >. +

+Definition at line 64 of file moSimpleSolutionTabuList.h. +

+References moSimpleSolutionTabuList< M >::currentSize, moSimpleSolutionTabuList< M >::maxSize, moSimpleSolutionTabuList< M >::removeSolution(), and moSimpleSolutionTabuList< M >::tabuList. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
void moSimpleSolutionTabuList< M >::update (  )  [inline, virtual]
+
+
+ +

+Procedure that updates the tabu list content. +

+Generally, a counter associated to each saved move is decreased by one. +

+Implements moTabuList< M >. +

+Definition at line 91 of file moSimpleSolutionTabuList.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
void moSimpleSolutionTabuList< M >::init (  )  [inline, virtual]
+
+
+ +

+Procedure which initialises the tabu list. +

+Can be useful if the data structure needs to be allocated before being used. +

+Implements moTabuList< M >. +

+Definition at line 97 of file moSimpleSolutionTabuList.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + +
void moSimpleSolutionTabuList< M >::removeSolution (const EOT __sol  )  [inline, private]
+
+
+ +

+Procedure that removes a given solution from the tabu list (if it is into, else does nothing). +

+

Parameters:
+ + +
__sol A given solution.
+
+ +

+Definition at line 109 of file moSimpleSolutionTabuList.h. +

+References moSimpleSolutionTabuList< M >::tabuList. +

+Referenced by moSimpleSolutionTabuList< M >::add(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list.png new file mode 100644 index 000000000..38d26e329 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_simple_solution_tabu_list.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue-members.html new file mode 100644 index 000000000..c284d8f9e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue-members.html @@ -0,0 +1,41 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moSolContinue< EOT > Member List

This is the complete list of members for moSolContinue< EOT >, including all inherited members.

+ + + + + +
functor_category()eoUF< const EOT &, bool > [static]
init()=0moSolContinue< EOT > [pure virtual]
operator()(const EOT &)=0eoUF< const EOT &, bool > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const EOT &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue.html new file mode 100644 index 000000000..2f15e5ba3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue.html @@ -0,0 +1,92 @@ + + +PARADISEO-MO: moSolContinue< EOT > Class Template Reference + + + + +
+
+ +

moSolContinue< EOT > Class Template Reference

Class that describes a stop criterion for a solution-based heuristic. +More... +

+#include <moSolContinue.h> +

+

Inheritance diagram for moSolContinue< EOT >: +

+ +eoUF< const EOT &, bool > +eoFunctorBase +moGenSolContinue< EOT > + +List of all members. + + + + + +

Public Member Functions

virtual void init ()=0
 Procedure which initialises all that the stop criterion needs.
+

Detailed Description

+

template<class EOT>
+ class moSolContinue< EOT >

+ +Class that describes a stop criterion for a solution-based heuristic. +

+It allows to add an initialisation procedure to an object that is a unary function (eoUF). +

+ +

+Definition at line 22 of file moSolContinue.h.


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
virtual void moSolContinue< EOT >::init (  )  [pure virtual]
+
+
+ +

+Procedure which initialises all that the stop criterion needs. +

+Generally, it allocates some data structures or initialises some counters. +

+Implemented in moGenSolContinue< EOT >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue.png new file mode 100644 index 000000000..345d1b66d Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_sol_continue.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s-members.html new file mode 100644 index 000000000..7f54f5df2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s-members.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moTS< M > Member List

This is the complete list of members for moTS< M >, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
className() const eoMonOp< M::EOType > [virtual]
contmoTS< M > [private]
eoMonOp()eoMonOp< M::EOType >
eoOp(OpType _type)eoOp< EOType >
eoOp(const eoOp &_eop)eoOp< EOType >
EOT typedefmoTS< M > [private]
Fitness typedefmoTS< M > [private]
full_evalmoTS< M > [private]
functor_category()eoUF< M::EOType &, bool > [static]
getType() const eoOp< EOType >
moTS(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)moTS< M > [inline]
moTS(moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)moTS< M > [inline]
move_explmoTS< M > [private]
operator()(EOT &__sol)moTS< M > [inline, virtual]
OpType enum nameeoOp< EOType >
~eoFunctorBase()eoFunctorBase [virtual]
~eoOp()eoOp< EOType > [virtual]
~eoUF()eoUF< M::EOType &, bool > [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s.html new file mode 100644 index 000000000..0b5a8e3e5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s.html @@ -0,0 +1,261 @@ + + +PARADISEO-MO: moTS< M > Class Template Reference + + + + +
+
+ +

moTS< M > Class Template Reference

Tabu Search (TS). +More... +

+#include <moTS.h> +

+

Inheritance diagram for moTS< M >: +

+ +moAlgo< M::EOType > +eoMonOp< M::EOType > +eoOp< EOType > +eoUF< M::EOType &, bool > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moTS (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
 Constructor of a moTS specifying all the boxes.
 moTS (moMoveExpl< M > &__move_expl, moSolContinue< EOT > &__cont, eoEvalFunc< EOT > &__full_eval)
 Constructor with less parameters.
bool operator() (EOT &__sol)
 Function which launchs the Tabu Search.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef EOT::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveExpl< M > & move_expl
 Neighborhood explorer.
+moSolContinue< EOT > & cont
 Stop criterion.
+eoEvalFunc< EOT > & full_eval
 Full evaluation function.
+

Detailed Description

+

template<class M>
+ class moTS< M >

+ +Tabu Search (TS). +

+Generic algorithm that describes a tabu search. +

+ +

+Definition at line 29 of file moTS.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moTS< M >::moTS (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moTabuList< M > &  __tabu_list,
moAspirCrit< M > &  __aspir_crit,
moSolContinue< EOT > &  __cont,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Constructor of a moTS specifying all the boxes. +

+In this constructor, a moTSMoveLoopExpl is instanciated.

+

Parameters:
+ + + + + + + + +
__move_init move initialisation
__next_move neighborhood explorer
__incr_eval efficient evaluation
__tabu_list tabu list
__aspir_crit aspiration criterion
__cont stop criterion
__full_eval full evaluation function
+
+ +

+Definition at line 58 of file moTS.h. +

+

+ +

+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moTS< M >::moTS (moMoveExpl< M > &  __move_expl,
moSolContinue< EOT > &  __cont,
eoEvalFunc< EOT > &  __full_eval 
) [inline]
+
+
+ +

+Constructor with less parameters. +

+The explorer is given in the parameters.

+

Parameters:
+ + + + +
__move_expl the explorer (generally different that a moTSMoveLoopExpl)
__cont stop criterion
__full_eval full evaluation function
+
+ +

+Definition at line 71 of file moTS.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + +
bool moTS< M >::operator() (EOT __sol  )  [inline, virtual]
+
+
+ +

+Function which launchs the Tabu Search. +

+Algorithm of the tabu search. As a moSA or a moHC, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread_mutex_t) is closed during the algorithm.

+

Parameters:
+ + +
__sol a solution to improve.
+
+
Returns:
TRUE.
+ +

+Implements eoUF< M::EOType &, bool >. +

+Definition at line 85 of file moTS.h. +

+References moTS< M >::cont, moTS< M >::full_eval, and moTS< M >::move_expl. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s.png new file mode 100644 index 000000000..8932f0e2f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl-members.html new file mode 100644 index 000000000..916679f25 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl-members.html @@ -0,0 +1,49 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moTSMoveLoopExpl< M > Member List

This is the complete list of members for moTSMoveLoopExpl< M >, including all inherited members.

+ + + + + + + + + + + + + +
aspir_critmoTSMoveLoopExpl< M > [private]
EOT typedefmoTSMoveLoopExpl< M > [private]
Fitness typedefmoTSMoveLoopExpl< M > [private]
functor_category()eoBF< const M::EOType &, M::EOType &, void > [static]
incr_evalmoTSMoveLoopExpl< M > [private]
moTSMoveLoopExpl(moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit)moTSMoveLoopExpl< M > [inline]
move_initmoTSMoveLoopExpl< M > [private]
move_selectmoTSMoveLoopExpl< M > [private]
next_movemoTSMoveLoopExpl< M > [private]
operator()(const EOT &__old_sol, EOT &__new_sol)moTSMoveLoopExpl< M > [inline, virtual]
tabu_listmoTSMoveLoopExpl< M > [private]
~eoBF()eoBF< const M::EOType &, M::EOType &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl.html new file mode 100644 index 000000000..28838b1b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl.html @@ -0,0 +1,216 @@ + + +PARADISEO-MO: moTSMoveLoopExpl< M > Class Template Reference + + + + +
+
+ +

moTSMoveLoopExpl< M > Class Template Reference

Explorer for a Tabu Search algorithm. +More... +

+#include <moTSMoveLoopExpl.h> +

+

Inheritance diagram for moTSMoveLoopExpl< M >: +

+ +moMoveLoopExpl< M > +moMoveExpl< M > +eoBF< const M::EOType &, M::EOType &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moTSMoveLoopExpl (moMoveInit< M > &__move_init, moNextMove< M > &__next_move, moMoveIncrEval< M > &__incr_eval, moTabuList< M > &__tabu_list, moAspirCrit< M > &__aspir_crit)
 Constructor.
void operator() (const EOT &__old_sol, EOT &__new_sol)
 Procedure which lauches the exploration.

Private Types

+typedef M::EOType EOT
 Alias for the type.
+typedef M::EOType::Fitness Fitness
 Alias for the fitness.

Private Attributes

+moMoveInit< M > & move_init
 Move initialisation.
+moNextMove< M > & next_move
 Neighborhood explorer.
+moMoveIncrEval< M > & incr_eval
 Efficient evaluation.
+moBestImprSelect< M > move_select
 Move selector.
+moTabuList< M > & tabu_list
 Tabu list.
+moAspirCrit< M > & aspir_crit
 Aspiration criterion.
+

Detailed Description

+

template<class M>
+ class moTSMoveLoopExpl< M >

+ +Explorer for a Tabu Search algorithm. +

+It is used by a moTS. +

+ +

+Definition at line 30 of file moTSMoveLoopExpl.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moTSMoveLoopExpl< M >::moTSMoveLoopExpl (moMoveInit< M > &  __move_init,
moNextMove< M > &  __next_move,
moMoveIncrEval< M > &  __incr_eval,
moTabuList< M > &  __tabu_list,
moAspirCrit< M > &  __aspir_crit 
) [inline]
+
+
+ +

+Constructor. +

+

Parameters:
+ + + + + + +
__move_init move initialisation
__next_move neighborhood explorer
__incr_eval efficient evaluation
__tabu_list tabu list
__aspir_crit aspiration criterion
+
+ +

+Definition at line 49 of file moTSMoveLoopExpl.h. +

+References moTSMoveLoopExpl< M >::aspir_crit, and moTSMoveLoopExpl< M >::tabu_list. +

+

+


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
void moTSMoveLoopExpl< M >::operator() (const EOT __old_sol,
EOT __new_sol 
) [inline, virtual]
+
+
+ +

+Procedure which lauches the exploration. +

+The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false.

+

Parameters:
+ + + +
__old_sol the initial solution
__new_sol the new solution
+
+ +

+Implements eoBF< const M::EOType &, M::EOType &, void >. +

+Definition at line 69 of file moTSMoveLoopExpl.h. +

+References moTSMoveLoopExpl< M >::aspir_crit, moTSMoveLoopExpl< M >::incr_eval, moTSMoveLoopExpl< M >::move_init, moTSMoveLoopExpl< M >::move_select, moTSMoveLoopExpl< M >::next_move, and moTSMoveLoopExpl< M >::tabu_list. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl.png new file mode 100644 index 000000000..717f30a17 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_t_s_move_loop_expl.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list-members.html new file mode 100644 index 000000000..e3799520d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list-members.html @@ -0,0 +1,44 @@ + + +PARADISEO-MO: Member List + + + + +
+
+ +

moTabuList< M > Member List

This is the complete list of members for moTabuList< M >, including all inherited members.

+ + + + + + + + +
add(const M &__move, const EOT &__sol)=0moTabuList< M > [pure virtual]
EOT typedefmoTabuList< M >
functor_category()eoBF< A1, A2, R > [static]
init()=0moTabuList< M > [pure virtual]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
update()=0moTabuList< M > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list.html new file mode 100644 index 000000000..24da59402 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list.html @@ -0,0 +1,171 @@ + + +PARADISEO-MO: moTabuList< M > Class Template Reference + + + + +
+
+ +

moTabuList< M > Class Template Reference

Class describing a tabu list that a moTS uses. +More... +

+#include <moTabuList.h> +

+

Inheritance diagram for moTabuList< M >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moSimpleMoveTabuList< M > +moSimpleSolutionTabuList< M > + +List of all members. + + + + + + + + + + + + + + + +

Public Types

+typedef M::EOType EOT
 Alias for the type.

Public Member Functions

virtual void add (const M &__move, const EOT &__sol)=0
 Procedure to add a move in the tabu list.
virtual void update ()=0
 Procedure that updates the tabu list content.
virtual void init ()=0
 Procedure which initialises the tabu list.
+

Detailed Description

+

template<class M>
+ class moTabuList< M >

+ +Class describing a tabu list that a moTS uses. +

+It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a moTS. +

+ +

+Definition at line 22 of file moTabuList.h.


Member Function Documentation

+ +
+
+
+template<class M>
+ + + + + + + + + + + + + + + + + + +
virtual void moTabuList< M >::add (const M &  __move,
const EOT __sol 
) [pure virtual]
+
+
+ +

+Procedure to add a move in the tabu list. +

+The two parameters have not to be modified so they are constant parameters.

+

Parameters:
+ + + +
__move a new tabu move.
__sol the origianl solution associated to this move.
+
+ +

+Implemented in moSimpleMoveTabuList< M >, and moSimpleSolutionTabuList< M >. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
virtual void moTabuList< M >::update (  )  [pure virtual]
+
+
+ +

+Procedure that updates the tabu list content. +

+Generally, a counter associated to each saved move is decreased by one. +

+Implemented in moSimpleMoveTabuList< M >, and moSimpleSolutionTabuList< M >. +

+

+ +

+
+
+template<class M>
+ + + + + + + + +
virtual void moTabuList< M >::init (  )  [pure virtual]
+
+
+ +

+Procedure which initialises the tabu list. +

+Can be useful if the data structure needs to be allocated before being used. +

+Implemented in moSimpleMoveTabuList< M >, and moSimpleSolutionTabuList< M >. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list.png new file mode 100644 index 000000000..b4c545581 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/classmo_tabu_list.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/doxygen.css b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/doxygen.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/doxygen.png new file mode 100644 index 000000000..f0a274bba Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/doxygen.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/files.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/files.html new file mode 100644 index 000000000..8d1c78fd7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/files.html @@ -0,0 +1,62 @@ + + +PARADISEO-MO: File Index + + + + +
+
+

PARADISEO-MO File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
index.h [code]
mo.h [code]
moAlgo.h [code]
moAspirCrit.h [code]
moBestImprSelect.h [code]
moCoolingSchedule.h [code]
moExponentialCoolingSchedule.h [code]
moFirstImprSelect.h [code]
moGenSolContinue.h [code]
moHC.h [code]
moHCMoveLoopExpl.h [code]
moImprBestFitAspirCrit.h [code]
moItRandNextMove.h [code]
moLinearCoolingSchedule.h [code]
moLSCheckPoint.h [code]
moMove.h [code]
moMoveExpl.h [code]
moMoveIncrEval.h [code]
moMoveInit.h [code]
moMoveLoopExpl.h [code]
moMoveSelect.h [code]
moNextMove.h [code]
moNoAspirCrit.h [code]
moRandImprSelect.h [code]
moRandMove.h [code]
moSA.h [code]
moSimpleMoveTabuList.h [code]
moSimpleSolutionTabuList.h [code]
moSolContinue.h [code]
moTabuList.h [code]
moTS.h [code]
moTSMoveLoopExpl.h [code]
+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2blank.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2blank.png new file mode 100644 index 000000000..493c3c0b6 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2blank.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2doc.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2doc.png new file mode 100644 index 000000000..f72999f92 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2doc.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2folderclosed.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2folderclosed.png new file mode 100644 index 000000000..d6d063440 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2folderclosed.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2folderopen.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2folderopen.png new file mode 100644 index 000000000..bbe2c913c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2folderopen.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2lastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2lastnode.png new file mode 100644 index 000000000..e7b9ba90c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2lastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2link.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2link.png new file mode 100644 index 000000000..14f3fed00 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2link.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2mlastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2mlastnode.png new file mode 100644 index 000000000..09ceb6adb Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2mlastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2mnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2mnode.png new file mode 100644 index 000000000..3254c0511 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2mnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2node.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2node.png new file mode 100644 index 000000000..c9f06a57f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2node.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2plastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2plastnode.png new file mode 100644 index 000000000..0b07e0091 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2plastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2pnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2pnode.png new file mode 100644 index 000000000..2001b797b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2pnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2vertline.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2vertline.png new file mode 100644 index 000000000..b330f3a33 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/ftv2vertline.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions.html new file mode 100644 index 000000000..5ad521374 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions.html @@ -0,0 +1,145 @@ + + +PARADISEO-MO: Class Members + + + + +
+
+ + +
+ +
+ +

+Here is a list of all documented class members with links to the class documentation for each member: +

+

- a -

+

- b -

+

- c -

+

- e -

+

- f -

+

- i -

+

- m -

+

- n -

+

- o -

+

- q -

+

- r -

+

- t -

+

- u -

+

- v -

+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_func.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_func.html new file mode 100644 index 000000000..1d421d4fd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_func.html @@ -0,0 +1,65 @@ + + +PARADISEO-MO: Class Members - Functions + + + + +
+
+ + +  +

+

+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_type.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_type.html new file mode 100644 index 000000000..ddbfcebbe --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_type.html @@ -0,0 +1,50 @@ + + +PARADISEO-MO: Class Members - Typedefs + + + + +
+
+ + +  +

+

+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_vars.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_vars.html new file mode 100644 index 000000000..03af5b8b7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/functions_vars.html @@ -0,0 +1,115 @@ + + +PARADISEO-MO: Class Members - Variables + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- f -

+

- i -

+

- m -

+

- n -

+

- q -

+

- r -

+

- t -

+

- v -

+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/hierarchy.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/hierarchy.html new file mode 100644 index 000000000..71004e107 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/hierarchy.html @@ -0,0 +1,129 @@ + + +PARADISEO-MO: Hierarchical Index + + + + +
+
+ +

PARADISEO-MO Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/index.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/index.html new file mode 100644 index 000000000..bd26c60e9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/index.html @@ -0,0 +1,8 @@ + + +PARADISEO-MO + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/index_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/index_8h-source.html new file mode 100644 index 000000000..cfe24ac7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/index_8h-source.html @@ -0,0 +1,34 @@ + + +PARADISEO-MO: index.h Source File + + + + +
+
+

index.h

00001 
+00022 // coding: iso-8859-1
+00023 // mode: C++
+00024 // c-file-style: "Stroustrup"
+00025 // fill-column: 80
+00026 // End:
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/installdox b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/installdox new file mode 100755 index 000000000..1628445b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/main.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/main.html new file mode 100644 index 000000000..5c5483135 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/main.html @@ -0,0 +1,39 @@ + + +PARADISEO-MO: Welcome to PARADISEO-Moving Objects + + + + +
+
+

Welcome to PARADISEO-Moving Objects

+

+

0.1

+intro

+MO is an extension of the ANSI-C++ compliant evolutionary computation library EO.
+ It contains classes for almost any kind of one solution based heuristics.

+tutorial

+

+install

+The installation procedure of the package is detailed in the README file in the top-directory of the source-tree.

+design

+
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_8h-source.html new file mode 100644 index 000000000..e0b1b65af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_8h-source.html @@ -0,0 +1,74 @@ + + +PARADISEO-MO: mo.h Source File + + + + +
+
+

mo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "mo.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __mo_h
+00013 #define __mo_h
+00014 
+00015 #include "moAlgo.h"
+00016 #include "moAspirCrit.h"
+00017 #include "moBestImprSelect.h"
+00018 #include "moCoolingSchedule.h"
+00019 #include "moExponentialCoolingSchedule.h"
+00020 #include "moFirstImprSelect.h"
+00021 #include "moGenSolContinue.h"
+00022 #include "moHC.h"
+00023 #include "moHCMoveLoopExpl.h"
+00024 #include "moImprBestFitAspirCrit.h"
+00025 #include "moItRandNextMove.h"
+00026 #include "moLinearCoolingSchedule.h"
+00027 #include "moLSCheckPoint.h"
+00028 #include "moMoveExpl.h"
+00029 #include "moMove.h"
+00030 #include "moMoveIncrEval.h"
+00031 #include "moMoveInit.h"
+00032 #include "moMoveLoopExpl.h"
+00033 #include "moMoveSelect.h"
+00034 #include "moNextMove.h"
+00035 #include "moNoAspirCrit.h"
+00036 #include "moRandImprSelect.h"
+00037 #include "moRandMove.h"
+00038 #include "moSA.h"
+00039 #include "moSimpleMoveTabuList.h"
+00040 #include "moSimpleSolutionTabuList.h"
+00041 #include "moSolContinue.h"
+00042 #include "moTabuList.h"
+00043 #include "moTS.h"
+00044 #include "moTSMoveLoopExpl.h"
+00045 
+00046 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_algo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_algo_8h-source.html new file mode 100644 index 000000000..780dab13f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_algo_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moAlgo.h Source File + + + + +
+
+

moAlgo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moAlgo.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moAlgo_h
+00013 #define __moAlgo_h
+00014 
+00015 #include <eoOp.h>
+00016 
+00018 
+00021 template < class EOT > class moAlgo:public eoMonOp < EOT >
+00022 {
+00023 
+00024 };
+00025 
+00026 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_aspir_crit_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_aspir_crit_8h-source.html new file mode 100644 index 000000000..32496df4f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_aspir_crit_8h-source.html @@ -0,0 +1,58 @@ + + +PARADISEO-MO: moAspirCrit.h Source File + + + + +
+
+

moAspirCrit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moAspirCrit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moAspirCrit_h
+00013 #define __moAspirCrit_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moAspirCrit:public eoBF < const M &, const typename
+00023   M::EOType::Fitness &,
+00024   bool >
+00025 {
+00026 
+00027 public:
+00029 
+00032   virtual void
+00033   init () = 0;
+00034 
+00035 };
+00036 
+00037 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_best_impr_select_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_best_impr_select_8h-source.html new file mode 100644 index 000000000..13c69f02a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_best_impr_select_8h-source.html @@ -0,0 +1,99 @@ + + +PARADISEO-MO: moBestImprSelect.h Source File + + + + +
+
+

moBestImprSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moBestImprSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moBestImprSelect_h
+00013 #define __moBestImprSelect_h
+00014 
+00015 #include "moMoveSelect.h"
+00016 
+00018 
+00022 template < class M > class moBestImprSelect:public moMoveSelect < M >
+00023 {
+00024 
+00025 public:
+00026 
+00028   typedef typename M::EOType::Fitness Fitness;
+00029 
+00031   void init (const Fitness & __fit)
+00032   {
+00033 
+00034     first_time = true;
+00035   }
+00036 
+00037 
+00039 
+00047   bool update (const M & __move, const Fitness & __fit)
+00048   {
+00049 
+00050     if (first_time || __fit > best_fit)
+00051       {
+00052 
+00053         best_fit = __fit;
+00054         best_move = __move;
+00055 
+00056         first_time = false;
+00057       }
+00058 
+00059     return true;
+00060   }
+00061 
+00063 
+00068   void operator   () (M & __move, Fitness & __fit) throw (EmptySelection)
+00069   {
+00070 
+00071     if (!first_time)
+00072       {
+00073         __move = best_move;
+00074         __fit = best_fit;
+00075       }
+00076     else
+00077       throw EmptySelection ();
+00078   }
+00079 
+00080 private:
+00081 
+00083   bool first_time;
+00084 
+00086   M best_move;
+00087 
+00089   Fitness best_fit;
+00090 
+00091 };
+00092 
+00093 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_cooling_schedule_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_cooling_schedule_8h-source.html new file mode 100644 index 000000000..0ae0ed37c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_cooling_schedule_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moCoolingSchedule.h Source File + + + + +
+
+

moCoolingSchedule.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moCoolingSchedule.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2007
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moCoolingSchedule_h
+00013 #define __moCoolingSchedule_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 class moCoolingSchedule:public eoUF < double &, bool >
+00023 {
+00024 
+00025 };
+00026 
+00027 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_exponential_cooling_schedule_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_exponential_cooling_schedule_8h-source.html new file mode 100644 index 000000000..06b97d8a8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_exponential_cooling_schedule_8h-source.html @@ -0,0 +1,67 @@ + + +PARADISEO-MO: moExponentialCoolingSchedule.h Source File + + + + +
+
+

moExponentialCoolingSchedule.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moExponentialCoolingSchedule.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2007
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moExponentialCoolingSchedule_h
+00013 #define __moExponentialCoolingSchedule_h
+00014 
+00015 #include "moCoolingSchedule.h"
+00016 
+00018 
+00022 class moExponentialCoolingSchedule: public moCoolingSchedule
+00023 {
+00024 
+00025 public:
+00027 
+00031   moExponentialCoolingSchedule (double __threshold, double __ratio):threshold (__threshold), ratio (__ratio)
+00032   {}
+00033 
+00035 
+00041   bool operator() (double &__temp)
+00042   {
+00043     return (__temp *= ratio) > threshold;
+00044   }
+00045 
+00046 private:
+00047 
+00049   double threshold;
+00050 
+00052   double ratio;
+00053 };
+00054 
+00055 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_first_impr_select_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_first_impr_select_8h-source.html new file mode 100644 index 000000000..5ed22b275 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_first_impr_select_8h-source.html @@ -0,0 +1,106 @@ + + +PARADISEO-MO: moFirstImprSelect.h Source File + + + + +
+
+

moFirstImprSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moFirstImprSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moFirstImprSelect_h
+00013 #define __moFirstImprSelect_h
+00014 
+00015 #include "moMoveSelect.h"
+00016 
+00018 
+00023 template < class M > class moFirstImprSelect:public moMoveSelect < M >
+00024 {
+00025 
+00026 public:
+00027 
+00029   typedef typename M::EOType::Fitness Fitness;
+00030 
+00032 
+00035   virtual void init (const Fitness & __fit)
+00036   {
+00037 
+00038     valid = false;
+00039     init_fit = __fit;
+00040   }
+00041 
+00042 
+00044 
+00052   bool update (const M & __move, const typename M::EOType::Fitness & __fit)
+00053   {
+00054 
+00055     if (__fit > init_fit)
+00056       {
+00057 
+00058         best_fit = __fit;
+00059         best_move = __move;
+00060         valid = true;
+00061 
+00062         return false;
+00063       }
+00064     else
+00065       {
+00066         return true;
+00067       }
+00068   }
+00069 
+00071 
+00076   void operator   () (M & __move, Fitness & __fit) throw (EmptySelection)
+00077   {
+00078 
+00079     if (valid)
+00080       {
+00081         __move = best_move;
+00082         __fit = best_fit;
+00083       }
+00084     else
+00085       throw EmptySelection ();
+00086   }
+00087 
+00088 private:
+00089 
+00091   bool valid;
+00092 
+00094   M best_move;
+00095 
+00097   Fitness init_fit;
+00098 
+00100   Fitness best_fit;
+00101 
+00102 };
+00103 
+00104 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_gen_sol_continue_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_gen_sol_continue_8h-source.html new file mode 100644 index 000000000..5c3ea2178 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_gen_sol_continue_8h-source.html @@ -0,0 +1,78 @@ + + +PARADISEO-MO: moGenSolContinue.h Source File + + + + +
+
+

moGenSolContinue.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoGenSolContinue.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moGenSolContinue_h
+00013 #define __moGenSolContinue_h
+00014 
+00015 #include "moSolContinue.h"
+00016 
+00018 
+00021 template < class EOT > class moGenSolContinue:public moSolContinue < EOT >
+00022 {
+00023 
+00024 public:
+00025 
+00027 
+00030   moGenSolContinue (unsigned int __maxNumGen):maxNumGen (__maxNumGen), numGen (0)
+00031   {
+00032 
+00033   }
+00034 
+00036 
+00044   bool operator   () (const EOT & __sol)
+00045   {
+00046 
+00047     return (++numGen < maxNumGen);
+00048   }
+00049 
+00051 
+00054   void init ()
+00055   {
+00056 
+00057     numGen = 0;
+00058   }
+00059 
+00060 private:
+00061 
+00063   unsigned int maxNumGen;
+00064 
+00066   unsigned int numGen;
+00067 };
+00068 
+00069 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_h_c_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_h_c_8h-source.html new file mode 100644 index 000000000..f1e34cd76 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_h_c_8h-source.html @@ -0,0 +1,132 @@ + + +PARADISEO-MO: moHC.h Source File + + + + +
+
+

moHC.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moHC.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moHC_h
+00013 #define __moHC_h
+00014 
+00015 #include <eoOp.h>
+00016 #include <eoEvalFunc.h>
+00017 
+00018 #include "moAlgo.h"
+00019 #include "moMoveExpl.h"
+00020 #include "moHCMoveLoopExpl.h"
+00021 
+00023 
+00026 template < class M > class moHC:public moAlgo < typename M::EOType >
+00027 {
+00028 
+00030   typedef
+00031     typename
+00032     M::EOType
+00033     EOT;
+00034 
+00036   typedef
+00037     typename
+00038     EOT::Fitness
+00039     Fitness;
+00040 
+00041 public:
+00042 
+00044 
+00053 moHC (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select, eoEvalFunc < EOT > &__full_eval):move_expl (*new moHCMoveLoopExpl < M >
+00054              (__move_init, __next_move, __incr_eval, __move_select)),
+00055     full_eval (__full_eval)
+00056   {
+00057 
+00058   }
+00059 
+00061 
+00067 moHC (moMoveExpl < M > &__move_expl, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl),
+00068     full_eval
+00069     (__full_eval)
+00070   {
+00071 
+00072   }
+00073 
+00075 
+00082   bool operator   ()(EOT & __sol)
+00083   {
+00084 
+00085     if (__sol.invalid ())
+00086       {
+00087         full_eval (__sol);
+00088       }
+00089 
+00090     EOT new_sol;
+00091 
+00092     do
+00093       {
+00094 
+00095         new_sol = __sol;
+00096 
+00097         try
+00098         {
+00099 
+00100           move_expl (__sol, new_sol);
+00101 
+00102         }
+00103         catch (EmptySelection & __ex)
+00104         {
+00105 
+00106           break;
+00107         }
+00108 
+00109         if (new_sol.fitness () > __sol.fitness ())
+00110           {
+00111             __sol = new_sol;
+00112           }
+00113         else
+00114           {
+00115             break;
+00116           }
+00117 
+00118       }
+00119     while (true);
+00120 
+00121     return true;
+00122   }
+00123 
+00124 private:
+00125 
+00127   moMoveExpl < M > &move_expl;
+00128 
+00130   eoEvalFunc < EOT > &full_eval;
+00131 };
+00132 
+00133 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_h_c_move_loop_expl_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_h_c_move_loop_expl_8h-source.html new file mode 100644 index 000000000..847d50212 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_h_c_move_loop_expl_8h-source.html @@ -0,0 +1,115 @@ + + +PARADISEO-MO: moHCMoveLoopExpl.h Source File + + + + +
+
+

moHCMoveLoopExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moHCMoveLoopExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moHCMoveLoopExpl_h
+00013 #define __moHCMoveLoopExpl_h
+00014 
+00015 #include "moMoveLoopExpl.h"
+00016 
+00017 #include "moMoveInit.h"
+00018 #include "moNextMove.h"
+00019 #include "moMoveIncrEval.h"
+00020 #include "moMoveSelect.h"
+00021 
+00023 template < class M > class moHCMoveLoopExpl:public moMoveLoopExpl < M >
+00024 {
+00025 
+00027   typedef typename M::EOType EOT;
+00028 
+00030   typedef typename M::EOType::Fitness Fitness;
+00031 
+00032 public:
+00033 
+00035 
+00043 moHCMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select):
+00044 
+00045   move_init (__move_init),
+00046     next_move (__next_move),
+00047     incr_eval (__incr_eval), move_select (__move_select)
+00048   {
+00049 
+00050   }
+00051 
+00053 
+00059   void operator   () (const EOT & __old_sol, EOT & __new_sol)
+00060   {
+00061 
+00062     M move;
+00063 
+00064     //
+00065     move_init (move, __old_sol);        /* Restarting the exploration of 
+00066                                            of the neighborhood ! */
+00067 
+00068     move_select.init (__old_sol.fitness ());
+00069 
+00070     while (move_select.update (move, incr_eval (move, __old_sol))
+00071            && next_move (move, __old_sol));
+00072 
+00073     try
+00074     {
+00075 
+00076       M best_move;
+00077 
+00078       Fitness best_move_fit;
+00079 
+00080       move_select (best_move, best_move_fit);
+00081       __new_sol.fitness (best_move_fit);
+00082       best_move (__new_sol);
+00083 
+00084     }
+00085     catch (EmptySelection & __ex)
+00086     {
+00087 
+00088       // ?
+00089     }
+00090   }
+00091 
+00092 private:
+00093 
+00095   moMoveInit < M > &move_init;
+00096 
+00098   moNextMove < M > &next_move;
+00099 
+00101   moMoveIncrEval < M > &incr_eval;
+00102 
+00104   moMoveSelect < M > &move_select;
+00105 
+00106 };
+00107 
+00108 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_impr_best_fit_aspir_crit_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_impr_best_fit_aspir_crit_8h-source.html new file mode 100644 index 000000000..135190d77 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_impr_best_fit_aspir_crit_8h-source.html @@ -0,0 +1,96 @@ + + +PARADISEO-MO: moImprBestFitAspirCrit.h Source File + + + + +
+
+

moImprBestFitAspirCrit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moImprAspirCrit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moImprBestFitAspirCrit_h
+00013 #define __moImprBestFitAspirCrit_h
+00014 
+00015 #include "moAspirCrit.h"
+00016 
+00018 
+00022 template < class M > class moImprBestFitAspirCrit:public moAspirCrit < M >
+00023 {
+00024 
+00025 public:
+00026 
+00028   typedef typename M::EOType::Fitness Fitness;
+00029 
+00031   moImprBestFitAspirCrit ()
+00032   {
+00033 
+00034     first_time = true;
+00035   }
+00036 
+00038   void init ()
+00039   {
+00040 
+00041     first_time = true;
+00042   }
+00043 
+00045 
+00052   bool operator   () (const M & __move, const Fitness & __fit)
+00053   {
+00054 
+00055     if (first_time)
+00056       {
+00057 
+00058         best_fit = __fit;
+00059         first_time = false;
+00060 
+00061         return true;
+00062       }
+00063     else if (__fit < best_fit)
+00064       return false;
+00065 
+00066     else
+00067       {
+00068 
+00069         best_fit = __fit;
+00070 
+00071         return true;
+00072       }
+00073   }
+00074 
+00075 private:
+00076 
+00078   Fitness best_fit;
+00079 
+00081   bool first_time;
+00082 };
+00083 
+00084 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_it_rand_next_move_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_it_rand_next_move_8h-source.html new file mode 100644 index 000000000..acd740429 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_it_rand_next_move_8h-source.html @@ -0,0 +1,92 @@ + + +PARADISEO-MO: moItRandNextMove.h Source File + + + + +
+
+

moItRandNextMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moNextMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moItRandNextMove_h
+00013 #define __moItRandNextMove_h
+00014 
+00015 #include "moNextMove.h"
+00016 #include "moRandMove.h"
+00017 
+00019 
+00022 template < class M > class moItRandNextMove:public moNextMove < M >
+00023 {
+00024 
+00026   typedef typename M::EOType EOT;
+00027 
+00028 public:
+00029 
+00031 
+00037   moItRandNextMove (moRandMove < M > &__rand_move,
+00038                     unsigned int __max_iter):rand_move (__rand_move),
+00039     max_iter (__max_iter), num_iter (0)
+00040   {
+00041 
+00042   }
+00043 
+00045 
+00052   bool operator   () (M & __move, const EOT & __sol)
+00053   {
+00054 
+00055     if (num_iter++ > max_iter)
+00056       {
+00057 
+00058         num_iter = 0;
+00059         return false;
+00060       }
+00061     else
+00062       {
+00063 
+00064         /* The given solution is discarded here */
+00065         rand_move (__move);
+00066         num_iter++;
+00067         return true;
+00068       }
+00069   }
+00070 
+00071 private:
+00072 
+00074   moRandMove < M > &rand_move;
+00075 
+00077   unsigned int max_iter;
+00078 
+00080   unsigned int num_iter;
+00081 
+00082 };
+00083 
+00084 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_l_s_check_point_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_l_s_check_point_8h-source.html new file mode 100644 index 000000000..121ff6ada --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_l_s_check_point_8h-source.html @@ -0,0 +1,80 @@ + + +PARADISEO-MO: moLSCheckPoint.h Source File + + + + +
+
+

moLSCheckPoint.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moLSCheckPoint.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSolUpdater_h
+00013 #define __moSolUpdater_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 template < class M > class moLSCheckPoint:public eoBF < const M &, const typename
+00022   M::EOType &, void >
+00023 {
+00024 
+00025 public:
+00027 
+00033   void
+00034   operator   () (const M & __move, const typename M::EOType & __sol)
+00035   {
+00036 
+00037     for (unsigned int i = 0; i < func.size (); i++)
+00038       {
+00039         func[i]->operator   ()(__move, __sol);
+00040       }
+00041   }
+00042 
+00044 
+00048   void
+00049   add (eoBF < const M &, const typename M::EOType &, void >&__f)
+00050   {
+00051 
+00052     func.push_back (&__f);
+00053   }
+00054 
+00055 private:
+00056 
+00058   std::vector < eoBF < const
+00059     M &, const
+00060     typename
+00061   M::EOType &, void >*>
+00062     func;
+00063 
+00064 };
+00065 
+00066 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_linear_cooling_schedule_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_linear_cooling_schedule_8h-source.html new file mode 100644 index 000000000..991a520d1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_linear_cooling_schedule_8h-source.html @@ -0,0 +1,67 @@ + + +PARADISEO-MO: moLinearCoolingSchedule.h Source File + + + + +
+
+

moLinearCoolingSchedule.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moLinearCoolingSchedule.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2007
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moLinearCoolingSchedule_h
+00013 #define __moLinearCoolingSchedule_h
+00014 
+00015 #include "moCoolingSchedule.h"
+00016 
+00018 
+00022 class moLinearCoolingSchedule: public moCoolingSchedule
+00023 {
+00024 
+00025 public:
+00027 
+00031   moLinearCoolingSchedule (double __threshold, double __quantity):threshold (__threshold), quantity (__quantity)
+00032   {}
+00033 
+00035 
+00041   bool operator() (double &__temp)
+00042   {
+00043     return (__temp -= quantity) > threshold;
+00044   }
+00045 
+00046 private:
+00047 
+00049   double threshold;
+00050 
+00052   double quantity;
+00053 };
+00054 
+00055 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_8h-source.html new file mode 100644 index 000000000..3e592441c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moMove.h Source File + + + + +
+
+

moMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMove_h
+00013 #define __moMove_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00023 template < class EOT > class moMove:public eoUF < EOT &, void >
+00024 {
+00025 
+00026 public:
+00028   typedef EOT EOType;
+00029 
+00030 };
+00031 
+00032 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_expl_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_expl_8h-source.html new file mode 100644 index 000000000..e8613fa95 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_expl_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moMoveExpl.h Source File + + + + +
+
+

moMoveExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoMoveExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveExpl_h
+00013 #define __moMoveExpl_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 template < class M > class moMoveExpl:public eoBF < const typename
+00022   M::EOType &,
+00023   typename
+00024 M::EOType &, void >
+00025 {
+00026 
+00027 };
+00028 
+00029 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_incr_eval_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_incr_eval_8h-source.html new file mode 100644 index 000000000..d3ac41aff --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_incr_eval_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moMoveIncrEval.h Source File + + + + +
+
+

moMoveIncrEval.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoMoveIncrEval.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveIncrEval_h
+00013 #define __moMoveIncrEval_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00024 template < class M > class moMoveIncrEval:public eoBF < const M &, const typename
+00025   M::EOType &,
+00026   typename
+00027   M::EOType::Fitness >
+00028 {
+00029 
+00030 };
+00031 
+00032 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_init_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_init_8h-source.html new file mode 100644 index 000000000..3dc15757b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_init_8h-source.html @@ -0,0 +1,52 @@ + + +PARADISEO-MO: moMoveInit.h Source File + + + + +
+
+

moMoveInit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMoveInit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveInit_h
+00013 #define __moMoveInit_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moMoveInit:public eoBF < M &, const typename
+00023 M::EOType &, void >
+00024 {
+00025 
+00026 };
+00027 
+00028 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_loop_expl_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_loop_expl_8h-source.html new file mode 100644 index 000000000..b9cc30878 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_loop_expl_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moMoveLoopExpl.h Source File + + + + +
+
+

moMoveLoopExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMoveLoopExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveLoopExpl_h
+00013 #define __moMoveLoopExpl_h
+00014 
+00015 #include "moMoveExpl.h"
+00016 
+00018 
+00021 template < class M > class moMoveLoopExpl:public moMoveExpl < M >
+00022 {
+00023 
+00024 };
+00025 
+00026 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_select_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_select_8h-source.html new file mode 100644 index 000000000..13e726946 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_move_select_8h-source.html @@ -0,0 +1,72 @@ + + +PARADISEO-MO: moMoveSelect.h Source File + + + + +
+
+

moMoveSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moMoveSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moMoveSelect_h
+00013 #define __moMoveSelect_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 class EmptySelection
+00022 {
+00023 
+00024 };
+00025 
+00027 
+00032 template < class M > class moMoveSelect:public eoBF < M &, typename M::EOType::Fitness &,
+00033   void >
+00034 {
+00035 public:
+00037   typedef
+00038     typename
+00039     M::EOType::Fitness
+00040     Fitness;
+00041 
+00043 
+00050   virtual void
+00051   init (const Fitness & __fit) = 0;
+00052 
+00054 
+00059   virtual
+00060     bool
+00061   update (const M & __move, const Fitness & __fit) = 0;
+00062 
+00063 };
+00064 
+00065 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_next_move_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_next_move_8h-source.html new file mode 100644 index 000000000..f2fbde367 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_next_move_8h-source.html @@ -0,0 +1,53 @@ + + +PARADISEO-MO: moNextMove.h Source File + + + + +
+
+

moNextMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moNextMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moNextMove_h
+00013 #define __moNextMove_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moNextMove:public eoBF < M &, const typename
+00023   M::EOType &,
+00024   bool >
+00025 {
+00026 
+00027 };
+00028 
+00029 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_no_aspir_crit_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_no_aspir_crit_8h-source.html new file mode 100644 index 000000000..4ff49512f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_no_aspir_crit_8h-source.html @@ -0,0 +1,63 @@ + + +PARADISEO-MO: moNoAspirCrit.h Source File + + + + +
+
+

moNoAspirCrit.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "eoNoAspirCrit.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* TEXT LICENCE
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moNoAspirCrit_h
+00013 #define __moNoAspirCrit_h
+00014 
+00015 #include "moAspirCrit.h"
+00016 
+00018 
+00021 template < class M > class moNoAspirCrit:public moAspirCrit < M >
+00022 {
+00023 
+00025 
+00032   bool operator   () (const M & __move,
+00033                       const typename M::EOType::Fitness & __sol)
+00034   {
+00035 
+00036     return false;
+00037   }
+00038 
+00040 
+00043   void init ()
+00044   {
+00045   }
+00046 };
+00047 
+00048 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_rand_impr_select_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_rand_impr_select_8h-source.html new file mode 100644 index 000000000..9e5938bb4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_rand_impr_select_8h-source.html @@ -0,0 +1,103 @@ + + +PARADISEO-MO: moRandImprSelect.h Source File + + + + +
+
+

moRandImprSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moRandImprSelect.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moRandImprSelect_h
+00013 #define __moRandImprSelect_h
+00014 
+00015 #include <vector>
+00016 
+00017 #include <utils/eoRNG.h>
+00018 #include "moMoveSelect.h"
+00019 
+00021 
+00025 template < class M > class moRandImprSelect:public moMoveSelect < M >
+00026 {
+00027 
+00028 public:
+00029 
+00031   typedef typename M::EOType::Fitness Fitness;
+00032 
+00034 
+00040   void init (const Fitness & __fit)
+00041   {
+00042     init_fit = __fit;
+00043     vect_better_fit.clear ();
+00044     vect_better_moves.clear ();
+00045   }
+00046 
+00048 
+00056   bool update (const M & __move, const Fitness & __fit)
+00057   {
+00058 
+00059     if (__fit > init_fit)
+00060       {
+00061 
+00062         vect_better_fit.push_back (__fit);
+00063         vect_better_moves.push_back (__move);
+00064       }
+00065 
+00066     return true;
+00067   }
+00068 
+00070 
+00077   void operator   () (M & __move, Fitness & __fit) throw (EmptySelection)
+00078   {
+00079 
+00080     if (!vect_better_fit.empty ())
+00081       {
+00082 
+00083         unsigned n = rng.random (vect_better_fit.size ());
+00084 
+00085         __move = vect_better_moves[n];
+00086         __fit = vect_better_fit[n];
+00087       }
+00088     else
+00089       throw EmptySelection ();
+00090   }
+00091 
+00092 private:
+00093 
+00095   Fitness init_fit;
+00096 
+00098   std::vector < Fitness > vect_better_fit;
+00099 
+00101   std::vector < M > vect_better_moves;
+00102 };
+00103 
+00104 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_rand_move_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_rand_move_8h-source.html new file mode 100644 index 000000000..b7c434a50 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_rand_move_8h-source.html @@ -0,0 +1,51 @@ + + +PARADISEO-MO: moRandMove.h Source File + + + + +
+
+

moRandMove.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moRandMove.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moRandMove_h
+00013 #define __moRandMove_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00021 template < class M > class moRandMove:public eoUF < M &, void >
+00022 {
+00023 
+00024 };
+00025 
+00026 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_s_a_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_s_a_8h-source.html new file mode 100644 index 000000000..168afa10a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_s_a_8h-source.html @@ -0,0 +1,150 @@ + + +PARADISEO-MO: moSA.h Source File + + + + +
+
+

moSA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moSA.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSA_h
+00013 #define __moSA_h
+00014 
+00015 #include <eoOp.h>
+00016 #include <eoEvalFunc.h>
+00017 
+00018 #include "moAlgo.h"
+00019 #include "moRandMove.h"
+00020 #include "moMoveIncrEval.h"
+00021 #include "moCoolingSchedule.h"
+00022 #include "moSolContinue.h"
+00023 
+00024 #include <math.h>
+00025 
+00027 
+00030 template < class M > class moSA:public moAlgo < typename M::EOType >
+00031 {
+00032 
+00034   typedef
+00035     typename
+00036     M::EOType
+00037     EOT;
+00038 
+00040   typedef
+00041     typename
+00042     EOT::Fitness
+00043     Fitness;
+00044 
+00045 public:
+00046 
+00048 
+00058   moSA (moRandMove < M > &__move_rand,
+00059         moMoveIncrEval < M > &__incr_eval,
+00060         moSolContinue < EOT > &__cont,
+00061         double __init_temp,
+00062         moCoolingSchedule & __cool_sched, eoEvalFunc < EOT > &__full_eval):
+00063   move_rand (__move_rand),
+00064   incr_eval (__incr_eval),
+00065   cont (__cont),
+00066   init_temp (__init_temp),
+00067   cool_sched (__cool_sched),
+00068   full_eval (__full_eval)
+00069   {
+00070 
+00071   }
+00072 
+00074 
+00080   bool operator   ()(EOT & __sol)
+00081   {
+00082 
+00083     if (__sol.invalid ())
+00084       {
+00085         full_eval (__sol);
+00086       }
+00087 
+00088     double temp = init_temp;
+00089 
+00090     M move;
+00091 
+00092     EOT best_sol = __sol;
+00093 
+00094     do
+00095       {
+00096 
+00097         cont.init ();
+00098         do
+00099           {
+00100 
+00101             move_rand (move);
+00102 
+00103             Fitness delta_fit = incr_eval (move, __sol) - __sol.fitness ();
+00104 
+00105             if (delta_fit > 0 || rng.uniform () < exp (delta_fit / temp))
+00106               {
+00107 
+00108                 __sol.fitness (incr_eval (move, __sol));
+00109                 move (__sol);
+00110 
+00111                 /* Updating the best solution found
+00112                    until now ? */
+00113                 if (__sol.fitness () > best_sol.fitness ())
+00114                   best_sol = __sol;
+00115               }
+00116 
+00117           }
+00118         while (cont (__sol));
+00119 
+00120       }
+00121     while (cool_sched (temp));
+00122 
+00123     __sol = best_sol;
+00124 
+00125     return true;
+00126   }
+00127 
+00128 private:
+00129 
+00131   moRandMove < M > &move_rand;
+00132 
+00134   moMoveIncrEval < M > &incr_eval;
+00135 
+00137   moSolContinue < EOT > &cont;
+00138 
+00140   double  init_temp;
+00141 
+00143   moCoolingSchedule & cool_sched;
+00144 
+00146   eoEvalFunc < EOT > &full_eval;        // Full evaluator.
+00147 };
+00148 
+00149 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_simple_move_tabu_list_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_simple_move_tabu_list_8h-source.html new file mode 100644 index 000000000..e562d4398 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_simple_move_tabu_list_8h-source.html @@ -0,0 +1,140 @@ + + +PARADISEO-MO: moSimpleMoveTabuList.h Source File + + + + +
+
+

moSimpleMoveTabuList.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moSimpleMoveTabuList.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2007
+00006 
+00007 /* LICENCE TEXT 
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSimpleMoveTabuList_h
+00013 #define __moSimpleMoveTabuList_h
+00014 
+00015 #include <list>
+00016 #include <iterator>
+00017 
+00018 #include "moTabuList.h"
+00019 
+00021 template <class M>
+00022 class moSimpleMoveTabuList: public moTabuList < M >
+00023 {
+00024   
+00025 public:
+00026   
+00028   typedef typename M::EOType EOT;
+00029 
+00031   /*
+00032     \param __size The maximum size of the move tabu list.
+00033    */
+00034   moSimpleMoveTabuList(unsigned int __size): maxSize(__size)
+00035   {
+00036     currentSize=0;
+00037   }
+00038 
+00040 
+00045   bool
+00046   operator () (const M & __move, const EOT & __sol) 
+00047   {
+00048     typename std::list<M>::iterator it;
+00049     
+00050     it=tabuList.begin();
+00051     while(it!=tabuList.end()&&(!((*it)==__move)))
+00052       {
+00053         it++;
+00054       }
+00055     
+00056     return it!=tabuList.end();
+00057   }
+00058   
+00059   void
+00060   add (const M & __move, const EOT & __sol)
+00061   {
+00062     if(currentSize!=0)
+00063       {
+00064         // Useful in the case of a move has been kept thanks to the moAspirCrit.
+00065         // In this case, the move can already be in the tabuList.
+00066         removeMove(__move);
+00067       }
+00068 
+00069     tabuList.push_back(__move);
+00070     
+00071     if(currentSize==maxSize)
+00072       {
+00073         tabuList.erase(tabuList.begin());
+00074       }
+00075     else
+00076       {
+00077         currentSize++;
+00078       }
+00079   }
+00080   
+00081   void
+00082   update ()
+00083   {
+00084     //nothing to do
+00085   }
+00086 
+00087   void
+00088   init ()
+00089   {
+00090     //nothing to do
+00091   }
+00092 
+00093 private:
+00094   
+00096 
+00099   void
+00100   removeMove(const M & __move)
+00101   {
+00102     typename std::list<M>::iterator it;
+00103     
+00104     it=tabuList.begin();
+00105     while(it!=tabuList.end()&&(!((*it)==__move)))
+00106       {
+00107         it++;
+00108       }
+00109 
+00110     if(it!=tabuList.end())
+00111       {
+00112         tabuList.erase(it);
+00113       }
+00114   }
+00115 
+00117   unsigned int maxSize;
+00118 
+00120   unsigned int currentSize;
+00121   
+00123   std::list<M> tabuList;
+00124 };
+00125 
+00126 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_simple_solution_tabu_list_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_simple_solution_tabu_list_8h-source.html new file mode 100644 index 000000000..50bf5ecae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_simple_solution_tabu_list_8h-source.html @@ -0,0 +1,147 @@ + + +PARADISEO-MO: moSimpleSolutionTabuList.h Source File + + + + +
+
+

moSimpleSolutionTabuList.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moSimpleSolutionTabuList.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2007
+00006 
+00007 /* LICENCE TEXT 
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSimpleSolutionTabuList_h
+00013 #define __moSimpleSolutionTabuList_h
+00014 
+00015 #include <list>
+00016 #include <iterator>
+00017 
+00018 #include "moTabuList.h"
+00019 
+00021 template <class M>
+00022 class moSimpleSolutionTabuList: public moTabuList < M >
+00023 {
+00024   
+00025 public:
+00026 
+00028   typedef typename M::EOType EOT;
+00029   
+00031 
+00034   moSimpleSolutionTabuList(unsigned int __size): maxSize(__size)
+00035   {
+00036     currentSize=0;
+00037   }
+00038   
+00040 
+00045   bool operator () (const M & __move, const EOT & __sol) 
+00046   {
+00047     typename std::list<EOT>::iterator it;
+00048   
+00049     M _move=(M)__move;
+00050     EOT _sol=(EOT) __sol;
+00051 
+00052     _move(_sol);
+00053   
+00054     it=tabuList.begin();
+00055     while(it!=tabuList.end()&&(!((*it)==_sol)))
+00056       {
+00057         it++;
+00058       }
+00059     
+00060     return it!=tabuList.end();
+00061   }
+00062   
+00063   void
+00064   add (const M & __move, const EOT & __sol)
+00065   {
+00066     M _move=(M)__move;
+00067     EOT _sol=(EOT) _sol;
+00068     
+00069     _move(_sol);
+00070 
+00071     if(currentSize!=0)
+00072       {
+00073         // Useful in the case of a solution has been kept thanks to the moAspirCrit.
+00074         // In this case, the solution can already be in the tabuList.
+00075         removeSolution(_sol);
+00076       }
+00077     
+00078     tabuList.push_back(_sol);
+00079     
+00080     if(currentSize==maxSize)
+00081       {
+00082         tabuList.erase(tabuList.begin());
+00083       }
+00084     else
+00085       {
+00086         currentSize++;
+00087       }
+00088   }
+00089 
+00090   void
+00091   update ()
+00092   {
+00093     //nothing to do
+00094   }
+00095 
+00096   void
+00097   init ()
+00098   {
+00099     //nothing to do
+00100   }
+00101 
+00102 private:
+00103 
+00105 
+00108   void
+00109   removeSolution(const EOT & __sol)
+00110   {
+00111     typename std::list<EOT>::iterator it;
+00112 
+00113     it=tabuList.begin();
+00114     while(it!=tabuList.end()&&(!((*it)==__sol)))
+00115       {
+00116         it++;
+00117       }
+00118 
+00119     if(it!=tabuList.end())
+00120       {
+00121         tabuList.erase(it);
+00122       }
+00123   }
+00124   
+00126   unsigned int maxSize;
+00127 
+00129   unsigned int currentSize;
+00130   
+00132   std::list<EOT> tabuList;
+00133 };
+00134 
+00135 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_sol_continue_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_sol_continue_8h-source.html new file mode 100644 index 000000000..cdb60226d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_sol_continue_8h-source.html @@ -0,0 +1,54 @@ + + +PARADISEO-MO: moSolContinue.h Source File + + + + +
+
+

moSolContinue.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moSolContinue.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moSolContinue_h
+00013 #define __moSolContinue_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class EOT > class moSolContinue:public eoUF < const EOT &, bool >
+00023 {
+00024 
+00025 public:
+00027 
+00030   virtual void init () = 0;
+00031 };
+00032 
+00033 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_t_s_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_t_s_8h-source.html new file mode 100644 index 000000000..df2f8721f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_t_s_8h-source.html @@ -0,0 +1,138 @@ + + +PARADISEO-MO: moTS.h Source File + + + + +
+
+

moTS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moTS.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008       
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moTS_h
+00013 #define __moTS_h
+00014 
+00015 #include <eoOp.h>
+00016 #include <eoEvalFunc.h>
+00017 
+00018 #include "moAlgo.h"
+00019 #include "moSolContinue.h"
+00020 
+00021 #include "moMoveExpl.h"
+00022 #include "moTSMoveLoopExpl.h"
+00023 
+00024 
+00026 
+00029 template < class M > class moTS:public moAlgo < typename M::EOType >
+00030 {
+00031 
+00033   typedef
+00034     typename
+00035     M::EOType
+00036     EOT;
+00037 
+00039   typedef
+00040     typename
+00041     EOT::Fitness
+00042     Fitness;
+00043 
+00044 public:
+00045 
+00047 
+00058 moTS (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (*new moTSMoveLoopExpl < M >
+00059              (__move_init, __next_move, __incr_eval, __tabu_list,
+00060               __aspir_crit)), cont (__cont), full_eval (__full_eval)
+00061       {}
+00062 
+00064 
+00071 moTS (moMoveExpl < M > &__move_expl, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl),
+00072     cont (__cont),
+00073     full_eval (__full_eval)
+00074     {}
+00075 
+00077 
+00085   bool operator   ()(EOT & __sol)
+00086   {
+00087     if (__sol.invalid ())
+00088       {
+00089         full_eval (__sol);
+00090       }
+00091 
+00092     M move;
+00093 
+00094     EOT best_sol = __sol, new_sol;
+00095 
+00096     cont.init ();
+00097 
+00098     do
+00099       {
+00100 
+00101         new_sol = __sol;
+00102 
+00103         try
+00104         {
+00105 
+00106           move_expl (__sol, new_sol);
+00107 
+00108         }
+00109         catch (EmptySelection & __ex)
+00110         {
+00111 
+00112           break;
+00113         }
+00114 
+00115         /* Updating the best solution
+00116            found until now ? */
+00117         if (new_sol.fitness () > __sol.fitness ())
+00118           {
+00119             best_sol = new_sol;
+00120           }
+00121 
+00122         __sol = new_sol;
+00123 
+00124       }
+00125     while (cont (__sol));
+00126 
+00127     __sol = best_sol;
+00128  
+00129     return true;
+00130   }
+00131 
+00132 private:
+00133 
+00135   moMoveExpl < M > &move_expl;
+00136 
+00138   moSolContinue < EOT > &cont;
+00139 
+00141   eoEvalFunc < EOT > &full_eval;
+00142 };
+00143 
+00144 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_t_s_move_loop_expl_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_t_s_move_loop_expl_8h-source.html new file mode 100644 index 000000000..d9be76c70 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_t_s_move_loop_expl_8h-source.html @@ -0,0 +1,134 @@ + + +PARADISEO-MO: moTSMoveLoopExpl.h Source File + + + + +
+
+

moTSMoveLoopExpl.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moTSMoveLoopExpl.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moTSMoveLoopExpl_h
+00013 #define __moTSMoveLoopExpl_h
+00014 
+00015 #include "moMoveLoopExpl.h"
+00016 
+00017 #include "moMoveInit.h"
+00018 #include "moNextMove.h"
+00019 #include "moMoveIncrEval.h"
+00020 #include "moMoveSelect.h"
+00021 
+00022 #include "moTabuList.h"
+00023 #include "moAspirCrit.h"
+00024 #include "moBestImprSelect.h"
+00025 
+00027 
+00030 template < class M > class moTSMoveLoopExpl:public moMoveLoopExpl < M >
+00031 {
+00032 
+00034   typedef typename M::EOType EOT;
+00035 
+00037   typedef typename M::EOType::Fitness Fitness;
+00038 
+00039 public:
+00040 
+00042 
+00049 moTSMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit):
+00050   move_init (__move_init),
+00051     next_move (__next_move),
+00052     incr_eval (__incr_eval),
+00053     tabu_list (__tabu_list), aspir_crit (__aspir_crit)
+00054   {
+00055 
+00056     tabu_list.init ();
+00057     aspir_crit.init ();
+00058   }
+00059 
+00061 
+00069   void operator   () (const EOT & __old_sol, EOT & __new_sol)
+00070   {
+00071 
+00072     M move;
+00073 
+00074 
+00075     move_init (move, __old_sol);        /* Restarting the exploration of 
+00076                                            of the neighborhood ! */
+00077 
+00078     move_select.init (__old_sol.fitness ());
+00079 
+00080     do
+00081       {
+00082 
+00083         Fitness fit = incr_eval (move, __old_sol);
+00084 
+00085         if (!tabu_list (move, __old_sol) || aspir_crit (move, fit))
+00086           {
+00087             if (!move_select.update (move, fit))
+00088               break;
+00089           }
+00090 
+00091       }
+00092     while (next_move (move, __old_sol));
+00093 
+00094     M best_move;
+00095 
+00096     Fitness best_move_fit;
+00097 
+00098     move_select (best_move, best_move_fit);
+00099 
+00100     __new_sol.fitness (best_move_fit);
+00101     best_move (__new_sol);
+00102 
+00103     /* Removing moves that are
+00104        no more tabu */
+00105     tabu_list.update ();
+00106 
+00107     // Updating the tabu list
+00108     tabu_list.add (best_move, __new_sol);
+00109   }
+00110 
+00111 private:
+00112 
+00114   moMoveInit < M > &move_init;
+00115 
+00117   moNextMove < M > &next_move;
+00118 
+00120   moMoveIncrEval < M > &incr_eval;
+00121 
+00123   moBestImprSelect < M > move_select;
+00124 
+00126   moTabuList < M > &tabu_list;
+00127 
+00129   moAspirCrit < M > &aspir_crit;
+00130 };
+00131 
+00132 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_tabu_list_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_tabu_list_8h-source.html new file mode 100644 index 000000000..a7037144a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/mo_tabu_list_8h-source.html @@ -0,0 +1,67 @@ + + +PARADISEO-MO: moTabuList.h Source File + + + + +
+
+

moTabuList.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 // "moTabuList.h"
+00004 
+00005 // (c) OPAC Team, LIFL, 2003-2006
+00006 
+00007 /* LICENCE TEXT 
+00008    
+00009    Contact: paradiseo-help@lists.gforge.inria.fr
+00010 */
+00011 
+00012 #ifndef __moTabuList_h
+00013 #define __moTabuList_h
+00014 
+00015 #include <eoFunctor.h>
+00016 
+00018 
+00022 template < class M > class moTabuList:public eoBF < const M &, const typename
+00023   M::EOType &,
+00024   bool >
+00025 {
+00026 
+00027 public:
+00029   typedef typename M::EOType EOT;
+00030 
+00032 
+00038   virtual void
+00039   add (const M & __move, const EOT & __sol) = 0;
+00040 
+00042 
+00045   virtual void
+00046   update () = 0;
+00047 
+00049 
+00052   virtual void
+00053   init () = 0;
+00054 };
+00055 
+00056 #endif
+

Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/search.idx b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/search.idx new file mode 100644 index 000000000..9acfc7ce9 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/search.idx differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/search.php b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/search.php new file mode 100644 index 000000000..4728886ec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/search.php @@ -0,0 +1,381 @@ + + +Search + + + + +
+
    +
  • Main Page
  • +
  • Classes
  • +
  • Files
  • +
  • +
    + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
    \n
    \n
  • \n
\n
\n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

".search_results()."

".matches_text(0)."
".matches_text($numDocs); + echo "\n"; + echo "
$num.".$doc["name"]."
".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
\n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
\n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
\n"; + fclose($file); +} + +main(); + + +?> +
Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_b.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_b.gif new file mode 100644 index 000000000..0d623483f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_b.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_l.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_l.gif new file mode 100644 index 000000000..9b1e6337c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_l.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_r.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_r.gif new file mode 100644 index 000000000..ce9dd9f53 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tab_r.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tabs.css b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tree.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tree.html new file mode 100644 index 000000000..8ff0fff2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/html/tree.html @@ -0,0 +1,235 @@ + + + + + + + TreeView + + + + +
+

PARADISEO-MO

+
+

o*Welcome to PARADISEO-Moving Objects

+

o+Class List

+ +

o+Class Hierarchy

+ +

o*Class Members

+

\+File List

+
+

 o*index.h

+

 o*mo.h

+

 o*moAlgo.h

+

 o*moAspirCrit.h

+

 o*moBestImprSelect.h

+

 o*moCoolingSchedule.h

+

 o*moExponentialCoolingSchedule.h

+

 o*moFirstImprSelect.h

+

 o*moGenSolContinue.h

+

 o*moHC.h

+

 o*moHCMoveLoopExpl.h

+

 o*moImprBestFitAspirCrit.h

+

 o*moItRandNextMove.h

+

 o*moLinearCoolingSchedule.h

+

 o*moLSCheckPoint.h

+

 o*moMove.h

+

 o*moMoveExpl.h

+

 o*moMoveIncrEval.h

+

 o*moMoveInit.h

+

 o*moMoveLoopExpl.h

+

 o*moMoveSelect.h

+

 o*moNextMove.h

+

 o*moNoAspirCrit.h

+

 o*moRandImprSelect.h

+

 o*moRandMove.h

+

 o*moSA.h

+

 o*moSimpleMoveTabuList.h

+

 o*moSimpleSolutionTabuList.h

+

 o*moSolContinue.h

+

 o*moTabuList.h

+

 o*moTS.h

+

 \*moTSMoveLoopExpl.h

+
+
+
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/FreeSans.ttf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/FreeSans.ttf new file mode 100644 index 000000000..b550b90ba Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/FreeSans.ttf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/Makefile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/Makefile new file mode 100644 index 000000000..776fcf968 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/Makefile @@ -0,0 +1,39 @@ +all: clean refman.dvi + +ps: refman.ps + +pdf: refman.pdf + +ps_2on1: refman_2on1.ps + +pdf_2on1: refman_2on1.pdf + +refman.ps: refman.dvi + dvips -o refman.ps refman.dvi + +refman.pdf: refman.ps + ps2pdf refman.ps refman.pdf + +refman.dvi: refman.tex doxygen.sty + echo "Running latex..." + latex refman.tex + echo "Running makeindex..." + makeindex refman.idx + echo "Rerunning latex...." + latex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + latex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + +refman_2on1.ps: refman.ps + psnup -2 refman.ps >refman_2on1.ps + +refman_2on1.pdf: refman_2on1.ps + ps2pdf refman_2on1.ps refman_2on1.pdf + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/annotated.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/annotated.tex new file mode 100644 index 000000000..cef418d52 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/annotated.tex @@ -0,0 +1,34 @@ +\section{PARADISEO-MO Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\bf{Empty\-Selection} (Special class that describes the case of no selection )}{\pageref{class_empty_selection}}{} +\item\contentsline{section}{\bf{mo\-Algo$<$ EOT $>$} (Description of an algorithm of the paradiseo-mo library )}{\pageref{classmo_algo}}{} +\item\contentsline{section}{\bf{mo\-Aspir\-Crit$<$ M $>$} (Description of the conditions in which a tabu move could be accepted )}{\pageref{classmo_aspir_crit}}{} +\item\contentsline{section}{\bf{mo\-Best\-Impr\-Select$<$ M $>$} (One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select} )}{\pageref{classmo_best_impr_select}}{} +\item\contentsline{section}{\bf{mo\-Cooling\-Schedule} (This class gives the description of a cooling schedule )}{\pageref{classmo_cooling_schedule}}{} +\item\contentsline{section}{\bf{mo\-Exponential\-Cooling\-Schedule} (One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule} )}{\pageref{classmo_exponential_cooling_schedule}}{} +\item\contentsline{section}{\bf{mo\-First\-Impr\-Select$<$ M $>$} (One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select} )}{\pageref{classmo_first_impr_select}}{} +\item\contentsline{section}{\bf{mo\-Gen\-Sol\-Continue$<$ EOT $>$} (One possible stop criterion for a solution-based heuristic )}{\pageref{classmo_gen_sol_continue}}{} +\item\contentsline{section}{\bf{mo\-HC$<$ M $>$} (Hill Climbing (HC) )}{\pageref{classmo_h_c}}{} +\item\contentsline{section}{\bf{mo\-HCMove\-Loop\-Expl$<$ M $>$} (Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c} )}{\pageref{classmo_h_c_move_loop_expl}}{} +\item\contentsline{section}{\bf{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$} (One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit} )}{\pageref{classmo_impr_best_fit_aspir_crit}}{} +\item\contentsline{section}{\bf{mo\-It\-Rand\-Next\-Move$<$ M $>$} (One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move} )}{\pageref{classmo_it_rand_next_move}}{} +\item\contentsline{section}{\bf{mo\-Linear\-Cooling\-Schedule} (One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule} )}{\pageref{classmo_linear_cooling_schedule}}{} +\item\contentsline{section}{\bf{mo\-LSCheck\-Point$<$ M $>$} (Class which allows a checkpointing system )}{\pageref{classmo_l_s_check_point}}{} +\item\contentsline{section}{\bf{mo\-Move$<$ EOT $>$} (Definition of a move )}{\pageref{classmo_move}}{} +\item\contentsline{section}{\bf{mo\-Move\-Expl$<$ M $>$} (Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer )}{\pageref{classmo_move_expl}}{} +\item\contentsline{section}{\bf{mo\-Move\-Incr\-Eval$<$ M $>$} ((generally) Efficient evaluation function based a move and a solution )}{\pageref{classmo_move_incr_eval}}{} +\item\contentsline{section}{\bf{mo\-Move\-Init$<$ M $>$} (Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer )}{\pageref{classmo_move_init}}{} +\item\contentsline{section}{\bf{mo\-Move\-Loop\-Expl$<$ M $>$} (Class which describes an iterative explorer )}{\pageref{classmo_move_loop_expl}}{} +\item\contentsline{section}{\bf{mo\-Move\-Select$<$ M $>$} (Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}) )}{\pageref{classmo_move_select}}{} +\item\contentsline{section}{\bf{mo\-Next\-Move$<$ M $>$} (Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}) )}{\pageref{classmo_next_move}}{} +\item\contentsline{section}{\bf{mo\-No\-Aspir\-Crit$<$ M $>$} (One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}) )}{\pageref{classmo_no_aspir_crit}}{} +\item\contentsline{section}{\bf{mo\-Rand\-Impr\-Select$<$ M $>$} (One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\-Move\-Select}{p.}{classmo_move_select}) )}{\pageref{classmo_rand_impr_select}}{} +\item\contentsline{section}{\bf{mo\-Rand\-Move$<$ M $>$} (Random move generator )}{\pageref{classmo_rand_move}}{} +\item\contentsline{section}{\bf{mo\-SA$<$ M $>$} (Simulated Annealing (SA) )}{\pageref{classmo_s_a}}{} +\item\contentsline{section}{\bf{mo\-Simple\-Move\-Tabu\-List$<$ M $>$} (Class describing a move tabu list with a limited memory )}{\pageref{classmo_simple_move_tabu_list}}{} +\item\contentsline{section}{\bf{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$} (Class describing a solution tabu list with limited length )}{\pageref{classmo_simple_solution_tabu_list}}{} +\item\contentsline{section}{\bf{mo\-Sol\-Continue$<$ EOT $>$} (Class that describes a stop criterion for a solution-based heuristic )}{\pageref{classmo_sol_continue}}{} +\item\contentsline{section}{\bf{mo\-Tabu\-List$<$ M $>$} (Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses )}{\pageref{classmo_tabu_list}}{} +\item\contentsline{section}{\bf{mo\-TS$<$ M $>$} (Tabu Search (TS) )}{\pageref{classmo_t_s}}{} +\item\contentsline{section}{\bf{mo\-TSMove\-Loop\-Expl$<$ M $>$} (Explorer for a Tabu Search algorithm )}{\pageref{classmo_t_s_move_loop_expl}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/class_empty_selection.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/class_empty_selection.tex new file mode 100644 index 000000000..4b44303b4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/class_empty_selection.tex @@ -0,0 +1,21 @@ +\section{Empty\-Selection Class Reference} +\label{class_empty_selection}\index{EmptySelection@{EmptySelection}} +Special class that describes the case of no selection. + + +{\tt \#include $<$mo\-Move\-Select.h$>$} + + + +\subsection{Detailed Description} +Special class that describes the case of no selection. + +This class is used as an exception that can be thrown if a solution selector has completly failed. + + + +Definition at line 21 of file mo\-Move\-Select.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_algo.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_algo.eps new file mode 100644 index 000000000..5a1270e24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_algo.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 273.973 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.825 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moAlgo< EOT >) cw +(eoMonOp< EOT >) cw +(eoOp< EOType >) cw +(eoUF< EOT &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moAlgo< EOT >) 0.5 0 box + (eoMonOp< EOT >) 0.5 1 box + (eoOp< EOType >) 0 2 box + (eoUF< EOT &, bool >) 1 2 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_algo.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_algo.tex new file mode 100644 index 000000000..bfd2994a6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_algo.tex @@ -0,0 +1,29 @@ +\section{mo\-Algo$<$ EOT $>$ Class Template Reference} +\label{classmo_algo}\index{moAlgo@{moAlgo}} +Description of an algorithm of the paradiseo-mo library. + + +{\tt \#include $<$mo\-Algo.h$>$} + +Inheritance diagram for mo\-Algo$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_algo} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Algo$<$ EOT $>$} + +Description of an algorithm of the paradiseo-mo library. + +\doxyref{mo\-HC}{p.}{classmo_h_c}, \doxyref{mo\-TS}{p.}{classmo_t_s} and \doxyref{mo\-SA}{p.}{classmo_s_a} are 3 examples of algorithm of the paradiseo-mo library. + + + +Definition at line 21 of file mo\-Algo.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Algo.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_aspir_crit.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_aspir_crit.eps new file mode 100644 index 000000000..7a0252d70 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_aspir_crit.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 218.579 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moAspirCrit< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moImprBestFitAspirCrit< M >) cw +(moNoAspirCrit< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moAspirCrit< M >) 0.5 1 box + (eoBF< A1, A2, R >) 0.5 2 box + (eoFunctorBase) 0.5 3 box + (moImprBestFitAspirCrit< M >) 0 0 box + (moNoAspirCrit< M >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_aspir_crit.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_aspir_crit.tex new file mode 100644 index 000000000..8349f497a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_aspir_crit.tex @@ -0,0 +1,46 @@ +\section{mo\-Aspir\-Crit$<$ M $>$ Class Template Reference} +\label{classmo_aspir_crit}\index{moAspirCrit@{moAspirCrit}} +Description of the conditions in which a tabu move could be accepted. + + +{\tt \#include $<$mo\-Aspir\-Crit.h$>$} + +Inheritance diagram for mo\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_aspir_crit} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{init} ()=0 +\begin{CompactList}\small\item\em Procedure which initialises all that needs a aspiration criterion. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Aspir\-Crit$<$ M $>$} + +Description of the conditions in which a tabu move could be accepted. + +It is only a description... An object that herits from this class is needed to be used in a \doxyref{mo\-TS}{p.}{classmo_t_s}. See mo\-No\-Aspri\-Crit for example. + + + +Definition at line 22 of file mo\-Aspir\-Crit.h. + +\subsection{Member Function Documentation} +\index{moAspirCrit@{mo\-Aspir\-Crit}!init@{init}} +\index{init@{init}!moAspirCrit@{mo\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void \bf{mo\-Aspir\-Crit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_aspir_crit_a8ce84510a5ec7c9078381e542c6d140} + + +Procedure which initialises all that needs a aspiration criterion. + +It can be possible that this procedure do nothing... + +Implemented in \bf{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$} \doxyref{p.}{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9fdbc348630}, and \bf{mo\-No\-Aspir\-Crit$<$ M $>$} \doxyref{p.}{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Aspir\-Crit.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_best_impr_select.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_best_impr_select.eps new file mode 100644 index 000000000..e1504ce28 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_best_impr_select.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moBestImprSelect< M >) cw +(moMoveSelect< M >) cw +(eoBF< M &, M::EOType::Fitness &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moBestImprSelect< M >) 0 0 box + (moMoveSelect< M >) 0 1 box + (eoBF< M &, M::EOType::Fitness &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_best_impr_select.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_best_impr_select.tex new file mode 100644 index 000000000..f0598e3a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_best_impr_select.tex @@ -0,0 +1,105 @@ +\section{mo\-Best\-Impr\-Select$<$ M $>$ Class Template Reference} +\label{classmo_best_impr_select}\index{moBestImprSelect@{moBestImprSelect}} +One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + + +{\tt \#include $<$mo\-Best\-Impr\-Select.h$>$} + +Inheritance diagram for mo\-Best\-Impr\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_best_impr_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_best_impr_select_c4ae17435221fb0a8e8acd285210cfcb} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{init} (const \bf{Fitness} \&\_\-\_\-fit)\label{classmo_best_impr_select_2d2abf9aa17dc77cbb4f41810ab7b956} + +\begin{CompactList}\small\item\em Procedure which initialise the exploration. \item\end{CompactList}\item +bool \bf{update} (const M \&\_\-\_\-move, const \bf{Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em \doxyref{Function} that indicates if the current move has not improved the fitness. \item\end{CompactList}\item +void \bf{operator()} (M \&\_\-\_\-move, \bf{Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) +\begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +bool \bf{first\_\-time}\label{classmo_best_impr_select_352b14d206b0772eb9f40efb7beb0f13} + +\begin{CompactList}\small\item\em Allowing to know if at least one move has been generated. \item\end{CompactList}\item +M \bf{best\_\-move}\label{classmo_best_impr_select_bd86f70519f954c07ff0d8a2a3a8ff6a} + +\begin{CompactList}\small\item\em The best move. \item\end{CompactList}\item +\bf{Fitness} \bf{best\_\-fit}\label{classmo_best_impr_select_dcac897424b5805f146bb1dbb429f2fe} + +\begin{CompactList}\small\item\em The best fitness. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Best\-Impr\-Select$<$ M $>$} + +One of the possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + +All neighbors are considered, and the movement which enables the best improvement is selected. + + + +Definition at line 22 of file mo\-Best\-Impr\-Select.h. + +\subsection{Member Function Documentation} +\index{moBestImprSelect@{mo\-Best\-Impr\-Select}!update@{update}} +\index{update@{update}!moBestImprSelect@{mo\-Best\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-Best\-Impr\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_best_impr_select_d10e3e6f8a0277731e95ef506d064d6d} + + +\doxyref{Function} that indicates if the current move has not improved the fitness. + +If the given fitness enables an improvment, the move (\doxyref{mo\-Move}{p.}{classmo_move}) and the fitness linked to this move are saved. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitness linked to the move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE if the move does not improve the fitness. \end{Desc} + + +Implements \bf{mo\-Move\-Select$<$ M $>$} \doxyref{p.}{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}. + +Definition at line 47 of file mo\-Best\-Impr\-Select.h. + +References mo\-Best\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-Best\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-Best\-Impr\-Select$<$ M $>$::first\_\-time.\index{moBestImprSelect@{mo\-Best\-Impr\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moBestImprSelect@{mo\-Best\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Best\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, \bf{Fitness} \& {\em \_\-\_\-fit}) throw (\bf{Empty\-Selection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_best_impr_select_169773d4d127acd782cf379f758222da} + + +Procedure which saved the best move and fitness. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the current move (result of the procedure). \item[{\em \_\-\_\-fit}]the current fitness (result of the procedure). \end{description} +\end{Desc} +\begin{Desc} +\item[Exceptions:] +\begin{description} +\item[{\em \doxyref{Empty\-Selection}{p.}{class_empty_selection}}]if no move has improved the fitness. \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>$}. + +Definition at line 68 of file mo\-Best\-Impr\-Select.h. + +References mo\-Best\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-Best\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-Best\-Impr\-Select$<$ M $>$::first\_\-time. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Best\-Impr\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_cooling_schedule.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_cooling_schedule.eps new file mode 100644 index 000000000..099ff0bb2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_cooling_schedule.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 203.046 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.4625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moCoolingSchedule) cw +(eoUF< double &, bool >) cw +(eoFunctorBase) cw +(moExponentialCoolingSchedule) cw +(moLinearCoolingSchedule) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moCoolingSchedule) 0.5 1 box + (eoUF< double &, bool >) 0.5 2 box + (eoFunctorBase) 0.5 3 box + (moExponentialCoolingSchedule) 0 0 box + (moLinearCoolingSchedule) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_cooling_schedule.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_cooling_schedule.tex new file mode 100644 index 000000000..65e4977be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_cooling_schedule.tex @@ -0,0 +1,27 @@ +\section{mo\-Cooling\-Schedule Class Reference} +\label{classmo_cooling_schedule}\index{moCoolingSchedule@{moCoolingSchedule}} +This class gives the description of a cooling schedule. + + +{\tt \#include $<$mo\-Cooling\-Schedule.h$>$} + +Inheritance diagram for mo\-Cooling\-Schedule::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_cooling_schedule} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +This class gives the description of a cooling schedule. + +It is only a description... An object that herits from this class is needed to be used in a \doxyref{mo\-SA}{p.}{classmo_s_a}. See \doxyref{mo\-Exponential\-Cooling\-Schedule}{p.}{classmo_exponential_cooling_schedule} or \doxyref{mo\-Linear\-Cooling\-Schedule}{p.}{classmo_linear_cooling_schedule} for example. + + + +Definition at line 22 of file mo\-Cooling\-Schedule.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Cooling\-Schedule.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_exponential_cooling_schedule.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_exponential_cooling_schedule.eps new file mode 100644 index 000000000..92ecef949 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_exponential_cooling_schedule.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 406.091 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.23125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moExponentialCoolingSchedule) cw +(moCoolingSchedule) cw +(eoUF< double &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moExponentialCoolingSchedule) 0 0 box + (moCoolingSchedule) 0 1 box + (eoUF< double &, bool >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_exponential_cooling_schedule.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_exponential_cooling_schedule.tex new file mode 100644 index 000000000..728025e98 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_exponential_cooling_schedule.tex @@ -0,0 +1,85 @@ +\section{mo\-Exponential\-Cooling\-Schedule Class Reference} +\label{classmo_exponential_cooling_schedule}\index{moExponentialCoolingSchedule@{moExponentialCoolingSchedule}} +One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule}. + + +{\tt \#include $<$mo\-Exponential\-Cooling\-Schedule.h$>$} + +Inheritance diagram for mo\-Exponential\-Cooling\-Schedule::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_exponential_cooling_schedule} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-Exponential\-Cooling\-Schedule} (double \_\-\_\-threshold, double \_\-\_\-ratio) +\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item +bool \bf{operator()} (double \&\_\-\_\-temp) +\begin{CompactList}\small\item\em \doxyref{Function} which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double \bf{threshold}\label{classmo_exponential_cooling_schedule_8d4327c0bb33b7121a322279eea97f84} + +\begin{CompactList}\small\item\em The temperature threhold. \item\end{CompactList}\item +double \bf{ratio}\label{classmo_exponential_cooling_schedule_e8f3f87417c1c7253efb938a740846fa} + +\begin{CompactList}\small\item\em The decreasing factor of the temperature. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule}. + +An other very simple cooling schedule, the temperature decrease according to a ratio while the temperature is greater than a given threshold. + + + +Definition at line 22 of file mo\-Exponential\-Cooling\-Schedule.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moExponentialCoolingSchedule@{mo\-Exponential\-Cooling\-Schedule}!moExponentialCoolingSchedule@{moExponentialCoolingSchedule}} +\index{moExponentialCoolingSchedule@{moExponentialCoolingSchedule}!moExponentialCoolingSchedule@{mo\-Exponential\-Cooling\-Schedule}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}mo\-Exponential\-Cooling\-Schedule::mo\-Exponential\-Cooling\-Schedule (double {\em \_\-\_\-threshold}, double {\em \_\-\_\-ratio})\hspace{0.3cm}{\tt [inline]}}\label{classmo_exponential_cooling_schedule_b01930c1051c0940666c6325bfd036bc} + + +Simple constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-threshold}]the threshold. \item[{\em \_\-\_\-ratio}]the ratio used to descrease the temperature. \end{description} +\end{Desc} + + +Definition at line 31 of file mo\-Exponential\-Cooling\-Schedule.h. + +\subsection{Member Function Documentation} +\index{moExponentialCoolingSchedule@{mo\-Exponential\-Cooling\-Schedule}!operator()@{operator()}} +\index{operator()@{operator()}!moExponentialCoolingSchedule@{mo\-Exponential\-Cooling\-Schedule}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Exponential\-Cooling\-Schedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_exponential_cooling_schedule_00642b03453b51612a10fcf2280543db} + + +\doxyref{Function} which proceeds to the cooling. + +It decreases the temperature and indicates if it is greater than the threshold. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-temp}]the current temperature. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]if the new temperature (current temperature $\ast$ ratio) is greater than the threshold. \end{Desc} + + +Implements \bf{eo\-UF$<$ double \&, bool $>$}. + +Definition at line 41 of file mo\-Exponential\-Cooling\-Schedule.h. + +References ratio, and threshold. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Exponential\-Cooling\-Schedule.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_first_impr_select.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_first_impr_select.eps new file mode 100644 index 000000000..7057473a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_first_impr_select.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moFirstImprSelect< M >) cw +(moMoveSelect< M >) cw +(eoBF< M &, M::EOType::Fitness &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moFirstImprSelect< M >) 0 0 box + (moMoveSelect< M >) 0 1 box + (eoBF< M &, M::EOType::Fitness &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_first_impr_select.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_first_impr_select.tex new file mode 100644 index 000000000..68e591cc4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_first_impr_select.tex @@ -0,0 +1,118 @@ +\section{mo\-First\-Impr\-Select$<$ M $>$ Class Template Reference} +\label{classmo_first_impr_select}\index{moFirstImprSelect@{moFirstImprSelect}} +One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + + +{\tt \#include $<$mo\-First\-Impr\-Select.h$>$} + +Inheritance diagram for mo\-First\-Impr\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_first_impr_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_first_impr_select_64763ce3e6d2873266624382b407fa5a} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{init} (const \bf{Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Procedure which initialise the exploration. \item\end{CompactList}\item +bool \bf{update} (const M \&\_\-\_\-move, const typename M::EOType::Fitness \&\_\-\_\-fit) +\begin{CompactList}\small\item\em \doxyref{Function} that indicates if the current move has not improved the fitness. \item\end{CompactList}\item +void \bf{operator()} (M \&\_\-\_\-move, \bf{Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) +\begin{CompactList}\small\item\em Procedure which saved the best move and fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +bool \bf{valid}\label{classmo_first_impr_select_a99c0586ba07449234705c17a258d58c} + +\begin{CompactList}\small\item\em Allow to know if at least one move has improved the solution. \item\end{CompactList}\item +M \bf{best\_\-move}\label{classmo_first_impr_select_dfed419a608dd7c41f07fa1f1279cb8c} + +\begin{CompactList}\small\item\em Best stored movement. \item\end{CompactList}\item +\bf{Fitness} \bf{init\_\-fit}\label{classmo_first_impr_select_ce7ba63e8cc3a9164f4e546477e98ca8} + +\begin{CompactList}\small\item\em Initial fitness. \item\end{CompactList}\item +\bf{Fitness} \bf{best\_\-fit}\label{classmo_first_impr_select_e1190347b76ec6fe717be32354b4a9a9} + +\begin{CompactList}\small\item\em Best stored fitness. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-First\-Impr\-Select$<$ M $>$} + +One possible \doxyref{mo\-Move\-Select}{p.}{classmo_move_select}. + +The neighborhood is explored until a move enables an improvment of the current solution. + + + +Definition at line 23 of file mo\-First\-Impr\-Select.h. + +\subsection{Member Function Documentation} +\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!init@{init}} +\index{init@{init}!moFirstImprSelect@{mo\-First\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void \bf{mo\-First\-Impr\-Select}$<$ M $>$::init (const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_first_impr_select_4c5ce18ede46247a439c68f6954a4055} + + +Procedure which initialise the exploration. + +It save the current fitness as the initial value for the fitness. + +Implements \bf{mo\-Move\-Select$<$ M $>$} \doxyref{p.}{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}. + +Definition at line 35 of file mo\-First\-Impr\-Select.h. + +References mo\-First\-Impr\-Select$<$ M $>$::init\_\-fit, and mo\-First\-Impr\-Select$<$ M $>$::valid.\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!update@{update}} +\index{update@{update}!moFirstImprSelect@{mo\-First\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-First\-Impr\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const typename M::EOType::Fitness \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_first_impr_select_7ba0882728daedc75c249647c070ccf0} + + +\doxyref{Function} that indicates if the current move has not improved the fitness. + +If the given fitness enables an improvment, the move (\doxyref{mo\-Move}{p.}{classmo_move}) should be applied to the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitness linked to the move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE if the move does not improve the fitness. \end{Desc} + + +Definition at line 52 of file mo\-First\-Impr\-Select.h. + +References mo\-First\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-First\-Impr\-Select$<$ M $>$::best\_\-move, mo\-First\-Impr\-Select$<$ M $>$::init\_\-fit, and mo\-First\-Impr\-Select$<$ M $>$::valid.\index{moFirstImprSelect@{mo\-First\-Impr\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moFirstImprSelect@{mo\-First\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-First\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, \bf{Fitness} \& {\em \_\-\_\-fit}) throw (\bf{Empty\-Selection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_first_impr_select_3be12cf4cbaed00df7c4fa735b2c0a95} + + +Procedure which saved the best move and fitness. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the current move (result of the procedure). \item[{\em \_\-\_\-fit}]the current fitness (result of the procedure). \end{description} +\end{Desc} +\begin{Desc} +\item[Exceptions:] +\begin{description} +\item[{\em \doxyref{Empty\-Selection}{p.}{class_empty_selection}}]if no move has improved the fitness. \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>$}. + +Definition at line 76 of file mo\-First\-Impr\-Select.h. + +References mo\-First\-Impr\-Select$<$ M $>$::best\_\-fit, mo\-First\-Impr\-Select$<$ M $>$::best\_\-move, and mo\-First\-Impr\-Select$<$ M $>$::valid. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-First\-Impr\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_gen_sol_continue.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_gen_sol_continue.eps new file mode 100644 index 000000000..c73c60ba3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_gen_sol_continue.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 441.989 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.13125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moGenSolContinue< EOT >) cw +(moSolContinue< EOT >) cw +(eoUF< const EOT &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moGenSolContinue< EOT >) 0 0 box + (moSolContinue< EOT >) 0 1 box + (eoUF< const EOT &, bool >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_gen_sol_continue.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_gen_sol_continue.tex new file mode 100644 index 000000000..e123e64bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_gen_sol_continue.tex @@ -0,0 +1,102 @@ +\section{mo\-Gen\-Sol\-Continue$<$ EOT $>$ Class Template Reference} +\label{classmo_gen_sol_continue}\index{moGenSolContinue@{moGenSolContinue}} +One possible stop criterion for a solution-based heuristic. + + +{\tt \#include $<$mo\-Gen\-Sol\-Continue.h$>$} + +Inheritance diagram for mo\-Gen\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_gen_sol_continue} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-Gen\-Sol\-Continue} (unsigned int \_\-\_\-max\-Num\-Gen) +\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item +bool \bf{operator()} (const EOT \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} that activates the stop criterion. \item\end{CompactList}\item +void \bf{init} () +\begin{CompactList}\small\item\em Procedure which allows to initialise the generation counter. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +unsigned int \bf{max\-Num\-Gen}\label{classmo_gen_sol_continue_30b9861e090578bdfa2374806600987a} + +\begin{CompactList}\small\item\em Iteration maximum number. \item\end{CompactList}\item +unsigned int \bf{num\-Gen}\label{classmo_gen_sol_continue_630d9736a3a2c952540cdc211764258c} + +\begin{CompactList}\small\item\em Iteration current number. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Gen\-Sol\-Continue$<$ EOT $>$} + +One possible stop criterion for a solution-based heuristic. + +The stop criterion corresponds to a maximum number of iteration. + + + +Definition at line 21 of file mo\-Gen\-Sol\-Continue.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!moGenSolContinue@{moGenSolContinue}} +\index{moGenSolContinue@{moGenSolContinue}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \bf{mo\-Gen\-Sol\-Continue}$<$ EOT $>$::\bf{mo\-Gen\-Sol\-Continue} (unsigned int {\em \_\-\_\-max\-Num\-Gen})\hspace{0.3cm}{\tt [inline]}}\label{classmo_gen_sol_continue_b56e890f1caa3f98e161c6512b59c95b} + + +Simple constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-max\-Num\-Gen}]the maximum number of generation. \end{description} +\end{Desc} + + +Definition at line 30 of file mo\-Gen\-Sol\-Continue.h. + +\subsection{Member Function Documentation} +\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!operator()@{operator()}} +\index{operator()@{operator()}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ bool \bf{mo\-Gen\-Sol\-Continue}$<$ EOT $>$::operator() (const EOT \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_457257cd73b474d6f7783d84d02c2e61} + + +\doxyref{Function} that activates the stop criterion. + +Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]the current solution. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE or FALSE according to the current generation number. \end{Desc} + + +Implements \bf{eo\-UF$<$ const EOT \&, bool $>$}. + +Definition at line 44 of file mo\-Gen\-Sol\-Continue.h. + +References mo\-Gen\-Sol\-Continue$<$ EOT $>$::max\-Num\-Gen, and mo\-Gen\-Sol\-Continue$<$ EOT $>$::num\-Gen.\index{moGenSolContinue@{mo\-Gen\-Sol\-Continue}!init@{init}} +\index{init@{init}!moGenSolContinue@{mo\-Gen\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \bf{mo\-Gen\-Sol\-Continue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4} + + +Procedure which allows to initialise the generation counter. + +It can also be used to reset the iteration counter. + +Implements \bf{mo\-Sol\-Continue$<$ EOT $>$} \doxyref{p.}{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7}. + +Definition at line 54 of file mo\-Gen\-Sol\-Continue.h. + +References mo\-Gen\-Sol\-Continue$<$ EOT $>$::num\-Gen. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Gen\-Sol\-Continue.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c.eps new file mode 100644 index 000000000..184d2041a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 271.739 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moHC< M >) cw +(moAlgo< M::EOType >) cw +(eoMonOp< M::EOType >) cw +(eoOp< EOType >) cw +(eoUF< M::EOType &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moHC< M >) 0.5 0 box + (moAlgo< M::EOType >) 0.5 1 box + (eoMonOp< M::EOType >) 0.5 2 box + (eoOp< EOType >) 0 3 box + (eoUF< M::EOType &, bool >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c.tex new file mode 100644 index 000000000..ef82357b0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c.tex @@ -0,0 +1,116 @@ +\section{mo\-HC$<$ M $>$ Class Template Reference} +\label{classmo_h_c}\index{moHC@{moHC}} +Hill Climbing (HC). + + +{\tt \#include $<$mo\-HC.h$>$} + +Inheritance diagram for mo\-HC$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmo_h_c} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-HC} (\bf{mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, \bf{mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, \bf{mo\-Move\-Select}$<$ M $>$ \&\_\-\_\-move\_\-select, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item +\bf{mo\-HC} (\bf{mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Light constructor. \item\end{CompactList}\item +bool \bf{operator()} (\bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} which launches the HC. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_h_c_d219296ede03c679646bce2fe8ff96cb} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef EOT::Fitness \bf{Fitness}\label{classmo_h_c_56487c97a7cf0c423cc879d1bbd45027} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{mo\-Move\-Expl}$<$ M $>$ \& \bf{move\_\-expl}\label{classmo_h_c_f6bfb4553fb699f1e08f7d9c37d06103} + +\begin{CompactList}\small\item\em Complete exploration of the neighborhood. \item\end{CompactList}\item +\bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& \bf{full\_\-eval}\label{classmo_h_c_4b0d5cc70fc3d83f59a48b2bdea65736} + +\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-HC$<$ M $>$} + +Hill Climbing (HC). + +Class which describes the algorithm for a hill climbing. + + + +Definition at line 26 of file mo\-HC.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moHC@{mo\-HC}!moHC@{moHC}} +\index{moHC@{moHC}!moHC@{mo\-HC}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-HC}$<$ M $>$::\bf{mo\-HC} (\bf{mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, \bf{mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, \bf{mo\-Move\-Select}$<$ M $>$ \& {\em \_\-\_\-move\_\-select}, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_6cafe093f86a80c225827884cb9dc5b7} + + +Full constructor. + +All the boxes are given in order the HC to use a \doxyref{mo\-HCMove\-Loop\-Expl}{p.}{classmo_h_c_move_loop_expl}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]a move initialiser. \item[{\em \_\-\_\-next\_\-move}]a neighborhood explorer. \item[{\em \_\-\_\-incr\_\-eval}]a (generally) efficient evaluation function. \item[{\em \_\-\_\-move\_\-select}]a move selector. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description} +\end{Desc} + + +Definition at line 53 of file mo\-HC.h.\index{moHC@{mo\-HC}!moHC@{moHC}} +\index{moHC@{moHC}!moHC@{mo\-HC}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-HC}$<$ M $>$::\bf{mo\-HC} (\bf{mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_45f27309792e584a27fa6dcb86ccda65} + + +Light constructor. + +This constructor allow to use another \doxyref{mo\-Move\-Expl}{p.}{classmo_move_expl} (generally not a \doxyref{mo\-HCMove\-Loop\-Expl}{p.}{classmo_h_c_move_loop_expl}). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-expl}]a complete explorer. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description} +\end{Desc} + + +Definition at line 67 of file mo\-HC.h. + +\subsection{Member Function Documentation} +\index{moHC@{mo\-HC}!operator()@{operator()}} +\index{operator()@{operator()}!moHC@{mo\-HC}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-HC}$<$ M $>$::operator() (\bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_h_c_ed4e273c420efa6386c5975a696a5010} + + +\doxyref{Function} which launches the HC. + +The HC has to improve a current solution. As the \doxyref{mo\-SA}{p.}{classmo_s_a} and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]a current solution to improve. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Implements \bf{eo\-UF$<$ M::EOType \&, bool $>$}. + +Definition at line 82 of file mo\-HC.h. + +References mo\-HC$<$ M $>$::full\_\-eval, and mo\-HC$<$ M $>$::move\_\-expl. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-HC.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c_move_loop_expl.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c_move_loop_expl.eps new file mode 100644 index 000000000..1240e010d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c_move_loop_expl.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 327.869 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moHCMoveLoopExpl< M >) cw +(moMoveLoopExpl< M >) cw +(moMoveExpl< M >) cw +(eoBF< const M::EOType &, M::EOType &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moHCMoveLoopExpl< M >) 0 0 box + (moMoveLoopExpl< M >) 0 1 box + (moMoveExpl< M >) 0 2 box + (eoBF< const M::EOType &, M::EOType &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c_move_loop_expl.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c_move_loop_expl.tex new file mode 100644 index 000000000..8b96d664a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_h_c_move_loop_expl.tex @@ -0,0 +1,100 @@ +\section{mo\-HCMove\-Loop\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_h_c_move_loop_expl}\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}} +Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c}. + + +{\tt \#include $<$mo\-HCMove\-Loop\-Expl.h$>$} + +Inheritance diagram for mo\-HCMove\-Loop\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmo_h_c_move_loop_expl} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-HCMove\-Loop\-Expl} (\bf{mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, \bf{mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, \bf{mo\-Move\-Select}$<$ M $>$ \&\_\-\_\-move\_\-select) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +void \bf{operator()} (const \bf{EOT} \&\_\-\_\-old\_\-sol, \bf{EOT} \&\_\-\_\-new\_\-sol) +\begin{CompactList}\small\item\em Procedure which launches the explorer. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_h_c_move_loop_expl_077befd4106c201eafd3ea22bcea2fe9} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_h_c_move_loop_expl_f24871224316d5549b9013a2d27ab465} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{mo\-Move\-Init}$<$ M $>$ \& \bf{move\_\-init}\label{classmo_h_c_move_loop_expl_6776fc51331c1b452d026b92448b4ffc} + +\begin{CompactList}\small\item\em Move initialiser. \item\end{CompactList}\item +\bf{mo\-Next\-Move}$<$ M $>$ \& \bf{next\_\-move}\label{classmo_h_c_move_loop_expl_f716c5271e0eba9275c585dc52768443} + +\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item +\bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& \bf{incr\_\-eval}\label{classmo_h_c_move_loop_expl_84a8fccba05ab30414281469bc8ee779} + +\begin{CompactList}\small\item\em (generally) Efficient evaluation. \item\end{CompactList}\item +\bf{mo\-Move\-Select}$<$ M $>$ \& \bf{move\_\-select}\label{classmo_h_c_move_loop_expl_13bcd1322b2b97fd665be2f60c532fbb} + +\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-HCMove\-Loop\-Expl$<$ M $>$} + +Iterative explorer used by a \doxyref{mo\-HC}{p.}{classmo_h_c}. + + + +Definition at line 23 of file mo\-HCMove\-Loop\-Expl.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}!moHCMoveLoopExpl@{moHCMoveLoopExpl}} +\index{moHCMoveLoopExpl@{moHCMoveLoopExpl}!moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-HCMove\-Loop\-Expl}$<$ M $>$::\bf{mo\-HCMove\-Loop\-Expl} (\bf{mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, \bf{mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, \bf{mo\-Move\-Select}$<$ M $>$ \& {\em \_\-\_\-move\_\-select})\hspace{0.3cm}{\tt [inline]}}\label{classmo_h_c_move_loop_expl_11410d648d79746253e9dc249c4ec7b5} + + +Constructor. + +All the boxes have to be specified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]the move initialiser. \item[{\em \_\-\_\-next\_\-move}]the neighborhood explorer. \item[{\em \_\-\_\-incr\_\-eval}](generally) efficient evaluation function. \item[{\em \_\-\_\-move\_\-select}]the move selector. \end{description} +\end{Desc} + + +Definition at line 43 of file mo\-HCMove\-Loop\-Expl.h. + +\subsection{Member Function Documentation} +\index{moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}!operator()@{operator()}} +\index{operator()@{operator()}!moHCMoveLoopExpl@{mo\-HCMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-HCMove\-Loop\-Expl}$<$ M $>$::operator() (const \bf{EOT} \& {\em \_\-\_\-old\_\-sol}, \bf{EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_h_c_move_loop_expl_f48d5379caac7f6a165e9fe8840e6ccb} + + +Procedure which launches the explorer. + +The exploration starts from an old solution and provides a new solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-old\_\-sol}]the current solution. \item[{\em \_\-\_\-new\_\-sol}]the new\_\-sol (result of the procedure). \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ const M::EOType \&, M::EOType \&, void $>$}. + +Definition at line 59 of file mo\-HCMove\-Loop\-Expl.h. + +References mo\-HCMove\-Loop\-Expl$<$ M $>$::incr\_\-eval, mo\-HCMove\-Loop\-Expl$<$ M $>$::move\_\-init, mo\-HCMove\-Loop\-Expl$<$ M $>$::move\_\-select, and mo\-HCMove\-Loop\-Expl$<$ M $>$::next\_\-move. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-HCMove\-Loop\-Expl.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_impr_best_fit_aspir_crit.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_impr_best_fit_aspir_crit.eps new file mode 100644 index 000000000..a00a3c3cb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_impr_best_fit_aspir_crit.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 437.158 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.14375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moImprBestFitAspirCrit< M >) cw +(moAspirCrit< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moImprBestFitAspirCrit< M >) 0 0 box + (moAspirCrit< M >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_impr_best_fit_aspir_crit.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_impr_best_fit_aspir_crit.tex new file mode 100644 index 000000000..c1ffc5c16 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_impr_best_fit_aspir_crit.tex @@ -0,0 +1,78 @@ +\section{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$ Class Template Reference} +\label{classmo_impr_best_fit_aspir_crit}\index{moImprBestFitAspirCrit@{moImprBestFitAspirCrit}} +One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}. + + +{\tt \#include $<$mo\-Impr\-Best\-Fit\-Aspir\-Crit.h$>$} + +Inheritance diagram for mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_impr_best_fit_aspir_crit} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_impr_best_fit_aspir_crit_0bc1a8c9af99781e662570c04750cca8} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-Impr\-Best\-Fit\-Aspir\-Crit} ()\label{classmo_impr_best_fit_aspir_crit_e2c697a5cf3a7696e38bb52b6694a340} + +\begin{CompactList}\small\item\em Contructor. \item\end{CompactList}\item +void \bf{init} ()\label{classmo_impr_best_fit_aspir_crit_ffa451a14ff4ea86fb8bd9fdbc348630} + +\begin{CompactList}\small\item\em Initialisation procedure. \item\end{CompactList}\item +bool \bf{operator()} (const M \&\_\-\_\-move, const \bf{Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em \doxyref{Function} that indicates if the fit is better that the already saved fit. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{Fitness} \bf{best\_\-fit}\label{classmo_impr_best_fit_aspir_crit_9e52383f0af8013b4aff0942325e1bf3} + +\begin{CompactList}\small\item\em Best fitness found until now. \item\end{CompactList}\item +bool \bf{first\_\-time}\label{classmo_impr_best_fit_aspir_crit_2d5226c7dd661b33011402dbbbe78265} + +\begin{CompactList}\small\item\em Indicates that a fitness has been already saved or not. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$} + +One of the possible \doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}. + +This criterion is satisfied when a given fitness is the best ever considered. + + + +Definition at line 22 of file mo\-Impr\-Best\-Fit\-Aspir\-Crit.h. + +\subsection{Member Function Documentation} +\index{moImprBestFitAspirCrit@{mo\-Impr\-Best\-Fit\-Aspir\-Crit}!operator()@{operator()}} +\index{operator()@{operator()}!moImprBestFitAspirCrit@{mo\-Impr\-Best\-Fit\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-Impr\-Best\-Fit\-Aspir\-Crit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_impr_best_fit_aspir_crit_53f62fb56dcae3051a741f1fddb0204b} + + +\doxyref{Function} that indicates if the fit is better that the already saved fit. + +The first time, the function only saved the current move and fitness. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-fit}]a fitnes linked to the move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE the first time and if \_\-\_\-fit $>$ best\_\-fit, else FALSE. \end{Desc} + + +Definition at line 52 of file mo\-Impr\-Best\-Fit\-Aspir\-Crit.h. + +References mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::best\_\-fit, and mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$::first\_\-time. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Impr\-Best\-Fit\-Aspir\-Crit.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_it_rand_next_move.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_it_rand_next_move.eps new file mode 100644 index 000000000..5f2df0014 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_it_rand_next_move.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 490.798 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.01875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moItRandNextMove< M >) cw +(moNextMove< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moItRandNextMove< M >) 0 0 box + (moNextMove< M >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_it_rand_next_move.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_it_rand_next_move.tex new file mode 100644 index 000000000..b14d59d18 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_it_rand_next_move.tex @@ -0,0 +1,96 @@ +\section{mo\-It\-Rand\-Next\-Move$<$ M $>$ Class Template Reference} +\label{classmo_it_rand_next_move}\index{moItRandNextMove@{moItRandNextMove}} +One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move}. + + +{\tt \#include $<$mo\-It\-Rand\-Next\-Move.h$>$} + +Inheritance diagram for mo\-It\-Rand\-Next\-Move$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_it_rand_next_move} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-It\-Rand\-Next\-Move} (\bf{mo\-Rand\-Move}$<$ M $>$ \&\_\-\_\-rand\_\-move, unsigned int \_\-\_\-max\_\-iter) +\begin{CompactList}\small\item\em The constructor. \item\end{CompactList}\item +bool \bf{operator()} (M \&\_\-\_\-move, const \bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Generation of a new move. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_it_rand_next_move_ee666007fc494bf4a5f0cd065e5671cf} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{mo\-Rand\-Move}$<$ M $>$ \& \bf{rand\_\-move}\label{classmo_it_rand_next_move_ef9410ec5e7dfa7f002e05967931c459} + +\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item +unsigned int \bf{max\_\-iter}\label{classmo_it_rand_next_move_dc67fa86677d7a4f982de8d8b1eba033} + +\begin{CompactList}\small\item\em Iteration maximum number. \item\end{CompactList}\item +unsigned int \bf{num\_\-iter}\label{classmo_it_rand_next_move_f43494b13931d8f76b5d9d5d6469e91b} + +\begin{CompactList}\small\item\em Iteration current number. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-It\-Rand\-Next\-Move$<$ M $>$} + +One of the possible \doxyref{mo\-Next\-Move}{p.}{classmo_next_move}. + +This class is a move (\doxyref{mo\-Move}{p.}{classmo_move}) generator with a bound for the maximum number of iterations. + + + +Definition at line 22 of file mo\-It\-Rand\-Next\-Move.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moItRandNextMove@{mo\-It\-Rand\-Next\-Move}!moItRandNextMove@{moItRandNextMove}} +\index{moItRandNextMove@{moItRandNextMove}!moItRandNextMove@{mo\-It\-Rand\-Next\-Move}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-It\-Rand\-Next\-Move}$<$ M $>$::\bf{mo\-It\-Rand\-Next\-Move} (\bf{mo\-Rand\-Move}$<$ M $>$ \& {\em \_\-\_\-rand\_\-move}, unsigned int {\em \_\-\_\-max\_\-iter})\hspace{0.3cm}{\tt [inline]}}\label{classmo_it_rand_next_move_2b61b3713d482ecf71db8d941551ff7a} + + +The constructor. + +\doxyref{Parameters} only for initialising the attributes. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-rand\_\-move}]the random move generator. \item[{\em \_\-\_\-max\_\-iter}]the iteration maximum number. \end{description} +\end{Desc} + + +Definition at line 37 of file mo\-It\-Rand\-Next\-Move.h. + +\subsection{Member Function Documentation} +\index{moItRandNextMove@{mo\-It\-Rand\-Next\-Move}!operator()@{operator()}} +\index{operator()@{operator()}!moItRandNextMove@{mo\-It\-Rand\-Next\-Move}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-It\-Rand\-Next\-Move}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_it_rand_next_move_92a2fbbc02a20853b9a309e99018a102} + + +Generation of a new move. + +If the maximum number is not already reached, the current move is forgotten and remplaced by another one. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the current move. \item[{\em \_\-\_\-sol}]the current solution. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]FALSE if the maximum number of iteration is reached, else TRUE. \end{Desc} + + +Definition at line 52 of file mo\-It\-Rand\-Next\-Move.h. + +References mo\-It\-Rand\-Next\-Move$<$ M $>$::max\_\-iter, mo\-It\-Rand\-Next\-Move$<$ M $>$::num\_\-iter, and mo\-It\-Rand\-Next\-Move$<$ M $>$::rand\_\-move. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-It\-Rand\-Next\-Move.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_l_s_check_point.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_l_s_check_point.eps new file mode 100644 index 000000000..dfd4f441a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_l_s_check_point.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 400 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moLSCheckPoint< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moLSCheckPoint< M >) 0 0 box + (eoBF< A1, A2, R >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_l_s_check_point.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_l_s_check_point.tex new file mode 100644 index 000000000..9ac583db0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_l_s_check_point.tex @@ -0,0 +1,79 @@ +\section{mo\-LSCheck\-Point$<$ M $>$ Class Template Reference} +\label{classmo_l_s_check_point}\index{moLSCheckPoint@{moLSCheckPoint}} +Class which allows a checkpointing system. + + +{\tt \#include $<$mo\-LSCheck\-Point.h$>$} + +Inheritance diagram for mo\-LSCheck\-Point$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_l_s_check_point} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (const M \&\_\-\_\-move, const typename M::EOType \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} which launches the checkpointing. \item\end{CompactList}\item +void \bf{add} (\bf{eo\-BF}$<$ const M \&, const typename M::EOType \&, void $>$ \&\_\-\_\-f) +\begin{CompactList}\small\item\em Procedure which add a new function to the function vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{eo\-BF}$<$ const M \&, const typename M::EOType \&, void $>$ $\ast$ $>$ \bf{func}\label{classmo_l_s_check_point_ff2a31ee5689a804bd9a572c51a36ca4} + +\begin{CompactList}\small\item\em vector of function \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-LSCheck\-Point$<$ M $>$} + +Class which allows a checkpointing system. + +Thanks to this class, at each iteration, additionnal function can be used (and not only one). + + + +Definition at line 21 of file mo\-LSCheck\-Point.h. + +\subsection{Member Function Documentation} +\index{moLSCheckPoint@{mo\-LSCheck\-Point}!operator()@{operator()}} +\index{operator()@{operator()}!moLSCheckPoint@{mo\-LSCheck\-Point}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-LSCheck\-Point}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const typename M::EOType \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_2f9c1250279e3f49ec77a66c10029f1e} + + +\doxyref{Function} which launches the checkpointing. + +Each saved function is used on the current move and the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-sol}]a solution. \end{description} +\end{Desc} + + +Definition at line 34 of file mo\-LSCheck\-Point.h. + +References mo\-LSCheck\-Point$<$ M $>$::func.\index{moLSCheckPoint@{mo\-LSCheck\-Point}!add@{add}} +\index{add@{add}!moLSCheckPoint@{mo\-LSCheck\-Point}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-LSCheck\-Point}$<$ M $>$::add (\bf{eo\-BF}$<$ const M \&, const typename M::EOType \&, void $>$ \& {\em \_\-\_\-f})\hspace{0.3cm}{\tt [inline]}}\label{classmo_l_s_check_point_66be5fe2944bcdd752f1e58105e969a6} + + +Procedure which add a new function to the function vector. + +The new function is added at the end of the vector. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-f}]a new function to add. \end{description} +\end{Desc} + + +Definition at line 49 of file mo\-LSCheck\-Point.h. + +References mo\-LSCheck\-Point$<$ M $>$::func. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-LSCheck\-Point.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_linear_cooling_schedule.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_linear_cooling_schedule.eps new file mode 100644 index 000000000..3e62629a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_linear_cooling_schedule.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 476.19 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moLinearCoolingSchedule) cw +(moCoolingSchedule) cw +(eoUF< double &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moLinearCoolingSchedule) 0 0 box + (moCoolingSchedule) 0 1 box + (eoUF< double &, bool >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_linear_cooling_schedule.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_linear_cooling_schedule.tex new file mode 100644 index 000000000..5a239d9f4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_linear_cooling_schedule.tex @@ -0,0 +1,85 @@ +\section{mo\-Linear\-Cooling\-Schedule Class Reference} +\label{classmo_linear_cooling_schedule}\index{moLinearCoolingSchedule@{moLinearCoolingSchedule}} +One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule}. + + +{\tt \#include $<$mo\-Linear\-Cooling\-Schedule.h$>$} + +Inheritance diagram for mo\-Linear\-Cooling\-Schedule::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_linear_cooling_schedule} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-Linear\-Cooling\-Schedule} (double \_\-\_\-threshold, double \_\-\_\-quantity) +\begin{CompactList}\small\item\em Simple constructor. \item\end{CompactList}\item +bool \bf{operator()} (double \&\_\-\_\-temp) +\begin{CompactList}\small\item\em \doxyref{Function} which proceeds to the cooling. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double \bf{threshold}\label{classmo_linear_cooling_schedule_e7f539f986801ea71392c4a55ba08a76} + +\begin{CompactList}\small\item\em The temperature threhold. \item\end{CompactList}\item +double \bf{quantity}\label{classmo_linear_cooling_schedule_6159dc39ceda89b23ffdab3d6ce8d8ed} + +\begin{CompactList}\small\item\em The quantity that allows the temperature to decrease. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +One of the possible \doxyref{mo\-Cooling\-Schedule}{p.}{classmo_cooling_schedule}. + +An another very simple cooling schedule, the temperature decrease according to a quantity while the temperature is greater than a threshold. + + + +Definition at line 22 of file mo\-Linear\-Cooling\-Schedule.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moLinearCoolingSchedule@{mo\-Linear\-Cooling\-Schedule}!moLinearCoolingSchedule@{moLinearCoolingSchedule}} +\index{moLinearCoolingSchedule@{moLinearCoolingSchedule}!moLinearCoolingSchedule@{mo\-Linear\-Cooling\-Schedule}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}mo\-Linear\-Cooling\-Schedule::mo\-Linear\-Cooling\-Schedule (double {\em \_\-\_\-threshold}, double {\em \_\-\_\-quantity})\hspace{0.3cm}{\tt [inline]}}\label{classmo_linear_cooling_schedule_2fdde7b1520d5a41251627e81cc9c13d} + + +Simple constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-threshold}]the threshold. \item[{\em \_\-\_\-quantity}]the quantity used to descrease the temperature. \end{description} +\end{Desc} + + +Definition at line 31 of file mo\-Linear\-Cooling\-Schedule.h. + +\subsection{Member Function Documentation} +\index{moLinearCoolingSchedule@{mo\-Linear\-Cooling\-Schedule}!operator()@{operator()}} +\index{operator()@{operator()}!moLinearCoolingSchedule@{mo\-Linear\-Cooling\-Schedule}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool mo\-Linear\-Cooling\-Schedule::operator() (double \& {\em \_\-\_\-temp})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_linear_cooling_schedule_814b109fdfd9426a92a5444b05014da3} + + +\doxyref{Function} which proceeds to the cooling. + +It decreases the temperature and indicates if it is greater than the threshold. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-temp}]the current temperature. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]if the new temperature (current temperature - quantity) is greater than the threshold. \end{Desc} + + +Implements \bf{eo\-UF$<$ double \&, bool $>$}. + +Definition at line 41 of file mo\-Linear\-Cooling\-Schedule.h. + +References quantity, and threshold. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Linear\-Cooling\-Schedule.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move.eps new file mode 100644 index 000000000..68c490c6c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 410.959 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.21667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMove< EOT >) cw +(eoUF< EOT &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMove< EOT >) 0 0 box + (eoUF< EOT &, void >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move.tex new file mode 100644 index 000000000..05267ce0e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move.tex @@ -0,0 +1,35 @@ +\section{mo\-Move$<$ EOT $>$ Class Template Reference} +\label{classmo_move}\index{moMove@{moMove}} +Definition of a move. + + +{\tt \#include $<$mo\-Move.h$>$} + +Inheritance diagram for mo\-Move$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_move} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef EOT \bf{EOType}\label{classmo_move_7fb853a91ba1319530529e515380bbba} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Move$<$ EOT $>$} + +Definition of a move. + +A move transforms a solution to another close solution. It describes how a solution can be modified to another one. + + + +Definition at line 23 of file mo\-Move.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_expl.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_expl.eps new file mode 100644 index 000000000..18fb8889f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_expl.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 163.934 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveExpl< M >) cw +(eoBF< const M::EOType &, M::EOType &, void >) cw +(eoFunctorBase) cw +(moMoveLoopExpl< M >) cw +(moHCMoveLoopExpl< M >) cw +(moTSMoveLoopExpl< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveExpl< M >) 0.5 2 box + (eoBF< const M::EOType &, M::EOType &, void >) 0.5 3 box + (eoFunctorBase) 0.5 4 box + (moMoveLoopExpl< M >) 0.5 1 box + (moHCMoveLoopExpl< M >) 0 0 box + (moTSMoveLoopExpl< M >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +1 0.5 4 in +solid +1 0.5 1.25 out +solid +0 0.5 1.75 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_expl.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_expl.tex new file mode 100644 index 000000000..5d0b1e66b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_expl.tex @@ -0,0 +1,29 @@ +\section{mo\-Move\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_move_expl}\index{moMoveExpl@{moMoveExpl}} +Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer. + + +{\tt \#include $<$mo\-Move\-Expl.h$>$} + +Inheritance diagram for mo\-Move\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.59016cm]{classmo_move_expl} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Expl$<$ M $>$} + +Description of a move (\doxyref{mo\-Move}{p.}{classmo_move}) explorer. + +Only a description...See \doxyref{mo\-Move\-Loop\-Expl}{p.}{classmo_move_loop_expl}. + + + +Definition at line 21 of file mo\-Move\-Expl.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Expl.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_incr_eval.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_incr_eval.eps new file mode 100644 index 000000000..1f107a403 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_incr_eval.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 400 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveIncrEval< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveIncrEval< M >) 0 0 box + (eoBF< A1, A2, R >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_incr_eval.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_incr_eval.tex new file mode 100644 index 000000000..91421ef4b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_incr_eval.tex @@ -0,0 +1,29 @@ +\section{mo\-Move\-Incr\-Eval$<$ M $>$ Class Template Reference} +\label{classmo_move_incr_eval}\index{moMoveIncrEval@{moMoveIncrEval}} +(generally) Efficient evaluation function based a move and a solution. + + +{\tt \#include $<$mo\-Move\-Incr\-Eval.h$>$} + +Inheritance diagram for mo\-Move\-Incr\-Eval$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_move_incr_eval} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Incr\-Eval$<$ M $>$} + +(generally) Efficient evaluation function based a move and a solution. + +From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated. + + + +Definition at line 24 of file mo\-Move\-Incr\-Eval.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Incr\-Eval.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_init.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_init.eps new file mode 100644 index 000000000..e04209e70 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_init.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 454.545 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.1 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveInit< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveInit< M >) 0 0 box + (eoBF< A1, A2, R >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_init.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_init.tex new file mode 100644 index 000000000..353911436 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_init.tex @@ -0,0 +1,29 @@ +\section{mo\-Move\-Init$<$ M $>$ Class Template Reference} +\label{classmo_move_init}\index{moMoveInit@{moMoveInit}} +Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer. + + +{\tt \#include $<$mo\-Move\-Init.h$>$} + +Inheritance diagram for mo\-Move\-Init$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_move_init} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Init$<$ M $>$} + +Move (\doxyref{mo\-Move}{p.}{classmo_move}) initializer. + +Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used. + + + +Definition at line 22 of file mo\-Move\-Init.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Init.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_loop_expl.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_loop_expl.eps new file mode 100644 index 000000000..c6a78b5b1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_loop_expl.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 163.934 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveLoopExpl< M >) cw +(moMoveExpl< M >) cw +(eoBF< const M::EOType &, M::EOType &, void >) cw +(eoFunctorBase) cw +(moHCMoveLoopExpl< M >) cw +(moTSMoveLoopExpl< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveLoopExpl< M >) 0.5 1 box + (moMoveExpl< M >) 0.5 2 box + (eoBF< const M::EOType &, M::EOType &, void >) 0.5 3 box + (eoFunctorBase) 0.5 4 box + (moHCMoveLoopExpl< M >) 0 0 box + (moTSMoveLoopExpl< M >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +1 0.5 4 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_loop_expl.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_loop_expl.tex new file mode 100644 index 000000000..1a6c5b997 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_loop_expl.tex @@ -0,0 +1,29 @@ +\section{mo\-Move\-Loop\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_move_loop_expl}\index{moMoveLoopExpl@{moMoveLoopExpl}} +Class which describes an iterative explorer. + + +{\tt \#include $<$mo\-Move\-Loop\-Expl.h$>$} + +Inheritance diagram for mo\-Move\-Loop\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.59016cm]{classmo_move_loop_expl} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Loop\-Expl$<$ M $>$} + +Class which describes an iterative explorer. + +Only a description... \doxyref{mo\-HCMove\-Loop\-Expl}{p.}{classmo_h_c_move_loop_expl} and \doxyref{mo\-TSMove\-Loop\-Expl}{p.}{classmo_t_s_move_loop_expl} are exemples of class that are a \doxyref{mo\-Move\-Loop\-Expl}{p.}{classmo_move_loop_expl}. + + + +Definition at line 21 of file mo\-Move\-Loop\-Expl.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Loop\-Expl.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_select.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_select.eps new file mode 100644 index 000000000..b61e2bf9f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_select.eps @@ -0,0 +1,219 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 101.01 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.95 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moMoveSelect< M >) cw +(eoBF< M &, M::EOType::Fitness &, void >) cw +(eoFunctorBase) cw +(moBestImprSelect< M >) cw +(moFirstImprSelect< M >) cw +(moRandImprSelect< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moMoveSelect< M >) 1 1 box + (eoBF< M &, M::EOType::Fitness &, void >) 1 2 box + (eoFunctorBase) 1 3 box + (moBestImprSelect< M >) 0 0 box + (moFirstImprSelect< M >) 1 0 box + (moRandImprSelect< M >) 2 0 box + +% ----- relations ----- + +solid +0 1 1 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +1 1 0.25 out +solid +0 2 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_select.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_select.tex new file mode 100644 index 000000000..6a9be3909 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_move_select.tex @@ -0,0 +1,77 @@ +\section{mo\-Move\-Select$<$ M $>$ Class Template Reference} +\label{classmo_move_select}\index{moMoveSelect@{moMoveSelect}} +Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}). + + +{\tt \#include $<$mo\-Move\-Select.h$>$} + +Inheritance diagram for mo\-Move\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.82828cm]{classmo_move_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_move_select_8148ccc0e6fbd209c3fe6829559895c8} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{init} (const \bf{Fitness} \&\_\-\_\-fit)=0 +\begin{CompactList}\small\item\em Procedure which initialises all that the move selector needs including the initial fitness. \item\end{CompactList}\item +virtual bool \bf{update} (const M \&\_\-\_\-move, const \bf{Fitness} \&\_\-\_\-fit)=0 +\begin{CompactList}\small\item\em \doxyref{Function} which updates the best solutions. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Move\-Select$<$ M $>$} + +Class that describes a move selector (\doxyref{mo\-Move}{p.}{classmo_move}). + +It iteratively considers some moves (\doxyref{mo\-Move}{p.}{classmo_move}) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed. + + + +Definition at line 32 of file mo\-Move\-Select.h. + +\subsection{Member Function Documentation} +\index{moMoveSelect@{mo\-Move\-Select}!init@{init}} +\index{init@{init}!moMoveSelect@{mo\-Move\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void \bf{mo\-Move\-Select}$<$ M $>$::init (const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e} + + +Procedure which initialises all that the move selector needs including the initial fitness. + +In order to know the fitness of the solution, for which the neighborhood will be soon explored + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-fit}]the current fitness. \end{description} +\end{Desc} + + +Implemented in \bf{mo\-Best\-Impr\-Select$<$ M $>$} \doxyref{p.}{classmo_best_impr_select_2d2abf9aa17dc77cbb4f41810ab7b956}, \bf{mo\-First\-Impr\-Select$<$ M $>$} \doxyref{p.}{classmo_first_impr_select_4c5ce18ede46247a439c68f6954a4055}, and \bf{mo\-Rand\-Impr\-Select$<$ M $>$} \doxyref{p.}{classmo_rand_impr_select_a19726a1509cff874801615d63a3b5d9}.\index{moMoveSelect@{mo\-Move\-Select}!update@{update}} +\index{update@{update}!moMoveSelect@{mo\-Move\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual bool \bf{mo\-Move\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_move_select_7c157b6e64fd417acf6e900059204eb1} + + +\doxyref{Function} which updates the best solutions. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new move. \item[{\em \_\-\_\-fit}]a fitness linked to the new move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]a boolean that expresses the need to resume the exploration. \end{Desc} + + +Implemented in \bf{mo\-Best\-Impr\-Select$<$ M $>$} \doxyref{p.}{classmo_best_impr_select_d10e3e6f8a0277731e95ef506d064d6d}, and \bf{mo\-Rand\-Impr\-Select$<$ M $>$} \doxyref{p.}{classmo_rand_impr_select_60ae5548560caee7e28d5ed2446186c9}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Move\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_next_move.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_next_move.eps new file mode 100644 index 000000000..08b997f12 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_next_move.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 490.798 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.01875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moNextMove< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moItRandNextMove< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moNextMove< M >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + (moItRandNextMove< M >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_next_move.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_next_move.tex new file mode 100644 index 000000000..7da58dd8d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_next_move.tex @@ -0,0 +1,29 @@ +\section{mo\-Next\-Move$<$ M $>$ Class Template Reference} +\label{classmo_next_move}\index{moNextMove@{moNextMove}} +Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}). + + +{\tt \#include $<$mo\-Next\-Move.h$>$} + +Inheritance diagram for mo\-Next\-Move$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_next_move} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Next\-Move$<$ M $>$} + +Class which allows to generate a new move (\doxyref{mo\-Move}{p.}{classmo_move}). + +Useful for the explorer (for \doxyref{mo\-TS}{p.}{classmo_t_s} or \doxyref{mo\-HC}{p.}{classmo_h_c}). Does nothing... An object that herits from this class needs to be designed for being used. + + + +Definition at line 22 of file mo\-Next\-Move.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Next\-Move.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_no_aspir_crit.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_no_aspir_crit.eps new file mode 100644 index 000000000..f5d50a373 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_no_aspir_crit.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 583.942 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 0.85625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moNoAspirCrit< M >) cw +(moAspirCrit< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moNoAspirCrit< M >) 0 0 box + (moAspirCrit< M >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_no_aspir_crit.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_no_aspir_crit.tex new file mode 100644 index 000000000..88109d6be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_no_aspir_crit.tex @@ -0,0 +1,68 @@ +\section{mo\-No\-Aspir\-Crit$<$ M $>$ Class Template Reference} +\label{classmo_no_aspir_crit}\index{moNoAspirCrit@{moNoAspirCrit}} +One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}). + + +{\tt \#include $<$mo\-No\-Aspir\-Crit.h$>$} + +Inheritance diagram for mo\-No\-Aspir\-Crit$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_no_aspir_crit} +\end{center} +\end{figure} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +bool \bf{operator()} (const M \&\_\-\_\-move, const typename M::EOType::Fitness \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} which describes the aspiration criterion behaviour. \item\end{CompactList}\item +void \bf{init} () +\begin{CompactList}\small\item\em Procedure which initialises all that needs a \doxyref{mo\-No\-Aspir\-Crit}{p.}{classmo_no_aspir_crit}. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-No\-Aspir\-Crit$<$ M $>$} + +One of the possible aspiration criterion (\doxyref{mo\-Aspir\-Crit}{p.}{classmo_aspir_crit}). + +The simplest : never satisfied. + + + +Definition at line 21 of file mo\-No\-Aspir\-Crit.h. + +\subsection{Member Function Documentation} +\index{moNoAspirCrit@{mo\-No\-Aspir\-Crit}!operator()@{operator()}} +\index{operator()@{operator()}!moNoAspirCrit@{mo\-No\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-No\-Aspir\-Crit}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const typename M::EOType::Fitness \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_no_aspir_crit_8a7180a8d5c25bfb6727d0b59551b0f8} + + +\doxyref{Function} which describes the aspiration criterion behaviour. + +Does nothing. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a move. \item[{\em \_\-\_\-sol}]a fitness. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]FALSE. \end{Desc} + + +Definition at line 32 of file mo\-No\-Aspir\-Crit.h.\index{moNoAspirCrit@{mo\-No\-Aspir\-Crit}!init@{init}} +\index{init@{init}!moNoAspirCrit@{mo\-No\-Aspir\-Crit}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-No\-Aspir\-Crit}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmo_no_aspir_crit_f3a286fc4c2d36bd390ba9a3074f3037} + + +Procedure which initialises all that needs a \doxyref{mo\-No\-Aspir\-Crit}{p.}{classmo_no_aspir_crit}. + +Nothing... + +Implements \bf{mo\-Aspir\-Crit$<$ M $>$} \doxyref{p.}{classmo_aspir_crit_a8ce84510a5ec7c9078381e542c6d140}. + +Definition at line 43 of file mo\-No\-Aspir\-Crit.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-No\-Aspir\-Crit.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_impr_select.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_impr_select.eps new file mode 100644 index 000000000..fe55210a4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_impr_select.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moRandImprSelect< M >) cw +(moMoveSelect< M >) cw +(eoBF< M &, M::EOType::Fitness &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moRandImprSelect< M >) 0 0 box + (moMoveSelect< M >) 0 1 box + (eoBF< M &, M::EOType::Fitness &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_impr_select.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_impr_select.tex new file mode 100644 index 000000000..5e7d64978 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_impr_select.tex @@ -0,0 +1,126 @@ +\section{mo\-Rand\-Impr\-Select$<$ M $>$ Class Template Reference} +\label{classmo_rand_impr_select}\index{moRandImprSelect@{moRandImprSelect}} +One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\-Move\-Select}{p.}{classmo_move_select}). + + +{\tt \#include $<$mo\-Rand\-Impr\-Select.h$>$} + +Inheritance diagram for mo\-Rand\-Impr\-Select$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_rand_impr_select} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_rand_impr_select_3bff2fdb963297430543c82ffb567a5c} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{init} (const \bf{Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em Procedure which all that needs a \doxyref{mo\-Rand\-Impr\-Select}{p.}{classmo_rand_impr_select}. \item\end{CompactList}\item +bool \bf{update} (const M \&\_\-\_\-move, const \bf{Fitness} \&\_\-\_\-fit) +\begin{CompactList}\small\item\em \doxyref{Function} that updates the fitness and move vectors. \item\end{CompactList}\item +void \bf{operator()} (M \&\_\-\_\-move, \bf{Fitness} \&\_\-\_\-fit) throw (Empty\-Selection) +\begin{CompactList}\small\item\em The move selection. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{Fitness} \bf{init\_\-fit}\label{classmo_rand_impr_select_d153c277a0a2ea95ac484210d445b40e} + +\begin{CompactList}\small\item\em Fitness of the current solution. \item\end{CompactList}\item +std::vector$<$ \bf{Fitness} $>$ \bf{vect\_\-better\_\-fit}\label{classmo_rand_impr_select_05c7c3b858e8a25632f2f5c86b0c97a3} + +\begin{CompactList}\small\item\em Candidate fitnesse vector. \item\end{CompactList}\item +std::vector$<$ M $>$ \bf{vect\_\-better\_\-moves}\label{classmo_rand_impr_select_2ace12bd179144fa71d56324694201f5} + +\begin{CompactList}\small\item\em Candidate move vector. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Rand\-Impr\-Select$<$ M $>$} + +One of the possible \doxyref{mo\-Move}{p.}{classmo_move} selector (\doxyref{mo\-Move\-Select}{p.}{classmo_move_select}). + +All the neighbors are considered. One of them that enables an improvment of the objective function is choosen. + + + +Definition at line 25 of file mo\-Rand\-Impr\-Select.h. + +\subsection{Member Function Documentation} +\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!init@{init}} +\index{init@{init}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Rand\-Impr\-Select}$<$ M $>$::init (const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_a19726a1509cff874801615d63a3b5d9} + + +Procedure which all that needs a \doxyref{mo\-Rand\-Impr\-Select}{p.}{classmo_rand_impr_select}. + +Give a value to the initialise fitness. Clean the move and fitness vectors. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-fit}]the current best fitness \end{description} +\end{Desc} + + +Implements \bf{mo\-Move\-Select$<$ M $>$} \doxyref{p.}{classmo_move_select_bca4c43f13d26eca7163aeb272a4a52e}. + +Definition at line 40 of file mo\-Rand\-Impr\-Select.h. + +References mo\-Rand\-Impr\-Select$<$ M $>$::init\_\-fit, mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!update@{update}} +\index{update@{update}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-Rand\-Impr\-Select}$<$ M $>$::update (const M \& {\em \_\-\_\-move}, const \bf{Fitness} \& {\em \_\-\_\-fit})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_60ae5548560caee7e28d5ed2446186c9} + + +\doxyref{Function} that updates the fitness and move vectors. + +if a move give a better fitness than the initial fitness, it is saved and the fitness too. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new move. \item[{\em \_\-\_\-fit}]a new fitness associated to the new move. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Implements \bf{mo\-Move\-Select$<$ M $>$} \doxyref{p.}{classmo_move_select_7c157b6e64fd417acf6e900059204eb1}. + +Definition at line 56 of file mo\-Rand\-Impr\-Select.h. + +References mo\-Rand\-Impr\-Select$<$ M $>$::init\_\-fit, mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves.\index{moRandImprSelect@{mo\-Rand\-Impr\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moRandImprSelect@{mo\-Rand\-Impr\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Rand\-Impr\-Select}$<$ M $>$::operator() (M \& {\em \_\-\_\-move}, \bf{Fitness} \& {\em \_\-\_\-fit}) throw (\bf{Empty\-Selection})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_rand_impr_select_5ee57f77a450c0a9ce50bfccf3ad2a55} + + +The move selection. + +One the saved move is randomly chosen. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]the reference of the move that can be initialised by the function. \item[{\em \_\-\_\-fit}]the reference of the fitness that can be initialised by the function. \end{description} +\end{Desc} +\begin{Desc} +\item[Exceptions:] +\begin{description} +\item[{\em \doxyref{Empty\-Selection}{p.}{class_empty_selection}}]If no move which improves the current fitness are found. \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>$}. + +Definition at line 77 of file mo\-Rand\-Impr\-Select.h. + +References eo\-Rng::random(), mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-fit, and mo\-Rand\-Impr\-Select$<$ M $>$::vect\_\-better\_\-moves. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Rand\-Impr\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_move.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_move.eps new file mode 100644 index 000000000..9fc3a66e9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_move.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 454.545 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.1 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moRandMove< M >) cw +(eoUF< M &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moRandMove< M >) 0 0 box + (eoUF< M &, void >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_move.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_move.tex new file mode 100644 index 000000000..a35b6919a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_rand_move.tex @@ -0,0 +1,29 @@ +\section{mo\-Rand\-Move$<$ M $>$ Class Template Reference} +\label{classmo_rand_move}\index{moRandMove@{moRandMove}} +Random move generator. + + +{\tt \#include $<$mo\-Rand\-Move.h$>$} + +Inheritance diagram for mo\-Rand\-Move$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmo_rand_move} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Rand\-Move$<$ M $>$} + +Random move generator. + +Only a description... An object that herits from this class needs to be designed in order to use a \doxyref{mo\-SA}{p.}{classmo_s_a}. + + + +Definition at line 21 of file mo\-Rand\-Move.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Rand\-Move.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_s_a.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_s_a.eps new file mode 100644 index 000000000..efa0100f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_s_a.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 271.739 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moSA< M >) cw +(moAlgo< M::EOType >) cw +(eoMonOp< M::EOType >) cw +(eoOp< EOType >) cw +(eoUF< M::EOType &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moSA< M >) 0.5 0 box + (moAlgo< M::EOType >) 0.5 1 box + (eoMonOp< M::EOType >) 0.5 2 box + (eoOp< EOType >) 0 3 box + (eoUF< M::EOType &, bool >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_s_a.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_s_a.tex new file mode 100644 index 000000000..017b05804 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_s_a.tex @@ -0,0 +1,110 @@ +\section{mo\-SA$<$ M $>$ Class Template Reference} +\label{classmo_s_a}\index{moSA@{moSA}} +Simulated Annealing (SA). + + +{\tt \#include $<$mo\-SA.h$>$} + +Inheritance diagram for mo\-SA$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmo_s_a} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-SA} (\bf{mo\-Rand\-Move}$<$ M $>$ \&\_\-\_\-move\_\-rand, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, \bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \&\_\-\_\-cont, double \_\-\_\-init\_\-temp, \bf{mo\-Cooling\-Schedule} \&\_\-\_\-cool\_\-sched, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em SA constructor. \item\end{CompactList}\item +bool \bf{operator()} (\bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em function that launches the SA algorithm. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_s_a_d5d64a8797bdedc7b3af7893aded0bd5} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef EOT::Fitness \bf{Fitness}\label{classmo_s_a_97f1a40d5ab5a0b3f878d0347b34804b} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{mo\-Rand\-Move}$<$ M $>$ \& \bf{move\_\-rand}\label{classmo_s_a_71c49935b63a202d25888a5f86121fec} + +\begin{CompactList}\small\item\em A move generator (generally randomly). \item\end{CompactList}\item +\bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& \bf{incr\_\-eval}\label{classmo_s_a_4c3be32e9832e465b24e6d33559356bc} + +\begin{CompactList}\small\item\em A (generally) efficient evaluation function. \item\end{CompactList}\item +\bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \& \bf{cont}\label{classmo_s_a_54484c8a514866ea496e0058c2e09716} + +\begin{CompactList}\small\item\em Stopping criterion before temperature update. \item\end{CompactList}\item +double \bf{init\_\-temp}\label{classmo_s_a_f1af7636b52aa5f6b381f8187b667bd4} + +\begin{CompactList}\small\item\em Initial temperature. \item\end{CompactList}\item +\bf{mo\-Cooling\-Schedule} \& \bf{cool\_\-sched}\label{classmo_s_a_11c7d0cab649b7d680dd85bb74cb4ff6} + +\begin{CompactList}\small\item\em The cooling schedule. \item\end{CompactList}\item +\bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& \bf{full\_\-eval}\label{classmo_s_a_bcd6a940046f23dd741444c0b85edf2c} + +\begin{CompactList}\small\item\em A full evaluation function. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-SA$<$ M $>$} + +Simulated Annealing (SA). + +Class that describes a Simulated Annealing algorithm. + + + +Definition at line 30 of file mo\-SA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moSA@{mo\-SA}!moSA@{moSA}} +\index{moSA@{moSA}!moSA@{mo\-SA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-SA}$<$ M $>$::\bf{mo\-SA} (\bf{mo\-Rand\-Move}$<$ M $>$ \& {\em \_\-\_\-move\_\-rand}, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, \bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-cont}, double {\em \_\-\_\-init\_\-temp}, \bf{mo\-Cooling\-Schedule} \& {\em \_\-\_\-cool\_\-sched}, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_s_a_01f6a44483e5a7abbce33eb480b6a9b9} + + +SA constructor. + +All the boxes used by a SA need to be given. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-rand}]a move generator (generally randomly). \item[{\em \_\-\_\-incr\_\-eval}]a (generaly) efficient evaluation function \item[{\em \_\-\_\-cont}]a stopping criterion. \item[{\em \_\-\_\-init\_\-temp}]the initial temperature. \item[{\em \_\-\_\-cool\_\-sched}]a cooling schedule, describes how the temperature is modified. \item[{\em \_\-\_\-full\_\-eval}]a full evaluation function. \end{description} +\end{Desc} + + +Definition at line 58 of file mo\-SA.h. + +\subsection{Member Function Documentation} +\index{moSA@{mo\-SA}!operator()@{operator()}} +\index{operator()@{operator()}!moSA@{mo\-SA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-SA}$<$ M $>$::operator() (\bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_s_a_0e4c54b57bc13fcbd4763883b8f719e5} + + +function that launches the SA algorithm. + +As a \doxyref{mo\-TS}{p.}{classmo_t_s} or a \doxyref{mo\-HC}{p.}{classmo_h_c}, the SA can be used for HYBRIDATION in an evolutionary algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]a solution to improve. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Implements \bf{eo\-UF$<$ M::EOType \&, bool $>$}. + +Definition at line 80 of file mo\-SA.h. + +References mo\-SA$<$ M $>$::cont, mo\-SA$<$ M $>$::cool\_\-sched, mo\-SA$<$ M $>$::full\_\-eval, mo\-SA$<$ M $>$::incr\_\-eval, mo\-SA$<$ M $>$::init\_\-temp, mo\-SA$<$ M $>$::move\_\-rand, and eo\-Rng::uniform(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-SA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_move_tabu_list.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_move_tabu_list.eps new file mode 100644 index 000000000..b0dcef476 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_move_tabu_list.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 427.807 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.16875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moSimpleMoveTabuList< M >) cw +(moTabuList< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moSimpleMoveTabuList< M >) 0 0 box + (moTabuList< M >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_move_tabu_list.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_move_tabu_list.tex new file mode 100644 index 000000000..729e656e6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_move_tabu_list.tex @@ -0,0 +1,145 @@ +\section{mo\-Simple\-Move\-Tabu\-List$<$ M $>$ Class Template Reference} +\label{classmo_simple_move_tabu_list}\index{moSimpleMoveTabuList@{moSimpleMoveTabuList}} +Class describing a move tabu list with a limited memory. + + +{\tt \#include $<$mo\-Simple\-Move\-Tabu\-List.h$>$} + +Inheritance diagram for mo\-Simple\-Move\-Tabu\-List$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_simple_move_tabu_list} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_simple_move_tabu_list_91286ff3ba6b1e9e1db9e4fdade2edb7} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-Simple\-Move\-Tabu\-List} (unsigned int \_\-\_\-size)\label{classmo_simple_move_tabu_list_12798ce0bc3a2ee031fb301290ed6d79} + +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +bool \bf{operator()} (const M \&\_\-\_\-move, const \bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} that indicates if, in a given state, the \_\-move is tabu or not. \item\end{CompactList}\item +void \bf{add} (const M \&\_\-\_\-move, const \bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item +void \bf{update} () +\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item +void \bf{init} () +\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{remove\-Move} (const M \&\_\-\_\-move) +\begin{CompactList}\small\item\em Procedure that removes a given move from the tabu list (if it is into, else do nothing). \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +unsigned int \bf{max\-Size}\label{classmo_simple_move_tabu_list_e48848e9e5c9c8435475cbdf21658e23} + +\begin{CompactList}\small\item\em The maximum size of the tabu list. \item\end{CompactList}\item +unsigned int \bf{current\-Size}\label{classmo_simple_move_tabu_list_f1f9524e62d48f3688aa58a6055ccceb} + +\begin{CompactList}\small\item\em The current size of the tabu list. \item\end{CompactList}\item +std::list$<$ M $>$ \bf{tabu\-List}\label{classmo_simple_move_tabu_list_d91bc838361524720616b44eda9b2c3a} + +\begin{CompactList}\small\item\em The move tabu list. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Simple\-Move\-Tabu\-List$<$ M $>$} + +Class describing a move tabu list with a limited memory. + + + +Definition at line 22 of file mo\-Simple\-Move\-Tabu\-List.h. + +\subsection{Member Function Documentation} +\index{moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}!operator()@{operator()}} +\index{operator()@{operator()}!moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-Simple\-Move\-Tabu\-List}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_simple_move_tabu_list_bb7fe9da28617f56734af71c42c8265a} + + +\doxyref{Function} that indicates if, in a given state, the \_\-move is tabu or not. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]A given \doxyref{mo\-Move}{p.}{classmo_move}. \item[{\em \_\-\_\-sol}]A solution. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]true or false. \end{Desc} + + +Definition at line 46 of file mo\-Simple\-Move\-Tabu\-List.h. + +References mo\-Simple\-Move\-Tabu\-List$<$ M $>$::tabu\-List.\index{moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}!add@{add}} +\index{add@{add}!moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Move\-Tabu\-List}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_43c979a9ec876c5e5b591b1c422395ef} + + +Procedure to add a move in the tabu list. + +The two parameters have not to be modified so they are constant parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new tabu move. \item[{\em \_\-\_\-sol}]the origianl solution associated to this move. \end{description} +\end{Desc} + + +Implements \bf{mo\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286}. + +Definition at line 60 of file mo\-Simple\-Move\-Tabu\-List.h. + +References mo\-Simple\-Move\-Tabu\-List$<$ M $>$::current\-Size, mo\-Simple\-Move\-Tabu\-List$<$ M $>$::max\-Size, mo\-Simple\-Move\-Tabu\-List$<$ M $>$::remove\-Move(), and mo\-Simple\-Move\-Tabu\-List$<$ M $>$::tabu\-List.\index{moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}!update@{update}} +\index{update@{update}!moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Move\-Tabu\-List}$<$ M $>$::update ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_96cffc8118456ed762b07b9fc0e0679f} + + +Procedure that updates the tabu list content. + +Generally, a counter associated to each saved move is decreased by one. + +Implements \bf{mo\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca}. + +Definition at line 82 of file mo\-Simple\-Move\-Tabu\-List.h.\index{moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}!init@{init}} +\index{init@{init}!moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Move\-Tabu\-List}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_move_tabu_list_b91ae9971be30769757d1ad92c6009dc} + + +Procedure which initialises the tabu list. + +Can be useful if the data structure needs to be allocated before being used. + +Implements \bf{mo\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57}. + +Definition at line 88 of file mo\-Simple\-Move\-Tabu\-List.h.\index{moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}!removeMove@{removeMove}} +\index{removeMove@{removeMove}!moSimpleMoveTabuList@{mo\-Simple\-Move\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Move\-Tabu\-List}$<$ M $>$::remove\-Move (const M \& {\em \_\-\_\-move})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_simple_move_tabu_list_a3fa2bd19e09f1541878fa28e867d20f} + + +Procedure that removes a given move from the tabu list (if it is into, else do nothing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]A given \doxyref{mo\-Move}{p.}{classmo_move}. \end{description} +\end{Desc} + + +Definition at line 100 of file mo\-Simple\-Move\-Tabu\-List.h. + +References mo\-Simple\-Move\-Tabu\-List$<$ M $>$::tabu\-List. + +Referenced by mo\-Simple\-Move\-Tabu\-List$<$ M $>$::add(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Simple\-Move\-Tabu\-List.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_solution_tabu_list.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_solution_tabu_list.eps new file mode 100644 index 000000000..06f8e8fc5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_solution_tabu_list.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 400 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moSimpleSolutionTabuList< M >) cw +(moTabuList< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moSimpleSolutionTabuList< M >) 0 0 box + (moTabuList< M >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_solution_tabu_list.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_solution_tabu_list.tex new file mode 100644 index 000000000..7d0407bd5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_simple_solution_tabu_list.tex @@ -0,0 +1,163 @@ +\section{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$ Class Template Reference} +\label{classmo_simple_solution_tabu_list}\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}} +Class describing a solution tabu list with limited length. + + +{\tt \#include $<$mo\-Simple\-Solution\-Tabu\-List.h$>$} + +Inheritance diagram for mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_simple_solution_tabu_list} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_simple_solution_tabu_list_881060871a6b49e5e8554c5df85176d9} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-Simple\-Solution\-Tabu\-List} (unsigned int \_\-\_\-size) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +bool \bf{operator()} (const M \&\_\-\_\-move, const \bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} that indicates if, in a given state, the \_\-move is tabu or not. \item\end{CompactList}\item +void \bf{add} (const M \&\_\-\_\-move, const \bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item +void \bf{update} () +\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item +void \bf{init} () +\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{remove\-Solution} (const \bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em Procedure that removes a given solution from the tabu list (if it is into, else does nothing). \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +unsigned int \bf{max\-Size}\label{classmo_simple_solution_tabu_list_662e1f65fadff234692be009a2440845} + +\begin{CompactList}\small\item\em The maximum size of the tabu list. \item\end{CompactList}\item +unsigned int \bf{current\-Size}\label{classmo_simple_solution_tabu_list_2aaf6e882d10495adddae94cb7a48fbf} + +\begin{CompactList}\small\item\em The current size of the tabu list. \item\end{CompactList}\item +std::list$<$ \bf{EOT} $>$ \bf{tabu\-List}\label{classmo_simple_solution_tabu_list_75df9cd683528d3722d02bac407b710b} + +\begin{CompactList}\small\item\em The solution tabu list. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Simple\-Solution\-Tabu\-List$<$ M $>$} + +Class describing a solution tabu list with limited length. + + + +Definition at line 22 of file mo\-Simple\-Solution\-Tabu\-List.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}!moSimpleSolutionTabuList@{moSimpleSolutionTabuList}} +\index{moSimpleSolutionTabuList@{moSimpleSolutionTabuList}!moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::\bf{mo\-Simple\-Solution\-Tabu\-List} (unsigned int {\em \_\-\_\-size})\hspace{0.3cm}{\tt [inline]}}\label{classmo_simple_solution_tabu_list_8f8ce82b49ff49efbd934cedd3e34178} + + +Constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-size}]The maximum size of the solution tabu list. \end{description} +\end{Desc} + + +Definition at line 34 of file mo\-Simple\-Solution\-Tabu\-List.h. + +References mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::current\-Size. + +\subsection{Member Function Documentation} +\index{moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}!operator()@{operator()}} +\index{operator()@{operator()}!moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::operator() (const M \& {\em \_\-\_\-move}, const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline]}}\label{classmo_simple_solution_tabu_list_e1f1cf258b55554d8be88fb5780a0047} + + +\doxyref{Function} that indicates if, in a given state, the \_\-move is tabu or not. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]A given \doxyref{mo\-Move}{p.}{classmo_move}. \item[{\em \_\-\_\-sol}]A solution. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]true or false. \end{Desc} + + +Definition at line 45 of file mo\-Simple\-Solution\-Tabu\-List.h. + +References mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::tabu\-List.\index{moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}!add@{add}} +\index{add@{add}!moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_fd6b3a1764121169650c969bba895615} + + +Procedure to add a move in the tabu list. + +The two parameters have not to be modified so they are constant parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new tabu move. \item[{\em \_\-\_\-sol}]the origianl solution associated to this move. \end{description} +\end{Desc} + + +Implements \bf{mo\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286}. + +Definition at line 64 of file mo\-Simple\-Solution\-Tabu\-List.h. + +References mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::current\-Size, mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::max\-Size, mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::remove\-Solution(), and mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::tabu\-List.\index{moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}!update@{update}} +\index{update@{update}!moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::update ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_91b8b01dba7ffea8b63765d931e56f56} + + +Procedure that updates the tabu list content. + +Generally, a counter associated to each saved move is decreased by one. + +Implements \bf{mo\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca}. + +Definition at line 91 of file mo\-Simple\-Solution\-Tabu\-List.h.\index{moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}!init@{init}} +\index{init@{init}!moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::init ()\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_simple_solution_tabu_list_d5645c39fec71a6110a2cbccbb08b816} + + +Procedure which initialises the tabu list. + +Can be useful if the data structure needs to be allocated before being used. + +Implements \bf{mo\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57}. + +Definition at line 97 of file mo\-Simple\-Solution\-Tabu\-List.h.\index{moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}!removeSolution@{removeSolution}} +\index{removeSolution@{removeSolution}!moSimpleSolutionTabuList@{mo\-Simple\-Solution\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-Simple\-Solution\-Tabu\-List}$<$ M $>$::remove\-Solution (const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, private]}}\label{classmo_simple_solution_tabu_list_7847a48f33c15e31298f3e715d754560} + + +Procedure that removes a given solution from the tabu list (if it is into, else does nothing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]A given solution. \end{description} +\end{Desc} + + +Definition at line 109 of file mo\-Simple\-Solution\-Tabu\-List.h. + +References mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::tabu\-List. + +Referenced by mo\-Simple\-Solution\-Tabu\-List$<$ M $>$::add(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Simple\-Solution\-Tabu\-List.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_sol_continue.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_sol_continue.eps new file mode 100644 index 000000000..c2a7fb9ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_sol_continue.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 441.989 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.13125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moSolContinue< EOT >) cw +(eoUF< const EOT &, bool >) cw +(eoFunctorBase) cw +(moGenSolContinue< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moSolContinue< EOT >) 0 1 box + (eoUF< const EOT &, bool >) 0 2 box + (eoFunctorBase) 0 3 box + (moGenSolContinue< EOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_sol_continue.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_sol_continue.tex new file mode 100644 index 000000000..3eafbc4e4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_sol_continue.tex @@ -0,0 +1,46 @@ +\section{mo\-Sol\-Continue$<$ EOT $>$ Class Template Reference} +\label{classmo_sol_continue}\index{moSolContinue@{moSolContinue}} +Class that describes a stop criterion for a solution-based heuristic. + + +{\tt \#include $<$mo\-Sol\-Continue.h$>$} + +Inheritance diagram for mo\-Sol\-Continue$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_sol_continue} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{init} ()=0 +\begin{CompactList}\small\item\em Procedure which initialises all that the stop criterion needs. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class mo\-Sol\-Continue$<$ EOT $>$} + +Class that describes a stop criterion for a solution-based heuristic. + +It allows to add an initialisation procedure to an object that is a unary function (\doxyref{eo\-UF}). + + + +Definition at line 22 of file mo\-Sol\-Continue.h. + +\subsection{Member Function Documentation} +\index{moSolContinue@{mo\-Sol\-Continue}!init@{init}} +\index{init@{init}!moSolContinue@{mo\-Sol\-Continue}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ virtual void \bf{mo\-Sol\-Continue}$<$ EOT $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_sol_continue_064dc966a210f4ffb9515be3f03ca4c7} + + +Procedure which initialises all that the stop criterion needs. + +Generally, it allocates some data structures or initialises some counters. + +Implemented in \bf{mo\-Gen\-Sol\-Continue$<$ EOT $>$} \doxyref{p.}{classmo_gen_sol_continue_6c5db8182157584b56507cc9075602d4}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Sol\-Continue.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s.eps new file mode 100644 index 000000000..a62652ad5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 271.739 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.84 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moTS< M >) cw +(moAlgo< M::EOType >) cw +(eoMonOp< M::EOType >) cw +(eoOp< EOType >) cw +(eoUF< M::EOType &, bool >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moTS< M >) 0.5 0 box + (moAlgo< M::EOType >) 0.5 1 box + (eoMonOp< M::EOType >) 0.5 2 box + (eoOp< EOType >) 0 3 box + (eoUF< M::EOType &, bool >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s.tex new file mode 100644 index 000000000..1eb22beb6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s.tex @@ -0,0 +1,119 @@ +\section{mo\-TS$<$ M $>$ Class Template Reference} +\label{classmo_t_s}\index{moTS@{moTS}} +Tabu Search (TS). + + +{\tt \#include $<$mo\-TS.h$>$} + +Inheritance diagram for mo\-TS$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmo_t_s} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-TS} (\bf{mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, \bf{mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, \bf{mo\-Tabu\-List}$<$ M $>$ \&\_\-\_\-tabu\_\-list, \bf{mo\-Aspir\-Crit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit, \bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \&\_\-\_\-cont, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Constructor of a \doxyref{mo\-TS}{p.}{classmo_t_s} specifying all the boxes. \item\end{CompactList}\item +\bf{mo\-TS} (\bf{mo\-Move\-Expl}$<$ M $>$ \&\_\-\_\-move\_\-expl, \bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \&\_\-\_\-cont, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \&\_\-\_\-full\_\-eval) +\begin{CompactList}\small\item\em Constructor with less parameters. \item\end{CompactList}\item +bool \bf{operator()} (\bf{EOT} \&\_\-\_\-sol) +\begin{CompactList}\small\item\em \doxyref{Function} which launchs the Tabu Search. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_t_s_90d19d468c12ab5bd796948ce1ce79b1} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef EOT::Fitness \bf{Fitness}\label{classmo_t_s_aa0eefbb17111422e495d1255f876fca} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{mo\-Move\-Expl}$<$ M $>$ \& \bf{move\_\-expl}\label{classmo_t_s_06914ddc90ca96e9158c8dbe182a7865} + +\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item +\bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \& \bf{cont}\label{classmo_t_s_969371cd2202f3d29cbb426f57ac7d3a} + +\begin{CompactList}\small\item\em Stop criterion. \item\end{CompactList}\item +\bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& \bf{full\_\-eval}\label{classmo_t_s_fb67eddae5d0bfca4ed881995523231e} + +\begin{CompactList}\small\item\em Full evaluation function. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-TS$<$ M $>$} + +Tabu Search (TS). + +Generic algorithm that describes a tabu search. + + + +Definition at line 29 of file mo\-TS.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moTS@{mo\-TS}!moTS@{moTS}} +\index{moTS@{moTS}!moTS@{mo\-TS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-TS}$<$ M $>$::\bf{mo\-TS} (\bf{mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, \bf{mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, \bf{mo\-Tabu\-List}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, \bf{mo\-Aspir\-Crit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit}, \bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-cont}, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_2be23f4524733ee6f37b71310d76407e} + + +Constructor of a \doxyref{mo\-TS}{p.}{classmo_t_s} specifying all the boxes. + +In this constructor, a \doxyref{mo\-TSMove\-Loop\-Expl}{p.}{classmo_t_s_move_loop_expl} is instanciated. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]move initialisation \item[{\em \_\-\_\-next\_\-move}]neighborhood explorer \item[{\em \_\-\_\-incr\_\-eval}]efficient evaluation \item[{\em \_\-\_\-tabu\_\-list}]tabu list \item[{\em \_\-\_\-aspir\_\-crit}]aspiration criterion \item[{\em \_\-\_\-cont}]stop criterion \item[{\em \_\-\_\-full\_\-eval}]full evaluation function \end{description} +\end{Desc} + + +Definition at line 58 of file mo\-TS.h.\index{moTS@{mo\-TS}!moTS@{moTS}} +\index{moTS@{moTS}!moTS@{mo\-TS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-TS}$<$ M $>$::\bf{mo\-TS} (\bf{mo\-Move\-Expl}$<$ M $>$ \& {\em \_\-\_\-move\_\-expl}, \bf{mo\-Sol\-Continue}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-cont}, \bf{eo\-Eval\-Func}$<$ \bf{EOT} $>$ \& {\em \_\-\_\-full\_\-eval})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_508e675c4232cf2ca06dded931c90bab} + + +Constructor with less parameters. + +The explorer is given in the parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-expl}]the explorer (generally different that a \doxyref{mo\-TSMove\-Loop\-Expl}{p.}{classmo_t_s_move_loop_expl}) \item[{\em \_\-\_\-cont}]stop criterion \item[{\em \_\-\_\-full\_\-eval}]full evaluation function \end{description} +\end{Desc} + + +Definition at line 71 of file mo\-TS.h. + +\subsection{Member Function Documentation} +\index{moTS@{mo\-TS}!operator()@{operator()}} +\index{operator()@{operator()}!moTS@{mo\-TS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ bool \bf{mo\-TS}$<$ M $>$::operator() (\bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_t_s_94d25a76fe1bc9ef0bbd0358ff55aceb} + + +\doxyref{Function} which launchs the Tabu Search. + +Algorithm of the tabu search. As a \doxyref{mo\-SA}{p.}{classmo_s_a} or a \doxyref{mo\-HC}{p.}{classmo_h_c}, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread\_\-mutex\_\-t) is closed during the algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-sol}]a solution to improve. \end{description} +\end{Desc} +\begin{Desc} +\item[Returns:]TRUE. \end{Desc} + + +Implements \bf{eo\-UF$<$ M::EOType \&, bool $>$}. + +Definition at line 85 of file mo\-TS.h. + +References mo\-TS$<$ M $>$::cont, mo\-TS$<$ M $>$::full\_\-eval, and mo\-TS$<$ M $>$::move\_\-expl. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-TS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s_move_loop_expl.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s_move_loop_expl.eps new file mode 100644 index 000000000..fd31fc02a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s_move_loop_expl.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 327.869 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moTSMoveLoopExpl< M >) cw +(moMoveLoopExpl< M >) cw +(moMoveExpl< M >) cw +(eoBF< const M::EOType &, M::EOType &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moTSMoveLoopExpl< M >) 0 0 box + (moMoveLoopExpl< M >) 0 1 box + (moMoveExpl< M >) 0 2 box + (eoBF< const M::EOType &, M::EOType &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s_move_loop_expl.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s_move_loop_expl.tex new file mode 100644 index 000000000..30f0a7156 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_t_s_move_loop_expl.tex @@ -0,0 +1,108 @@ +\section{mo\-TSMove\-Loop\-Expl$<$ M $>$ Class Template Reference} +\label{classmo_t_s_move_loop_expl}\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}} +Explorer for a Tabu Search algorithm. + + +{\tt \#include $<$mo\-TSMove\-Loop\-Expl.h$>$} + +Inheritance diagram for mo\-TSMove\-Loop\-Expl$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmo_t_s_move_loop_expl} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{mo\-TSMove\-Loop\-Expl} (\bf{mo\-Move\-Init}$<$ M $>$ \&\_\-\_\-move\_\-init, \bf{mo\-Next\-Move}$<$ M $>$ \&\_\-\_\-next\_\-move, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \&\_\-\_\-incr\_\-eval, \bf{mo\-Tabu\-List}$<$ M $>$ \&\_\-\_\-tabu\_\-list, \bf{mo\-Aspir\-Crit}$<$ M $>$ \&\_\-\_\-aspir\_\-crit) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +void \bf{operator()} (const \bf{EOT} \&\_\-\_\-old\_\-sol, \bf{EOT} \&\_\-\_\-new\_\-sol) +\begin{CompactList}\small\item\em Procedure which lauches the exploration. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_t_s_move_loop_expl_47f42225e2ed096374b818bdb848a527} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\item +typedef M::EOType::Fitness \bf{Fitness}\label{classmo_t_s_move_loop_expl_a1ba36c937b195ca2f7d1a24adaa7018} + +\begin{CompactList}\small\item\em Alias for the fitness. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{mo\-Move\-Init}$<$ M $>$ \& \bf{move\_\-init}\label{classmo_t_s_move_loop_expl_6b23f99648902fb72ed17a4a6fa4e400} + +\begin{CompactList}\small\item\em Move initialisation. \item\end{CompactList}\item +\bf{mo\-Next\-Move}$<$ M $>$ \& \bf{next\_\-move}\label{classmo_t_s_move_loop_expl_aeeff6666d26ff5c67acd9c153a5ae49} + +\begin{CompactList}\small\item\em Neighborhood explorer. \item\end{CompactList}\item +\bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& \bf{incr\_\-eval}\label{classmo_t_s_move_loop_expl_ee4443fc8e45d840697619678628c26c} + +\begin{CompactList}\small\item\em Efficient evaluation. \item\end{CompactList}\item +\bf{mo\-Best\-Impr\-Select}$<$ M $>$ \bf{move\_\-select}\label{classmo_t_s_move_loop_expl_35a3f3035fb8df875c281d9838904bf1} + +\begin{CompactList}\small\item\em Move selector. \item\end{CompactList}\item +\bf{mo\-Tabu\-List}$<$ M $>$ \& \bf{tabu\_\-list}\label{classmo_t_s_move_loop_expl_0e5988a940ba218e87c53b7e56d79790} + +\begin{CompactList}\small\item\em Tabu list. \item\end{CompactList}\item +\bf{mo\-Aspir\-Crit}$<$ M $>$ \& \bf{aspir\_\-crit}\label{classmo_t_s_move_loop_expl_6786cf5422d17cbf872b07ae74ca6b0f} + +\begin{CompactList}\small\item\em Aspiration criterion. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-TSMove\-Loop\-Expl$<$ M $>$} + +Explorer for a Tabu Search algorithm. + +It is used by a \doxyref{mo\-TS}{p.}{classmo_t_s}. + + + +Definition at line 30 of file mo\-TSMove\-Loop\-Expl.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}!moTSMoveLoopExpl@{moTSMoveLoopExpl}} +\index{moTSMoveLoopExpl@{moTSMoveLoopExpl}!moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ \bf{mo\-TSMove\-Loop\-Expl}$<$ M $>$::\bf{mo\-TSMove\-Loop\-Expl} (\bf{mo\-Move\-Init}$<$ M $>$ \& {\em \_\-\_\-move\_\-init}, \bf{mo\-Next\-Move}$<$ M $>$ \& {\em \_\-\_\-next\_\-move}, \bf{mo\-Move\-Incr\-Eval}$<$ M $>$ \& {\em \_\-\_\-incr\_\-eval}, \bf{mo\-Tabu\-List}$<$ M $>$ \& {\em \_\-\_\-tabu\_\-list}, \bf{mo\-Aspir\-Crit}$<$ M $>$ \& {\em \_\-\_\-aspir\_\-crit})\hspace{0.3cm}{\tt [inline]}}\label{classmo_t_s_move_loop_expl_43306dae9df150a8d9dc0dec9cd6a381} + + +Constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move\_\-init}]move initialisation \item[{\em \_\-\_\-next\_\-move}]neighborhood explorer \item[{\em \_\-\_\-incr\_\-eval}]efficient evaluation \item[{\em \_\-\_\-tabu\_\-list}]tabu list \item[{\em \_\-\_\-aspir\_\-crit}]aspiration criterion \end{description} +\end{Desc} + + +Definition at line 49 of file mo\-TSMove\-Loop\-Expl.h. + +References mo\-TSMove\-Loop\-Expl$<$ M $>$::aspir\_\-crit, and mo\-TSMove\-Loop\-Expl$<$ M $>$::tabu\_\-list. + +\subsection{Member Function Documentation} +\index{moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}!operator()@{operator()}} +\index{operator()@{operator()}!moTSMoveLoopExpl@{mo\-TSMove\-Loop\-Expl}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ void \bf{mo\-TSMove\-Loop\-Expl}$<$ M $>$::operator() (const \bf{EOT} \& {\em \_\-\_\-old\_\-sol}, \bf{EOT} \& {\em \_\-\_\-new\_\-sol})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmo_t_s_move_loop_expl_f601bbd0ccc41d6fbe3df9fcd87ad9e7} + + +Procedure which lauches the exploration. + +The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-old\_\-sol}]the initial solution \item[{\em \_\-\_\-new\_\-sol}]the new solution \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ const M::EOType \&, M::EOType \&, void $>$}. + +Definition at line 69 of file mo\-TSMove\-Loop\-Expl.h. + +References mo\-TSMove\-Loop\-Expl$<$ M $>$::aspir\_\-crit, mo\-TSMove\-Loop\-Expl$<$ M $>$::incr\_\-eval, mo\-TSMove\-Loop\-Expl$<$ M $>$::move\_\-init, mo\-TSMove\-Loop\-Expl$<$ M $>$::move\_\-select, mo\-TSMove\-Loop\-Expl$<$ M $>$::next\_\-move, and mo\-TSMove\-Loop\-Expl$<$ M $>$::tabu\_\-list. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-TSMove\-Loop\-Expl.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_tabu_list.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_tabu_list.eps new file mode 100644 index 000000000..43c125a8a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_tabu_list.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 200 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.5 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moTabuList< M >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moSimpleMoveTabuList< M >) cw +(moSimpleSolutionTabuList< M >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moTabuList< M >) 0.5 1 box + (eoBF< A1, A2, R >) 0.5 2 box + (eoFunctorBase) 0.5 3 box + (moSimpleMoveTabuList< M >) 0 0 box + (moSimpleSolutionTabuList< M >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_tabu_list.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_tabu_list.tex new file mode 100644 index 000000000..89cb23468 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/classmo_tabu_list.tex @@ -0,0 +1,81 @@ +\section{mo\-Tabu\-List$<$ M $>$ Class Template Reference} +\label{classmo_tabu_list}\index{moTabuList@{moTabuList}} +Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses. + + +{\tt \#include $<$mo\-Tabu\-List.h$>$} + +Inheritance diagram for mo\-Tabu\-List$<$ M $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmo_tabu_list} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef M::EOType \bf{EOT}\label{classmo_tabu_list_e219715cc3fdd5626764bc50ce6357df} + +\begin{CompactList}\small\item\em Alias for the type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{add} (const M \&\_\-\_\-move, const \bf{EOT} \&\_\-\_\-sol)=0 +\begin{CompactList}\small\item\em Procedure to add a move in the tabu list. \item\end{CompactList}\item +virtual void \bf{update} ()=0 +\begin{CompactList}\small\item\em Procedure that updates the tabu list content. \item\end{CompactList}\item +virtual void \bf{init} ()=0 +\begin{CompactList}\small\item\em Procedure which initialises the tabu list. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class M$>$ class mo\-Tabu\-List$<$ M $>$} + +Class describing a tabu list that a \doxyref{mo\-TS}{p.}{classmo_t_s} uses. + +It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a \doxyref{mo\-TS}{p.}{classmo_t_s}. + + + +Definition at line 22 of file mo\-Tabu\-List.h. + +\subsection{Member Function Documentation} +\index{moTabuList@{mo\-Tabu\-List}!add@{add}} +\index{add@{add}!moTabuList@{mo\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void \bf{mo\-Tabu\-List}$<$ M $>$::add (const M \& {\em \_\-\_\-move}, const \bf{EOT} \& {\em \_\-\_\-sol})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_d279d72cb486d812da1ad3d24a69c286} + + +Procedure to add a move in the tabu list. + +The two parameters have not to be modified so they are constant parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-\_\-move}]a new tabu move. \item[{\em \_\-\_\-sol}]the origianl solution associated to this move. \end{description} +\end{Desc} + + +Implemented in \bf{mo\-Simple\-Move\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_simple_move_tabu_list_43c979a9ec876c5e5b591b1c422395ef}, and \bf{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_simple_solution_tabu_list_fd6b3a1764121169650c969bba895615}.\index{moTabuList@{mo\-Tabu\-List}!update@{update}} +\index{update@{update}!moTabuList@{mo\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void \bf{mo\-Tabu\-List}$<$ M $>$::update ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_a2e5d1132f064093c8ed57046405f5ca} + + +Procedure that updates the tabu list content. + +Generally, a counter associated to each saved move is decreased by one. + +Implemented in \bf{mo\-Simple\-Move\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_simple_move_tabu_list_96cffc8118456ed762b07b9fc0e0679f}, and \bf{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_simple_solution_tabu_list_91b8b01dba7ffea8b63765d931e56f56}.\index{moTabuList@{mo\-Tabu\-List}!init@{init}} +\index{init@{init}!moTabuList@{mo\-Tabu\-List}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class M$>$ virtual void \bf{mo\-Tabu\-List}$<$ M $>$::init ()\hspace{0.3cm}{\tt [pure virtual]}}\label{classmo_tabu_list_0a06c459d56e8e2b408a8f3c6aec4e57} + + +Procedure which initialises the tabu list. + +Can be useful if the data structure needs to be allocated before being used. + +Implemented in \bf{mo\-Simple\-Move\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_simple_move_tabu_list_b91ae9971be30769757d1ad92c6009dc}, and \bf{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$} \doxyref{p.}{classmo_simple_solution_tabu_list_d5645c39fec71a6110a2cbccbb08b816}. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +mo\-Tabu\-List.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/doxygen.sty b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/doxygen.sty new file mode 100644 index 000000000..f54e6ffad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Jul 5 17:08:27 2007 for PARADISEO-MO by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/hierarchy.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/hierarchy.tex new file mode 100644 index 000000000..ae3028808 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/hierarchy.tex @@ -0,0 +1,79 @@ +\section{PARADISEO-MO Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item \contentsline{section}{Empty\-Selection}{\pageref{class_empty_selection}}{} +\item eo\-Functor\-Base{\tt [external]}\begin{CompactList} +\item eo\-BF$<$ A1, A2, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_aspir_crit}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Impr\-Best\-Fit\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_impr_best_fit_aspir_crit}}{} +\item \contentsline{section}{mo\-No\-Aspir\-Crit$<$ M $>$}{\pageref{classmo_no_aspir_crit}}{} +\end{CompactList} +\item \contentsline{section}{mo\-LSCheck\-Point$<$ M $>$}{\pageref{classmo_l_s_check_point}}{} +\item \contentsline{section}{mo\-Move\-Incr\-Eval$<$ M $>$}{\pageref{classmo_move_incr_eval}}{} +\item \contentsline{section}{mo\-Move\-Init$<$ M $>$}{\pageref{classmo_move_init}}{} +\item \contentsline{section}{mo\-Next\-Move$<$ M $>$}{\pageref{classmo_next_move}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-It\-Rand\-Next\-Move$<$ M $>$}{\pageref{classmo_it_rand_next_move}}{} +\end{CompactList} +\item \contentsline{section}{mo\-Tabu\-List$<$ M $>$}{\pageref{classmo_tabu_list}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Simple\-Move\-Tabu\-List$<$ M $>$}{\pageref{classmo_simple_move_tabu_list}}{} +\item \contentsline{section}{mo\-Simple\-Solution\-Tabu\-List$<$ M $>$}{\pageref{classmo_simple_solution_tabu_list}}{} +\end{CompactList} +\end{CompactList} +\item eo\-BF$<$ const M::EOType \&, M::EOType \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Move\-Expl$<$ M $>$}{\pageref{classmo_move_expl}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Move\-Loop\-Expl$<$ M $>$}{\pageref{classmo_move_loop_expl}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-HCMove\-Loop\-Expl$<$ M $>$}{\pageref{classmo_h_c_move_loop_expl}}{} +\item \contentsline{section}{mo\-TSMove\-Loop\-Expl$<$ M $>$}{\pageref{classmo_t_s_move_loop_expl}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item eo\-BF$<$ M \&, M::EOType::Fitness \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Move\-Select$<$ M $>$}{\pageref{classmo_move_select}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Best\-Impr\-Select$<$ M $>$}{\pageref{classmo_best_impr_select}}{} +\item \contentsline{section}{mo\-First\-Impr\-Select$<$ M $>$}{\pageref{classmo_first_impr_select}}{} +\item \contentsline{section}{mo\-Rand\-Impr\-Select$<$ M $>$}{\pageref{classmo_rand_impr_select}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ const EOT \&, bool $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Sol\-Continue$<$ EOT $>$}{\pageref{classmo_sol_continue}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Gen\-Sol\-Continue$<$ EOT $>$}{\pageref{classmo_gen_sol_continue}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ double \&, bool $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Cooling\-Schedule}{\pageref{classmo_cooling_schedule}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-Exponential\-Cooling\-Schedule}{\pageref{classmo_exponential_cooling_schedule}}{} +\item \contentsline{section}{mo\-Linear\-Cooling\-Schedule}{\pageref{classmo_linear_cooling_schedule}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ EOT \&, bool $>${\tt [external]}\begin{CompactList} +\item eo\-Mon\-Op$<$ EOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Algo$<$ EOT $>$}{\pageref{classmo_algo}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ EOT \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Move$<$ EOT $>$}{\pageref{classmo_move}}{} +\end{CompactList} +\item eo\-UF$<$ EOType \&, bool $>${\tt [external]}\item eo\-UF$<$ M \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Rand\-Move$<$ M $>$}{\pageref{classmo_rand_move}}{} +\end{CompactList} +\item eo\-UF$<$ M::EOType \&, bool $>${\tt [external]}\begin{CompactList} +\item eo\-Mon\-Op$<$ M::EOType $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{mo\-Algo$<$ M::EOType $>$}{\pageref{classmo_algo}}{} +\begin{CompactList} +\item \contentsline{section}{mo\-HC$<$ M $>$}{\pageref{classmo_h_c}}{} +\item \contentsline{section}{mo\-SA$<$ M $>$}{\pageref{classmo_s_a}}{} +\item \contentsline{section}{mo\-TS$<$ M $>$}{\pageref{classmo_t_s}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item eo\-Op$<$ EOType $>${\tt [external]}\begin{CompactList} +\item eo\-Mon\-Op$<$ EOT $>${\tt [external]}\item eo\-Mon\-Op$<$ M::EOType $>${\tt [external]}\end{CompactList} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/main.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/main.tex new file mode 100644 index 000000000..8d5a5e7cc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/main.tex @@ -0,0 +1,5 @@ +\section{intro}\label{main_intro} +MO is an extension of the ANSI-C++ compliant evolutionary computation library \doxyref{EO}. \par + It contains classes for almost any kind of one solution based heuristics.\section{tutorial}\label{main_tutorial} +\section{install}\label{main_install} +The installation procedure of the package is detailed in the {\tt README} file in the top-directory of the source-tree.\section{design}\label{main_design} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/refman.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/refman.tex new file mode 100644 index 000000000..92947f8e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/latex/refman.tex @@ -0,0 +1,69 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large PARADISEO-MO Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Thu Jul 5 17:08:27 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{Welcome to PARADISEO-Moving Objects } +\label{index}\input{main} +\chapter{PARADISEO-MO Hierarchical Index} +\input{hierarchy} +\chapter{PARADISEO-MO Class Index} +\input{annotated} +\chapter{PARADISEO-MO Class Documentation} +\input{class_empty_selection} +\include{classmo_algo} +\include{classmo_aspir_crit} +\include{classmo_best_impr_select} +\include{classmo_cooling_schedule} +\include{classmo_exponential_cooling_schedule} +\include{classmo_first_impr_select} +\include{classmo_gen_sol_continue} +\include{classmo_h_c} +\include{classmo_h_c_move_loop_expl} +\include{classmo_impr_best_fit_aspir_crit} +\include{classmo_it_rand_next_move} +\include{classmo_linear_cooling_schedule} +\include{classmo_l_s_check_point} +\include{classmo_move} +\include{classmo_move_expl} +\include{classmo_move_incr_eval} +\include{classmo_move_init} +\include{classmo_move_loop_expl} +\include{classmo_move_select} +\include{classmo_next_move} +\include{classmo_no_aspir_crit} +\include{classmo_rand_impr_select} +\include{classmo_rand_move} +\include{classmo_s_a} +\include{classmo_simple_move_tabu_list} +\include{classmo_simple_solution_tabu_list} +\include{classmo_sol_continue} +\include{classmo_tabu_list} +\include{classmo_t_s} +\include{classmo_t_s_move_loop_expl} +\printindex +\end{document} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/EmptySelection.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/EmptySelection.3 new file mode 100644 index 000000000..150071306 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/EmptySelection.3 @@ -0,0 +1,23 @@ +.TH "EmptySelection" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +EmptySelection \- Special class that describes the case of no selection. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SH "Detailed Description" +.PP +Special class that describes the case of no selection. + +This class is used as an exception that can be thrown if a solution selector has completly failed. +.PP +Definition at line 21 of file moMoveSelect.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moAlgo.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moAlgo.3 new file mode 100644 index 000000000..c17b99982 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moAlgo.3 @@ -0,0 +1,27 @@ +.TH "moAlgo" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moAlgo \- Description of an algorithm of the paradiseo-mo library. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoMonOp< EOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moAlgo< EOT >" +Description of an algorithm of the paradiseo-mo library. + +\fBmoHC\fP, \fBmoTS\fP and \fBmoSA\fP are 3 examples of algorithm of the paradiseo-mo library. +.PP +Definition at line 21 of file moAlgo.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moAspirCrit.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moAspirCrit.3 new file mode 100644 index 000000000..e9dc2de1e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moAspirCrit.3 @@ -0,0 +1,46 @@ +.TH "moAspirCrit" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moAspirCrit \- Description of the conditions in which a tabu move could be accepted. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType::Fitness &, bool >\fP. +.PP +Inherited by \fBmoImprBestFitAspirCrit< M >\fP, and \fBmoNoAspirCrit< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP ()=0" +.br +.RI "\fIProcedure which initialises all that needs a aspiration criterion. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moAspirCrit< M >" +Description of the conditions in which a tabu move could be accepted. + +It is only a description... An object that herits from this class is needed to be used in a \fBmoTS\fP. See moNoAspriCrit for example. +.PP +Definition at line 22 of file moAspirCrit.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoAspirCrit\fP< M >::init ()\fC [pure virtual]\fP" +.PP +Procedure which initialises all that needs a aspiration criterion. +.PP +It can be possible that this procedure do nothing... +.PP +Implemented in \fBmoImprBestFitAspirCrit< M >\fP, and \fBmoNoAspirCrit< M >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moBestImprSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moBestImprSelect.3 new file mode 100644 index 000000000..6c0e26734 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moBestImprSelect.3 @@ -0,0 +1,117 @@ +.TH "moBestImprSelect" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moBestImprSelect \- One of the possible \fBmoMoveSelect\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveSelect< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBinit\fP (const \fBFitness\fP &__fit)" +.br +.RI "\fIProcedure which initialise the exploration. \fP" +.ti -1c +.RI "bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)" +.br +.RI "\fI\fBFunction\fP that indicates if the current move has not improved the fitness. \fP" +.ti -1c +.RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" +.br +.RI "\fIProcedure which saved the best move and fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "bool \fBfirst_time\fP" +.br +.RI "\fIAllowing to know if at least one move has been generated. \fP" +.ti -1c +.RI "M \fBbest_move\fP" +.br +.RI "\fIThe best move. \fP" +.ti -1c +.RI "\fBFitness\fP \fBbest_fit\fP" +.br +.RI "\fIThe best fitness. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moBestImprSelect< M >" +One of the possible \fBmoMoveSelect\fP. + +All neighbors are considered, and the movement which enables the best improvement is selected. +.PP +Definition at line 22 of file moBestImprSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoBestImprSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP that indicates if the current move has not improved the fitness. +.PP +If the given fitness enables an improvment, the move (\fBmoMove\fP) and the fitness linked to this move are saved. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__fit\fP a fitness linked to the move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE if the move does not improve the fitness. +.RE +.PP + +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 47 of file moBestImprSelect.h. +.PP +References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. +.SS "template void \fBmoBestImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline, virtual]\fP" +.PP +Procedure which saved the best move and fitness. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the current move (result of the procedure). +.br +\fI__fit\fP the current fitness (result of the procedure). +.RE +.PP +\fBExceptions:\fP +.RS 4 +\fI\fBEmptySelection\fP\fP if no move has improved the fitness. +.RE +.PP + +.PP +Implements \fBeoBF< M &, M::EOType::Fitness &, void >\fP. +.PP +Definition at line 68 of file moBestImprSelect.h. +.PP +References moBestImprSelect< M >::best_fit, moBestImprSelect< M >::best_move, and moBestImprSelect< M >::first_time. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moCoolingSchedule.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moCoolingSchedule.3 new file mode 100644 index 000000000..88c4d2d2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moCoolingSchedule.3 @@ -0,0 +1,27 @@ +.TH "moCoolingSchedule" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moCoolingSchedule \- This class gives the description of a cooling schedule. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< double &, bool >\fP. +.PP +Inherited by \fBmoExponentialCoolingSchedule\fP, and \fBmoLinearCoolingSchedule\fP. +.PP +.SH "Detailed Description" +.PP +This class gives the description of a cooling schedule. + +It is only a description... An object that herits from this class is needed to be used in a \fBmoSA\fP. See \fBmoExponentialCoolingSchedule\fP or \fBmoLinearCoolingSchedule\fP for example. +.PP +Definition at line 22 of file moCoolingSchedule.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moExponentialCoolingSchedule.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moExponentialCoolingSchedule.3 new file mode 100644 index 000000000..aadd76c73 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moExponentialCoolingSchedule.3 @@ -0,0 +1,90 @@ +.TH "moExponentialCoolingSchedule" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moExponentialCoolingSchedule \- One of the possible \fBmoCoolingSchedule\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoCoolingSchedule\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoExponentialCoolingSchedule\fP (double __threshold, double __ratio)" +.br +.RI "\fISimple constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (double &__temp)" +.br +.RI "\fI\fBFunction\fP which proceeds to the cooling. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBthreshold\fP" +.br +.RI "\fIThe temperature threhold. \fP" +.ti -1c +.RI "double \fBratio\fP" +.br +.RI "\fIThe decreasing factor of the temperature. \fP" +.in -1c +.SH "Detailed Description" +.PP +One of the possible \fBmoCoolingSchedule\fP. + +An other very simple cooling schedule, the temperature decrease according to a ratio while the temperature is greater than a given threshold. +.PP +Definition at line 22 of file moExponentialCoolingSchedule.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "moExponentialCoolingSchedule::moExponentialCoolingSchedule (double __threshold, double __ratio)\fC [inline]\fP" +.PP +Simple constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__threshold\fP the threshold. +.br +\fI__ratio\fP the ratio used to descrease the temperature. +.RE +.PP + +.PP +Definition at line 31 of file moExponentialCoolingSchedule.h. +.SH "Member Function Documentation" +.PP +.SS "bool moExponentialCoolingSchedule::operator() (double & __temp)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP which proceeds to the cooling. +.PP +It decreases the temperature and indicates if it is greater than the threshold. +.PP +\fBParameters:\fP +.RS 4 +\fI__temp\fP the current temperature. +.RE +.PP +\fBReturns:\fP +.RS 4 +if the new temperature (current temperature * ratio) is greater than the threshold. +.RE +.PP + +.PP +Implements \fBeoUF< double &, bool >\fP. +.PP +Definition at line 41 of file moExponentialCoolingSchedule.h. +.PP +References ratio, and threshold. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moFirstImprSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moFirstImprSelect.3 new file mode 100644 index 000000000..f3ef3a983 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moFirstImprSelect.3 @@ -0,0 +1,130 @@ +.TH "moFirstImprSelect" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moFirstImprSelect \- One possible \fBmoMoveSelect\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveSelect< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP (const \fBFitness\fP &__fit)" +.br +.RI "\fIProcedure which initialise the exploration. \fP" +.ti -1c +.RI "bool \fBupdate\fP (const M &__move, const typename M::EOType::Fitness &__fit)" +.br +.RI "\fI\fBFunction\fP that indicates if the current move has not improved the fitness. \fP" +.ti -1c +.RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" +.br +.RI "\fIProcedure which saved the best move and fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "bool \fBvalid\fP" +.br +.RI "\fIAllow to know if at least one move has improved the solution. \fP" +.ti -1c +.RI "M \fBbest_move\fP" +.br +.RI "\fIBest stored movement. \fP" +.ti -1c +.RI "\fBFitness\fP \fBinit_fit\fP" +.br +.RI "\fIInitial fitness. \fP" +.ti -1c +.RI "\fBFitness\fP \fBbest_fit\fP" +.br +.RI "\fIBest stored fitness. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moFirstImprSelect< M >" +One possible \fBmoMoveSelect\fP. + +The neighborhood is explored until a move enables an improvment of the current solution. +.PP +Definition at line 23 of file moFirstImprSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoFirstImprSelect\fP< M >::init (const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +Procedure which initialise the exploration. +.PP +It save the current fitness as the initial value for the fitness. +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 35 of file moFirstImprSelect.h. +.PP +References moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +.SS "template bool \fBmoFirstImprSelect\fP< M >::update (const M & __move, const typename M::EOType::Fitness & __fit)\fC [inline]\fP" +.PP +\fBFunction\fP that indicates if the current move has not improved the fitness. +.PP +If the given fitness enables an improvment, the move (\fBmoMove\fP) should be applied to the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__fit\fP a fitness linked to the move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE if the move does not improve the fitness. +.RE +.PP + +.PP +Definition at line 52 of file moFirstImprSelect.h. +.PP +References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, moFirstImprSelect< M >::init_fit, and moFirstImprSelect< M >::valid. +.SS "template void \fBmoFirstImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline, virtual]\fP" +.PP +Procedure which saved the best move and fitness. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the current move (result of the procedure). +.br +\fI__fit\fP the current fitness (result of the procedure). +.RE +.PP +\fBExceptions:\fP +.RS 4 +\fI\fBEmptySelection\fP\fP if no move has improved the fitness. +.RE +.PP + +.PP +Implements \fBeoBF< M &, M::EOType::Fitness &, void >\fP. +.PP +Definition at line 76 of file moFirstImprSelect.h. +.PP +References moFirstImprSelect< M >::best_fit, moFirstImprSelect< M >::best_move, and moFirstImprSelect< M >::valid. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moGenSolContinue.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moGenSolContinue.3 new file mode 100644 index 000000000..71cadb395 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moGenSolContinue.3 @@ -0,0 +1,105 @@ +.TH "moGenSolContinue" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moGenSolContinue \- One possible stop criterion for a solution-based heuristic. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoSolContinue< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoGenSolContinue\fP (unsigned int __maxNumGen)" +.br +.RI "\fISimple constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const EOT &__sol)" +.br +.RI "\fI\fBFunction\fP that activates the stop criterion. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIProcedure which allows to initialise the generation counter. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "unsigned int \fBmaxNumGen\fP" +.br +.RI "\fIIteration maximum number. \fP" +.ti -1c +.RI "unsigned int \fBnumGen\fP" +.br +.RI "\fIIteration current number. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moGenSolContinue< EOT >" +One possible stop criterion for a solution-based heuristic. + +The stop criterion corresponds to a maximum number of iteration. +.PP +Definition at line 21 of file moGenSolContinue.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoGenSolContinue\fP< EOT >::\fBmoGenSolContinue\fP (unsigned int __maxNumGen)\fC [inline]\fP" +.PP +Simple constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__maxNumGen\fP the maximum number of generation. +.RE +.PP + +.PP +Definition at line 30 of file moGenSolContinue.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoGenSolContinue\fP< EOT >::operator() (const EOT & __sol)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP that activates the stop criterion. +.PP +Increments the counter and returns TRUE if the current number of iteration is lower than the given maximum number of iterations. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP the current solution. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE or FALSE according to the current generation number. +.RE +.PP + +.PP +Implements \fBeoUF< const EOT &, bool >\fP. +.PP +Definition at line 44 of file moGenSolContinue.h. +.PP +References moGenSolContinue< EOT >::maxNumGen, and moGenSolContinue< EOT >::numGen. +.SS "template void \fBmoGenSolContinue\fP< EOT >::init ()\fC [inline, virtual]\fP" +.PP +Procedure which allows to initialise the generation counter. +.PP +It can also be used to reset the iteration counter. +.PP +Implements \fBmoSolContinue< EOT >\fP. +.PP +Definition at line 54 of file moGenSolContinue.h. +.PP +References moGenSolContinue< EOT >::numGen. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moHC.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moHC.3 new file mode 100644 index 000000000..dc3a15d1d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moHC.3 @@ -0,0 +1,132 @@ +.TH "moHC" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moHC \- Hill Climbing (HC). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAlgo< M::EOType >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoHC\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoMoveSelect\fP< M > &__move_select, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.br +.RI "\fIFull constructor. \fP" +.ti -1c +.RI "\fBmoHC\fP (\fBmoMoveExpl\fP< M > &__move_expl, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.br +.RI "\fILight constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" +.br +.RI "\fI\fBFunction\fP which launches the HC. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef EOT::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveExpl\fP< M > & \fBmove_expl\fP" +.br +.RI "\fIComplete exploration of the neighborhood. \fP" +.ti -1c +.RI "\fBeoEvalFunc\fP< \fBEOT\fP > & \fBfull_eval\fP" +.br +.RI "\fIA full evaluation function. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moHC< M >" +Hill Climbing (HC). + +Class which describes the algorithm for a hill climbing. +.PP +Definition at line 26 of file moHC.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoMoveSelect\fP< M > & __move_select, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Full constructor. +.PP +All the boxes are given in order the HC to use a \fBmoHCMoveLoopExpl\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP a move initialiser. +.br +\fI__next_move\fP a neighborhood explorer. +.br +\fI__incr_eval\fP a (generally) efficient evaluation function. +.br +\fI__move_select\fP a move selector. +.br +\fI__full_eval\fP a full evaluation function. +.RE +.PP + +.PP +Definition at line 53 of file moHC.h. +.SS "template \fBmoHC\fP< M >::\fBmoHC\fP (\fBmoMoveExpl\fP< M > & __move_expl, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Light constructor. +.PP +This constructor allow to use another \fBmoMoveExpl\fP (generally not a \fBmoHCMoveLoopExpl\fP). +.PP +\fBParameters:\fP +.RS 4 +\fI__move_expl\fP a complete explorer. +.br +\fI__full_eval\fP a full evaluation function. +.RE +.PP + +.PP +Definition at line 67 of file moHC.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoHC\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP which launches the HC. +.PP +The HC has to improve a current solution. As the \fBmoSA\fP and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP a current solution to improve. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Implements \fBeoUF< M::EOType &, bool >\fP. +.PP +Definition at line 82 of file moHC.h. +.PP +References moHC< M >::full_eval, and moHC< M >::move_expl. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moHCMoveLoopExpl.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moHCMoveLoopExpl.3 new file mode 100644 index 000000000..72f274978 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moHCMoveLoopExpl.3 @@ -0,0 +1,113 @@ +.TH "moHCMoveLoopExpl" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moHCMoveLoopExpl \- Iterative explorer used by a \fBmoHC\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveLoopExpl< M >< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoHCMoveLoopExpl\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoMoveSelect\fP< M > &__move_select)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (const \fBEOT\fP &__old_sol, \fBEOT\fP &__new_sol)" +.br +.RI "\fIProcedure which launches the explorer. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveInit\fP< M > & \fBmove_init\fP" +.br +.RI "\fIMove initialiser. \fP" +.ti -1c +.RI "\fBmoNextMove\fP< M > & \fBnext_move\fP" +.br +.RI "\fINeighborhood explorer. \fP" +.ti -1c +.RI "\fBmoMoveIncrEval\fP< M > & \fBincr_eval\fP" +.br +.RI "\fI(generally) Efficient evaluation. \fP" +.ti -1c +.RI "\fBmoMoveSelect\fP< M > & \fBmove_select\fP" +.br +.RI "\fIMove selector. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moHCMoveLoopExpl< M >" +Iterative explorer used by a \fBmoHC\fP. +.PP +Definition at line 23 of file moHCMoveLoopExpl.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoHCMoveLoopExpl\fP< M >::\fBmoHCMoveLoopExpl\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoMoveSelect\fP< M > & __move_select)\fC [inline]\fP" +.PP +Constructor. +.PP +All the boxes have to be specified. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP the move initialiser. +.br +\fI__next_move\fP the neighborhood explorer. +.br +\fI__incr_eval\fP (generally) efficient evaluation function. +.br +\fI__move_select\fP the move selector. +.RE +.PP + +.PP +Definition at line 43 of file moHCMoveLoopExpl.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoHCMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline, virtual]\fP" +.PP +Procedure which launches the explorer. +.PP +The exploration starts from an old solution and provides a new solution. +.PP +\fBParameters:\fP +.RS 4 +\fI__old_sol\fP the current solution. +.br +\fI__new_sol\fP the new_sol (result of the procedure). +.RE +.PP + +.PP +Implements \fBeoBF< const M::EOType &, M::EOType &, void >\fP. +.PP +Definition at line 59 of file moHCMoveLoopExpl.h. +.PP +References moHCMoveLoopExpl< M >::incr_eval, moHCMoveLoopExpl< M >::move_init, moHCMoveLoopExpl< M >::move_select, and moHCMoveLoopExpl< M >::next_move. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moImprBestFitAspirCrit.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moImprBestFitAspirCrit.3 new file mode 100644 index 000000000..5afe1b749 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moImprBestFitAspirCrit.3 @@ -0,0 +1,88 @@ +.TH "moImprBestFitAspirCrit" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moImprBestFitAspirCrit \- One of the possible \fBmoAspirCrit\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAspirCrit< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoImprBestFitAspirCrit\fP ()" +.br +.RI "\fIContructor. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIInitialisation procedure. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const M &__move, const \fBFitness\fP &__fit)" +.br +.RI "\fI\fBFunction\fP that indicates if the fit is better that the already saved fit. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBFitness\fP \fBbest_fit\fP" +.br +.RI "\fIBest fitness found until now. \fP" +.ti -1c +.RI "bool \fBfirst_time\fP" +.br +.RI "\fIIndicates that a fitness has been already saved or not. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moImprBestFitAspirCrit< M >" +One of the possible \fBmoAspirCrit\fP. + +This criterion is satisfied when a given fitness is the best ever considered. +.PP +Definition at line 22 of file moImprBestFitAspirCrit.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoImprBestFitAspirCrit\fP< M >::operator() (const M & __move, const \fBFitness\fP & __fit)\fC [inline]\fP" +.PP +\fBFunction\fP that indicates if the fit is better that the already saved fit. +.PP +The first time, the function only saved the current move and fitness. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__fit\fP a fitnes linked to the move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE the first time and if __fit > best_fit, else FALSE. +.RE +.PP + +.PP +Definition at line 52 of file moImprBestFitAspirCrit.h. +.PP +References moImprBestFitAspirCrit< M >::best_fit, and moImprBestFitAspirCrit< M >::first_time. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moItRandNextMove.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moItRandNextMove.3 new file mode 100644 index 000000000..9ee8040e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moItRandNextMove.3 @@ -0,0 +1,106 @@ +.TH "moItRandNextMove" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moItRandNextMove \- One of the possible \fBmoNextMove\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoNextMove< M >< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoItRandNextMove\fP (\fBmoRandMove\fP< M > &__rand_move, unsigned int __max_iter)" +.br +.RI "\fIThe constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (M &__move, const \fBEOT\fP &__sol)" +.br +.RI "\fIGeneration of a new move. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoRandMove\fP< M > & \fBrand_move\fP" +.br +.RI "\fIA move generator (generally randomly). \fP" +.ti -1c +.RI "unsigned int \fBmax_iter\fP" +.br +.RI "\fIIteration maximum number. \fP" +.ti -1c +.RI "unsigned int \fBnum_iter\fP" +.br +.RI "\fIIteration current number. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moItRandNextMove< M >" +One of the possible \fBmoNextMove\fP. + +This class is a move (\fBmoMove\fP) generator with a bound for the maximum number of iterations. +.PP +Definition at line 22 of file moItRandNextMove.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoItRandNextMove\fP< M >::\fBmoItRandNextMove\fP (\fBmoRandMove\fP< M > & __rand_move, unsigned int __max_iter)\fC [inline]\fP" +.PP +The constructor. +.PP +\fBParameters\fP only for initialising the attributes. +.PP +\fBParameters:\fP +.RS 4 +\fI__rand_move\fP the random move generator. +.br +\fI__max_iter\fP the iteration maximum number. +.RE +.PP + +.PP +Definition at line 37 of file moItRandNextMove.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoItRandNextMove\fP< M >::operator() (M & __move, const \fBEOT\fP & __sol)\fC [inline]\fP" +.PP +Generation of a new move. +.PP +If the maximum number is not already reached, the current move is forgotten and remplaced by another one. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the current move. +.br +\fI__sol\fP the current solution. +.RE +.PP +\fBReturns:\fP +.RS 4 +FALSE if the maximum number of iteration is reached, else TRUE. +.RE +.PP + +.PP +Definition at line 52 of file moItRandNextMove.h. +.PP +References moItRandNextMove< M >::max_iter, moItRandNextMove< M >::num_iter, and moItRandNextMove< M >::rand_move. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moLSCheckPoint.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moLSCheckPoint.3 new file mode 100644 index 000000000..35057d316 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moLSCheckPoint.3 @@ -0,0 +1,83 @@ +.TH "moLSCheckPoint" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moLSCheckPoint \- Class which allows a checkpointing system. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, void >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (const M &__move, const typename M::EOType &__sol)" +.br +.RI "\fI\fBFunction\fP which launches the checkpointing. \fP" +.ti -1c +.RI "void \fBadd\fP (\fBeoBF\fP< const M &, const typename M::EOType &, void > &__f)" +.br +.RI "\fIProcedure which add a new function to the function vector. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBeoBF\fP< const M &, const typename M::EOType &, void > * > \fBfunc\fP" +.br +.RI "\fIvector of function \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moLSCheckPoint< M >" +Class which allows a checkpointing system. + +Thanks to this class, at each iteration, additionnal function can be used (and not only one). +.PP +Definition at line 21 of file moLSCheckPoint.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoLSCheckPoint\fP< M >::operator() (const M & __move, const typename M::EOType & __sol)\fC [inline]\fP" +.PP +\fBFunction\fP which launches the checkpointing. +.PP +Each saved function is used on the current move and the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__sol\fP a solution. +.RE +.PP + +.PP +Definition at line 34 of file moLSCheckPoint.h. +.PP +References moLSCheckPoint< M >::func. +.SS "template void \fBmoLSCheckPoint\fP< M >::add (\fBeoBF\fP< const M &, const typename M::EOType &, void > & __f)\fC [inline]\fP" +.PP +Procedure which add a new function to the function vector. +.PP +The new function is added at the end of the vector. +.PP +\fBParameters:\fP +.RS 4 +\fI__f\fP a new function to add. +.RE +.PP + +.PP +Definition at line 49 of file moLSCheckPoint.h. +.PP +References moLSCheckPoint< M >::func. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moLinearCoolingSchedule.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moLinearCoolingSchedule.3 new file mode 100644 index 000000000..690323095 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moLinearCoolingSchedule.3 @@ -0,0 +1,90 @@ +.TH "moLinearCoolingSchedule" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moLinearCoolingSchedule \- One of the possible \fBmoCoolingSchedule\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoCoolingSchedule\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoLinearCoolingSchedule\fP (double __threshold, double __quantity)" +.br +.RI "\fISimple constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (double &__temp)" +.br +.RI "\fI\fBFunction\fP which proceeds to the cooling. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBthreshold\fP" +.br +.RI "\fIThe temperature threhold. \fP" +.ti -1c +.RI "double \fBquantity\fP" +.br +.RI "\fIThe quantity that allows the temperature to decrease. \fP" +.in -1c +.SH "Detailed Description" +.PP +One of the possible \fBmoCoolingSchedule\fP. + +An another very simple cooling schedule, the temperature decrease according to a quantity while the temperature is greater than a threshold. +.PP +Definition at line 22 of file moLinearCoolingSchedule.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "moLinearCoolingSchedule::moLinearCoolingSchedule (double __threshold, double __quantity)\fC [inline]\fP" +.PP +Simple constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__threshold\fP the threshold. +.br +\fI__quantity\fP the quantity used to descrease the temperature. +.RE +.PP + +.PP +Definition at line 31 of file moLinearCoolingSchedule.h. +.SH "Member Function Documentation" +.PP +.SS "bool moLinearCoolingSchedule::operator() (double & __temp)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP which proceeds to the cooling. +.PP +It decreases the temperature and indicates if it is greater than the threshold. +.PP +\fBParameters:\fP +.RS 4 +\fI__temp\fP the current temperature. +.RE +.PP +\fBReturns:\fP +.RS 4 +if the new temperature (current temperature - quantity) is greater than the threshold. +.RE +.PP + +.PP +Implements \fBeoUF< double &, bool >\fP. +.PP +Definition at line 41 of file moLinearCoolingSchedule.h. +.PP +References quantity, and threshold. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMove.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMove.3 new file mode 100644 index 000000000..5badf3f88 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMove.3 @@ -0,0 +1,35 @@ +.TH "moMove" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMove \- Definition of a move. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< EOT &, void >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef EOT \fBEOType\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moMove< EOT >" +Definition of a move. + +A move transforms a solution to another close solution. It describes how a solution can be modified to another one. +.PP +Definition at line 23 of file moMove.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveExpl.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveExpl.3 new file mode 100644 index 000000000..ecd0ce321 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveExpl.3 @@ -0,0 +1,29 @@ +.TH "moMoveExpl" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveExpl \- Description of a move (\fBmoMove\fP) explorer. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< const M::EOType &, M::EOType &, void >\fP. +.PP +Inherited by \fBmoMoveLoopExpl< M >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveExpl< M >" +Description of a move (\fBmoMove\fP) explorer. + +Only a description...See \fBmoMoveLoopExpl\fP. +.PP +Definition at line 21 of file moMoveExpl.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveIncrEval.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveIncrEval.3 new file mode 100644 index 000000000..4cf88cab3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveIncrEval.3 @@ -0,0 +1,27 @@ +.TH "moMoveIncrEval" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveIncrEval \- (generally) Efficient evaluation function based a move and a solution. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, M::EOType::Fitness >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveIncrEval< M >" +(generally) Efficient evaluation function based a move and a solution. + +From a move and a solution, it computes a new fitness that could be associated to the solution if this one is updated. +.PP +Definition at line 24 of file moMoveIncrEval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveInit.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveInit.3 new file mode 100644 index 000000000..d8373783a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveInit.3 @@ -0,0 +1,27 @@ +.TH "moMoveInit" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveInit \- Move (\fBmoMove\fP) initializer. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const M &, M::EOType &, void >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveInit< M >" +Move (\fBmoMove\fP) initializer. + +Class which allows to initiase a move. Only a description... An object that herits from this class needs to be designed to be used. +.PP +Definition at line 22 of file moMoveInit.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveLoopExpl.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveLoopExpl.3 new file mode 100644 index 000000000..f9002b1f4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveLoopExpl.3 @@ -0,0 +1,29 @@ +.TH "moMoveLoopExpl" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveLoopExpl \- Class which describes an iterative explorer. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveExpl< M >< M >\fP. +.PP +Inherited by \fBmoHCMoveLoopExpl< M >\fP, and \fBmoTSMoveLoopExpl< M >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moMoveLoopExpl< M >" +Class which describes an iterative explorer. + +Only a description... \fBmoHCMoveLoopExpl\fP and \fBmoTSMoveLoopExpl\fP are exemples of class that are a \fBmoMoveLoopExpl\fP. +.PP +Definition at line 21 of file moMoveLoopExpl.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveSelect.3 new file mode 100644 index 000000000..8d330d181 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moMoveSelect.3 @@ -0,0 +1,84 @@ +.TH "moMoveSelect" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moMoveSelect \- Class that describes a move selector (\fBmoMove\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< M &, M::EOType::Fitness &, void >\fP. +.PP +Inherited by \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP (const \fBFitness\fP &__fit)=0" +.br +.RI "\fIProcedure which initialises all that the move selector needs including the initial fitness. \fP" +.ti -1c +.RI "virtual bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)=0" +.br +.RI "\fI\fBFunction\fP which updates the best solutions. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moMoveSelect< M >" +Class that describes a move selector (\fBmoMove\fP). + +It iteratively considers some moves (\fBmoMove\fP) and their associated fitnesses. The best move is so regularly updated. At any time, it could be accessed. +.PP +Definition at line 32 of file moMoveSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoMoveSelect\fP< M >::init (const \fBFitness\fP & __fit)\fC [pure virtual]\fP" +.PP +Procedure which initialises all that the move selector needs including the initial fitness. +.PP +In order to know the fitness of the solution, for which the neighborhood will be soon explored +.PP +\fBParameters:\fP +.RS 4 +\fI__fit\fP the current fitness. +.RE +.PP + +.PP +Implemented in \fBmoBestImprSelect< M >\fP, \fBmoFirstImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. +.SS "template virtual bool \fBmoMoveSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [pure virtual]\fP" +.PP +\fBFunction\fP which updates the best solutions. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new move. +.br +\fI__fit\fP a fitness linked to the new move. +.RE +.PP +\fBReturns:\fP +.RS 4 +a boolean that expresses the need to resume the exploration. +.RE +.PP + +.PP +Implemented in \fBmoBestImprSelect< M >\fP, and \fBmoRandImprSelect< M >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moNextMove.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moNextMove.3 new file mode 100644 index 000000000..df4e2ba03 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moNextMove.3 @@ -0,0 +1,29 @@ +.TH "moNextMove" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moNextMove \- Class which allows to generate a new move (\fBmoMove\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const M &, M::EOType &, bool >\fP. +.PP +Inherited by \fBmoItRandNextMove< M >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moNextMove< M >" +Class which allows to generate a new move (\fBmoMove\fP). + +Useful for the explorer (for \fBmoTS\fP or \fBmoHC\fP). Does nothing... An object that herits from this class needs to be designed for being used. +.PP +Definition at line 22 of file moNextMove.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moNoAspirCrit.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moNoAspirCrit.3 new file mode 100644 index 000000000..be03a8e17 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moNoAspirCrit.3 @@ -0,0 +1,71 @@ +.TH "moNoAspirCrit" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moNoAspirCrit \- One of the possible aspiration criterion (\fBmoAspirCrit\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAspirCrit< M >< M >\fP. +.PP +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "bool \fBoperator()\fP (const M &__move, const typename M::EOType::Fitness &__sol)" +.br +.RI "\fI\fBFunction\fP which describes the aspiration criterion behaviour. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIProcedure which initialises all that needs a \fBmoNoAspirCrit\fP. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moNoAspirCrit< M >" +One of the possible aspiration criterion (\fBmoAspirCrit\fP). + +The simplest : never satisfied. +.PP +Definition at line 21 of file moNoAspirCrit.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoNoAspirCrit\fP< M >::operator() (const M & __move, const typename M::EOType::Fitness & __sol)\fC [inline, private]\fP" +.PP +\fBFunction\fP which describes the aspiration criterion behaviour. +.PP +Does nothing. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a move. +.br +\fI__sol\fP a fitness. +.RE +.PP +\fBReturns:\fP +.RS 4 +FALSE. +.RE +.PP + +.PP +Definition at line 32 of file moNoAspirCrit.h. +.SS "template void \fBmoNoAspirCrit\fP< M >::init ()\fC [inline, private, virtual]\fP" +.PP +Procedure which initialises all that needs a \fBmoNoAspirCrit\fP. +.PP +Nothing... +.PP +Implements \fBmoAspirCrit< M >\fP. +.PP +Definition at line 43 of file moNoAspirCrit.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moRandImprSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moRandImprSelect.3 new file mode 100644 index 000000000..2b1478122 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moRandImprSelect.3 @@ -0,0 +1,137 @@ +.TH "moRandImprSelect" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moRandImprSelect \- One of the possible \fBmoMove\fP selector (\fBmoMoveSelect\fP). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveSelect< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBinit\fP (const \fBFitness\fP &__fit)" +.br +.RI "\fIProcedure which all that needs a \fBmoRandImprSelect\fP. \fP" +.ti -1c +.RI "bool \fBupdate\fP (const M &__move, const \fBFitness\fP &__fit)" +.br +.RI "\fI\fBFunction\fP that updates the fitness and move vectors. \fP" +.ti -1c +.RI "void \fBoperator()\fP (M &__move, \fBFitness\fP &__fit) throw (EmptySelection)" +.br +.RI "\fIThe move selection. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBFitness\fP \fBinit_fit\fP" +.br +.RI "\fIFitness of the current solution. \fP" +.ti -1c +.RI "std::vector< \fBFitness\fP > \fBvect_better_fit\fP" +.br +.RI "\fICandidate fitnesse vector. \fP" +.ti -1c +.RI "std::vector< M > \fBvect_better_moves\fP" +.br +.RI "\fICandidate move vector. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moRandImprSelect< M >" +One of the possible \fBmoMove\fP selector (\fBmoMoveSelect\fP). + +All the neighbors are considered. One of them that enables an improvment of the objective function is choosen. +.PP +Definition at line 25 of file moRandImprSelect.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoRandImprSelect\fP< M >::init (const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +Procedure which all that needs a \fBmoRandImprSelect\fP. +.PP +Give a value to the initialise fitness. Clean the move and fitness vectors. +.PP +\fBParameters:\fP +.RS 4 +\fI__fit\fP the current best fitness +.RE +.PP + +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 40 of file moRandImprSelect.h. +.PP +References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +.SS "template bool \fBmoRandImprSelect\fP< M >::update (const M & __move, const \fBFitness\fP & __fit)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP that updates the fitness and move vectors. +.PP +if a move give a better fitness than the initial fitness, it is saved and the fitness too. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new move. +.br +\fI__fit\fP a new fitness associated to the new move. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Implements \fBmoMoveSelect< M >\fP. +.PP +Definition at line 56 of file moRandImprSelect.h. +.PP +References moRandImprSelect< M >::init_fit, moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. +.SS "template void \fBmoRandImprSelect\fP< M >::operator() (M & __move, \fBFitness\fP & __fit) throw (\fBEmptySelection\fP)\fC [inline, virtual]\fP" +.PP +The move selection. +.PP +One the saved move is randomly chosen. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP the reference of the move that can be initialised by the function. +.br +\fI__fit\fP the reference of the fitness that can be initialised by the function. +.RE +.PP +\fBExceptions:\fP +.RS 4 +\fI\fBEmptySelection\fP\fP If no move which improves the current fitness are found. +.RE +.PP + +.PP +Implements \fBeoBF< M &, M::EOType::Fitness &, void >\fP. +.PP +Definition at line 77 of file moRandImprSelect.h. +.PP +References eoRng::random(), moRandImprSelect< M >::vect_better_fit, and moRandImprSelect< M >::vect_better_moves. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moRandMove.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moRandMove.3 new file mode 100644 index 000000000..5841293a5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moRandMove.3 @@ -0,0 +1,27 @@ +.TH "moRandMove" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moRandMove \- Random move generator. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< M &, void >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moRandMove< M >" +Random move generator. + +Only a description... An object that herits from this class needs to be designed in order to use a \fBmoSA\fP. +.PP +Definition at line 21 of file moRandMove.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSA.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSA.3 new file mode 100644 index 000000000..8370d6380 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSA.3 @@ -0,0 +1,130 @@ +.TH "moSA" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moSA \- Simulated Annealing (SA). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAlgo< M::EOType >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoSA\fP (\fBmoRandMove\fP< M > &__move_rand, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, double __init_temp, \fBmoCoolingSchedule\fP &__cool_sched, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.br +.RI "\fISA constructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" +.br +.RI "\fIfunction that launches the SA algorithm. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef EOT::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoRandMove\fP< M > & \fBmove_rand\fP" +.br +.RI "\fIA move generator (generally randomly). \fP" +.ti -1c +.RI "\fBmoMoveIncrEval\fP< M > & \fBincr_eval\fP" +.br +.RI "\fIA (generally) efficient evaluation function. \fP" +.ti -1c +.RI "\fBmoSolContinue\fP< \fBEOT\fP > & \fBcont\fP" +.br +.RI "\fIStopping criterion before temperature update. \fP" +.ti -1c +.RI "double \fBinit_temp\fP" +.br +.RI "\fIInitial temperature. \fP" +.ti -1c +.RI "\fBmoCoolingSchedule\fP & \fBcool_sched\fP" +.br +.RI "\fIThe cooling schedule. \fP" +.ti -1c +.RI "\fBeoEvalFunc\fP< \fBEOT\fP > & \fBfull_eval\fP" +.br +.RI "\fIA full evaluation function. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moSA< M >" +Simulated Annealing (SA). + +Class that describes a Simulated Annealing algorithm. +.PP +Definition at line 30 of file moSA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoSA\fP< M >::\fBmoSA\fP (\fBmoRandMove\fP< M > & __move_rand, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, double __init_temp, \fBmoCoolingSchedule\fP & __cool_sched, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +SA constructor. +.PP +All the boxes used by a SA need to be given. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_rand\fP a move generator (generally randomly). +.br +\fI__incr_eval\fP a (generaly) efficient evaluation function +.br +\fI__cont\fP a stopping criterion. +.br +\fI__init_temp\fP the initial temperature. +.br +\fI__cool_sched\fP a cooling schedule, describes how the temperature is modified. +.br +\fI__full_eval\fP a full evaluation function. +.RE +.PP + +.PP +Definition at line 58 of file moSA.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoSA\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.PP +function that launches the SA algorithm. +.PP +As a \fBmoTS\fP or a \fBmoHC\fP, the SA can be used for HYBRIDATION in an evolutionary algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP a solution to improve. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Implements \fBeoUF< M::EOType &, bool >\fP. +.PP +Definition at line 80 of file moSA.h. +.PP +References moSA< M >::cont, moSA< M >::cool_sched, moSA< M >::full_eval, moSA< M >::incr_eval, moSA< M >::init_temp, moSA< M >::move_rand, and eoRng::uniform(). + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSimpleMoveTabuList.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSimpleMoveTabuList.3 new file mode 100644 index 000000000..90020e3fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSimpleMoveTabuList.3 @@ -0,0 +1,158 @@ +.TH "moSimpleMoveTabuList" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moSimpleMoveTabuList \- Class describing a move tabu list with a limited memory. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoTabuList< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoSimpleMoveTabuList\fP (unsigned int __size)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const M &__move, const \fBEOT\fP &__sol)" +.br +.RI "\fI\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. \fP" +.ti -1c +.RI "void \fBadd\fP (const M &__move, const \fBEOT\fP &__sol)" +.br +.RI "\fIProcedure to add a move in the tabu list. \fP" +.ti -1c +.RI "void \fBupdate\fP ()" +.br +.RI "\fIProcedure that updates the tabu list content. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIProcedure which initialises the tabu list. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBremoveMove\fP (const M &__move)" +.br +.RI "\fIProcedure that removes a given move from the tabu list (if it is into, else do nothing). \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "unsigned int \fBmaxSize\fP" +.br +.RI "\fIThe maximum size of the tabu list. \fP" +.ti -1c +.RI "unsigned int \fBcurrentSize\fP" +.br +.RI "\fIThe current size of the tabu list. \fP" +.ti -1c +.RI "std::list< M > \fBtabuList\fP" +.br +.RI "\fIThe move tabu list. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moSimpleMoveTabuList< M >" +Class describing a move tabu list with a limited memory. +.PP +Definition at line 22 of file moSimpleMoveTabuList.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoSimpleMoveTabuList\fP< M >::operator() (const M & __move, const \fBEOT\fP & __sol)\fC [inline]\fP" +.PP +\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP A given \fBmoMove\fP. +.br +\fI__sol\fP A solution. +.RE +.PP +\fBReturns:\fP +.RS 4 +true or false. +.RE +.PP + +.PP +Definition at line 46 of file moSimpleMoveTabuList.h. +.PP +References moSimpleMoveTabuList< M >::tabuList. +.SS "template void \fBmoSimpleMoveTabuList\fP< M >::add (const M & __move, const \fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.PP +Procedure to add a move in the tabu list. +.PP +The two parameters have not to be modified so they are constant parameters. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new tabu move. +.br +\fI__sol\fP the origianl solution associated to this move. +.RE +.PP + +.PP +Implements \fBmoTabuList< M >\fP. +.PP +Definition at line 60 of file moSimpleMoveTabuList.h. +.PP +References moSimpleMoveTabuList< M >::currentSize, moSimpleMoveTabuList< M >::maxSize, moSimpleMoveTabuList< M >::removeMove(), and moSimpleMoveTabuList< M >::tabuList. +.SS "template void \fBmoSimpleMoveTabuList\fP< M >::update ()\fC [inline, virtual]\fP" +.PP +Procedure that updates the tabu list content. +.PP +Generally, a counter associated to each saved move is decreased by one. +.PP +Implements \fBmoTabuList< M >\fP. +.PP +Definition at line 82 of file moSimpleMoveTabuList.h. +.SS "template void \fBmoSimpleMoveTabuList\fP< M >::init ()\fC [inline, virtual]\fP" +.PP +Procedure which initialises the tabu list. +.PP +Can be useful if the data structure needs to be allocated before being used. +.PP +Implements \fBmoTabuList< M >\fP. +.PP +Definition at line 88 of file moSimpleMoveTabuList.h. +.SS "template void \fBmoSimpleMoveTabuList\fP< M >::removeMove (const M & __move)\fC [inline, private]\fP" +.PP +Procedure that removes a given move from the tabu list (if it is into, else do nothing). +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP A given \fBmoMove\fP. +.RE +.PP + +.PP +Definition at line 100 of file moSimpleMoveTabuList.h. +.PP +References moSimpleMoveTabuList< M >::tabuList. +.PP +Referenced by moSimpleMoveTabuList< M >::add(). + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSimpleSolutionTabuList.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSimpleSolutionTabuList.3 new file mode 100644 index 000000000..c81448eca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSimpleSolutionTabuList.3 @@ -0,0 +1,174 @@ +.TH "moSimpleSolutionTabuList" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moSimpleSolutionTabuList \- Class describing a solution tabu list with limited length. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoTabuList< M >< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoSimpleSolutionTabuList\fP (unsigned int __size)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const M &__move, const \fBEOT\fP &__sol)" +.br +.RI "\fI\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. \fP" +.ti -1c +.RI "void \fBadd\fP (const M &__move, const \fBEOT\fP &__sol)" +.br +.RI "\fIProcedure to add a move in the tabu list. \fP" +.ti -1c +.RI "void \fBupdate\fP ()" +.br +.RI "\fIProcedure that updates the tabu list content. \fP" +.ti -1c +.RI "void \fBinit\fP ()" +.br +.RI "\fIProcedure which initialises the tabu list. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBremoveSolution\fP (const \fBEOT\fP &__sol)" +.br +.RI "\fIProcedure that removes a given solution from the tabu list (if it is into, else does nothing). \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "unsigned int \fBmaxSize\fP" +.br +.RI "\fIThe maximum size of the tabu list. \fP" +.ti -1c +.RI "unsigned int \fBcurrentSize\fP" +.br +.RI "\fIThe current size of the tabu list. \fP" +.ti -1c +.RI "std::list< \fBEOT\fP > \fBtabuList\fP" +.br +.RI "\fIThe solution tabu list. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moSimpleSolutionTabuList< M >" +Class describing a solution tabu list with limited length. +.PP +Definition at line 22 of file moSimpleSolutionTabuList.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoSimpleSolutionTabuList\fP< M >::\fBmoSimpleSolutionTabuList\fP (unsigned int __size)\fC [inline]\fP" +.PP +Constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__size\fP The maximum size of the solution tabu list. +.RE +.PP + +.PP +Definition at line 34 of file moSimpleSolutionTabuList.h. +.PP +References moSimpleSolutionTabuList< M >::currentSize. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoSimpleSolutionTabuList\fP< M >::operator() (const M & __move, const \fBEOT\fP & __sol)\fC [inline]\fP" +.PP +\fBFunction\fP that indicates if, in a given state, the _move is tabu or not. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP A given \fBmoMove\fP. +.br +\fI__sol\fP A solution. +.RE +.PP +\fBReturns:\fP +.RS 4 +true or false. +.RE +.PP + +.PP +Definition at line 45 of file moSimpleSolutionTabuList.h. +.PP +References moSimpleSolutionTabuList< M >::tabuList. +.SS "template void \fBmoSimpleSolutionTabuList\fP< M >::add (const M & __move, const \fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.PP +Procedure to add a move in the tabu list. +.PP +The two parameters have not to be modified so they are constant parameters. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new tabu move. +.br +\fI__sol\fP the origianl solution associated to this move. +.RE +.PP + +.PP +Implements \fBmoTabuList< M >\fP. +.PP +Definition at line 64 of file moSimpleSolutionTabuList.h. +.PP +References moSimpleSolutionTabuList< M >::currentSize, moSimpleSolutionTabuList< M >::maxSize, moSimpleSolutionTabuList< M >::removeSolution(), and moSimpleSolutionTabuList< M >::tabuList. +.SS "template void \fBmoSimpleSolutionTabuList\fP< M >::update ()\fC [inline, virtual]\fP" +.PP +Procedure that updates the tabu list content. +.PP +Generally, a counter associated to each saved move is decreased by one. +.PP +Implements \fBmoTabuList< M >\fP. +.PP +Definition at line 91 of file moSimpleSolutionTabuList.h. +.SS "template void \fBmoSimpleSolutionTabuList\fP< M >::init ()\fC [inline, virtual]\fP" +.PP +Procedure which initialises the tabu list. +.PP +Can be useful if the data structure needs to be allocated before being used. +.PP +Implements \fBmoTabuList< M >\fP. +.PP +Definition at line 97 of file moSimpleSolutionTabuList.h. +.SS "template void \fBmoSimpleSolutionTabuList\fP< M >::removeSolution (const \fBEOT\fP & __sol)\fC [inline, private]\fP" +.PP +Procedure that removes a given solution from the tabu list (if it is into, else does nothing). +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP A given solution. +.RE +.PP + +.PP +Definition at line 109 of file moSimpleSolutionTabuList.h. +.PP +References moSimpleSolutionTabuList< M >::tabuList. +.PP +Referenced by moSimpleSolutionTabuList< M >::add(). + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSolContinue.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSolContinue.3 new file mode 100644 index 000000000..685bb7b7d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moSolContinue.3 @@ -0,0 +1,46 @@ +.TH "moSolContinue" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moSolContinue \- Class that describes a stop criterion for a solution-based heuristic. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< const EOT &, bool >\fP. +.PP +Inherited by \fBmoGenSolContinue< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBinit\fP ()=0" +.br +.RI "\fIProcedure which initialises all that the stop criterion needs. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moSolContinue< EOT >" +Class that describes a stop criterion for a solution-based heuristic. + +It allows to add an initialisation procedure to an object that is a unary function (\fBeoUF\fP). +.PP +Definition at line 22 of file moSolContinue.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoSolContinue\fP< EOT >::init ()\fC [pure virtual]\fP" +.PP +Procedure which initialises all that the stop criterion needs. +.PP +Generally, it allocates some data structures or initialises some counters. +.PP +Implemented in \fBmoGenSolContinue< EOT >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTS.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTS.3 new file mode 100644 index 000000000..725a4c776 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTS.3 @@ -0,0 +1,142 @@ +.TH "moTS" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moTS \- Tabu Search (TS). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoAlgo< M::EOType >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoTS\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoTabuList\fP< M > &__tabu_list, \fBmoAspirCrit\fP< M > &__aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.br +.RI "\fIConstructor of a \fBmoTS\fP specifying all the boxes. \fP" +.ti -1c +.RI "\fBmoTS\fP (\fBmoMoveExpl\fP< M > &__move_expl, \fBmoSolContinue\fP< \fBEOT\fP > &__cont, \fBeoEvalFunc\fP< \fBEOT\fP > &__full_eval)" +.br +.RI "\fIConstructor with less parameters. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (\fBEOT\fP &__sol)" +.br +.RI "\fI\fBFunction\fP which launchs the Tabu Search. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef EOT::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveExpl\fP< M > & \fBmove_expl\fP" +.br +.RI "\fINeighborhood explorer. \fP" +.ti -1c +.RI "\fBmoSolContinue\fP< \fBEOT\fP > & \fBcont\fP" +.br +.RI "\fIStop criterion. \fP" +.ti -1c +.RI "\fBeoEvalFunc\fP< \fBEOT\fP > & \fBfull_eval\fP" +.br +.RI "\fIFull evaluation function. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moTS< M >" +Tabu Search (TS). + +Generic algorithm that describes a tabu search. +.PP +Definition at line 29 of file moTS.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoTabuList\fP< M > & __tabu_list, \fBmoAspirCrit\fP< M > & __aspir_crit, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Constructor of a \fBmoTS\fP specifying all the boxes. +.PP +In this constructor, a \fBmoTSMoveLoopExpl\fP is instanciated. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP move initialisation +.br +\fI__next_move\fP neighborhood explorer +.br +\fI__incr_eval\fP efficient evaluation +.br +\fI__tabu_list\fP tabu list +.br +\fI__aspir_crit\fP aspiration criterion +.br +\fI__cont\fP stop criterion +.br +\fI__full_eval\fP full evaluation function +.RE +.PP + +.PP +Definition at line 58 of file moTS.h. +.SS "template \fBmoTS\fP< M >::\fBmoTS\fP (\fBmoMoveExpl\fP< M > & __move_expl, \fBmoSolContinue\fP< \fBEOT\fP > & __cont, \fBeoEvalFunc\fP< \fBEOT\fP > & __full_eval)\fC [inline]\fP" +.PP +Constructor with less parameters. +.PP +The explorer is given in the parameters. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_expl\fP the explorer (generally different that a \fBmoTSMoveLoopExpl\fP) +.br +\fI__cont\fP stop criterion +.br +\fI__full_eval\fP full evaluation function +.RE +.PP + +.PP +Definition at line 71 of file moTS.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoTS\fP< M >::operator() (\fBEOT\fP & __sol)\fC [inline, virtual]\fP" +.PP +\fBFunction\fP which launchs the Tabu Search. +.PP +Algorithm of the tabu search. As a \fBmoSA\fP or a \fBmoHC\fP, it can be used for HYBRIDATION in an evolutionary algorithm. For security a lock (pthread_mutex_t) is closed during the algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fI__sol\fP a solution to improve. +.RE +.PP +\fBReturns:\fP +.RS 4 +TRUE. +.RE +.PP + +.PP +Implements \fBeoUF< M::EOType &, bool >\fP. +.PP +Definition at line 85 of file moTS.h. +.PP +References moTS< M >::cont, moTS< M >::full_eval, and moTS< M >::move_expl. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTSMoveLoopExpl.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTSMoveLoopExpl.3 new file mode 100644 index 000000000..961597d11 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTSMoveLoopExpl.3 @@ -0,0 +1,125 @@ +.TH "moTSMoveLoopExpl" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moTSMoveLoopExpl \- Explorer for a Tabu Search algorithm. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoMoveLoopExpl< M >< M >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoTSMoveLoopExpl\fP (\fBmoMoveInit\fP< M > &__move_init, \fBmoNextMove\fP< M > &__next_move, \fBmoMoveIncrEval\fP< M > &__incr_eval, \fBmoTabuList\fP< M > &__tabu_list, \fBmoAspirCrit\fP< M > &__aspir_crit)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (const \fBEOT\fP &__old_sol, \fBEOT\fP &__new_sol)" +.br +.RI "\fIProcedure which lauches the exploration. \fP" +.in -1c +.SS "Private Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.ti -1c +.RI "typedef M::EOType::Fitness \fBFitness\fP" +.br +.RI "\fIAlias for the fitness. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoMoveInit\fP< M > & \fBmove_init\fP" +.br +.RI "\fIMove initialisation. \fP" +.ti -1c +.RI "\fBmoNextMove\fP< M > & \fBnext_move\fP" +.br +.RI "\fINeighborhood explorer. \fP" +.ti -1c +.RI "\fBmoMoveIncrEval\fP< M > & \fBincr_eval\fP" +.br +.RI "\fIEfficient evaluation. \fP" +.ti -1c +.RI "\fBmoBestImprSelect\fP< M > \fBmove_select\fP" +.br +.RI "\fIMove selector. \fP" +.ti -1c +.RI "\fBmoTabuList\fP< M > & \fBtabu_list\fP" +.br +.RI "\fITabu list. \fP" +.ti -1c +.RI "\fBmoAspirCrit\fP< M > & \fBaspir_crit\fP" +.br +.RI "\fIAspiration criterion. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moTSMoveLoopExpl< M >" +Explorer for a Tabu Search algorithm. + +It is used by a \fBmoTS\fP. +.PP +Definition at line 30 of file moTSMoveLoopExpl.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoTSMoveLoopExpl\fP< M >::\fBmoTSMoveLoopExpl\fP (\fBmoMoveInit\fP< M > & __move_init, \fBmoNextMove\fP< M > & __next_move, \fBmoMoveIncrEval\fP< M > & __incr_eval, \fBmoTabuList\fP< M > & __tabu_list, \fBmoAspirCrit\fP< M > & __aspir_crit)\fC [inline]\fP" +.PP +Constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI__move_init\fP move initialisation +.br +\fI__next_move\fP neighborhood explorer +.br +\fI__incr_eval\fP efficient evaluation +.br +\fI__tabu_list\fP tabu list +.br +\fI__aspir_crit\fP aspiration criterion +.RE +.PP + +.PP +Definition at line 49 of file moTSMoveLoopExpl.h. +.PP +References moTSMoveLoopExpl< M >::aspir_crit, and moTSMoveLoopExpl< M >::tabu_list. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoTSMoveLoopExpl\fP< M >::operator() (const \fBEOT\fP & __old_sol, \fBEOT\fP & __new_sol)\fC [inline, virtual]\fP" +.PP +Procedure which lauches the exploration. +.PP +The exploration continues while the chosen move is not in the tabu list or the aspiration criterion is true. If these 2 conditions are not true, the exploration stops if the move selector update function returns false. +.PP +\fBParameters:\fP +.RS 4 +\fI__old_sol\fP the initial solution +.br +\fI__new_sol\fP the new solution +.RE +.PP + +.PP +Implements \fBeoBF< const M::EOType &, M::EOType &, void >\fP. +.PP +Definition at line 69 of file moTSMoveLoopExpl.h. +.PP +References moTSMoveLoopExpl< M >::aspir_crit, moTSMoveLoopExpl< M >::incr_eval, moTSMoveLoopExpl< M >::move_init, moTSMoveLoopExpl< M >::move_select, moTSMoveLoopExpl< M >::next_move, and moTSMoveLoopExpl< M >::tabu_list. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTabuList.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTabuList.3 new file mode 100644 index 000000000..8e56844ac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/man/man3/moTabuList.3 @@ -0,0 +1,85 @@ +.TH "moTabuList" 3 "5 Jul 2007" "Version 0.1" "PARADISEO-MO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moTabuList \- Class describing a tabu list that a \fBmoTS\fP uses. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const M &, M::EOType &, bool >\fP. +.PP +Inherited by \fBmoSimpleMoveTabuList< M >\fP, and \fBmoSimpleSolutionTabuList< M >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef M::EOType \fBEOT\fP" +.br +.RI "\fIAlias for the type. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBadd\fP (const M &__move, const \fBEOT\fP &__sol)=0" +.br +.RI "\fIProcedure to add a move in the tabu list. \fP" +.ti -1c +.RI "virtual void \fBupdate\fP ()=0" +.br +.RI "\fIProcedure that updates the tabu list content. \fP" +.ti -1c +.RI "virtual void \fBinit\fP ()=0" +.br +.RI "\fIProcedure which initialises the tabu list. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moTabuList< M >" +Class describing a tabu list that a \fBmoTS\fP uses. + +It is only a description, does nothing... A new object that herits from this class has to be defined in order to be used in a \fBmoTS\fP. +.PP +Definition at line 22 of file moTabuList.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoTabuList\fP< M >::add (const M & __move, const \fBEOT\fP & __sol)\fC [pure virtual]\fP" +.PP +Procedure to add a move in the tabu list. +.PP +The two parameters have not to be modified so they are constant parameters. +.PP +\fBParameters:\fP +.RS 4 +\fI__move\fP a new tabu move. +.br +\fI__sol\fP the origianl solution associated to this move. +.RE +.PP + +.PP +Implemented in \fBmoSimpleMoveTabuList< M >\fP, and \fBmoSimpleSolutionTabuList< M >\fP. +.SS "template virtual void \fBmoTabuList\fP< M >::update ()\fC [pure virtual]\fP" +.PP +Procedure that updates the tabu list content. +.PP +Generally, a counter associated to each saved move is decreased by one. +.PP +Implemented in \fBmoSimpleMoveTabuList< M >\fP, and \fBmoSimpleSolutionTabuList< M >\fP. +.SS "template virtual void \fBmoTabuList\fP< M >::init ()\fC [pure virtual]\fP" +.PP +Procedure which initialises the tabu list. +.PP +Can be useful if the data structure needs to be allocated before being used. +.PP +Implemented in \fBmoSimpleMoveTabuList< M >\fP, and \fBmoSimpleSolutionTabuList< M >\fP. + +.SH "Author" +.PP +Generated automatically by Doxygen for PARADISEO-MO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/mo.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/mo.doxyfile new file mode 100644 index 000000000..9c63e3962 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/doc/mo.doxyfile @@ -0,0 +1,1268 @@ +# Doxyfile 1.5.2 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file that +# follow. The default is UTF-8 which is also the encoding used for all text before +# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into +# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of +# possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = PARADISEO-MO + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 0.1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, +# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, +# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, +# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = YES + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = YES + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../src/ + +# This tag can be used to specify the character encoding of the source files that +# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default +# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. +# See http://www.gnu.org/software/libiconv for the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.cpp \ + *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the output. +# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, +# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 3 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = mo + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = YES + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = YES + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = ../../paradiseo-eo/doc/eo.doxytag=../../../paradiseo-eo/doc/html + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = mo.doxytag + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to +# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to +# specify the directory where the mscgen tool resides. If left empty the tool is assumed to +# be found in the default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a caller dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen will always +# show the root nodes and its direct children regardless of this setting. + +DOT_GRAPH_MAX_NODES = 50 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/mo-conf.cmake b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/mo-conf.cmake new file mode 100755 index 000000000..af8513804 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/mo-conf.cmake @@ -0,0 +1,33 @@ + +###################################################################################### +###################################################################################### +### In this file, you can specify many CMake variables used to build paradisEO-MO. +### For example, if you don't want ot give the EO path each time on the command line, +### uncomment the line the "SET(EO_DIR...)" and set your path. +### The section numbers are the same as those used in the CMakeLists.txt file. +###################################################################################### +###################################################################################### + + +###################################################################################### +### 3) OPTIONNAL - Overwrite default paths +###################################################################################### + +# SET(MO_DIR "" CACHE PATH "ParadisEO-MO main directory") +# SET(EO_DIR "" CACHE PATH "ParadisEO-EO main directory") + +# SET(EO_SRC_DIR "") +# SET(MO_SRC_DIR "") +# SET(MO_DOC_DIR "") + +###################################################################################### + + +##################################################################################### +### 5) OPTIONNAL - Overwrite subdirs +###################################################################################### + +# SUBDIRS(doc tutorial) + +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/index.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/index.h new file mode 100644 index 000000000..10ac58f88 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/index.h @@ -0,0 +1,26 @@ +/** @mainpage Welcome to PARADISEO-Moving Objects + +@section intro Introduction + +MO is an extension of the ANSI-C++ compliant evolutionary computation library EO. +
+It contains classes for almost any kind of one solution based heuristics. + +@section tutorial Tutorial + + +@section install Installation + +The installation procedure of the package is detailed in the +README file in the top-directory of the source-tree. + +@section design Overall Design + +*/ + + +// coding: iso-8859-1 +// mode: C++ +// c-file-style: "Stroustrup" +// fill-column: 80 +// End: diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/mo b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/mo new file mode 100755 index 000000000..81c9fea9f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/mo @@ -0,0 +1,6 @@ +#ifndef __mo +#define __mo + +#include "mo.h" + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/mo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/mo.h new file mode 100755 index 000000000..58476ce6b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/mo.h @@ -0,0 +1,46 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "mo.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __mo_h +#define __mo_h + +#include "moAlgo.h" +#include "moAspirCrit.h" +#include "moBestImprSelect.h" +#include "moCoolingSchedule.h" +#include "moExponentialCoolingSchedule.h" +#include "moFirstImprSelect.h" +#include "moGenSolContinue.h" +#include "moHC.h" +#include "moHCMoveLoopExpl.h" +#include "moImprBestFitAspirCrit.h" +#include "moItRandNextMove.h" +#include "moLinearCoolingSchedule.h" +#include "moLSCheckPoint.h" +#include "moMoveExpl.h" +#include "moMove.h" +#include "moMoveIncrEval.h" +#include "moMoveInit.h" +#include "moMoveLoopExpl.h" +#include "moMoveSelect.h" +#include "moNextMove.h" +#include "moNoAspirCrit.h" +#include "moRandImprSelect.h" +#include "moRandMove.h" +#include "moSA.h" +#include "moSimpleMoveTabuList.h" +#include "moSimpleSolutionTabuList.h" +#include "moSolContinue.h" +#include "moTabuList.h" +#include "moTS.h" +#include "moTSMoveLoopExpl.h" + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moAlgo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moAlgo.h new file mode 100755 index 000000000..42bd849a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moAlgo.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moAlgo.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moAlgo_h +#define __moAlgo_h + +#include + +//! Description of an algorithm of the paradiseo-mo library +/*! + moHC, moTS and moSA are 3 examples of algorithm of the paradiseo-mo library. + */ +template < class EOT > class moAlgo:public eoMonOp < EOT > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moAspirCrit.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moAspirCrit.h new file mode 100755 index 000000000..99c92727b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moAspirCrit.h @@ -0,0 +1,37 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moAspirCrit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moAspirCrit_h +#define __moAspirCrit_h + +#include + +//! Description of the conditions in which a tabu move could be accepted +/*! + It is only a description... An object that herits from this class is needed to be used in a moTS. + See moNoAspriCrit for example. + */ +template < class M > class moAspirCrit:public eoBF < const M &, const typename + M::EOType::Fitness &, + bool > +{ + +public: + //! Procedure which initialises all that needs a aspiration criterion. + /*! + It can be possible that this procedure do nothing... + */ + virtual void + init () = 0; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moBestImprSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moBestImprSelect.h new file mode 100755 index 000000000..30c846236 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moBestImprSelect.h @@ -0,0 +1,93 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moBestImprSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moBestImprSelect_h +#define __moBestImprSelect_h + +#include "moMoveSelect.h" + +//! One of the possible moMoveSelect. +/*! + All neighbors are considered, and the movement + which enables the best improvement is selected. +*/ +template < class M > class moBestImprSelect:public moMoveSelect < M > +{ + +public: + + //! Alias for the fitness. + typedef typename M::EOType::Fitness Fitness; + + //! Procedure which initialise the exploration + void init (const Fitness & __fit) + { + + first_time = true; + } + + + //!Function that indicates if the current move has not improved the fitness. + /*! + If the given fitness enables an improvment, + the move (moMove) and the fitness linked to this move are saved. + + \param __move a move. + \param __fit a fitness linked to the move. + \return TRUE if the move does not improve the fitness. + */ + bool update (const M & __move, const Fitness & __fit) + { + + if (first_time || __fit > best_fit) + { + + best_fit = __fit; + best_move = __move; + + first_time = false; + } + + return true; + } + + //! Procedure which saved the best move and fitness. + /*! + \param __move the current move (result of the procedure). + \param __fit the current fitness (result of the procedure). + \throws EmptySelection if no move has improved the fitness. + */ + void operator () (M & __move, Fitness & __fit) throw (EmptySelection) + { + + if (!first_time) + { + __move = best_move; + __fit = best_fit; + } + else + throw EmptySelection (); + } + +private: + + //! Allowing to know if at least one move has been generated. + bool first_time; + + //! The best move. + M best_move; + + //! The best fitness. + Fitness best_fit; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moCoolingSchedule.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moCoolingSchedule.h new file mode 100644 index 000000000..c73b25c01 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moCoolingSchedule.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moCoolingSchedule.h" + +// (c) OPAC Team, LIFL, 2003-2007 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moCoolingSchedule_h +#define __moCoolingSchedule_h + +#include + +//! This class gives the description of a cooling schedule. +/*! + It is only a description... An object that herits from this class is needed to be used in a moSA. + See moExponentialCoolingSchedule or moLinearCoolingSchedule for example. +*/ +class moCoolingSchedule:public eoUF < double &, bool > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moExponentialCoolingSchedule.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moExponentialCoolingSchedule.h new file mode 100644 index 000000000..e67614951 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moExponentialCoolingSchedule.h @@ -0,0 +1,55 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moExponentialCoolingSchedule.h" + +// (c) OPAC Team, LIFL, 2003-2007 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moExponentialCoolingSchedule_h +#define __moExponentialCoolingSchedule_h + +#include "moCoolingSchedule.h" + +//! One of the possible moCoolingSchedule +/*! + An other very simple cooling schedule, the temperature decrease according to a ratio while + the temperature is greater than a given threshold. + */ +class moExponentialCoolingSchedule: public moCoolingSchedule +{ + +public: + //! Simple constructor + /*! + \param __threshold the threshold. + \param __ratio the ratio used to descrease the temperature. + */ + moExponentialCoolingSchedule (double __threshold, double __ratio):threshold (__threshold), ratio (__ratio) + {} + + //! Function which proceeds to the cooling. + /*! + It decreases the temperature and indicates if it is greater than the threshold. + + \param __temp the current temperature. + \return if the new temperature (current temperature * ratio) is greater than the threshold. + */ + bool operator() (double &__temp) + { + return (__temp *= ratio) > threshold; + } + +private: + + //! The temperature threhold. + double threshold; + + //! The decreasing factor of the temperature. + double ratio; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moFirstImprSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moFirstImprSelect.h new file mode 100755 index 000000000..6656d5a95 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moFirstImprSelect.h @@ -0,0 +1,104 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moFirstImprSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moFirstImprSelect_h +#define __moFirstImprSelect_h + +#include "moMoveSelect.h" + +//! One possible moMoveSelect. +/*! + The neighborhood is explored until + a move enables an improvment of the + current solution. +*/ +template < class M > class moFirstImprSelect:public moMoveSelect < M > +{ + +public: + + //! Alias for the fitness. + typedef typename M::EOType::Fitness Fitness; + + //! Procedure which initialise the exploration. + /*! + It save the current fitness as the initial value for the fitness. + */ + virtual void init (const Fitness & __fit) + { + + valid = false; + init_fit = __fit; + } + + + //!Function that indicates if the current move has not improved the fitness. + /*! + If the given fitness enables an improvment, + the move (moMove) should be applied to the current solution. + + \param __move a move. + \param __fit a fitness linked to the move. + \return TRUE if the move does not improve the fitness. + */ + bool update (const M & __move, const typename M::EOType::Fitness & __fit) + { + + if (__fit > init_fit) + { + + best_fit = __fit; + best_move = __move; + valid = true; + + return false; + } + else + { + return true; + } + } + + //! Procedure which saved the best move and fitness. + /*! + \param __move the current move (result of the procedure). + \param __fit the current fitness (result of the procedure). + \throws EmptySelection if no move has improved the fitness. + */ + void operator () (M & __move, Fitness & __fit) throw (EmptySelection) + { + + if (valid) + { + __move = best_move; + __fit = best_fit; + } + else + throw EmptySelection (); + } + +private: + + //! Allow to know if at least one move has improved the solution. + bool valid; + + //! Best stored movement. + M best_move; + + //! Initial fitness. + Fitness init_fit; + + //! Best stored fitness. + Fitness best_fit; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moGenSolContinue.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moGenSolContinue.h new file mode 100755 index 000000000..2bd8ba4e5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moGenSolContinue.h @@ -0,0 +1,69 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoGenSolContinue.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moGenSolContinue_h +#define __moGenSolContinue_h + +#include "moSolContinue.h" + +//! One possible stop criterion for a solution-based heuristic. +/*! + The stop criterion corresponds to a maximum number of iteration. + */ +template < class EOT > class moGenSolContinue:public moSolContinue < EOT > +{ + +public: + + //! Simple constructor. + /*! + \param __maxNumGen the maximum number of generation. + */ + moGenSolContinue (unsigned int __maxNumGen):maxNumGen (__maxNumGen), numGen (0) + { + + } + + //! Function that activates the stop criterion. + /*! + Increments the counter and returns TRUE if the + current number of iteration is lower than the given + maximum number of iterations. + + \param __sol the current solution. + \return TRUE or FALSE according to the current generation number. + */ + bool operator () (const EOT & __sol) + { + + return (++numGen < maxNumGen); + } + + //! Procedure which allows to initialise the generation counter. + /*! + It can also be used to reset the iteration counter. + */ + void init () + { + + numGen = 0; + } + +private: + + //! Iteration maximum number. + unsigned int maxNumGen; + + //! Iteration current number. + unsigned int numGen; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moHC.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moHC.h new file mode 100755 index 000000000..30d82ed00 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moHC.h @@ -0,0 +1,133 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moHC.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moHC_h +#define __moHC_h + +#include +#include + +#include "moAlgo.h" +#include "moMoveExpl.h" +#include "moHCMoveLoopExpl.h" + +//! Hill Climbing (HC) +/*! + Class which describes the algorithm for a hill climbing. + */ +template < class M > class moHC:public moAlgo < typename M::EOType > +{ + + //! Alias for the type. + typedef + typename + M::EOType + EOT; + + //! Alias for the fitness. + typedef + typename + EOT::Fitness + Fitness; + +public: + + //! Full constructor. + /*! + All the boxes are given in order the HC to use a moHCMoveLoopExpl. + + \param __move_init a move initialiser. + \param __next_move a neighborhood explorer. + \param __incr_eval a (generally) efficient evaluation function. + \param __move_select a move selector. + \param __full_eval a full evaluation function. + */ +moHC (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select, eoEvalFunc < EOT > &__full_eval):move_expl (*new moHCMoveLoopExpl < M > + (__move_init, __next_move, __incr_eval, __move_select)), + full_eval (__full_eval) + { + + } + + //! Light constructor. + /*! + This constructor allow to use another moMoveExpl (generally not a moHCMoveLoopExpl). + + \param __move_expl a complete explorer. + \param __full_eval a full evaluation function. + */ +moHC (moMoveExpl < M > &__move_expl, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl), + full_eval + (__full_eval) + { + + } + + //! Function which launches the HC + /*! + The HC has to improve a current solution. + As the moSA and the mo TS, it can be used for HYBRIDATION in an evolutionnary algorithm. + + \param __sol a current solution to improve. + \return TRUE. + */ + bool operator ()(EOT & __sol) + { + + if (__sol.invalid ()) + { + full_eval (__sol); + } + + EOT new_sol; + + do + { + + new_sol = __sol; + + try + { + + move_expl (__sol, new_sol); + + } + catch (EmptySelection & __ex) + { + + break; + } + + if (new_sol.fitness () > __sol.fitness ()) + { + __sol = new_sol; + } + else + { + break; + } + + } + while (true); + + return true; + } + +private: + + //! Complete exploration of the neighborhood. + moMoveExpl < M > &move_expl; + + //! A full evaluation function. + eoEvalFunc < EOT > &full_eval; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moHCMoveLoopExpl.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moHCMoveLoopExpl.h new file mode 100755 index 000000000..f9ff78bea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moHCMoveLoopExpl.h @@ -0,0 +1,108 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moHCMoveLoopExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moHCMoveLoopExpl_h +#define __moHCMoveLoopExpl_h + +#include "moMoveLoopExpl.h" + +#include "moMoveInit.h" +#include "moNextMove.h" +#include "moMoveIncrEval.h" +#include "moMoveSelect.h" + +//! Iterative explorer used by a moHC. +template < class M > class moHCMoveLoopExpl:public moMoveLoopExpl < M > +{ + + //! Alias for the type. + typedef typename M::EOType EOT; + + //! Alias for the fitness. + typedef typename M::EOType::Fitness Fitness; + +public: + + //! Constructor. + /*! + All the boxes have to be specified. + + \param __move_init the move initialiser. + \param __next_move the neighborhood explorer. + \param __incr_eval (generally) efficient evaluation function. + \param __move_select the move selector. + */ +moHCMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moMoveSelect < M > &__move_select): + + move_init (__move_init), + next_move (__next_move), + incr_eval (__incr_eval), move_select (__move_select) + { + + } + + //! Procedure which launches the explorer. + /*! + The exploration starts from an old solution and provides a new solution. + + \param __old_sol the current solution. + \param __new_sol the new_sol (result of the procedure). + */ + void operator () (const EOT & __old_sol, EOT & __new_sol) + { + + M move; + + // + move_init (move, __old_sol); /* Restarting the exploration of + of the neighborhood ! */ + + move_select.init (__old_sol.fitness ()); + + while (move_select.update (move, incr_eval (move, __old_sol)) + && next_move (move, __old_sol)); + + try + { + + M best_move; + + Fitness best_move_fit; + + move_select (best_move, best_move_fit); + __new_sol.fitness (best_move_fit); + best_move (__new_sol); + + } + catch (EmptySelection & __ex) + { + + // ? + } + } + +private: + + //! Move initialiser. + moMoveInit < M > &move_init; + + //! Neighborhood explorer. + moNextMove < M > &next_move; + + //! (generally) Efficient evaluation. + moMoveIncrEval < M > &incr_eval; + + //! Move selector. + moMoveSelect < M > &move_select; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moImprBestFitAspirCrit.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moImprBestFitAspirCrit.h new file mode 100755 index 000000000..d0cf06486 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moImprBestFitAspirCrit.h @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moImprAspirCrit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moImprBestFitAspirCrit_h +#define __moImprBestFitAspirCrit_h + +#include "moAspirCrit.h" + +//! One of the possible moAspirCrit +/*! + This criterion is satisfied when a given fitness + is the best ever considered. +*/ +template < class M > class moImprBestFitAspirCrit:public moAspirCrit < M > +{ + +public: + + //! Alias for the fitness + typedef typename M::EOType::Fitness Fitness; + + //! Contructor + moImprBestFitAspirCrit () + { + + first_time = true; + } + + //! Initialisation procedure + void init () + { + + first_time = true; + } + + //! Function that indicates if the fit is better that the already saved fit + /*! + The first time, the function only saved the current move and fitness. + + \param __move a move. + \param __fit a fitnes linked to the move. + \return TRUE the first time and if __fit > best_fit, else FALSE. + */ + bool operator () (const M & __move, const Fitness & __fit) + { + + if (first_time) + { + + best_fit = __fit; + first_time = false; + + return true; + } + else if (__fit < best_fit) + return false; + + else + { + + best_fit = __fit; + + return true; + } + } + +private: + + //! Best fitness found until now + Fitness best_fit; + + //! Indicates that a fitness has been already saved or not + bool first_time; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moItRandNextMove.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moItRandNextMove.h new file mode 100755 index 000000000..ceacc061a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moItRandNextMove.h @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moNextMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moItRandNextMove_h +#define __moItRandNextMove_h + +#include "moNextMove.h" +#include "moRandMove.h" + +//! One of the possible moNextMove. +/*! + This class is a move (moMove) generator with a bound for the maximum number of iterations. +*/ +template < class M > class moItRandNextMove:public moNextMove < M > +{ + + //! Alias for the type. + typedef typename M::EOType EOT; + +public: + + //! The constructor. + /*! + Parameters only for initialising the attributes. + + \param __rand_move the random move generator. + \param __max_iter the iteration maximum number. + */ + moItRandNextMove (moRandMove < M > &__rand_move, + unsigned int __max_iter):rand_move (__rand_move), + max_iter (__max_iter), num_iter (0) + { + + } + + //! Generation of a new move + /*! + If the maximum number is not already reached, the current move is forgotten and remplaced by another one. + + \param __move the current move. + \param __sol the current solution. + \return FALSE if the maximum number of iteration is reached, else TRUE. + */ + bool operator () (M & __move, const EOT & __sol) + { + + if (num_iter++ > max_iter) + { + + num_iter = 0; + return false; + } + else + { + + /* The given solution is discarded here */ + rand_move (__move); + num_iter++; + return true; + } + } + +private: + + //! A move generator (generally randomly). + moRandMove < M > &rand_move; + + //! Iteration maximum number. + unsigned int max_iter; + + //! Iteration current number. + unsigned int num_iter; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moLSCheckPoint.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moLSCheckPoint.h new file mode 100755 index 000000000..097208a83 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moLSCheckPoint.h @@ -0,0 +1,66 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moLSCheckPoint.h" + +// (c) OPAC Team, LIFL, 2003 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSolUpdater_h +#define __moSolUpdater_h + +#include + +//! Class which allows a checkpointing system. +/*! + Thanks to this class, at each iteration, additionnal function can be used (and not only one). +*/ +template < class M > class moLSCheckPoint:public eoBF < const M &, const typename + M::EOType &, void > +{ + +public: + //! Function which launches the checkpointing + /*! + Each saved function is used on the current move and the current solution. + + \param __move a move. + \param __sol a solution. + */ + void + operator () (const M & __move, const typename M::EOType & __sol) + { + + for (unsigned int i = 0; i < func.size (); i++) + { + func[i]->operator ()(__move, __sol); + } + } + + //! Procedure which add a new function to the function vector + /*! + The new function is added at the end of the vector. + \param __f a new function to add. + */ + void + add (eoBF < const M &, const typename M::EOType &, void >&__f) + { + + func.push_back (&__f); + } + +private: + + //! vector of function + std::vector < eoBF < const + M &, const + typename + M::EOType &, void >*> + func; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moLinearCoolingSchedule.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moLinearCoolingSchedule.h new file mode 100644 index 000000000..62d48c427 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moLinearCoolingSchedule.h @@ -0,0 +1,55 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moLinearCoolingSchedule.h" + +// (c) OPAC Team, LIFL, 2003-2007 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moLinearCoolingSchedule_h +#define __moLinearCoolingSchedule_h + +#include "moCoolingSchedule.h" + +//! One of the possible moCoolingSchedule +/*! + An another very simple cooling schedule, the temperature decrease according to a quantity while + the temperature is greater than a threshold. + */ +class moLinearCoolingSchedule: public moCoolingSchedule +{ + +public: + //! Simple constructor + /*! + \param __threshold the threshold. + \param __quantity the quantity used to descrease the temperature. + */ + moLinearCoolingSchedule (double __threshold, double __quantity):threshold (__threshold), quantity (__quantity) + {} + + //! Function which proceeds to the cooling. + /*! + It decreases the temperature and indicates if it is greater than the threshold. + + \param __temp the current temperature. + \return if the new temperature (current temperature - quantity) is greater than the threshold. + */ + bool operator() (double &__temp) + { + return (__temp -= quantity) > threshold; + } + +private: + + //! The temperature threhold. + double threshold; + + //! The quantity that allows the temperature to decrease. + double quantity; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMove.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMove.h new file mode 100755 index 000000000..5c7f41818 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMove.h @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMove_h +#define __moMove_h + +#include + +//! Definition of a move. + +/*! + A move transforms a solution to another close solution. + It describes how a solution can be modified to another one. +*/ +template < class EOT > class moMove:public eoUF < EOT &, void > +{ + +public: + //! Alias for the type + typedef EOT EOType; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveExpl.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveExpl.h new file mode 100755 index 000000000..0905e3186 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveExpl.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoMoveExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveExpl_h +#define __moMoveExpl_h + +#include + +//! Description of a move (moMove) explorer +/*! + Only a description...See moMoveLoopExpl. + */ +template < class M > class moMoveExpl:public eoBF < const typename + M::EOType &, + typename +M::EOType &, void > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveIncrEval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveIncrEval.h new file mode 100755 index 000000000..7dd633141 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveIncrEval.h @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoMoveIncrEval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveIncrEval_h +#define __moMoveIncrEval_h + +#include + +//! (generally) Efficient evaluation function based a move and a solution. + +/*! + From a move and a solution, it computes + a new fitness that could be associated to + the solution if this one is updated. +*/ +template < class M > class moMoveIncrEval:public eoBF < const M &, const typename + M::EOType &, + typename + M::EOType::Fitness > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveInit.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveInit.h new file mode 100755 index 000000000..dfba59661 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveInit.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMoveInit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveInit_h +#define __moMoveInit_h + +#include + +//! Move (moMove) initializer +/*! + Class which allows to initiase a move. + Only a description... An object that herits from this class needs to be designed to be used. + */ +template < class M > class moMoveInit:public eoBF < M &, const typename +M::EOType &, void > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveLoopExpl.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveLoopExpl.h new file mode 100755 index 000000000..5d35e8aac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveLoopExpl.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMoveLoopExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveLoopExpl_h +#define __moMoveLoopExpl_h + +#include "moMoveExpl.h" + +//! Class which describes an iterative explorer +/*! + Only a description... moHCMoveLoopExpl and moTSMoveLoopExpl are exemples of class that are a moMoveLoopExpl. + */ +template < class M > class moMoveLoopExpl:public moMoveExpl < M > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveSelect.h new file mode 100755 index 000000000..7595ba61d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moMoveSelect.h @@ -0,0 +1,65 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moMoveSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moMoveSelect_h +#define __moMoveSelect_h + +#include + +//! Special class that describes the case of no selection. +/*! + This class is used as an exception that can be thrown if a solution selector has completly failed. + */ +class EmptySelection +{ + +}; + +//! Class that describes a move selector (moMove). +/*! + It iteratively considers some moves (moMove) and their + associated fitnesses. The best move is so regularly updated. + At any time, it could be accessed. +*/ +template < class M > class moMoveSelect:public eoBF < M &, typename M::EOType::Fitness &, + void > +{ +public: + //! Alias for the fitness + typedef + typename + M::EOType::Fitness + Fitness; + + //! Procedure which initialises all that the move selector needs including the initial fitness. + /*! + In order to know the fitness of the solution, + for which the neighborhood will + be soon explored + + \param __fit the current fitness. + */ + virtual void + init (const Fitness & __fit) = 0; + + //! Function which updates the best solutions. + /*! + \param __move a new move. + \param __fit a fitness linked to the new move. + \return a boolean that expresses the need to resume the exploration. + */ + virtual + bool + update (const M & __move, const Fitness & __fit) = 0; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moNextMove.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moNextMove.h new file mode 100755 index 000000000..93748fe74 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moNextMove.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moNextMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moNextMove_h +#define __moNextMove_h + +#include + +//! Class which allows to generate a new move (moMove). +/*! + Useful for the explorer (for moTS or moHC). + Does nothing... An object that herits from this class needs to be designed for being used. + */ +template < class M > class moNextMove:public eoBF < M &, const typename + M::EOType &, + bool > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moNoAspirCrit.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moNoAspirCrit.h new file mode 100755 index 000000000..a5e499ccb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moNoAspirCrit.h @@ -0,0 +1,48 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "eoNoAspirCrit.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moNoAspirCrit_h +#define __moNoAspirCrit_h + +#include "moAspirCrit.h" + +//! One of the possible aspiration criterion (moAspirCrit) +/*! + The simplest : never satisfied. + */ +template < class M > class moNoAspirCrit:public moAspirCrit < M > +{ + + //! Function which describes the aspiration criterion behaviour + /*! + Does nothing. + + \param __move a move. + \param __sol a fitness. + \return FALSE. + */ + bool operator () (const M & __move, + const typename M::EOType::Fitness & __sol) + { + + return false; + } + + //! Procedure which initialises all that needs a moNoAspirCrit + /*! + Nothing... + */ + void init () + { + } +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moRandImprSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moRandImprSelect.h new file mode 100755 index 000000000..4d60e794a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moRandImprSelect.h @@ -0,0 +1,104 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moRandImprSelect.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moRandImprSelect_h +#define __moRandImprSelect_h + +#include + +#include +#include "moMoveSelect.h" + +//! One of the possible moMove selector (moMoveSelect) +/*! + All the neighbors are considered. + One of them that enables an improvment of the objective function is choosen. +*/ +template < class M > class moRandImprSelect:public moMoveSelect < M > +{ + +public: + + //! Alias for the fitness + typedef typename M::EOType::Fitness Fitness; + + //!Procedure which all that needs a moRandImprSelect + /*! + Give a value to the initialise fitness. + Clean the move and fitness vectors. + + \param __fit the current best fitness + */ + void init (const Fitness & __fit) + { + init_fit = __fit; + vect_better_fit.clear (); + vect_better_moves.clear (); + } + + //! Function that updates the fitness and move vectors + /*! + if a move give a better fitness than the initial fitness, + it is saved and the fitness too. + + \param __move a new move. + \param __fit a new fitness associated to the new move. + \return TRUE. + */ + bool update (const M & __move, const Fitness & __fit) + { + + if (__fit > init_fit) + { + + vect_better_fit.push_back (__fit); + vect_better_moves.push_back (__move); + } + + return true; + } + + //! The move selection + /*! + One the saved move is randomly chosen. + + \param __move the reference of the move that can be initialised by the function. + \param __fit the reference of the fitness that can be initialised by the function. + \throws EmptySelection If no move which improves the current fitness are found. + */ + void operator () (M & __move, Fitness & __fit) throw (EmptySelection) + { + + if (!vect_better_fit.empty ()) + { + + unsigned n = rng.random (vect_better_fit.size ()); + + __move = vect_better_moves[n]; + __fit = vect_better_fit[n]; + } + else + throw EmptySelection (); + } + +private: + + //! Fitness of the current solution. + Fitness init_fit; + + //! Candidate fitnesse vector. + std::vector < Fitness > vect_better_fit; + + //! Candidate move vector. + std::vector < M > vect_better_moves; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moRandMove.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moRandMove.h new file mode 100755 index 000000000..b17de3868 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moRandMove.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moRandMove.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moRandMove_h +#define __moRandMove_h + +#include + +//! Random move generator +/*! + Only a description... An object that herits from this class needs to be designed in order to use a moSA. + */ +template < class M > class moRandMove:public eoUF < M &, void > +{ + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSA.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSA.h new file mode 100755 index 000000000..97eaabf8e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSA.h @@ -0,0 +1,149 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moSA.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSA_h +#define __moSA_h + +#include +#include + +#include "moAlgo.h" +#include "moRandMove.h" +#include "moMoveIncrEval.h" +#include "moCoolingSchedule.h" +#include "moSolContinue.h" + +#include + +//! Simulated Annealing (SA) +/*! + Class that describes a Simulated Annealing algorithm. +*/ +template < class M > class moSA:public moAlgo < typename M::EOType > +{ + + //! Alias for the type + typedef + typename + M::EOType + EOT; + + //! Alias for the fitness + typedef + typename + EOT::Fitness + Fitness; + +public: + + //! SA constructor + /*! + All the boxes used by a SA need to be given. + + \param __move_rand a move generator (generally randomly). + \param __incr_eval a (generaly) efficient evaluation function + \param __cont a stopping criterion. + \param __init_temp the initial temperature. + \param __cool_sched a cooling schedule, describes how the temperature is modified. + \param __full_eval a full evaluation function. + */ + moSA (moRandMove < M > &__move_rand, + moMoveIncrEval < M > &__incr_eval, + moSolContinue < EOT > &__cont, + double __init_temp, + moCoolingSchedule & __cool_sched, eoEvalFunc < EOT > &__full_eval): + move_rand (__move_rand), + incr_eval (__incr_eval), + cont (__cont), + init_temp (__init_temp), + cool_sched (__cool_sched), + full_eval (__full_eval) + { + + } + + //! function that launches the SA algorithm. + /*! + As a moTS or a moHC, the SA can be used for HYBRIDATION in an evolutionary algorithm. + + \param __sol a solution to improve. + \return TRUE. + */ + bool operator ()(EOT & __sol) + { + + if (__sol.invalid ()) + { + full_eval (__sol); + } + + double temp = init_temp; + + M move; + + EOT best_sol = __sol; + + do + { + + cont.init (); + do + { + + move_rand (move); + + Fitness delta_fit = incr_eval (move, __sol) - __sol.fitness (); + + if (delta_fit > 0 || rng.uniform () < exp (delta_fit / temp)) + { + + __sol.fitness (incr_eval (move, __sol)); + move (__sol); + + /* Updating the best solution found + until now ? */ + if (__sol.fitness () > best_sol.fitness ()) + best_sol = __sol; + } + + } + while (cont (__sol)); + + } + while (cool_sched (temp)); + + __sol = best_sol; + + return true; + } + +private: + + //! A move generator (generally randomly) + moRandMove < M > &move_rand; + + //! A (generally) efficient evaluation function. + moMoveIncrEval < M > &incr_eval; + + //! Stopping criterion before temperature update + moSolContinue < EOT > &cont; + + //! Initial temperature + double init_temp; + + //! The cooling schedule + moCoolingSchedule & cool_sched; + + //! A full evaluation function. + eoEvalFunc < EOT > &full_eval; // Full evaluator. +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSimpleMoveTabuList.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSimpleMoveTabuList.h new file mode 100755 index 000000000..efa97fe5d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSimpleMoveTabuList.h @@ -0,0 +1,126 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moSimpleMoveTabuList.h" + +// (c) OPAC Team, LIFL, 2003-2007 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSimpleMoveTabuList_h +#define __moSimpleMoveTabuList_h + +#include +#include + +#include "moTabuList.h" + +//! Class describing a move tabu list with a limited memory. +template +class moSimpleMoveTabuList: public moTabuList < M > +{ + +public: + + //! Alias for the type + typedef typename M::EOType EOT; + + //! Constructor + /* + \param __size The maximum size of the move tabu list. + */ + moSimpleMoveTabuList(unsigned int __size): maxSize(__size) + { + currentSize=0; + } + + //! Function that indicates if, in a given state, the _move is tabu or not. + /*! + \param __move A given moMove. + \param __sol A solution. + \return true or false. + */ + bool + operator () (const M & __move, const EOT & __sol) + { + typename std::list::iterator it; + + it=tabuList.begin(); + while(it!=tabuList.end()&&(!((*it)==__move))) + { + it++; + } + + return it!=tabuList.end(); + } + + void + add (const M & __move, const EOT & __sol) + { + if(currentSize!=0) + { + // Useful in the case of a move has been kept thanks to the moAspirCrit. + // In this case, the move can already be in the tabuList. + removeMove(__move); + } + + tabuList.push_back(__move); + + if(currentSize==maxSize) + { + tabuList.erase(tabuList.begin()); + } + else + { + currentSize++; + } + } + + void + update () + { + //nothing to do + } + + void + init () + { + //nothing to do + } + +private: + + //! Procedure that removes a given move from the tabu list (if it is into, else do nothing). + /*! + \param __move A given moMove. + */ + void + removeMove(const M & __move) + { + typename std::list::iterator it; + + it=tabuList.begin(); + while(it!=tabuList.end()&&(!((*it)==__move))) + { + it++; + } + + if(it!=tabuList.end()) + { + tabuList.erase(it); + } + } + + //! The maximum size of the tabu list. + unsigned int maxSize; + + //! The current size of the tabu list. + unsigned int currentSize; + + //! The move tabu list. + std::list tabuList; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSimpleSolutionTabuList.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSimpleSolutionTabuList.h new file mode 100755 index 000000000..82d00b2fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSimpleSolutionTabuList.h @@ -0,0 +1,135 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moSimpleSolutionTabuList.h" + +// (c) OPAC Team, LIFL, 2003-2007 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSimpleSolutionTabuList_h +#define __moSimpleSolutionTabuList_h + +#include +#include + +#include "moTabuList.h" + +//! Class describing a solution tabu list with limited length. +template +class moSimpleSolutionTabuList: public moTabuList < M > +{ + +public: + + //! Alias for the type + typedef typename M::EOType EOT; + + //! Constructor + /*! + \param __size The maximum size of the solution tabu list. + */ + moSimpleSolutionTabuList(unsigned int __size): maxSize(__size) + { + currentSize=0; + } + + //! Function that indicates if, in a given state, the _move is tabu or not. + /*! + \param __move A given moMove. + \param __sol A solution. + \return true or false. + */ + bool operator () (const M & __move, const EOT & __sol) + { + typename std::list::iterator it; + + M _move=(M)__move; + EOT _sol=(EOT) __sol; + + _move(_sol); + + it=tabuList.begin(); + while(it!=tabuList.end()&&(!((*it)==_sol))) + { + it++; + } + + return it!=tabuList.end(); + } + + void + add (const M & __move, const EOT & __sol) + { + M _move=(M)__move; + EOT _sol=(EOT) _sol; + + _move(_sol); + + if(currentSize!=0) + { + // Useful in the case of a solution has been kept thanks to the moAspirCrit. + // In this case, the solution can already be in the tabuList. + removeSolution(_sol); + } + + tabuList.push_back(_sol); + + if(currentSize==maxSize) + { + tabuList.erase(tabuList.begin()); + } + else + { + currentSize++; + } + } + + void + update () + { + //nothing to do + } + + void + init () + { + //nothing to do + } + +private: + + //! Procedure that removes a given solution from the tabu list (if it is into, else does nothing). + /*! + \param __sol A given solution. + */ + void + removeSolution(const EOT & __sol) + { + typename std::list::iterator it; + + it=tabuList.begin(); + while(it!=tabuList.end()&&(!((*it)==__sol))) + { + it++; + } + + if(it!=tabuList.end()) + { + tabuList.erase(it); + } + } + + //! The maximum size of the tabu list. + unsigned int maxSize; + + //! The current size of the tabu list. + unsigned int currentSize; + + //! The solution tabu list. + std::list tabuList; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSolContinue.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSolContinue.h new file mode 100755 index 000000000..44efdd969 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moSolContinue.h @@ -0,0 +1,33 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moSolContinue.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moSolContinue_h +#define __moSolContinue_h + +#include + +//! Class that describes a stop criterion for a solution-based heuristic + +/*! + It allows to add an initialisation procedure to an object that is a unary function (eoUF). +*/ +template < class EOT > class moSolContinue:public eoUF < const EOT &, bool > +{ + +public: + //! Procedure which initialises all that the stop criterion needs + /*! + Generally, it allocates some data structures or initialises some counters. + */ + virtual void init () = 0; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTS.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTS.h new file mode 100755 index 000000000..8aa134d5d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTS.h @@ -0,0 +1,144 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moTS.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moTS_h +#define __moTS_h + +#include +#include + +#include "moAlgo.h" +#include "moSolContinue.h" + +#include "moMoveExpl.h" +#include "moTSMoveLoopExpl.h" + + +//! Tabu Search (TS) +/*! + Generic algorithm that describes a tabu search. + */ +template < class M > class moTS:public moAlgo < typename M::EOType > +{ + + //!Alias for the type + typedef + typename + M::EOType + EOT; + + //!Alias for the fitness + typedef + typename + EOT::Fitness + Fitness; + +public: + + //!Constructor of a moTS specifying all the boxes + /*! + In this constructor, a moTSMoveLoopExpl is instanciated. + + \param __move_init move initialisation + \param __next_move neighborhood explorer + \param __incr_eval efficient evaluation + \param __tabu_list tabu list + \param __aspir_crit aspiration criterion + \param __cont stop criterion + \param __full_eval full evaluation function + */ +moTS (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (*new moTSMoveLoopExpl < M > + (__move_init, __next_move, __incr_eval, __tabu_list, + __aspir_crit)), cont (__cont), full_eval (__full_eval) + {} + + //! Constructor with less parameters + /*! + The explorer is given in the parameters. + + \param __move_expl the explorer (generally different that a moTSMoveLoopExpl) + \param __cont stop criterion + \param __full_eval full evaluation function + */ +moTS (moMoveExpl < M > &__move_expl, moSolContinue < EOT > &__cont, eoEvalFunc < EOT > &__full_eval):move_expl (__move_expl), + cont (__cont), + full_eval (__full_eval) + {} + + //! Function which launchs the Tabu Search + /*! + Algorithm of the tabu search. + As a moSA or a moHC, it can be used for HYBRIDATION in an evolutionary algorithm. + For security a lock (pthread_mutex_t) is closed during the algorithm. + + \param __sol a solution to improve. + \return TRUE. + */ + bool operator ()(EOT & __sol) + { + if (__sol.invalid ()) + { + full_eval (__sol); + } + + M move; + + EOT best_sol = __sol, new_sol; + + cont.init (); + + do + { + + new_sol = __sol; + + try + { + + move_expl (__sol, new_sol); + + } + catch (EmptySelection & __ex) + { + + break; + } + + /* Updating the best solution + found until now ? */ + if (new_sol.fitness () > __sol.fitness ()) + { + best_sol = new_sol; + } + + __sol = new_sol; + + } + while (cont (__sol)); + + __sol = best_sol; + + return true; + } + +private: + + //! Neighborhood explorer + moMoveExpl < M > &move_expl; + + //! Stop criterion + moSolContinue < EOT > &cont; + + //! Full evaluation function + eoEvalFunc < EOT > &full_eval; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTSMoveLoopExpl.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTSMoveLoopExpl.h new file mode 100755 index 000000000..53ed30a74 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTSMoveLoopExpl.h @@ -0,0 +1,132 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moTSMoveLoopExpl.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moTSMoveLoopExpl_h +#define __moTSMoveLoopExpl_h + +#include "moMoveLoopExpl.h" + +#include "moMoveInit.h" +#include "moNextMove.h" +#include "moMoveIncrEval.h" +#include "moMoveSelect.h" + +#include "moTabuList.h" +#include "moAspirCrit.h" +#include "moBestImprSelect.h" + +//! Explorer for a Tabu Search algorithm +/*! + It is used by a moTS. + */ +template < class M > class moTSMoveLoopExpl:public moMoveLoopExpl < M > +{ + + //!Alias for the type + typedef typename M::EOType EOT; + + //!Alias for the fitness + typedef typename M::EOType::Fitness Fitness; + +public: + + //!Constructor + /*! + \param __move_init move initialisation + \param __next_move neighborhood explorer + \param __incr_eval efficient evaluation + \param __tabu_list tabu list + \param __aspir_crit aspiration criterion + */ +moTSMoveLoopExpl (moMoveInit < M > &__move_init, moNextMove < M > &__next_move, moMoveIncrEval < M > &__incr_eval, moTabuList < M > &__tabu_list, moAspirCrit < M > &__aspir_crit): + move_init (__move_init), + next_move (__next_move), + incr_eval (__incr_eval), + tabu_list (__tabu_list), aspir_crit (__aspir_crit) + { + + tabu_list.init (); + aspir_crit.init (); + } + + //!Procedure which lauches the exploration + /*! + The exploration continues while the chosen move is not in the tabu list + or the aspiration criterion is true. If these 2 conditions are not true, the + exploration stops if the move selector update function returns false. + + \param __old_sol the initial solution + \param __new_sol the new solution + */ + void operator () (const EOT & __old_sol, EOT & __new_sol) + { + + M move; + + + move_init (move, __old_sol); /* Restarting the exploration of + of the neighborhood ! */ + + move_select.init (__old_sol.fitness ()); + + do + { + + Fitness fit = incr_eval (move, __old_sol); + + if (!tabu_list (move, __old_sol) || aspir_crit (move, fit)) + { + if (!move_select.update (move, fit)) + break; + } + + } + while (next_move (move, __old_sol)); + + M best_move; + + Fitness best_move_fit; + + move_select (best_move, best_move_fit); + + __new_sol.fitness (best_move_fit); + best_move (__new_sol); + + /* Removing moves that are + no more tabu */ + tabu_list.update (); + + // Updating the tabu list + tabu_list.add (best_move, __new_sol); + } + +private: + + //!Move initialisation + moMoveInit < M > &move_init; + + //!Neighborhood explorer + moNextMove < M > &next_move; + + //!Efficient evaluation + moMoveIncrEval < M > &incr_eval; + + //!Move selector + moBestImprSelect < M > move_select; + + //!Tabu list + moTabuList < M > &tabu_list; + + //!Aspiration criterion + moAspirCrit < M > &aspir_crit; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTabuList.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTabuList.h new file mode 100755 index 000000000..de550cce9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/src/moTabuList.h @@ -0,0 +1,56 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "moTabuList.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __moTabuList_h +#define __moTabuList_h + +#include + +//! Class describing a tabu list that a moTS uses. +/*! + It is only a description, does nothing... A new object that herits from this class has to be defined in order + to be used in a moTS. + */ +template < class M > class moTabuList:public eoBF < const M &, const typename + M::EOType &, + bool > +{ + +public: + //! Alias for the type + typedef typename M::EOType EOT; + + //! Procedure to add a move in the tabu list + /*! + The two parameters have not to be modified so they are constant parameters. + + \param __move a new tabu move. + \param __sol the origianl solution associated to this move. + */ + virtual void + add (const M & __move, const EOT & __sol) = 0; + + //! Procedure that updates the tabu list content. + /*! + Generally, a counter associated to each saved move is decreased by one. + */ + virtual void + update () = 0; + + //! Procedure which initialises the tabu list. + /*! + Can be useful if the data structure needs to be allocated before being used. + */ + virtual void + init () = 0; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/CMakeLists.txt new file mode 100644 index 000000000..0bc6daac1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/CMakeLists.txt @@ -0,0 +1,17 @@ + +###################################################################################### +### 1) Definitions (required for tsp target) +###################################################################################### + +SET(TSP_SRC_DIR ${ParadisEO-MO_SOURCE_DIR}/tutorial/examples/tsp CACHE PATH "TSP src directory") +SET(TSP_BINARY_DIR ${ParadisEO-MO_BINARY_DIR}/tutorial/examples/tsp CACHE PATH "TSP binary directory") + +###################################################################################### + +###################################################################################### +### 2) Where must cmake go now ? +###################################################################################### + +SUBDIRS(examples Lesson1 Lesson2 Lesson3) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/CMakeLists.txt new file mode 100644 index 000000000..c9411d93c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/CMakeLists.txt @@ -0,0 +1,119 @@ + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) +###################################################################################### + + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${TSP_BINARY_DIR}/lib) +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${TSP_BINARY_DIR}\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${TSP_BINARY_DIR}\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(hill_climbing hill_climbing.cpp) + +ADD_DEPENDENCIES(hill_climbing tsp) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(HILLCLIMBING_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(hill_climbing PROPERTIES VERSION "${HILLCLIMBING_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(hill_climbing tsp) + TARGET_LINK_LIBRARIES(hill_climbing eo) + TARGET_LINK_LIBRARIES(hill_climbing eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(hill_climbing tsp) + TARGET_LINK_LIBRARIES(hill_climbing eod) + TARGET_LINK_LIBRARIES(hill_climbing eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(hill_climbing tsp) + TARGET_LINK_LIBRARIES(hill_climbing eo) + TARGET_LINK_LIBRARIES(hill_climbing eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/hill_climbing.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/hill_climbing.cpp new file mode 100644 index 000000000..f9151b246 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/hill_climbing.cpp @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "hill_climbing.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +int +main (int __argc, char * __argv []) +{ + if (__argc != 2) { + + std :: cerr << "Usage : ./hill_climbing [instance]" << std :: endl ; + return 1 ; + } + + srand (1000) ; + + Graph :: load (__argv [1]) ; // Instance + + Route route ; // Solution + + RouteInit init ; // Sol. Random Init. + init (route) ; + + RouteEval full_eval ; // Full. Eval. + full_eval (route) ; + + std :: cout << "[From] " << route << std :: endl ; + + /* Tools for an efficient (? :-)) + local search ! */ + + TwoOptInit two_opt_init ; // Init. + + TwoOptNext two_opt_next ; // Explorer. + + TwoOptIncrEval two_opt_incr_eval ; // Eff. eval. + + //moFirstImprSelect two_opt_select ; + moBestImprSelect two_opt_select ; + //moRandImprSelect two_opt_select ; + + moHC hill_climbing (two_opt_init, two_opt_next, two_opt_incr_eval, two_opt_select, full_eval) ; + hill_climbing (route) ; + + std :: cout << "[To] " << route << std :: endl ; + + return 0 ; +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/lesson_1.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/lesson_1.pdf new file mode 100644 index 000000000..4af0e8e56 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson1/lesson_1.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/CMakeLists.txt new file mode 100644 index 000000000..ca7dbfd4d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/CMakeLists.txt @@ -0,0 +1,120 @@ + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) +###################################################################################### + + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${TSP_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${TSP_BINARY_DIR}\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${TSP_BINARY_DIR}\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(tabu_search tabu_search.cpp) + +ADD_DEPENDENCIES(tabu_search tsp) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(TABUSEARCH_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(tabu_search PROPERTIES VERSION "${TABUSEARCH_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(tabu_search tsp) + TARGET_LINK_LIBRARIES(tabu_search eo) + TARGET_LINK_LIBRARIES(tabu_search eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(tabu_search tsp) + TARGET_LINK_LIBRARIES(tabu_search eod) + TARGET_LINK_LIBRARIES(tabu_search eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(tabu_search tsp) + TARGET_LINK_LIBRARIES(tabu_search eo) + TARGET_LINK_LIBRARIES(tabu_search eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/lesson_2.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/lesson_2.pdf new file mode 100644 index 000000000..0418ba621 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/lesson_2.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/tabu_search.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/tabu_search.cpp new file mode 100644 index 000000000..13913bdb7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson2/tabu_search.cpp @@ -0,0 +1,70 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "tabu_search.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +int +main (int __argc, char * __argv []) +{ + if (__argc != 2) + { + std :: cerr << "Usage : ./tabu_search [instance]" << std :: endl ; + return 1 ; + } + + Graph :: load (__argv [1]) ; // Instance + + Route route ; // Solution + + RouteInit init ; // Sol. Random Init. + init (route) ; + + RouteEval full_eval ; // Full. Eval. + full_eval (route) ; + + std :: cout << "[From] " << route << std :: endl ; + + /* Tools for an efficient (? :-)) + local search ! */ + + TwoOptInit two_opt_init ; // Init. + + TwoOptNext two_opt_next ; // Explorer. + + TwoOptIncrEval two_opt_incr_eval ; // Eff. eval. + + TwoOptTabuList tabu_list ; // Tabu List + //moSimpleMoveTabuList tabu_list(10); + //moSimpleSolutionTabuList tabu_list(10); + + moNoAspirCrit aspir_crit ; // Aspiration Criterion + + moGenSolContinue cont (10000) ; // Continuator + + moTS tabu_search (two_opt_init, two_opt_next, two_opt_incr_eval, tabu_list, aspir_crit, cont, full_eval) ; + tabu_search (route) ; + + std :: cout << "[To] " << route << std :: endl ; + + return 0 ; +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/CMakeLists.txt new file mode 100644 index 000000000..905745977 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/CMakeLists.txt @@ -0,0 +1,120 @@ + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) +###################################################################################### + + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${TSP_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${TSP_BINARY_DIR}\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${TSP_BINARY_DIR}\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(simulated_annealing simulated_annealing.cpp) + +ADD_DEPENDENCIES(simulated_annealing tsp) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(SIMULATEDANNEALING_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(simulated_annealing PROPERTIES VERSION "${SIMULATEDANNEALING_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(simulated_annealing tsp) + TARGET_LINK_LIBRARIES(simulated_annealing eo) + TARGET_LINK_LIBRARIES(simulated_annealing eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(simulated_annealing tsp) + TARGET_LINK_LIBRARIES(simulated_annealing eod) + TARGET_LINK_LIBRARIES(simulated_annealing eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(simulated_annealing tsp) + TARGET_LINK_LIBRARIES(simulated_annealing eo) + TARGET_LINK_LIBRARIES(simulated_annealing eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/lesson_3.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/lesson_3.pdf new file mode 100644 index 000000000..779132996 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/lesson_3.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/simulated_annealing.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/simulated_annealing.cpp new file mode 100644 index 000000000..b768b075b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/Lesson3/simulated_annealing.cpp @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "simulated_annealing.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include +#include +#include +#include + +#include +#include +#include + +int +main (int __argc, char * __argv []) +{ + if (__argc != 2) + { + std :: cerr << "Usage : ./simulated_annealing [instance]" << std :: endl ; + return 1 ; + } + + Graph :: load (__argv [1]) ; // Instance + + Route route ; // Solution + + RouteInit init ; // Sol. Random Init. + init (route) ; + + RouteEval full_eval ; // Full. Eval. + full_eval (route) ; + + std :: cout << "[From] " << route << std :: endl ; + + /* Tools for an efficient (? :-)) + local search ! */ + + TwoOptRand two_opt_rand ; // Route Random. Gen. + + TwoOptIncrEval two_opt_incr_eval ; // Eff. eval. + + TwoOpt move ; + + moExponentialCoolingSchedule cool_sched (0.1, 0.98) ; // Exponential Cooling Schedule + //moLinearCoolingSchedule cool_sched (0.1, 0.5) ; // Linear Cooling Schedule + + moGenSolContinue cont (1000) ; /* Temperature Descreasing + will occur each 1000 + iterations */ + + moSA simulated_annealing (two_opt_rand, two_opt_incr_eval, cont, 1000, cool_sched, full_eval) ; + simulated_annealing (route) ; + + std :: cout << "[To] " << route << std :: endl ; + + return 0 ; +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/CMakeLists.txt new file mode 100644 index 000000000..7d024ee3a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/CMakeLists.txt @@ -0,0 +1,11 @@ + + +###################################################################################### +### 1) Where must cmake go now ? +###################################################################################### + +SUBDIRS(tsp) + +###################################################################################### + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/CMakeLists.txt new file mode 100755 index 000000000..ad0de7e9c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/CMakeLists.txt @@ -0,0 +1,92 @@ + +###################################################################################### +### 0) Copy the "benchs" directory in the build directory to easily run the lessons +###################################################################################### + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-MO_SOURCE_DIR}/tutorial/examples/tsp/benchs) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory + ${ParadisEO-MO_SOURCE_DIR}/tutorial/examples/tsp/benchs + ${ParadisEO-MO_BINARY_DIR}/tutorial/examples/tsp/benchs) + +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Define your target(s): just the tsp here +###################################################################################### + +SET(TSP_LIB_OUTPUT_PATH ${TSP_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${TSP_LIB_OUTPUT_PATH}) + +SET (TSP_SOURCES graph.cpp + route_init.cpp + route_eval.cpp + part_route_eval.cpp + edge_xover.cpp + order_xover.cpp + route_valid.cpp + partial_mapped_xover.cpp + city_swap.cpp + two_opt.cpp + two_opt_init.cpp + two_opt_next.cpp + two_opt_incr_eval.cpp + two_opt_tabu_list.cpp + two_opt_rand.cpp) + +# --> UNIX +IF(UNIX) + ADD_LIBRARY(tsp STATIC ${TSP_SOURCES}) + +# --> WIN +ELSEIF(WIN32) + ADD_LIBRARY(tsp STATIC ${TSP_SOURCES}) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 3) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(TSP_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(tsp PROPERTIES VERSION "${TSP_VERSION}") +###################################################################################### + + + +###################################################################################### +### 4) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/ali535.tsp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/ali535.tsp new file mode 100644 index 000000000..7fec4bf14 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/ali535.tsp @@ -0,0 +1,536 @@ +535 +36.49 7.49 +57.06 9.51 +30.22 48.14 +5.15 -3.56 +34.59 -106.37 +57.12 -2.12 +16.45 -99.45 +5.36 -0.1 +28.56 -13.36 +8.59 38.48 +12.5 45.02 +-34.48 138.38 +30.23 -9.33 +56.18 12.51 +36.4 -4.3 +40.38 8.17 +35.11 -3.5 +41.55 8.48 +-37.01 174.47 +38.17 -0.34 +36.42 3.13 +36.11 37.14 +35.14 -101.42 +31.58 35.59 +52.18 4.46 +61.1 -149.59 +39.57 32.41 +51.11 4.28 +17.08 -61.47 +43.37 13.22 +29.38 35.01 +59.39 17.55 +15.18 38.55 +-25.14 -57.31 +23.58 32.47 +37.54 23.44 +33.46 -84.31 +12.3 -70.01 +24.26 54.28 +36.55 30.48 +26.16 50.38 +40.29 50.01 +39.11 -76.4 +10.48 -74.52 +-16.11 -52.3 +10.25 45.01 +41.18 2.05 +32.22 -64.42 +41.56 -72.41 +40.39 17.57 +44.49 20.19 +9.21 34.31 +32.06 20.16 +52.29 13.24 +48.27 -4.25 +-19.48 3.45 +33.49 35.29 +54.39 -6.14 +35.48 -101.22 +4.24 18.31 +13.04 -59.3 +60.17 5.13 +44.48 -68.5 +33.14 44.14 +45.4 9.24 +33.34 -86.45 +52.27 -1.45 +42.33 9.29 +45.48 -108.37 +43.28 -1.32 +13.21 -16.4 +-3.19 29.19 +13.55 100.36 +12.38 -8.02 +55.44 9.09 +44.32 11.18 +12.57 77.4 +-15.41 34.58 +27.13 56.22 +-27.25 153.05 +44.5 -0.43 +4.42 -74.09 +50.47 -1.51 +19.05 72.52 +67.16 14.22 +42.22 -71 +53.03 8.48 +41.08 16.47 +46.55 7.3 +51.31 -2.35 +50.54 4.29 +-15.52 -47.55 +47.35 7.32 +48.1 16.13 +47.27 19.15 +-34.49 -58.32 +42.55 -78.38 +44.3 26.06 +49.27 2.07 +-4.15 15.15 +39.15 9.04 +30.08 31.24 +23.11 113.16 +33.33 -7.4 +-11.54 22.45 +4.49 -52.22 +52.13 0.11 +-35.19 149.12 +10.36 -66.59 +22.39 88.27 +52.5 -1.19 +49.01 2.33 +43.33 6.57 +45.4 -0.19 +39.37 19.55 +50.52 7.09 +41.59 -87.54 +41.48 12.36 +9.34 -13.37 +41.25 -81.51 +3.26 -76.25 +42.31 8.48 +-28.02 145.37 +7.11 79.53 +40.04 -83.04 +33.22 -7.35 +48.07 7.22 +44.22 28.29 +45.4 -0.19 +6.21 2.23 +55.37 12.39 +-33.58 18.36 +37.28 15.04 +10.27 -75.31 +-26.25 146.14 +39 17.05 +12.12 -68.57 +39.09 -84.2 +39.03 -84.2 +51.24 -3.12 +29.11 -81.03 +23.46 90.23 +14.45 42.59 +32.5 -96.51 +33.25 36.31 +-6.53 39.12 +42.34 18.16 +-29.58 30.57 +38.51 -77.02 +28.34 77.07 +39.46 -104.53 +32.46 -96.24 +26.16 50.1 +47.16 5.05 +33.52 10.47 +14.45 -17.3 +4.01 9.43 +19.08 30.26 +25.16 51.34 +49.22 0.1 +-8.45 115.1 +51.08 13.46 +-12.25 130.52 +42.14 -83.32 +42.13 -83.21 +53.26 -6.15 +51.17 6.45 +25.15 55.2 +0.03 32.26 +45.32 4.18 +55.57 -3.22 +51.27 5.23 +31.48 -106.16 +52.5 -1.19 +48.19 6.04 +40.07 33 +40.09 82.4 +40.42 -74.1 +50.44 -3.25 +-34.49 -58.32 +64.49 -147.51 +37.01 -7.58 +-11.35 27.31 +59.54 10.37 +41.49 12.15 +14.35 -61 +33.56 45.8 +-4.23 15.26 +43.49 11.12 +8.37 -13.12 +41.26 15.32 +50.02 8.34 +44.12 12.04 +-21.13 27.29 +28.27 -13.52 +53.29 -1 +-19.27 29.52 +54.23 18.28 +60.12 11.05 +24.57 10.1 +-22.5 -43.15 +55.52 -4.26 +45.22 5.2 +7.09 41.43 +44.25 8.5 +57.4 18.18 +41.54 2.46 +37.11 -3.47 +47 15.26 +51.09 -0.11 +14.34 -90.32 +46.14 6.07 +-2.09 -79.53 +52.28 9.42 +53.38 10 +60.19 24.58 +35.2 25.11 +30.2 120.51 +22.19 114.12 +31.4 6.09 +35.33 139.46 +21.2 -157.55 +29.59 -95.28 +38.57 -77.27 +43.06 -78.57 +38.52 1.22 +47.34 -97.27 +50.21 30.55 +-25.44 -54.28 +39.44 -86.17 +40.59 28.49 +38.17 27.1 +21.3 39.12 +49.13 -2.12 +40.38 -73.46 +11.33 43.1 +-6.09 106.51 +-26.08 28.15 +-3.22 36.38 +45.28 -73.44 +12.03 8.31 +34.34 69.12 +63.59 -22.37 +-1.58 30.08 +22.34 120.17 +24.54 67.09 +-6.18 155.43 +17.56 -76.48 +50.05 19.47 +15.36 32.33 +27.42 85.22 +3.08 101.33 +29.13 47.58 +-8.51 13.14 +10.36 -66.59 +36.04 -115.09 +33.56 -118.24 +53.52 -1.39 +48.58 2.27 +0.27 9.25 +34.52 33.38 +43.11 0 +59.49 30.17 +36.51 -2.22 +51.24 12.25 +51.25 12.14 +6.1 1.15 +40.46 -73.52 +33.57 -118.24 +50.38 5.27 +51.09 -0.11 +51.28 -0.27 +50.34 3.05 +-12.01 -77.07 +45.27 9.16 +38.46 -9.08 +46.13 14.28 +35.3 12.37 +48.14 14.11 +51.28 -0.27 +6.35 3.2 +27.56 -15.23 +-16.3 -68.11 +53.21 -2.53 +6.1 1.15 +51.53 -0.22 +-25.55 32.34 +-15.2 28.27 +4.27 114 +49.37 6.12 +-17.49 25.49 +25.41 32.43 +45.44 4.56 +13 80.11 +40.29 -3.34 +31.52 -4.13 +53.21 -2.16 +-3.04 -60 +10.34 -71.44 +-4.02 39.36 +46.22 15.47 +39.18 -94.44 +28.32 -81.2 +23.36 58.17 +44.25 8.5 +-37.44 144.54 +24.31 39.42 +-37.41 144.51 +19.26 -99.04 +12.07 -86.11 +2.01 45.19 +25.48 -80.17 +20.56 -89.41 +45.27 9.16 +35.45 10.45 +39.07 -94.36 +35.52 14.29 +4.11 73.32 +47.45 7.26 +55.33 13.22 +54.31 -1.25 +14.31 121.01 +55.58 37.25 +43.35 3.58 +-25.55 32.34 +-8.58 125.13 +43.26 5.13 +-20.26 57.41 +51.21 1.21 +44.53 -93.13 +53.52 27.33 +50.55 5.47 +29.59 -90.16 +-26.31 31.19 +48.08 11.42 +-34.5 -56.02 +45.38 8.43 +49.05 6.08 +-17.45 177.27 +40.53 14.18 +25.02 -77.28 +-1.19 36.56 +43.4 7.13 +55.02 -1.41 +45.56 6.06 +12.08 15.02 +32.56 129.56 +35.09 36.17 +13.29 2.1 +18.06 -15.57 +-13 28.39 +58.35 16.15 +35.45 140.23 +47.09 -1.36 +49.3 11.05 +52.41 1.17 +40.38 -73.46 +55.28 10.2 +46.26 30.41 +26.21 127.46 +35.26 -97.46 +40.54 9.31 +41.07 -95.55 +41.14 -8.41 +41.59 -87.54 +51.5 -8.29 +28.26 -81.19 +35.38 -0.37 +48.43 2.23 +34.47 135.27 +60.12 11.05 +51.12 2.52 +44.34 26.06 +12.21 -1.31 +43.26 -5.5 +18.34 -72.17 +48.43 2.23 +40.05 116.36 +-31.56 115.58 +4.52 7.02 +37.08 -76.3 +39.52 -75.15 +33.26 -112.01 +55.52 -4.26 +46.35 0.18 +40.3 -80.14 +-5.15 39.49 +39.33 2.44 +38.1 13.06 +11.33 104.51 +36.49 11.58 +-9.27 147.13 +10.36 -61.21 +9.05 -79.23 +50.06 14.16 +43.41 10.24 +42.26 14.11 +16.16 -61.32 +9.03 -79.24 +43.23 -0.25 +45.39 12.12 +31.37 -8.03 +34.03 -6.45 +-8.08 -34.55 +38.04 15.39 +64.08 -21.57 +16.54 96.09 +49.19 4.03 +36.23 28.07 +-29.43 -53.42 +-22.5 -43.15 +45.13 14.35 +44.01 12.37 +48.04 -1.44 +6.14 -10.22 +41.49 12.15 +14.1 145.15 +-32.55 -60.47 +51.57 4.26 +24.42 46.44 +33.37 73.06 +6.3 -58.15 +15.29 44.13 +13.42 -89.07 +32.44 -117.11 +-23 -47.08 +29.32 -98.28 +-17.56 31.06 +48.31 -24.8 +-33.23 -70.47 +42.54 -8.25 +33.14 44.14 +18.26 -69.4 +47.27 -122.18 +27 14.27 +37.33 126.48 +51.34 0.42 +-4.4 55.31 +37.37 -122.23 +31.12 121.2 +25.21 55.24 +16.45 -22.57 +1.21 103.54 +37.22 -121.56 +43.49 18.2 +9.58 -84.16 +9.59 -84.12 +18.26 -66.01 +40.31 22.58 +41.58 21.38 +40.53 -111.57 +36.58 -25.1 +52.42 -8.55 +42.42 23.24 +43.32 16.18 +-12.54 -38.2 +38.45 -90.22 +51.33 0.14 +59.39 17.55 +48.41 9.13 +38.54 16.15 +58.53 5.38 +55.58 37.25 +37.26 -5.54 +48.32 7.38 +52.22 13.3 +-33.56 151.1 +29.33 52.36 +47.48 13 +40.31 17.24 +41.19 69.24 +28.29 -16.2 +38.31 -28.43 +43.11 0 +28.29 -16.2 +14.02 -87.14 +52.29 13.24 +35.41 51.19 +41.2 19.47 +32.4 13.09 +43.37 1.23 +32.01 34.53 +22.49 5.27 +0.23 6.43 +35.43 -5.55 +-18.48 47.29 +33.56 8.06 +-24.42 -53.42 +25.04 121.33 +37.55 12.29 +51.23 -2.43 +45.12 7.39 +45.5 13.28 +45.39 12.12 +47.26 0.43 +36.18 -95.52 +36.51 10.14 +52.34 13.18 +35.33 139.46 +35.54 -83.53 +40.62 13.11 +-0.08 -78.29 +12.41 101.01 +13.45 -60.57 +44.55 4.58 +43.14 27.49 +45.3 12.21 +-23 -47.08 +48.07 16.33 +39.29 -0.29 +41.42 -4.51 +45.24 10.53 +38.57 -77.27 +52.1 20.58 +36.45 -6.04 +53.19 -113.35 +44.53 -63.31 +45.41 -74.02 +45.19 -75.4 +46.48 -71.24 +42.16 -82.58 +48.57 -54.34 +45.28 -73.44 +49.11 -123.1 +49.55 -97.14 +51.07 -114.01 +47.37 -52.45 +43.41 -79.38 +44.06 15.21 +45.45 16.04 +41.4 -1.03 +-6.13 39.13 +47.28 8.33 +51.33 0.14 +24.58 91.53 diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/eil101.tsp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/eil101.tsp new file mode 100644 index 000000000..f12903349 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/eil101.tsp @@ -0,0 +1,102 @@ +101 +41 49 +35 17 +55 45 +55 20 +15 30 +25 30 +20 50 +10 43 +55 60 +30 60 +20 65 +50 35 +30 25 +15 10 +30 5 +10 20 +5 30 +20 40 +15 60 +45 65 +45 20 +45 10 +55 5 +65 35 +65 20 +45 30 +35 40 +41 37 +64 42 +40 60 +31 52 +35 69 +53 52 +65 55 +63 65 +2 60 +20 20 +5 5 +60 12 +40 25 +42 7 +24 12 +23 3 +11 14 +6 38 +2 48 +8 56 +13 52 +6 68 +47 47 +49 58 +27 43 +37 31 +57 29 +63 23 +53 12 +32 12 +36 26 +21 24 +17 34 +12 24 +24 58 +27 69 +15 77 +62 77 +49 73 +67 5 +56 39 +37 47 +37 56 +57 68 +47 16 +44 17 +46 13 +49 11 +49 42 +53 43 +61 52 +57 48 +56 37 +55 54 +15 47 +14 37 +11 31 +16 22 +4 18 +28 18 +26 52 +26 35 +31 67 +15 19 +22 22 +18 24 +26 27 +25 24 +22 27 +25 21 +19 21 +20 26 +18 18 +35 35 diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/pr2392.tsp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/pr2392.tsp new file mode 100644 index 000000000..010a2c7ec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/pr2392.tsp @@ -0,0 +1,2393 @@ +2392 +1639 2156 +1875 2925 +2150 2925 +2425 2925 +2525 2675 +2525 2575 +2525 2375 +2525 2275 +2525 2175 +2786 2148 +2786 2249 +2786 2352 +2785 2451 +2785 2552 +2787 2651 +2925 2925 +3198 2925 +3475 2925 +3725 2925 +3675 2675 +3675 2575 +3675 2375 +3675 2275 +3675 2175 +4189 2156 +4190 2256 +4190 2355 +4189 2456 +4189 2556 +4190 2656 +4275 2975 +4425 2925 +4700 2925 +4975 2925 +5075 2675 +5075 2575 +5075 2375 +5075 2275 +5075 2175 +5336 2148 +5336 2249 +5336 2352 +5335 2451 +5335 2552 +5337 2651 +5475 2925 +5748 2925 +6025 2925 +6275 2925 +6225 2675 +6225 2575 +6225 2375 +6225 2275 +6225 2175 +6739 2156 +6740 2256 +6740 2355 +6739 2456 +6739 2556 +6740 2656 +6825 2975 +6975 2925 +7250 2925 +7525 2925 +7625 2675 +7625 2575 +7625 2375 +7625 2275 +7625 2175 +7886 2148 +7886 2249 +7886 2352 +7885 2451 +7885 2552 +7887 2651 +8025 2925 +8298 2925 +8575 2925 +8825 2925 +8775 2675 +8775 2575 +8775 2375 +8775 2275 +8775 2175 +9289 2156 +9290 2256 +9290 2355 +9289 2456 +9289 2556 +9290 2656 +9375 2975 +9525 2925 +9800 2925 +10075 2925 +10175 2675 +10175 2575 +10175 2375 +10175 2275 +10175 2175 +10436 2148 +10436 2249 +10436 2352 +10435 2451 +10435 2552 +10437 2651 +10575 2925 +10848 2925 +11125 2925 +11325 2175 +11325 2275 +11325 2375 +11325 2575 +11325 2675 +11375 2925 +11375 3125 +11400 3225 +11400 3325 +11400 3475 +11400 3625 +11300 3825 +11125 3825 +11125 3925 +11025 3975 +10925 3975 +10925 3875 +10550 3925 +10550 3725 +10550 3325 +10100 3325 +10100 3725 +10100 3925 +9725 3875 +9725 3975 +9625 3975 +9550 3875 +9425 3875 +9275 3900 +9250 3700 +9250 3575 +9250 3475 +9250 3375 +9250 3275 +8825 3125 +8850 3225 +8850 3325 +8850 3475 +8850 3625 +8750 3825 +8575 3825 +8575 3925 +8475 3975 +8375 3875 +8375 3975 +8400 4125 +8300 4175 +8400 4275 +8500 4175 +8675 4325 +8775 4425 +8825 4325 +9275 4275 +9375 4275 +9325 4375 +9400 4450 +9400 4550 +9325 4500 +9215 4560 +9215 4710 +9375 4775 +9215 4860 +9215 5010 +9215 5160 +9215 5310 +9215 5460 +9215 5610 +9475 5675 +9475 5525 +9475 5425 +9475 5275 +9475 5025 +9575 5075 +9725 5075 +9675 4975 +9575 4925 +9525 4775 +9600 4675 +9625 4775 +9775 4775 +9975 4600 +9875 4600 +9800 4525 +9700 4525 +9700 4425 +9800 4425 +9800 4325 +9700 4275 +9600 4175 +9700 4125 +9800 4175 +9875 4275 +9975 4275 +10075 4175 +10275 4175 +10375 4175 +10575 4175 +10675 4275 +10775 4275 +10850 4325 +10850 4425 +10850 4525 +10775 4575 +10675 4575 +10875 4775 +11025 4775 +11175 4725 +11050 4675 +10950 4500 +10950 4400 +10950 4275 +10850 4175 +10950 4125 +11050 4175 +11225 4325 +11375 4325 +11325 4425 +11325 4575 +11325 4675 +11325 4775 +11325 4925 +11450 4925 +11450 5075 +11422 5204 +11425 5325 +11325 5275 +11325 5375 +11175 5375 +11175 5275 +11125 5175 +11100 5025 +10975 4975 +10925 5075 +10950 5175 +10900 5275 +10900 5375 +10800 5175 +10525 5175 +10325 5175 +10325 5025 +10425 5075 +10475 4975 +10325 4875 +10175 4975 +10225 5075 +10125 5175 +9975 5175 +10050 5250 +10050 5350 +10025 5450 +10175 5450 +10325 5450 +10475 5450 +10575 5450 +10675 5450 +10525 6025 +10525 6125 +10675 6125 +10825 6025 +11025 6050 +11224 5908 +11400 5975 +11400 6375 +11400 6575 +11175 6575 +11025 6450 +10975 6675 +11075 6775 +10975 6875 +11175 6975 +11375 6975 +11325 7075 +11400 7150 +11125 7150 +10975 7150 +10875 7325 +10925 7425 +11075 7425 +11175 7475 +11075 7575 +11175 7625 +11175 7725 +11025 7725 +11025 7825 +11175 7825 +11325 7875 +11425 7925 +11425 8075 +11325 8075 +11275 8175 +11425 8225 +11425 8375 +11275 8325 +11175 8325 +11075 8225 +10975 8225 +10925 7975 +10775 7825 +10825 7600 +10725 7575 +10775 7425 +10675 7425 +10525 7425 +10525 7575 +10450 7750 +10300 7750 +10425 7875 +10525 7925 +10575 7825 +10625 7975 +10725 7975 +10725 8075 +10625 8125 +10525 8075 +10425 8025 +10425 8125 +10250 8225 +10150 8225 +10225 8125 +10275 7975 +10125 7975 +10000 7875 +10000 7775 +9825 7825 +9625 7725 +9475 7725 +9425 7625 +9575 7625 +9625 7475 +9725 7575 +9825 7475 +10025 7525 +9975 7425 +9925 7275 +9825 7075 +9625 7075 +9725 6975 +9875 6775 +9725 6775 +9575 6825 +9575 6675 +9725 6425 +9625 6200 +9725 6025 +9625 6000 +9225 6375 +9225 6525 +9375 6525 +9375 6675 +9225 6675 +9225 6875 +9225 7075 +9226 7259 +9225 7260 +9226 7409 +9225 7410 +9225 7560 +9226 7560 +9225 7710 +9225 7711 +9325 7825 +9225 7875 +9225 7975 +9225 8075 +9225 8175 +9225 8275 +9225 8375 +9225 8475 +9275 8825 +9475 8825 +9578 8820 +9847 8703 +9875 8825 +10025 8725 +10075 8825 +10175 8725 +10100 8575 +10250 8375 +10250 8475 +10250 8625 +10475 8775 +10575 8775 +10675 8775 +10775 8775 +10925 8775 +10875 8625 +10875 8525 +10975 8575 +11175 8475 +11275 8425 +11350 8575 +11450 8675 +11350 8775 +11325 9325 +11325 9425 +11325 9525 +11325 9725 +11325 9825 +11125 10075 +11375 10075 +11375 10275 +11400 10375 +11400 10475 +11400 10625 +11400 10775 +11300 10975 +11125 10975 +11125 11075 +11025 11125 +10925 11125 +10925 11025 +10550 10875 +10550 11075 +10275 11325 +10375 11325 +10575 11325 +10675 11425 +10775 11425 +10850 11475 +10850 11575 +10850 11675 +10775 11725 +10675 11725 +10875 11925 +11025 11925 +11175 11875 +11050 11825 +10950 11650 +10950 11550 +10950 11425 +10850 11325 +10950 11275 +11050 11325 +11225 11475 +11375 11475 +11325 11575 +11325 11725 +11325 11825 +11325 11925 +11325 12075 +11450 12075 +11450 12225 +11422 12354 +11425 12475 +11325 12425 +11325 12525 +11175 12525 +11175 12425 +11125 12325 +11100 12175 +10975 12125 +10925 12225 +10950 12325 +10900 12425 +10900 12525 +10800 12325 +10525 12325 +10425 12225 +10475 12125 +10325 12025 +10175 12125 +10225 12225 +10325 12175 +10325 12325 +10125 12325 +9975 12325 +10050 12400 +10050 12500 +10025 12600 +10175 12600 +10325 12600 +10475 12600 +10575 12600 +10675 12600 +10525 13175 +10525 13275 +10675 13275 +10825 13175 +11025 13200 +11224 13058 +11400 13125 +11400 13525 +11400 13725 +11175 13725 +11025 13600 +10975 13825 +11075 13925 +10975 14025 +11175 14125 +11375 14125 +11325 14225 +11400 14300 +11125 14300 +10975 14300 +10875 14475 +10925 14575 +10825 14750 +10725 14725 +10775 14575 +10675 14575 +10525 14575 +10525 14725 +10450 14900 +10300 14900 +10425 15025 +10425 15175 +10425 15275 +10525 15225 +10625 15275 +10725 15225 +10725 15125 +10625 15125 +10525 15075 +10575 14975 +10775 14975 +10925 15125 +11025 14975 +11025 14875 +11075 14725 +11075 14575 +11175 14625 +11175 14775 +11175 14875 +11175 14975 +11325 15025 +11425 15075 +11425 15225 +11325 15225 +11275 15325 +11425 15375 +11425 15525 +11350 15725 +11450 15825 +11350 15925 +11175 15625 +11275 15575 +11275 15475 +11175 15475 +11075 15375 +10975 15375 +10875 15675 +10975 15725 +10875 15775 +10925 15925 +10775 15925 +10675 15925 +10575 15925 +10475 15925 +10250 15775 +10175 15875 +10075 15975 +9875 15975 +9847 15853 +10025 15875 +10100 15725 +10250 15625 +10250 15525 +10250 15375 +10150 15375 +10225 15275 +10275 15125 +10125 15125 +10000 15025 +10000 14925 +9825 14975 +9625 14875 +9475 14875 +9425 14775 +9575 14775 +9625 14625 +9725 14725 +9825 14625 +10025 14675 +9975 14575 +9925 14425 +9825 14225 +9625 14225 +9725 14125 +9875 13925 +9725 13925 +9575 13975 +9575 13825 +9725 13575 +9625 13350 +9725 13175 +9625 13150 +9225 13525 +9225 13675 +9375 13675 +9375 13825 +9225 13825 +9225 14025 +9225 14225 +9226 14409 +9225 14410 +9226 14559 +9225 14560 +9225 14710 +9226 14710 +9225 14860 +9225 14861 +9325 14975 +9225 15025 +9225 15125 +9225 15225 +9225 15325 +9225 15425 +9225 15525 +9225 15625 +9578 15970 +9475 15975 +9275 15975 +8900 15825 +8800 15925 +8800 15725 +8725 15575 +8625 15625 +8425 15725 +8325 15675 +8325 15775 +8375 15925 +8225 15925 +8125 15925 +8025 15925 +7925 15925 +7700 15775 +7700 15625 +7700 15525 +7550 15725 +7625 15875 +7525 15975 +7475 15875 +7325 15975 +7297 15853 +7028 15970 +6925 15975 +6725 15975 +6675 15625 +6675 15525 +6675 15425 +6675 15325 +6675 15225 +6675 15125 +6675 15025 +6775 14975 +6675 14861 +6675 14860 +6676 14710 +6675 14710 +6675 14560 +6676 14559 +6675 14410 +6676 14409 +6675 14225 +6675 14025 +6675 13825 +6825 13825 +6825 13675 +6675 13675 +6675 13525 +7075 13150 +7175 13175 +7075 13350 +7175 13575 +7025 13825 +7025 13975 +7175 13925 +7325 13925 +7175 14125 +7075 14225 +7275 14225 +7375 14425 +7425 14575 +7475 14675 +7275 14625 +7175 14725 +7075 14625 +7025 14775 +6875 14775 +6925 14875 +7075 14875 +7275 14975 +7450 14925 +7450 15025 +7575 15125 +7725 15125 +7675 15275 +7600 15375 +7700 15375 +7875 15275 +7875 15175 +7975 15225 +8075 15275 +8175 15225 +8175 15125 +8075 15125 +8025 14975 +7975 15075 +7875 15025 +7750 14900 +7900 14900 +7975 14725 +7975 14575 +8125 14575 +8225 14575 +8175 14725 +8275 14750 +8225 14975 +8375 15125 +8425 15375 +8525 15375 +8625 15475 +8725 15475 +8875 15525 +8875 15375 +8725 15325 +8775 15225 +8875 15225 +8875 15075 +8775 15025 +8625 14975 +8475 14975 +8475 14875 +8625 14875 +8625 14775 +8525 14725 +8625 14625 +8525 14575 +8375 14575 +8325 14475 +8425 14300 +8575 14300 +8850 14300 +8775 14225 +8825 14125 +8625 14125 +8425 14025 +8525 13925 +8425 13825 +8475 13600 +8625 13725 +8850 13725 +8850 13525 +8850 13125 +8674 13058 +8475 13200 +8275 13175 +8125 13275 +7975 13275 +7975 13175 +8125 12600 +8025 12600 +7925 12600 +7775 12600 +7625 12600 +7475 12600 +7500 12500 +7500 12400 +7425 12325 +7575 12325 +7675 12225 +7625 12125 +7775 12025 +7925 12125 +7875 12225 +7775 12175 +7775 12325 +7975 12325 +8250 12325 +8350 12525 +8350 12425 +8400 12325 +8375 12225 +8425 12125 +8550 12175 +8575 12325 +8625 12425 +8625 12525 +8775 12525 +8775 12425 +8875 12475 +8872 12354 +8900 12225 +8900 12075 +8775 12075 +8775 11925 +8775 11825 +8775 11725 +8775 11575 +8825 11475 +8675 11475 +8500 11325 +8400 11275 +8300 11325 +8400 11425 +8400 11550 +8400 11650 +8500 11825 +8625 11875 +8475 11925 +8325 11925 +8125 11725 +8225 11725 +8300 11675 +8300 11575 +8300 11475 +8225 11425 +8125 11425 +8025 11325 +7825 11325 +7725 11325 +7525 11325 +7425 11425 +7325 11425 +7250 11325 +7150 11275 +7050 11325 +7150 11425 +7250 11475 +7250 11575 +7150 11575 +7150 11675 +7250 11675 +7325 11750 +7425 11750 +7225 11925 +7075 11925 +7050 11825 +6975 11925 +7025 12075 +7125 12125 +7175 12225 +7025 12225 +6925 12175 +6925 12425 +6925 12575 +6925 12675 +6925 12825 +6665 12760 +6665 12610 +6665 12460 +6665 12310 +6665 12160 +6665 12010 +6825 11925 +6665 11860 +6665 11710 +6775 11650 +6850 11700 +6850 11600 +6775 11525 +6825 11425 +6725 11425 +6275 11475 +6225 11575 +6125 11475 +5950 11325 +5850 11425 +5750 11325 +5850 11275 +5825 11125 +5825 11025 +5925 11125 +6025 11075 +6025 10975 +6200 10975 +6300 10775 +6300 10625 +6300 10475 +6300 10375 +6275 10275 +6700 10425 +6700 10525 +6700 10625 +6700 10725 +6700 10850 +6725 11050 +6875 11025 +7000 11025 +7075 11125 +7175 11125 +7175 11025 +7550 11075 +7550 10875 +7550 10475 +8000 10475 +8000 10875 +8000 11075 +8375 11025 +8375 11125 +8475 11125 +8575 11075 +8575 10975 +8750 10975 +8850 10775 +8850 10625 +8850 10475 +8850 10375 +8825 10275 +9250 10425 +9250 10525 +9250 10625 +9250 10725 +9250 10850 +9275 11050 +9425 11025 +9550 11025 +9625 11125 +9725 11025 +9725 11125 +9700 11275 +9800 11325 +9700 11425 +9600 11325 +9375 11425 +9275 11425 +9325 11525 +9400 11600 +9400 11700 +9325 11650 +9215 11710 +9215 11860 +9375 11925 +9215 12010 +9215 12160 +9215 12310 +9215 12460 +9215 12610 +9215 12760 +9475 12825 +9475 12675 +9475 12575 +9475 12425 +9475 12175 +9575 12225 +9725 12225 +9675 12125 +9575 12075 +9525 11925 +9600 11825 +9625 11925 +9775 11925 +9975 11750 +9875 11750 +9800 11675 +9700 11675 +9700 11575 +9800 11575 +9800 11475 +9875 11425 +9975 11425 +10075 11325 +10100 11075 +10100 10875 +10100 10475 +10550 10475 +10848 10075 +10575 10075 +10437 9801 +10435 9702 +10435 9601 +10436 9502 +10436 9399 +10436 9298 +10175 9325 +10175 9425 +10175 9525 +10175 9725 +10175 9825 +10075 10075 +9800 10075 +9525 10075 +9375 10125 +9290 9806 +9289 9706 +9289 9606 +9290 9505 +9290 9406 +9289 9306 +8775 9325 +8775 9425 +8775 9525 +8775 9725 +8775 9825 +8825 10075 +8575 10075 +8298 10075 +8025 10075 +7887 9801 +7885 9702 +7885 9601 +7886 9502 +7886 9399 +7886 9298 +7625 9325 +7625 9425 +7625 9525 +7625 9725 +7625 9825 +7525 10075 +7250 10075 +6975 10075 +6825 10125 +6740 9806 +6739 9706 +6739 9606 +6740 9505 +6740 9406 +6739 9306 +7028 8820 +6925 8825 +6725 8825 +6675 8475 +6675 8375 +6675 8275 +6675 8175 +6675 8075 +6675 7975 +6675 7875 +6775 7825 +6675 7711 +6675 7710 +6676 7560 +6675 7560 +6675 7410 +6676 7409 +6675 7260 +6676 7259 +6675 7075 +6675 6875 +6675 6675 +6825 6675 +6825 6525 +6675 6525 +6675 6375 +7075 6000 +7175 6025 +7075 6200 +7175 6425 +7025 6675 +7025 6825 +7175 6775 +7325 6775 +7175 6975 +7075 7075 +7275 7075 +7375 7275 +7425 7425 +7475 7525 +7275 7475 +7175 7575 +7075 7475 +7025 7625 +6875 7625 +6925 7725 +7075 7725 +7275 7825 +7450 7775 +7450 7875 +7575 7975 +7725 7975 +7675 8125 +7600 8225 +7700 8225 +7700 8375 +7700 8475 +7550 8575 +7475 8725 +7297 8703 +7325 8825 +7525 8825 +7625 8725 +7700 8625 +7925 8775 +8025 8775 +8125 8775 +8225 8775 +8375 8775 +8325 8625 +8425 8575 +8325 8525 +8425 8225 +8525 8225 +8625 8325 +8725 8325 +8725 8425 +8625 8475 +8800 8775 +8900 8675 +8800 8575 +8875 8375 +8875 8225 +8725 8175 +8775 8075 +8875 8075 +8875 7925 +8775 7875 +8625 7825 +8625 7725 +8625 7625 +8625 7475 +8525 7425 +8525 7575 +8475 7725 +8475 7825 +8375 7975 +8225 7825 +8025 7825 +7975 7925 +8075 7975 +8175 7975 +8175 8075 +8075 8125 +7975 8075 +7875 8125 +7875 8025 +7875 7875 +7750 7750 +7900 7750 +7975 7575 +7975 7425 +8125 7425 +8225 7425 +8175 7575 +8275 7600 +8375 7425 +8325 7325 +8425 7150 +8575 7150 +8850 7150 +8775 7075 +8825 6975 +8625 6975 +8425 6875 +8525 6775 +8425 6675 +8475 6450 +8625 6575 +8850 6575 +8850 6375 +8850 5975 +8674 5908 +8475 6050 +8275 6025 +8125 6125 +7975 6125 +7975 6025 +8125 5450 +8025 5450 +7925 5450 +7775 5450 +7625 5450 +7475 5450 +7500 5350 +7500 5250 +7425 5175 +7575 5175 +7675 5075 +7625 4975 +7775 4875 +7925 4975 +7875 5075 +7775 5025 +7775 5175 +7975 5175 +8250 5175 +8350 5375 +8350 5275 +8400 5175 +8375 5075 +8425 4975 +8550 5025 +8575 5175 +8625 5275 +8625 5375 +8775 5375 +8775 5275 +8875 5325 +8872 5204 +8900 5075 +8900 4925 +8775 4925 +8775 4775 +8775 4675 +8775 4575 +8625 4725 +8500 4675 +8475 4775 +8325 4775 +8125 4575 +8225 4575 +8300 4525 +8400 4500 +8400 4400 +8300 4425 +8300 4325 +8225 4275 +8125 4275 +8025 4175 +8000 3925 +8000 3725 +8000 3325 +7550 3325 +7550 3725 +7550 3925 +7825 4175 +7725 4175 +7525 4175 +7425 4275 +7325 4275 +7250 4325 +7250 4425 +7150 4425 +7150 4525 +7250 4525 +7325 4600 +7425 4600 +7225 4775 +7075 4775 +7050 4675 +6975 4775 +7025 4925 +7125 4975 +7175 5075 +7025 5075 +6925 5025 +6925 5275 +6925 5425 +6925 5525 +6925 5675 +6665 5610 +6665 5460 +6665 5310 +6665 5160 +6665 5010 +6665 4860 +6825 4775 +6665 4710 +6665 4560 +6775 4500 +6850 4550 +6850 4450 +6775 4375 +6725 4275 +6825 4275 +7050 4175 +7150 4275 +7250 4175 +7150 4125 +7175 3975 +7175 3875 +7075 3975 +7000 3875 +6875 3875 +6725 3900 +6700 3700 +6700 3575 +6700 3475 +6700 3375 +6700 3275 +6275 3125 +6300 3225 +6300 3325 +6300 3475 +6300 3625 +6200 3825 +6025 3825 +6025 3925 +5925 3975 +5825 3975 +5825 3875 +5450 3925 +5450 3725 +5450 3325 +5000 3325 +5000 3725 +5000 3925 +4625 3875 +4625 3975 +4525 3975 +4450 3875 +4325 3875 +4175 3900 +4150 3700 +4150 3575 +4150 3475 +4150 3375 +4150 3275 +3725 3125 +3750 3225 +3750 3325 +3750 3475 +3750 3625 +3650 3825 +3475 3825 +3475 3925 +3375 3975 +3275 3875 +3275 3975 +3300 4125 +3200 4175 +3300 4275 +3400 4175 +3575 4325 +3675 4425 +3725 4325 +4175 4275 +4275 4275 +4225 4375 +4300 4450 +4300 4550 +4225 4500 +4115 4560 +4115 4710 +4275 4775 +4115 4860 +4115 5010 +4115 5160 +4115 5310 +4115 5460 +4115 5610 +4375 5675 +4375 5525 +4375 5425 +4375 5275 +4375 5025 +4475 5075 +4625 5075 +4575 4975 +4475 4925 +4425 4775 +4500 4675 +4525 4775 +4675 4775 +4875 4600 +4775 4600 +4700 4525 +4600 4525 +4600 4425 +4700 4425 +4700 4325 +4600 4275 +4500 4175 +4600 4125 +4700 4175 +4775 4275 +4875 4275 +4975 4175 +5175 4175 +5275 4175 +5475 4175 +5575 4275 +5675 4275 +5750 4325 +5750 4425 +5750 4525 +5675 4575 +5575 4575 +5775 4775 +5925 4775 +6075 4725 +5950 4675 +5850 4500 +5850 4400 +5850 4275 +5750 4175 +5850 4125 +5950 4175 +6125 4325 +6275 4325 +6225 4425 +6225 4575 +6225 4675 +6225 4775 +6225 4925 +6350 4925 +6350 5075 +6322 5204 +6325 5325 +6225 5275 +6225 5375 +6075 5375 +6075 5275 +6025 5175 +6000 5025 +5875 4975 +5825 5075 +5850 5175 +5800 5275 +5800 5375 +5700 5175 +5425 5175 +5325 5075 +5375 4975 +5225 4875 +5075 4975 +5125 5075 +5225 5025 +5225 5175 +5025 5175 +4875 5175 +4950 5250 +4950 5350 +4925 5450 +5075 5450 +5225 5450 +5375 5450 +5475 5450 +5575 5450 +5425 6025 +5425 6125 +5575 6125 +5725 6025 +5925 6050 +6124 5908 +6300 5975 +6300 6375 +6300 6575 +6075 6575 +5925 6450 +5875 6675 +5975 6775 +5875 6875 +6075 6975 +6275 6975 +6225 7075 +6300 7150 +6025 7150 +5875 7150 +5775 7325 +5825 7425 +5975 7425 +6075 7475 +5975 7575 +6075 7625 +6075 7725 +5925 7725 +5925 7825 +6075 7825 +6225 7875 +6325 7925 +6325 8075 +6225 8075 +6175 8175 +6325 8225 +6325 8375 +6175 8325 +6075 8325 +5975 8225 +5875 8225 +5825 7975 +5675 7825 +5725 7600 +5625 7575 +5675 7425 +5575 7425 +5425 7425 +5425 7575 +5350 7750 +5200 7750 +5325 7875 +5475 7825 +5425 7925 +5525 7975 +5625 7975 +5625 8075 +5525 8125 +5425 8075 +5325 8025 +5325 8125 +5150 8225 +5050 8225 +5125 8125 +5175 7975 +5025 7975 +4900 7875 +4900 7775 +4725 7825 +4525 7725 +4375 7725 +4325 7625 +4475 7625 +4525 7475 +4625 7575 +4725 7475 +4925 7525 +4875 7425 +4825 7275 +4725 7075 +4525 7075 +4625 6975 +4775 6775 +4625 6775 +4475 6825 +4475 6675 +4625 6425 +4525 6200 +4625 6025 +4525 6000 +4125 6375 +4125 6525 +4275 6525 +4275 6675 +4125 6675 +4125 6875 +4125 7075 +4126 7259 +4125 7260 +4126 7409 +4125 7410 +4125 7560 +4126 7560 +4125 7710 +4125 7711 +4225 7825 +4125 7875 +4125 7975 +4125 8075 +4125 8175 +4125 8275 +4125 8375 +4125 8475 +4175 8825 +4375 8825 +4478 8820 +4747 8703 +4775 8825 +4925 8725 +4975 8825 +5075 8725 +5000 8575 +5150 8375 +5150 8475 +5150 8625 +5375 8775 +5475 8775 +5575 8775 +5675 8775 +5825 8775 +5775 8625 +5775 8525 +5875 8575 +6075 8475 +6175 8425 +6250 8575 +6350 8675 +6250 8775 +6225 9325 +6225 9425 +6225 9525 +6225 9725 +6225 9825 +6275 10075 +6025 10075 +5748 10075 +5475 10075 +5337 9801 +5335 9702 +5335 9601 +5336 9502 +5336 9399 +5336 9298 +5075 9325 +5075 9425 +5075 9525 +5075 9725 +5075 9825 +4975 10075 +4700 10075 +4425 10075 +4275 10125 +4190 9806 +4189 9706 +4189 9606 +4190 9505 +4190 9406 +4189 9306 +3675 9325 +3675 9425 +3675 9525 +3675 9725 +3675 9825 +3725 10075 +3475 10075 +3198 10075 +2925 10075 +2787 9801 +2785 9702 +2785 9601 +2786 9502 +2786 9399 +2786 9298 +2525 9325 +2525 9425 +2525 9525 +2525 9725 +2525 9825 +2425 10075 +2150 10075 +2450 10475 +2900 10475 +2900 10875 +2900 11075 +3275 11025 +3275 11125 +3375 11125 +3475 11075 +3475 10975 +3650 10975 +3750 10775 +3750 10625 +3750 10475 +3750 10375 +3725 10275 +4150 10425 +4150 10525 +4150 10625 +4150 10725 +4150 10850 +4175 11050 +4325 11025 +4450 11025 +4525 11125 +4625 11025 +4625 11125 +4600 11275 +4700 11325 +4600 11425 +4500 11325 +4275 11425 +4175 11425 +4225 11525 +4300 11600 +4300 11700 +4225 11650 +4115 11710 +4115 11860 +4275 11925 +4115 12010 +4115 12160 +4115 12310 +4115 12460 +4115 12610 +4115 12760 +4375 12825 +4375 12675 +4375 12575 +4375 12425 +4375 12175 +4475 12225 +4625 12225 +4575 12125 +4475 12075 +4425 11925 +4500 11825 +4525 11925 +4675 11925 +4875 11750 +4775 11750 +4700 11675 +4600 11675 +4600 11575 +4700 11575 +4700 11475 +4775 11425 +4875 11425 +4975 11325 +5175 11325 +5275 11325 +5000 11075 +5000 10875 +5000 10475 +5450 10475 +5450 10875 +5450 11075 +5475 11325 +5575 11425 +5675 11425 +5750 11475 +5750 11575 +5850 11550 +5850 11650 +5750 11675 +5675 11725 +5575 11725 +5775 11925 +5925 11925 +5950 11825 +6075 11875 +6225 11725 +6225 11825 +6225 11925 +6225 12075 +6350 12075 +6350 12225 +6322 12354 +6325 12475 +6225 12425 +6225 12525 +6075 12525 +6075 12425 +6025 12325 +6000 12175 +5875 12125 +5825 12225 +5850 12325 +5800 12425 +5800 12525 +5700 12325 +5425 12325 +5325 12225 +5375 12125 +5225 12025 +5075 12125 +5125 12225 +5225 12175 +5225 12325 +5025 12325 +4875 12325 +4950 12400 +4950 12500 +4925 12600 +5075 12600 +5225 12600 +5375 12600 +5475 12600 +5575 12600 +5425 13175 +5425 13275 +5575 13275 +5725 13175 +5925 13200 +6124 13058 +6300 13125 +6300 13525 +6300 13725 +6075 13725 +5925 13600 +5875 13825 +5975 13925 +5875 14025 +6075 14125 +6275 14125 +6225 14225 +6300 14300 +6025 14300 +5875 14300 +5775 14475 +5825 14575 +5725 14750 +5625 14725 +5675 14575 +5575 14575 +5425 14575 +5425 14725 +5350 14900 +5200 14900 +5325 15025 +5325 15175 +5325 15275 +5425 15225 +5525 15275 +5625 15225 +5625 15125 +5525 15125 +5425 15075 +5475 14975 +5675 14975 +5825 15125 +5925 14975 +5925 14875 +5975 14725 +5975 14575 +6075 14625 +6075 14775 +6075 14875 +6075 14975 +6225 15025 +6325 15075 +6325 15225 +6225 15225 +6175 15325 +6325 15375 +6325 15525 +6250 15725 +6350 15825 +6250 15925 +6075 15625 +6175 15575 +6175 15475 +6075 15475 +5975 15375 +5875 15375 +5775 15675 +5875 15725 +5775 15775 +5825 15925 +5675 15925 +5575 15925 +5475 15925 +5375 15925 +5150 15775 +5075 15875 +4975 15975 +4775 15975 +4747 15853 +4925 15875 +5000 15725 +5150 15625 +5150 15525 +5150 15375 +5050 15375 +5125 15275 +5175 15125 +5025 15125 +4900 15025 +4900 14925 +4725 14975 +4525 14875 +4375 14875 +4325 14775 +4475 14775 +4525 14625 +4625 14725 +4725 14625 +4925 14675 +4875 14575 +4825 14425 +4725 14225 +4525 14225 +4625 14125 +4775 13925 +4625 13925 +4475 13975 +4475 13825 +4625 13575 +4525 13350 +4625 13175 +4525 13150 +4125 13525 +4125 13675 +4275 13675 +4275 13825 +4125 13825 +4125 14025 +4125 14225 +4126 14409 +4125 14410 +4126 14559 +4125 14560 +4125 14710 +4126 14710 +4125 14860 +4125 14861 +4225 14975 +4125 15025 +4125 15125 +4125 15225 +4125 15325 +4125 15425 +4125 15525 +4125 15625 +4478 15970 +4375 15975 +4175 15975 +3800 15825 +3700 15925 +3700 15725 +3625 15575 +3525 15625 +3325 15725 +3225 15675 +3225 15775 +3275 15925 +3125 15925 +3025 15925 +2925 15925 +2825 15925 +2600 15775 +2600 15625 +2600 15525 +2450 15725 +2525 15875 +2425 15975 +2375 15875 +2225 15975 +2197 15853 +1928 15970 +1825 15975 +1625 15975 +1575 15625 +1575 15525 +1575 15425 +1575 15325 +1575 15225 +1575 15125 +1575 15025 +1675 14975 +1575 14861 +1575 14860 +1575 14710 +1576 14710 +1575 14560 +1576 14559 +1575 14410 +1576 14409 +1575 14225 +1575 14025 +1575 13825 +1725 13825 +1725 13675 +1575 13675 +1575 13525 +1975 13150 +2075 13175 +1975 13350 +2075 13575 +1925 13825 +1925 13975 +2075 13925 +2225 13925 +2075 14125 +1975 14225 +2175 14225 +2275 14425 +2325 14575 +2375 14675 +2175 14625 +2075 14725 +1975 14625 +1925 14775 +1775 14775 +1825 14875 +1975 14875 +2175 14975 +2350 14925 +2350 15025 +2475 15125 +2625 15125 +2575 15275 +2500 15375 +2600 15375 +2775 15275 +2775 15175 +2875 15225 +2975 15275 +3075 15225 +3075 15125 +2975 15125 +2925 14975 +2875 15075 +2775 15025 +2650 14900 +2800 14900 +2875 14725 +2875 14575 +3025 14575 +3125 14575 +3075 14725 +3175 14750 +3125 14975 +3275 15125 +3325 15375 +3425 15375 +3525 15475 +3625 15475 +3775 15525 +3775 15375 +3625 15325 +3675 15225 +3775 15225 +3775 15075 +3675 15025 +3525 14975 +3375 14975 +3375 14875 +3525 14875 +3525 14775 +3425 14725 +3525 14625 +3425 14575 +3275 14575 +3225 14475 +3325 14300 +3475 14300 +3750 14300 +3675 14225 +3725 14125 +3525 14125 +3325 14025 +3425 13925 +3325 13825 +3375 13600 +3525 13725 +3750 13725 +3750 13525 +3750 13125 +3574 13058 +3375 13200 +3175 13175 +3025 13275 +2875 13275 +2875 13175 +3025 12600 +2925 12600 +2825 12600 +2675 12600 +2525 12600 +2375 12600 +2400 12500 +2400 12400 +2325 12325 +2475 12325 +2575 12225 +2525 12125 +2675 12025 +2825 12125 +2775 12225 +2675 12175 +2675 12325 +2875 12325 +3150 12325 +3250 12525 +3250 12425 +3300 12325 +3275 12225 +3325 12125 +3450 12175 +3475 12325 +3525 12425 +3525 12525 +3675 12525 +3675 12425 +3775 12475 +3772 12354 +3800 12225 +3800 12075 +3675 12075 +3675 11925 +3675 11825 +3675 11725 +3675 11575 +3725 11475 +3575 11475 +3400 11325 +3300 11275 +3200 11325 +3300 11425 +3300 11550 +3300 11650 +3400 11825 +3525 11875 +3375 11925 +3225 11925 +3025 11725 +3125 11725 +3200 11675 +3200 11575 +3200 11475 +3125 11425 +3025 11425 +2925 11325 +2725 11325 +2625 11325 +2450 10875 +2450 11075 +2425 11325 +2325 11425 +2225 11425 +2150 11475 +2150 11575 +2050 11575 +2050 11675 +2150 11675 +2225 11750 +2325 11750 +2125 11925 +1975 11925 +1950 11825 +1875 11925 +1925 12075 +2025 12125 +2075 12225 +1925 12225 +1825 12175 +1825 12425 +1825 12575 +1825 12675 +1825 12825 +1565 12760 +1565 12610 +1565 12460 +1565 12310 +1565 12160 +1565 12010 +1725 11925 +1565 11860 +1565 11710 +1675 11650 +1750 11700 +1750 11600 +1675 11525 +1625 11425 +1725 11425 +1950 11325 +2050 11425 +2150 11325 +2050 11275 +2075 11125 +2075 11025 +1975 11125 +1900 11025 +1775 11025 +1625 11050 +1600 10850 +1600 10725 +1600 10625 +1600 10525 +1600 10425 +1725 10125 +1875 10075 +1640 9806 +1639 9706 +1639 9606 +1640 9505 +1640 9406 +1639 9306 +1928 8820 +1825 8825 +1625 8825 +1575 8475 +1575 8375 +1575 8275 +1575 8175 +1575 8075 +1575 7975 +1575 7875 +1675 7825 +1575 7711 +1575 7710 +1576 7560 +1575 7560 +1575 7410 +1576 7409 +1575 7260 +1576 7259 +1575 7075 +1575 6875 +1575 6675 +1725 6675 +1725 6525 +1575 6525 +1575 6375 +1975 6000 +2075 6025 +1975 6200 +2075 6425 +1925 6675 +1925 6825 +2075 6775 +2225 6775 +2075 6975 +1975 7075 +2175 7075 +2275 7275 +2325 7425 +2375 7525 +2175 7475 +2075 7575 +1975 7475 +1925 7625 +1775 7625 +1825 7725 +1975 7725 +2175 7825 +2350 7775 +2350 7875 +2475 7975 +2625 7975 +2575 8125 +2500 8225 +2600 8225 +2600 8375 +2600 8475 +2450 8575 +2375 8725 +2197 8703 +2225 8825 +2425 8825 +2525 8725 +2600 8625 +2825 8775 +2925 8775 +3025 8775 +3125 8775 +3275 8775 +3225 8625 +3325 8575 +3225 8525 +3325 8225 +3425 8225 +3525 8325 +3625 8325 +3625 8425 +3525 8475 +3700 8775 +3800 8675 +3700 8575 +3775 8375 +3775 8225 +3625 8175 +3675 8075 +3775 8075 +3775 7925 +3675 7875 +3525 7825 +3525 7725 +3525 7625 +3525 7475 +3425 7425 +3425 7575 +3375 7725 +3375 7825 +3275 7975 +3125 7825 +2925 7825 +2875 7925 +2975 7975 +3075 7975 +3075 8075 +2975 8125 +2875 8075 +2775 8125 +2775 8025 +2775 7875 +2650 7750 +2800 7750 +2875 7575 +2875 7425 +3025 7425 +3125 7425 +3075 7575 +3175 7600 +3275 7425 +3225 7325 +3325 7150 +3475 7150 +3750 7150 +3675 7075 +3725 6975 +3525 6975 +3325 6875 +3425 6775 +3325 6675 +3375 6450 +3525 6575 +3750 6575 +3750 6375 +3750 5975 +3574 5908 +3375 6050 +3175 6025 +3025 6125 +2875 6125 +2875 6025 +3025 5450 +2925 5450 +2825 5450 +2675 5450 +2525 5450 +2375 5450 +2400 5350 +2400 5250 +2325 5175 +2475 5175 +2575 5075 +2525 4975 +2675 4875 +2825 4975 +2775 5075 +2675 5025 +2675 5175 +2875 5175 +3150 5175 +3250 5375 +3250 5275 +3300 5175 +3275 5075 +3325 4975 +3450 5025 +3475 5175 +3525 5275 +3525 5375 +3675 5375 +3675 5275 +3775 5325 +3772 5204 +3800 5075 +3800 4925 +3675 4925 +3675 4775 +3675 4675 +3675 4575 +3525 4725 +3400 4675 +3375 4775 +3225 4775 +3025 4575 +3125 4575 +3200 4525 +3300 4500 +3300 4400 +3200 4425 +3200 4325 +3125 4275 +3025 4275 +2925 4175 +2900 3925 +2900 3725 +2900 3325 +2450 3325 +2450 3725 +2450 3925 +2725 4175 +2625 4175 +2425 4175 +2325 4275 +2225 4275 +2150 4325 +2150 4425 +2050 4425 +2050 4525 +2150 4525 +2225 4600 +2325 4600 +2125 4775 +1975 4775 +1950 4675 +1875 4775 +1925 4925 +2025 4975 +2075 5075 +1925 5075 +1825 5025 +1825 5275 +1825 5425 +1825 5525 +1825 5675 +1565 5610 +1565 5460 +1565 5310 +1565 5160 +1565 5010 +1565 4860 +1725 4775 +1565 4710 +1565 4560 +1675 4500 +1750 4550 +1750 4450 +1675 4375 +1625 4275 +1725 4275 +1950 4175 +2050 4275 +2150 4175 +2050 4125 +2075 3975 +2075 3875 +1975 3975 +1900 3875 +1775 3875 +1625 3900 +1600 3700 +1600 3575 +1600 3475 +1600 3375 +1600 3275 +1725 2975 +1640 2656 +1639 2556 +1639 2456 +1640 2355 +1640 2256 diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/readme b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/readme new file mode 100644 index 000000000..7203e5789 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/readme @@ -0,0 +1,35 @@ +NAME : eil101 +COMMENT : 101-city problem (Christofides/Eilon) +TYPE : TSP +DIMENSION : 101 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME: ali535 +TYPE: TSP +COMMENT: 535 Airports around the globe (Padberg/Rinaldi) +DIMENSION: 535 +EDGE_WEIGHT_TYPE: GEO +DISPLAY_DATA_TYPE: COORD_DISPLAY + +NAME : pr2392 +COMMENT : 2392-city problem (Padberg/Rinaldi) +TYPE : TSP +DIMENSION : 2392 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : rl5915 +COMMENT : 5915-city TSP (Reinelt) +TYPE : TSP +DIMENSION : 5915 +EDGE_WEIGHT_TYPE : EUC_2D + +NAME : usa13509 +COMMENT : Cities with population at least 500 in the continental US. +COMMENT : Contributed by David Applegate and Andre Rohe, based on the +COMMENT : data set "US.lat-long" from the ftp site ftp.cs.toronto.edu. +COMMENT : The file US.lat-long.Z can be found in the directory /doc/geography. +TYPE : TSP +DIMENSION : 13509 +EDGE_WEIGHT_TYPE : EUC_2D + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/rl5915.tsp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/rl5915.tsp new file mode 100644 index 000000000..9eda5f662 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/rl5915.tsp @@ -0,0 +1,5916 @@ +5915 +18192 8954 +18192 9856 +18192 11319 +18272 8624 +18416 7348 +18416 8294 +1200 7370 +1200 8184 +1200 10912 +1200 11440 +17904 572 +17904 2684 +17904 6908 +17904 7348 +17904 8624 +8272 308 +8272 2068 +8272 2508 +8272 3080 +8272 3608 +8272 5302 +8336 7260 +8464 7260 +8496 9548 +8496 10582 +8496 11440 +15888 9064 +15888 9504 +15888 10252 +15888 11000 +15936 8184 +16048 8184 +16208 8184 +16336 572 +16336 1012 +16336 1452 +16336 2992 +16336 4818 +16336 6028 +16336 7348 +1040 7370 +1040 8184 +1040 10912 +1040 11440 +4464 308 +4640 308 +4816 308 +4944 308 +5168 308 +5440 308 +5616 308 +5728 308 +5808 3080 +5808 3608 +5808 4664 +5808 5368 +5808 6072 +5808 7128 +5936 9658 +5936 11286 +16848 572 +16848 1452 +16848 2992 +16848 4708 +16848 6028 +16848 7348 +16848 8514 +16848 9284 +16848 9922 +16848 11198 +8240 7480 +8400 9548 +8400 10582 +8400 11440 +1520 9152 +1520 10912 +1520 11440 +1584 6446 +1584 7590 +1584 8294 +5168 11440 +5280 11440 +5456 11440 +5584 11440 +5712 11440 +2672 6336 +2784 6556 +2976 6556 +3104 6556 +3264 6556 +3360 6556 +3600 6556 +3856 6556 +3920 6556 +4016 6556 +4144 6556 +4208 6556 +4352 6556 +4464 6556 +4560 6556 +4688 6556 +4720 7260 +4720 8140 +4720 9702 +4720 10582 +4720 11132 +17008 572 +17008 1452 +17008 2992 +17008 5874 +17008 7348 +17072 8096 +17136 8096 +17280 8096 +17456 8096 +17520 8404 +17520 8954 +17520 10142 +17520 11319 +880 7370 +880 8184 +880 11440 +4144 4840 +4144 7700 +4304 8360 +4416 8360 +4576 8360 +4656 8360 +4864 8360 +5040 8360 +5296 8360 +5456 8844 +5456 9812 +5520 3608 +5520 4664 +5520 5368 +5520 5918 +5520 6930 +16560 8954 +16560 9922 +16592 572 +16592 1452 +16592 2992 +16592 4818 +16592 6138 +16592 7348 +7728 7744 +7728 9548 +7728 10846 +7792 7040 +7856 7040 +7952 7040 +8016 308 +8016 2068 +8016 2508 +8016 3080 +8016 3608 +8016 4268 +8016 5852 +16272 9064 +16272 9504 +16272 9922 +16272 11000 +16640 8844 +16720 8844 +16784 6028 +16784 7348 +16784 8514 +464 11440 +528 8184 +640 8184 +784 7370 +784 7964 +7664 6446 +7664 8074 +7664 9548 +7664 10846 +7728 308 +7728 2068 +7728 2508 +7728 3080 +7728 3608 +7728 4048 +7728 4488 +5232 3608 +5232 4664 +5232 5368 +5232 5918 +5232 6776 +5520 7920 +3856 7480 +3920 7920 +4016 7920 +4176 9152 +4176 9922 +4176 10472 +4176 10912 +4176 11440 +5984 748 +6096 3080 +6096 3608 +6096 4664 +6160 5368 +6224 5368 +6320 5368 +6496 5368 +6608 5698 +6608 6336 +6608 7502 +6608 9064 +6608 10142 +6608 11022 +17200 5874 +17200 7348 +17200 9284 +17200 9922 +17200 11198 +17296 5192 +17440 5192 +17568 5192 +17616 572 +17616 2992 +7248 10362 +7248 11286 +7376 308 +7376 968 +7376 2068 +7376 2508 +7376 3080 +7376 3608 +7376 4488 +7376 5588 +7376 6556 +7376 7744 +1808 6446 +1840 7436 +1840 8404 +1840 9042 +1840 10912 +1840 11440 +12272 9878 +12464 9064 +12592 9064 +12736 9064 +12848 902 +12848 1980 +12848 2640 +12848 3168 +12848 3608 +12848 4158 +12848 5368 +12848 6556 +12848 6996 +12848 8008 +12848 8844 +1648 8404 +1648 9152 +1648 10912 +1648 11440 +1680 6446 +1680 7590 +6256 9658 +6256 11022 +16976 8514 +16976 9284 +16976 9922 +16976 11198 +17072 5720 +17136 5720 +17440 5720 +17600 5720 +11600 572 +11600 1760 +11600 3388 +11600 5258 +11600 6556 +11600 6996 +11600 7898 +11632 8602 +11632 9284 +11632 10208 +17376 10142 +17728 10142 +18416 10142 +18608 10142 +18704 10142 +18864 10142 +18992 10142 +19088 10142 +6224 968 +6224 3080 +6224 3608 +6224 4664 +6400 10912 +6768 10912 +6864 11286 +1936 6336 +1936 7436 +1968 8404 +1968 9152 +1968 10912 +1968 11440 +3984 8712 +4304 8932 +4416 8932 +4496 10802 +15440 1232 +15440 3608 +15440 4180 +15440 4818 +15536 5808 +15648 5808 +15760 5808 +15840 5808 +15936 5808 +16048 5808 +16208 5808 +5584 10252 +5728 10252 +6000 10252 +6064 10252 +6160 10252 +6320 968 +6320 3080 +6320 3608 +6320 4664 +6384 9548 +6384 10472 +16720 11198 +17088 11198 +17376 11198 +17728 11198 +18416 11198 +18608 11198 +18704 11198 +18848 11198 +15280 572 +15280 1232 +15280 3608 +15280 4180 +15280 4818 +15280 6138 +15280 7348 +15280 8228 +15280 9064 +15280 9504 +15280 10252 +15280 11000 +3472 7920 +3472 8712 +3472 9372 +3472 10472 +3472 10912 +3472 11440 +208 11440 +432 7964 +944 7964 +1104 7370 +1424 6446 +1424 7370 +1424 8294 +10096 4378 +10096 5478 +10096 6556 +10096 7480 +10096 8008 +10096 8602 +10096 9284 +10096 10318 +10096 11440 +10256 3608 +10336 3608 +10448 3608 +10544 3608 +10608 3608 +10672 3608 +10752 3608 +10864 3608 +10992 3608 +11088 3608 +11168 3608 +11280 3608 +11408 3608 +688 7370 +688 11440 +6160 968 +6496 968 +6592 968 +6736 968 +6848 968 +6944 968 +7104 968 +7232 968 +7552 968 +7600 308 +7600 2068 +7600 2508 +7600 3080 +7600 3608 +7600 4048 +7600 4488 +7632 5148 +7792 5148 +7856 5148 +7920 5148 +8112 5148 +8384 5148 +8464 5148 +8624 5148 +8800 5148 +8912 5148 +9216 5148 +9504 5148 +9616 5148 +9744 5148 +9888 5148 +9936 6556 +9936 7480 +9936 8382 +9936 9284 +9936 11440 +10032 572 +10032 1452 +10032 2728 +6496 7084 +6736 7084 +6768 9064 +6768 10142 +9936 572 +9936 1452 +5200 10032 +7408 10362 +7568 10692 +7856 10692 +7936 10692 +8032 10692 +8144 10692 +8224 10692 +8320 10692 +8784 10692 +8976 10692 +9408 10692 +10288 10692 +10400 10692 +10560 10692 +10704 10692 +10864 10692 +10960 10692 +11136 10692 +11264 10692 +11392 10692 +11472 10692 +11568 10692 +4880 9218 +4880 10032 +4880 10582 +4880 11132 +4944 3608 +4944 4664 +4944 5368 +4944 5918 +4944 6776 +4944 7436 +6944 308 +7104 308 +7232 308 +7792 308 +7856 308 +7920 308 +8128 308 +8384 308 +8464 308 +8528 308 +8592 308 +8688 308 +8800 308 +8912 308 +9008 308 +9104 308 +9200 308 +9232 1452 +9232 2288 +9232 3388 +9344 7260 +9456 8602 +9456 11440 +3568 7920 +3664 7920 +3728 7920 +8240 9548 +8240 11440 +9376 6776 +9776 572 +9776 1452 +9776 2508 +9776 3388 +6992 7854 +6992 9174 +6992 9812 +6992 10362 +7056 2068 +7056 3080 +7056 3608 +7056 4664 +7056 5588 +7056 6556 +14512 682 +14640 3608 +14640 4048 +14640 4598 +14640 6138 +14640 7568 +14640 8228 +14640 9064 +14640 9504 +14640 10252 +14640 11000 +14768 1012 +14848 1012 +14960 1012 +15376 1012 +15536 1012 +15664 1012 +15760 1012 +15840 1012 +15936 1012 +16048 1012 +16208 1012 +16464 1012 +16528 572 +14736 6138 +14736 7568 +14736 8228 +14736 9064 +14736 9504 +14736 10252 +14736 10890 +14768 4928 +14880 4928 +14976 4928 +15376 4928 +15536 4928 +15648 4928 +15760 4928 +15840 4928 +15936 4928 +16048 4928 +16208 4928 +16464 4928 +16704 4928 +13808 6028 +13808 6776 +13808 7788 +13808 8228 +13808 9504 +13808 10362 +13808 11110 +14032 4708 +14144 4708 +14320 4708 +14464 4708 +16944 4708 +3664 8712 +3728 9284 +3760 9702 +3760 10472 +3760 10912 +3760 11440 +3600 8712 +3600 9482 +4048 9812 +4336 9812 +4576 9812 +4656 9812 +4976 8844 +8976 8118 +8976 9394 +8976 11440 +10176 6556 +10304 6556 +10448 6556 +10576 6556 +10736 6556 +10832 6556 +10896 6556 +10976 6556 +11088 6556 +11168 6556 +11264 6556 +11424 6556 +11536 6556 +11664 6556 +11728 6556 +11792 6556 +11872 6556 +11968 6556 +12112 6556 +12272 6556 +12448 6556 +12608 6556 +12736 6556 +13008 6556 +13072 1012 +13072 1980 +13072 2640 +13072 3608 +13072 4268 +13072 5368 +13168 572 +13264 572 +13408 572 +13568 572 +13696 572 +14016 572 +14160 572 +14320 572 +15120 572 +15376 572 +10480 572 +10480 1452 +10480 6006 +7120 2508 +7120 3080 +7120 3608 +7120 4664 +7120 5588 +7120 6556 +7120 7744 +7120 9064 +7120 9812 +7120 10362 +7120 11286 +3728 8712 +4016 10472 +4016 10912 +4016 11440 +6480 9064 +6896 9064 +7248 2068 +7248 2508 +7248 3080 +7248 3608 +7248 4664 +7248 5588 +7248 6556 +7248 7480 +3920 8712 +5056 9372 +3536 9372 +3536 10472 +3536 10912 +3536 11440 +8784 8448 +10304 8448 +10560 8448 +10704 8448 +10768 8448 +10848 8448 +10976 8448 +11120 8448 +11264 8448 +11552 8448 +11760 8448 +11888 8448 +12080 8448 +12240 8448 +12720 572 +12720 1980 +12720 3718 +12720 5368 +12720 6996 +2800 7326 +2928 7700 +2992 7700 +3104 7700 +3264 7700 +4208 7700 +8112 2068 +8112 2508 +8112 3080 +8112 3608 +8112 4268 +8112 7480 +9584 2728 +9584 3388 +9840 2288 +11440 2288 +11728 2288 +11824 2288 +11984 2288 +12112 2288 +12256 2288 +12384 2288 +12464 2288 +12496 572 +12496 1232 +12608 1012 +5584 7920 +5680 7920 +5760 7920 +6896 7920 +7568 7920 +8144 7920 +8208 7920 +9136 7590 +10544 6116 +11088 6116 +11168 6116 +11264 6116 +11312 572 +11312 1496 +11312 5258 +10768 572 +10768 1342 +10768 4488 +10768 5038 +10768 5588 +10768 6996 +10768 9284 +10768 9878 +5584 8844 +5616 3080 +6160 3080 +6496 3080 +6608 3080 +6736 3080 +6848 3080 +6944 3080 +7792 3080 +7856 3080 +7920 3080 +8384 3080 +8464 3080 +8560 3080 +8688 3080 +8800 3080 +8912 3080 +9008 3080 +8688 2288 +8464 6116 +8528 2068 +8528 2508 +8528 3608 +8464 2068 +8464 2508 +8464 3608 +17456 572 +17456 2992 +17456 7238 +11728 2948 +11824 2948 +11984 2948 +12112 2948 +12256 2948 +12384 2948 +12464 2948 +12560 572 +12560 1980 +12560 2728 +17552 7238 +17632 8184 +17776 8184 +18080 8184 +18256 9064 +10448 10032 +10560 10032 +10704 10032 +10864 10032 +10976 10032 +11136 10032 +11760 10032 +11888 10032 +12032 10032 +12144 10032 +12880 10032 +13008 10032 +13168 10032 +13312 10032 +13472 10032 +13584 10032 +13680 3608 +13680 4268 +13680 6028 +13680 6776 +13680 8008 +13680 9504 +17760 6908 +18048 6908 +18128 7348 +12640 3388 +12784 2640 +12784 3168 +10976 8008 +11088 8008 +11264 8008 +11664 8008 +11728 8008 +11792 8008 +11888 8008 +12912 8008 +13008 8008 +13184 8008 +13328 8008 +13456 8008 +13568 8008 +8400 2068 +8400 2508 +8400 3608 +9328 1452 +9520 1452 +9632 1452 +9840 1452 +10160 1452 +10256 1452 +10336 1452 +10544 1452 +10608 1452 +10672 1452 +10864 1452 +10992 1452 +11088 1452 +11168 1452 +12304 572 +14864 3608 +14864 4048 +14864 6138 +14864 7568 +14864 8228 +14864 9064 +14864 9504 +14864 10252 +14864 10890 +7792 2068 +7792 2508 +7792 3608 +7792 4048 +7792 4488 +7792 6446 +15376 3608 +15376 4180 +15376 6138 +15376 7348 +6864 2068 +6864 3608 +6864 4774 +6928 5368 +10544 5368 +10672 5368 +10704 9284 +12464 11000 +12592 11000 +12736 11000 +12880 11000 +13008 11000 +13168 11000 +13312 11000 +13456 11000 +13584 11000 +14144 11000 +14224 11000 +14336 11000 +14416 11000 +14992 11000 +15440 11000 +15632 11000 +15760 11000 +15824 11000 +16160 11000 +16464 11000 +15952 572 +15952 1452 +16048 2992 +16208 2992 +16464 2992 +16704 2992 +17072 2992 +17136 2992 +17296 2992 +15664 572 +15664 3608 +15664 4180 +15664 7348 +15664 7788 +15664 9064 +15664 9504 +15664 10252 +16432 1452 +8144 9548 +8144 11440 +9616 572 +12112 572 +12112 3938 +12112 5258 +8304 9548 +8304 11440 +12912 8844 +13008 8844 +13184 8844 +13328 8844 +13456 8844 +13552 3608 +13552 4378 +13552 5368 +13552 6028 +13552 6776 +11920 6996 +11920 9284 +11952 572 +11952 3938 +11952 5258 +10320 572 +10448 11440 +11824 572 +11824 3938 +11824 5258 +12656 5368 +5008 10692 +5008 11132 +13168 1980 +13168 2640 +13168 3608 +13168 4378 +13168 5478 +13232 6028 +13376 6028 +13488 6028 +14032 6028 +14144 6028 +14224 6028 +14320 6028 +14464 6028 +14976 6028 +16704 6028 +3280 10912 +3280 11440 +6736 308 +6736 2068 +6736 3608 +6736 4774 +6736 5698 +6736 6336 +8784 11440 +10288 11440 +10512 11440 +11792 6996 +8720 4158 +6800 5808 +6800 6336 +6912 6556 +7856 6556 +8896 6556 +8944 2288 +8944 3608 +7568 9504 +7856 9504 +8784 9504 +14144 8228 +14224 8228 +14336 8228 +14416 8228 +14480 8228 +15440 8228 +15504 8228 +15536 3608 +15536 4180 +15536 7348 +15568 572 +15760 572 +15840 572 +16048 572 +16208 572 +16704 572 +17104 572 +17296 572 +18000 572 +18080 572 +11728 572 +11728 3938 +11728 5258 +11728 6996 +11760 9284 +12272 3938 +12272 5258 +10512 9284 +7856 4048 +7920 4048 +8784 2288 +8784 3608 +8784 4268 +7920 2068 +7920 2508 +7920 3608 +7920 4488 +8880 4268 +10544 572 +10544 6996 +10608 4488 +9008 2288 +9312 2288 +11440 572 +11440 5258 +11440 6996 +11536 6996 +15824 7348 +15824 7788 +15824 9064 +15824 9504 +15824 10252 +6608 2068 +6608 3608 +6608 4664 +6896 5808 +112 11198 +10672 4488 +10832 4488 +10864 572 +10864 5038 +11088 6996 +9520 572 +9520 2068 +12240 6996 +3280 8712 +3280 9152 +3632 10472 +3632 10912 +3632 11440 +11568 9284 +14128 10472 +14160 1342 +14160 3608 +14160 4048 +14160 6776 +14160 7678 +14160 9504 +4080 10472 +4336 10472 +4576 10472 +4976 10032 +528 7370 +16016 1452 +16016 7348 +16016 9064 +16016 9504 +16160 9922 +16464 9922 +16640 9922 +16720 9922 +17088 9922 +1744 10912 +2112 10912 +2368 10912 +2544 10912 +2944 10912 +3056 8712 +3056 9152 +3088 10912 +4080 10912 +4336 10912 +4432 10912 +13456 9504 +14224 7788 +14336 7788 +14416 7788 +14448 1342 +14448 3608 +14448 4048 +1280 8404 +1744 8404 +1904 8404 +2160 8404 +2224 8404 +2368 8404 +2544 8404 +2704 7546 +14032 1342 +14032 3608 +14032 6776 +14976 7568 +14320 4048 +14768 4048 +13392 1980 +13392 3608 +13392 4378 +13392 5368 +16688 1452 +13360 6776 +16208 1452 +16208 7348 +1504 6336 +2064 6336 +2160 6336 +2224 6336 +2384 6336 +2544 6336 +4560 7370 +4304 7260 +4384 7260 +4464 7260 +4816 7260 +4880 7260 +14352 1342 +14352 3608 +14352 9504 +14352 10252 +5744 8844 +4336 11440 +6160 3608 +6160 4664 +6160 11132 +6512 3608 +6512 4664 +6928 2068 +6928 3608 +6928 4664 +11280 6996 +12592 6996 +13488 3608 +14768 3608 +14960 3608 +15760 3608 +15840 3608 +15920 7348 +12368 572 +12368 1232 +12368 3938 +12368 5258 +11664 6996 +17776 2684 +12464 3938 +13488 4268 +13232 6666 +10192 572 +944 7370 +10848 9284 +17088 9284 +17344 9284 +4592 4840 +4592 6028 +11024 572 +11024 5038 +2384 7436 +2384 9152 +2384 11440 +2928 8712 +2928 9152 +2928 11440 +2544 7546 +2544 9152 +2544 11440 +9648 7480 +2048 7172 +2160 7172 +2224 7172 +3440 7172 +1744 9042 +1744 11440 +2096 9152 +2096 11440 +3056 11440 +10960 6996 +2992 8712 +2992 9152 +10896 6996 +4080 11440 +16144 9064 +16144 9504 +14224 6776 +14224 9504 +14224 10252 +17104 8624 +17136 7348 +15440 9064 +15440 9504 +15440 10252 +15760 7788 +15856 1452 +4208 4840 +18320 7348 +15760 4180 +9712 7480 +17072 1452 +17072 7348 +16464 9504 +7856 2068 +7856 2508 +7856 3608 +7856 4488 +16720 7348 +15504 9064 +4368 4840 +6000 11132 +6064 11132 +4688 5808 +4816 5808 +4880 5808 +9008 3608 +15760 9064 +17424 9064 +18512 8294 +4880 4664 +4880 5368 +4880 6776 +4688 4488 +4752 4488 +4816 4488 +18608 8866 +14416 9504 +14416 10252 +15760 7348 +18224 7348 +13424 6776 +18704 8866 +11088 4928 +11168 4928 +12464 5368 +15760 1452 +15760 9504 +15760 10252 +432 7480 +11168 6996 +13488 6776 +13584 9504 +13488 5368 +11184 572 +4464 4840 +4528 4840 +4816 5368 +4816 6776 +11088 572 +10672 572 +10256 572 +9840 572 +18192 10670 +18379 8624 +18416 3619 +18416 7766 +1200 3575 +1200 9658 +17904 231 +17904 1628 +17904 4796 +17904 7766 +17904 9438 +17940 9570 +18224 10670 +8272 1188 +8272 7029 +8416 7260 +8496 8866 +15888 8503 +15888 9878 +15888 10626 +15888 11429 +15984 8184 +16128 8184 +16299 8184 +16336 2222 +16336 3850 +16336 5368 +16336 6798 +16336 7887 +1040 3575 +1040 9658 +4432 220 +4496 308 +4784 308 +4848 308 +5040 308 +5296 308 +5584 308 +5648 308 +5808 220 +5808 2024 +5808 4048 +5936 8382 +5936 10802 +16848 1012 +16848 2222 +16848 3850 +16848 5368 +16848 6688 +16848 7876 +16848 10560 +16848 11528 +8240 1188 +8240 7018 +8260 7700 +8400 8756 +1520 10032 +1552 8932 +1584 3113 +1584 7018 +1584 8789 +5136 11528 +5200 11440 +5360 11440 +5552 11528 +5616 11440 +5808 11440 +5968 11528 +2672 3113 +2736 6556 +2880 6556 +3024 6556 +3200 6556 +3312 6556 +3408 6556 +3808 6556 +3888 6556 +3952 6556 +4096 6556 +4176 6556 +4256 6556 +4432 6556 +4496 6556 +4640 6556 +4720 7590 +4720 8866 +4720 11495 +17008 1012 +17008 2222 +17008 4356 +17008 6688 +17008 7843 +17028 8096 +17104 8096 +17168 8096 +17408 8096 +17499 8096 +17520 9603 +17520 10670 +880 3575 +880 9922 +4144 2365 +4144 5434 +4144 6908 +4272 8360 +4336 8360 +4512 8360 +4624 8360 +4688 8360 +4784 8360 +4944 8360 +5136 8360 +5488 7304 +5456 8481 +5456 10692 +5520 2178 +5520 4048 +5520 6402 +16560 10890 +16576 8184 +16592 1012 +16592 2222 +16592 3850 +16592 5478 +16592 6798 +16592 7887 +7728 8756 +7748 7040 +7824 7040 +7888 7040 +8016 1188 +8016 4818 +8016 6919 +16272 10461 +16272 11429 +16432 8844 +16592 8844 +16688 8844 +16763 8844 +16784 1012 +16784 2222 +16784 3850 +16784 5478 +16784 6688 +16784 7876 +464 9691 +484 8184 +560 8184 +747 8184 +784 3575 +7664 6908 +7664 8756 +7728 1188 +7728 4818 +5232 2178 +5232 4048 +5232 6402 +5232 7315 +5499 7612 +5520 8382 +5520 10692 +3856 2959 +3856 6908 +3876 7920 +3952 7920 +4096 7920 +4784 748 +4848 748 +5040 748 +5296 748 +5584 748 +5648 748 +5872 748 +6096 264 +6096 2024 +6096 4048 +6096 5225 +6116 5368 +6192 5368 +6256 5368 +6416 5368 +6571 5368 +6096 594 +6608 8646 +6608 9438 +6608 11495 +17200 5335 +17200 6688 +17200 7722 +17200 10560 +17200 11528 +17392 5192 +17504 5192 +17616 231 +17616 1782 +17616 4213 +7248 10802 +7376 638 +7376 1518 +7376 4048 +7376 4928 +7376 8756 +1808 3113 +1824 6864 +1840 8052 +1840 10032 +12272 11165 +12384 9064 +12528 9064 +12656 9064 +12827 9064 +12848 1606 +12848 2310 +12848 4708 +12848 6072 +12848 7392 +12848 8536 +1648 8778 +1648 10032 +1664 8184 +1680 3113 +1680 7018 +1680 8063 +4784 528 +4848 528 +5040 528 +5296 528 +5584 528 +5648 528 +5872 528 +5936 330 +5936 2024 +5936 4048 +5936 5324 +6096 6556 +6192 6556 +6256 8382 +6256 11495 +16976 6688 +16976 7876 +16976 10560 +16976 11528 +17040 5720 +17104 5720 +17168 5720 +17392 5720 +17504 5720 +17680 231 +17680 1782 +17680 4246 +11600 231 +11600 902 +11600 4488 +11600 6072 +11600 7392 +11616 8228 +11632 11275 +17264 10549 +17264 11528 +17284 10142 +17472 10142 +17552 10142 +17920 10142 +18368 10142 +18512 10142 +18656 10142 +18784 10142 +18928 10142 +19024 10142 +6224 429 +6224 2024 +6224 4048 +6224 8382 +6224 10813 +6352 10912 +6464 10912 +6672 10912 +6843 10912 +1936 3113 +1936 6754 +1936 8063 +1952 8184 +1968 8778 +1968 10032 +816 3575 +816 9922 +3984 2959 +3984 6908 +4128 8932 +4272 8932 +4336 8932 +4496 9031 +4496 11495 +15440 583 +15440 2530 +15440 5489 +15460 5808 +15600 5808 +15712 5808 +15792 5808 +15888 5808 +15984 5808 +16128 5808 +16288 5808 +16400 6798 +16400 7876 +16400 10461 +16400 11429 +5360 2178 +5360 4048 +5360 7194 +5552 10252 +5632 10252 +5808 10252 +5968 10252 +6032 10252 +6112 10252 +6192 10252 +6304 8536 +6288 11495 +6320 429 +6320 2024 +6320 4048 +1168 9658 +1232 3575 +1232 7843 +6352 429 +6352 2024 +6352 4048 +6352 8657 +6368 8844 +6384 11495 +16688 11407 +16784 11198 +16912 11198 +17040 11198 +17136 11198 +17296 11198 +17472 11198 +17552 11198 +17920 11198 +18368 11198 +18512 11198 +18656 11198 +18768 11198 +18928 11198 +15280 2530 +15280 5478 +15280 6798 +15280 7788 +15280 8646 +15280 9878 +15280 10626 +15280 11429 +3472 10032 +3488 7480 +3504 3113 +3504 7139 +208 9581 +308 7964 +480 7964 +560 7964 +736 7964 +848 7964 +912 7964 +976 7964 +1083 7964 +1104 3575 +1104 7843 +1392 2904 +1392 5852 +1408 6028 +1424 8778 +1424 10032 +10224 3608 +10288 3608 +10384 3608 +10512 3608 +10576 3608 +10640 3608 +10704 3608 +10800 3608 +10928 3608 +11056 3608 +11120 3608 +11216 3608 +11344 3608 +11488 3608 +11664 902 +688 3575 +688 9922 +5872 968 +6128 968 +6192 968 +6256 968 +6416 968 +6544 968 +6672 968 +6784 968 +6896 968 +7008 968 +7184 968 +7312 968 +7504 968 +7600 759 +7600 1397 +7600 4939 +7664 5148 +7760 5148 +7824 5148 +7888 5148 +7952 5148 +8048 5148 +8176 5148 +8336 5148 +8432 5148 +8496 5148 +8752 5148 +8848 5148 +8992 5148 +9440 5148 +9552 5148 +9680 5148 +9824 5148 +10011 5148 +10032 231 +10032 1012 +10032 1760 +5488 2178 +5488 4048 +5488 6402 +5648 7084 +5936 7084 +6096 7084 +6192 7084 +6416 7084 +6544 7084 +6672 7084 +6768 7161 +6768 8646 +6768 9438 +9936 231 +9936 1012 +9936 1760 +5200 2178 +5200 4048 +5200 6402 +5200 7458 +5200 10593 +7408 638 +7408 1518 +7408 4048 +7408 4928 +7408 8756 +7536 10692 +7600 10692 +7696 10692 +7824 10692 +7888 10692 +7984 10692 +8096 10692 +8176 10692 +8272 10692 +8368 10692 +8432 10692 +8720 10692 +8848 10692 +9104 10692 +9728 10692 +10032 10692 +10256 10692 +10320 10692 +10480 10692 +10656 10692 +10768 10692 +10928 10692 +11024 10692 +11216 10692 +11328 10692 +11440 10692 +11520 10692 +11600 10692 +11707 10692 +11728 11330 +11728 10868 +4880 11495 +4944 2178 +4944 4048 +4944 6402 +6896 220 +7008 308 +7184 308 +7312 308 +7504 308 +7664 308 +7760 308 +7824 308 +7888 308 +7952 308 +8048 308 +8208 308 +8336 308 +8432 308 +8496 308 +8560 308 +8624 308 +8752 308 +8848 308 +8976 308 +9040 308 +9168 308 +9232 220 +9232 759 +9232 1760 +9232 2948 +9232 7029 +3440 10032 +3504 7920 +3632 7920 +3696 7920 +3760 3113 +3760 6908 +8240 8899 +8272 8756 +8304 1188 +8304 6908 +8304 8613 +9296 6897 +9296 9878 +9456 6776 +9552 6776 +9680 6776 +9776 231 +9776 1012 +9776 1760 +6992 8646 +6992 10802 +7024 7260 +7056 638 +7056 1518 +7056 2574 +7056 4048 +7056 7139 +14640 2530 +14640 5368 +14640 6798 +14640 8646 +14640 9878 +14640 11539 +14736 1012 +14800 1012 +14912 1012 +15120 1012 +15328 1012 +15408 1012 +15472 1012 +15600 1012 +15728 1012 +15792 1012 +15888 1012 +15984 1012 +16128 1012 +16272 1012 +16400 1012 +16528 913 +14704 2530 +14720 4928 +14736 5357 +14736 6798 +14736 8646 +14736 9878 +14736 11429 +14816 4928 +14928 4928 +15136 4928 +15328 4928 +15408 4928 +15472 4928 +15600 4928 +15712 4928 +15792 4928 +15888 4928 +15984 4928 +16128 4928 +16288 4928 +16400 4928 +16544 4928 +16656 4928 +16752 4928 +16816 1012 +16816 2222 +16816 3850 +13808 5137 +13808 7282 +13808 8866 +13808 9878 +13808 11539 +13908 4708 +14080 4708 +14224 4708 +14400 4708 +14512 4708 +14736 4708 +14816 4708 +14928 4708 +15136 4708 +15328 4708 +15408 4708 +15472 4708 +15600 4708 +15712 4708 +15792 4708 +15888 4708 +15984 4708 +16128 4708 +16288 4708 +16400 4708 +16544 4708 +16656 4708 +16752 4708 +16912 4708 +16976 1012 +16976 2222 +16976 3971 +3664 3113 +3664 7018 +3664 9119 +3684 9284 +3760 10142 +3600 3113 +3600 7128 +3600 9042 +3712 9812 +3888 9812 +4128 9812 +4272 9812 +4400 9812 +4528 9812 +4624 9812 +4688 9812 +4795 9812 +4955 9152 +4816 11495 +4976 2178 +4976 4048 +4976 6402 +8976 6897 +8976 9878 +8996 6556 +9296 6556 +9456 6556 +9552 6556 +9680 6556 +9808 6556 +10016 6556 +10128 6556 +10224 6556 +10384 6556 +10512 6556 +10656 6556 +10800 6556 +10864 6556 +10928 6556 +11040 6556 +11120 6556 +11216 6556 +11328 6556 +11504 6556 +11568 6556 +11632 6556 +11696 6556 +11760 6556 +11824 6556 +11920 6556 +12032 6556 +12176 6556 +12384 6556 +12512 6556 +12688 6556 +12800 6556 +12912 6556 +13072 484 +13072 1606 +13072 2310 +13072 3124 +13072 3938 +13072 4708 +13072 6193 +13108 572 +13200 572 +13344 572 +13488 572 +13632 572 +13856 572 +14096 572 +14224 572 +14400 572 +14640 572 +14736 572 +14800 572 +14912 572 +15040 572 +15200 572 +15328 572 +15408 484 +10016 6776 +10128 6776 +10224 6776 +10384 6776 +10480 231 +10480 1012 +10480 1760 +7120 638 +7120 1518 +7120 4048 +7120 8536 +7120 10802 +3728 3113 +3728 6908 +3899 9592 +4016 10142 +5776 10802 +5796 9064 +5968 9064 +6032 9064 +6112 9064 +6192 9064 +6352 9064 +6432 9064 +6512 9064 +6672 9064 +6864 9064 +6928 9064 +7024 9064 +7211 9064 +7248 638 +7248 1518 +7248 4048 +7248 7128 +7248 8767 +3920 2959 +3920 6908 +3920 9163 +3972 9372 +4128 9372 +4272 9372 +4528 9372 +4624 9372 +4688 9372 +4784 9372 +4960 9372 +5136 9372 +5552 9372 +5632 9372 +5808 9372 +5968 9372 +6032 9372 +6112 9372 +6192 9372 +6352 9372 +6432 9372 +6512 9471 +6512 11495 +16368 2222 +16368 3850 +16368 5368 +16368 6798 +16368 7876 +16368 10461 +16368 11429 +3536 3113 +3536 7128 +3536 10032 +8464 8745 +8720 8448 +8848 8448 +9104 8448 +9728 8448 +10000 8448 +10256 8448 +10352 8448 +10464 8448 +10656 8448 +10736 8448 +10800 8448 +10912 8448 +11040 8448 +11200 8448 +11344 8448 +11504 8448 +11600 8448 +11712 8448 +11792 8448 +11984 8448 +12192 8448 +12272 8448 +12384 8448 +12528 8448 +12656 8448 +12720 1606 +12720 2574 +12720 4708 +12720 6072 +12720 7392 +12816 792 +12944 792 +13120 792 +13200 792 +13344 792 +13488 792 +13632 792 +13856 792 +14096 792 +14224 792 +14400 792 +14640 792 +14736 792 +14800 792 +14912 792 +15051 792 +2800 3113 +2800 6864 +2852 7700 +2960 7700 +3024 7700 +3200 7700 +3312 7700 +3424 7700 +3504 7700 +3632 7700 +3696 7700 +3808 7700 +3888 7700 +3952 7700 +4096 7700 +4176 7700 +4240 7799 +8048 8756 +8080 7700 +8112 1188 +8112 4818 +8112 7018 +1328 3223 +1328 6919 +1456 8778 +1456 10032 +9680 2288 +9808 2288 +9872 2288 +10000 2288 +10096 2288 +10224 2288 +10288 2288 +10384 2288 +10512 2288 +10576 2288 +10640 2288 +10704 2288 +10800 2288 +10928 2288 +11056 2288 +11120 2288 +11216 2288 +11344 2288 +11408 2288 +11488 2288 +11696 2288 +11760 2288 +11904 2288 +12048 2288 +12176 2288 +12336 2288 +12432 2288 +12496 913 +12496 1606 +12516 1012 +12688 1012 +12816 1012 +12944 1012 +13120 1012 +13200 1012 +13344 1012 +13488 1012 +13632 1012 +13867 1012 +5232 10472 +5488 7920 +5552 7920 +5632 7920 +5712 7920 +5808 7920 +5968 7920 +6096 7920 +6192 7920 +6416 7920 +6544 7920 +6672 7920 +6864 7920 +6928 7920 +7040 7920 +7184 7920 +7536 7920 +7600 7920 +7696 7920 +7760 7920 +7824 7920 +7888 7920 +8096 7920 +8176 7920 +8256 7920 +8448 7920 +8720 7920 +8848 7920 +9115 7920 +9136 1188 +9136 2948 +9136 5962 +9136 7018 +9444 6116 +9552 6116 +9680 6116 +9808 6116 +10016 6116 +10144 6116 +10224 6116 +10384 6116 +10512 6116 +10576 6116 +10656 6116 +10800 6116 +10864 6116 +10928 6116 +11056 6116 +11120 6116 +11216 6116 +11312 231 +11312 902 +11312 4488 +11312 5973 +9008 9878 +9104 1188 +9104 2948 +9104 5962 +9104 7029 +5648 10681 +5808 10472 +5968 10472 +6032 10472 +6112 10472 +6192 10472 +6352 10472 +6464 10472 +6672 10472 +6848 10472 +7024 10472 +7200 10472 +7376 10472 +7536 10472 +7600 10472 +7696 10472 +7824 10472 +7888 10472 +7984 10472 +8096 10472 +8176 10472 +8272 10472 +8368 10472 +8432 10472 +8720 10472 +8848 10472 +9104 10472 +9728 10472 +10032 10472 +10256 10472 +10320 10472 +10480 10472 +10656 10472 +10747 10472 +10768 231 +10768 902 +10768 1760 +10768 7392 +10768 10373 +10016 9064 +10064 231 +10064 1012 +10064 1760 +5584 3223 +5584 4048 +5584 6402 +5584 8382 +5584 10692 +5664 3080 +5872 3080 +6128 3080 +6192 3080 +6256 3080 +6416 3080 +6560 3080 +6672 3080 +6784 3080 +6896 3080 +7008 3080 +7088 3080 +7184 3080 +7312 3080 +7504 3080 +7664 3080 +7760 3080 +7824 3080 +7888 3080 +7952 3080 +8048 3080 +8208 3080 +8336 3080 +8432 3080 +8496 3080 +8624 3080 +8752 3080 +8848 3080 +8976 3080 +9051 3080 +9072 1188 +9072 2915 +8624 5962 +8624 8866 +8688 1188 +8592 8866 +8656 1188 +8656 5962 +7952 8756 +8048 6116 +8176 6116 +8432 6116 +8507 6116 +8528 1188 +8528 5973 +8464 1188 +8656 8866 +7056 10802 +7195 8844 +7216 638 +7216 1518 +7216 4048 +7216 7128 +7216 8657 +17456 1782 +17456 4092 +17456 6578 +17456 7722 +17456 8745 +17476 8844 +17552 8844 +17712 9603 +17712 10670 +9428 2948 +9680 2948 +9808 2948 +9872 2948 +10000 2948 +10096 2948 +10224 2948 +10288 2948 +10384 2948 +10512 2948 +10576 2948 +10640 2948 +10704 2948 +10800 2948 +10928 2948 +11056 2948 +11120 2948 +11216 2948 +11344 2948 +11488 2948 +11696 2948 +11760 2948 +11904 2948 +12048 2948 +12176 2948 +12336 2948 +12432 2948 +12523 2948 +12560 1606 +12560 2354 +17552 1782 +17552 4092 +17552 6578 +17552 7887 +17712 8184 +17856 8184 +17968 8184 +18192 8184 +18256 9427 +18256 10670 +9728 10032 +10032 10032 +10256 10032 +10320 10032 +10416 10032 +10480 10032 +10656 10032 +10736 10032 +10800 10032 +10928 10032 +11040 10032 +11216 10032 +11312 10032 +11440 10032 +11520 10032 +11600 10032 +11712 10032 +11792 10032 +11984 10032 +12080 10032 +12208 10032 +12384 10032 +12528 10032 +12656 10032 +12816 10032 +12944 10032 +13088 10032 +13232 10032 +13408 10032 +13536 10032 +13643 10032 +13680 2530 +13680 5148 +13680 7282 +13680 8866 +13680 9889 +17712 231 +17712 1782 +17712 4246 +17712 6325 +17840 6908 +17968 6908 +18128 7007 +18128 7766 +18128 10670 +9072 3487 +9072 5962 +9072 6908 +9072 9878 +9440 3388 +9520 3388 +9680 3388 +9840 3388 +10000 3388 +10096 3388 +10224 3388 +10288 3388 +10384 3388 +10512 3388 +10576 3388 +10640 3388 +10704 3388 +10800 3388 +10928 3388 +11056 3388 +11120 3388 +11216 3388 +11344 3388 +11488 3388 +11696 3388 +11760 3388 +11904 3388 +12048 3388 +12176 3388 +12336 3388 +12432 3388 +12544 3388 +12688 3388 +12763 3388 +12784 1606 +12784 2310 +9232 8107 +9232 9878 +9648 8008 +9744 8008 +9904 8008 +10016 8008 +10192 8008 +10256 8008 +10384 8008 +10496 8008 +10656 8008 +10816 8008 +10928 8008 +11040 8008 +11120 8008 +11216 8008 +11328 8008 +11504 8008 +11568 8008 +11632 8008 +11696 8008 +11760 8008 +11824 8008 +11968 8008 +12192 8008 +12272 8008 +12384 8008 +12528 8008 +12656 8008 +12800 8008 +12880 8008 +12944 8008 +13088 8008 +13264 8008 +13392 8008 +13520 8008 +13632 8008 +13712 2530 +13712 5148 +13712 7282 +8400 1188 +8400 6919 +8420 7040 +8507 7040 +8528 7139 +8528 8866 +9168 1639 +9168 2948 +9168 5962 +9168 7018 +9168 8074 +9168 9878 +9264 1452 +9424 1452 +9584 1452 +9680 1452 +9808 1452 +9872 1452 +10000 1452 +10096 1452 +10224 1452 +10288 1452 +10384 1452 +10512 1452 +10576 1452 +10640 1452 +10704 1452 +10800 1452 +10928 1452 +11056 1452 +11120 1452 +11216 1452 +11344 1452 +11488 1452 +11696 1452 +11760 1452 +11904 1452 +12048 1452 +12176 1452 +12304 902 +9360 2827 +9412 2728 +9680 2728 +9808 2728 +9872 2728 +10000 2728 +10096 2728 +10224 2728 +10288 2728 +10384 2728 +10512 2728 +10576 2728 +10640 2728 +10704 2728 +10800 2728 +10928 2728 +11056 2728 +11120 2728 +11216 2728 +11344 2728 +11488 2728 +11696 2728 +11760 2728 +11904 2728 +12048 2728 +12176 2728 +12336 2728 +12432 2728 +12512 2728 +12592 1606 +12592 2475 +14864 2530 +14864 4378 +14864 5478 +14864 6798 +14864 8646 +14864 9878 +14864 11429 +7760 8745 +7776 8448 +7792 1188 +7792 4818 +15312 7887 +15312 8646 +15312 9878 +15312 10626 +15312 11429 +15344 7788 +15376 2530 +15376 5478 +15376 6798 +15376 7689 +6864 429 +6864 1518 +6864 2574 +6864 4048 +7008 5368 +7088 5368 +7184 5368 +7328 5368 +7584 5368 +7664 5368 +7760 5368 +7824 5368 +7888 5368 +7952 5368 +8048 5368 +8176 5368 +8336 5368 +8432 5368 +8496 5368 +8752 5368 +8848 5368 +8992 5368 +9440 5368 +9552 5368 +9680 5368 +9824 5368 +10016 5368 +10160 5368 +10224 5368 +10288 5368 +10384 5368 +10512 5368 +10608 5368 +10704 7392 +10704 11495 +12400 11484 +12528 11000 +12656 11000 +12816 11000 +12944 11000 +13088 11000 +13232 11000 +13392 11000 +13536 11000 +13696 11000 +13968 11000 +14192 11000 +14272 11000 +14384 11000 +14448 11000 +12400 11176 +14576 2530 +14576 5368 +14576 6798 +14576 8646 +14576 9878 +14704 11000 +14784 11000 +14960 11000 +15120 11000 +15392 11000 +15520 11000 +15712 11000 +15792 11000 +15856 11000 +16048 11000 +16224 11000 +16432 11000 +16496 11484 +16496 11176 +7088 8536 +7088 10802 +7152 638 +7152 1518 +7152 4048 +7152 7139 +15952 2343 +15972 2992 +16128 2992 +16272 2992 +16400 2992 +16544 2992 +16656 2992 +16752 2992 +16912 2992 +17040 2992 +17104 2992 +17184 2992 +17392 2992 +17504 2992 +17744 4125 +17744 6204 +17744 7766 +17744 8734 +17744 9603 +17744 10670 +15664 2530 +15664 5368 +15664 6798 +15664 8426 +15664 9878 +15664 10626 +15664 11429 +17584 231 +17584 1782 +17584 4092 +17584 6578 +17584 7766 +17584 9603 +17584 10670 +16432 2222 +16432 3850 +16432 5478 +16432 6798 +16432 7887 +16528 10890 +8144 1188 +8144 4818 +8144 7018 +8144 8756 +9616 231 +9616 1012 +9616 1760 +9616 7139 +12112 902 +12112 4488 +12112 5962 +12112 7392 +8368 1188 +8368 6908 +8368 8767 +12784 11429 +12804 8844 +12880 8844 +12944 8844 +13088 8844 +13264 8844 +13392 8844 +13531 8844 +13552 2530 +13552 3938 +13552 4928 +13552 7282 +13552 8657 +18864 10846 +18864 11528 +18916 9086 +19024 9086 +11920 7392 +11920 11165 +11936 6776 +11952 902 +11952 4488 +11952 6072 +10320 231 +10320 1012 +10320 1760 +10320 7392 +10427 9504 +11824 902 +11824 4488 +11824 6083 +11840 6336 +11856 7392 +11856 11165 +12656 1606 +12656 2574 +12656 4708 +12656 6072 +12672 6776 +12688 7392 +12688 11429 +5008 11495 +5072 2178 +5072 4048 +5072 6402 +5072 7194 +13168 1606 +13168 2310 +13168 3124 +13168 3938 +13168 4928 +13168 5929 +13296 6028 +13456 6028 +13520 6028 +13632 6028 +13760 6028 +13920 6028 +14080 6028 +14192 6028 +14256 6028 +14400 6028 +14512 6028 +14704 6028 +14816 6028 +14928 6028 +15136 6028 +15328 6028 +15440 6028 +15600 6028 +15712 6028 +15792 6028 +15888 6028 +15984 6028 +16128 6028 +16288 6028 +16544 6028 +16656 6028 +16752 6028 +16816 6028 +16912 6028 +17040 6028 +17104 6028 +17168 6028 +17392 6028 +17504 6028 +17680 6457 +17680 7766 +17680 9603 +17680 10670 +3312 10692 +3344 3113 +3344 6864 +3344 10153 +14544 2530 +14544 5368 +14544 6798 +14544 8646 +14544 9878 +14544 11539 +6736 638 +6736 1518 +6736 2574 +6736 4048 +6736 8646 +6736 9438 +6832 11440 +7024 11440 +7200 11440 +7440 11440 +7536 11440 +7600 11440 +7696 11440 +7824 11440 +7888 11440 +8096 11440 +8176 11440 +8272 11440 +8368 11440 +8432 11440 +8720 11440 +8848 11440 +9104 11440 +9728 11440 +10032 11440 +10256 11440 +10320 11440 +10480 11440 +10544 11528 +11792 902 +11792 4488 +11792 6072 +11792 7392 +11808 8228 +11824 11165 +8720 1188 +8720 5962 +8848 7700 +9104 7700 +9232 7700 +6064 319 +6064 2024 +6064 4048 +6064 5335 +6100 5588 +6192 5588 +6256 5588 +6416 5588 +6560 5588 +6672 5588 +6779 5588 +6800 7128 +6800 8646 +6800 9438 +6864 6556 +6992 6556 +7088 6556 +7184 6556 +7328 6556 +7616 6556 +7744 6556 +7824 6556 +7888 6556 +8048 6556 +8176 6556 +8432 6556 +8512 6556 +8832 6556 +8944 1188 +8944 5962 +8944 6897 +8944 9878 +5968 319 +5968 2024 +5968 4048 +5968 5324 +6096 7700 +6192 7700 +6416 7700 +6544 7700 +6672 7700 +6864 7700 +6928 7700 +7040 7700 +7152 8536 +7152 10802 +7204 9504 +7536 9504 +7600 9504 +7696 9504 +7824 9504 +7904 9504 +8096 9504 +8176 9504 +8272 9504 +8368 9504 +8432 9504 +8720 9504 +8864 9504 +9104 9504 +9728 9504 +9968 231 +9968 1012 +9968 1760 +11952 11165 +11972 8228 +12192 8228 +12272 8228 +12384 8228 +12528 8228 +12656 8228 +12800 8228 +12880 8228 +12944 8228 +13088 8228 +13264 8228 +13392 8228 +13520 8228 +13632 8228 +13744 8228 +13968 8228 +14192 8228 +14272 8228 +14384 8228 +14448 8228 +14512 8228 +14704 8228 +14784 8228 +15120 8228 +15392 8228 +15472 8228 +15536 484 +15536 671 +15536 2530 +15536 5368 +15536 6798 +15600 572 +15728 572 +15792 572 +15888 572 +15984 572 +16128 572 +16272 572 +16400 572 +16560 572 +16656 572 +16752 572 +16912 572 +17040 572 +17184 572 +17392 572 +17504 572 +17824 572 +17968 572 +18032 572 +18128 352 +7568 8756 +7600 6116 +7632 1188 +7632 4818 +11728 902 +11728 4488 +11728 6072 +11728 7392 +11744 8228 +11760 11165 +19024 11528 +12272 902 +12272 4488 +12272 5962 +12384 6776 +12496 7392 +12496 11429 +10656 8228 +10736 231 +10736 902 +10736 1760 +10736 7392 +7504 8756 +7568 638 +7568 1518 +7568 3949 +7568 4147 +7568 4939 +7664 4048 +7760 4048 +7824 4048 +7888 4048 +7952 4048 +8048 4048 +8208 4048 +8336 4048 +8432 4048 +8496 4048 +8688 4048 +8763 4048 +8784 1188 +8784 3949 +8784 8866 +7888 9064 +7920 1188 +7920 4818 +7920 8767 +7940 4268 +8048 4268 +8208 4268 +8336 4268 +8432 4268 +8496 4268 +8688 4268 +8752 4268 +8848 4268 +8912 4268 +8992 4268 +9440 4268 +9552 4268 +9680 4268 +9824 4268 +9936 4268 +10000 4268 +10224 4268 +10288 4268 +10384 4268 +10523 4268 +10544 231 +10544 1012 +10544 1760 +10544 7392 +10656 11132 +10768 11132 +10928 11132 +10992 11550 +10992 11308 +8208 7018 +8208 8756 +8336 4708 +8432 4708 +8496 4708 +8752 4708 +8848 4708 +8992 4708 +9440 4708 +9552 4708 +9680 4708 +9824 4708 +9936 4708 +10000 4708 +10224 4708 +10288 4708 +10384 4708 +10512 4708 +10587 4708 +10608 231 +10608 902 +10608 1760 +11984 902 +11984 4488 +11984 6072 +12000 6776 +12016 7392 +12016 11165 +8560 5962 +8560 7018 +8560 8866 +8624 2288 +8752 2288 +8848 2288 +8976 2288 +9040 2288 +9264 2288 +9360 671 +9360 1760 +11376 11385 +11440 231 +11440 902 +11440 4488 +11440 6072 +11440 7392 +10256 8228 +10352 231 +10352 1012 +10352 1760 +10352 7392 +11472 7392 +11472 11275 +11492 6336 +11568 231 +11568 902 +11568 4488 +11568 6083 +11184 11385 +11204 9064 +11344 9064 +11515 9064 +11536 231 +11536 902 +11536 4488 +11536 5962 +11536 7392 +656 3575 +656 9922 +15824 5368 +15824 6798 +15824 8426 +15824 9878 +15824 10626 +15824 11429 +15888 4488 +15984 4488 +16128 4488 +16283 4488 +16304 2222 +16304 3861 +6608 429 +6608 1518 +6608 2574 +6608 4048 +6660 5060 +6784 5060 +6896 7128 +6896 8646 +6896 10802 +12048 7392 +12048 11165 +12187 6776 +12208 902 +12208 4488 +12208 5962 +155 11198 +8912 5962 +8912 7018 +8912 9878 +8992 4488 +9440 4488 +9552 4488 +9680 4488 +9824 4488 +9936 4488 +10000 4488 +10224 4488 +10288 4488 +10384 4488 +10512 4488 +10576 4488 +10640 4488 +10704 4488 +10800 4488 +10864 231 +10864 902 +10864 1760 +10864 4389 +10864 4587 +10928 5896 +11067 5896 +11088 7392 +11088 11385 +9264 6908 +9264 9878 +9440 3168 +9520 231 +9520 1012 +9520 1760 +12240 902 +12240 4488 +12240 5962 +12240 7392 +12240 11165 +7312 8756 +7312 10802 +7536 638 +7536 1518 +7536 4048 +7536 4818 +3280 3113 +3280 6864 +3300 9372 +3504 9372 +3568 9372 +3632 10142 +11376 231 +11376 902 +11376 4488 +11376 6072 +11376 7392 +11504 8228 +11568 11275 +11280 11385 +11316 10472 +11440 10472 +11520 10472 +11600 10472 +11712 10472 +11792 10472 +11984 10472 +12080 10472 +12208 10472 +12384 10472 +12528 10472 +12656 10472 +12816 10472 +12944 10472 +13088 10472 +13232 10472 +13392 10472 +13536 10472 +13696 10472 +13968 10472 +14160 2530 +14160 5258 +14160 7172 +14160 8866 +14160 9878 +3152 3113 +3152 6864 +3188 7920 +3312 7920 +3408 10153 +3408 10571 +3504 10472 +3584 10472 +3712 10472 +3888 10472 +4048 10472 +4128 10472 +4272 10472 +4400 10472 +4528 10472 +4624 10472 +4688 10472 +4784 10472 +4955 10472 +4976 10373 +4992 9812 +4976 11495 +5008 2178 +5008 4048 +5008 6402 +528 3575 +528 9812 +16016 2222 +16016 3740 +16016 5368 +16016 6798 +16016 7766 +16016 8624 +16016 9834 +16068 9922 +16208 9922 +16432 9922 +16496 9922 +16592 9922 +16688 9922 +16784 9922 +16912 9922 +17040 9922 +17136 9922 +17280 9922 +17360 10670 +17360 11528 +5872 8382 +5872 10802 +5888 5060 +5904 209 +5904 2024 +5904 4048 +976 11055 +1104 10912 +1232 10912 +1584 10912 +1712 10912 +1776 10912 +1904 10912 +2064 10912 +2240 10912 +2464 10912 +2736 10912 +3019 10912 +3056 3113 +3056 6864 +3056 10153 +3168 10912 +3344 10912 +3504 10912 +3584 10912 +3712 10912 +3888 10912 +4048 10912 +4128 10912 +4272 10912 +4400 10912 +4464 10912 +4528 10912 +4624 10912 +4688 11495 +13456 8536 +13456 9174 +13456 11429 +13520 7788 +13632 7788 +13760 7788 +13968 7788 +14192 7788 +14272 7788 +14384 7788 +14448 2530 +14448 5368 +14448 6798 +14512 7788 +14704 7788 +14816 7788 +14928 7887 +14928 8646 +14928 9878 +14928 11429 +16048 2222 +16048 3740 +16048 5368 +16048 6798 +16048 7766 +16128 8404 +16304 8404 +16432 8404 +16592 8404 +16688 8404 +16752 8404 +16816 8404 +16912 8404 +17008 10560 +17008 11528 +560 9801 +752 8404 +912 8404 +976 8404 +1104 8404 +1232 8404 +1328 8404 +1536 8404 +1616 8404 +1696 8404 +1776 8404 +1872 8404 +1936 8404 +2112 8404 +2192 8404 +2288 8404 +2464 8404 +2635 8404 +2704 3113 +2704 6864 +2804 8140 +2960 8140 +3024 8140 +3168 8140 +3312 8140 +3504 8140 +3632 8140 +3696 8140 +3824 8140 +3952 8140 +4096 8140 +4272 8140 +4336 8140 +2704 8250 +4432 11495 +14032 2530 +14032 5258 +14032 7293 +14068 7568 +14192 7568 +14272 7568 +14384 7568 +14512 7568 +14704 7568 +14816 7568 +14928 7568 +15131 7568 +15248 7777 +15248 8646 +15248 9878 +15248 10626 +15248 11429 +13584 2530 +13584 3949 +13620 4048 +13872 4048 +14096 4048 +14224 4048 +14400 4048 +14512 4048 +14736 4048 +14800 4048 +14896 4257 +14896 5478 +14896 6798 +14896 8646 +14896 9878 +14896 11429 +14608 2530 +14608 5368 +14608 6798 +14608 8646 +14608 9878 +14608 11539 +13392 1606 +13392 2794 +13392 3938 +13392 4928 +13456 6248 +13520 6248 +13632 6248 +13760 6248 +13920 6248 +14080 6248 +14192 6248 +14256 6248 +14400 6248 +14512 6248 +14704 6248 +14816 6248 +14928 6248 +15136 6248 +15328 6248 +15440 6248 +15600 6248 +15712 6248 +15792 6248 +15888 6248 +15984 6248 +16128 6248 +16288 6248 +16544 6248 +16656 6677 +16656 7876 +16656 10890 +16672 6248 +16688 1012 +16688 2222 +16688 3850 +16688 5478 +12752 1606 +12752 2431 +12816 2640 +12944 2640 +13120 2640 +13339 2640 +13360 3003 +13360 3938 +13360 4928 +13360 6402 +13360 7392 +13360 8536 +13360 9174 +13360 11429 +16208 2222 +16208 3740 +16208 5368 +16208 6798 +16208 7766 +16283 8624 +16304 10461 +16304 11429 +1392 8778 +1392 10032 +1456 6336 +1552 6336 +1648 6336 +1760 6336 +1872 6336 +2000 6336 +2112 6336 +2192 6336 +2288 6336 +2480 6336 +2608 6336 +2736 6336 +2880 6336 +3024 6336 +3200 6336 +3312 6336 +3408 3058 +3408 6160 +3808 6336 +3888 6336 +3952 6336 +4096 6336 +4176 6336 +4256 6336 +4432 6336 +4496 6336 +4560 7810 +4560 8866 +4560 11495 +3696 3113 +3696 7029 +3808 7260 +3888 7260 +3952 7260 +4096 7260 +4176 7260 +4256 7260 +4336 7260 +4432 7260 +4496 7260 +4640 7260 +4768 7260 +4848 7260 +4912 7260 +5040 11495 +4912 11495 +5104 2178 +5104 4048 +5104 6402 +5104 7315 +14352 2530 +14352 5368 +14352 6908 +14352 8866 +14352 9878 +14352 11539 +5328 6391 +5328 7194 +5328 10582 +5392 2178 +5392 4048 +5744 10802 +5760 8624 +5776 2024 +5776 4048 +5776 8393 +1488 3113 +1488 6908 +1488 8778 +1488 10032 +4016 2959 +4016 6908 +4128 9152 +4272 9152 +7984 1188 +7984 4818 +7984 8756 +6160 429 +6160 2024 +6160 4048 +6160 8382 +6160 10802 +6160 11495 +5264 2178 +5264 4048 +5264 6402 +5264 7194 +5552 9812 +5632 9812 +5808 9812 +5968 9812 +6032 9812 +6112 9812 +6192 9812 +6352 9812 +6448 9812 +6672 9812 +6848 9812 +6928 9812 +7024 9812 +7216 9812 +7536 9812 +7600 9812 +7696 9812 +7824 9812 +7904 9812 +8096 9812 +8176 9812 +8272 9812 +8368 9812 +8432 9812 +8720 9812 +8859 9812 +8880 9911 +9200 7018 +9200 8074 +9200 9878 +9296 671 +9296 1760 +9296 2838 +6512 429 +6512 2024 +6512 4048 +6512 8657 +6528 8844 +6544 9438 +6544 11495 +9904 231 +9904 1012 +9904 1760 +6928 638 +6928 1518 +6928 2574 +6928 4048 +6928 7139 +6944 7260 +6960 8646 +6960 10802 +10896 10362 +10896 11495 +10916 9504 +11040 9504 +11216 9504 +11280 231 +11280 902 +11280 4488 +11280 7392 +7408 10912 +7440 638 +7440 1518 +7440 4048 +7440 4928 +7440 8756 +12592 4708 +12592 6072 +12592 7392 +12592 11429 +12608 3608 +12624 1606 +12624 2574 +12688 3608 +12784 3608 +12928 3608 +13120 3608 +13328 3608 +13456 3608 +13520 3608 +13632 3608 +13872 3608 +14096 3608 +14224 3608 +14400 3608 +14512 3608 +14736 3608 +14800 3608 +14912 3608 +15120 3608 +15328 3608 +15408 3608 +15472 3608 +15600 3608 +15712 3608 +15792 3608 +15899 3608 +15920 3927 +15920 5368 +15920 6798 +15920 7766 +15920 8624 +15920 9878 +15920 10626 +15920 11429 +12336 7392 +12336 11165 +12352 6116 +12368 902 +12368 1606 +12368 4488 +12368 5973 +17616 6578 +17616 7766 +17616 9603 +17616 10670 +17835 5500 +17872 231 +17872 1628 +17872 4213 +11632 902 +11632 4488 +11632 6083 +11648 6336 +11664 7392 +11664 11275 +14480 2530 +14480 5368 +14480 6798 +14480 8866 +14480 9878 +14480 11539 +17648 231 +17648 1782 +17648 4246 +17648 6578 +17648 7766 +17648 9603 +17648 10670 +624 3575 +624 9922 +12400 902 +12400 1606 +12400 4488 +12400 5973 +12416 6116 +12432 7392 +12432 11429 +12080 902 +12080 4488 +12080 5962 +12080 7392 +12096 9504 +12112 11165 +17776 231 +17776 1628 +17776 4092 +17776 6204 +17776 7766 +17776 8734 +17776 9603 +17776 10670 +12464 902 +12464 1606 +12516 4268 +12688 4268 +12800 4268 +12912 4268 +13120 4268 +13328 4268 +13456 4268 +13520 4268 +13616 4268 +13872 4268 +14091 4268 +14128 5258 +14128 7172 +14128 8866 +14128 9878 +14128 11539 +17744 231 +17744 1749 +17824 2684 +17979 2684 +18000 4675 +18000 7766 +18000 10670 +16624 1012 +16624 2222 +16624 3850 +16624 5478 +16624 6798 +16624 7876 +16624 10890 +13232 1606 +13232 2310 +13232 3124 +13232 3938 +13232 4928 +13232 7282 +13232 8536 +13232 9185 +13248 9284 +13264 11429 +10192 231 +10192 1012 +10192 1760 +18416 10670 +18500 9438 +18656 9438 +18784 9438 +18928 9438 +19024 9438 +912 3410 +912 6864 +928 7040 +944 9922 +14320 2530 +14320 5368 +14320 6908 +14320 8866 +14320 9878 +14320 11539 +7696 1188 +7696 4818 +7696 6908 +7760 7700 +7824 7700 +7888 7700 +8016 8756 +18832 10725 +18832 11528 +18928 10494 +19024 10494 +14768 2530 +14768 5478 +14768 6798 +14800 8008 +14832 8646 +14832 9878 +14832 11429 +6640 220 +6676 308 +6795 308 +6832 220 +6832 517 +6832 1518 +6832 2574 +6832 4048 +6832 5434 +6832 7128 +6832 8646 +6852 9284 +6928 9284 +7024 9284 +7216 9284 +7536 9284 +7600 9284 +7696 9284 +7824 9284 +7904 9284 +8096 9284 +8176 9284 +8272 9284 +8368 9284 +8432 9284 +8720 9284 +8864 9284 +9104 9284 +9728 9284 +10032 9284 +10256 9284 +10448 9284 +10656 9284 +10736 9284 +10800 9284 +10912 9284 +11040 9284 +11216 9284 +11344 9284 +11520 9284 +11600 9284 +11712 9284 +11792 9284 +11984 9284 +12128 9284 +12208 9284 +12384 9284 +12528 9284 +12656 9284 +12843 9284 +12880 11429 +7344 8756 +7344 10802 +7600 7260 +7760 7260 +7824 7260 +7888 7260 +8043 7260 +8080 1188 +8080 4818 +8080 7029 +10128 231 +10128 1012 +10128 1760 +10148 5896 +10224 5896 +10384 5896 +10512 5896 +10587 5896 +10608 7392 +10608 11495 +16496 2222 +16496 3850 +16496 5478 +16496 6798 +16496 7766 +16592 9284 +16688 9284 +16784 9284 +16912 9284 +17040 9284 +17136 9284 +17280 9284 +17392 9592 +17392 10670 +17392 11528 +4592 2684 +4592 5434 +4592 7810 +4592 8866 +4592 11495 +10576 7392 +10576 11495 +10656 6336 +10800 6336 +10864 6336 +10928 6336 +11024 231 +11024 902 +11024 1760 +11024 4488 +2384 3113 +2384 6644 +2384 10032 +2928 10032 +2944 6952 +2960 3113 +2960 6875 +5168 2178 +5168 4048 +5168 6402 +5168 7458 +5168 10582 +2544 3113 +2544 6754 +2544 10032 +9648 231 +9648 1012 +9648 1760 +9648 7128 +9664 7788 +1808 8052 +1808 10032 +1872 7172 +1984 7172 +2112 7172 +2192 7172 +2288 7172 +2464 7172 +2624 7172 +2736 7172 +2864 7172 +2960 7172 +3024 7172 +3200 7172 +3312 7172 +3408 7172 +3472 3113 +3472 6985 +9488 231 +9488 1012 +9488 1760 +9488 7128 +2000 8041 +2000 8778 +2000 10032 +2112 7920 +2192 7920 +2288 7920 +2464 7920 +2624 7920 +2816 7920 +2960 7920 +3024 7920 +3120 3113 +3120 6864 +8752 8866 +8816 1188 +8816 3938 +8816 5973 +1008 3575 +1008 9658 +1296 7821 +1296 9658 +1316 7700 +1536 7700 +1648 7700 +1760 7700 +1872 7700 +1984 7700 +2112 7700 +2192 7700 +2288 7700 +2464 7700 +2624 7700 +2747 7700 +2768 3113 +2768 6864 +1360 3223 +1360 8778 +1360 10032 +2032 8778 +2032 10032 +2112 6952 +2192 6952 +2288 6952 +2416 3113 +2416 6765 +560 3410 +560 6864 +576 7040 +592 9922 +1712 3113 +1712 7018 +1712 8063 +1728 8184 +1744 10032 +5104 10582 +5104 11495 +5120 7920 +5136 2178 +5136 4048 +5136 6402 +5136 7469 +2064 3113 +2064 6644 +2064 8789 +2080 8932 +2096 10032 +3072 11220 +3088 3113 +3088 6864 +3088 10032 +3248 3113 +3248 6864 +3248 10032 +10960 231 +10960 902 +10960 1760 +10960 4488 +10960 7392 +10960 10362 +10960 11495 +2976 10692 +2992 3113 +2992 6864 +2992 10043 +10832 10362 +10832 11495 +10896 231 +10896 902 +10896 1760 +10896 4488 +10896 7392 +10832 231 +10832 902 +10832 1760 +10848 6776 +10864 7392 +10864 10362 +10864 11495 +17968 10670 +18368 9790 +18512 9790 +18656 9790 +18784 9790 +18928 9790 +19024 9790 +3376 3113 +3376 6864 +3504 9592 +3568 9592 +3664 10142 +2224 3113 +2224 6644 +2276 8712 +2464 8712 +2736 8712 +2960 8712 +3024 8712 +3168 8712 +3312 8712 +3504 8712 +3632 8712 +3696 8712 +3824 8712 +3952 8712 +8848 9064 +8880 1188 +8880 3938 +8880 5962 +8880 7018 +16080 2222 +16080 3740 +16080 5368 +16080 6798 +16080 7766 +16080 8745 +16112 8844 +16144 10626 +16144 11429 +13296 1606 +13296 2310 +13296 3124 +13296 3938 +13296 4928 +13456 5808 +13520 5808 +13632 5808 +13760 5808 +13920 5808 +14080 5808 +14203 5808 +14224 7172 +14224 8866 +14224 9878 +14224 11539 +14160 11539 +14180 10780 +14272 10780 +14384 10780 +14448 10780 +14704 10780 +14784 10780 +14960 2530 +14960 4158 +14960 5478 +14960 6798 +14960 7898 +14960 8646 +14960 9878 +14960 10637 +17104 10560 +17104 11528 +17120 8404 +17136 1782 +17136 4356 +17136 6688 +17136 7722 +15440 8646 +15440 9878 +15440 10626 +15440 11429 +15460 7788 +15600 7788 +15712 7788 +15792 7788 +15856 2530 +15856 4048 +15856 5368 +15856 6798 +15856 7689 +15344 8646 +15344 9878 +15344 10626 +15344 11429 +15380 8008 +15472 8008 +15568 2530 +15568 5368 +15568 6798 +4208 2365 +4208 5434 +4208 6908 +18320 3619 +18320 7876 +18320 9427 +18320 10670 +12144 902 +12144 4488 +12144 5962 +12144 7392 +12160 9064 +12176 11165 +14992 4323 +14992 5478 +14992 6798 +14992 7898 +14992 8646 +14992 9878 +14992 10626 +14992 11429 +15124 4180 +15328 4180 +15408 4180 +15472 4180 +15600 4180 +15712 4180 +15803 4180 +15824 2530 +15824 4015 +16336 10461 +16336 11429 +16432 8624 +16592 8624 +16688 8624 +16752 8624 +16816 8624 +16912 8624 +17040 8624 +17136 8624 +17243 8624 +17264 1782 +17264 4092 +17264 6688 +17264 7722 +17264 8481 +9712 231 +9712 1012 +9712 1760 +9712 7128 +17072 1012 +17072 2222 +17072 4356 +17072 6688 +17072 7722 +17072 10560 +17072 11528 +13552 11418 +13696 11220 +13968 11220 +14192 11220 +14272 11220 +14384 11220 +14448 11220 +14576 11220 +14672 2530 +14672 5368 +14672 6798 +14672 8646 +14672 9878 +14688 11220 +14704 11418 +16464 2222 +16464 3850 +16464 5478 +16464 6798 +16464 7766 +16464 10461 +16464 11429 +144 11528 +320 11440 +496 11440 +752 11440 +912 11440 +1104 11440 +1232 11440 +1584 11440 +1712 11440 +1776 11440 +1904 11440 +2064 11440 +2251 11440 +2352 3113 +2352 6644 +2352 10032 +2352 11297 +2464 11440 +2736 11440 +3008 11440 +3152 11440 +3344 11440 +3504 11440 +3584 11440 +3712 11440 +3888 11440 +4048 11440 +4128 11440 +4272 11440 +4368 11528 +13168 7282 +13168 8536 +13168 9174 +13168 11429 +13264 1606 +13264 2310 +13264 3124 +13264 3938 +13264 4928 +13264 6413 +7792 8899 +7824 8756 +7856 1188 +7856 4818 +7856 8613 +16720 1012 +16720 2222 +16720 3850 +16720 5478 +16720 6688 +16720 7876 +16720 10560 +16720 11528 +19056 11528 +12976 3938 +12976 4708 +12976 6072 +12976 7282 +12976 8536 +12976 9174 +12976 11429 +13040 473 +13040 1606 +13040 2310 +15920 2497 +15936 3300 +15952 3773 +15952 5368 +15952 6798 +15952 7766 +15952 8624 +15952 9878 +15952 10626 +15952 11429 +5296 6402 +5296 7194 +5296 10582 +5312 5588 +5328 2178 +5328 4048 +11856 902 +11856 4488 +11856 5929 +11872 6028 +11888 6171 +11888 7392 +11888 11165 +15504 583 +15504 2530 +15504 5368 +15504 6798 +15504 8646 +15552 9284 +15600 9878 +15600 10626 +15600 11429 +5840 209 +5840 2024 +5840 4048 +5840 8382 +5840 10802 +4368 2365 +4368 5434 +4368 7810 +4388 11132 +4464 11132 +4528 11132 +4624 11132 +4784 11132 +4944 11132 +5136 11132 +5200 11132 +5360 11132 +5552 11132 +5616 11132 +5808 11132 +5968 11132 +6032 11132 +6112 11132 +6208 11132 +6352 11132 +6464 11132 +6672 11132 +6832 11132 +7024 11132 +7200 11132 +7440 11132 +7536 11132 +7600 11132 +7696 11132 +7824 11132 +7888 11132 +6288 429 +6288 2024 +6288 4048 +6416 8228 +6544 8228 +6672 8228 +6864 8228 +6928 8228 +7040 8228 +7184 8228 +7536 8228 +7600 8228 +7696 8228 +7760 8228 +7824 8228 +7888 8228 +8096 8228 +8176 8228 +8256 8228 +8448 8228 +8720 8228 +8848 8228 +9115 8228 +9136 9878 +4624 2684 +4624 5445 +4644 5808 +4752 5808 +4848 5808 +4912 5808 +5040 5808 +5328 5808 +5664 5808 +6096 5808 +6192 5808 +6256 5808 +6416 5808 +6560 5808 +6672 5808 +6768 5808 +6864 5808 +6992 5808 +7088 5808 +7184 5808 +7328 5808 +7584 5808 +7664 5808 +7760 5808 +7824 5808 +7888 5808 +7952 5808 +8048 5808 +8176 5808 +8336 6908 +8336 8646 +9008 1188 +9440 3828 +9552 3828 +9680 3828 +9824 3828 +9936 3828 +10000 3828 +10224 3828 +10288 3828 +10384 3828 +10512 3828 +10576 3828 +10640 3828 +10704 3828 +10800 3828 +10928 3828 +11056 3828 +11120 3828 +11216 3828 +11344 3828 +11488 3828 +11680 3828 +11760 3828 +11904 3828 +12048 3828 +12176 3828 +12336 3828 +12432 3828 +12528 3828 +12624 3828 +12688 3828 +12752 4708 +12752 6072 +12752 7392 +12752 8646 +12752 11429 +14512 9163 +14512 9878 +14512 11539 +14704 9064 +14784 9064 +15120 9064 +15392 9064 +15472 9064 +15568 9064 +15712 9064 +15792 9064 +15856 9064 +15984 9064 +16080 9064 +16208 9064 +16432 9064 +16592 9064 +16688 9064 +16784 9064 +16912 9064 +17040 9064 +17136 9064 +17280 9064 +17392 9064 +17472 9064 +17552 9064 +17952 9064 +18224 9064 +18427 9064 +18512 4037 +18512 8855 +6480 429 +6480 2024 +6480 4048 +6480 8646 +6672 10252 +6848 10252 +7024 10252 +7200 10252 +7376 10252 +7536 10252 +7600 10252 +7696 10252 +7824 10252 +7888 10252 +7984 10252 +8096 10252 +8176 10252 +8272 10252 +8368 10252 +8432 10252 +8720 10252 +8848 10252 +9104 10252 +9728 10252 +10032 10252 +10256 10252 +10320 10252 +7472 638 +7472 1518 +7472 4048 +7472 4928 +7472 8756 +7536 10912 +7600 10912 +7696 10912 +7824 10912 +7888 10912 +7984 10912 +8096 10912 +8176 10912 +8272 10912 +8368 10912 +8432 10912 +8720 10912 +8848 10912 +9104 10912 +9728 10912 +10032 10912 +10256 10912 +10320 10912 +10480 10912 +10656 10912 +10768 10912 +10928 10912 +11024 10912 +11216 10912 +11328 10912 +11440 11440 +11440 11088 +4848 7755 +4848 11495 +4864 7612 +4880 2618 +4880 6402 +8912 1188 +8912 3949 +8992 4048 +9440 4048 +9552 4048 +9680 4048 +9824 4048 +9936 4048 +10000 4048 +10224 4048 +10288 4048 +10384 4048 +10512 4048 +10576 4048 +10640 4048 +10704 4048 +10800 4048 +10928 4048 +11056 4048 +11120 4048 +11216 4048 +11344 4048 +11488 4048 +11680 4048 +11760 4048 +11904 4048 +12048 4048 +12176 4048 +12336 4048 +12432 4048 +12528 4048 +12624 4708 +12624 6072 +12624 7392 +12624 11429 +12688 4048 +12800 4048 +12880 1606 +12880 2310 +12880 3949 +4656 2629 +4720 4488 +4784 4488 +4848 4488 +4912 4488 +5040 4488 +5296 4488 +5664 4488 +5872 4488 +6128 4488 +6192 4488 +6256 4488 +6416 4488 +6560 4488 +6672 4488 +6784 4488 +6896 4488 +7008 4488 +7088 4488 +7184 4488 +7312 4488 +7504 4488 +7664 4488 +7760 4488 +7824 4488 +7888 4488 +7952 4488 +8048 4488 +8208 4488 +8336 4488 +8432 4488 +8496 4488 +8688 5962 +8688 8866 +12016 902 +12016 4488 +12016 6083 +12036 6336 +12176 6336 +12384 6336 +12523 6336 +12560 7392 +12560 11429 +17456 11528 +17476 11440 +17552 11440 +17920 11440 +18368 11440 +18523 11440 +18608 4037 +18608 8525 +18608 10670 +18608 11528 +14416 8866 +14416 9878 +14416 11539 +14512 7348 +14704 7348 +14816 7348 +14928 7348 +15136 7348 +15328 7348 +15440 7348 +15600 7348 +15712 7348 +15792 7348 +15888 7348 +15984 7348 +16128 7348 +16288 7348 +16544 7348 +16688 7348 +16752 7348 +16816 7348 +16912 7348 +17040 7348 +17104 7348 +17168 7348 +17408 7348 +17504 7348 +17712 7348 +17856 7348 +17968 7348 +18192 7348 +18256 7348 +18384 7348 +18448 3564 +18448 7172 +8592 1188 +8592 5962 +8592 6875 +8816 7095 +8836 8756 +9104 8756 +9728 8756 +10000 8756 +10256 8756 +10352 8756 +10464 8756 +10656 8756 +10736 8756 +10800 8756 +10912 8756 +11040 8756 +11200 8756 +11344 8756 +11504 8756 +11600 8756 +11712 8756 +11792 8756 +11984 8756 +12192 8756 +12272 8756 +12384 8756 +12528 8756 +12656 8756 +12720 11429 +4912 2299 +5040 3608 +5296 3608 +5664 3608 +5872 3608 +6128 3608 +6192 3608 +6256 3608 +6416 3608 +6560 3608 +6672 3608 +6784 3608 +6896 3608 +7008 3608 +7088 3608 +7184 3608 +7312 3608 +7504 3608 +7664 3608 +7760 3608 +7824 3608 +7888 3608 +7952 3608 +8048 3608 +8208 3608 +8336 3608 +8432 3608 +8496 3608 +8624 3608 +8752 3608 +8848 3608 +8976 3608 +9040 5962 +9040 6908 +9040 9878 +9328 671 +9328 1760 +9328 2838 +9728 9724 +10032 9724 +10256 9724 +10320 9724 +10416 9724 +10480 9724 +10656 9724 +10736 9724 +10800 9724 +10928 9724 +11040 9724 +11216 9724 +11312 9724 +11440 9724 +11520 9724 +11600 9724 +11712 9724 +11792 9724 +11984 9724 +12080 9724 +12208 9724 +12384 9724 +12528 9724 +12656 9724 +12827 9724 +12848 11429 +12944 9724 +13088 9724 +13232 9724 +13403 9724 +13424 1606 +13424 2794 +13424 3938 +13424 4928 +13424 7392 +13424 8536 +13424 9174 +16880 1012 +16880 2222 +16880 3850 +16880 5368 +16880 6688 +16880 7876 +16880 10560 +16880 11528 +18576 4037 +18576 8646 +18656 8866 +18859 8866 +18992 10846 +18992 11528 +8176 1188 +8176 4829 +8336 4928 +8432 4928 +8496 4928 +8752 4928 +8848 4928 +8992 4928 +9440 4928 +9552 4928 +9680 4928 +9824 4928 +9936 4928 +10000 4928 +10224 4928 +10288 4928 +10384 4928 +10512 4928 +10608 4928 +10704 4928 +10800 4928 +10928 4928 +11056 4928 +11120 4928 +11216 4928 +11344 4928 +11488 4928 +11680 4928 +11760 4928 +11904 4928 +12048 4928 +12176 4928 +12336 4928 +12443 4928 +12464 5962 +12464 7392 +12464 11429 +6000 10802 +6000 11495 +6016 8624 +6032 319 +6032 2024 +6032 4048 +6032 5324 +7088 638 +7088 1518 +7088 2409 +7184 2508 +7312 2508 +7504 2508 +7664 2508 +7760 2508 +7824 2508 +7888 2508 +7952 2508 +8048 2508 +8208 2508 +8336 2508 +8432 2508 +8496 2508 +8624 2508 +8752 2508 +8848 2508 +8976 2508 +9040 2508 +9264 2508 +9408 2508 +9680 2508 +9808 2508 +9872 2508 +10000 2508 +10096 2508 +10224 2508 +10288 2508 +10384 2508 +10512 2508 +10576 2508 +10640 2508 +10704 2508 +10800 2508 +10928 2508 +11056 2508 +11120 2508 +11216 2508 +11344 2508 +11408 4488 +11408 6072 +11408 7392 +11408 11385 +15760 2530 +15760 5368 +15760 6798 +15760 8426 +15760 9878 +15760 10626 +15760 11429 +112 9218 +112 11528 +260 7480 +480 7480 +560 7480 +736 7480 +848 7480 +912 7480 +976 7480 +1072 7480 +1152 7480 +1312 7480 +1536 7480 +1648 7480 +1760 7480 +1872 7480 +1984 7480 +2112 7480 +2192 7480 +2288 7480 +2464 7480 +2624 7480 +2736 7480 +2864 7480 +2960 7480 +3024 7480 +3200 7480 +3312 7480 +3419 7480 +3440 3113 +3440 6864 +5616 1914 +5616 4048 +5652 6336 +6096 6336 +6192 6336 +6256 6336 +6416 6336 +6544 6336 +6672 6336 +6768 6336 +6864 6336 +6992 6336 +7088 6336 +7184 6336 +7328 6336 +7616 6336 +7744 6336 +7824 6336 +7888 6336 +8048 6336 +8176 6336 +8432 6336 +8512 6336 +8832 6336 +8992 6336 +9296 6336 +9456 6336 +9552 6336 +9680 6336 +9808 6336 +10016 6336 +10139 6336 +16944 1012 +16944 2222 +16944 3850 +16944 5368 +16944 6688 +16944 7876 +16944 10560 +16944 11528 +9744 231 +9744 1012 +9744 1760 +9764 6996 +10016 6996 +10128 6996 +10224 6996 +10384 6996 +10496 6996 +10656 6996 +10816 6996 +10928 6996 +11040 6996 +11120 6996 +11216 6996 +11328 6996 +11504 6996 +11568 6996 +11632 6996 +11696 6996 +11760 6996 +11824 6996 +11968 6996 +12192 6996 +12272 6996 +12384 6996 +12528 6996 +12656 6996 +12800 6996 +12891 6996 +12912 7271 +12912 8536 +12912 9174 +12912 11429 +12933 6776 +13088 6776 +13280 6776 +13392 6776 +13456 6776 +13520 6776 +13632 6776 +13760 6776 +13920 6776 +14080 6776 +14192 6776 +14267 6776 +12912 6908 +14288 2530 +14288 5368 +14288 6633 +13904 11528 +13920 11440 +13936 11528 +13952 11440 +13968 11528 +6576 429 +6576 1639 +6672 2068 +6784 2068 +6896 2068 +7008 2068 +7184 2068 +7312 2068 +7504 2068 +7664 2068 +7760 2068 +7824 2068 +7888 2068 +7952 2068 +8048 2068 +8208 2068 +8336 2068 +8432 2068 +8496 2068 +8560 2068 +8624 2068 +8752 2068 +8848 2068 +8976 2068 +9040 2068 +9264 2068 +9424 2068 +9584 2068 +9680 2068 +9808 2068 +9872 2068 +10000 2068 +10096 2068 +10224 2068 +10288 2068 +10384 2068 +10512 2068 +10576 2068 +10640 2068 +10704 2068 +10800 2068 +10928 2068 +11056 2068 +11120 2068 +11227 2068 +11248 4488 +11248 7392 +11248 11385 +5552 2178 +5552 4048 +5552 6402 +5552 7403 +5648 7480 +5936 7480 +6096 7480 +6192 7480 +6416 7480 +6544 7480 +6672 7480 +6864 7480 +6928 7480 +7040 7480 +7168 7480 +7312 7480 +7600 7480 +7760 7480 +7824 7480 +7888 7480 +8048 7480 +8176 7480 +8272 7480 +8416 7480 +8656 7480 +8848 7480 +9104 7480 +9232 7480 +9616 7480 +9680 7480 +9760 7480 +10016 7480 +10128 7480 +10224 7623 +10160 231 +10160 1012 +10160 1760 +10224 5148 +10288 5148 +10384 5148 +10512 5148 +10608 5148 +10704 5148 +10800 5148 +10928 5148 +11056 5148 +11120 5148 +11216 5148 +11344 5148 +11488 5148 +11680 5148 +11760 5148 +11904 5148 +12048 5148 +12176 5148 +12336 5148 +12432 5148 +12528 5148 +12688 5148 +12800 5148 +12912 5148 +13115 5148 +13136 6182 +13136 7282 +13136 8536 +13136 9174 +13136 11429 +13328 4488 +13456 4488 +13520 4488 +13616 4488 +13872 4488 +14080 4488 +14224 4488 +14400 4488 +14512 4488 +14736 4488 +14811 4488 +13136 4840 +14832 2530 +14832 4389 +6000 319 +6000 2024 +6000 4048 +6000 5324 +6000 8239 +6064 8459 +6064 10802 +6064 11495 +17168 10560 +17168 11528 +17232 1782 +17232 4092 +17232 6688 +17232 7722 +4688 2508 +4688 5324 +4688 7711 +4752 8866 +4752 11495 +17232 10560 +17232 11528 +17264 8844 +17296 1782 +17296 4092 +17296 6688 +17296 7722 +17296 8591 +10416 231 +10416 1012 +10416 1760 +10416 7392 +3632 3113 +3632 7139 +3696 7480 +3808 7480 +3888 7480 +3952 7480 +4096 7480 +4176 7480 +4256 7480 +4336 7480 +4432 7480 +4496 7480 +4635 7480 +4656 7689 +4656 8866 +4656 11495 +10576 231 +10576 1023 +10640 1232 +10704 1232 +10800 1232 +10928 1232 +11056 1232 +11120 1232 +11216 1232 +11344 1232 +11488 1232 +11696 1232 +11760 1232 +11904 1232 +12048 1232 +12176 1232 +12336 1232 +12432 1232 +12528 1232 +12688 1232 +12816 1232 +12944 1232 +13120 1232 +13200 1485 +13200 2310 +13200 3124 +13200 3938 +13200 4928 +13200 7282 +13200 8536 +13200 9174 +13200 11429 +13344 1232 +13488 1232 +13632 1232 +13872 1232 +14096 1232 +14224 1232 +14400 1232 +14512 1232 +14736 1232 +14800 1232 +14912 1232 +15120 1232 +15328 1232 +15408 1232 +15472 1232 +15600 1232 +12144 11165 +12208 9504 +12384 9504 +12528 9504 +12656 9504 +12832 9504 +12944 9504 +13088 9504 +13232 9504 +13392 9504 +13536 9504 +13632 9504 +13744 9504 +13968 9504 +14192 9504 +14272 9504 +14384 9504 +14448 9504 +14704 9504 +14784 9504 +15120 9504 +15392 9504 +15520 9504 +15712 9504 +15792 9504 +15856 9504 +15984 9504 +16080 9504 +16208 9504 +16432 9504 +16496 9504 +16592 9504 +16688 9504 +16784 9504 +16912 9504 +17040 9504 +17136 9504 +17280 9504 +17360 1782 +17360 4092 +17360 6688 +17360 7722 +17360 8580 +10992 231 +10992 902 +10992 1760 +10992 4488 +10992 7392 +11028 10252 +11216 10252 +11312 10252 +11440 10252 +11520 10252 +11600 10252 +11712 10252 +11792 10252 +11984 10252 +12080 10252 +12208 10252 +12384 10252 +12528 10252 +12656 10252 +12816 10252 +12944 10252 +13088 10252 +13232 10252 +13403 10252 +13424 11429 +13536 10252 +13696 10252 +13968 10252 +14192 10252 +14272 10252 +14384 10252 +14448 10252 +14704 10252 +14784 10252 +15120 10252 +15392 10252 +15520 10252 +15712 10252 +15792 10252 +15856 10252 +16048 10252 +16219 10252 +16240 2222 +16240 3740 +16240 5368 +16240 6798 +16240 7766 +10448 231 +10448 1012 +10448 1760 +10448 7392 +5712 8459 +5712 10802 +5728 8316 +5744 2024 +5744 4048 +5744 8239 +17424 1782 +17424 4092 +17424 6699 +17504 7128 +17712 7128 +17808 7766 +17808 8734 +17808 9603 +17808 10670 +9520 7128 +9536 3608 +9552 231 +9552 1012 +9552 1760 +17328 1782 +17328 4092 +17328 6688 +17328 7722 +17328 8580 +17328 10670 +17328 11528 +19088 11528 +11408 231 +11408 902 +11488 1980 +11696 1980 +11760 1980 +11904 1980 +12048 1980 +12176 1980 +12336 1980 +12432 1980 +12528 1980 +12688 1980 +12816 1980 +12944 1980 +13120 1980 +13344 1980 +13467 1980 +13488 2673 +13488 3938 +13488 4928 +13488 7282 +13488 8536 +13488 9174 +13488 11429 +13509 1452 +13632 1452 +13872 1452 +14096 1452 +14224 1452 +14400 1452 +14512 1452 +14736 1452 +14800 1452 +14912 1452 +15120 1452 +15328 1452 +15408 1452 +15472 1452 +15600 1452 +15712 1452 +15792 1452 +15888 1452 +15984 1452 +16128 1452 +16272 1452 +16400 1452 +16544 1452 +16656 1452 +16752 1452 +16912 1452 +17040 1452 +13488 1738 +17104 1133 +11120 11385 +11184 231 +11184 902 +11184 1760 +11184 4488 +11184 7392 +5680 8382 +5680 10802 +5696 7700 +5712 2024 +5712 4048 +4304 2365 +4304 5434 +4304 6908 +4304 7810 +2128 10032 +2144 8932 +2160 3113 +2160 6644 +2160 8789 +5424 7183 +5424 10692 +5440 6996 +5456 2178 +5456 4048 +5456 6402 +11152 231 +11152 902 +11152 1760 +11152 4488 +11152 7392 +11152 11385 +15632 2530 +15632 5368 +15632 6798 +15632 8426 +15632 9878 +15632 10626 +15632 11429 +16176 2222 +16176 3740 +16176 5368 +16176 6798 +16176 7766 +16176 8734 +16176 10626 +16176 11429 +5392 7194 +5392 10692 +5408 6556 +5424 2178 +5424 4048 +5424 6413 +4464 2574 +4464 5434 +4464 7920 +4528 10692 +4624 10692 +4688 10692 +4784 10692 +4944 10692 +5072 10791 +5072 11495 +18352 3619 +18352 7887 +18372 8184 +18464 8184 +18667 8184 +18704 8404 +18704 10670 +18704 11528 +4528 2574 +4528 5434 +4528 7931 +4624 8140 +4688 8140 +4784 8140 +4944 8140 +5136 8140 +5488 8371 +5488 10692 +1680 10032 +1700 8932 +1776 8932 +1883 8932 +1904 3113 +1904 6754 +1904 8052 +1904 8789 +19120 11528 +19122 8030 +18256 3454 +18256 6952 +18272 7128 +18288 7876 +18288 9427 +18288 10670 +4752 2618 +4752 5225 +4772 5368 +4848 5368 +4912 5368 +5040 5368 +5296 5368 +5664 5368 +5904 5467 +5904 8382 +5904 10802 +1264 6787 +1264 7832 +1264 9658 +1284 6556 +1456 6556 +1552 6556 +1648 6556 +1760 6556 +1840 3113 +17872 9603 +17872 10670 +17952 8844 +18224 3619 +18224 7766 +4816 2618 +4816 6402 +4816 7700 +4816 8723 +4944 8844 +5136 8844 +5552 8844 +5632 8844 +5792 8844 +5968 8844 +6032 8844 +6112 8844 +6192 8844 +6320 11495 +848 9922 +912 8184 +976 8184 +1104 8184 +1232 8184 +1328 8184 +1536 8184 +1616 3113 +1616 7018 +1616 8063 +17840 8723 +17840 9603 +17840 10670 +17860 8624 +17936 231 +17936 1628 +17936 4796 +17936 7766 +18000 231 +18000 1595 +18016 2376 +18032 4521 +18032 7766 +18032 10670 +17424 8613 +17424 9603 +17424 10670 +17424 11528 +17488 8404 +17552 8404 +17712 8404 +17856 8404 +17968 8404 +18192 8404 +18368 8404 +18464 8404 +18544 4037 +432 9702 +468 7260 +560 7260 +736 7260 +848 7260 +912 7260 +976 7260 +1072 7260 +1152 7260 +1312 7260 +1520 3113 +1520 7029 +11248 231 +11248 902 +11344 1760 +11488 1760 +11696 1760 +11760 1760 +11904 1760 +12048 1760 +12176 1760 +12304 4488 +12304 5962 +12304 7392 +12304 11165 +18160 3619 +18160 7766 +18160 10670 +18096 231 +18096 3740 +18096 7766 +18096 10670 +11088 231 +11088 902 +11088 1760 +11088 4488 +11108 5368 +11216 5368 +11344 5368 +11488 5368 +11680 5368 +11760 5368 +11904 5368 +12048 5368 +12176 5368 +12336 5368 +12432 5368 +12528 5368 +12688 5368 +12800 5368 +12912 5368 +13104 5368 +13328 5368 +13456 5368 +13520 5368 +13584 5467 +13584 7282 +13584 8866 +13584 11539 +10672 231 +10672 902 +10672 1760 +10800 5588 +10928 5588 +11088 5588 +11216 5588 +11344 5588 +11488 5588 +11680 5588 +11760 5588 +11904 5588 +12048 5588 +12176 5588 +12336 5588 +12432 5588 +12528 5588 +12688 5588 +12800 5588 +12912 5588 +13104 5588 +13328 6402 +13328 7392 +13328 8536 +13328 9174 +13328 11429 +3792 2904 +3792 5852 +3813 6028 +3888 6028 +3952 6028 +4096 6028 +4176 6028 +4256 6028 +4432 6028 +4496 6028 +4560 6028 +4640 6028 +4752 6028 +4848 6028 +4912 6028 +5040 6028 +5328 6028 +5664 6028 +6096 6028 +6192 6028 +6256 6028 +6416 6028 +6555 6028 +6576 8646 +6576 9438 +6576 11495 +4048 2959 +4048 6908 +4128 10032 +4272 10032 +4400 10032 +4528 10032 +4624 10032 +4688 10032 +4784 10032 +4944 10032 +5008 10032 +5136 10032 +5264 10032 +5552 10032 +5632 10032 +5808 10032 +5968 10032 +6032 10032 +6112 10032 +6192 10032 +6352 10032 +6448 10032 +6672 10032 +6848 10032 +6928 10802 +4400 2365 +4400 5434 +4400 7810 +4528 9592 +4624 9592 +4688 9592 +4784 9592 +4960 9592 +5136 9592 +5552 9592 +5632 9592 +5808 9592 +5968 9592 +6032 9592 +6112 9592 +6192 9592 +6352 9592 +6416 11495 +10256 231 +10256 1012 +10256 1760 +10256 7513 +10384 7788 +10496 7788 +10656 7788 +10816 7788 +10928 7788 +11040 7788 +11120 7788 +11216 7788 +11328 7788 +11504 7788 +11568 7788 +11632 7788 +11696 7788 +11760 7788 +11824 7788 +11968 7788 +12192 7788 +12272 7788 +12384 7788 +12528 7788 +12656 7788 +12800 7788 +12880 7788 +12944 7788 +13088 7788 +13275 7788 +13296 8536 +13296 9174 +13296 11429 +9840 231 +9840 1012 +9840 1760 +9860 3168 +10000 3168 +10096 3168 +10224 3168 +10288 3168 +10384 3168 +10512 3168 +10576 3168 +10640 3168 +10704 3168 +10800 3168 +10928 3168 +11056 3168 +11120 3168 +11216 3168 +11344 3168 +11488 3168 +11696 3168 +11760 3168 +11904 3168 +12048 3168 +12176 3168 +12336 3168 +12432 3168 +12544 3168 +12688 3168 +12752 3168 +12816 3168 +12928 3168 +13040 3267 +13040 3938 +13040 4708 +13040 6072 +13040 7282 +13040 8536 +13040 9174 +13040 11429 +4080 2310 +4080 4664 +4101 4840 +4176 4840 +4256 4840 +4432 4840 +4496 4840 +4560 4840 +4656 4840 +4720 4840 +4784 4840 +4848 4840 +4912 4840 +5040 4840 +5296 4840 +5664 4840 +5872 4840 +6128 4840 +6192 4840 +6256 4840 +6416 4840 +6560 4840 +6672 4840 +6784 4840 +6896 4840 +7008 4840 +7088 4840 +7184 4840 +7280 4983 +7280 7128 +7280 8756 +7280 10802 +4336 2365 +4336 5434 +4432 6776 +4496 6776 +4640 6776 +4768 6776 +4848 6776 +4912 6776 +5040 6776 +5424 6776 +5648 6776 +5936 6776 +6096 6776 +6192 6776 +6416 6776 +6544 6776 +6672 6776 +6768 6776 +6864 6776 +6992 6776 +7088 6776 +7184 6776 +7328 6776 +7611 6776 +7632 6897 +7632 8756 +18064 231 +18064 3740 +18064 7766 +18064 10670 +6960 638 +6960 1518 +6960 2574 +6960 4048 +6996 5588 +7088 5588 +7184 5588 +7328 5588 +7584 5588 +7664 5588 +7760 5588 +7824 5588 +7888 5588 +7952 5588 +8048 5588 +8176 5588 +8336 5588 +8432 5588 +8496 5588 +8752 5588 +8848 5588 +8992 5588 +9440 5588 +9552 5588 +9680 5588 +9824 5588 +10016 5588 +10160 5588 +10224 5588 +10288 7392 +9200 880 +9200 1760 +9200 2948 +9440 5808 +9552 5808 +9680 5808 +9819 5808 +1328 9911 +1584 9152 +1712 9152 +1776 9152 +1904 9152 +2064 9152 +2240 9152 +2464 9152 +2736 9152 +2960 9152 +3024 9152 +3168 9152 +3312 9152 +3504 9152 +3568 3113 +3568 7128 +3568 9053 +9424 352 +9444 572 +9584 572 +9680 572 +9808 572 +9872 572 +10000 572 +10096 572 +10224 572 +10288 572 +10384 572 +10512 572 +10640 572 +10704 572 +10800 572 +10928 572 +11056 572 +11120 572 +11216 572 +11344 572 +11488 572 +11696 572 +11760 572 +11904 572 +12048 572 +12176 572 +12336 572 +12432 572 +12528 572 +12688 572 +12816 572 +12955 572 diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/usa13509.tsp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/usa13509.tsp new file mode 100644 index 000000000..7fc018324 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/benchs/usa13509.tsp @@ -0,0 +1,13510 @@ +13509 +245553 817828 +247133 810906 +247206 810189 +249239 806281 +250111 805153 +254475 804794 +254683 804778 +254950 804294 +255622 803825 +255803 803469 +255972 803808 +256047 803539 +256147 803108 +256311 803692 +256789 803175 +256933 801631 +257072 802936 +257072 803258 +257211 802686 +257264 803556 +257544 803275 +257631 802964 +257739 801939 +257903 801303 +258100 803025 +258219 802897 +258403 803267 +258458 801542 +258550 801933 +258572 802783 +258628 801931 +258647 803247 +258703 802992 +258781 801258 +258822 801808 +258872 801314 +258897 801869 +258914 801272 +259014 974972 +259019 802506 +259306 803286 +259328 801628 +259403 802458 +259481 801508 +259503 801231 +259619 801769 +259647 801225 +259647 802417 +259722 817292 +259808 801486 +259869 802325 +259875 801750 +260028 802242 +260108 801497 +260519 801442 +260569 802719 +260644 802322 +260714 974761 +260731 972083 +260883 817264 +260919 979569 +261000 982628 +261006 972900 +261033 971644 +261219 801436 +261272 802333 +261322 976308 +261400 802136 +261417 817950 +261494 979133 +261586 978236 +261592 979906 +261600 801392 +261661 802086 +261700 980517 +261833 981228 +261903 976958 +261917 800967 +261944 981833 +262022 800942 +262031 982297 +262156 983250 +262189 817919 +262256 977578 +262350 975817 +262375 801250 +262442 802067 +262467 984811 +262483 977336 +262564 978247 +262614 818094 +262825 801072 +262869 983131 +262931 979928 +262936 800792 +262936 979603 +262983 979283 +263014 981631 +263181 801000 +263306 818269 +263394 817789 +263583 800833 +263728 979714 +263794 988200 +263992 800658 +264047 990156 +264119 977894 +264183 814175 +264422 980136 +264486 820225 +264517 819483 +264611 800731 +264669 818017 +265250 800667 +265267 800486 +265625 819497 +265661 800536 +265864 800522 +265886 800389 +266156 800572 +266233 801256 +266250 816250 +266403 818725 +266450 800761 +266636 807164 +266669 818803 +266744 818153 +266842 806678 +266908 801203 +267053 800367 +267089 817461 +267150 800536 +267372 809511 +267539 809339 +267600 800739 +267614 814386 +267750 800583 +267778 800358 +268000 800667 +268172 800822 +268197 806656 +268328 810933 +268417 810964 +268794 800536 +268833 822903 +269069 992711 +269097 820542 +269139 823272 +269294 820456 +269339 800944 +269467 820261 +269581 820672 +269614 819842 +269758 820908 +270269 804858 +270500 822500 +270528 824244 +270567 823786 +270592 801367 +270728 824078 +270994 824544 +271189 824444 +271300 824533 +271439 802008 +271675 802664 +271958 824906 +271972 802531 +272156 818586 +272172 802700 +272192 802394 +272217 824981 +272267 981439 +272436 808300 +272517 808142 +272542 802300 +272836 824808 +272928 813631 +273064 986781 +273294 824578 +273361 825308 +273603 981233 +274097 825694 +274122 826592 +274242 825803 +274250 825906 +274464 803258 +274472 825464 +274667 827042 +274689 826864 +274692 825417 +274931 817961 +274953 814411 +274972 827092 +274986 825750 +275061 995072 +275119 826322 +275156 978558 +275211 825725 +275214 825278 +275308 827336 +275356 825614 +275428 804025 +275469 818117 +275858 977989 +275956 815064 +275986 984078 +276381 818242 +276383 803975 +276742 977483 +276750 804094 +277122 822992 +277164 803844 +277206 824333 +277456 815308 +277481 804364 +277481 827036 +277519 818019 +277519 980694 +277547 827378 +277636 982386 +277675 806017 +277689 827692 +277814 979083 +277900 976686 +277950 819806 +277978 827975 +278003 973961 +278083 828114 +278139 827783 +278158 828208 +278258 828292 +278336 970608 +278356 804933 +278425 826997 +278625 828486 +278750 828514 +278769 973236 +278775 972114 +278803 805006 +278825 986175 +278950 819736 +278961 818433 +279011 815861 +279092 827875 +279092 971497 +279142 827056 +279211 828172 +279219 972897 +279228 828433 +279356 828064 +279375 822861 +279456 818006 +279472 824586 +279503 975819 +279525 817272 +279564 979367 +279650 818781 +279656 828003 +279675 819736 +279781 817567 +279786 816142 +279786 973983 +279906 826933 +279936 816903 +279939 822197 +279944 817383 +280033 805658 +280083 819078 +280183 821131 +280194 827719 +280203 970542 +280219 817331 +280222 816194 +280314 820150 +280339 826653 +280342 805889 +280350 823894 +280364 975089 +280408 993542 +280442 816281 +280611 970408 +280650 817889 +280681 805606 +280714 806536 +280719 806803 +280778 827639 +280786 806028 +280850 806667 +280892 805658 +280917 817236 +280942 978278 +281139 816181 +281144 819739 +281206 820233 +281356 806719 +281458 827569 +281486 805886 +281508 824617 +281611 816019 +281758 805903 +281822 818242 +281875 827397 +282164 827225 +282333 821814 +282381 973197 +282439 827194 +282586 814567 +282714 827197 +282917 814078 +283050 972750 +283197 806078 +283322 981172 +283358 822747 +283506 807256 +283644 821961 +283858 807422 +284006 977481 +284056 806050 +284150 967133 +284319 807603 +284367 992347 +284569 813917 +284581 813594 +284600 981822 +284656 821722 +284717 813681 +284858 813725 +284953 815350 +285025 813308 +285072 821706 +285217 998603 +285381 813794 +285381 814606 +285408 813008 +285492 817731 +285544 811067 +285547 816333 +285550 823881 +285578 818514 +285650 815864 +285689 815442 +285731 995683 +285742 817464 +285781 818869 +285908 813944 +285997 813394 +286097 820553 +286119 808078 +286144 813808 +286147 966258 +286192 814428 +286417 811236 +286475 968922 +286489 813514 +286497 819928 +286608 813658 +286614 814192 +286617 815097 +286647 821131 +286650 808450 +286672 991703 +286681 973881 +286697 812083 +286772 998278 +286775 813281 +286794 965600 +286803 815097 +286986 813083 +287078 962172 +287089 1.00499e+06 +287094 817331 +287308 816014 +287394 811153 +287500 822969 +287556 820950 +287586 813181 +287811 826153 +287994 820703 +288003 812733 +288022 816447 +288039 817258 +288106 818781 +288189 978483 +288356 823306 +288403 817689 +288525 816856 +288611 819067 +288617 987061 +288650 820392 +288831 977128 +288847 979006 +288919 990947 +289003 812639 +289006 823747 +289022 825928 +289172 819231 +289178 985461 +289292 816658 +289408 998494 +289442 952886 +289486 812989 +289539 953594 +289600 960650 +289669 984783 +289783 966458 +289806 812336 +289808 975025 +289825 959692 +289825 980172 +289886 809025 +290028 953317 +290175 958892 +290244 953986 +290256 809272 +290256 809722 +290297 827161 +290300 826689 +290336 954342 +290386 956983 +290403 965133 +290403 985678 +290442 955689 +290489 824611 +290550 820625 +290558 954097 +290694 980817 +290936 972889 +290961 809372 +291192 813517 +291333 981558 +291383 830353 +291397 989050 +291436 956450 +291656 810047 +291692 954317 +291758 809831 +291869 821403 +291894 988622 +291964 962694 +292094 997858 +292106 810231 +292261 986575 +292281 953447 +292367 979597 +292392 814658 +292433 810378 +292672 977642 +292856 810561 +292875 971517 +292947 952786 +293103 1.00418e+06 +293106 988097 +293114 961025 +293172 994661 +293472 991411 +293481 950158 +293489 810667 +293556 988783 +293561 981153 +293625 1.00896e+06 +293664 821975 +293789 902600 +293836 949025 +293872 824469 +293992 958375 +294236 952439 +294239 984933 +294289 971703 +294300 815108 +294383 905953 +294419 902992 +294436 969408 +294475 826425 +294506 959944 +294569 946394 +294606 950511 +294625 953578 +294631 983853 +294658 812581 +294747 811272 +294747 984506 +294786 984872 +294803 896939 +294822 954153 +294831 949219 +294847 984656 +294878 985514 +294950 986183 +295000 815917 +295014 974522 +295044 822800 +295067 949922 +295072 950947 +295153 983800 +295178 983158 +295231 985161 +295292 952008 +295297 825192 +295308 960708 +295375 907200 +295425 903381 +295425 950203 +295472 950319 +295478 982908 +295519 982694 +295533 906022 +295569 958083 +295606 1.04372e+06 +295614 982267 +295633 952858 +295639 950253 +295686 979644 +295711 981400 +295722 903817 +295747 971425 +295819 957606 +295822 984906 +295847 985522 +295894 963333 +295917 820875 +295919 980331 +295956 907194 +296003 984869 +296131 828178 +296158 955575 +296183 955375 +296194 956347 +296200 950097 +296236 818906 +296311 960650 +296342 831253 +296458 905392 +296461 826067 +296483 816378 +296514 823250 +296581 815986 +296622 948900 +296628 952353 +296656 950192 +296661 911019 +296667 901083 +296692 1.00012e+06 +296792 959769 +296803 976472 +296817 969028 +296875 971083 +296894 912708 +296897 958994 +296908 952089 +296931 913019 +296944 912189 +296992 912067 +297028 967803 +297028 981242 +297050 951236 +297056 954586 +297058 954367 +297064 965394 +297178 815083 +297178 954336 +297231 901236 +297256 849833 +297264 990733 +297272 905989 +297353 949772 +297364 848786 +297486 966008 +297597 955169 +297631 953631 +297672 952336 +297672 955297 +297703 954953 +297728 946825 +297758 951144 +297772 955169 +297781 951717 +297806 961569 +297856 958242 +297858 820317 +297858 959508 +297894 821675 +297897 943831 +297928 961006 +297944 987317 +297956 824944 +297956 908228 +297958 915014 +297975 933250 +298186 950558 +298200 943839 +298236 904750 +298267 825969 +298372 909561 +298378 915442 +298475 948906 +298531 846644 +298547 899906 +298678 951281 +298797 950628 +298831 979411 +298847 976697 +298875 955628 +298956 898978 +298986 939286 +298992 901003 +299022 955022 +299033 900772 +299053 968764 +299058 901422 +299061 903561 +299100 900325 +299108 916633 +299117 950619 +299144 900539 +299175 939242 +299183 902108 +299319 903664 +299322 953800 +299361 906786 +299403 902031 +299403 910247 +299425 899633 +299428 903517 +299439 821100 +299478 854181 +299481 919886 +299481 939169 +299500 962569 +299542 900053 +299544 900750 +299581 920358 +299589 829283 +299650 912031 +299675 989047 +299742 939922 +299764 904089 +299778 903878 +299794 818106 +299839 901528 +299889 978769 +299911 939583 +299917 816783 +299939 902417 +299978 922847 +299989 904122 +300033 918186 +300108 907194 +300156 1.00205e+06 +300206 938456 +300225 823397 +300258 925083 +300272 945914 +300356 944242 +300403 906989 +300439 820719 +300464 948850 +300472 906897 +300472 991400 +300478 943356 +300528 831750 +300536 905517 +300558 906192 +300564 917369 +300564 959267 +300664 904800 +300772 992400 +300806 926714 +300819 937581 +300850 978400 +300858 941017 +300928 937364 +300931 959875 +300972 960781 +300978 984211 +300994 919900 +301008 909928 +301025 940517 +301089 948581 +301103 973150 +301125 852006 +301131 946428 +301172 835819 +301217 924981 +301308 856033 +301314 940153 +301400 944108 +301422 1.02394e+06 +301469 919611 +301522 947389 +301528 855700 +301586 856603 +301658 817067 +301667 963975 +301686 933758 +301697 911469 +301708 856253 +301758 843753 +301764 858056 +301806 924642 +301817 932736 +301825 969361 +301842 908592 +301894 826394 +301897 925825 +301906 935811 +301922 826147 +302008 856269 +302139 923744 +302142 918319 +302172 910961 +302222 926569 +302239 920197 +302256 978033 +302264 932172 +302328 951608 +302347 922683 +302356 920944 +302356 921853 +302358 928225 +302364 933772 +302367 930136 +302383 909200 +302419 932506 +302453 856483 +302458 877008 +302500 1.0325e+06 +302531 941897 +302669 977428 +302733 918992 +302750 897811 +302750 988717 +302767 977908 +302767 984117 +302772 912236 +302819 821222 +302867 893761 +302889 912342 +302892 856406 +302944 813933 +302950 907950 +302975 937433 +302978 978017 +303025 819756 +303025 931906 +303078 1.04019e+06 +303086 892869 +303117 813967 +303117 954558 +303131 917903 +303133 899431 +303139 842475 +303156 892475 +303169 920489 +303294 827592 +303311 924956 +303319 816558 +303342 813989 +303406 975567 +303458 965281 +303489 941778 +303494 973700 +303503 891528 +303536 912653 +303547 940725 +303569 871639 +303581 900656 +303583 1.03661e+06 +303586 905861 +303656 885561 +303672 890928 +303678 979914 +303714 943122 +303758 843008 +303758 897483 +303839 872750 +303856 886117 +303878 960875 +303933 864958 +303942 912536 +303958 888853 +303975 919314 +304028 922150 +304031 882483 +304042 901569 +304056 866189 +304064 876836 +304097 866631 +304108 817081 +304108 914336 +304111 888278 +304111 920683 +304114 885344 +304189 970114 +304208 873075 +304211 872169 +304247 954797 +304250 872519 +304261 888908 +304264 872797 +304303 888422 +304319 849758 +304381 842808 +304386 904414 +304392 976197 +304403 885436 +304408 866136 +304428 872225 +304433 850453 +304439 856886 +304503 934331 +304506 911544 +304519 912100 +304556 866383 +304614 873150 +304686 872361 +304692 834131 +304692 836303 +304703 919783 +304739 879192 +304753 901008 +304761 883422 +304783 900375 +304811 926956 +304850 925958 +304853 928506 +304867 909561 +304875 876997 +304892 997717 +304911 915194 +304942 924175 +304978 949964 +304981 861361 +305019 907478 +305042 904611 +305042 905822 +305050 978200 +305081 976786 +305100 872125 +305181 829483 +305183 921847 +305186 872728 +305228 879033 +305253 896794 +305333 920814 +305367 917528 +305375 954831 +305425 975464 +305450 838703 +305453 877517 +305475 881753 +305536 877119 +305589 915558 +305600 919539 +305619 818308 +305667 1.00643e+06 +305692 847433 +305706 974092 +305772 904831 +305781 982725 +305786 978528 +305814 872914 +305869 845833 +305881 911681 +305900 881708 +305903 972967 +305922 951292 +305958 916164 +305986 870311 +305992 871611 +306033 879036 +306039 830981 +306136 972053 +306161 920569 +306169 846600 +306181 877531 +306200 927625 +306228 857122 +306236 844147 +306278 963342 +306317 816067 +306322 870397 +306325 976769 +306336 924192 +306353 905008 +306483 911564 +306581 984403 +306603 938925 +306694 814628 +306878 922714 +306908 819175 +306928 917439 +306936 853922 +306942 880431 +307014 914361 +307050 848431 +307075 849244 +307100 1.012e+06 +307108 949328 +307122 850203 +307172 911414 +307175 974425 +307214 861156 +307233 955506 +307239 873142 +307383 915942 +307386 880789 +307436 980553 +307472 832208 +307489 844839 +307542 935403 +307581 982281 +307592 986747 +307619 865706 +307636 880747 +307647 905117 +307731 858142 +307742 852269 +307750 944153 +307817 855386 +307836 924253 +307847 835600 +307908 898486 +307917 837900 +307917 856797 +307947 974253 +307969 853767 +307997 816900 +308158 926603 +308206 880706 +308231 883614 +308303 820100 +308306 906717 +308325 832786 +308372 912175 +308400 895342 +308411 977933 +308461 932889 +308469 901531 +308483 937572 +308531 880561 +308531 969767 +308558 820211 +308600 1.00601e+06 +308656 910156 +308700 851619 +308772 842014 +308781 974014 +308783 965928 +308828 843239 +308828 877731 +308917 880397 +308939 1.02879e+06 +309036 845756 +309078 944219 +309139 1.01898e+06 +309175 997861 +309197 932822 +309200 911156 +309200 939964 +309250 885900 +309381 905089 +309450 953753 +309469 975383 +309497 959114 +309528 871514 +309531 921825 +309567 855167 +309575 851622 +309597 837381 +309636 817228 +309656 864597 +309736 840531 +309764 925850 +309778 966736 +309814 863075 +309833 918000 +309839 920533 +309842 1.03744e+06 +309911 833728 +309967 948269 +310000 872608 +310011 894522 +310050 863281 +310067 904722 +310103 863497 +310111 838664 +310147 922872 +310236 874939 +310258 964850 +310294 961144 +310328 858639 +310344 919756 +310364 827472 +310397 1.0483e+06 +310403 848792 +310408 830753 +310486 853050 +310547 951256 +310558 974642 +310578 920489 +310594 921211 +310636 981814 +310681 836239 +310722 840892 +310728 969783 +310744 831994 +310786 976053 +310894 910683 +310906 882281 +310931 870628 +310944 924003 +310981 973425 +311022 856969 +311044 912994 +311050 870722 +311081 855944 +311086 888272 +311128 860461 +311147 932714 +311158 901419 +311169 977275 +311239 979028 +311267 954453 +311275 841519 +311278 920661 +311358 1.02224e+06 +311369 834236 +311392 855192 +311431 894097 +311431 904586 +311433 932608 +311497 814917 +311556 885578 +311583 944261 +311650 966767 +311692 889200 +311711 847333 +311797 837892 +311808 821350 +311828 852364 +311869 947808 +311914 1.0146e+06 +311956 987178 +311972 910217 +312022 890347 +312033 970364 +312042 819814 +312067 973025 +312072 832503 +312133 823542 +312158 861711 +312161 998453 +312169 983931 +312228 904603 +312231 853906 +312311 842106 +312356 857228 +312436 904531 +312478 939742 +312517 898375 +312617 1.00817e+06 +312689 836872 +312714 834650 +312775 945764 +312794 863256 +312822 892756 +312825 862556 +312836 904683 +312925 851117 +312975 828525 +312989 853444 +312989 870225 +313058 822422 +313061 968978 +313081 973611 +313100 857131 +313111 924450 +313114 855531 +313128 843358 +313181 954564 +313189 854939 +313194 839172 +313222 924342 +313269 892903 +313381 947289 +313392 1.02851e+06 +313403 1.10934e+06 +313406 830461 +313406 938467 +313408 835936 +313444 1.09545e+06 +313464 892600 +313511 853422 +313528 865392 +313569 1.09561e+06 +313614 961439 +313644 893061 +313700 814342 +313775 849342 +313794 841611 +313850 832231 +313856 859294 +313864 972153 +313903 926692 +313903 976842 +313972 1.0235e+06 +314128 833292 +314144 860678 +314153 924117 +314172 895422 +314217 853378 +314228 1.03493e+06 +314333 874014 +314350 977436 +314394 835194 +314397 847250 +314436 934572 +314439 974089 +314481 1.09928e+06 +314497 985706 +314503 835086 +314589 856406 +314611 1.03393e+06 +314622 971956 +314628 908500 +314636 1.00437e+06 +314650 882544 +314675 971144 +314717 836469 +314722 908967 +314747 969231 +314856 845139 +314861 820172 +314917 954783 +315022 1.06158e+06 +315044 910689 +315086 828500 +315089 878944 +315128 837878 +315172 826350 +315189 927067 +315214 971536 +315242 965336 +315278 873247 +315297 941058 +315306 838356 +315342 974428 +315392 824625 +315394 1.10756e+06 +315422 867150 +315422 968333 +315492 971464 +315536 901072 +315544 1.10303e+06 +315581 847383 +315603 914031 +315653 914258 +315686 934839 +315700 1.03001e+06 +315717 852506 +315783 841558 +315789 904406 +315811 925328 +315828 1.0292e+06 +315847 958489 +315850 1.06272e+06 +315922 1.06224e+06 +315939 971086 +315942 832506 +315942 1.02892e+06 +315972 1.00182e+06 +315983 898669 +316000 857189 +316033 946553 +316039 891956 +316072 818856 +316089 850472 +316250 828869 +316250 955792 +316264 918181 +316269 962836 +316278 1.10333e+06 +316292 971025 +316300 915544 +316314 936439 +316339 883133 +316369 867419 +316453 895553 +316503 950725 +316528 932019 +316592 974719 +316672 928906 +316747 886461 +316753 930444 +316797 964819 +316831 921336 +316925 1.06207e+06 +316939 891306 +317011 903975 +317036 981236 +317058 836533 +317078 817425 +317086 856106 +317086 877772 +317114 910606 +317128 1.10067e+06 +317147 832528 +317164 862639 +317169 991322 +317200 858161 +317225 915431 +317244 961650 +317319 841708 +317333 872047 +317381 999469 +317419 989453 +317511 1.03159e+06 +317539 966497 +317561 846153 +317586 1.06486e+06 +317606 930861 +317711 847894 +317719 918214 +317733 844467 +317739 816328 +317781 823486 +317822 975764 +317833 855558 +317839 816078 +317864 890322 +317878 964622 +317883 877272 +317958 951500 +318022 970914 +318086 859700 +318144 948403 +318192 923297 +318197 935142 +318214 930294 +318242 944908 +318272 994261 +318294 866178 +318308 843644 +318361 1.00984e+06 +318456 1.02367e+06 +318464 916561 +318467 815961 +318575 1.03092e+06 +318600 886994 +318603 903958 +318636 922958 +318736 897336 +318781 854497 +318867 889839 +318872 1.00291e+06 +318911 851456 +318922 1.00484e+06 +318933 931181 +318939 967144 +318972 986033 +319003 842519 +319028 922431 +319036 943950 +319119 1.11881e+06 +319133 877358 +319231 976564 +319253 926394 +319292 826797 +319364 819286 +319381 813036 +319436 942439 +319508 834564 +319564 999619 +319608 909839 +319617 898700 +319633 837825 +319636 952703 +319656 940536 +319678 1.10294e+06 +319753 939978 +319789 892872 +319808 916556 +319828 980333 +319844 865786 +319872 903569 +319894 832003 +319908 872906 +319919 833069 +319972 1.02078e+06 +320000 808458 +320039 1.06605e+06 +320108 971297 +320147 933419 +320167 929092 +320172 830628 +320217 937142 +320264 921389 +320333 810500 +320333 895222 +320339 843928 +320356 825083 +320375 937000 +320400 887281 +320492 916581 +320497 921092 +320525 955061 +320678 829008 +320722 842328 +320725 912408 +320736 829147 +320800 968064 +320833 811000 +320850 983417 +320853 932200 +320867 821181 +320878 846675 +320883 954717 +320894 882219 +320914 837956 +320919 967156 +320953 964686 +320958 989633 +320961 902942 +321094 906233 +321100 835011 +321142 811542 +321153 812472 +321244 969450 +321261 991650 +321292 1.01788e+06 +321322 812992 +321331 962275 +321358 816222 +321397 953200 +321439 960908 +321442 857150 +321444 951203 +321469 827781 +321489 811633 +321531 947992 +321533 901311 +321558 819339 +321572 943372 +321594 971497 +321614 819042 +321631 917206 +321686 882825 +321694 960122 +321811 821092 +321839 865803 +321839 968844 +321872 825658 +321975 831778 +321994 1.10968e+06 +322019 839086 +322042 823219 +322047 958553 +322094 997964 +322136 986703 +322161 807528 +322175 824136 +322206 982019 +322217 1.10926e+06 +322253 950575 +322267 952253 +322333 973742 +322344 977550 +322369 808606 +322381 843092 +322386 949403 +322411 927158 +322417 854164 +322428 944553 +322503 1.01478e+06 +322528 1.09831e+06 +322592 904225 +322614 837367 +322664 876253 +322686 1.07758e+06 +322700 1.068e+06 +322731 899858 +322744 949783 +322767 927233 +322783 957494 +322817 938239 +322836 834722 +322861 1.04095e+06 +322869 810808 +322936 840611 +322958 812356 +322964 1.01306e+06 +322986 901847 +323050 840275 +323053 847728 +323061 877981 +323061 924503 +323069 960064 +323078 954797 +323089 917747 +323094 901389 +323122 1.06778e+06 +323128 897983 +323131 970114 +323158 945164 +323175 890256 +323186 1.02545e+06 +323189 845172 +323203 962128 +323211 891633 +323283 932797 +323292 966250 +323300 906056 +323344 961511 +323361 813917 +323414 903217 +323431 893286 +323475 973864 +323492 904600 +323503 1.08708e+06 +323511 953008 +323525 908778 +323536 896544 +323642 887036 +323644 894742 +323664 961006 +323667 863000 +323694 841881 +323717 1.1286e+06 +323769 825925 +323789 806928 +323794 816633 +323808 1.06479e+06 +323864 968481 +323867 833547 +323881 989789 +323881 1.00864e+06 +323939 993939 +323967 973236 +323969 820603 +323969 908564 +324014 988172 +324058 994933 +324064 972114 +324067 887772 +324072 870211 +324083 911867 +324111 1.00712e+06 +324172 886478 +324206 1.04228e+06 +324239 856917 +324283 901322 +324311 966675 +324314 806700 +324322 830614 +324333 971022 +324339 866547 +324356 807242 +324367 1.11225e+06 +324372 1.03159e+06 +324389 891083 +324419 822153 +324419 977939 +324425 962297 +324453 949483 +324458 1.00538e+06 +324486 817833 +324486 997328 +324489 975264 +324494 875142 +324561 839403 +324575 914931 +324575 998711 +324581 837317 +324608 849878 +324614 973878 +324617 901153 +324639 864597 +324697 986786 +324706 1.00012e+06 +324708 850008 +324708 1.00406e+06 +324772 917547 +324786 940594 +324797 863619 +324806 809806 +324822 969942 +324861 882964 +324956 849919 +325006 947403 +325042 945739 +325092 921192 +325117 863767 +325156 954092 +325158 921917 +325158 937319 +325175 878364 +325175 968042 +325183 921475 +325231 926378 +325247 956369 +325250 937500 +325264 968861 +325275 927139 +325294 949028 +325300 925142 +325306 825894 +325325 935039 +325339 966653 +325344 927883 +325356 934108 +325358 858933 +325381 819325 +325403 829039 +325419 973206 +325431 903092 +325436 862119 +325439 930528 +325447 943672 +325481 828719 +325489 929200 +325497 858700 +325519 984978 +325536 838875 +325564 958631 +325569 842383 +325597 840964 +325606 856725 +325631 971414 +325789 973622 +325808 938925 +325828 821553 +325836 951086 +325839 1.17112e+06 +325842 881872 +325883 952039 +325883 965083 +325889 963086 +325889 966850 +325897 968567 +325908 926478 +325919 967558 +325936 948553 +325964 1.14709e+06 +325972 823339 +325997 1.1063e+06 +326039 914778 +326056 832456 +326097 854808 +326108 1.1077e+06 +326119 998139 +326125 900367 +326153 932867 +326208 836000 +326278 964556 +326308 972889 +326322 873192 +326353 860344 +326394 965381 +326400 1.17083e+06 +326408 903647 +326453 853783 +326467 972256 +326492 967128 +326517 969081 +326536 837597 +326550 799406 +326592 836189 +326631 954881 +326653 1.07152e+06 +326728 1.14146e+06 +326731 974603 +326733 957092 +326775 845394 +326781 1.17098e+06 +326789 1.15498e+06 +326833 847383 +326858 1.17182e+06 +326875 833467 +326875 939608 +326900 808508 +326947 937417 +326958 976019 +326961 920858 +326981 958850 +326989 926567 +326992 1.08131e+06 +327025 1.03136e+06 +327028 971550 +327044 875958 +327092 960081 +327142 971561 +327153 1.17156e+06 +327169 1.16875e+06 +327189 1.02644e+06 +327214 1.09105e+06 +327217 840133 +327225 1.1064e+06 +327233 992969 +327253 973206 +327253 1.14624e+06 +327286 949422 +327286 966225 +327292 827200 +327308 1.15529e+06 +327342 802419 +327358 962750 +327361 968867 +327375 1.01951e+06 +327425 1.17031e+06 +327439 939714 +327447 974133 +327458 969975 +327481 964717 +327503 816369 +327547 812422 +327556 989019 +327558 1.11554e+06 +327564 998958 +327572 943450 +327572 974106 +327578 848750 +327592 977969 +327594 974581 +327617 1.0813e+06 +327631 802503 +327675 886508 +327678 1.17022e+06 +327700 1.0828e+06 +327714 891167 +327733 924056 +327750 917925 +327764 799311 +327786 919142 +327794 1.0815e+06 +327833 968000 +327853 800353 +327872 845619 +327883 868717 +327889 851450 +327917 930556 +327919 1.15562e+06 +327928 956342 +327931 1.1569e+06 +327939 798628 +327947 1.16962e+06 +327958 954508 +327961 851839 +327964 965606 +327994 972689 +328000 947206 +328003 856536 +328039 819494 +328042 911700 +328047 974447 +328058 974028 +328083 981125 +328111 831728 +328111 1.15379e+06 +328139 969486 +328158 972278 +328189 822350 +328192 934175 +328203 851722 +328219 926578 +328233 971703 +328267 830794 +328281 884764 +328311 857636 +328339 1.09707e+06 +328342 972286 +328344 852297 +328364 964747 +328383 1.16973e+06 +328386 866294 +328403 851833 +328406 836325 +328406 878875 +328422 1.04403e+06 +328439 971428 +328467 852100 +328475 1.15569e+06 +328492 1.09759e+06 +328503 810794 +328517 800367 +328519 1.00465e+06 +328544 799750 +328550 904056 +328564 973386 +328572 1.16921e+06 +328578 972544 +328597 846200 +328600 973636 +328667 824042 +328678 843306 +328686 851906 +328708 811097 +328714 939872 +328744 957653 +328764 877425 +328778 851833 +328794 1.11757e+06 +328808 971547 +328819 833325 +328833 816583 +328836 899714 +328847 1.00126e+06 +328881 843267 +328928 934483 +328936 960292 +328950 975456 +328961 1.09827e+06 +328997 854011 +328997 945561 +329014 922419 +329028 965636 +329050 806669 +329050 936967 +329064 908781 +329103 961353 +329156 867158 +329183 800222 +329192 916769 +329253 811875 +329264 968958 +329311 964594 +329328 843494 +329342 970778 +329344 972514 +329358 828117 +329372 871647 +329411 971339 +329439 859539 +329439 1.03348e+06 +329442 1.02564e+06 +329444 871386 +329453 998025 +329478 1.12716e+06 +329481 967294 +329536 968900 +329544 970147 +329572 952900 +329572 1.05742e+06 +329589 812367 +329594 1.17264e+06 +329597 867467 +329617 968289 +329619 931400 +329628 1.17035e+06 +329636 1.01832e+06 +329644 1.02829e+06 +329689 934506 +329700 899122 +329719 1.10776e+06 +329739 908244 +329750 817578 +329750 963322 +329761 965950 +329778 1.05941e+06 +329778 1.11517e+06 +329783 885700 +329786 1.15529e+06 +329808 800328 +329814 828103 +329836 845828 +329856 801100 +329875 1.1077e+06 +329911 1.1727e+06 +329922 890661 +329950 975425 +329953 949656 +329975 876300 +329983 946306 +330014 824114 +330039 972256 +330047 1.10785e+06 +330067 801556 +330078 813086 +330122 943653 +330136 927250 +330144 970967 +330150 966128 +330161 927242 +330183 801758 +330197 966986 +330203 1.17202e+06 +330308 850611 +330314 1.11387e+06 +330317 947217 +330342 839383 +330369 1.17291e+06 +330372 1.15621e+06 +330392 850314 +330394 921825 +330483 1.1663e+06 +330508 1.09296e+06 +330544 841558 +330569 1.1091e+06 +330572 915733 +330575 895875 +330606 954719 +330656 860533 +330656 962275 +330678 1.09359e+06 +330681 1.17302e+06 +330739 1.06018e+06 +330750 898544 +330767 1.11739e+06 +330786 868817 +330786 1.09365e+06 +330786 1.16601e+06 +330800 832322 +330847 972958 +330897 820158 +330917 970464 +330956 803156 +330981 936547 +331003 934608 +331006 868642 +331028 867536 +331031 966703 +331053 885608 +331075 923347 +331094 912619 +331131 900531 +331136 941642 +331150 1.04326e+06 +331181 871250 +331192 970253 +331192 1.17086e+06 +331211 971831 +331214 855664 +331236 890550 +331256 1.15513e+06 +331281 919611 +331283 1.07252e+06 +331294 881514 +331333 1.00227e+06 +331372 958392 +331386 1.10124e+06 +331408 919939 +331433 1.17165e+06 +331481 959511 +331486 941500 +331506 968233 +331511 853722 +331575 997333 +331575 1.05774e+06 +331581 1.1735e+06 +331611 983853 +331633 963597 +331650 970292 +331656 919414 +331667 1.01793e+06 +331689 908539 +331731 849150 +331731 862517 +331781 866072 +331786 991772 +331800 964978 +331806 947439 +331811 1.02274e+06 +331828 902228 +331842 904892 +331844 998933 +331886 952211 +331908 1.01378e+06 +331939 987383 +331958 800133 +331958 1.17379e+06 +331972 1.04372e+06 +331975 966150 +332000 1.17242e+06 +332031 946800 +332075 823919 +332075 926661 +332097 875692 +332100 847444 +332100 977544 +332144 804481 +332183 981583 +332183 1.17033e+06 +332281 917975 +332289 875772 +332333 825956 +332342 864836 +332342 975858 +332344 885822 +332347 848358 +332361 968008 +332378 915114 +332400 1.15518e+06 +332436 842289 +332442 868164 +332447 813589 +332467 842642 +332469 958997 +332481 1.00573e+06 +332511 808158 +332558 1.16374e+06 +332569 1.03317e+06 +332611 938853 +332614 972378 +332619 905922 +332653 842817 +332667 892908 +332669 932392 +332697 908797 +332736 858361 +332756 829764 +332775 850981 +332781 863550 +332858 965725 +332939 1.11096e+06 +332942 961944 +332944 839661 +332958 977986 +332961 868436 +332969 810350 +332975 914936 +333022 845539 +333042 969858 +333047 836833 +333061 1.11841e+06 +333089 854847 +333100 891728 +333106 857544 +333139 820969 +333158 926628 +333200 879028 +333208 902322 +333225 804139 +333225 811425 +333244 967842 +333267 833886 +333286 912817 +333289 925383 +333289 1.05604e+06 +333317 1.05672e+06 +333319 897411 +333328 943425 +333369 1.02206e+06 +333428 1.18327e+06 +333439 864381 +333453 1.10452e+06 +333458 841092 +333478 932097 +333486 806831 +333489 965483 +333506 847767 +333514 932956 +333528 1.11788e+06 +333536 905925 +333578 812708 +333583 935775 +333583 976944 +333625 951044 +333631 971736 +333647 927247 +333653 934950 +333703 1.12583e+06 +333706 960686 +333706 987525 +333708 1.11962e+06 +333733 956881 +333764 1.1725e+06 +333767 792947 +333783 880153 +333794 962472 +333806 847997 +333869 842831 +333942 1.04522e+06 +333942 1.10786e+06 +333944 803475 +333964 969603 +333967 845958 +333992 1.10868e+06 +334017 869544 +334025 814203 +334053 908975 +334069 826622 +334100 910617 +334111 930694 +334111 1.10842e+06 +334131 823853 +334144 823128 +334147 1.11909e+06 +334150 1.11549e+06 +334153 886439 +334181 998186 +334208 821622 +334214 816858 +334214 965769 +334222 1.11822e+06 +334247 959461 +334250 940475 +334256 869267 +334267 941061 +334269 1.17611e+06 +334306 963383 +334336 841489 +334342 869472 +334353 1.12297e+06 +334353 1.12358e+06 +334356 1.12349e+06 +334358 861058 +334372 1.01643e+06 +334417 940375 +334433 895717 +334472 841469 +334483 1.12073e+06 +334486 844550 +334486 867878 +334492 996225 +334500 905056 +334500 1.12259e+06 +334503 821983 +334503 888183 +334508 906550 +334511 795611 +334511 869967 +334517 811256 +334539 910072 +334561 1.02489e+06 +334597 944153 +334614 869089 +334636 1.17678e+06 +334661 942883 +334667 820167 +334667 969181 +334669 1.17697e+06 +334672 995242 +334706 825047 +334706 952136 +334750 804867 +334764 1.00855e+06 +334819 897281 +334917 808558 +334933 1.12357e+06 +334936 1.17148e+06 +334939 849139 +334950 903197 +334956 884272 +334967 812794 +334967 818922 +335006 1.17742e+06 +335017 819653 +335017 1.17662e+06 +335044 818692 +335058 1.02009e+06 +335086 946161 +335086 966119 +335092 1.11898e+06 +335128 963922 +335172 820758 +335178 818442 +335181 899206 +335200 964836 +335206 868025 +335214 798789 +335214 843539 +335225 1.17707e+06 +335253 914358 +335261 953156 +335308 805722 +335308 819450 +335311 1.11942e+06 +335317 811233 +335358 869972 +335378 852533 +335378 924697 +335381 867072 +335386 1.12185e+06 +335400 891242 +335406 892669 +335422 1.17782e+06 +335442 842339 +335453 1.05572e+06 +335461 957256 +335481 865444 +335508 790417 +335508 818042 +335519 947808 +335539 828961 +335553 890847 +335575 807147 +335589 978483 +335603 817197 +335606 1.17157e+06 +335614 969108 +335633 880814 +335636 818081 +335656 813036 +335669 845811 +335700 868964 +335717 1.16076e+06 +335725 844133 +335750 838939 +335756 831825 +335772 961781 +335772 962731 +335778 1.01855e+06 +335806 1.12237e+06 +335808 799892 +335831 843394 +335833 867728 +335833 959097 +335844 928342 +335861 862861 +335869 845425 +335869 879844 +335872 1.02378e+06 +335908 864908 +335939 1.12302e+06 +335942 992600 +335956 834681 +335956 986253 +335967 838603 +335975 1.12271e+06 +335992 797444 +335992 963664 +336000 1.17671e+06 +336008 869561 +336017 907736 +336047 867939 +336058 789733 +336064 843353 +336075 886503 +336078 927400 +336081 803514 +336086 912067 +336103 964106 +336103 1.14596e+06 +336106 950525 +336106 1.14573e+06 +336125 920644 +336125 1.17712e+06 +336131 859611 +336131 1.12324e+06 +336142 858350 +336156 811022 +336189 838675 +336189 1.17928e+06 +336197 866089 +336206 869714 +336214 858442 +336219 843692 +336258 836125 +336258 1.17693e+06 +336261 859189 +336289 913994 +336289 917908 +336289 919314 +336306 1.12332e+06 +336331 897111 +336356 966086 +336358 972225 +336386 1.17343e+06 +336411 1.17918e+06 +336417 1.05877e+06 +336417 1.1729e+06 +336447 843258 +336456 859125 +336489 855875 +336517 973761 +336522 813614 +336533 844494 +336561 837183 +336561 969067 +336597 858317 +336597 876000 +336600 844103 +336600 868128 +336600 1.01238e+06 +336603 1.17998e+06 +336608 955553 +336614 952664 +336614 953856 +336647 791028 +336664 1.01682e+06 +336669 935914 +336675 798308 +336675 840178 +336694 1.17822e+06 +336706 1.01535e+06 +336742 941311 +336742 1.01387e+06 +336772 863967 +336794 844394 +336803 1.16173e+06 +336833 789986 +336844 878308 +336861 864750 +336889 788869 +336889 1.01998e+06 +336939 817672 +336950 802111 +336986 858397 +337039 907264 +337067 840317 +337072 842719 +337092 1.17196e+06 +337092 1.17953e+06 +337122 841053 +337133 873886 +337206 1.16215e+06 +337211 851456 +337214 1.16388e+06 +337244 926156 +337258 905514 +337286 870903 +337306 872844 +337319 849192 +337367 827394 +337369 850325 +337372 1.01836e+06 +337381 810981 +337397 1.16412e+06 +337414 1.18104e+06 +337431 1.17108e+06 +337444 852881 +337444 861558 +337456 1.17867e+06 +337458 1.17174e+06 +337458 1.17825e+06 +337475 1.16971e+06 +337481 868086 +337489 843881 +337519 858114 +337536 794478 +337547 842675 +337556 965364 +337569 881089 +337569 1.18353e+06 +337592 966692 +337592 1.18006e+06 +337597 871833 +337669 1.18188e+06 +337689 898083 +337714 842672 +337733 868139 +337739 1.17941e+06 +337747 842964 +337750 864717 +337786 907214 +337789 924917 +337797 1.16464e+06 +337803 843361 +337825 1.17228e+06 +337833 860025 +337839 1.16958e+06 +337856 1.18084e+06 +337867 977256 +337878 1.17852e+06 +337878 1.18357e+06 +337894 819297 +337897 842642 +337903 843061 +337914 908569 +337922 824792 +337922 1.18314e+06 +337936 842061 +337939 846606 +337947 837133 +338006 1.18389e+06 +338014 1.17145e+06 +338025 851886 +338025 933808 +338025 1.17992e+06 +338031 1.18072e+06 +338081 841703 +338094 842397 +338094 905264 +338111 1.02163e+06 +338125 846344 +338136 857614 +338136 924128 +338142 868094 +338144 1.17812e+06 +338161 986947 +338169 811011 +338169 1.18036e+06 +338172 981950 +338178 794494 +338181 867428 +338186 845825 +338200 1.16389e+06 +338247 870861 +338250 885436 +338303 1.16544e+06 +338311 872775 +338314 1.18072e+06 +338314 1.18281e+06 +338319 818011 +338322 1.01842e+06 +338333 1.1195e+06 +338353 1.17914e+06 +338358 790481 +338358 1.1834e+06 +338369 1.09964e+06 +338389 839008 +338389 907261 +338453 816619 +338464 1.18046e+06 +338492 1.18388e+06 +338531 965022 +338533 910278 +338536 1.18133e+06 +338544 842172 +338553 893114 +338556 892844 +338572 840200 +338575 1.15486e+06 +338594 846839 +338622 1.18399e+06 +338628 834089 +338650 843367 +338658 1.18082e+06 +338675 827414 +338675 1.17997e+06 +338694 1.01597e+06 +338703 1.17924e+06 +338708 797556 +338722 1.17869e+06 +338753 1.17566e+06 +338756 847622 +338756 891772 +338767 806931 +338781 907272 +338781 1.1752e+06 +338817 1.18116e+06 +338839 845144 +338847 1.1841e+06 +338869 914917 +338883 1.18308e+06 +338886 1.17812e+06 +338894 1.18159e+06 +338900 841431 +338906 800186 +338917 875261 +338919 842989 +338956 948261 +338958 1.18219e+06 +338967 979361 +338981 842833 +338983 889992 +339017 881344 +339022 1.18081e+06 +339056 914989 +339078 815475 +339103 811047 +339108 811358 +339133 822936 +339136 984931 +339164 815136 +339164 845447 +339164 1.18352e+06 +339167 928481 +339167 1.17899e+06 +339172 1.02324e+06 +339172 1.18011e+06 +339175 797442 +339192 1.18416e+06 +339203 803417 +339203 1.17278e+06 +339208 931539 +339214 780206 +339236 848408 +339242 843786 +339244 860225 +339256 1.16876e+06 +339289 878172 +339294 1.16976e+06 +339303 1.18211e+06 +339319 1.17945e+06 +339344 964283 +339353 799328 +339369 971164 +339381 1.18352e+06 +339383 943569 +339397 862017 +339400 1.17243e+06 +339400 1.18132e+06 +339411 842136 +339428 918433 +339442 909450 +339456 938469 +339461 843347 +339472 903442 +339472 1.18084e+06 +339481 864728 +339492 835347 +339508 907678 +339514 986683 +339533 1.17395e+06 +339547 860419 +339561 839881 +339583 921900 +339606 1.18184e+06 +339608 833781 +339608 1.1795e+06 +339608 1.18041e+06 +339611 1.16501e+06 +339617 1.18352e+06 +339650 835967 +339653 1.18151e+06 +339656 810742 +339656 879147 +339669 832783 +339672 941683 +339681 1.18224e+06 +339686 1.12729e+06 +339725 1.16976e+06 +339731 783861 +339761 1.17904e+06 +339767 896756 +339775 1.18186e+06 +339792 1.18032e+06 +339814 812364 +339817 1.18224e+06 +339831 1.18096e+06 +339839 997244 +339842 884881 +339844 1.01337e+06 +339850 915608 +339867 1.18184e+06 +339875 802083 +339875 822981 +339886 838981 +339897 834258 +339911 963739 +339919 893489 +339925 837203 +339925 1.17516e+06 +339933 810742 +339958 795703 +339961 1.17405e+06 +339967 779075 +339981 858664 +339986 967194 +339997 791997 +340006 810350 +340014 817722 +340017 887553 +340022 950936 +340025 850417 +340028 841447 +340067 900567 +340094 1.18104e+06 +340106 955094 +340117 1.17484e+06 +340119 1.00822e+06 +340122 1.00302e+06 +340122 1.17688e+06 +340131 982319 +340136 838278 +340142 860067 +340144 867469 +340147 904317 +340172 961425 +340186 952661 +340192 809900 +340194 1.1849e+06 +340200 979572 +340200 1.17949e+06 +340203 1.17864e+06 +340211 1.18396e+06 +340217 860886 +340231 843617 +340233 846156 +340239 1.18171e+06 +340253 877583 +340261 863261 +340272 958689 +340292 947389 +340292 989186 +340336 1.17042e+06 +340339 1.17313e+06 +340350 778939 +340378 943411 +340444 907447 +340453 1.17943e+06 +340456 850561 +340469 875497 +340469 1.1658e+06 +340483 1.1726e+06 +340514 840714 +340519 1.18046e+06 +340522 1.18243e+06 +340536 809614 +340536 852550 +340553 1.17751e+06 +340561 788906 +340583 1.06891e+06 +340600 800717 +340600 950031 +340606 867675 +340622 936897 +340625 1.18089e+06 +340625 1.18122e+06 +340633 1.1765e+06 +340636 831256 +340639 809583 +340642 1.01843e+06 +340658 846769 +340678 1.02524e+06 +340681 981903 +340686 1.17938e+06 +340686 1.18027e+06 +340700 883911 +340703 1.17395e+06 +340722 860333 +340736 1.09856e+06 +340736 1.18399e+06 +340739 1.17313e+06 +340750 925553 +340753 842942 +340806 1.18072e+06 +340808 844114 +340814 865911 +340853 1.1796e+06 +340858 811833 +340889 886222 +340900 1.17889e+06 +340900 1.18361e+06 +340903 967714 +340922 825958 +340922 1.17434e+06 +340953 1.18126e+06 +340961 1.18105e+06 +340967 1.17719e+06 +340975 1.17648e+06 +340978 985703 +341008 1.17767e+06 +341014 845194 +341031 1.17845e+06 +341067 1.17806e+06 +341069 1.17934e+06 +341072 1.18057e+06 +341111 828672 +341111 1.09291e+06 +341161 887117 +341161 1.18149e+06 +341167 1.07243e+06 +341172 913764 +341192 940164 +341192 1.16445e+06 +341206 840044 +341208 930536 +341214 1.17302e+06 +341214 1.18106e+06 +341244 1.01441e+06 +341258 1.09937e+06 +341267 962631 +341283 1.17208e+06 +341333 1.09285e+06 +341336 1.17907e+06 +341344 778819 +341347 799400 +341347 1.16312e+06 +341356 1.16053e+06 +341361 1.17864e+06 +341394 1.17976e+06 +341397 1.18034e+06 +341422 879886 +341464 874022 +341469 1.1797e+06 +341478 1.18144e+06 +341478 1.19194e+06 +341481 1.17998e+06 +341486 788769 +341500 1.14288e+06 +341514 896314 +341519 856789 +341542 1.17343e+06 +341544 992647 +341544 1.09973e+06 +341603 1.18651e+06 +341617 1.18052e+06 +341650 848000 +341669 979972 +341686 800628 +341706 1.18837e+06 +341733 901375 +341739 845014 +341742 971433 +341747 868436 +341750 820242 +341753 972625 +341781 794008 +341781 823792 +341783 975922 +341792 778478 +341833 1.02134e+06 +341850 839253 +341858 968803 +341861 1.03334e+06 +341867 851747 +341872 969842 +341897 1.1813e+06 +341942 887197 +341953 797628 +341953 821619 +341975 1.19176e+06 +342000 905708 +342006 861664 +342017 902833 +342022 871814 +342039 834572 +342047 830308 +342056 792547 +342072 841403 +342083 777967 +342092 778439 +342092 815333 +342103 778869 +342117 1.0169e+06 +342133 886644 +342164 1.19037e+06 +342178 905419 +342181 802486 +342200 856078 +342256 779450 +342264 876214 +342264 1.02723e+06 +342272 806894 +342275 838844 +342283 920031 +342283 986842 +342308 1.11324e+06 +342311 956200 +342322 1.19172e+06 +342331 974875 +342331 1.0241e+06 +342336 791489 +342361 966783 +342367 844908 +342369 849442 +342408 990753 +342419 853358 +342419 1.17285e+06 +342464 806072 +342478 889986 +342483 1.17188e+06 +342528 835617 +342542 1.10029e+06 +342564 902719 +342564 995164 +342569 851647 +342575 887033 +342639 858606 +342647 934608 +342675 862089 +342719 982356 +342722 778189 +342739 884092 +342739 920908 +342744 816189 +342772 878286 +342819 1.18438e+06 +342828 847453 +342847 831444 +342856 1.18881e+06 +342869 831103 +342883 779214 +342928 913378 +342978 838242 +342978 997400 +342997 798764 +343047 819831 +343064 826639 +343069 924011 +343083 908519 +343114 899442 +343133 790375 +343144 971425 +343181 864958 +343189 785003 +343192 918472 +343206 784022 +343219 788272 +343242 884911 +343267 935506 +343333 823881 +343336 834992 +343367 850714 +343369 794314 +343381 843767 +343386 787033 +343456 791658 +343461 831100 +343508 877064 +343514 860008 +343528 829322 +343531 890231 +343542 1.19058e+06 +343556 779003 +343581 862947 +343597 983075 +343608 1.17632e+06 +343617 810856 +343622 928128 +343661 1.01057e+06 +343664 1.01748e+06 +343683 869086 +343686 849342 +343689 979636 +343694 906389 +343714 1.19306e+06 +343739 800736 +343764 886817 +343806 810867 +343819 843711 +343847 1.1853e+06 +343850 1.02115e+06 +343858 961281 +343875 836664 +343886 1.03051e+06 +343919 990181 +343925 1.00897e+06 +343936 800697 +343983 822469 +343989 1.19518e+06 +343992 1.18917e+06 +344000 1.19299e+06 +344047 1.03205e+06 +344147 818114 +344153 1.18793e+06 +344164 793714 +344219 917061 +344233 1.19703e+06 +344244 930950 +344264 1.00204e+06 +344264 1.173e+06 +344303 1.03632e+06 +344319 902208 +344358 831069 +344361 847000 +344397 881408 +344433 869353 +344436 1.18609e+06 +344442 857197 +344450 921831 +344464 823917 +344467 859042 +344481 1.19242e+06 +344550 936800 +344600 976736 +344650 1.10091e+06 +344667 960531 +344672 835739 +344678 844292 +344689 802561 +344706 826708 +344717 1.04245e+06 +344719 996478 +344725 818808 +344742 1.01304e+06 +344750 782025 +344806 853478 +344811 872933 +344811 983828 +344839 1.14322e+06 +344847 854764 +344872 786564 +344917 835375 +344942 858478 +344942 890078 +344967 791144 +344989 820144 +345003 915525 +345008 1.17185e+06 +345014 926364 +345022 979575 +345025 849511 +345025 901986 +345028 816117 +345028 991406 +345033 826503 +345036 930550 +345044 971192 +345078 877286 +345078 969681 +345094 886353 +345106 899397 +345114 835272 +345125 798511 +345133 1.10078e+06 +345136 1.02882e+06 +345186 835008 +345203 1.06241e+06 +345228 824944 +345231 869703 +345250 868947 +345286 862533 +345325 839850 +345358 1.01758e+06 +345361 1.1729e+06 +345364 792917 +345381 962183 +345386 787878 +345400 1.12468e+06 +345439 853106 +345442 919689 +345486 994219 +345506 906417 +345508 1.02311e+06 +345517 805839 +345519 779264 +345556 909128 +345567 936339 +345622 858125 +345636 1.11854e+06 +345644 925867 +345650 835453 +345689 856150 +345719 931731 +345750 809022 +345772 833325 +345794 795467 +345794 1.18116e+06 +345811 1.13204e+06 +345828 1.17408e+06 +345861 942394 +345894 953525 +345931 806756 +345958 911997 +345958 1.20137e+06 +345969 837633 +346017 1.05208e+06 +346047 964239 +346058 869833 +346081 821136 +346086 983900 +346100 1.12315e+06 +346125 835250 +346136 1.20192e+06 +346144 1.20079e+06 +346172 796850 +346175 899686 +346181 790089 +346183 824781 +346200 923953 +346228 973961 +346275 968406 +346278 862744 +346292 786056 +346294 986283 +346350 857672 +346378 978172 +346381 993336 +346392 1.20457e+06 +346403 784842 +346417 1.02724e+06 +346433 971642 +346447 824703 +346453 1.18217e+06 +346461 893053 +346481 979578 +346500 803892 +346517 827839 +346525 965258 +346564 819653 +346581 885667 +346589 989514 +346628 1.06776e+06 +346647 830967 +346686 795456 +346708 890264 +346719 929986 +346722 860342 +346778 769511 +346781 829317 +346800 791953 +346811 874061 +346833 828375 +346844 903828 +346856 829533 +346875 771194 +346883 999117 +346889 821958 +346931 913136 +346950 765597 +346972 989492 +346975 798836 +346981 1.18136e+06 +346989 767406 +347008 875289 +347017 863758 +347022 824647 +347047 812144 +347047 852819 +347142 856808 +347181 766642 +347203 807711 +347206 958989 +347228 767264 +347242 827814 +347247 1.00534e+06 +347297 889506 +347303 865861 +347311 877025 +347339 824439 +347350 793492 +347356 779956 +347358 800883 +347369 822544 +347394 820372 +347400 972219 +347436 1.01854e+06 +347447 876675 +347464 922894 +347503 981714 +347514 950478 +347539 774306 +347569 879728 +347575 1.12453e+06 +347583 1.06055e+06 +347589 796108 +347600 827539 +347647 830642 +347650 876986 +347658 847700 +347694 922669 +347697 849703 +347711 794439 +347711 1.12057e+06 +347731 803919 +347736 907575 +347739 794631 +347744 966781 +347781 923489 +347786 823103 +347794 993350 +347803 982919 +347808 915808 +347825 979567 +347831 917464 +347839 918997 +347861 783944 +347864 768594 +347878 826925 +347967 969592 +347997 876772 +348000 824244 +348028 869717 +348061 1.06733e+06 +348117 881900 +348150 791833 +348150 922242 +348150 1.02397e+06 +348172 974056 +348228 1.18944e+06 +348231 982439 +348239 899936 +348247 824194 +348253 1.06838e+06 +348256 872947 +348258 774597 +348267 972589 +348289 958436 +348297 826017 +348347 976022 +348406 850428 +348406 883147 +348422 826447 +348450 955572 +348481 1.14613e+06 +348514 865722 +348525 823942 +348544 955819 +348561 1.00213e+06 +348611 966653 +348614 824317 +348628 875375 +348639 800014 +348639 843242 +348642 1.18162e+06 +348661 921100 +348686 858394 +348697 1.1176e+06 +348711 852908 +348719 855092 +348719 995039 +348722 896906 +348761 839583 +348767 1.17103e+06 +348778 824242 +348781 834011 +348789 769017 +348789 964122 +348794 819664 +348833 827075 +348847 796944 +348853 824561 +348878 793664 +348878 911944 +348892 946006 +348906 809567 +348936 983656 +348964 982003 +348983 940906 +348989 817619 +349022 1.10158e+06 +349025 790119 +349047 772317 +349050 1.16819e+06 +349069 1.0668e+06 +349106 818531 +349128 911100 +349147 977783 +349158 851092 +349181 797628 +349181 833856 +349181 973142 +349186 953089 +349203 822964 +349225 817428 +349236 777742 +349239 819331 +349244 807436 +349278 957156 +349283 820992 +349319 981400 +349322 865719 +349331 837772 +349331 838472 +349333 957694 +349364 818794 +349378 821453 +349378 1.00888e+06 +349386 822272 +349386 1.04682e+06 +349392 797742 +349431 797872 +349447 818378 +349475 857144 +349481 821275 +349492 904714 +349494 819322 +349508 821061 +349508 950800 +349511 946369 +349528 785089 +349531 1.20435e+06 +349569 924272 +349581 819908 +349581 852233 +349594 967525 +349611 819675 +349617 898294 +349622 779625 +349622 993803 +349672 947244 +349675 799847 +349675 824436 +349681 800769 +349692 873711 +349703 789456 +349717 1.20571e+06 +349722 909025 +349744 920164 +349769 914950 +349775 853578 +349808 792244 +349831 852861 +349842 804494 +349842 819267 +349853 805497 +349861 843714 +349883 803672 +349894 969233 +349894 992492 +349900 1.06049e+06 +349919 818350 +349919 868467 +349919 868469 +349936 802647 +349942 812422 +349942 853494 +349958 792264 +349978 783236 +349992 780914 +349994 1.17649e+06 +350025 809800 +350047 928025 +350072 809453 +350075 802011 +350081 907897 +350081 912511 +350122 857044 +350131 907225 +350133 786942 +350136 973608 +350142 852519 +350147 973353 +350153 785033 +350158 819750 +350167 818042 +350169 1.17835e+06 +350228 943811 +350242 810281 +350242 1.10697e+06 +350294 990928 +350308 766933 +350319 787950 +350322 932231 +350414 821044 +350419 896644 +350428 1.20475e+06 +350450 896217 +350456 853097 +350469 820903 +350478 856719 +350511 862697 +350522 868886 +350525 788786 +350525 831969 +350525 979361 +350525 1.18173e+06 +350531 850503 +350536 946233 +350539 933933 +350550 777467 +350553 871575 +350561 884353 +350589 1.194e+06 +350594 942525 +350644 888908 +350706 918794 +350711 797617 +350717 816500 +350725 982433 +350742 856261 +350767 806694 +350778 874397 +350800 816331 +350803 963989 +350822 942631 +350831 808925 +350833 980875 +350839 922078 +350844 1.06651e+06 +350872 973347 +350875 840347 +350886 770353 +350886 924419 +350906 806864 +350931 934483 +350950 789558 +350964 787842 +350975 987461 +350978 984353 +350989 1.20611e+06 +351036 986033 +351044 801094 +351056 830967 +351083 770444 +351097 794725 +351111 812267 +351117 1.01363e+06 +351128 918222 +351136 851381 +351161 781364 +351167 807239 +351186 1.2059e+06 +351211 815161 +351217 1.2062e+06 +351225 853439 +351228 953708 +351258 1.17985e+06 +351303 967756 +351314 794297 +351322 1.18448e+06 +351347 1.19455e+06 +351347 1.19472e+06 +351378 976578 +351392 973944 +351400 939214 +351411 848722 +351425 1.19456e+06 +351428 767706 +351428 1.2064e+06 +351436 828214 +351447 768025 +351461 966697 +351464 901844 +351483 818611 +351494 900489 +351497 949706 +351508 927439 +351508 938067 +351519 865706 +351522 1.07842e+06 +351536 781056 +351544 1.19455e+06 +351578 991750 +351586 964931 +351594 848767 +351600 926406 +351608 848578 +351619 1.06642e+06 +351644 860106 +351647 853014 +351672 946722 +351678 789731 +351697 1.0789e+06 +351700 885922 +351717 1.03724e+06 +351739 793925 +351742 846536 +351742 877378 +351744 814500 +351750 821894 +351794 806475 +351858 861122 +351864 947856 +351872 773211 +351883 982603 +351894 854858 +351894 1.14052e+06 +351903 944108 +351958 851847 +351981 1.11651e+06 +351997 870308 +352006 1.06701e+06 +352014 855192 +352017 838242 +352031 859211 +352036 1.01106e+06 +352044 898739 +352086 851269 +352092 1.18828e+06 +352097 860794 +352144 901964 +352153 998661 +352192 812058 +352219 1.01831e+06 +352225 974392 +352231 931578 +352244 907867 +352244 966703 +352247 882492 +352250 903250 +352256 803292 +352269 808433 +352303 810428 +352311 944778 +352317 916675 +352325 1.00599e+06 +352333 827344 +352336 886064 +352339 923875 +352353 815147 +352358 883906 +352361 823494 +352361 851986 +352369 974061 +352375 962414 +352378 1.06606e+06 +352381 1.18914e+06 +352386 810753 +352386 1.06667e+06 +352392 944258 +352400 858397 +352411 946197 +352422 873347 +352428 1.02428e+06 +352436 893500 +352450 813414 +352464 929364 +352472 975994 +352481 930489 +352494 1.1219e+06 +352506 917361 +352531 821972 +352536 951228 +352542 827003 +352556 793725 +352556 949214 +352561 792825 +352561 889878 +352561 912000 +352569 783525 +352578 969364 +352592 810756 +352597 804256 +352597 1.18913e+06 +352603 857361 +352606 971194 +352619 811875 +352625 775819 +352633 905711 +352678 811031 +352700 916397 +352706 861281 +352722 810483 +352747 812103 +352750 904667 +352767 991347 +352783 931336 +352800 824222 +352822 913653 +352828 1.20659e+06 +352831 863742 +352847 812842 +352861 811306 +352872 955822 +352889 811450 +352908 978119 +352911 996397 +352919 937297 +352922 815358 +352928 936344 +352950 797456 +352964 847481 +352969 940361 +352981 810161 +352983 824833 +353000 1.06551e+06 +353053 767889 +353061 786092 +353067 777883 +353083 771544 +353089 983417 +353097 915678 +353106 818589 +353111 824442 +353128 979442 +353164 811764 +353186 824611 +353194 877622 +353228 838075 +353233 845250 +353236 806561 +353236 873036 +353256 943014 +353258 896161 +353264 891494 +353267 786764 +353272 969250 +353289 817589 +353289 932528 +353339 818653 +353356 961361 +353361 941731 +353375 857042 +353394 974864 +353414 898972 +353425 779089 +353458 794172 +353464 824722 +353489 991700 +353500 802003 +353511 855678 +353544 944339 +353561 952653 +353575 780061 +353583 798947 +353589 810972 +353597 797800 +353600 819294 +353614 868397 +353619 862094 +353628 842942 +353653 1.0341e+06 +353658 1.20849e+06 +353692 819569 +353694 824931 +353714 853906 +353725 774378 +353733 1.19018e+06 +353736 832261 +353781 987817 +353786 813792 +353797 902578 +353819 785489 +353833 1.19109e+06 +353842 922156 +353842 977242 +353847 779931 +353858 943983 +353869 879953 +353878 805958 +353917 979411 +353992 788161 +354006 1.19469e+06 +354014 931142 +354019 797844 +354019 907531 +354019 974811 +354025 812025 +354025 1.08223e+06 +354058 801169 +354061 945986 +354078 786722 +354106 808431 +354117 902783 +354119 994039 +354131 787358 +354133 780711 +354175 816431 +354197 1.1902e+06 +354211 945144 +354219 992792 +354231 914558 +354244 844875 +354267 918367 +354286 794933 +354289 815017 +354294 857231 +354303 942314 +354308 834475 +354325 936153 +354325 963047 +354339 795872 +354339 1.06446e+06 +354342 806208 +354353 1.01172e+06 +354358 970911 +354364 1.00805e+06 +354367 943481 +354372 936728 +354392 886414 +354397 959817 +354406 933878 +354411 897781 +354419 974406 +354428 845931 +354428 1.20891e+06 +354447 784272 +354453 1.00271e+06 +354469 850844 +354492 867889 +354492 898150 +354494 973964 +354581 959411 +354603 947872 +354622 894019 +354639 815219 +354658 781608 +354667 856542 +354675 975161 +354686 830042 +354700 955228 +354714 934664 +354714 983553 +354725 774158 +354736 812547 +354778 942217 +354797 791806 +354817 860886 +354833 864603 +354867 808603 +354867 966847 +354869 938275 +354872 806219 +354886 829889 +354894 971633 +354894 1.2067e+06 +354900 903586 +354911 973228 +354914 920311 +354922 941375 +354939 850125 +354942 953053 +354969 779822 +354975 972686 +354983 949694 +354992 808489 +355006 940514 +355033 969025 +355042 974458 +355067 977622 +355069 787394 +355078 901469 +355083 783397 +355125 771008 +355133 845453 +355147 847903 +355147 1.06365e+06 +355150 882453 +355156 989669 +355186 976319 +355197 843636 +355225 976186 +355228 973769 +355261 987072 +355272 863336 +355281 1.08742e+06 +355289 774014 +355297 806683 +355322 979547 +355325 770328 +355328 828375 +355328 904206 +355333 829108 +355336 825286 +355361 1.00959e+06 +355364 782847 +355400 766233 +355453 779750 +355456 806111 +355464 770525 +355478 875519 +355494 985778 +355497 826503 +355508 975486 +355511 804067 +355608 975511 +355642 896464 +355642 907167 +355642 1.2108e+06 +355658 972867 +355692 805819 +355742 1.05674e+06 +355753 1.01184e+06 +355756 812119 +355778 989642 +355842 788003 +355842 881194 +355847 808103 +355869 804631 +355881 1.18491e+06 +355900 842419 +355914 924603 +355942 1.1934e+06 +355961 781244 +355978 824000 +356008 825542 +356014 844611 +356028 859197 +356056 851889 +356067 778236 +356075 958600 +356081 968208 +356092 1.18483e+06 +356111 773731 +356111 903297 +356122 804469 +356139 996711 +356139 1.06725e+06 +356144 888139 +356150 870353 +356172 878394 +356178 823214 +356203 908983 +356225 1.1767e+06 +356233 959603 +356289 821808 +356311 983169 +356328 993814 +356333 801161 +356333 825822 +356350 779333 +356356 941672 +356361 833778 +356383 912650 +356397 1.01603e+06 +356419 977461 +356442 823031 +356453 780100 +356486 956558 +356497 881267 +356497 910739 +356506 784567 +356508 883933 +356508 1.17661e+06 +356528 974778 +356578 820256 +356611 841722 +356617 971953 +356650 988828 +356678 1.01397e+06 +356697 812217 +356708 804744 +356728 895733 +356736 905072 +356744 900997 +356781 1.08151e+06 +356781 1.19228e+06 +356806 1.09052e+06 +356817 804325 +356839 820094 +356842 819919 +356869 1.05937e+06 +356914 1.00638e+06 +356919 848608 +356922 804350 +356942 970631 +356969 825608 +357006 808883 +357017 914414 +357017 968806 +357044 820361 +357047 967650 +357050 899694 +357064 812189 +357069 1.18455e+06 +357072 810758 +357078 798139 +357111 786144 +357111 890875 +357139 814222 +357142 835103 +357144 811464 +357200 791775 +357233 794625 +357258 979761 +357272 814708 +357289 814000 +357289 817794 +357292 1.18549e+06 +357306 911983 +357319 1.05151e+06 +357325 788506 +357328 843339 +357331 806772 +357333 796528 +357406 815633 +357422 905622 +357425 960700 +357436 796925 +357442 987472 +357444 1.09076e+06 +357453 816850 +357453 895297 +357472 854667 +357478 953694 +357486 966578 +357519 776703 +357547 1.18424e+06 +357561 899281 +357564 839706 +357578 816044 +357581 903222 +357603 841358 +357636 1.05932e+06 +357689 1.19246e+06 +357697 916408 +357719 786389 +357719 877839 +357739 814314 +357758 889900 +357808 783700 +357825 808875 +357847 891172 +357875 784808 +357883 776381 +357883 835544 +357894 839739 +357900 782042 +357914 787814 +357950 839319 +357964 814308 +357967 1.19107e+06 +357972 826842 +357972 842561 +357975 952503 +357981 976783 +358028 887747 +358028 965058 +358064 778636 +358083 970125 +358103 805561 +358111 768969 +358144 946283 +358147 892256 +358161 904342 +358178 798033 +358197 889158 +358203 956739 +358217 911283 +358239 772556 +358239 802536 +358242 783150 +358264 825494 +358269 1.01442e+06 +358275 839408 +358275 860717 +358303 925578 +358306 963908 +358383 894061 +358422 907042 +358425 756389 +358447 984128 +358456 863903 +358483 814961 +358506 953181 +358544 770558 +358589 1.08761e+06 +358614 979314 +358656 846850 +358656 1.01973e+06 +358667 767489 +358669 778294 +358681 835619 +358683 921175 +358708 955222 +358728 917539 +358756 893961 +358764 960608 +358778 766156 +358789 974250 +358800 901669 +358808 845086 +358825 800822 +358842 1.19271e+06 +358894 775325 +358906 903442 +358922 828292 +358922 904525 +358939 805617 +358967 775361 +359000 905819 +359028 802572 +359081 756761 +359089 926311 +359092 848781 +359100 790756 +359128 1.00382e+06 +359139 815392 +359153 820647 +359153 949697 +359175 762525 +359197 887589 +359217 811767 +359242 941883 +359250 868689 +359258 854642 +359272 899189 +359325 951411 +359339 845525 +359358 902578 +359381 777908 +359417 915483 +359419 958831 +359444 772100 +359447 960650 +359489 850269 +359494 944233 +359517 956506 +359525 975944 +359553 960086 +359556 800056 +359572 756244 +359594 953692 +359597 899719 +359606 839208 +359606 858142 +359608 782539 +359619 797625 +359625 1.19043e+06 +359669 831878 +359686 1.19291e+06 +359731 886781 +359739 970333 +359744 779658 +359758 943175 +359786 1.14832e+06 +359797 785100 +359806 889414 +359814 979108 +359819 841139 +359850 967667 +359883 966008 +359911 1.0608e+06 +359925 945678 +359939 788989 +359942 799356 +359942 941750 +359983 769464 +359986 961139 +360006 884281 +360014 940081 +360025 1.0593e+06 +360042 1.20128e+06 +360081 931864 +360083 1.19961e+06 +360103 842697 +360111 778578 +360114 886228 +360153 834150 +360156 865819 +360167 1.01824e+06 +360211 879669 +360214 803822 +360222 1.06958e+06 +360228 959681 +360317 840281 +360344 893856 +360358 894797 +360364 788236 +360381 882444 +360381 882736 +360397 1.14981e+06 +360417 901139 +360419 942469 +360444 843444 +360469 902928 +360489 777494 +360503 909750 +360508 902386 +360525 957906 +360533 873125 +360536 985881 +360583 905000 +360589 880978 +360594 919083 +360594 1.02513e+06 +360594 1.19311e+06 +360606 766094 +360625 941572 +360653 1.19016e+06 +360667 889939 +360689 794008 +360719 841333 +360725 797922 +360753 791000 +360764 888100 +360769 873878 +360775 860333 +360839 877947 +360839 898292 +360844 965833 +360861 937411 +360872 819275 +360914 793644 +360944 1.15041e+06 +360956 794381 +360958 792672 +360958 844425 +360967 811825 +360969 804194 +360981 1.19559e+06 +360989 783014 +360997 802444 +361006 870511 +361017 784583 +361019 871150 +361028 795069 +361033 841319 +361039 835528 +361047 845972 +361053 777131 +361056 795425 +361072 796589 +361075 832869 +361075 872208 +361078 876331 +361083 910972 +361092 978983 +361128 892617 +361131 794767 +361142 966989 +361156 970581 +361161 983167 +361169 867664 +361194 921358 +361197 800739 +361219 794292 +361222 786864 +361222 834925 +361275 889858 +361294 774206 +361306 824247 +361319 787569 +361325 885186 +361342 901597 +361344 806597 +361350 816778 +361350 1.11239e+06 +361397 961086 +361397 1.20359e+06 +361450 824169 +361456 1.1906e+06 +361458 811608 +361475 852683 +361481 989239 +361497 992978 +361511 955092 +361533 888006 +361536 856436 +361539 959925 +361542 837042 +361544 1.09552e+06 +361572 819783 +361583 811478 +361628 855017 +361631 818717 +361631 828311 +361661 948544 +361714 811942 +361725 859297 +361750 1.15136e+06 +361772 873397 +361778 942333 +361808 776669 +361858 953428 +361867 941286 +361869 903831 +361881 945403 +361889 957456 +361894 829586 +361900 764664 +361931 896556 +361956 840681 +361958 854486 +361961 820706 +361983 811531 +361983 1.01192e+06 +361989 1.15117e+06 +362000 865186 +362000 951675 +362022 802811 +362022 890122 +362025 911744 +362028 1.20102e+06 +362031 891908 +362031 1.19087e+06 +362061 942342 +362078 1.19346e+06 +362086 799050 +362128 1.21125e+06 +362136 886125 +362139 832950 +362164 805128 +362167 816747 +362178 841547 +362189 764642 +362211 919292 +362239 916083 +362261 926847 +362272 808336 +362294 771144 +362297 931075 +362325 807083 +362333 888244 +362336 897494 +362339 897694 +362361 900556 +362369 799797 +362381 963164 +362392 808447 +362403 802936 +362419 859519 +362419 959756 +362442 808486 +362506 837975 +362522 859517 +362553 941306 +362569 830861 +362586 831953 +362589 891917 +362614 909711 +362631 902925 +362633 894878 +362642 946928 +362650 1.01406e+06 +362675 944844 +362689 984794 +362694 958544 +362711 925353 +362739 772847 +362742 870642 +362758 998808 +362789 925969 +362803 978978 +362806 803594 +362808 835150 +362831 924939 +362842 821728 +362867 769850 +362894 972878 +362914 887081 +362928 951531 +362942 824736 +362953 801419 +362961 1.19141e+06 +362972 959911 +362972 970078 +362978 1.19206e+06 +362989 842233 +363008 1.19782e+06 +363019 762236 +363019 883267 +363047 866200 +363064 821933 +363075 975861 +363081 784069 +363100 964639 +363106 785911 +363119 877733 +363125 956158 +363133 823536 +363156 997572 +363158 914825 +363158 1.19708e+06 +363183 876947 +363200 906019 +363208 1.21243e+06 +363231 867133 +363275 1.19645e+06 +363294 783994 +363300 841839 +363303 1.19291e+06 +363314 772131 +363319 941183 +363353 934358 +363358 944606 +363361 1.02072e+06 +363378 968036 +363386 891639 +363417 783903 +363433 888503 +363486 822108 +363511 1.19419e+06 +363528 1.09617e+06 +363547 796647 +363556 856589 +363586 1.05609e+06 +363611 1.04595e+06 +363628 907536 +363644 958386 +363647 935678 +363683 960011 +363722 822258 +363728 942086 +363783 894719 +363808 848844 +363828 841200 +363828 901906 +363833 853231 +363839 925814 +363853 799597 +363864 804697 +363872 1.19217e+06 +363875 980894 +363883 864467 +363908 861672 +363911 950464 +363922 824117 +363936 789831 +363950 867794 +363956 769322 +363956 807228 +363956 978781 +363983 781556 +363992 900236 +364000 1.00802e+06 +364011 937378 +364036 814931 +364039 793364 +364053 984403 +364072 830056 +364072 1.05572e+06 +364078 905797 +364122 799672 +364142 963950 +364158 776033 +364169 1.09228e+06 +364181 826239 +364197 824767 +364203 814736 +364211 947967 +364219 944533 +364242 890569 +364247 1.21325e+06 +364253 896994 +364269 775958 +364333 1.19686e+06 +364336 993900 +364339 1.00141e+06 +364344 779122 +364356 978686 +364367 952711 +364369 772292 +364369 975853 +364392 992044 +364394 824558 +364422 770989 +364425 835997 +364442 883344 +364456 781986 +364508 775592 +364511 776797 +364517 899669 +364517 1.03184e+06 +364519 899192 +364533 1.00537e+06 +364542 835694 +364614 776544 +364639 950475 +364644 929200 +364664 799072 +364703 866514 +364708 828519 +364742 822611 +364744 818050 +364761 1.19442e+06 +364778 825933 +364797 1.21731e+06 +364850 825033 +364878 878383 +364883 797669 +364900 774417 +364933 900750 +364956 915406 +364981 845128 +364992 806075 +365003 776453 +365003 806267 +365008 888753 +365042 888742 +365050 1.01782e+06 +365053 811211 +365067 1.21443e+06 +365092 868850 +365108 1.04915e+06 +365139 1.19553e+06 +365147 946111 +365189 896125 +365211 860264 +365222 827136 +365225 939394 +365233 1.19286e+06 +365244 915381 +365289 974436 +365297 832175 +365297 873594 +365303 959233 +365331 823269 +365333 858500 +365356 954322 +365428 1.19832e+06 +365433 1.14446e+06 +365433 1.19386e+06 +365450 1.19286e+06 +365456 944850 +365461 963269 +365461 982697 +365483 824558 +365483 825619 +365486 866961 +365500 855053 +365556 824681 +365569 899664 +365619 862481 +365619 961614 +365681 896006 +365708 1.19611e+06 +365711 891861 +365736 967039 +365736 995719 +365744 851289 +365753 906039 +365769 825678 +365789 984619 +365817 865164 +365822 870656 +365822 988794 +365831 772003 +365844 824894 +365858 793953 +365864 895278 +365878 841269 +365886 793664 +365914 825736 +365922 896153 +365933 1.21834e+06 +365936 947689 +365944 943839 +365950 821889 +365953 1.01636e+06 +365958 902472 +365964 821886 +365964 1.19449e+06 +366003 1.21894e+06 +366031 924281 +366061 1.18062e+06 +366067 1.20188e+06 +366103 883147 +366111 1.21851e+06 +366117 1.19526e+06 +366136 898164 +366208 908233 +366211 932153 +366222 811511 +366244 1.19313e+06 +366283 799511 +366306 1.19678e+06 +366336 817839 +366378 825811 +366386 951539 +366408 802658 +366422 887389 +366436 932183 +366483 871664 +366503 1.1979e+06 +366506 944433 +366508 844386 +366592 1.19593e+06 +366611 809242 +366672 889933 +366675 868519 +366678 963369 +366689 899686 +366692 978008 +366722 939408 +366769 938686 +366775 769228 +366778 1.21654e+06 +366783 973097 +366828 1.01481e+06 +366844 1.21801e+06 +366850 931197 +366858 775428 +366889 831111 +366906 975561 +366908 851347 +366914 798728 +366936 949628 +366942 913992 +366986 789017 +366989 844775 +367000 781000 +367000 799389 +367006 956378 +367022 856917 +367039 1.05594e+06 +367069 970853 +367081 1.19555e+06 +367097 819775 +367097 998931 +367106 1.19758e+06 +367111 1.07984e+06 +367133 788289 +367150 799156 +367161 770683 +367161 809789 +367222 865772 +367233 844706 +367236 1.20059e+06 +367264 781292 +367278 1.10254e+06 +367281 765839 +367281 918522 +367281 1.08218e+06 +367286 809992 +367294 1.02513e+06 +367342 1.08359e+06 +367417 886367 +367417 943989 +367433 841597 +367472 959806 +367478 1.19771e+06 +367511 948472 +367533 861906 +367536 1.20381e+06 +367544 983564 +367569 903928 +367575 778472 +367583 830272 +367592 799906 +367592 895867 +367619 836950 +367625 807350 +367628 940558 +367647 882953 +367658 789286 +367658 1.21757e+06 +367758 873556 +367786 956392 +367797 893856 +367819 966608 +367856 1.08686e+06 +367892 815822 +367903 853706 +367911 817714 +367958 899578 +367958 959353 +367983 816825 +367992 784586 +368044 972825 +368050 986661 +368069 977333 +368083 767444 +368097 1.02255e+06 +368100 871542 +368125 898614 +368142 774686 +368161 1.00519e+06 +368172 939206 +368222 1.07992e+06 +368253 1.19702e+06 +368256 793983 +368347 815150 +368353 762986 +368356 996300 +368406 763106 +368414 946108 +368431 833219 +368453 868872 +368456 1.21537e+06 +368467 762856 +368472 896853 +368486 832192 +368519 833542 +368525 1.21401e+06 +368528 759783 +368572 883503 +368589 1.20455e+06 +368600 1.01213e+06 +368642 867103 +368650 878353 +368656 874886 +368658 831906 +368664 838889 +368672 814236 +368689 943678 +368706 890097 +368736 950956 +368744 948772 +368767 895878 +368817 827472 +368822 970531 +368833 979217 +368858 899292 +368900 822797 +368914 895383 +368936 812761 +368942 817769 +368975 959258 +369008 820803 +369031 1.06579e+06 +369033 1.04439e+06 +369042 1.21748e+06 +369053 935714 +369067 827819 +369069 1.00539e+06 +369086 1.11473e+06 +369094 894525 +369103 1.21756e+06 +369172 948794 +369192 942550 +369208 893506 +369289 939275 +369333 826292 +369333 948728 +369336 1.06998e+06 +369353 1.21772e+06 +369367 1.21864e+06 +369439 824642 +369444 940042 +369456 1.12526e+06 +369483 810850 +369486 840969 +369497 901583 +369519 926603 +369536 793592 +369542 1.01065e+06 +369544 947878 +369606 840933 +369608 1.21963e+06 +369614 1.2006e+06 +369619 781253 +369639 937956 +369647 829486 +369647 890892 +369661 829225 +369683 1.21899e+06 +369708 937178 +369742 1.2203e+06 +369753 1.21952e+06 +369758 825758 +369772 1.21898e+06 +369781 829886 +369783 822978 +369786 764283 +369800 856122 +369847 850631 +369861 1.20626e+06 +369869 948306 +369881 1.21956e+06 +369889 846000 +369903 864436 +369911 914925 +369922 919697 +369928 786014 +369944 956200 +369947 782275 +369953 917036 +369953 943158 +369956 910144 +369958 859119 +369975 798922 +370011 930814 +370031 936372 +370053 891764 +370058 1.21567e+06 +370081 1.0189e+06 +370097 913233 +370114 959350 +370161 819744 +370172 984850 +370175 885314 +370208 932058 +370236 898197 +370297 763456 +370303 934728 +370322 976067 +370333 883500 +370358 770956 +370369 944967 +370372 950897 +370372 956161 +370403 784836 +370406 944725 +370431 1.00921e+06 +370433 932942 +370436 896103 +370475 1.12526e+06 +370478 807800 +370478 874850 +370500 789444 +370511 1.22014e+06 +370514 1.22072e+06 +370517 890467 +370525 862078 +370561 850886 +370564 786386 +370583 1.20849e+06 +370589 881325 +370597 953592 +370619 970381 +370625 817519 +370667 766767 +370675 935519 +370692 941164 +370758 946394 +370767 889736 +370767 944592 +370803 779975 +370833 886000 +370836 944133 +370842 945131 +370850 896553 +370850 1.21609e+06 +370853 891625 +370869 818553 +370892 1.22085e+06 +370919 846042 +370925 792967 +370931 817939 +370939 860464 +370944 880803 +371028 853064 +371036 938183 +371042 965000 +371042 1.13583e+06 +371044 899106 +371056 806856 +371067 925806 +371092 878819 +371117 792858 +371142 891978 +371147 815197 +371150 1.07632e+06 +371156 933700 +371169 930556 +371183 828269 +371200 934800 +371222 763461 +371231 1.20259e+06 +371236 826014 +371236 886303 +371239 921011 +371261 1.22121e+06 +371267 961867 +371289 840833 +371297 804092 +371306 922633 +371306 1.13508e+06 +371306 1.21653e+06 +371331 1.13653e+06 +371367 859569 +371389 884033 +371425 945106 +371464 927686 +371464 944628 +371492 944428 +371500 824561 +371506 913575 +371511 887319 +371533 980308 +371536 837619 +371544 906956 +371575 929406 +371658 872475 +371672 876925 +371675 951097 +371686 1.13679e+06 +371692 948439 +371694 1.045e+06 +371731 781236 +371733 826311 +371742 1.05937e+06 +371753 1.01349e+06 +371753 1.13289e+06 +371764 943100 +371767 945653 +371769 846358 +371792 916567 +371794 859069 +371800 896550 +371836 873836 +371875 782017 +371883 944700 +371886 997653 +371903 952969 +371908 874528 +371967 897361 +372008 1.05423e+06 +372011 871789 +372011 1.13269e+06 +372014 994836 +372064 888447 +372075 826719 +372081 880567 +372147 938397 +372153 932981 +372167 895244 +372175 870489 +372197 895089 +372242 957081 +372256 866836 +372256 1.07598e+06 +372267 1.21974e+06 +372275 800131 +372278 774022 +372303 774778 +372322 820992 +372350 892700 +372364 1.21991e+06 +372367 874753 +372369 871592 +372397 969953 +372400 774303 +372414 982264 +372417 909686 +372422 784600 +372494 831933 +372508 925103 +372525 812714 +372539 764972 +372578 1.20998e+06 +372583 1.05904e+06 +372608 854989 +372639 1.22022e+06 +372653 973714 +372658 977653 +372678 760178 +372683 931169 +372689 993264 +372694 1.07009e+06 +372697 812225 +372703 955522 +372706 767078 +372708 799417 +372722 858911 +372742 875119 +372742 971686 +372750 1.0596e+06 +372753 1.07879e+06 +372769 891833 +372775 948247 +372778 820992 +372808 798972 +372811 985800 +372856 1.0034e+06 +372867 980256 +372872 1.21949e+06 +372894 759717 +372908 1.20318e+06 +372936 889753 +372939 871233 +372992 862286 +373003 899811 +373011 816911 +373019 783922 +373022 1.20482e+06 +373039 823511 +373050 934283 +373058 895181 +373058 899703 +373100 947717 +373125 812600 +373128 967539 +373139 1.2102e+06 +373153 935850 +373194 806392 +373206 792578 +373231 1.22031e+06 +373250 813119 +373261 919558 +373264 807353 +373281 874989 +373281 1.19648e+06 +373314 808114 +373325 827211 +373328 880811 +373339 869961 +373342 795233 +373353 1.21894e+06 +373358 814367 +373358 829806 +373361 943011 +373386 929069 +373403 952608 +373411 799433 +373433 853419 +373442 867547 +373450 1.08289e+06 +373458 948086 +373475 1.21268e+06 +373489 1.08585e+06 +373539 812528 +373567 774419 +373569 788256 +373603 963036 +373611 891658 +373636 815503 +373636 1.18394e+06 +373661 811028 +373661 1.21826e+06 +373672 884864 +373689 1.22035e+06 +373783 798072 +373797 1.22136e+06 +373819 869225 +373822 808228 +373822 896661 +373839 931511 +373842 1.22234e+06 +373856 939531 +373856 1.00195e+06 +373861 1.02278e+06 +373869 1.20722e+06 +373875 971139 +373894 1.20612e+06 +373903 976419 +373931 940936 +373939 972808 +373972 807994 +374019 868758 +374028 1.04653e+06 +374042 844139 +374083 1.02614e+06 +374108 947047 +374111 935494 +374136 791425 +374153 888978 +374153 938408 +374158 872656 +374183 956800 +374200 812433 +374208 814403 +374217 774378 +374222 810164 +374236 883461 +374242 864883 +374256 815069 +374283 1.21906e+06 +374300 1.22253e+06 +374303 839981 +374308 791233 +374322 1.20778e+06 +374328 815847 +374372 1.01972e+06 +374419 1.22142e+06 +374433 1.00015e+06 +374450 828053 +374450 871439 +374511 869092 +374517 892681 +374539 1.22181e+06 +374556 912094 +374556 946889 +374603 892469 +374614 1.22197e+06 +374636 1.22428e+06 +374644 818139 +374644 845067 +374650 858933 +374689 1.2214e+06 +374694 1.05869e+06 +374703 962633 +374717 1.21129e+06 +374739 1.08504e+06 +374744 972436 +374747 758586 +374767 878200 +374783 816536 +374792 825189 +374800 862939 +374817 1.00843e+06 +374850 1.19965e+06 +374861 1.22233e+06 +374931 871319 +374931 954700 +374947 1.20846e+06 +374950 942764 +374953 862214 +374994 918569 +375019 928208 +375028 975042 +375028 1.22468e+06 +375050 1.05007e+06 +375111 948378 +375178 876903 +375203 1.22275e+06 +375239 956611 +375264 1.20796e+06 +375272 796800 +375275 1.22512e+06 +375297 1.22039e+06 +375311 846619 +375314 767967 +375314 892533 +375317 758233 +375339 958264 +375389 872583 +375422 1.22515e+06 +375428 784575 +375439 947000 +375456 972686 +375458 773281 +375467 879839 +375472 996339 +375536 774606 +375544 889722 +375547 763372 +375569 946217 +375581 945197 +375583 971347 +375586 1.2227e+06 +375597 902939 +375631 1.22324e+06 +375658 973539 +375686 842964 +375697 852528 +375717 837069 +375728 827528 +375739 857400 +375742 1.22378e+06 +375792 1.06148e+06 +375808 774072 +375814 1.01355e+06 +375831 813806 +375831 815372 +375842 1.22365e+06 +375850 790517 +375867 847939 +375881 906289 +375900 775567 +375914 805439 +375950 1.20957e+06 +375958 816361 +375958 1.00443e+06 +375969 1.20865e+06 +375972 906272 +375986 1.22386e+06 +376028 992922 +376036 774917 +376069 875286 +376075 774772 +376133 779050 +376142 818667 +376144 934103 +376150 1.14511e+06 +376194 845781 +376194 888367 +376194 991061 +376211 906403 +376219 821633 +376242 1.0478e+06 +376242 1.09478e+06 +376264 894978 +376300 977822 +376306 1.2241e+06 +376339 794506 +376353 854008 +376361 867175 +376375 765747 +376414 1.20759e+06 +376439 930922 +376439 984308 +376439 987372 +376453 836489 +376456 847722 +376456 915358 +376458 981133 +376486 1.18971e+06 +376547 1.22407e+06 +376578 855911 +376583 976833 +376597 975750 +376614 764194 +376625 1.21874e+06 +376656 827717 +376658 775067 +376719 822842 +376739 808894 +376742 822775 +376775 1.13061e+06 +376789 812106 +376789 1.06353e+06 +376792 954569 +376806 926636 +376808 1.22399e+06 +376811 1.22123e+06 +376819 1.21767e+06 +376831 868714 +376833 879167 +376844 839531 +376853 852222 +376867 979764 +376881 972633 +376903 967819 +376908 757164 +376919 816242 +376922 973372 +376939 858592 +376942 1.22085e+06 +376947 1.22113e+06 +376989 937958 +377006 839739 +377022 1.21935e+06 +377033 822811 +377075 812508 +377103 763800 +377106 821842 +377117 757494 +377131 881867 +377139 971361 +377153 911350 +377194 756658 +377203 1.22526e+06 +377242 898611 +377250 1.22155e+06 +377258 806422 +377272 892167 +377306 818381 +377306 889331 +377339 883433 +377342 793542 +377347 812997 +377361 1.20934e+06 +377383 885406 +377397 818778 +377397 1.21424e+06 +377406 812308 +377417 1.21123e+06 +377431 811231 +377433 877039 +377478 842947 +377497 804631 +377519 890678 +377525 830689 +377528 1.00017e+06 +377531 1.06108e+06 +377533 847667 +377583 812128 +377589 774803 +377600 890772 +377622 848433 +377644 893350 +377661 1.08905e+06 +377667 1.20846e+06 +377692 906247 +377703 1.11601e+06 +377708 812086 +377733 1.13024e+06 +377739 890264 +377742 871133 +377750 1.22418e+06 +377753 879306 +377781 811883 +377792 964669 +377792 975361 +377800 864606 +377800 980194 +377800 1.21977e+06 +377806 804572 +377808 904217 +377814 891192 +377819 756539 +377831 812661 +377839 794431 +377889 971083 +377906 976292 +377931 819878 +377933 799942 +377944 935778 +377964 802978 +377975 797914 +377975 969994 +377975 1.20996e+06 +377975 1.21215e+06 +377992 882611 +378000 973181 +378017 804458 +378031 890275 +378044 1.2227e+06 +378067 1.00348e+06 +378092 854669 +378100 859814 +378106 954367 +378119 1.07664e+06 +378133 820247 +378136 884381 +378144 828072 +378158 811525 +378161 798247 +378172 968619 +378175 892278 +378206 889275 +378217 1.21999e+06 +378228 1.12435e+06 +378228 1.21276e+06 +378239 962889 +378242 820597 +378244 1.22231e+06 +378261 759919 +378286 922006 +378314 1.22284e+06 +378331 891428 +378333 866328 +378344 857319 +378347 973731 +378361 811350 +378361 875900 +378364 812019 +378367 905328 +378392 943544 +378397 947081 +378403 859492 +378406 886092 +378422 1.12827e+06 +378436 824094 +378456 838583 +378486 819936 +378492 1.06926e+06 +378500 997564 +378503 904986 +378503 1.22031e+06 +378511 905206 +378567 924050 +378589 808544 +378592 839186 +378592 1.22484e+06 +378619 846617 +378667 819867 +378672 905931 +378686 976647 +378714 1.09342e+06 +378717 1.22272e+06 +378728 905278 +378736 1.22456e+06 +378769 891144 +378772 1.22179e+06 +378803 862839 +378806 845731 +378811 957331 +378831 870494 +378858 1.22117e+06 +378869 1.22297e+06 +378883 894947 +378967 981783 +378978 889314 +378989 977825 +378994 890519 +379000 867550 +379061 1.22544e+06 +379064 1.22064e+06 +379086 881292 +379094 1.22685e+06 +379100 892358 +379103 853167 +379106 1.22279e+06 +379114 867444 +379136 898219 +379142 919025 +379161 951700 +379167 974222 +379169 952989 +379175 887622 +379214 832597 +379231 905553 +379231 994094 +379236 953458 +379244 953997 +379253 768594 +379256 1.22526e+06 +379331 753792 +379358 1.22347e+06 +379361 992522 +379364 907878 +379369 859917 +379369 869022 +379375 1.07812e+06 +379389 970194 +379403 918808 +379406 1.01254e+06 +379444 874053 +379481 1.2206e+06 +379489 922636 +379508 836258 +379514 867678 +379514 917711 +379533 1.20422e+06 +379578 1.2129e+06 +379586 767583 +379622 986003 +379622 1.22344e+06 +379631 806897 +379647 971472 +379681 913547 +379686 807672 +379717 1.00872e+06 +379725 890533 +379736 820175 +379736 838419 +379736 1.21694e+06 +379736 1.2253e+06 +379747 758342 +379747 815292 +379747 875558 +379747 1.22561e+06 +379772 1.22294e+06 +379781 1.2203e+06 +379797 1.01133e+06 +379806 1.01752e+06 +379811 883292 +379831 890161 +379833 758542 +379839 895894 +379842 1.20381e+06 +379850 1.03543e+06 +379861 1.00989e+06 +379872 1.22588e+06 +379883 857158 +379900 841797 +379917 920936 +379942 838878 +379953 867978 +379967 889200 +379969 1.03531e+06 +379975 1.21711e+06 +379978 1.20269e+06 +379989 861694 +379994 859436 +380014 975083 +380044 1.22298e+06 +380050 1.21805e+06 +380072 896583 +380081 927444 +380128 1.22644e+06 +380144 1.03628e+06 +380147 870364 +380150 1.21639e+06 +380153 890425 +380164 896186 +380172 1.22288e+06 +380228 1.07671e+06 +380239 976694 +380250 780044 +380269 1.21936e+06 +380281 979400 +380281 1.21884e+06 +380292 784769 +380300 790339 +380317 853425 +380331 1.22266e+06 +380372 848967 +380397 1.20232e+06 +380467 937042 +380467 973447 +380492 872742 +380494 773469 +380494 1.22158e+06 +380500 855458 +380522 1.02122e+06 +380525 847300 +380528 811042 +380564 839433 +380608 979294 +380628 914033 +380633 785028 +380639 1.0231e+06 +380667 1.03222e+06 +380669 818194 +380672 1.17229e+06 +380683 788897 +380694 787008 +380722 973453 +380756 755683 +380786 793833 +380803 893819 +380808 818342 +380831 900958 +380839 956342 +380844 998931 +380864 831264 +380872 1.0262e+06 +380875 1.06094e+06 +380903 899383 +380903 922925 +380908 881586 +380917 890503 +380933 885356 +380989 813242 +380992 875789 +380994 883375 +381042 1.22256e+06 +381050 857589 +381075 1.22569e+06 +381089 788578 +381111 858703 +381142 826033 +381161 825958 +381169 784419 +381200 869142 +381231 897017 +381236 857197 +381292 1.04023e+06 +381297 879350 +381303 1.21271e+06 +381344 977697 +381356 961356 +381361 810997 +381372 781881 +381375 1.20459e+06 +381378 892300 +381383 974311 +381400 937267 +381411 856878 +381428 948133 +381450 841114 +381472 980833 +381494 790719 +381503 926178 +381506 812875 +381522 1.21242e+06 +381542 1.213e+06 +381547 912439 +381558 1.2169e+06 +381597 855878 +381597 874483 +381600 856597 +381617 880653 +381619 834289 +381619 1.21611e+06 +381636 1.21149e+06 +381683 811950 +381689 869900 +381694 971064 +381700 877831 +381769 753931 +381778 947111 +381783 857097 +381803 813286 +381806 990983 +381811 813072 +381864 896056 +381867 919469 +381869 813656 +381875 877103 +381906 940292 +381942 855644 +381944 957425 +381950 856519 +381961 872967 +381961 1.20679e+06 +381969 856633 +381981 886844 +382000 858228 +382008 848733 +382019 790086 +382028 756928 +382031 975189 +382039 857253 +382050 875742 +382081 911603 +382097 842531 +382100 813842 +382100 982067 +382117 899942 +382119 852236 +382119 861219 +382119 896825 +382125 857403 +382142 856139 +382142 1.12923e+06 +382153 814247 +382181 814431 +382181 1.03756e+06 +382183 1.08568e+06 +382206 903958 +382211 903789 +382214 824425 +382225 853553 +382233 800947 +382239 868622 +382247 805333 +382289 856775 +382319 815378 +382319 977731 +382322 905628 +382325 1.22636e+06 +382369 859858 +382383 1.22039e+06 +382403 855242 +382431 933817 +382444 969278 +382453 781111 +382453 815672 +382456 870361 +382494 1.22039e+06 +382500 897500 +382511 875811 +382522 855922 +382542 857594 +382544 769639 +382544 1.04609e+06 +382547 856314 +382547 1.21299e+06 +382567 856017 +382575 879936 +382586 943303 +382614 856292 +382667 764542 +382667 855331 +382672 788261 +382678 856717 +382683 903800 +382694 1.08547e+06 +382717 846864 +382719 876878 +382722 855836 +382731 856231 +382739 856344 +382750 856150 +382769 1.1264e+06 +382786 821031 +382794 856500 +382806 952417 +382811 808528 +382825 855744 +382833 855911 +382833 903950 +382856 821958 +382856 858242 +382858 917203 +382911 766361 +382919 1.22457e+06 +382944 903158 +382972 856033 +382972 1.22284e+06 +382978 1.22491e+06 +382989 869550 +383000 831742 +383003 765078 +383017 916328 +383019 841475 +383028 855961 +383050 899942 +383056 856964 +383083 959556 +383106 854875 +383119 840275 +383139 1.22481e+06 +383150 919225 +383167 866958 +383172 889031 +383175 815211 +383219 756206 +383225 752181 +383239 774686 +383239 1.21821e+06 +383264 898769 +383269 1.22706e+06 +383294 891908 +383306 806533 +383308 887258 +383322 874453 +383325 829486 +383336 856536 +383344 864642 +383358 901497 +383364 750853 +383386 873450 +383397 1.227e+06 +383422 862761 +383436 893806 +383450 856156 +383450 982014 +383453 885878 +383456 915014 +383483 925814 +383483 970169 +383489 1.20773e+06 +383497 816328 +383500 947611 +383517 859417 +383519 972042 +383528 1.20932e+06 +383550 983492 +383553 875675 +383556 985806 +383567 1.21987e+06 +383606 755997 +383606 817375 +383642 1.22523e+06 +383644 987644 +383683 816997 +383700 851806 +383708 976639 +383722 965425 +383756 863447 +383775 880561 +383819 789769 +383819 975372 +383822 872128 +383861 974278 +383903 842942 +383903 1.05118e+06 +383908 933344 +383911 753489 +383914 869311 +383931 1.20801e+06 +383939 956028 +383953 754133 +383964 825589 +383969 1.1301e+06 +383975 943514 +383981 857550 +383981 980117 +383989 825783 +383997 913306 +384000 1.05217e+06 +384017 1.2236e+06 +384028 942536 +384039 961814 +384047 826006 +384069 875856 +384075 853789 +384078 786239 +384078 861100 +384086 899919 +384089 1.21371e+06 +384094 805581 +384094 822947 +384108 877614 +384147 789389 +384147 818442 +384167 958528 +384178 825864 +384192 824453 +384200 756881 +384200 820556 +384222 837339 +384275 899136 +384278 824572 +384292 1.05219e+06 +384314 928408 +384325 820203 +384328 903775 +384333 851697 +384342 895503 +384344 821325 +384364 1.22869e+06 +384369 823772 +384392 891628 +384406 1.22713e+06 +384408 929917 +384417 892742 +384428 814806 +384436 902011 +384456 910056 +384494 788692 +384528 999061 +384531 856703 +384558 755778 +384564 755775 +384597 940006 +384600 932025 +384603 752211 +384603 810853 +384614 900917 +384656 1.23008e+06 +384697 1.01752e+06 +384722 818144 +384731 779969 +384783 826381 +384783 1.07876e+06 +384794 946083 +384797 1.01358e+06 +384806 1.02781e+06 +384808 767783 +384817 943542 +384819 907414 +384819 1.00467e+06 +384819 1.20844e+06 +384825 1.00907e+06 +384850 786253 +384858 918503 +384886 813483 +384889 921742 +384897 766825 +384903 816475 +384903 897931 +384903 904869 +384919 872786 +384925 826903 +384961 1.21408e+06 +384972 949503 +385019 1.22995e+06 +385025 906278 +385033 826472 +385069 962617 +385086 906025 +385089 891406 +385094 818400 +385131 904358 +385158 884375 +385161 902103 +385172 752353 +385172 826978 +385181 987778 +385200 899839 +385208 880047 +385222 772939 +385225 827172 +385247 1.18624e+06 +385250 891333 +385250 985333 +385250 1.2197e+06 +385267 877097 +385314 993083 +385322 935219 +385325 767842 +385333 902869 +385339 899889 +385347 1.05998e+06 +385364 848419 +385364 859286 +385367 826831 +385369 903797 +385375 819325 +385386 903350 +385389 904072 +385400 827286 +385403 765847 +385411 902800 +385417 857678 +385419 902328 +385425 757197 +385433 896122 +385450 1.21739e+06 +385458 1.06925e+06 +385467 773369 +385489 866200 +385492 904925 +385503 827781 +385506 903331 +385531 903094 +385536 895383 +385542 903450 +385556 978333 +385561 864683 +385564 755717 +385569 903817 +385581 910119 +385594 835761 +385611 941911 +385614 898972 +385631 760792 +385672 866283 +385675 773283 +385708 901900 +385722 948789 +385731 828303 +385733 1.09549e+06 +385736 976742 +385753 771558 +385753 785028 +385758 1.22449e+06 +385767 921733 +385789 1.22579e+06 +385806 1.21529e+06 +385817 1.21493e+06 +385831 936944 +385833 901250 +385833 904067 +385869 984108 +385892 1.21302e+06 +385897 901200 +385903 769406 +385903 903367 +385908 822831 +385914 752917 +385922 899111 +385925 853178 +385925 903572 +385925 905869 +385950 905461 +385969 905092 +385992 833189 +386000 771625 +386008 904328 +386039 898072 +386050 1.07982e+06 +386056 894358 +386056 896819 +386067 896075 +386067 1.21266e+06 +386072 903833 +386075 903783 +386083 912189 +386086 771408 +386103 893725 +386106 895269 +386106 1.22868e+06 +386122 904633 +386125 903244 +386131 787992 +386153 873544 +386156 891142 +386156 952675 +386158 838086 +386172 890522 +386172 1.21327e+06 +386175 819819 +386175 903492 +386183 905892 +386194 946806 +386242 758547 +386244 769394 +386269 770733 +386269 889456 +386275 925664 +386283 910575 +386286 903194 +386300 1.1212e+06 +386339 958256 +386350 900928 +386356 756103 +386356 904150 +386367 900256 +386369 773114 +386381 845606 +386389 787742 +386403 921222 +386411 756114 +386411 837444 +386425 903236 +386450 828489 +386478 786717 +386497 900931 +386497 903806 +386514 862611 +386533 943486 +386556 837611 +386556 927797 +386581 772500 +386592 871728 +386608 904225 +386611 964917 +386617 864264 +386636 873094 +386644 807100 +386653 784597 +386653 903758 +386658 1.20925e+06 +386664 867911 +386675 770286 +386689 884856 +386703 899844 +386711 969422 +386722 901697 +386728 902992 +386731 807750 +386753 917694 +386764 1.21335e+06 +386767 843303 +386769 869142 +386772 875286 +386772 1.23134e+06 +386781 1.21175e+06 +386786 1.21225e+06 +386800 930928 +386808 851794 +386819 845900 +386822 1.047e+06 +386825 840658 +386825 901569 +386828 1.12148e+06 +386833 902839 +386833 903078 +386858 903239 +386858 1.21371e+06 +386861 765350 +386864 761719 +386886 883542 +386900 753858 +386900 903425 +386906 902872 +386911 1.21448e+06 +386922 1.22016e+06 +386931 902822 +386942 757739 +386947 902783 +386947 1.20814e+06 +386953 903139 +386967 768481 +386975 882236 +387000 902922 +387008 903497 +387011 903622 +387014 901486 +387019 903169 +387025 903433 +387042 772281 +387042 902817 +387042 914372 +387044 932281 +387058 877600 +387072 765314 +387072 1.2128e+06 +387078 770864 +387083 902928 +387106 902981 +387111 981569 +387131 904297 +387133 777956 +387142 854736 +387142 939911 +387144 903672 +387169 878614 +387175 902656 +387183 902922 +387183 950814 +387192 902603 +387192 944583 +387203 920911 +387208 750764 +387208 829583 +387208 902747 +387236 853694 +387236 899558 +387239 770100 +387253 902967 +387264 903586 +387275 903108 +387292 876817 +387292 898831 +387297 1.20798e+06 +387303 828556 +387306 982278 +387308 880853 +387314 799703 +387317 829978 +387317 900803 +387328 763939 +387358 853800 +387358 903639 +387383 771853 +387394 896711 +387400 903264 +387403 902264 +387422 1.08068e+06 +387425 756047 +387431 948253 +387442 903061 +387456 838450 +387458 786425 +387467 1.05178e+06 +387469 902400 +387475 770833 +387478 850672 +387483 899831 +387494 902856 +387508 774756 +387517 769789 +387522 829369 +387544 903311 +387547 828689 +387553 890953 +387553 950022 +387583 830292 +387583 858081 +387594 874156 +387614 1.20586e+06 +387628 937358 +387647 903136 +387647 950078 +387650 768986 +387650 935564 +387714 903708 +387717 840058 +387722 885025 +387725 772214 +387725 1.12083e+06 +387733 888467 +387742 760767 +387742 873078 +387744 751397 +387744 922569 +387750 951861 +387764 765556 +387775 753103 +387800 895981 +387806 955569 +387817 957383 +387819 771467 +387828 846053 +387833 849017 +387839 774700 +387861 829792 +387864 843697 +387864 897775 +387875 942692 +387878 902158 +387892 903225 +387908 1.21235e+06 +387931 774481 +387933 772719 +387933 902672 +387944 835453 +387956 967356 +387997 1.07719e+06 +388006 858417 +388019 813511 +388019 944525 +388033 769900 +388039 769069 +388042 772050 +388047 770472 +388061 871522 +388069 755917 +388072 753972 +388094 769983 +388097 822025 +388106 906997 +388108 949269 +388114 899531 +388114 908528 +388114 911414 +388119 945317 +388133 827269 +388139 769458 +388158 767500 +388183 771436 +388186 817108 +388186 956889 +388189 769989 +388208 785661 +388214 1.02353e+06 +388214 1.21192e+06 +388250 861700 +388250 984750 +388275 910200 +388278 895400 +388283 1.0797e+06 +388294 900628 +388300 768917 +388303 771967 +388328 769597 +388333 769519 +388336 821383 +388339 1.04821e+06 +388342 887722 +388389 774278 +388389 840964 +388403 976111 +388417 765125 +388422 1.06131e+06 +388428 869914 +388444 821372 +388450 768753 +388461 773067 +388467 919478 +388483 900761 +388517 943436 +388528 991472 +388533 913058 +388536 772597 +388561 806550 +388575 768897 +388589 961089 +388597 1.04917e+06 +388611 864872 +388611 900975 +388683 1.07591e+06 +388689 1.17921e+06 +388697 1.06987e+06 +388703 769214 +388711 874414 +388719 771556 +388747 929114 +388783 870858 +388789 860419 +388792 993264 +388794 823806 +388794 829969 +388803 901111 +388808 773011 +388814 948189 +388844 758275 +388850 769161 +388858 945328 +388875 765122 +388878 900847 +388883 897314 +388889 898453 +388906 901842 +388917 1.21292e+06 +388922 894131 +388933 772219 +388942 774314 +388950 770367 +388950 772119 +388953 988594 +388961 769069 +388964 871867 +388967 1.21076e+06 +388975 768306 +388978 1.01752e+06 +388983 900067 +389008 769158 +389008 865253 +389011 772656 +389017 1.07926e+06 +389028 971167 +389061 958158 +389092 900406 +389103 914481 +389106 1.22609e+06 +389125 754283 +389128 772011 +389144 900858 +389172 972136 +389178 839833 +389181 781947 +389186 772314 +389194 973708 +389206 886614 +389208 768719 +389222 1.11933e+06 +389231 942439 +389233 810961 +389236 755781 +389236 768803 +389250 892689 +389258 798469 +389281 769161 +389292 768619 +389314 898389 +389331 769461 +389339 768969 +389342 771778 +389342 808378 +389350 749064 +389350 1.05016e+06 +389378 764603 +389381 769486 +389381 995603 +389386 749422 +389392 769342 +389400 764953 +389414 769653 +389419 835725 +389431 768925 +389431 769569 +389431 845442 +389433 950983 +389453 769519 +389458 846806 +389458 1.1997e+06 +389467 769314 +389478 758847 +389481 817611 +389486 842800 +389489 834058 +389494 848539 +389517 923339 +389519 765783 +389536 947333 +389558 769458 +389561 903597 +389578 1.11859e+06 +389581 762106 +389592 858903 +389592 989683 +389606 890936 +389636 769911 +389636 934147 +389658 770964 +389667 946167 +389683 874056 +389686 773414 +389686 777358 +389689 1.12323e+06 +389694 773864 +389697 768803 +389700 904314 +389703 769422 +389711 770767 +389711 819144 +389717 952350 +389722 970222 +389736 758053 +389736 927431 +389747 748339 +389775 915047 +389778 770078 +389781 1.22838e+06 +389783 764925 +389786 799497 +389792 949683 +389794 765308 +389794 909806 +389806 749083 +389806 769372 +389806 771006 +389819 749583 +389822 946706 +389833 935683 +389858 1.19162e+06 +389864 819736 +389886 769817 +389886 783589 +389892 870822 +389906 770264 +389908 881625 +389917 748153 +389925 791242 +389939 769108 +389939 802322 +389939 1.05056e+06 +389953 1.10161e+06 +389958 889528 +389972 907383 +389975 819742 +389975 844964 +389981 772886 +389989 846267 +389989 895736 +389992 939533 +390006 747997 +390011 1.21021e+06 +390017 766878 +390017 820489 +390019 879089 +390031 769722 +390036 774008 +390036 876128 +390039 819892 +390044 768758 +390053 877392 +390061 856236 +390061 1.11861e+06 +390067 767794 +390078 838086 +390086 944633 +390089 754661 +390100 1.21422e+06 +390122 897911 +390125 846047 +390131 1.047e+06 +390144 748819 +390150 941983 +390167 846008 +390167 962889 +390169 942814 +390172 927372 +390175 1.22057e+06 +390178 850589 +390178 946167 +390181 918969 +390203 1.20817e+06 +390217 820292 +390217 844400 +390222 946317 +390236 946933 +390242 1.22674e+06 +390250 799358 +390250 998792 +390253 844175 +390253 885697 +390256 770767 +390264 769744 +390272 845850 +390275 820339 +390275 839197 +390278 946556 +390283 842178 +390286 749389 +390286 968311 +390294 895242 +390297 843664 +390303 770728 +390306 975939 +390319 765031 +390331 844519 +390344 843903 +390347 769078 +390347 871658 +390356 845692 +390356 1.04297e+06 +390375 946319 +390381 770933 +390383 804675 +390397 769933 +390397 901406 +390406 946167 +390417 760667 +390428 899517 +390431 1.08552e+06 +390431 1.22915e+06 +390444 953944 +390453 821306 +390483 956778 +390508 747583 +390514 845817 +390517 845342 +390536 765694 +390542 840531 +390561 985361 +390569 849014 +390575 769361 +390594 845475 +390597 948833 +390611 948194 +390619 883797 +390619 887481 +390622 789697 +390633 813953 +390639 1.0855e+06 +390644 1.09181e+06 +390681 830144 +390694 872600 +390694 1.00232e+06 +390703 765456 +390708 898561 +390714 845322 +390719 844728 +390719 852519 +390719 915700 +390722 897272 +390725 937169 +390750 844472 +390756 770022 +390758 953931 +390761 769581 +390769 841769 +390775 846031 +390794 770733 +390825 748242 +390833 782183 +390836 845086 +390839 767006 +390839 771531 +390892 893906 +390908 848500 +390911 944153 +390914 844958 +390917 1.04872e+06 +390919 768181 +390919 1.08448e+06 +390925 845475 +390928 846128 +390928 898039 +390936 1.11132e+06 +390953 874058 +390956 1.21551e+06 +390964 796811 +390992 768486 +390997 945783 +391008 1.20952e+06 +391011 747181 +391042 958583 +391064 844789 +391069 764853 +391072 765714 +391081 769981 +391094 876564 +391097 944444 +391097 950875 +391103 1.0835e+06 +391111 769328 +391111 967058 +391128 844728 +391133 755422 +391133 850881 +391136 826114 +391142 946272 +391156 775639 +391175 900442 +391178 772528 +391181 755592 +391200 885433 +391200 903283 +391211 846064 +391211 851314 +391219 977064 +391222 1.04917e+06 +391231 931967 +391233 825331 +391244 843617 +391247 852892 +391250 869794 +391253 1.11818e+06 +391278 1.2155e+06 +391297 898194 +391300 945619 +391308 894919 +391308 1.23165e+06 +391317 755253 +391319 755328 +391325 941983 +391331 884719 +391333 1.00863e+06 +391342 939825 +391350 858133 +391361 959514 +391361 1.03469e+06 +391367 777150 +391367 847092 +391369 766986 +391394 765481 +391397 771756 +391406 1.21616e+06 +391417 949383 +391433 772017 +391444 891086 +391450 843744 +391453 771444 +391458 774172 +391458 926836 +391458 1.2159e+06 +391489 794983 +391489 1.21666e+06 +391492 767756 +391503 1.23207e+06 +391517 779825 +391522 800406 +391525 847481 +391531 770672 +391531 846372 +391533 746933 +391542 945467 +391547 1.22148e+06 +391553 1.11818e+06 +391567 906178 +391569 846133 +391581 755247 +391589 1.08728e+06 +391592 843072 +391597 825269 +391597 1.21748e+06 +391611 803522 +391611 894936 +391617 847492 +391619 844569 +391625 766250 +391631 871992 +391639 1.19766e+06 +391642 894636 +391653 865264 +391667 765083 +391667 907808 +391697 918828 +391744 901431 +391753 842944 +391758 855731 +391772 767433 +391783 873936 +391792 987889 +391831 766406 +391831 945925 +391836 965714 +391847 938797 +391856 781636 +391864 873017 +391872 844464 +391872 844881 +391889 955694 +391908 843636 +391908 990283 +391911 1.06817e+06 +391928 844006 +391950 946819 +391958 952081 +391964 755492 +392008 804044 +392014 859214 +392019 963047 +392022 836117 +392025 944922 +392039 945544 +392047 760517 +392047 844281 +392053 843947 +392058 894044 +392089 760669 +392094 810519 +392094 935175 +392103 921378 +392106 843672 +392122 1.11019e+06 +392128 941225 +392133 970053 +392144 1.22008e+06 +392150 844556 +392153 953125 +392172 766375 +392181 930689 +392183 845508 +392192 1.2106e+06 +392214 944511 +392217 817975 +392231 845869 +392272 928464 +392272 1.11053e+06 +392275 822025 +392281 843542 +392283 766167 +392300 1.21076e+06 +392311 844658 +392319 843783 +392336 845458 +392339 866250 +392342 922806 +392347 992978 +392353 816314 +392369 850947 +392378 946958 +392378 1.20026e+06 +392403 768397 +392417 748156 +392419 764483 +392425 916453 +392458 750356 +392464 824786 +392464 845836 +392475 1.14888e+06 +392478 881633 +392478 957061 +392483 888622 +392486 873819 +392486 949000 +392506 765208 +392508 803125 +392508 1.06292e+06 +392519 844703 +392544 767003 +392561 844181 +392564 893481 +392567 802925 +392581 758375 +392617 1.21015e+06 +392619 848200 +392631 886297 +392633 803200 +392636 816294 +392639 1.03692e+06 +392667 815617 +392672 767986 +392681 844133 +392681 845231 +392683 1.11636e+06 +392692 803125 +392708 938342 +392719 767322 +392725 776369 +392725 915744 +392728 793647 +392736 882436 +392739 815731 +392739 977717 +392775 745750 +392786 939767 +392797 898817 +392806 803447 +392850 809686 +392864 802564 +392867 867625 +392869 844853 +392883 772042 +392886 803061 +392889 778600 +392903 766125 +392906 756347 +392931 839889 +392931 1.03067e+06 +392950 778608 +392958 859508 +392964 807772 +392964 1.19775e+06 +392989 968306 +392992 879925 +392997 756050 +392997 842633 +393000 852222 +393011 892850 +393022 904069 +393025 936772 +393039 857714 +393047 925125 +393061 1.02269e+06 +393078 1.23798e+06 +393092 764753 +393092 772975 +393108 914883 +393111 949222 +393122 846506 +393142 745253 +393142 776281 +393175 745950 +393183 843689 +393194 884528 +393194 895719 +393200 765158 +393222 952667 +393233 777531 +393236 836911 +393267 1.10964e+06 +393269 815486 +393278 745039 +393281 1.20182e+06 +393292 821014 +393331 829825 +393342 764397 +393356 878819 +393372 854836 +393383 764800 +393392 942258 +393397 852044 +393403 744778 +393406 767225 +393408 800192 +393419 787569 +393419 911950 +393433 954600 +393436 902125 +393450 835531 +393483 796711 +393483 974458 +393489 1.10851e+06 +393508 866669 +393508 1.0171e+06 +393519 833828 +393522 1.12576e+06 +393544 841272 +393567 978408 +393575 1.00441e+06 +393578 780403 +393583 934956 +393597 1.11586e+06 +393600 843100 +393603 1.04596e+06 +393633 765208 +393639 1.21692e+06 +393642 744233 +393647 998417 +393672 767956 +393678 943619 +393689 821325 +393689 1.07032e+06 +393703 947822 +393706 909050 +393708 842133 +393714 862611 +393722 1.04856e+06 +393736 769681 +393739 803486 +393742 767228 +393761 771550 +393772 765400 +393794 812586 +393817 752203 +393869 945808 +393878 889606 +393889 890800 +393914 876936 +393917 797486 +393931 793733 +393939 964133 +393942 765239 +393950 865625 +393956 803003 +393958 1.01052e+06 +393978 821294 +393983 793819 +394014 766022 +394022 1.07211e+06 +394036 769506 +394039 758678 +394050 1.14778e+06 +394064 887900 +394097 1.23354e+06 +394100 743650 +394111 949014 +394119 747428 +394125 764639 +394125 1.21712e+06 +394142 774108 +394153 814550 +394167 953333 +394175 766214 +394183 924381 +394186 775039 +394194 767806 +394200 894556 +394228 765850 +394231 850128 +394233 931303 +394239 928014 +394272 752344 +394278 864283 +394283 744961 +394300 778044 +394311 916750 +394344 929381 +394347 845369 +394356 1.21537e+06 +394369 904031 +394381 992647 +394383 942039 +394389 986944 +394406 925450 +394408 789742 +394408 885947 +394433 896517 +394453 838286 +394456 795467 +394458 1.23804e+06 +394464 897808 +394486 764181 +394489 910514 +394494 757167 +394522 747281 +394561 779642 +394561 981058 +394564 879961 +394575 777492 +394586 822319 +394619 821819 +394625 802183 +394650 874500 +394653 957361 +394667 874139 +394694 762047 +394694 768297 +394717 796836 +394728 765233 +394733 827394 +394736 814792 +394736 922097 +394736 1.18776e+06 +394739 829108 +394783 745756 +394800 845519 +394808 844578 +394808 920011 +394811 766442 +394817 1.06038e+06 +394825 1.11495e+06 +394831 883728 +394839 903714 +394847 820792 +394850 801428 +394853 790450 +394861 750261 +394861 773522 +394886 836369 +394889 961697 +394919 872672 +394922 809039 +394950 798153 +394961 881761 +394967 1.21551e+06 +395008 851864 +395008 897678 +395022 985464 +395031 787689 +395031 820847 +395036 801669 +395050 946331 +395069 847453 +395081 915286 +395106 797986 +395114 821636 +395125 984333 +395128 802492 +395136 749250 +395139 1.21555e+06 +395144 764114 +395147 867939 +395161 843764 +395203 890489 +395206 744861 +395208 861678 +395214 857769 +395219 947697 +395222 954006 +395225 887536 +395236 871250 +395244 1.22192e+06 +395250 1.1159e+06 +395258 871125 +395286 746483 +395297 801169 +395297 840867 +395297 1.19813e+06 +395306 790178 +395308 758078 +395308 803436 +395331 773150 +395331 880222 +395347 1.07782e+06 +395350 1.19752e+06 +395358 763486 +395367 871058 +395381 897631 +395392 863692 +395400 824072 +395419 771083 +395425 1.10735e+06 +395464 750253 +395469 1.11455e+06 +395478 816397 +395483 817931 +395483 943297 +395486 1.07656e+06 +395489 892944 +395492 760919 +395500 860797 +395506 1.07324e+06 +395514 1.10387e+06 +395522 797981 +395522 842333 +395522 940406 +395528 879394 +395539 832569 +395581 801819 +395581 860953 +395589 843042 +395592 742436 +395600 760717 +395608 753628 +395631 951214 +395642 809961 +395656 896572 +395656 944478 +395658 789806 +395672 972783 +395675 848161 +395689 771772 +395708 976622 +395717 754675 +395728 1.07536e+06 +395731 742319 +395744 1.06097e+06 +395753 769961 +395778 755892 +395778 822378 +395853 914008 +395856 902519 +395864 1.0643e+06 +395869 937958 +395886 894144 +395900 789500 +395911 973986 +395917 895803 +395917 897464 +395917 899528 +395928 788336 +395950 751706 +395956 748819 +395994 886078 +395994 1.1081e+06 +396000 759417 +396006 778208 +396006 829461 +396011 1.05032e+06 +396019 748431 +396025 820883 +396028 809369 +396031 743406 +396036 933422 +396044 764781 +396047 761156 +396047 768503 +396047 822117 +396047 828292 +396050 833956 +396067 758336 +396078 908050 +396089 777047 +396092 854464 +396108 945992 +396111 876961 +396117 799047 +396128 863742 +396133 1.05016e+06 +396144 787753 +396172 1.0495e+06 +396203 900439 +396206 777592 +396228 872833 +396236 774111 +396247 890189 +396264 1.11439e+06 +396283 1.05049e+06 +396289 902189 +396294 799561 +396297 904561 +396300 1.11634e+06 +396314 1.06522e+06 +396325 787847 +396333 1.05317e+06 +396344 799700 +396356 840708 +396356 849311 +396364 748028 +396375 1.06061e+06 +396400 891928 +396403 852622 +396403 1.06374e+06 +396414 787747 +396417 777203 +396417 1.04959e+06 +396428 741808 +396428 842867 +396442 775861 +396444 808578 +396444 868647 +396456 887381 +396458 799875 +396469 1.05025e+06 +396469 1.06951e+06 +396478 845272 +396478 1.04987e+06 +396486 818533 +396492 818622 +396494 827444 +396511 776911 +396514 753286 +396525 788972 +396528 787628 +396528 837869 +396533 755169 +396536 835639 +396536 917344 +396539 880261 +396547 775731 +396553 1.06828e+06 +396572 893894 +396578 771747 +396581 789286 +396581 837350 +396583 799867 +396600 750925 +396606 955261 +396611 768853 +396617 995700 +396619 741656 +396619 755667 +396636 794056 +396669 757272 +396697 742322 +396700 861314 +396714 981533 +396717 842528 +396733 856986 +396756 898467 +396761 897044 +396764 1.2024e+06 +396794 844292 +396803 874175 +396819 966594 +396831 776964 +396836 757500 +396842 1.10854e+06 +396847 839297 +396847 883064 +396861 749956 +396867 755847 +396883 1.23482e+06 +396892 865225 +396894 841689 +396911 967472 +396928 777450 +396928 787931 +396939 920428 +396942 910389 +396953 742592 +396956 788800 +396978 760631 +396989 781800 +397011 891231 +397017 824269 +397028 751122 +397044 773272 +397047 1.05081e+06 +397056 964167 +397061 842194 +397061 1.05697e+06 +397069 912067 +397083 913583 +397086 902281 +397089 907244 +397103 1.11836e+06 +397111 754706 +397119 888044 +397119 929481 +397128 889969 +397136 756097 +397136 825994 +397147 884722 +397156 756411 +397156 829531 +397156 886325 +397161 838778 +397183 829869 +397194 832653 +397211 822989 +397219 858892 +397253 899106 +397269 763269 +397278 764522 +397286 1.21836e+06 +397294 754683 +397294 1.04831e+06 +397322 748814 +397328 751319 +397339 902289 +397367 775353 +397378 767017 +397383 855719 +397383 1.04323e+06 +397389 798989 +397392 752244 +397392 755983 +397392 1.04984e+06 +397419 922583 +397422 924725 +397425 1.05013e+06 +397428 1.22012e+06 +397436 775542 +397436 939981 +397442 838086 +397444 770883 +397444 845322 +397453 843850 +397458 755469 +397469 925639 +397475 753108 +397475 1.22195e+06 +397478 815167 +397500 755000 +397508 944964 +397508 1.01532e+06 +397519 905350 +397528 790811 +397531 742233 +397531 1.05064e+06 +397536 765917 +397556 948722 +397556 1.05221e+06 +397558 775781 +397561 993236 +397572 896536 +397575 741067 +397589 841917 +397589 1.04427e+06 +397592 949494 +397606 865264 +397611 799817 +397611 868119 +397622 938042 +397625 811156 +397625 872292 +397656 808714 +397658 903989 +397661 755097 +397661 892617 +397661 1.05077e+06 +397669 990314 +397675 896806 +397683 861581 +397686 766800 +397689 820922 +397714 888742 +397761 859572 +397769 896792 +397792 987847 +397811 769636 +397817 928900 +397819 860503 +397831 950897 +397842 749925 +397844 930733 +397850 857694 +397853 759792 +397872 982097 +397894 769983 +397903 777281 +397911 749294 +397914 741956 +397928 873708 +397931 767306 +397931 1.23247e+06 +397942 915231 +397944 751492 +397953 935522 +397956 855264 +397969 885917 +397972 843114 +397975 842536 +397986 879858 +397989 827011 +397992 882831 +397994 884622 +398006 754600 +398017 896436 +398022 750644 +398022 862672 +398028 828064 +398028 1.05087e+06 +398031 798081 +398036 876736 +398058 920414 +398064 838869 +398067 1.01042e+06 +398069 822972 +398072 770117 +398072 820714 +398078 874950 +398089 755492 +398092 754869 +398094 893972 +398097 825222 +398097 863225 +398106 1.20468e+06 +398114 749833 +398119 771375 +398122 852089 +398125 851717 +398128 793569 +398136 790250 +398161 1.11855e+06 +398169 751556 +398169 912422 +398181 970506 +398183 1.00528e+06 +398192 754189 +398200 750067 +398208 840194 +398219 758278 +398222 1.04933e+06 +398231 787183 +398242 749981 +398244 976322 +398247 797547 +398253 836344 +398267 750158 +398269 805667 +398275 754147 +398278 779036 +398289 848903 +398303 752408 +398308 772314 +398311 905594 +398314 757578 +398339 998911 +398342 960639 +398367 844114 +398367 1.04959e+06 +398367 1.05037e+06 +398381 749653 +398381 751531 +398383 854389 +398386 860253 +398394 750739 +398403 825461 +398403 889547 +398411 966469 +398428 828047 +398433 863978 +398439 750231 +398439 841247 +398442 775586 +398442 895394 +398453 826008 +398461 845397 +398467 757119 +398467 799000 +398481 861725 +398483 810369 +398489 868022 +398494 753561 +398514 1.04998e+06 +398522 750683 +398525 894086 +398525 955356 +398528 894633 +398536 831831 +398536 892419 +398539 890839 +398539 891661 +398556 767078 +398556 767689 +398569 847933 +398583 748033 +398597 866425 +398600 753447 +398600 808156 +398611 819069 +398631 790583 +398636 770561 +398639 864669 +398647 750556 +398653 776128 +398658 751792 +398664 750286 +398675 750950 +398681 1.04971e+06 +398692 753828 +398728 899211 +398744 768661 +398769 870444 +398772 750650 +398772 797022 +398775 843022 +398781 751211 +398781 839369 +398783 750931 +398783 799250 +398789 829508 +398811 753242 +398814 830931 +398831 767108 +398842 827536 +398842 874086 +398850 906558 +398856 1.04987e+06 +398864 769850 +398878 900078 +398892 840267 +398892 943617 +398900 754758 +398900 861572 +398906 841989 +398906 887281 +398908 750733 +398908 752842 +398911 749222 +398914 750381 +398917 751167 +398917 753000 +398919 855769 +398922 747025 +398922 997067 +398925 797472 +398936 896047 +398939 968792 +398956 876519 +398964 801794 +398964 824203 +398967 799747 +398969 761639 +398975 830869 +398978 843064 +398992 820064 +398994 766406 +399000 752894 +399000 825342 +399008 750850 +399017 753289 +399019 753503 +399019 846750 +399022 958006 +399033 844856 +399044 844017 +399064 752719 +399089 766372 +399097 753239 +399097 878211 +399111 851617 +399117 752775 +399122 752542 +399136 868011 +399144 939619 +399147 882733 +399161 765847 +399167 753881 +399175 797175 +399181 750717 +399183 752594 +399203 807433 +399206 789581 +399206 1.05086e+06 +399214 752883 +399219 885719 +399231 772989 +399242 838089 +399258 751200 +399267 740775 +399267 741342 +399278 1.22178e+06 +399283 752742 +399286 749442 +399289 853703 +399292 752967 +399303 772483 +399322 858481 +399325 779992 +399325 889511 +399328 890619 +399336 824725 +399356 914097 +399358 741714 +399361 840256 +399375 776614 +399381 752722 +399386 888656 +399389 741933 +399389 752558 +399403 820133 +399417 948300 +399419 741503 +399419 742047 +399425 745444 +399442 740733 +399444 899372 +399453 799958 +399456 752617 +399472 750669 +399478 810575 +399481 743611 +399486 741375 +399486 874597 +399492 759739 +399508 862619 +399511 902122 +399522 751642 +399525 767517 +399531 1.119e+06 +399536 741983 +399542 895486 +399542 1.12119e+06 +399547 759972 +399547 828122 +399556 849175 +399556 860139 +399569 858053 +399583 841722 +399586 759197 +399594 825958 +399606 756058 +399608 897239 +399611 829989 +399614 1.0551e+06 +399617 824914 +399625 746792 +399625 767281 +399625 843281 +399633 752506 +399667 758000 +399667 828856 +399675 872775 +399678 847092 +399681 753417 +399686 891622 +399689 829378 +399697 815367 +399700 812994 +399703 740692 +399708 807508 +399719 746833 +399719 765203 +399742 758203 +399747 938008 +399756 1.11784e+06 +399778 796147 +399778 1.05131e+06 +399781 767333 +399783 861181 +399786 820036 +399814 740667 +399819 888228 +399825 772497 +399831 758242 +399831 761844 +399836 768228 +399853 1.0482e+06 +399861 882589 +399867 830617 +399869 951447 +399872 907633 +399881 807317 +399881 811767 +399928 747881 +399936 817342 +399936 1.05089e+06 +399947 844081 +399956 826744 +399958 866200 +399964 1.11842e+06 +399967 749931 +399967 795861 +399969 767069 +399975 857467 +399978 763544 +400017 768506 +400025 799983 +400064 757036 +400069 881581 +400083 752608 +400083 790783 +400089 771158 +400103 799011 +400108 892822 +400114 750153 +400114 783736 +400144 743117 +400150 1.0527e+06 +400158 741453 +400161 810728 +400175 904242 +400178 795897 +400181 807344 +400186 785042 +400192 828794 +400208 980697 +400214 1.22099e+06 +400217 767283 +400228 824447 +400242 798908 +400247 801003 +400250 880733 +400272 808153 +400278 748694 +400278 885733 +400289 756211 +400292 810392 +400297 746189 +400314 909606 +400322 859125 +400331 796617 +400333 831583 +400336 765047 +400347 879581 +400361 746183 +400361 755142 +400364 889569 +400375 1.07912e+06 +400378 763058 +400392 764311 +400392 910692 +400394 842033 +400411 868744 +400419 754767 +400422 876386 +400428 914975 +400444 1.11731e+06 +400456 860086 +400456 878306 +400467 941356 +400469 796547 +400481 901550 +400483 864692 +400492 1.01532e+06 +400497 849397 +400503 1.05049e+06 +400506 749539 +400506 775206 +400514 874333 +400514 945239 +400525 806286 +400531 1.11673e+06 +400547 882517 +400553 840261 +400569 765525 +400581 824014 +400589 1.06388e+06 +400608 956017 +400614 876381 +400631 767042 +400639 807211 +400650 877019 +400653 749194 +400653 800239 +400675 745311 +400681 749011 +400681 825197 +400683 858483 +400692 807839 +400697 753167 +400706 807611 +400711 748653 +400717 740547 +400736 1.04642e+06 +400756 798983 +400758 1.02223e+06 +400764 829439 +400789 936164 +400792 753019 +400794 798658 +400811 750900 +400819 830253 +400831 897381 +400833 798483 +400847 1.04812e+06 +400847 1.04939e+06 +400861 918131 +400861 1.05939e+06 +400869 797508 +400875 805706 +400875 870597 +400878 1.0881e+06 +400883 912836 +400886 829167 +400889 985192 +400911 740483 +400911 795878 +400931 830181 +400942 759117 +400953 876475 +400958 751256 +400958 807247 +400961 989522 +400975 993617 +400978 742181 +400992 1.04937e+06 +401003 795872 +401003 798408 +401003 895908 +401006 748522 +401011 800675 +401017 760856 +401028 846331 +401036 798694 +401053 856803 +401072 808414 +401075 832675 +401078 740569 +401083 837525 +401083 961542 +401083 1.04519e+06 +401092 910175 +401097 765036 +401100 867719 +401106 882072 +401108 767161 +401108 770353 +401119 800175 +401125 855969 +401125 1.04936e+06 +401131 872625 +401139 878731 +401139 879561 +401150 1.11654e+06 +401161 877783 +401164 882433 +401167 800086 +401172 821194 +401172 843539 +401178 804106 +401183 771903 +401189 788183 +401203 1.23822e+06 +401211 887453 +401211 905631 +401214 753403 +401214 820108 +401222 886453 +401222 966622 +401222 1.02725e+06 +401236 876533 +401239 860133 +401244 798800 +401244 876300 +401250 798667 +401250 916250 +401261 740497 +401261 829292 +401292 798683 +401292 994550 +401300 765708 +401303 755153 +401303 1.11578e+06 +401311 952314 +401314 750678 +401319 740350 +401322 844308 +401350 862206 +401364 747292 +401372 971803 +401375 998292 +401378 798983 +401392 748150 +401394 966589 +401408 977225 +401411 806883 +401417 873947 +401447 842425 +401461 747122 +401469 789122 +401483 798881 +401483 893647 +401489 1.02962e+06 +401494 810664 +401497 754022 +401497 771286 +401500 742139 +401503 740314 +401511 762514 +401511 799078 +401519 749169 +401528 766031 +401533 740286 +401536 826853 +401536 889644 +401539 797414 +401544 752219 +401544 807106 +401567 758331 +401567 762025 +401572 760508 +401572 763072 +401597 790667 +401606 1.03214e+06 +401614 790292 +401633 763953 +401633 1.10402e+06 +401639 959447 +401653 1.1161e+06 +401664 975856 +401667 807000 +401669 749181 +401672 1.05101e+06 +401675 921725 +401697 805939 +401708 740278 +401719 849814 +401733 798578 +401736 802378 +401736 854942 +401742 751072 +401744 749231 +401756 1.01012e+06 +401758 860217 +401767 755481 +401778 745839 +401783 740222 +401783 751289 +401786 834356 +401786 1.22235e+06 +401794 1.18472e+06 +401797 761792 +401808 754294 +401825 806914 +401831 798244 +401842 755383 +401856 754519 +401872 767303 +401878 851275 +401881 869039 +401889 852042 +401906 747028 +401917 852689 +401922 740164 +401933 853864 +401933 863606 +401944 1.10061e+06 +401947 925831 +401950 779833 +401950 866672 +401953 884042 +401964 762014 +401964 807753 +401989 754767 +401994 848053 +402000 740283 +402014 771892 +402017 980675 +402019 848092 +402019 1.00625e+06 +402022 740125 +402022 896981 +402022 931250 +402031 799264 +402053 742142 +402056 805569 +402067 751000 +402078 750731 +402078 799472 +402089 789839 +402097 797672 +402106 812664 +402108 752786 +402108 767914 +402114 761236 +402114 885061 +402144 846369 +402150 750111 +402150 1.04822e+06 +402153 782447 +402153 860264 +402169 747433 +402178 945381 +402186 808731 +402192 796097 +402200 744736 +402203 740125 +402203 889619 +402225 844844 +402228 857789 +402231 835575 +402233 769539 +402247 1.05271e+06 +402264 806517 +402269 789367 +402275 903594 +402297 1.00838e+06 +402300 909500 +402306 1.04072e+06 +402314 756344 +402319 927083 +402322 768850 +402331 761375 +402333 740161 +402333 910625 +402339 1.11658e+06 +402344 1.00417e+06 +402353 768417 +402361 740011 +402389 891231 +402394 756514 +402397 769203 +402397 788353 +402403 795769 +402411 760567 +402411 768944 +402414 752842 +402417 881842 +402419 743017 +402428 778933 +402431 740011 +402431 792378 +402433 886425 +402436 788492 +402450 755956 +402453 756500 +402456 748464 +402464 802117 +402469 867250 +402472 796775 +402483 996331 +402497 788492 +402503 1.03799e+06 +402525 756778 +402561 754642 +402589 768322 +402589 1.03623e+06 +402594 892333 +402600 742742 +402625 801875 +402628 769142 +402628 856758 +402639 744917 +402644 758044 +402647 806264 +402653 767086 +402681 967467 +402686 929531 +402692 798900 +402694 745236 +402694 857281 +402700 873867 +402708 798994 +402708 807817 +402719 806097 +402719 818597 +402722 816061 +402728 809969 +402736 764064 +402736 768847 +402750 769158 +402750 1.06958e+06 +402753 768483 +402753 817511 +402761 748494 +402769 858419 +402783 795450 +402794 753875 +402794 865108 +402808 742517 +402819 1.00165e+06 +402819 1.04777e+06 +402822 860411 +402842 841556 +402858 759847 +402858 766506 +402872 788897 +402883 752094 +402883 872939 +402892 850289 +402903 740181 +402908 788692 +402911 795472 +402917 793894 +402917 909189 +402922 798819 +402942 872489 +402942 904278 +402961 740514 +402967 784500 +402969 1.11694e+06 +402972 743586 +402986 830681 +402986 894850 +402989 751814 +402989 788925 +402992 839689 +402994 1.09988e+06 +403000 900608 +403008 852419 +403014 795392 +403031 969886 +403042 739928 +403042 741008 +403042 999000 +403044 826964 +403050 878006 +403056 896028 +403058 880211 +403064 1.21231e+06 +403078 759658 +403083 881558 +403083 1.05081e+06 +403089 765936 +403106 759397 +403106 789389 +403111 783244 +403117 753256 +403119 839158 +403133 889736 +403139 855006 +403144 891697 +403147 883500 +403156 798314 +403161 745142 +403172 746203 +403181 740156 +403200 756106 +403211 793797 +403217 806100 +403219 753283 +403231 793128 +403244 797014 +403247 798925 +403247 805778 +403253 809014 +403272 760114 +403275 805961 +403278 906069 +403281 758911 +403281 796156 +403283 747911 +403289 796414 +403294 759656 +403294 765156 +403294 1.04855e+06 +403300 760808 +403303 739819 +403325 984483 +403336 756378 +403336 759478 +403353 820069 +403356 759272 +403358 783911 +403358 798700 +403367 740475 +403367 754694 +403369 1.04912e+06 +403372 764758 +403375 759800 +403375 797136 +403386 856444 +403386 953931 +403392 767258 +403403 853508 +403408 764117 +403433 1.1172e+06 +403444 866653 +403453 756333 +403456 763903 +403461 742883 +403461 948722 +403469 925689 +403478 798644 +403486 746594 +403486 788839 +403489 851500 +403489 1.04701e+06 +403494 762136 +403506 798864 +403514 843739 +403514 903244 +403517 761347 +403519 887642 +403525 744406 +403539 753053 +403553 800497 +403561 801103 +403583 814344 +403592 914344 +403606 740386 +403611 837597 +403614 739744 +403617 761844 +403642 749517 +403642 1.11738e+06 +403647 800225 +403650 804142 +403658 749433 +403667 961958 +403672 769314 +403672 787917 +403678 810056 +403697 806342 +403706 799750 +403708 802350 +403717 752019 +403719 739994 +403719 752931 +403722 979711 +403725 895472 +403733 756294 +403742 867689 +403753 807039 +403756 823972 +403764 1.04692e+06 +403767 744250 +403769 1.11795e+06 +403772 1.05521e+06 +403781 939367 +403789 745469 +403792 876686 +403794 860886 +403803 790756 +403814 798600 +403817 824925 +403819 803931 +403831 798067 +403844 778825 +403856 797592 +403858 1.2228e+06 +403875 1.04561e+06 +403881 759183 +403886 786725 +403886 854994 +403908 754925 +403908 798103 +403917 743989 +403917 1.1185e+06 +403922 799003 +403922 800911 +403928 958386 +403931 813467 +403931 843761 +403931 901547 +403933 813339 +403933 824858 +403936 779414 +403936 797864 +403936 969225 +403939 799122 +403944 841728 +403947 814072 +403956 798389 +403958 800333 +403958 810850 +403964 913389 +403969 791519 +403969 888706 +403972 913847 +403978 1.05074e+06 +403981 770233 +403983 798900 +403986 794222 +403989 798411 +403997 746347 +404008 935803 +404019 835453 +404022 755875 +404031 797783 +404036 739919 +404058 798253 +404058 799122 +404064 755022 +404075 896428 +404078 740347 +404078 749786 +404086 759219 +404086 798392 +404086 800836 +404089 829556 +404092 925675 +404106 753786 +404125 798794 +404128 847764 +404131 795706 +404142 790203 +404142 799881 +404142 822411 +404147 742300 +404147 743658 +404153 856506 +404156 741914 +404164 1.20652e+06 +404167 868750 +404169 865947 +404172 798653 +404175 862714 +404183 1.01371e+06 +404189 805897 +404197 798503 +404203 917194 +404208 745611 +404208 894144 +404233 784342 +404233 1.04709e+06 +404236 798831 +404256 800942 +404258 786203 +404258 869081 +404258 897792 +404264 832969 +404264 907925 +404267 885261 +404272 783892 +404272 861256 +404311 792611 +404317 981056 +404331 742000 +404333 807719 +404336 893131 +404339 830739 +404344 800825 +404344 849778 +404347 892178 +404350 800664 +404369 843797 +404378 813733 +404383 798433 +404400 816992 +404403 953775 +404403 993694 +404406 799961 +404417 741303 +404417 753419 +404417 798822 +404456 950658 +404461 800678 +404464 741786 +404464 743864 +404469 759667 +404483 1.22297e+06 +404503 831886 +404511 853700 +404514 743083 +404533 1.11777e+06 +404539 758183 +404556 1.09528e+06 +404567 742469 +404578 921711 +404592 743614 +404592 906717 +404592 963772 +404597 785919 +404597 795233 +404603 880953 +404608 799511 +404614 836700 +404642 806011 +404650 878964 +404656 800658 +404672 876683 +404678 841806 +404681 769322 +404700 753208 +404711 838928 +404742 957333 +404756 854944 +404769 930031 +404772 1.09586e+06 +404775 1.04901e+06 +404778 742911 +404781 785411 +404781 859667 +404783 991264 +404792 792000 +404797 846283 +404797 856278 +404800 799786 +404803 863947 +404814 789189 +404814 969603 +404819 757581 +404822 785519 +404842 889936 +404847 780106 +404850 787250 +404850 1.06831e+06 +404861 744522 +404864 794517 +404864 861336 +404872 856131 +404875 944108 +404897 814458 +404897 1.11938e+06 +404906 870964 +404914 799050 +404919 1.07257e+06 +404933 798608 +404936 843147 +404944 896517 +404950 819847 +404967 806069 +404986 989475 +404992 743994 +405006 828936 +405008 759703 +405008 800678 +405031 786306 +405033 757017 +405042 799492 +405064 798433 +405067 742658 +405067 837481 +405083 858256 +405083 868417 +405100 800947 +405108 756033 +405114 753908 +405122 748597 +405122 1.11474e+06 +405142 889906 +405153 1.07546e+06 +405158 755556 +405169 1.01643e+06 +405183 801669 +405186 783950 +405194 808842 +405197 872478 +405206 814742 +405208 925278 +405211 873783 +405217 980550 +405219 1.11938e+06 +405222 800344 +405247 1.11863e+06 +405261 750619 +405267 996333 +405269 975956 +405275 894925 +405289 794617 +405294 891772 +405303 1.04711e+06 +405308 1.12298e+06 +405317 801692 +405322 914147 +405344 835206 +405364 801847 +405369 893575 +405394 754972 +405394 769611 +405408 745881 +405417 797994 +405431 743636 +405433 787881 +405433 791625 +405489 768122 +405489 784294 +405489 845703 +405492 828275 +405500 913847 +405508 948192 +405511 801931 +405528 905061 +405531 797575 +405533 745319 +405539 852775 +405544 819181 +405544 1.23182e+06 +405556 759822 +405561 908658 +405575 828625 +405581 900350 +405589 791514 +405622 1.11929e+06 +405631 802086 +405639 888989 +405644 871069 +405647 878931 +405667 767008 +405669 886164 +405675 882478 +405675 896406 +405678 841936 +405683 745389 +405686 750950 +405694 746333 +405694 774031 +405697 773972 +405697 797650 +405717 807267 +405719 857692 +405725 744931 +405725 898133 +405728 810858 +405733 766917 +405736 802358 +405742 746103 +405747 769894 +405764 1.24263e+06 +405772 742286 +405789 861903 +405792 744119 +405794 753411 +405800 797669 +405814 795667 +405825 1.04731e+06 +405833 909692 +405844 1.02302e+06 +405853 1.05084e+06 +405861 795317 +405861 983881 +405867 1.22391e+06 +405875 866750 +405883 736583 +405883 824250 +405886 831286 +405889 737294 +405892 744722 +405892 765528 +405892 802253 +405900 985058 +405903 998606 +405917 1.11883e+06 +405942 751947 +405947 815269 +405961 795558 +405969 880381 +405981 795614 +405983 760936 +405983 1.24156e+06 +406000 1.12464e+06 +406006 839753 +406011 813614 +406014 753956 +406014 797600 +406028 787089 +406028 795650 +406028 806492 +406028 868672 +406033 783250 +406042 736558 +406044 956575 +406050 777258 +406056 978589 +406058 889872 +406081 742781 +406081 797414 +406086 865400 +406097 1.11938e+06 +406111 1.11899e+06 +406114 798372 +406117 767189 +406128 894592 +406131 805631 +406150 896222 +406156 737300 +406167 873208 +406172 855047 +406175 896003 +406183 806044 +406186 805775 +406189 980969 +406197 1.11809e+06 +406200 825108 +406200 966289 +406211 904619 +406211 986572 +406214 791528 +406219 742450 +406225 808381 +406228 737247 +406228 939339 +406239 737089 +406256 1.03207e+06 +406264 753461 +406267 761931 +406283 763875 +406283 876961 +406297 892747 +406297 913150 +406300 744278 +406300 893325 +406300 1.00515e+06 +406306 761714 +406308 929244 +406319 737131 +406336 744078 +406350 802283 +406353 822333 +406356 1.04755e+06 +406358 782961 +406361 736819 +406361 911672 +406364 829692 +406367 791444 +406367 802403 +406369 975850 +406378 744514 +406386 736406 +406386 775689 +406386 1.11938e+06 +406403 917428 +406408 743111 +406408 743839 +406408 748817 +406411 1.02626e+06 +406414 887833 +406417 748364 +406419 736700 +406422 798511 +406425 742858 +406428 787731 +406428 915644 +406431 736961 +406431 775808 +406431 1.1128e+06 +406442 974500 +406444 804164 +406458 805981 +406461 1.11497e+06 +406469 836097 +406472 895911 +406472 971131 +406500 814522 +406503 896519 +406511 812992 +406531 815811 +406536 972858 +406539 750869 +406542 841508 +406547 736722 +406547 754750 +406547 761011 +406553 743903 +406572 961861 +406575 735836 +406578 849519 +406583 743000 +406586 736417 +406589 743478 +406594 743233 +406597 754772 +406597 802394 +406600 1.11996e+06 +406608 862419 +406625 787803 +406628 735519 +406631 868694 +406639 742111 +406639 775961 +406642 737089 +406642 742636 +406642 904347 +406644 742647 +406658 734886 +406661 806233 +406661 895800 +406669 751578 +406669 947211 +406669 1.11887e+06 +406672 813550 +406678 1.11938e+06 +406686 735275 +406686 741147 +406689 1.11824e+06 +406700 754958 +406706 782389 +406722 743578 +406733 805767 +406733 845189 +406733 921619 +406739 857214 +406764 742911 +406767 818706 +406767 958589 +406786 735894 +406786 752372 +406789 734175 +406789 736744 +406789 910728 +406792 804950 +406800 965061 +406800 1.22351e+06 +406803 734556 +406806 734747 +406806 1.2237e+06 +406814 734003 +406814 820219 +406825 931208 +406828 854272 +406833 744431 +406836 735106 +406842 746361 +406844 803292 +406844 896800 +406850 737022 +406856 761958 +406858 926772 +406861 754972 +406867 733739 +406867 841378 +406872 802717 +406875 802542 +406911 735636 +406914 735339 +406917 811814 +406917 897950 +406925 896278 +406928 837856 +406933 735081 +406936 751906 +406936 895889 +406953 803050 +406956 733261 +406958 800119 +406964 761692 +406967 749411 +406975 734256 +406983 744019 +406994 990811 +407000 802683 +407000 1.1181e+06 +407003 735933 +407008 734625 +407008 737133 +407011 742306 +407022 802867 +407036 894072 +407039 1.05008e+06 +407044 963872 +407047 736506 +407061 733067 +407061 838439 +407064 839214 +407064 933650 +407069 749564 +407069 815983 +407072 736764 +407086 732817 +407089 843536 +407092 1.12101e+06 +407106 902661 +407139 775908 +407139 1.16103e+06 +407142 733819 +407142 737006 +407142 740064 +407147 942350 +407150 880061 +407164 733222 +407167 914500 +407172 734842 +407181 733547 +407186 745697 +407189 1.11888e+06 +407192 736889 +407194 748361 +407194 761161 +407194 993717 +407206 734406 +407208 740178 +407214 892728 +407219 954806 +407236 737053 +407242 737156 +407244 815222 +407250 732458 +407256 753944 +407258 735147 +407264 788069 +407267 736347 +407278 730981 +407281 740781 +407294 760858 +407297 732108 +407297 811056 +407303 803103 +407303 919622 +407311 948994 +407311 1.22941e+06 +407317 1.06283e+06 +407319 731861 +407322 906644 +407336 778858 +407336 827900 +407350 736883 +407356 741728 +407358 730825 +407361 732631 +407372 1.14037e+06 +407383 730511 +407386 851717 +407386 995372 +407392 890164 +407394 743044 +407394 803294 +407397 937475 +407403 753100 +407408 736631 +407408 743842 +407408 752575 +407414 743600 +407417 887197 +407419 950381 +407431 731931 +407433 888814 +407439 740328 +407442 734825 +407453 867647 +407464 741567 +407469 909039 +407472 731703 +407472 885147 +407472 895739 +407478 785347 +407483 741622 +407483 756122 +407483 956472 +407483 988444 +407486 847911 +407492 736411 +407494 868717 +407503 786711 +407517 763364 +407517 818394 +407517 924147 +407519 803194 +407519 884111 +407525 736108 +407536 860689 +407536 882919 +407539 733608 +407539 752625 +407539 798103 +407542 755992 +407544 863567 +407553 736672 +407564 736453 +407567 881911 +407569 729397 +407569 933186 +407581 870417 +407583 736353 +407583 825156 +407589 735700 +407594 825903 +407597 744175 +407608 871508 +407608 1.1189e+06 +407617 733297 +407625 734536 +407631 769397 +407633 872936 +407656 730156 +407656 953719 +407664 894678 +407667 728525 +407667 879922 +407669 729967 +407672 742053 +407683 735256 +407683 741458 +407692 731156 +407692 800631 +407692 875639 +407694 740208 +407694 838228 +407700 1.24142e+06 +407703 874453 +407706 737181 +407706 742331 +407714 846156 +407719 983692 +407733 736436 +407739 742739 +407742 729433 +407744 785536 +407744 970503 +407756 777928 +407758 746011 +407761 877364 +407764 734678 +407775 929436 +407778 899664 +407786 900147 +407794 740242 +407797 978119 +407800 803386 +407808 736769 +407808 997411 +407811 732467 +407811 737250 +407811 766733 +407839 762306 +407842 746972 +407858 747806 +407861 737142 +407867 737269 +407869 730094 +407869 737372 +407872 812828 +407875 827367 +407878 740147 +407878 743886 +407883 741336 +407886 736000 +407886 736478 +407886 842039 +407889 765592 +407892 836433 +407894 740569 +407906 732022 +407906 893606 +407914 762839 +407919 740042 +407933 734156 +407933 764728 +407933 778603 +407936 736275 +407936 741506 +407942 736608 +407942 737489 +407944 801369 +407953 814736 +407958 743153 +407961 891972 +407972 759697 +407978 737000 +407978 858206 +407981 783975 +407986 736803 +407986 742394 +407989 768625 +407989 813786 +407989 816956 +407994 762128 +407994 780544 +407997 736514 +407997 756622 +407997 764281 +408000 966667 +408003 727903 +408006 737289 +408014 756106 +408017 835106 +408019 728414 +408022 1.24162e+06 +408025 737047 +408031 726150 +408031 749900 +408042 740125 +408042 763408 +408042 764653 +408042 821958 +408044 904017 +408050 819353 +408053 742042 +408067 737039 +408067 741858 +408072 736817 +408075 911128 +408083 829756 +408103 795297 +408106 778186 +408119 741247 +408122 730789 +408125 761419 +408153 730456 +408161 736978 +408164 736375 +408164 795222 +408167 964300 +408175 730006 +408178 800144 +408192 831306 +408197 737356 +408203 762011 +408203 879778 +408206 742942 +408206 985997 +408214 739881 +408217 744814 +408222 741603 +408231 726100 +408236 733992 +408236 759806 +408239 735481 +408244 726667 +408244 742850 +408250 783514 +408250 911564 +408256 732031 +408256 736986 +408258 742094 +408261 735025 +408264 741072 +408269 739761 +408272 832814 +408275 762072 +408292 853356 +408297 742406 +408297 750781 +408311 730300 +408317 758828 +408317 768361 +408325 1.15762e+06 +408336 757142 +408336 953081 +408339 740975 +408339 805406 +408342 740092 +408342 803225 +408347 736958 +408350 731317 +408356 803997 +408375 796322 +408381 857303 +408386 735656 +408389 898864 +408397 742769 +408403 740911 +408406 725819 +408408 743022 +408411 740456 +408417 962933 +408419 1.01725e+06 +408428 732933 +408431 737153 +408436 817642 +408447 737022 +408450 806147 +408453 733356 +408456 740883 +408475 776864 +408481 739981 +408481 752919 +408483 799622 +408486 768200 +408486 1.11906e+06 +408489 736453 +408500 782708 +408508 739706 +408517 737192 +408519 731544 +408528 731156 +408528 740425 +408531 741142 +408533 734119 +408539 748294 +408542 1.06965e+06 +408556 1.11892e+06 +408558 732011 +408561 731878 +408567 734700 +408567 741289 +408569 740219 +408581 740811 +408583 731000 +408583 741642 +408589 934972 +408597 999869 +408611 798956 +408614 739886 +408617 896786 +408622 736342 +408625 767947 +408625 856017 +408639 802592 +408644 758114 +408644 765528 +408644 864997 +408644 913144 +408656 735325 +408656 752069 +408658 907483 +408661 860775 +408664 730361 +408664 873636 +408667 1.24082e+06 +408672 980039 +408678 868789 +408681 734261 +408681 777469 +408681 975917 +408686 730019 +408686 752553 +408686 823183 +408689 725181 +408689 733656 +408689 742086 +408694 845842 +408700 961403 +408708 735114 +408711 747344 +408711 984678 +408714 734572 +408717 1.11891e+06 +408728 787244 +408758 745428 +408758 757328 +408758 814025 +408761 735769 +408761 740303 +408767 733250 +408772 807556 +408778 798467 +408778 882692 +408781 888611 +408789 769872 +408794 751842 +408803 879550 +408806 752150 +408806 851664 +408814 741136 +408814 826619 +408817 945617 +408822 740836 +408825 1.2166e+06 +408831 854975 +408831 895025 +408831 1.23983e+06 +408839 745625 +408842 723900 +408842 729378 +408853 739528 +408858 740439 +408858 782211 +408861 732578 +408869 735556 +408881 803383 +408883 738286 +408883 806942 +408894 1.1188e+06 +408897 741953 +408897 782286 +408897 815978 +408908 724642 +408908 774769 +408908 928150 +408917 767978 +408928 739731 +408931 745822 +408939 1.11901e+06 +408947 744333 +408953 736014 +408953 738075 +408953 838889 +408975 740164 +408983 956711 +408989 740931 +408989 747069 +408994 973992 +408997 734153 +409003 807642 +409008 733436 +409011 745147 +409022 817342 +409025 740622 +409025 744075 +409028 747094 +409033 731583 +409033 734603 +409039 741189 +409044 890344 +409050 742103 +409064 842967 +409069 970986 +409072 740756 +409083 902847 +409097 738083 +409100 759917 +409106 735625 +409114 737828 +409114 906472 +409117 859244 +409117 871553 +409125 733014 +409133 759669 +409133 777786 +409153 811061 +409167 741722 +409167 847028 +409169 726625 +409175 770481 +409175 965281 +409178 1.11399e+06 +409181 1.11871e+06 +409186 922228 +409192 892911 +409194 840569 +409222 894861 +409225 900144 +409228 810192 +409231 750969 +409231 809939 +409250 983417 +409253 730478 +409253 739633 +409253 742769 +409256 731414 +409258 746353 +409269 913994 +409275 739978 +409278 733603 +409278 737522 +409281 759150 +409286 740403 +409294 1.0016e+06 +409297 897575 +409297 949758 +409311 738992 +409319 909469 +409322 843389 +409328 724147 +409328 746597 +409328 803636 +409350 740194 +409353 879344 +409356 741867 +409367 871508 +409378 723014 +409381 738325 +409403 741322 +409406 739972 +409414 739597 +409417 777853 +409436 789711 +409444 740758 +409461 874533 +409464 730697 +409467 1.24099e+06 +409469 730300 +409478 903100 +409478 903711 +409481 797431 +409481 839611 +409486 737331 +409492 741542 +409494 725819 +409508 730844 +409519 764600 +409525 833825 +409550 741864 +409558 739317 +409561 729683 +409567 744983 +409572 729081 +409572 739639 +409583 759750 +409586 740372 +409586 759964 +409589 768994 +409597 729967 +409597 730683 +409597 731300 +409608 739906 +409622 828544 +409625 853733 +409628 741333 +409628 964408 +409633 711833 +409633 766131 +409636 813314 +409636 915578 +409644 768847 +409689 737131 +409700 816967 +409714 821100 +409731 739619 +409731 1.17735e+06 +409736 721442 +409747 848683 +409756 785253 +409761 740267 +409778 803453 +409781 817822 +409792 741169 +409806 736842 +409806 1.11887e+06 +409817 951039 +409819 931983 +409828 841994 +409836 739803 +409853 868794 +409858 747425 +409858 796133 +409867 751950 +409869 818939 +409883 1.02264e+06 +409892 741411 +409900 752167 +409900 887292 +409900 947406 +409911 725347 +409911 740331 +409919 760569 +409939 743039 +409942 921672 +409953 740125 +409956 723417 +409964 741017 +409978 722931 +409978 961619 +409981 739622 +409994 751817 +410006 857686 +410011 986072 +410017 736661 +410017 743675 +410017 793317 +410025 784636 +410028 738792 +410028 955850 +410031 879081 +410036 743419 +410036 885253 +410042 923736 +410050 737850 +410053 742911 +410061 764103 +410064 739494 +410081 911639 +410086 919625 +410094 741733 +410097 952253 +410100 818625 +410106 738442 +410106 739917 +410106 741183 +410114 958819 +410128 723133 +410128 816053 +410139 933064 +410144 738731 +410144 763814 +410161 721597 +410167 742061 +410167 758975 +410167 1.11498e+06 +410172 954019 +410186 864133 +410186 957989 +410189 737986 +410192 840472 +410208 814361 +410219 739478 +410233 740669 +410242 806150 +410242 806631 +410247 894111 +410250 807611 +410253 902797 +410256 817300 +410261 989122 +410264 819333 +410267 928056 +410275 941978 +410286 894383 +410289 840792 +410300 825158 +410308 779497 +410317 741025 +410322 1.11901e+06 +410333 820122 +410339 737633 +410339 937653 +410353 805367 +410353 1.11938e+06 +410358 719550 +410375 740411 +410381 742944 +410383 860281 +410389 738656 +410392 963681 +410414 741294 +410414 795033 +410417 939492 +410419 739186 +410442 836500 +410458 762825 +410464 813981 +410467 740233 +410469 957422 +410478 724636 +410492 880978 +410503 788225 +410514 866031 +410519 762211 +410519 830150 +410525 806081 +410525 890503 +410531 827264 +410533 735392 +410544 762336 +410547 797269 +410550 738206 +410572 741414 +410572 966444 +410581 747531 +410583 740989 +410586 943611 +410589 740222 +410603 1.1197e+06 +410606 757744 +410614 1.02074e+06 +410617 897731 +410619 762228 +410633 905558 +410639 800567 +410647 724267 +410647 828878 +410647 862158 +410681 723392 +410706 850144 +410722 858917 +410722 902253 +410758 775889 +410767 818964 +410775 847272 +410781 764147 +410783 805994 +410786 734697 +410797 878114 +410806 868919 +410811 1.11919e+06 +410814 815192 +410817 745928 +410819 961342 +410831 739206 +410844 768642 +410847 856281 +410856 738589 +410886 740139 +410892 906381 +410894 1.12064e+06 +410906 739183 +410928 1.0247e+06 +410936 898647 +410944 884250 +410958 796828 +410961 912575 +410964 739733 +410969 788889 +410972 1.04814e+06 +410983 839847 +410994 909425 +410997 806497 +411000 813467 +411003 821233 +411003 842664 +411014 814419 +411017 807647 +411019 767714 +411033 723597 +411039 826119 +411069 739206 +411072 737964 +411072 774847 +411075 837928 +411078 787714 +411083 835169 +411108 1.12025e+06 +411111 740689 +411114 893564 +411117 1.14964e+06 +411133 742458 +411142 975986 +411144 831781 +411147 741500 +411147 901644 +411158 980014 +411161 791869 +411169 809836 +411175 734083 +411181 739558 +411183 1.12083e+06 +411192 787603 +411200 878611 +411203 765303 +411208 888353 +411219 753650 +411219 830158 +411222 803331 +411231 914411 +411233 737794 +411239 741697 +411239 1.00765e+06 +411242 1.01356e+06 +411247 774300 +411253 848533 +411264 737144 +411264 774719 +411281 1.01719e+06 +411306 851289 +411325 1.11929e+06 +411333 1.04817e+06 +411339 814847 +411358 929039 +411364 740828 +411364 1.1203e+06 +411367 800094 +411367 958906 +411369 774472 +411381 845806 +411383 818639 +411408 962394 +411414 733583 +411417 878750 +411419 878611 +411428 890600 +411428 1.02978e+06 +411444 814400 +411450 788047 +411456 738242 +411458 774217 +411464 747528 +411472 916606 +411475 739897 +411506 739458 +411531 761506 +411533 745767 +411536 813581 +411539 807017 +411544 741933 +411544 960419 +411550 759786 +411564 805694 +411569 834169 +411569 1.01126e+06 +411572 854883 +411575 812422 +411578 800889 +411586 1.01002e+06 +411589 814544 +411594 814406 +411606 926311 +411611 790833 +411617 1.12026e+06 +411628 738619 +411656 808578 +411667 876628 +411669 732053 +411669 740436 +411675 900425 +411689 822181 +411703 909967 +411725 835564 +411725 923086 +411728 882767 +411728 1.11976e+06 +411733 860347 +411742 804536 +411747 918194 +411750 760750 +411769 1.12003e+06 +411772 744692 +411772 797081 +411772 896575 +411789 903158 +411797 975472 +411814 847406 +411814 911853 +411817 743825 +411819 1.04069e+06 +411822 937286 +411828 807656 +411828 836783 +411847 773142 +411856 883097 +411856 919928 +411883 809783 +411917 903800 +411919 1.11971e+06 +411922 974250 +411967 908803 +411969 759286 +411975 739650 +411992 798731 +411997 907492 +412003 857056 +412022 793278 +412031 905869 +412042 737275 +412044 928825 +412053 760053 +412053 960422 +412056 767858 +412069 830553 +412075 838992 +412083 738917 +412094 739858 +412094 1.06789e+06 +412097 746081 +412103 758969 +412108 849669 +412111 805381 +412114 966200 +412122 804969 +412125 924353 +412147 793856 +412150 867758 +412158 890667 +412189 864231 +412197 1.22274e+06 +412219 932411 +412222 730569 +412222 758633 +412225 742947 +412225 770372 +412231 1.11973e+06 +412269 802400 +412269 882647 +412272 858219 +412278 964875 +412283 851725 +412292 840342 +412306 853194 +412319 769994 +412325 956128 +412331 804936 +412339 805697 +412344 795375 +412350 810494 +412350 951372 +412358 1.03662e+06 +412367 954178 +412369 888314 +412375 808186 +412381 818419 +412381 858531 +412392 813461 +412397 816383 +412400 814408 +412400 836433 +412403 759450 +412411 767242 +412411 770014 +412411 815528 +412414 884194 +412425 826158 +412428 732011 +412450 759311 +412450 963969 +412456 899247 +412458 758817 +412464 832358 +412489 841331 +412492 787997 +412503 794597 +412506 878314 +412528 971297 +412539 836044 +412542 769208 +412542 893422 +412542 947681 +412544 823997 +412556 734353 +412558 1.22138e+06 +412561 830517 +412564 743603 +412586 959375 +412592 804722 +412597 906078 +412608 1.11769e+06 +412611 892275 +412611 961317 +412619 739386 +412619 958608 +412647 815133 +412650 882122 +412683 1.10962e+06 +412694 759167 +412706 729475 +412708 737781 +412725 820547 +412736 828417 +412753 758506 +412756 989664 +412761 728689 +412769 926794 +412781 758975 +412783 730261 +412786 725281 +412789 758786 +412794 725989 +412794 728156 +412797 767133 +412800 759125 +412800 913606 +412814 734986 +412814 1.11988e+06 +412833 701000 +412839 812242 +412842 810967 +412844 843558 +412853 723994 +412853 724481 +412861 804278 +412864 962342 +412872 845536 +412878 882856 +412878 993814 +412886 882517 +412889 726822 +412889 758058 +412889 915522 +412897 945614 +412900 739208 +412906 959178 +412917 723767 +412917 758750 +412917 934422 +412919 999222 +412922 895061 +412931 847619 +412939 822175 +412939 902919 +412942 882711 +412953 890594 +412956 861164 +412958 897903 +412964 926442 +412975 826056 +412981 1.12085e+06 +412992 916928 +413036 901928 +413042 829753 +413053 944611 +413072 1.11959e+06 +413078 881467 +413081 729286 +413083 741450 +413089 820058 +413097 742294 +413100 721458 +413100 1.22309e+06 +413111 886097 +413114 1.05591e+06 +413117 758378 +413125 811439 +413125 814403 +413128 963458 +413136 817247 +413139 816853 +413144 818358 +413164 730936 +413167 870258 +413175 868914 +413186 872003 +413189 905058 +413197 758464 +413197 816269 +413206 730894 +413206 758194 +413208 931092 +413217 802589 +413231 777486 +413242 834386 +413250 757458 +413253 721936 +413253 824933 +413256 856978 +413258 757897 +413261 896789 +413264 777511 +413269 757736 +413275 757933 +413275 891289 +413275 891997 +413275 1.10292e+06 +413278 719911 +413278 831322 +413297 906703 +413303 807256 +413306 741872 +413308 887081 +413308 940136 +413317 741214 +413317 743572 +413319 858500 +413322 877853 +413333 922044 +413336 888781 +413358 719064 +413361 759636 +413367 755189 +413392 801053 +413397 757367 +413406 876214 +413436 863097 +413439 757389 +413447 837972 +413450 720253 +413450 815286 +413456 888425 +413458 813953 +413461 730794 +413469 741267 +413486 800825 +413494 851356 +413500 720789 +413503 831219 +413506 719825 +413533 723911 +413533 757386 +413542 719669 +413547 903814 +413556 721000 +413558 822539 +413572 884211 +413578 891761 +413581 935572 +413583 897372 +413614 818131 +413625 742717 +413633 979689 +413639 919536 +413647 961575 +413650 958578 +413653 895839 +413656 815614 +413658 852389 +413661 818544 +413669 799294 +413669 850589 +413681 894647 +413683 821078 +413692 739667 +413711 734144 +413714 839419 +413722 737339 +413747 836514 +413750 746931 +413750 819083 +413772 718342 +413775 718278 +413825 892189 +413833 760250 +413844 833206 +413856 724361 +413858 932692 +413889 705139 +413897 814414 +413900 817597 +413906 809736 +413908 728600 +413914 739564 +413922 841253 +413931 815367 +413947 734544 +413947 757069 +413953 816764 +413969 966111 +413972 736175 +413972 899044 +413978 822225 +413983 818047 +413989 717475 +414000 747236 +414000 828086 +414014 923544 +414019 743247 +414019 996389 +414031 724514 +414036 950136 +414039 881117 +414047 817231 +414050 1.02344e+06 +414061 736331 +414081 929161 +414089 756628 +414092 741956 +414092 1.12035e+06 +414097 797119 +414108 834611 +414119 838644 +414139 733039 +414153 815661 +414156 819236 +414169 815275 +414169 816061 +414169 873653 +414181 864858 +414189 832214 +414197 756328 +414200 877417 +414203 787289 +414208 900150 +414211 820964 +414214 798814 +414219 823647 +414225 879858 +414225 1.00193e+06 +414228 1.22385e+06 +414233 717861 +414244 739469 +414253 816883 +414269 892133 +414278 741664 +414278 857525 +414286 904608 +414294 882286 +414297 720825 +414297 813908 +414297 848714 +414297 973681 +414306 868983 +414314 813656 +414322 714569 +414333 964978 +414344 721103 +414347 815258 +414350 815364 +414353 816575 +414392 740456 +414392 907175 +414397 817356 +414414 818644 +414414 852650 +414428 860014 +414433 840089 +414442 744003 +414444 876314 +414453 947644 +414458 744233 +414464 861481 +414472 970592 +414478 814278 +414481 901542 +414486 847481 +414486 977303 +414489 827081 +414489 956153 +414500 816636 +414506 834875 +414514 756122 +414517 820356 +414525 963508 +414528 821825 +414531 905719 +414542 705625 +414542 706042 +414542 740581 +414550 1.06806e+06 +414553 819181 +414553 882617 +414558 960261 +414564 907233 +414569 728236 +414569 1.22894e+06 +414594 934047 +414614 736714 +414619 810739 +414619 967794 +414622 814808 +414642 918381 +414644 815089 +414647 837061 +414658 855875 +414667 864831 +414683 756033 +414686 755625 +414689 796911 +414700 876364 +414700 926511 +414706 811453 +414714 756081 +414731 870611 +414731 903575 +414733 745389 +414739 815372 +414747 845525 +414756 818394 +414756 936786 +414758 751825 +414761 832958 +414767 740242 +414767 953378 +414775 952217 +414783 814639 +414803 715231 +414806 866917 +414808 755950 +414808 876378 +414814 743606 +414817 726817 +414819 817983 +414828 873328 +414831 917058 +414839 742181 +414839 903531 +414844 877033 +414847 819222 +414858 730511 +414872 1.20541e+06 +414875 821017 +414881 914258 +414883 875675 +414886 757089 +414892 814019 +414900 713133 +414914 876744 +414919 941239 +414928 757000 +414942 875217 +414947 755372 +414947 903906 +414953 794561 +414958 878486 +414961 853767 +414969 713678 +414969 725575 +414978 815375 +414989 729011 +414994 816956 +415003 858281 +415006 874614 +415006 946433 +415008 837183 +415008 904442 +415008 934908 +415028 724506 +415033 740108 +415033 943183 +415036 844142 +415039 877131 +415047 739700 +415053 820283 +415061 876356 +415061 881144 +415064 875917 +415067 905150 +415075 717167 +415089 907658 +415094 905786 +415103 1.12015e+06 +415119 829378 +415119 879656 +415122 782353 +415122 904150 +415133 876742 +415139 920761 +415161 954500 +415175 814036 +415183 942261 +415189 838039 +415192 814581 +415200 800486 +415200 814889 +415200 815564 +415200 882017 +415214 843072 +415217 739269 +415222 813381 +415222 931017 +415231 815186 +415236 905775 +415242 720764 +415242 764011 +415244 862733 +415244 905156 +415250 880817 +415256 741533 +415258 853667 +415261 878892 +415264 706736 +415264 875386 +415272 850656 +415275 742372 +415283 874236 +415286 1.09466e+06 +415300 886797 +415306 739781 +415308 755458 +415317 940094 +415319 939539 +415322 872550 +415331 815792 +415342 757364 +415342 864272 +415347 740153 +415350 740706 +415350 808683 +415356 738994 +415356 878475 +415369 885833 +415381 728075 +415386 759469 +415392 855397 +415397 740986 +415414 869006 +415425 816264 +415425 876022 +415428 876847 +415439 738686 +415444 732094 +415444 961247 +415472 891175 +415475 865822 +415486 985308 +415486 987306 +415492 841417 +415511 1.12109e+06 +415514 706153 +415519 814786 +415528 815103 +415542 915347 +415547 880986 +415558 904092 +415564 847689 +415564 958875 +415569 836272 +415572 876656 +415575 894608 +415581 730519 +415583 872744 +415600 740036 +415619 736031 +415622 726511 +415644 875125 +415647 875389 +415661 834247 +415681 876081 +415681 877203 +415689 1.11837e+06 +415700 912636 +415717 876944 +415728 726411 +415733 877844 +415736 755022 +415736 840053 +415736 876464 +415750 872389 +415756 723325 +415758 725031 +415758 871761 +415767 744875 +415767 752592 +415769 734089 +415772 937111 +415783 705592 +415783 928447 +415803 754086 +415817 903433 +415833 875000 +415839 738092 +415839 935197 +415847 907719 +415853 878431 +415858 925272 +415861 844350 +415869 712839 +415875 1.09202e+06 +415878 834933 +415886 838911 +415889 910167 +415894 880578 +415894 889219 +415894 941958 +415908 948753 +415917 950597 +415931 815269 +415933 730858 +415933 873464 +415964 739114 +415978 937081 +415983 814186 +415994 932350 +415997 909106 +416006 936089 +416008 876069 +416028 877439 +416031 937239 +416033 803056 +416033 989258 +416056 739719 +416056 741844 +416061 738733 +416064 903353 +416067 719814 +416067 805725 +416078 1.22839e+06 +416097 835644 +416100 876467 +416106 867225 +416106 965478 +416111 876347 +416117 938850 +416125 887994 +416136 901728 +416142 760469 +416142 811492 +416144 940172 +416147 1.12126e+06 +416156 870742 +416156 875294 +416186 813842 +416217 837117 +416228 738711 +416239 813072 +416253 877175 +416258 712139 +416258 871903 +416261 757808 +416267 937119 +416269 796739 +416269 882039 +416283 703875 +416289 813617 +416303 878539 +416303 897861 +416311 780917 +416314 724603 +416317 876608 +416331 754708 +416331 814689 +416336 886811 +416342 1.11851e+06 +416347 849994 +416353 727692 +416361 709347 +416378 859217 +416386 1.11933e+06 +416386 1.12079e+06 +416389 875567 +416389 876072 +416392 874547 +416397 732089 +416397 814067 +416406 993708 +416411 884472 +416414 801517 +416417 854167 +416431 957886 +416436 834869 +416439 877036 +416442 934644 +416458 886217 +416475 880894 +416500 702417 +416514 754669 +416525 797272 +416528 702833 +416531 953253 +416539 814506 +416556 738753 +416556 746897 +416561 804242 +416564 768536 +416564 900792 +416572 876800 +416581 905844 +416583 701292 +416583 708167 +416603 808608 +416611 727800 +416611 877525 +416611 915300 +416611 920089 +416619 861586 +416628 788114 +416628 876606 +416628 885369 +416639 835553 +416642 836433 +416644 701733 +416650 860758 +416653 1.03099e+06 +416658 814433 +416658 1.11181e+06 +416661 813397 +416667 701853 +416667 966656 +416672 878303 +416681 762622 +416681 877964 +416686 933575 +416689 877386 +416714 899361 +416714 913464 +416717 729497 +416731 936975 +416731 1.07979e+06 +416733 843269 +416736 880017 +416747 903403 +416750 712711 +416750 733522 +416764 719156 +416764 915803 +416772 945031 +416778 932450 +416781 730114 +416794 721708 +416794 770642 +416797 874944 +416800 845531 +416803 903189 +416811 699917 +416817 1.11822e+06 +416819 699603 +416819 859767 +416819 869603 +416828 883514 +416833 862500 +416842 877003 +416844 939608 +416861 700764 +416883 937908 +416889 889811 +416889 983631 +416897 877972 +416908 980033 +416917 943628 +416917 974842 +416919 713792 +416925 869775 +416947 740517 +416967 878169 +416972 862450 +416975 905825 +416978 727242 +416983 868592 +416986 880683 +416994 840703 +416997 930478 +417000 703000 +417000 707633 +417003 739214 +417003 865094 +417006 934619 +417014 711556 +417014 877792 +417019 702500 +417039 790358 +417050 813606 +417053 972378 +417061 715236 +417064 1.11816e+06 +417075 868950 +417092 746289 +417103 865342 +417106 722086 +417106 745747 +417117 839097 +417119 1.12165e+06 +417122 726086 +417128 718814 +417142 726531 +417142 893286 +417161 862525 +417169 743961 +417175 899258 +417181 929072 +417181 949322 +417183 738531 +417189 801478 +417189 837131 +417194 842181 +417206 877017 +417208 739606 +417208 877542 +417211 968825 +417214 858175 +417217 1.11821e+06 +417233 917903 +417244 732367 +417244 812458 +417250 970025 +417256 786386 +417256 878250 +417267 971219 +417278 844189 +417283 1.22527e+06 +417297 936056 +417306 883458 +417308 849328 +417317 922978 +417331 776422 +417336 924453 +417344 877314 +417356 1.11834e+06 +417356 1.22633e+06 +417383 957025 +417406 713092 +417408 878603 +417411 705994 +417411 735769 +417411 1.12161e+06 +417417 706583 +417431 927222 +417439 743719 +417444 878378 +417453 706186 +417456 868508 +417472 731892 +417475 740872 +417486 773008 +417489 879183 +417492 915978 +417500 878042 +417500 977750 +417550 1.03324e+06 +417561 1.24201e+06 +417578 803681 +417589 704944 +417600 700833 +417603 811411 +417606 883200 +417611 938242 +417619 727425 +417619 1.08966e+06 +417625 707222 +417628 878000 +417636 726856 +417653 721986 +417658 836281 +417675 764431 +417681 888769 +417689 878578 +417689 886408 +417694 711292 +417694 1.11804e+06 +417697 911278 +417700 705289 +417703 879022 +417711 730603 +417711 810500 +417714 937128 +417717 887736 +417747 742986 +417747 780208 +417750 1.07112e+06 +417756 954172 +417758 725219 +417783 962208 +417794 1.10538e+06 +417797 714378 +417797 896889 +417800 790933 +417808 749342 +417817 991328 +417822 726125 +417828 878781 +417850 736944 +417858 881472 +417881 902561 +417886 896961 +417894 902192 +417897 699903 +417897 707608 +417911 1.07238e+06 +417925 1.10537e+06 +417939 867439 +417956 860808 +417958 879756 +417967 718978 +417975 879547 +417981 856433 +417981 864992 +417981 920706 +417986 866106 +417989 1.11818e+06 +417992 854192 +418006 731217 +418006 803692 +418008 879369 +418011 747469 +418011 880747 +418019 810492 +418025 718864 +418036 800567 +418061 883272 +418069 834425 +418072 770778 +418072 914939 +418083 722500 +418086 877933 +418089 880111 +418094 1.03503e+06 +418097 728311 +418097 879006 +418097 899650 +418108 782800 +418111 784450 +418128 729206 +418133 878181 +418136 713706 +418178 881733 +418214 877828 +418233 905381 +418239 714133 +418239 878517 +418242 906478 +418244 728942 +418258 1.0366e+06 +418261 931514 +418272 863611 +418281 866925 +418283 974547 +418289 740689 +418297 862542 +418317 908381 +418325 838625 +418328 879289 +418347 878617 +418350 878228 +418358 964667 +418383 1.11832e+06 +418386 941069 +418389 894794 +418394 847481 +418411 856686 +418417 893003 +418417 967083 +418428 878231 +418439 791453 +418444 901886 +418456 877539 +418456 916928 +418458 709500 +418472 853186 +418475 1.03661e+06 +418492 735572 +418500 876500 +418500 879644 +418500 883125 +418506 877936 +418506 878819 +418519 945581 +418525 726442 +418544 956003 +418550 843539 +418569 939217 +418575 909281 +418594 809542 +418617 881608 +418628 1.1199e+06 +418639 711250 +418639 878533 +418650 699917 +418650 807900 +418661 881069 +418661 892211 +418667 1.03667e+06 +418672 901594 +418700 1.06561e+06 +418708 786617 +418708 946772 +418711 715525 +418722 851947 +418725 757275 +418728 807731 +418731 728586 +418742 791525 +418742 801319 +418758 728017 +418767 938231 +418775 880669 +418778 879028 +418778 936783 +418786 713831 +418789 927892 +418792 878431 +418800 880078 +418814 878831 +418822 729775 +418847 882039 +418850 877844 +418875 883053 +418889 837789 +418889 879033 +418889 910564 +418897 879889 +418897 952319 +418906 713928 +418908 806764 +418919 933994 +418922 884722 +418931 911506 +418956 1.06204e+06 +418969 922781 +418975 840372 +418978 878139 +418983 935289 +418994 798456 +418994 879403 +419000 710903 +419003 748286 +419006 878567 +419011 837150 +419028 919214 +419039 777622 +419044 912544 +419050 803439 +419053 739767 +419056 878836 +419058 806906 +419067 713911 +419075 885992 +419086 727606 +419086 771333 +419092 950647 +419094 920842 +419103 880717 +419117 860100 +419125 881347 +419150 719094 +419164 833978 +419172 878956 +419172 1.04039e+06 +419183 834306 +419192 775392 +419194 917808 +419200 846306 +419200 886886 +419203 796406 +419203 1.12049e+06 +419211 730606 +419211 878092 +419211 913853 +419219 914167 +419228 1.11813e+06 +419233 855283 +419236 710528 +419239 890686 +419244 740617 +419258 878358 +419267 739131 +419269 739978 +419289 954936 +419292 726278 +419294 887503 +419297 888608 +419300 968114 +419308 889644 +419311 833269 +419317 879889 +419353 878656 +419375 964769 +419386 761361 +419389 719600 +419403 850006 +419403 1.03808e+06 +419414 931031 +419439 856325 +419442 848839 +419444 712861 +419464 863389 +419475 805544 +419503 972236 +419508 882422 +419511 890644 +419536 735111 +419539 727892 +419539 752808 +419539 860647 +419542 723028 +419550 879400 +419556 717028 +419558 786442 +419558 878708 +419561 1.21476e+06 +419572 765183 +419572 836597 +419575 864856 +419575 880808 +419578 783856 +419583 706678 +419583 853250 +419589 900992 +419611 757436 +419633 878272 +419633 879789 +419633 897744 +419633 1.03926e+06 +419636 781911 +419639 908175 +419656 716750 +419667 711875 +419667 925767 +419672 878075 +419675 1.21917e+06 +419708 845258 +419717 757436 +419750 880072 +419758 1.11856e+06 +419761 725922 +419767 714592 +419789 765158 +419797 736564 +419817 726511 +419825 793389 +419833 980833 +419836 909561 +419842 846619 +419842 861086 +419847 880797 +419850 862997 +419853 724467 +419856 718992 +419856 739886 +419861 773111 +419861 895792 +419864 843472 +419867 838311 +419872 725453 +419872 969139 +419889 886867 +419903 709756 +419942 882922 +419944 707250 +419950 881856 +419956 919675 +419956 925767 +419969 918619 +419972 741053 +419975 765375 +419981 911414 +419983 921972 +419994 881450 +419994 975981 +420003 803183 +420022 906069 +420028 715153 +420036 798111 +420039 839450 +420039 879703 +420044 877300 +420061 841900 +420064 854500 +420069 927753 +420075 962494 +420083 916439 +420086 920908 +420111 878406 +420128 965725 +420128 1.21408e+06 +420133 898906 +420144 865194 +420147 893322 +420153 943772 +420161 767272 +420167 740767 +420167 931633 +420178 933150 +420178 953550 +420181 740153 +420189 878028 +420225 945450 +420228 934522 +420231 706833 +420236 719503 +420253 1.21599e+06 +420256 881783 +420258 858156 +420267 960969 +420272 733297 +420317 942406 +420333 712194 +420333 877333 +420333 878833 +420333 880833 +420342 915975 +420347 936197 +420358 916819 +420372 882811 +420386 783411 +420392 940275 +420406 877825 +420411 876900 +420417 706728 +420428 880797 +420428 1.01042e+06 +420431 733456 +420436 739478 +420439 847575 +420456 802700 +420472 978336 +420494 929078 +420500 718806 +420500 725833 +420503 894311 +420503 904139 +420528 1.24283e+06 +420533 1.24266e+06 +420544 791583 +420544 1.04952e+06 +420569 947286 +420583 701792 +420583 739097 +420592 833908 +420592 910072 +420594 914425 +420597 938800 +420600 754281 +420639 832611 +420650 864950 +420650 1.04181e+06 +420658 948667 +420661 917953 +420664 879372 +420667 851361 +420683 955914 +420689 906656 +420694 761550 +420700 843306 +420708 832467 +420711 901739 +420711 916667 +420719 839717 +420722 717139 +420722 877228 +420750 708806 +420750 720339 +420750 794833 +420758 756408 +420775 739533 +420775 784300 +420781 768456 +420825 1.10954e+06 +420833 710189 +420833 713972 +420842 880131 +420853 836825 +420858 877175 +420864 779225 +420867 714750 +420869 864558 +420886 852347 +420897 768081 +420900 784944 +420914 881217 +420917 707061 +420925 888511 +420931 707931 +420933 849858 +420936 926756 +420942 883025 +420944 901567 +420944 918692 +420950 831897 +420950 899781 +420953 879375 +420964 1.11876e+06 +420969 792356 +420972 886928 +420978 885303 +420983 760497 +420986 759183 +420997 877808 +421014 725903 +421022 898333 +421028 772339 +421033 762625 +421042 723194 +421042 793333 +421058 842483 +421069 726208 +421069 936494 +421072 891792 +421081 859744 +421081 877358 +421083 720792 +421083 912850 +421094 792833 +421103 880342 +421111 716667 +421125 929883 +421128 760214 +421142 856378 +421142 967069 +421156 759592 +421161 721139 +421167 864542 +421181 880961 +421186 791986 +421200 855328 +421211 882578 +421217 770375 +421236 711792 +421236 724319 +421250 727500 +421256 894036 +421261 895792 +421269 892556 +421275 878289 +421275 961492 +421286 980294 +421292 800853 +421297 768211 +421306 715417 +421311 864072 +421333 758967 +421350 877581 +421372 769372 +421389 832417 +421392 879289 +421394 831783 +421397 715167 +421403 800153 +421417 712500 +421428 770550 +421458 707403 +421458 848089 +421461 771119 +421483 964881 +421486 726083 +421486 746486 +421503 840378 +421514 879597 +421519 944742 +421539 881361 +421547 897397 +421550 710092 +421564 777958 +421578 787153 +421583 723292 +421592 795956 +421606 842461 +421608 880814 +421611 932969 +421619 770944 +421619 789756 +421625 710417 +421625 834031 +421631 1.23647e+06 +421653 954367 +421656 882942 +421658 957928 +421664 935017 +421667 837817 +421669 768208 +421672 858469 +421675 878969 +421681 884281 +421686 920233 +421694 751297 +421706 880478 +421711 878444 +421717 923061 +421728 789481 +421778 846431 +421783 879978 +421811 723611 +421817 878003 +421817 883303 +421817 949767 +421861 863083 +421867 862606 +421872 935956 +421875 713069 +421878 927150 +421889 1.20345e+06 +421908 917850 +421917 1.1225e+06 +421933 843911 +421933 878664 +421936 924653 +421944 712000 +421944 719064 +421947 1.22708e+06 +421956 741342 +421958 707264 +421958 733625 +421969 880933 +421986 765528 +421992 975264 +421997 878092 +422008 882144 +422011 855800 +422039 915239 +422042 726167 +422047 834853 +422050 845528 +422064 781378 +422067 861667 +422069 1.21736e+06 +422075 880556 +422078 881406 +422094 857844 +422097 764936 +422119 882381 +422122 862719 +422125 721917 +422125 723458 +422125 881525 +422136 742192 +422139 721028 +422139 831939 +422156 798344 +422169 880494 +422172 738650 +422175 782756 +422178 858911 +422189 707861 +422192 860514 +422194 879794 +422208 709403 +422208 863694 +422222 710000 +422222 833967 +422231 780347 +422236 761836 +422242 918742 +422247 928744 +422250 1.21781e+06 +422272 1.114e+06 +422278 720472 +422281 755269 +422286 715231 +422306 970175 +422328 763428 +422328 962278 +422331 843272 +422339 738828 +422347 889489 +422353 721417 +422358 964722 +422383 853350 +422383 911869 +422408 832697 +422411 836131 +422411 883161 +422417 708903 +422417 711667 +422425 882019 +422431 847531 +422433 1.13881e+06 +422439 719928 +422444 831458 +422456 930644 +422458 712833 +422458 844014 +422458 1.22788e+06 +422464 882428 +422483 736536 +422486 886083 +422500 710667 +422506 831786 +422508 842131 +422525 788058 +422528 710028 +422528 737914 +422539 795047 +422542 733667 +422542 777908 +422564 725167 +422564 902794 +422575 832111 +422578 983461 +422583 845997 +422586 904228 +422589 881392 +422597 722403 +422603 738100 +422614 940683 +422625 718028 +422631 880039 +422639 792589 +422639 888442 +422653 898258 +422661 892411 +422667 720833 +422669 797108 +422675 947336 +422689 715244 +422692 968647 +422694 716167 +422697 1.04741e+06 +422703 776061 +422703 945483 +422711 890939 +422711 950928 +422714 939269 +422722 849633 +422733 831344 +422750 786731 +422756 1.22817e+06 +422761 881919 +422769 724014 +422781 749164 +422786 967264 +422789 878342 +422792 714167 +422806 942906 +422808 915303 +422814 833864 +422825 831753 +422831 879531 +422833 712333 +422833 837458 +422861 737392 +422867 917806 +422875 733208 +422886 772186 +422886 854181 +422900 882247 +422917 855872 +422933 754797 +422942 833100 +422944 791000 +422964 712931 +422967 896211 +422986 910147 +422989 739989 +423019 709083 +423031 855503 +423042 732486 +423056 933000 +423067 780161 +423083 852192 +423122 952503 +423125 722083 +423125 861131 +423136 1.22966e+06 +423139 893592 +423147 753919 +423147 884486 +423150 921919 +423153 934342 +423156 955983 +423178 902214 +423181 840206 +423189 851425 +423189 882581 +423194 716417 +423200 890581 +423208 713647 +423211 851797 +423217 964892 +423217 1.03072e+06 +423222 777386 +423222 795783 +423222 831764 +423222 1.11297e+06 +423236 925992 +423242 834003 +423250 726417 +423253 753128 +423256 833311 +423256 878411 +423267 1.22874e+06 +423278 776614 +423281 855697 +423286 881989 +423289 759681 +423292 757703 +423292 788683 +423314 830458 +423364 853522 +423367 767889 +423369 712097 +423369 773181 +423369 784583 +423369 832733 +423383 838886 +423403 725056 +423428 879981 +423428 890519 +423439 912483 +423442 793097 +423444 880417 +423447 882739 +423450 954714 +423458 715528 +423461 776617 +423472 768456 +423483 878842 +423497 900067 +423497 977917 +423508 738033 +423533 880933 +423564 732853 +423569 880767 +423583 710603 +423600 940519 +423600 975964 +423608 858794 +423608 930994 +423617 927683 +423636 878447 +423642 735953 +423642 790558 +423683 833528 +423683 882925 +423694 719486 +423703 879019 +423708 711833 +423708 725986 +423717 880900 +423736 725208 +423750 709833 +423758 829375 +423758 896331 +423764 712361 +423783 846986 +423786 973567 +423794 898222 +423800 881042 +423806 768736 +423811 881397 +423828 859569 +423861 829119 +423875 711000 +423883 958664 +423886 794414 +423886 895261 +423917 710333 +423917 715667 +423928 830497 +423933 883403 +423944 776969 +423944 917608 +423953 736983 +423953 946336 +423958 711792 +423967 881836 +423972 751739 +423986 880525 +423997 887403 +424031 862736 +424039 963583 +424067 924553 +424072 746147 +424075 1.24421e+06 +424078 772239 +424081 881317 +424083 710125 +424083 710542 +424086 882064 +424092 828919 +424094 774217 +424103 725314 +424106 880261 +424133 736736 +424133 890092 +424153 711569 +424156 964181 +424161 922147 +424167 716833 +424167 904289 +424169 880739 +424183 711067 +424222 886136 +424222 949894 +424228 721056 +424233 781575 +424247 941500 +424250 710667 +424264 709194 +424286 879239 +424286 1.12124e+06 +424292 764953 +424294 970894 +424297 913308 +424311 834833 +424331 829242 +424333 714500 +424361 1.23171e+06 +424364 893319 +424367 828769 +424375 1.22858e+06 +424392 1.23327e+06 +424394 837439 +424400 793319 +424400 856489 +424406 764969 +424408 736614 +424414 849242 +424417 760325 +424428 910061 +424433 850181 +424436 829069 +424444 716875 +424450 909319 +424461 878328 +424472 712250 +424500 732458 +424511 841806 +424514 844325 +424522 711375 +424528 750642 +424567 839464 +424578 986472 +424583 710667 +424583 713958 +424592 929383 +424594 764869 +424606 831347 +424606 836517 +424606 856964 +424614 777772 +424614 951517 +424625 831042 +424631 789361 +424642 926281 +424644 833764 +424647 710106 +424661 781153 +424667 709500 +424667 979058 +424669 922564 +424683 738167 +424683 791772 +424683 829556 +424683 896439 +424686 918892 +424689 922194 +424692 922808 +424694 938158 +424706 939933 +424708 709181 +424711 831422 +424717 884322 +424728 1.22802e+06 +424733 832219 +424733 917342 +424739 964133 +424750 957853 +424756 920636 +424772 726083 +424772 880956 +424775 830278 +424789 878236 +424792 711528 +424794 793342 +424800 711000 +424806 831669 +424806 834756 +424817 912722 +424842 914553 +424844 911228 +424850 830278 +424858 831053 +424889 960722 +424892 784811 +424892 955447 +424894 831447 +424908 762975 +424922 906428 +424928 923428 +424931 890367 +424947 1.07827e+06 +424964 832228 +424964 899894 +424969 828889 +424972 829372 +424975 941678 +424983 883297 +424994 975417 +425000 708583 +425000 952928 +425000 964000 +425006 906644 +425022 775075 +425025 887289 +425031 831836 +425047 711961 +425061 972033 +425064 710733 +425083 890317 +425092 846558 +425144 907514 +425158 736106 +425158 832733 +425183 737517 +425194 708972 +425203 933758 +425222 833061 +425225 932511 +425233 769769 +425247 835364 +425250 717603 +425256 710958 +425272 964828 +425278 709292 +425278 924453 +425292 712286 +425292 858553 +425294 837803 +425297 1.14305e+06 +425300 784731 +425311 755239 +425311 882481 +425311 885994 +425314 989778 +425328 904344 +425333 831464 +425339 784233 +425339 1.14364e+06 +425347 881436 +425358 1.13792e+06 +425364 997003 +425378 834811 +425381 883508 +425383 1.10114e+06 +425389 710486 +425392 829494 +425422 766664 +425436 716500 +425442 791669 +425458 714750 +425464 711742 +425467 832114 +425486 752456 +425489 748214 +425500 998622 +425511 946836 +425536 882944 +425536 1.10109e+06 +425542 930531 +425567 834739 +425578 888650 +425583 708806 +425586 1.13763e+06 +425608 776964 +425611 715903 +425631 1.1446e+06 +425636 848358 +425669 926219 +425678 775900 +425697 903806 +425700 921603 +425703 1.14607e+06 +425733 902308 +425750 709306 +425750 719986 +425761 1.1173e+06 +425775 881050 +425775 927867 +425778 1.21865e+06 +425781 885408 +425794 779428 +425803 830303 +425814 948458 +425819 724931 +425822 762094 +425833 718028 +425836 832456 +425842 886325 +425842 928842 +425847 878211 +425858 995375 +425875 726000 +425878 763672 +425883 959672 +425903 723103 +425906 749456 +425936 835994 +425939 861017 +425944 717250 +425953 789414 +425958 722272 +425961 760936 +425969 980333 +425972 828781 +425986 916419 +425989 976453 +425992 991422 +425992 1.14759e+06 +426011 761808 +426011 896383 +426017 887075 +426025 965589 +426028 850931 +426042 725569 +426042 727397 +426056 904297 +426056 950025 +426072 839294 +426081 833439 +426081 1.13782e+06 +426083 720764 +426103 719394 +426111 715750 +426114 833286 +426122 884822 +426144 941458 +426153 770925 +426153 774028 +426158 706625 +426169 767253 +426183 825311 +426183 893761 +426192 1.13676e+06 +426208 919000 +426214 951731 +426219 738331 +426225 972642 +426236 857603 +426242 731181 +426242 753319 +426242 790672 +426261 830336 +426272 905919 +426275 892531 +426278 962914 +426289 780547 +426289 850242 +426292 847389 +426319 707833 +426331 886436 +426333 713167 +426339 735542 +426342 745644 +426369 761792 +426375 709500 +426383 790281 +426389 832911 +426392 920469 +426406 845153 +426411 952094 +426425 737433 +426433 736092 +426444 914011 +426456 846489 +426461 924628 +426506 1.12192e+06 +426525 737567 +426539 739292 +426544 1.11604e+06 +426550 862019 +426567 935008 +426583 711375 +426606 780858 +426606 840731 +426608 770542 +426611 709972 +426642 939042 +426653 715736 +426658 715889 +426658 743100 +426667 717056 +426669 841742 +426708 892089 +426714 923372 +426728 885444 +426733 919133 +426736 952903 +426739 856447 +426764 768233 +426778 744858 +426781 754989 +426781 882761 +426792 708417 +426806 831339 +426811 827369 +426822 768689 +426828 890186 +426831 901175 +426831 1.03412e+06 +426833 966833 +426836 915339 +426839 1.02689e+06 +426856 787769 +426861 720444 +426881 880514 +426889 842831 +426894 907119 +426903 735650 +426911 738692 +426919 737250 +426950 738075 +426958 724533 +426981 878944 +427006 740342 +427006 749247 +427008 731092 +427011 898669 +427022 834028 +427022 922253 +427047 737553 +427069 711636 +427078 894369 +427103 925828 +427119 732042 +427125 764219 +427128 954364 +427131 854619 +427144 909906 +427156 780058 +427167 708792 +427178 738339 +427183 1.02464e+06 +427194 824922 +427197 962483 +427200 942000 +427203 1.11885e+06 +427208 942150 +427222 844275 +427242 1.14518e+06 +427250 1.10931e+06 +427256 778744 +427258 924753 +427261 877828 +427283 736922 +427289 974953 +427294 944475 +427300 737017 +427317 937328 +427325 845556 +427342 904783 +427356 946689 +427358 834189 +427361 903342 +427364 1.23422e+06 +427369 844839 +427400 781331 +427414 882242 +427419 932022 +427442 736919 +427456 895947 +427458 1.24496e+06 +427469 737594 +427469 844011 +427494 955514 +427519 929753 +427528 927950 +427533 847464 +427539 767028 +427583 758847 +427597 1.05382e+06 +427600 772267 +427622 848964 +427622 849925 +427625 1.04452e+06 +427631 882142 +427647 714403 +427653 714681 +427672 718128 +427675 787442 +427678 786136 +427703 832642 +427733 723836 +427739 918822 +427742 737006 +427756 889439 +427758 1.14703e+06 +427761 710778 +427794 969289 +427797 738461 +427803 892992 +427819 949483 +427844 832397 +427844 877661 +427847 851383 +427847 926675 +427853 884050 +427858 910994 +427861 724869 +427861 1.12854e+06 +427875 861089 +427892 855167 +427914 838464 +427919 836278 +427925 736817 +427942 961653 +427956 747536 +427958 746175 +427958 778172 +427964 1.12253e+06 +427972 788236 +427978 837050 +427981 761097 +428028 830131 +428047 1.02203e+06 +428081 922581 +428092 827558 +428103 898619 +428122 1.14898e+06 +428125 708778 +428125 860186 +428128 945267 +428139 720236 +428142 739400 +428144 837825 +428144 896350 +428147 959731 +428208 824861 +428214 776689 +428228 839444 +428239 721817 +428247 832647 +428256 788236 +428258 958072 +428264 739647 +428264 780900 +428264 842194 +428269 755450 +428289 965592 +428294 1.03e+06 +428297 786364 +428331 1.0873e+06 +428336 887322 +428353 716494 +428353 890675 +428386 841783 +428397 766936 +428406 1.06365e+06 +428408 856636 +428417 708611 +428419 918019 +428433 717356 +428442 828844 +428461 936139 +428467 948517 +428475 907106 +428475 920914 +428508 725583 +428522 834431 +428533 749858 +428536 893703 +428539 914053 +428542 978969 +428558 726036 +428583 709306 +428597 895381 +428600 1.06268e+06 +428614 1.05872e+06 +428642 782806 +428667 883333 +428667 1.06312e+06 +428667 1.0986e+06 +428686 773358 +428686 912358 +428689 769781 +428692 849031 +428694 856447 +428706 719522 +428708 858650 +428711 973969 +428714 1.12445e+06 +428728 1.00551e+06 +428739 987011 +428744 740469 +428778 885861 +428781 731972 +428786 840639 +428792 752514 +428794 884742 +428806 713278 +428814 882067 +428836 1.24072e+06 +428853 751936 +428853 909233 +428858 878631 +428864 788786 +428903 843514 +428906 785781 +428933 787942 +428933 932150 +428933 951508 +428944 739283 +428950 774350 +428958 928022 +428964 827689 +428986 756406 +429000 735858 +429000 784922 +429000 904308 +429006 786706 +429011 733519 +429022 774200 +429028 736878 +429033 735631 +429039 786925 +429042 722083 +429047 768631 +429047 776117 +429056 745722 +429058 881389 +429061 1.08583e+06 +429072 857919 +429086 765406 +429097 857631 +429106 767969 +429106 878606 +429108 745744 +429114 988489 +429119 777458 +429119 839847 +429125 824869 +429133 857053 +429169 835064 +429169 892178 +429189 767267 +429206 830450 +429208 1.12465e+06 +429261 893844 +429275 836300 +429275 1.2328e+06 +429289 888369 +429294 847986 +429294 852131 +429300 758531 +429303 732431 +429314 746231 +429317 765664 +429336 722786 +429336 853419 +429344 884053 +429347 746139 +429361 1.14405e+06 +429375 708394 +429375 880486 +429378 937931 +429386 737903 +429386 741886 +429386 919500 +429389 1.14712e+06 +429392 754614 +429392 840294 +429406 879958 +429411 856100 +429414 832892 +429442 1.12838e+06 +429461 831239 +429469 764294 +429478 743708 +429511 1.23363e+06 +429522 775906 +429528 925361 +429544 743769 +429550 1.153e+06 +429553 742856 +429558 772211 +429569 944408 +429572 838306 +429575 770578 +429575 916306 +429583 742333 +429597 878614 +429600 784058 +429603 901300 +429614 880125 +429617 771403 +429628 918081 +429639 787381 +429644 825231 +429647 786778 +429653 921994 +429658 788703 +429697 772306 +429708 824250 +429717 904331 +429731 778531 +429742 954972 +429744 741514 +429747 963181 +429764 881083 +429783 779844 +429792 956878 +429814 709483 +429819 841178 +429819 849469 +429825 774092 +429828 763408 +429836 906553 +429853 931917 +429856 839283 +429872 850711 +429875 960103 +429908 895331 +429933 978625 +429956 714553 +429958 849425 +429958 964850 +429978 841767 +429981 781878 +430008 738494 +430014 857681 +430017 847397 +430019 759772 +430022 899903 +430036 890164 +430036 916522 +430044 883767 +430050 980594 +430056 888072 +430058 843717 +430067 743681 +430069 936028 +430072 960581 +430078 842847 +430086 897383 +430106 786378 +430114 750044 +430117 882314 +430125 829281 +430125 836875 +430125 879725 +430125 892897 +430142 884725 +430150 750358 +430156 898953 +430167 880069 +430183 911825 +430203 788806 +430203 1.23292e+06 +430208 784956 +430214 966306 +430247 830778 +430250 1.08379e+06 +430256 749864 +430256 1.02556e+06 +430258 777456 +430281 733817 +430297 760047 +430333 710747 +430344 764483 +430344 766242 +430347 835181 +430361 711839 +430386 788644 +430386 856700 +430389 750708 +430389 879064 +430392 763044 +430431 880789 +430433 748600 +430444 911781 +430450 758669 +430467 770956 +430467 903797 +430472 762389 +430475 762208 +430481 761478 +430483 753789 +430486 765631 +430494 880075 +430514 833189 +430517 911411 +430517 913892 +430519 890756 +430522 929483 +430528 743442 +430581 762078 +430586 741969 +430592 923175 +430606 881064 +430608 884036 +430619 944267 +430622 893339 +430631 838511 +430631 862283 +430639 772336 +430639 859347 +430642 769906 +430650 1.24138e+06 +430653 760789 +430653 764733 +430656 952836 +430658 782700 +430664 926722 +430692 772992 +430700 942328 +430706 921500 +430717 707631 +430719 959042 +430731 894011 +430733 752881 +430736 755986 +430747 731544 +430753 757072 +430761 760011 +430761 887742 +430761 891994 +430769 861969 +430772 781872 +430775 894456 +430794 755397 +430794 757511 +430797 961753 +430797 982928 +430806 882611 +430806 967733 +430814 889117 +430825 756339 +430831 737850 +430831 971603 +430842 768697 +430844 862203 +430847 915681 +430853 779425 +430853 908831 +430858 706975 +430869 956269 +430881 707367 +430883 939900 +430886 843869 +430892 878875 +430906 734992 +430906 775153 +430922 753800 +430925 756517 +430944 790569 +430967 714656 +430972 895042 +430978 761456 +430978 852289 +430978 884022 +430978 938017 +430986 774422 +431000 735822 +431008 747733 +431008 752331 +431025 936017 +431044 742653 +431044 884592 +431047 846919 +431050 883419 +431053 752917 +431058 880694 +431064 762181 +431081 707781 +431086 774878 +431117 883922 +431117 884992 +431128 752714 +431128 946828 +431133 879000 +431144 896556 +431153 761461 +431167 839700 +431183 893794 +431186 836950 +431192 1.24407e+06 +431194 969611 +431200 855600 +431219 752919 +431225 1.23411e+06 +431264 934775 +431292 948989 +431306 714536 +431319 861547 +431331 1.1569e+06 +431333 724444 +431339 709269 +431339 882219 +431344 907053 +431347 761303 +431372 897467 +431378 725103 +431381 755711 +431414 951442 +431428 930042 +431433 771894 +431461 881661 +431464 917644 +431467 883067 +431497 977172 +431500 786969 +431536 932008 +431547 776158 +431564 985411 +431567 834106 +431572 753331 +431575 879017 +431586 763331 +431600 953272 +431606 1.23367e+06 +431608 857100 +431633 879644 +431636 730728 +431661 835244 +431683 890667 +431689 862639 +431703 970811 +431706 786906 +431722 733281 +431725 790361 +431725 1.01732e+06 +431742 879242 +431753 900678 +431767 838928 +431767 897947 +431769 730575 +431769 848464 +431772 1.24186e+06 +431775 837342 +431775 852528 +431789 881172 +431797 718228 +431800 954767 +431806 879006 +431811 958558 +431817 956553 +431819 903244 +431825 992917 +431836 892136 +431836 918639 +431839 889883 +431847 841150 +431850 904431 +431864 778042 +431867 844744 +431886 961333 +431906 1.12344e+06 +431911 960056 +431919 894556 +431947 887289 +431972 766547 +431975 942194 +431978 708742 +431992 785764 +432011 862389 +432053 962947 +432081 715381 +432097 776933 +432122 774303 +432122 829897 +432122 850736 +432136 779394 +432167 1.23341e+06 +432200 783872 +432200 857511 +432206 768153 +432219 717144 +432233 855514 +432239 771864 +432256 750617 +432256 979656 +432264 780269 +432294 831967 +432311 763011 +432322 994300 +432342 862483 +432344 708100 +432358 1.0811e+06 +432361 708208 +432364 879844 +432369 940411 +432375 879786 +432378 770617 +432378 947511 +432381 761411 +432386 724250 +432386 789100 +432397 975775 +432403 758842 +432417 752572 +432444 738328 +432464 781939 +432467 924358 +432472 767239 +432472 790503 +432478 760006 +432489 705997 +432506 895014 +432508 837942 +432547 861097 +432561 862675 +432586 828175 +432617 708658 +432625 936369 +432658 708650 +432669 735850 +432681 825308 +432694 914756 +432708 897219 +432717 769894 +432756 826211 +432789 900436 +432794 962325 +432814 835297 +432842 928108 +432867 761464 +432867 787106 +432869 897239 +432872 932019 +432881 777936 +432917 846075 +432925 850814 +432928 942178 +432947 945114 +432967 879875 +432983 724828 +432992 736356 +433000 736844 +433006 735864 +433008 965925 +433011 1.03825e+06 +433033 917856 +433036 707339 +433044 709761 +433050 888447 +433058 713247 +433058 1.00658e+06 +433072 964317 +433094 736444 +433097 788264 +433103 885181 +433139 895264 +433175 908447 +433178 883789 +433186 983464 +433197 879533 +433211 765792 +433228 764175 +433239 881667 +433247 951497 +433267 783892 +433269 751872 +433269 830803 +433300 785550 +433317 837381 +433336 882861 +433344 757483 +433347 903867 +433361 858108 +433369 833525 +433378 787150 +433381 890153 +433439 960019 +433525 974369 +433542 968917 +433561 1.24204e+06 +433617 704772 +433622 912164 +433636 1.24192e+06 +433639 925539 +433653 721739 +433681 1.24216e+06 +433714 937733 +433719 835833 +433767 723472 +433767 998586 +433789 846597 +433814 921139 +433814 1.12122e+06 +433817 879406 +433839 705453 +433844 890450 +433858 939464 +433864 951481 +433869 988442 +433872 878756 +433897 710656 +433903 894028 +433903 1.23311e+06 +433953 907742 +433956 854678 +433958 727011 +433961 944781 +433975 971361 +433981 764778 +433989 979833 +433992 957517 +433997 885325 +434017 948325 +434056 887050 +434061 761261 +434067 1.24223e+06 +434078 732600 +434081 844750 +434081 850386 +434097 843289 +434100 863486 +434114 1.06279e+06 +434131 1.06249e+06 +434139 719856 +434142 734881 +434147 842306 +434161 955344 +434167 863569 +434194 839508 +434194 935331 +434197 858000 +434203 828297 +434222 951019 +434222 1.23297e+06 +434231 972603 +434253 881833 +434253 984069 +434261 737128 +434269 826714 +434272 961756 +434308 825425 +434314 966969 +434317 880464 +434317 1.03474e+06 +434361 927822 +434392 707747 +434442 716478 +434442 932208 +434464 968356 +434478 892397 +434506 836964 +434514 886311 +434536 964339 +434553 765108 +434556 953206 +434578 888372 +434586 839303 +434594 762292 +434597 898683 +434636 1.1426e+06 +434667 707942 +434667 1.12033e+06 +434675 859419 +434697 1.11966e+06 +434706 879506 +434711 897442 +434717 729778 +434744 897703 +434764 839206 +434800 1.10762e+06 +434836 753369 +434908 854439 +434911 833969 +434919 1.16419e+06 +434925 704539 +434942 885447 +434958 893083 +434967 737767 +434967 912894 +434997 878503 +435008 704433 +435050 940878 +435053 929439 +435061 906681 +435072 863475 +435097 925036 +435169 732367 +435172 703781 +435172 884511 +435181 960181 +435197 1.14314e+06 +435206 917694 +435208 882289 +435236 835433 +435244 846947 +435250 841228 +435264 1.11932e+06 +435267 827353 +435278 714708 +435281 963583 +435325 900025 +435336 946314 +435336 1.0963e+06 +435364 937119 +435378 893000 +435392 890067 +435392 894625 +435408 1.16562e+06 +435422 891072 +435456 1.16812e+06 +435500 967000 +435503 857719 +435517 975072 +435522 879617 +435553 920100 +435556 734042 +435569 908886 +435592 863456 +435611 916358 +435642 1.1908e+06 +435653 927192 +435656 889064 +435669 761281 +435681 835142 +435681 1.00745e+06 +435689 860394 +435697 878233 +435725 932811 +435758 1.24174e+06 +435781 703222 +435825 964675 +435831 753456 +435839 712078 +435864 1.19053e+06 +435911 717372 +435914 884436 +435931 730456 +435944 838889 +435947 732661 +435964 1.11963e+06 +435978 882789 +435978 972903 +435986 1.23282e+06 +436008 831747 +436011 897936 +436033 840697 +436086 863639 +436106 729731 +436122 1.16391e+06 +436153 838419 +436156 842472 +436178 1.16933e+06 +436192 879519 +436200 955961 +436208 949883 +436222 1.16237e+06 +436228 877944 +436231 969422 +436242 725189 +436253 753675 +436275 897708 +436319 1.11773e+06 +436333 887294 +436347 914967 +436350 959325 +436367 1.13299e+06 +436375 941019 +436406 721444 +436414 702414 +436422 722522 +436433 760689 +436442 760864 +436461 1.08211e+06 +436481 933681 +436489 723197 +436522 903439 +436522 944608 +436522 947267 +436528 902233 +436536 834661 +436536 977825 +436542 962125 +436569 908542 +436575 715008 +436583 880069 +436589 1.23318e+06 +436614 702558 +436619 912183 +436631 1.16686e+06 +436647 968106 +436667 929744 +436669 946192 +436703 920831 +436703 935758 +436714 1.16815e+06 +436725 1.11914e+06 +436728 723092 +436728 843806 +436767 1.16911e+06 +436769 703717 +436775 951714 +436794 704447 +436808 1.14363e+06 +436861 885464 +436869 923889 +436936 883608 +436953 716311 +436958 1.1201e+06 +436972 1.14351e+06 +436981 854836 +436983 863639 +436986 954683 +437022 722900 +437022 910131 +437025 1.24096e+06 +437058 925719 +437067 730286 +437069 1.16619e+06 +437072 889900 +437094 980294 +437097 929694 +437100 749747 +437100 829317 +437156 984847 +437175 965025 +437208 919767 +437208 1.11989e+06 +437233 1.11111e+06 +437242 973886 +437292 878106 +437322 834511 +437347 702083 +437353 887811 +437403 928692 +437408 902722 +437419 907792 +437461 937286 +437467 989581 +437467 1.22461e+06 +437486 879769 +437508 877144 +437567 845858 +437569 716886 +437594 913464 +437614 967400 +437622 947069 +437633 915683 +437639 933289 +437667 1.03598e+06 +437678 941656 +437731 884469 +437817 864331 +437853 1.16942e+06 +437861 969272 +437867 754922 +437914 893197 +437950 953200 +437964 702594 +437972 900772 +437978 1.23058e+06 +437981 730881 +438006 701872 +438014 912394 +438019 830008 +438067 917914 +438078 886747 +438083 917528 +438108 993303 +438114 884833 +438194 831808 +438194 847686 +438261 967058 +438261 1.11789e+06 +438264 882461 +438278 944369 +438300 832700 +438306 906214 +438333 726344 +438333 880178 +438339 878200 +438339 1.01509e+06 +438342 704389 +438350 848669 +438419 938317 +438422 888358 +438442 889600 +438447 826514 +438456 921889 +438486 734239 +438500 963983 +438508 891217 +438522 696286 +438536 839650 +438547 1.04204e+06 +438556 924883 +438569 701036 +438600 760058 +438664 951167 +438667 930508 +438706 956000 +438725 961283 +438728 933011 +438731 1.11748e+06 +438736 1.16498e+06 +438750 855100 +438769 1.16994e+06 +438792 901653 +438822 844847 +438836 894933 +438844 912350 +438867 1.11677e+06 +438881 941564 +438883 1.00712e+06 +438906 928475 +438931 909903 +438933 756739 +438939 934936 +438958 753928 +438992 910811 +439006 852581 +439011 858517 +439097 1.00058e+06 +439106 698211 +439125 880356 +439144 699658 +439147 1.13612e+06 +439147 1.16197e+06 +439150 877472 +439181 1.23023e+06 +439186 1.22782e+06 +439225 902714 +439250 726664 +439275 699764 +439289 939558 +439325 1.03575e+06 +439389 949294 +439394 829969 +439411 832714 +439442 908128 +439461 761194 +439500 880842 +439547 862800 +439553 864525 +439583 947944 +439633 912561 +439681 889433 +439700 1.16818e+06 +439706 898167 +439742 756156 +439747 759111 +439781 756097 +439786 905039 +439792 711208 +439808 844864 +439822 1.17237e+06 +439825 968142 +439828 1.24099e+06 +439831 839589 +439844 918692 +439878 957556 +439883 922283 +439925 721294 +439925 1.02241e+06 +439961 700611 +440006 963172 +440011 759667 +440047 940656 +440056 914419 +440061 971136 +440078 760447 +440078 1.16916e+06 +440108 975264 +440125 757947 +440153 731678 +440164 709811 +440169 1.07955e+06 +440192 847994 +440217 924697 +440247 885425 +440261 900739 +440267 1.16962e+06 +440275 917697 +440281 928544 +440289 881628 +440300 927506 +440328 926453 +440394 887442 +440394 1.01665e+06 +440419 890983 +440422 954358 +440444 929975 +440461 829942 +440464 1.23021e+06 +440483 734603 +440486 836958 +440489 1.2335e+06 +440494 965950 +440500 916392 +440508 944181 +440522 1.23086e+06 +440536 711289 +440536 982753 +440547 707133 +440583 1.21314e+06 +440625 916956 +440661 878842 +440669 761306 +440692 927556 +440717 882989 +440717 1.11448e+06 +440747 892878 +440758 885250 +440778 935072 +440783 1.16933e+06 +440789 691822 +440792 985692 +440806 1.03231e+06 +440817 913489 +440839 932258 +440872 697994 +440881 758075 +440886 876575 +440953 693761 +440978 702317 +440978 918167 +440997 1.04628e+06 +441003 702153 +441025 851469 +441036 691094 +441036 1.2313e+06 +441058 942186 +441103 949044 +441108 887125 +441117 703922 +441125 1.03068e+06 +441161 937078 +441197 701081 +441278 763333 +441303 922514 +441306 909981 +441319 917186 +441333 730794 +441372 1.23065e+06 +441403 881639 +441447 878214 +441511 726569 +441511 1.03308e+06 +441522 720378 +441536 879567 +441536 928994 +441539 875692 +441544 757092 +441572 1.08871e+06 +441597 750319 +441636 939992 +441650 921714 +441650 938811 +441661 925347 +441672 732544 +441733 940336 +441742 932461 +441769 725061 +441772 880642 +441839 734361 +441858 884625 +441936 852133 +441969 725025 +441992 756072 +441994 877214 +442014 926461 +442022 884464 +442044 938153 +442097 690653 +442097 951283 +442133 719114 +442139 705453 +442139 894922 +442153 757975 +442189 935678 +442194 1.23204e+06 +442231 954692 +442236 705139 +442272 934444 +442275 918350 +442300 697758 +442303 697672 +442311 952639 +442333 956189 +442333 958719 +442361 964808 +442389 949756 +442392 876411 +442394 760861 +442444 697719 +442444 862961 +442444 863242 +442511 1.16968e+06 +442519 854011 +442528 915014 +442597 888647 +442600 725758 +442611 962872 +442619 884153 +442633 1.0495e+06 +442658 883142 +442694 835147 +442722 883389 +442722 929853 +442728 1.21173e+06 +442731 925447 +442742 1.23169e+06 +442761 941872 +442764 842386 +442781 724269 +442781 882719 +442783 961344 +442794 739803 +442794 834903 +442797 683256 +442800 883183 +442842 966853 +442858 697914 +442911 1.05502e+06 +442911 1.21548e+06 +442925 939647 +442942 926689 +442944 912350 +442947 908514 +442950 932686 +442972 947239 +443044 927903 +443050 699775 +443061 717706 +443106 697800 +443114 967981 +443125 899042 +443125 944603 +443147 847647 +443200 919147 +443214 889336 +443236 969261 +443244 752514 +443256 938375 +443258 881628 +443294 741317 +443347 886381 +443353 852150 +443358 759181 +443367 754633 +443378 727567 +443478 878272 +443483 1.06698e+06 +443508 898653 +443514 1.17266e+06 +443522 1.03765e+06 +443536 1.00373e+06 +443569 914203 +443581 890858 +443633 982139 +443636 862050 +443636 973769 +443644 971328 +443675 913164 +443683 1.00351e+06 +443731 716106 +443767 1.03729e+06 +443800 1.08038e+06 +443836 898172 +443839 920328 +443842 1.23109e+06 +443875 682044 +443875 975500 +443878 711736 +443894 937300 +443897 1.18949e+06 +443928 887397 +443936 1.22984e+06 +443978 1.22735e+06 +444006 926236 +444019 952556 +444053 729933 +444064 1.04375e+06 +444078 740875 +444097 1.03509e+06 +444108 833322 +444108 853989 +444161 1.18952e+06 +444169 949253 +444178 1.19112e+06 +444203 833308 +444214 841167 +444239 897803 +444258 690069 +444269 1.24068e+06 +444389 935811 +444392 901244 +444411 921478 +444447 885789 +444467 943950 +444469 957881 +444489 880603 +444494 922667 +444508 892847 +444511 908411 +444564 895439 +444583 689247 +444583 875031 +444583 931614 +444611 1.03638e+06 +444633 962469 +444633 1.18709e+06 +444644 889197 +444653 726850 +444669 731714 +444686 711856 +444753 701886 +444758 732125 +444775 884506 +444803 934283 +444814 702000 +444822 899639 +444889 715697 +444892 1.08056e+06 +444906 731114 +444908 1.03859e+06 +444914 731861 +444936 895586 +444983 845919 +445047 723686 +445047 1.14231e+06 +445050 734806 +445069 929053 +445072 964239 +445081 891306 +445150 883303 +445164 1.16041e+06 +445183 989881 +445192 880197 +445194 895458 +445214 994411 +445236 895744 +445258 1.21212e+06 +445264 1.09056e+06 +445283 939075 +445292 947206 +445328 675989 +445336 720036 +445339 704564 +445339 945261 +445367 1.22906e+06 +445386 877039 +445394 951167 +445403 697225 +445403 1.23366e+06 +445431 943661 +445433 684200 +445433 935758 +445469 696217 +445497 913925 +445514 949842 +445519 696322 +445531 942203 +445536 705514 +445600 905961 +445608 705458 +445617 725989 +445625 925336 +445647 1.23261e+06 +445678 916708 +445722 912272 +445736 687961 +445747 969019 +445758 914700 +445856 924503 +445883 695992 +445908 897672 +445928 702286 +445956 751694 +445986 715117 +446003 909628 +446083 940803 +446089 874325 +446089 956739 +446181 754075 +446194 862264 +446206 887622 +446217 1.23937e+06 +446228 937683 +446264 919656 +446269 900075 +446278 893086 +446292 921922 +446336 862344 +446336 1.21128e+06 +446356 726808 +446367 1.23105e+06 +446369 1.24052e+06 +446378 688456 +446378 695036 +446397 731108 +446403 931433 +446497 932425 +446531 1.23101e+06 +446564 832947 +446614 847147 +446622 1.11103e+06 +446689 901717 +446697 749817 +446706 701517 +446714 1.03852e+06 +446722 882425 +446803 911197 +446811 1.2306e+06 +446931 735625 +446942 754867 +446994 734533 +447050 1.22848e+06 +447081 1.00059e+06 +447089 962761 +447131 697911 +447133 934225 +447147 1.0342e+06 +447150 674619 +447197 1.23009e+06 +447214 737242 +447219 1.23919e+06 +447228 970297 +447300 1.16437e+06 +447319 932175 +447319 943500 +447322 924872 +447342 851758 +447369 904958 +447372 946167 +447394 931256 +447403 884447 +447408 890631 +447433 928522 +447439 947153 +447444 688375 +447458 966806 +447481 721767 +447489 928019 +447514 749947 +447539 1.08757e+06 +447542 1.22477e+06 +447578 902967 +447631 856206 +447636 912769 +447636 936256 +447650 697197 +447675 948953 +447678 932775 +447681 939272 +447692 941514 +447717 937811 +447747 1.22614e+06 +447764 949894 +447783 1.17828e+06 +447811 921458 +447822 886089 +447825 693839 +447828 939133 +447869 953514 +447892 952114 +447894 936019 +447906 958083 +447919 950969 +447931 897031 +447964 1.08506e+06 +447967 687619 +447972 1.06956e+06 +447975 698803 +447981 935267 +448008 749914 +448008 1.22793e+06 +448011 687783 +448011 900792 +448047 914431 +448086 1.24062e+06 +448100 955453 +448114 914983 +448117 722036 +448125 920714 +448147 718808 +448272 891694 +448278 929436 +448297 1.22793e+06 +448303 745139 +448342 873769 +448353 692744 +448375 1.08389e+06 +448386 687058 +448408 932981 +448411 1.2287e+06 +448433 1.22952e+06 +448481 930425 +448486 742953 +448486 1.23233e+06 +448508 937867 +448514 1.23186e+06 +448531 887881 +448547 934706 +448586 936614 +448614 926236 +448622 935306 +448644 752044 +448664 930003 +448664 1.23435e+06 +448731 916908 +448739 881428 +448753 1.07262e+06 +448756 919192 +448758 985183 +448778 977328 +448831 686725 +448833 694481 +448833 932828 +448836 931381 +448839 940414 +448872 878644 +448872 896200 +448878 943694 +448897 933497 +448900 883072 +448944 714964 +448956 854164 +448994 971147 +449008 935889 +449022 850608 +449028 927833 +449033 935661 +449033 941953 +449061 669906 +449069 728069 +449086 935928 +449089 1.07163e+06 +449097 896044 +449100 903156 +449111 1.16098e+06 +449133 935031 +449150 935531 +449181 731247 +449194 1.23316e+06 +449250 934625 +449264 913008 +449272 899633 +449281 748922 +449297 935222 +449328 960542 +449339 951872 +449342 686458 +449353 936319 +449361 946964 +449364 722056 +449367 936658 +449369 913928 +449397 935764 +449425 957233 +449431 1.23034e+06 +449461 686444 +449481 911506 +449508 929764 +449511 880467 +449519 910347 +449531 922911 +449531 929950 +449550 953661 +449564 905975 +449564 927656 +449583 1.24017e+06 +449592 896300 +449600 909369 +449611 907997 +449633 735878 +449636 938469 +449639 940472 +449667 923742 +449694 935139 +449714 936042 +449714 1.16283e+06 +449747 927567 +449767 856506 +449789 924356 +449800 932636 +449803 852111 +449808 888308 +449839 925558 +449861 1.22982e+06 +449864 734469 +449867 935714 +449903 1.23025e+06 +449917 931661 +449931 927567 +449939 733653 +449944 724003 +449958 928792 +449969 726717 +449975 917269 +449983 1.20215e+06 +449986 932056 +449992 883719 +450031 903356 +450050 720994 +450053 1.22782e+06 +450061 931564 +450072 936556 +450097 933489 +450097 961956 +450106 934553 +450117 999553 +450158 952383 +450214 927808 +450231 1.02036e+06 +450239 692903 +450269 930875 +450275 846747 +450314 927928 +450322 933383 +450328 933600 +450331 900739 +450350 991236 +450381 933864 +450408 932628 +450419 937889 +450436 920408 +450475 1.01601e+06 +450503 931564 +450533 932472 +450542 929564 +450544 877492 +450564 928058 +450575 930736 +450586 698828 +450586 921722 +450608 940731 +450617 834328 +450650 880342 +450650 939108 +450656 932017 +450681 1.22799e+06 +450697 929514 +450700 852644 +450725 934556 +450758 941897 +450761 933325 +450789 1.23485e+06 +450792 931469 +450817 943067 +450847 930097 +450861 932631 +450883 937342 +450900 929722 +450942 933561 +450953 935472 +450994 1.23394e+06 +451000 876306 +451003 914886 +451028 930789 +451050 932083 +451078 876142 +451078 932378 +451083 1.22896e+06 +451158 1.23206e+06 +451194 934022 +451200 932875 +451219 950431 +451231 925364 +451244 926733 +451272 945278 +451314 856167 +451386 903400 +451389 947778 +451403 891522 +451428 846603 +451439 1.22854e+06 +451475 1.22576e+06 +451486 931514 +451506 946828 +451558 936661 +451569 674053 +451581 851242 +451600 929931 +451603 930886 +451608 932347 +451672 911492 +451689 693850 +451719 938744 +451758 1.13895e+06 +451806 896833 +451825 1.22807e+06 +451833 692275 +451858 1.09246e+06 +451872 871208 +451889 672792 +451889 933972 +451931 953203 +451969 960194 +451978 933869 +452086 1.17864e+06 +452103 1.23198e+06 +452164 1.12637e+06 +452167 850139 +452192 966353 +452208 1.23075e+06 +452292 940017 +452311 1.22755e+06 +452325 880075 +452331 949397 +452333 932911 +452344 1.20184e+06 +452378 936542 +452386 686642 +452436 997767 +452439 935147 +452444 1.23114e+06 +452519 922711 +452536 689864 +452628 941242 +452631 1.22691e+06 +452661 932342 +452783 1.2301e+06 +452789 929850 +452897 1.22332e+06 +452917 964625 +452944 1.23175e+06 +452958 1.08913e+06 +453000 1.22772e+06 +453003 1.22972e+06 +453011 949439 +453039 935669 +453047 964444 +453056 937939 +453069 923619 +453142 916508 +453144 1.07362e+06 +453150 955997 +453153 944083 +453175 902083 +453181 852583 +453194 932022 +453206 927047 +453247 1.18087e+06 +453261 945458 +453319 973047 +453322 975197 +453325 937458 +453364 929969 +453417 1.23186e+06 +453489 1.11729e+06 +453533 1.19557e+06 +453544 1.17229e+06 +453561 926333 +453567 1.22839e+06 +453575 842239 +453575 1.22606e+06 +453622 685056 +453658 1.22611e+06 +453708 879522 +453733 849553 +453736 928897 +453806 947117 +453808 1.22594e+06 +453842 1.22763e+06 +453894 928478 +453933 938767 +453944 921422 +453975 1.2226e+06 +453981 929872 +454014 918489 +454019 926522 +454022 1.22752e+06 +454086 917439 +454086 968575 +454153 876075 +454169 920328 +454208 1.22669e+06 +454214 838183 +454222 1.16314e+06 +454264 1.17278e+06 +454314 1.2277e+06 +454317 849919 +454439 1.05407e+06 +454442 847867 +454444 990289 +454464 1.22638e+06 +454467 1.22758e+06 +454469 1.22529e+06 +454475 980983 +454514 925539 +454522 924544 +454531 996536 +454533 1.21129e+06 +454542 945181 +454556 1.12196e+06 +454558 944286 +454564 1.23843e+06 +454569 912731 +454594 695911 +454603 964333 +454631 911039 +454647 984861 +454686 1.22608e+06 +454711 897297 +454719 943406 +454833 1.18829e+06 +454836 1.22754e+06 +454853 929617 +454853 1.0897e+06 +454872 1.22802e+06 +454903 932475 +454944 1.22866e+06 +454975 957964 +454983 1.2243e+06 +454989 1.22763e+06 +455011 951242 +455042 1.22536e+06 +455050 1.22797e+06 +455061 917381 +455064 1.00032e+06 +455114 929800 +455200 1.23059e+06 +455200 1.23109e+06 +455228 1.23888e+06 +455231 1.22989e+06 +455236 1.22675e+06 +455261 925083 +455322 920192 +455344 1.22418e+06 +455372 1.00428e+06 +455394 1.22386e+06 +455461 902864 +455528 847839 +455572 942239 +455597 1.22559e+06 +455650 1.17916e+06 +455692 964342 +455700 935814 +455703 1.17527e+06 +455717 961731 +455719 889028 +455728 932242 +455761 924825 +455828 1.22352e+06 +455861 959136 +455864 929744 +455872 1.22398e+06 +455919 941658 +455953 968331 +455972 1.22992e+06 +456092 944514 +456136 1.23942e+06 +456144 955308 +456217 942067 +456275 685750 +456300 945697 +456367 894119 +456367 1.09251e+06 +456389 1.2266e+06 +456469 844744 +456503 953894 +456572 687103 +456592 924669 +456625 1.1056e+06 +456628 946897 +456647 939094 +456647 970494 +456667 1.2256e+06 +456692 1.08771e+06 +456700 1.21889e+06 +456717 1.22662e+06 +456722 1.18788e+06 +456747 948072 +456797 1.11038e+06 +456856 929653 +456967 904003 +457056 1.2152e+06 +457150 1.21463e+06 +457169 1.202e+06 +457228 931706 +457228 989406 +457278 1.21485e+06 +457311 944697 +457325 1.07611e+06 +457375 949522 +457394 919253 +457425 1.19194e+06 +457453 870644 +457544 1.22876e+06 +457558 936542 +457575 929622 +457694 996192 +457714 879947 +457761 1.11176e+06 +457764 926825 +457806 1.19216e+06 +457811 1.22532e+06 +457833 1.085e+06 +457839 847278 +457858 923808 +457869 879036 +457917 977506 +457950 880719 +458044 964989 +458086 961431 +458119 1.18489e+06 +458139 1.18424e+06 +458144 1.0081e+06 +458153 1.22741e+06 +458203 880658 +458208 1.20821e+06 +458225 918892 +458261 929683 +458294 957917 +458300 942933 +458347 1.00069e+06 +458350 1.09955e+06 +458400 1.19699e+06 +458406 1.19288e+06 +458406 1.22841e+06 +458528 870217 +458567 1.11332e+06 +458589 1.23192e+06 +458661 1.22405e+06 +458669 951519 +458708 1.12097e+06 +458769 932936 +458775 923672 +458842 1.06623e+06 +458853 953772 +458889 1.04552e+06 +458903 1.22806e+06 +458919 1.2396e+06 +458958 1.1949e+06 +459047 1.22743e+06 +459172 892442 +459175 1.19341e+06 +459267 1.16121e+06 +459344 904414 +459408 1.02159e+06 +459578 862461 +459747 948653 +459764 943622 +459817 941044 +459933 1.23921e+06 +459942 959764 +459964 684467 +460014 1.02636e+06 +460028 985267 +460042 956825 +460086 1.22843e+06 +460114 929442 +460131 914844 +460228 1.14177e+06 +460244 1.2391e+06 +460314 993786 +460342 1.12535e+06 +460494 1.18387e+06 +460522 1.18402e+06 +460642 886314 +460647 1.18342e+06 +460697 969014 +460706 936675 +460756 971514 +460811 886269 +460858 948656 +460892 1.22935e+06 +460911 945033 +460922 1.00629e+06 +460928 886422 +460981 883339 +460994 918247 +461014 1.23206e+06 +461078 976361 +461261 678408 +461303 949483 +461311 928672 +461336 1.00161e+06 +461381 934706 +461383 1.22937e+06 +461386 980900 +461450 1.15977e+06 +461469 1.22907e+06 +461531 953286 +461644 1.2294e+06 +461650 950389 +461653 1.23922e+06 +461831 1.03394e+06 +461875 1.22904e+06 +461881 1.2383e+06 +462003 1.2395e+06 +462033 1.23382e+06 +462069 1.19768e+06 +462114 1.19136e+06 +462150 1.19996e+06 +462258 976622 +462272 1.16028e+06 +462286 1.19099e+06 +462350 1.1624e+06 +462367 1.1212e+06 +462414 1.16466e+06 +462469 1.14159e+06 +462511 1.19901e+06 +462592 974558 +462633 1.19487e+06 +462636 965878 +462653 966056 +462664 1.06677e+06 +462667 950625 +462667 971319 +462667 1.00232e+06 +462706 1.18152e+06 +462753 1.22906e+06 +462806 957133 +462811 874408 +462831 960772 +462858 1.19283e+06 +463011 989542 +463044 1.1936e+06 +463192 1.1152e+06 +463217 954450 +463256 906608 +463322 1.13293e+06 +463394 1.17047e+06 +463422 1.20186e+06 +463433 942864 +463525 1.24053e+06 +463533 918222 +463550 855094 +463556 947919 +463572 982942 +463581 942006 +463592 987153 +463669 1.04284e+06 +463725 1.02327e+06 +463761 1.15937e+06 +463775 1.20308e+06 +463958 1.12729e+06 +463983 950144 +464022 1.20261e+06 +464039 1.01846e+06 +464050 1.16804e+06 +464081 943556 +464083 1.0584e+06 +464111 866478 +464164 1.17044e+06 +464167 1.17017e+06 +464281 902458 +464356 1.09834e+06 +464400 1.22846e+06 +464417 976808 +464425 951358 +464453 1.08541e+06 +464478 1.20419e+06 +464497 901864 +464542 927617 +464547 901708 +464736 938986 +464750 1.17602e+06 +464753 899397 +464775 939775 +464794 1.16254e+06 +464814 900528 +464822 939575 +464856 943603 +464886 876675 +464911 1.15798e+06 +464914 1.22937e+06 +464947 873542 +464992 876117 +465083 997708 +465100 1.14092e+06 +465150 916997 +465181 953758 +465206 942883 +465331 937100 +465392 1.02868e+06 +465436 873953 +465483 1.10901e+06 +465508 1.16924e+06 +465539 1.20382e+06 +465567 874372 +465575 1.20474e+06 +465586 1.22274e+06 +465622 921472 +465706 1.23296e+06 +465708 960828 +465747 1.22907e+06 +465789 1.16705e+06 +465839 917989 +465897 1.11915e+06 +465925 908836 +465928 1.12035e+06 +465944 955722 +466022 1.20505e+06 +466031 943092 +466064 1.20439e+06 +466181 1.20552e+06 +466231 976011 +466300 950886 +466486 970167 +466522 964194 +466542 1.20529e+06 +466622 1.22963e+06 +466636 1.1886e+06 +466639 924247 +466733 908947 +466811 680164 +466867 1.23732e+06 +467022 1.20754e+06 +467067 924281 +467164 1.22953e+06 +467181 944039 +467208 921039 +467217 924592 +467281 957006 +467311 939578 +467311 1.20698e+06 +467314 1.17179e+06 +467325 1.16999e+06 +467353 1.22988e+06 +467369 1.16769e+06 +467472 922253 +467539 895839 +467539 950978 +467567 884528 +467589 1.1408e+06 +467722 678344 +467786 884889 +467833 921064 +467900 681581 +467911 1.17249e+06 +467931 1.05312e+06 +467992 1.22869e+06 +467994 1.16555e+06 +468083 1.00783e+06 +468108 908181 +468150 1.01829e+06 +468172 958450 +468261 1.19174e+06 +468267 1.00889e+06 +468406 1.23231e+06 +468450 1.01411e+06 +468547 999156 +468569 1.22852e+06 +468606 680125 +468633 1.14048e+06 +468675 1.22265e+06 +468708 1.13944e+06 +468711 893139 +468722 1.13993e+06 +468739 967672 +468750 969000 +468753 965786 +468767 967031 +468772 967894 +468792 1.02789e+06 +468803 1.17363e+06 +468808 963164 +468839 1.02315e+06 +468853 1.03199e+06 +468864 960942 +468883 1.22687e+06 +468903 1.24103e+06 +468939 992994 +469006 972108 +469006 1.02045e+06 +469011 1.19629e+06 +469086 678264 +469103 1.17075e+06 +469106 987081 +469181 1.04004e+06 +469217 1.16897e+06 +469222 950583 +469233 980028 +469292 929194 +469422 1.22605e+06 +469556 1.23772e+06 +469631 1.24164e+06 +469678 1.19039e+06 +469722 1.18614e+06 +469736 1.23691e+06 +469811 1.23888e+06 +469814 1.23601e+06 +469833 1.20416e+06 +469850 1.04188e+06 +469933 935983 +469967 1.20547e+06 +470036 1.23408e+06 +470075 1.22908e+06 +470081 1.1714e+06 +470228 916706 +470344 1.22822e+06 +470381 1.22899e+06 +470533 1.23264e+06 +470625 1.09428e+06 +470700 886431 +470789 962586 +470969 1.2263e+06 +470981 1.22203e+06 +471014 945869 +471042 1.22433e+06 +471053 1.04712e+06 +471164 1.01299e+06 +471219 885689 +471269 885808 +471275 1.18379e+06 +471303 1.19277e+06 +471536 1.10218e+06 +471556 1.22433e+06 +471572 679358 +471586 1.00783e+06 +471633 1.22026e+06 +471700 1.22601e+06 +471733 884292 +471772 1.22185e+06 +471911 1.22289e+06 +471917 1.14891e+06 +471942 884072 +471956 1.20938e+06 +472033 1.22239e+06 +472044 1.2199e+06 +472156 1.23096e+06 +472233 1.17071e+06 +472236 1.20992e+06 +472283 934889 +472344 1.19851e+06 +472358 1.22549e+06 +472361 1.17369e+06 +472372 935300 +472375 884431 +472394 1.22356e+06 +472397 1.22515e+06 +472467 884539 +472483 1.22312e+06 +472531 1.22443e+06 +472586 685900 +472603 962586 +472633 1.01778e+06 +472647 1.22249e+06 +472711 1.117e+06 +472792 1.22251e+06 +472864 1.01922e+06 +472889 934275 +472892 1.01029e+06 +472944 912572 +472944 1.01622e+06 +472956 934186 +472994 1.22507e+06 +472997 965150 +473075 1.22227e+06 +473089 1.22002e+06 +473153 959683 +473178 1.19552e+06 +473206 932983 +473211 1.01381e+06 +473294 1.22579e+06 +473331 937925 +473333 1.1869e+06 +473353 1.16888e+06 +473458 1.05592e+06 +473517 968283 +473719 1.02754e+06 +473794 946039 +473803 931681 +473811 1.22234e+06 +473853 1.17171e+06 +473861 1.10925e+06 +473894 1.19489e+06 +473997 930722 +474019 1.22323e+06 +474039 970617 +474158 1.20292e+06 +474236 1.20309e+06 +474364 1.22339e+06 +474444 981236 +474497 991258 +474564 1.01137e+06 +474603 1.14882e+06 +474625 925397 +474703 1.15801e+06 +474706 1.22346e+06 +474736 948800 +474742 1.15927e+06 +474742 1.2226e+06 +474811 1.18253e+06 +474831 1.22216e+06 +474844 1.22293e+06 +474858 1.00443e+06 +474875 1.17575e+06 +474889 924647 +474892 928836 +474936 927778 +474958 1.21786e+06 +474981 973242 +474983 973700 +475000 1.113e+06 +475061 1.15998e+06 +475142 978356 +475197 921383 +475200 1.0089e+06 +475217 953981 +475225 1.20469e+06 +475233 925364 +475236 1.22623e+06 +475289 1.14101e+06 +475289 1.21824e+06 +475300 922369 +475303 1.22031e+06 +475325 926233 +475331 923400 +475361 962800 +475383 1.16118e+06 +475406 1.22635e+06 +475411 1.22175e+06 +475428 1.16181e+06 +475536 1.22663e+06 +475606 1.11545e+06 +475669 1.22157e+06 +475675 1.22631e+06 +475708 1.22221e+06 +475731 1.17681e+06 +475764 957511 +475831 1.22707e+06 +475850 1.22598e+06 +475964 1.2066e+06 +475972 1.15343e+06 +476000 1.22692e+06 +476064 1.22331e+06 +476092 1.14668e+06 +476092 1.22654e+06 +476106 1.22199e+06 +476114 1.19291e+06 +476147 1.11979e+06 +476211 1.22226e+06 +476225 1.22067e+06 +476247 1.2252e+06 +476319 1.22217e+06 +476369 958861 +476397 974531 +476447 1.17592e+06 +476464 1.22216e+06 +476472 1.2007e+06 +476481 1.21913e+06 +476483 1.17091e+06 +476492 996289 +476522 1.01415e+06 +476542 1.18149e+06 +476569 1.17195e+06 +476569 1.17282e+06 +476575 1.17239e+06 +476589 1.17425e+06 +476675 960097 +476742 1.2212e+06 +476778 1.16779e+06 +476800 991375 +476814 1.17282e+06 +476817 1.22208e+06 +476919 954308 +476936 1.14162e+06 +477033 1.22206e+06 +477086 919444 +477167 1.04156e+06 +477181 1.16951e+06 +477297 1.16769e+06 +477314 1.22551e+06 +477331 945483 +477342 975664 +477361 1.22645e+06 +477425 1.21984e+06 +477506 903342 +477569 1.2228e+06 +477575 1.22243e+06 +477589 1.18704e+06 +477600 1.22204e+06 +477614 1.22345e+06 +477639 981769 +477661 1.16786e+06 +477697 999350 +477736 971094 +477742 966078 +477847 1.22273e+06 +477883 1.22308e+06 +477964 1.22382e+06 +478022 1.03283e+06 +478056 922744 +478108 1.22376e+06 +478125 1.16896e+06 +478139 1.12679e+06 +478200 1.10672e+06 +478211 1.22314e+06 +478222 1.22281e+06 +478392 958542 +478411 1.20015e+06 +478525 926894 +478556 1.2197e+06 +478564 1.04044e+06 +478569 1.21696e+06 +478628 1.21815e+06 +478822 962739 +479033 918669 +479067 976264 +479131 1.22097e+06 +479189 973647 +479253 970325 +479300 970242 +479325 1.19037e+06 +479417 1.19002e+06 +479447 1.22303e+06 +479506 1.24384e+06 +479533 1.02134e+06 +479625 995297 +479656 1.18975e+06 +479664 1.16868e+06 +479772 1.02496e+06 +479792 1.22201e+06 +480083 1.1967e+06 +480403 1.22405e+06 +480428 983358 +480511 1.19902e+06 +480519 1.22176e+06 +480561 1.00929e+06 +480633 1.14072e+06 +480797 1.23101e+06 +480842 1.21968e+06 +480906 1.0564e+06 +480961 1.19779e+06 +480981 1.09048e+06 +481128 988647 +481131 1.05198e+06 +481172 1.22759e+06 +481183 1.23429e+06 +481192 961808 +481333 1.03633e+06 +481444 1.04516e+06 +481703 1.11945e+06 +481786 1.10111e+06 +481808 1.17036e+06 +481958 1.14312e+06 +481967 967725 +481969 1.06636e+06 +481989 1.22124e+06 +482200 1.22685e+06 +482258 1.14275e+06 +482325 1.01296e+06 +482364 1.01133e+06 +482414 1.22369e+06 +482556 1.216e+06 +482753 1.01428e+06 +482764 1.17714e+06 +482767 1.16552e+06 +482889 994372 +482917 973711 +482933 1.22642e+06 +483078 1.12249e+06 +483172 1.0239e+06 +483328 968206 +483444 1.03165e+06 +483458 1.00405e+06 +483597 1.07874e+06 +483614 1.19582e+06 +483636 1.20121e+06 +483689 999958 +483725 1.14181e+06 +483883 1.15555e+06 +483925 1.22494e+06 +483972 1.02938e+06 +483986 977408 +483989 935556 +484111 1.14337e+06 +484111 1.19526e+06 +484122 974103 +484214 1.22333e+06 +484500 968722 +484633 1.15889e+06 +484758 1.22324e+06 +484867 992094 +485039 1.22236e+06 +485053 1.11856e+06 +485106 1.10967e+06 +485128 1.22611e+06 +485333 1.08783e+06 +485344 1.23016e+06 +485394 1.21745e+06 +485467 1.17904e+06 +485500 1.09683e+06 +485569 1.13012e+06 +485711 971775 +485775 965203 +485867 933989 +485900 1.09231e+06 +486011 934108 +486108 1.18055e+06 +486331 1.12325e+06 +486483 1.18737e+06 +486608 998411 +486747 1.02082e+06 +486914 1.16315e+06 +487006 961814 +487053 1.19438e+06 +487125 945997 +487411 1.17416e+06 +487458 1.22401e+06 +487597 1.22487e+06 +487600 983678 +487633 1.01513e+06 +487744 969461 +487747 1.04562e+06 +487925 1.0542e+06 +487939 976219 +488031 1.02246e+06 +488131 1.00061e+06 +488272 1.00445e+06 +488392 997444 +488461 957625 +488467 1.2259e+06 +488578 996175 +488800 1.15052e+06 +489053 953142 +489094 1.0102e+06 +489142 1.03294e+06 +489203 1.22341e+06 +489233 979178 +489392 1.19434e+06 +489467 1.22451e+06 +489664 972433 +489939 1.22746e+06 +490000 1.22264e+06 diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/city_swap.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/city_swap.cpp new file mode 100644 index 000000000..567f53fb6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/city_swap.cpp @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "city_swap.cpp" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "city_swap.h" + +bool CitySwap :: operator () (Route & __route) { + + std :: swap (__route [rng.random (__route.size ())], + __route [rng.random (__route.size ())]) ; + + __route.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/city_swap.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/city_swap.h new file mode 100644 index 000000000..784324e1f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/city_swap.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "city_swap.h" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef city_swap_h +#define city_swap_h + +#include + +#include "route.h" + +/** Its swaps two vertices + randomly choosen */ +class CitySwap : public eoMonOp { + +public : + + bool operator () (Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/edge_xover.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/edge_xover.cpp new file mode 100644 index 000000000..c8984e204 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/edge_xover.cpp @@ -0,0 +1,142 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "edge_xover.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include + +#include "edge_xover.h" +#include "route_valid.h" + +#define MAXINT 1000000 + +void +EdgeXover :: build_map (const Route & __par1, const Route & __par2) +{ + + unsigned int len = __par1.size () ; + + /* Initialization */ + _map.clear () ; + _map.resize (len) ; + + for (unsigned int i = 0 ; i < len ; i ++) + { + _map [__par1 [i]].insert (__par1 [(i + 1) % len]) ; + _map [__par2 [i]].insert (__par2 [(i + 1) % len]) ; + _map [__par1 [i]].insert (__par1 [(i - 1 + len) % len]) ; + _map [__par2 [i]].insert (__par2 [(i - 1 + len) % len]) ; + } + + visited.clear () ; + visited.resize (len, false) ; +} + +void +EdgeXover :: remove_entry (unsigned int __vertex, std :: vector > & __map) +{ + + std :: set & neigh = __map [__vertex] ; + + for (std :: set :: iterator it = neigh.begin () ; it != neigh.end () ; it ++) + { + __map [* it].erase (__vertex) ; + } + +} + +void +EdgeXover :: add_vertex (unsigned int __vertex, Route & __child) +{ + visited [__vertex] = true ; + __child.push_back (__vertex) ; + remove_entry (__vertex, _map) ; /* Removing entries */ +} + +void +EdgeXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { + + build_map (__par1, __par2) ; + + unsigned int len = __par1.size () ; + + /* Go ! */ + __child.clear () ; + + unsigned int cur_vertex = rng.random (len) ; + + add_vertex (cur_vertex, __child) ; + + for (unsigned int i = 1 ; i < len ; i ++) { + + unsigned int len_min_entry = MAXINT ; + + std :: set & neigh = _map [cur_vertex] ; + + for (std :: set :: iterator it = neigh.begin () ; it != neigh.end () ; it ++) + { + unsigned int l = _map [* it].size () ; + if (len_min_entry > l) + { + len_min_entry = l ; + } + } + + std :: vector cand ; /* Candidates */ + + for (std :: set :: iterator it = neigh.begin () ; it != neigh.end () ; it ++) + { + unsigned int l = _map [* it].size () ; + if (len_min_entry == l) + { + cand.push_back (* it) ; + } + } + + if (! cand.size ()) + { + + /* Oh no ! Implicit mutation */ + for (unsigned int j = 0 ; j < len ; j ++) + { + if (! visited [j]) + { + cand.push_back (j) ; + } + } + } + + cur_vertex = cand [rng.random (cand.size ())] ; + + add_vertex (cur_vertex, __child) ; + } +} + +bool +EdgeXover :: operator () (Route & __route1, Route & __route2) +{ + + // Init. copy + Route par [2] ; + par [0] = __route1 ; + par [1] = __route2 ; + + cross (par [0], par [1], __route1) ; + cross (par [1], par [0], __route2) ; + + assert (valid (__route1)) ; + assert (valid (__route2)) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/edge_xover.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/edge_xover.h new file mode 100644 index 000000000..3c22e2f8f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/edge_xover.h @@ -0,0 +1,47 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "edge_xover.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef edge_xover_h +#define edge_xover_h + +#include +#include + +#include + +#include "route.h" + +/** Edge Crossover */ +class EdgeXover : public eoQuadOp +{ + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */ + + void remove_entry (unsigned int __vertex, std :: vector > & __map) ; + /* Updating the map of entries */ + + void build_map (const Route & __par1, const Route & __par2) ; + + void add_vertex (unsigned int __vertex, Route & __child) ; + + std :: vector > _map ; /* The handled map */ + + std :: vector visited ; /* Vertices that are already visited */ + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/graph.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/graph.cpp new file mode 100644 index 000000000..0a0e07fcd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/graph.cpp @@ -0,0 +1,90 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "graph.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include "graph.h" + +namespace Graph { + + static std :: vector > vectCoord ; // Coordinates + + static std :: vector > dist ; // Distances Mat. + + unsigned size () + { + return dist.size () ; + } + + void computeDistances () + { + + // Dim. + unsigned int numCities = vectCoord.size () ; + dist.resize (numCities) ; + for (unsigned int i = 0 ; i < dist.size () ; i ++) + { + dist [i].resize (numCities) ; + } + + // Computations. + for (unsigned int i = 0 ; i < dist.size () ; i ++) + { + for (unsigned int j = i + 1 ; j < dist.size () ; j ++) + { + double distX = (double)(vectCoord [i].first - vectCoord [j].first) ; + double distY = (double)(vectCoord [i].second - vectCoord [j].second) ; + dist [i] [j] = dist [j] [i] = (unsigned) (sqrt ((float) (distX * distX + distY * distY)) + 0.5) ; + } + } + } + + void load (const char * __fileName) + { + + std :: ifstream f (__fileName) ; + + std :: cout << ">> Loading [" << __fileName << "]" << std :: endl ; + + if (f) + { + unsigned int num_vert ; + + f >> num_vert ; + vectCoord.resize (num_vert) ; + + for (unsigned int i = 0 ; i < num_vert ; i ++) + { + f >> vectCoord [i].first >> vectCoord [i].second ; + } + + f.close () ; + + computeDistances () ; + } + else + { + + std :: cout << __fileName << " doesn't exist !!!" << std :: endl ; + // Bye !!! + exit (1) ; + } + } + + float distance (unsigned int __from, unsigned int __to) + { + return (float)(dist [__from] [__to]) ; + } +} + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/graph.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/graph.h new file mode 100644 index 000000000..19baf8ac4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/graph.h @@ -0,0 +1,30 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "graph.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef graph_h +#define graph_h + +#include +#include + +namespace Graph +{ + void load (const char * __file_name) ; + /* Loading cities + (expressed by their coordinates) + from the given file name */ + + float distance (unsigned int __from, unsigned int __to) ; + + unsigned int size () ; // How many cities ? +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/mix.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/mix.h new file mode 100644 index 000000000..390168d54 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/mix.h @@ -0,0 +1,25 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "mix.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef mix_h +#define mix_h + +#include + +template void mix (std :: vector & __vect) +{ + for (unsigned int i = 0 ; i < __vect.size () ; i ++) + { + std :: swap (__vect [i], __vect [rng.random (__vect.size ())]) ; + } +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/order_xover.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/order_xover.cpp new file mode 100644 index 000000000..54de70705 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/order_xover.cpp @@ -0,0 +1,94 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "order_xover.cpp" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include + +#include "order_xover.h" +#include "route_valid.h" + +void OrderXover :: cross (const Route & __par1, const Route & __par2, Route & __child) +{ + + unsigned int cut = rng.random (__par1.size ()) ; + + /* To store vertices that have + already been crossed */ + std::vector v; + v.resize(__par1.size()); + + for (unsigned int i = 0 ; i < __par1.size () ; i ++) + { + v [i] = false ; + } + + /* Copy of the left partial + route of the first parent */ + for (unsigned int i = 0 ; i < cut ; i ++) + { + __child [i] = __par1 [i] ; + v [__par1 [i]] = true ; + } + + /* Searching the vertex of the second path, that ended + the previous first one */ + unsigned int from = 0 ; + for (unsigned int i = 0 ; i < __par2.size () ; i ++) + { + if (__par2 [i] == __child [cut - 1]) + { + from = i ; + break ; + } + } + + /* Selecting a direction + Left or Right */ + char direct = rng.flip () ? 1 : -1 ; + + /* Copy of the left vertices from + the second parent path */ + unsigned int l = cut ; + + for (unsigned int i = 0 ; i < __par2.size () ; i ++) + { + unsigned int bidule /* :-) */ = (direct * i + from + __par2.size ()) % __par2.size () ; + if (! v [__par2 [bidule]]) + { + __child [l ++] = __par2 [bidule] ; + v [__par2 [bidule]] = true ; + } + } + + v.clear(); +} + +bool OrderXover :: operator () (Route & __route1, Route & __route2) +{ + + // Init. copy + Route par [2] ; + par [0] = __route1 ; + par [1] = __route2 ; + + cross (par [0], par [1], __route1) ; + cross (par [1], par [0], __route2) ; + + assert (valid (__route1)) ; + assert (valid (__route2)) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/order_xover.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/order_xover.h new file mode 100644 index 000000000..587c35652 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/order_xover.h @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "order_xover.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef order_xover_h +#define order_xover_h + +#include + +#include "route.h" + +/** Order Crossover */ +class OrderXover : public eoQuadOp +{ + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void cross (const Route & __par1, const Route & __par2, Route & __child) ; +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_route_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_route_eval.cpp new file mode 100644 index 000000000..53e41a5d4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_route_eval.cpp @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_route_eval.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "part_route_eval.h" +#include "graph.h" + +PartRouteEval :: PartRouteEval (float __from, float __to) : from (__from), to (__to) {} + +void PartRouteEval :: operator () (Route & __route) +{ + float len = 0 ; + + for (unsigned int i = (unsigned int) (__route.size () * from) ; i < (unsigned int ) (__route.size () * to) ; i ++) + { + len -= Graph :: distance (__route [i], __route [(i + 1) % Graph :: size ()]) ; + } + + __route.fitness (len) ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_route_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_route_eval.h new file mode 100644 index 000000000..2fbd3b35c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_route_eval.h @@ -0,0 +1,37 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_route_eval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef part_route_eval_h +#define part_route_eval_h + +#include + +#include "route.h" + +/** Route Evaluator */ +class PartRouteEval : public eoEvalFunc +{ + +public : + + /** Constructor */ + PartRouteEval (float __from, float __to) ; + + void operator () (Route & __route) ; + +private : + + float from, to ; + +} ; + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_init.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_init.cpp new file mode 100644 index 000000000..9f674916c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_init.cpp @@ -0,0 +1,20 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_init.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "part_two_opt_init.h" + +void PartTwoOptInit :: operator () (TwoOpt & __move, const Route & __route) +{ + __move.first = rng.random (__route.size () - 6) ; + __move.second = __move.first + 2 ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_init.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_init.h new file mode 100644 index 000000000..406a4c64f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_init.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_init.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef part_two_opt_init_h +#define part_two_opt_init_h + +#include + +#include "two_opt.h" + +/** It sets the first couple of edges */ +class PartTwoOptInit : public moMoveInit +{ + +public : + + void operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_next.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_next.cpp new file mode 100644 index 000000000..3fab484ec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_next.cpp @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_next.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "part_two_opt_next.h" +#include "graph.h" + +bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) +{ + if (__move.first == Graph :: size () - 4 && __move.second == __move.first + 2) + { + return false ; + } + else + { + __move.second ++ ; + if (__move.second == Graph :: size () - 1) + { + __move.first ++ ; + __move.second = __move.first + 2 ; + } + + return true ; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_next.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_next.h new file mode 100644 index 000000000..e9ef5bb4e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/part_two_opt_next.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "part_two_opt_next.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef part_two_opt_next_h +#define part_two_opt_next_h + +#include +#include "two_opt.h" + +/** It updates a couple of edges */ +class PartTwoOptNext : public moNextMove +{ + +public : + + bool operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/partial_mapped_xover.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/partial_mapped_xover.cpp new file mode 100644 index 000000000..2c57e70a3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/partial_mapped_xover.cpp @@ -0,0 +1,93 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "partial_mapped_xover.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include + +#include + +#include "partial_mapped_xover.h" +#include "route_valid.h" +#include "mix.h" + +void PartialMappedXover :: repair (Route & __route, unsigned __cut1, unsigned __cut2) +{ + + std::vector v; // Number of times a cities are visited ... + + v.resize(__route.size ()); + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + v [i] = 0 ; + } + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + v [__route [i]] ++ ; + } + + std :: vector vert ; + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + if (! v [i]) + { + vert.push_back (i) ; + } + } + + mix (vert) ; + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + if (i < __cut1 || i >= __cut2) + { + if (v [__route [i]] > 1) + { + __route [i] = vert.back () ; + vert.pop_back () ; + } + } + } + + v.clear(); +} + +bool PartialMappedXover :: operator () (Route & __route1, Route & __route2) +{ + unsigned int cut1 = rng.random (__route1.size ()), cut2 = rng.random (__route2.size ()) ; + + if (cut2 < cut1) + { + std :: swap (cut1, cut2) ; + } + + // Between the cuts + for (unsigned int i = cut1 ; i < cut2 ; i ++) + { + std :: swap (__route1 [i], __route2 [i]) ; + } + + // Outside the cuts + repair (__route1, cut1, cut2) ; + repair (__route2, cut1, cut2) ; + + // Debug + assert (valid (__route1)) ; + assert (valid (__route2)) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/partial_mapped_xover.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/partial_mapped_xover.h new file mode 100644 index 000000000..a128fb9de --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/partial_mapped_xover.h @@ -0,0 +1,31 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "partial_mapped_xover.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef partial_mapped_xover_h +#define partial_mapped_xover_h + +#include + +#include "route.h" + +/** Partial Mapped Crossover */ +class PartialMappedXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void repair (Route & __route, unsigned __cut1, unsigned __cut2) ; +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route.h new file mode 100644 index 000000000..2489b63bc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route.h @@ -0,0 +1,19 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_h +#define route_h + +#include + +typedef eoVector Route ; // [Fitness (- length), Gene (city)] + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_eval.cpp new file mode 100644 index 000000000..0d0d6e413 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_eval.cpp @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_eval.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* TEXT LICENCE + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route_eval.h" +#include "graph.h" + +void RouteEval :: operator () (Route & __route) +{ + + float len = 0 ; + + for (unsigned int i = 0 ; i < Graph :: size () ; i ++) + { + len -= Graph :: distance (__route [i], __route [(i + 1) % Graph :: size ()]) ; + } + + __route.fitness (len) ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_eval.h new file mode 100644 index 000000000..69b9c7737 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_eval.h @@ -0,0 +1,30 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_eval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_eval_h +#define route_eval_h + +#include + +#include "route.h" + +/** Route Evaluator */ +class RouteEval : public eoEvalFunc +{ + +public : + + void operator () (Route & __route) ; + +} ; + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_init.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_init.cpp new file mode 100644 index 000000000..f22ca1bf2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_init.cpp @@ -0,0 +1,38 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_init.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "route_init.h" +#include "graph.h" + +void RouteInit :: operator () (Route & __route) +{ + + // Init. + __route.clear () ; + for (unsigned int i = 0 ; i < Graph :: size () ; i ++) + { + __route.push_back (i) ; + } + + // Swap. cities + + for (unsigned int i = 0 ; i < Graph :: size () ; i ++) + { + //unsigned int j = rng.random (Graph :: size ()) ; + + unsigned int j = (unsigned int) (Graph :: size () * (rand () / (RAND_MAX + 1.0))) ; + unsigned int city = __route [i] ; + __route [i] = __route [j] ; + __route [j] = city ; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_init.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_init.h new file mode 100644 index 000000000..654c1a926 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_init.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_init.h" + +// (c) OPAC Team, LIFL, 2002-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_init_h +#define route_init_h + +#include + +#include "route.h" + +class RouteInit : public eoInit +{ + +public : + + void operator () (Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_valid.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_valid.cpp new file mode 100644 index 000000000..be4c7fc0c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_valid.cpp @@ -0,0 +1,43 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_valid.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route_valid.h" + +#include + +bool valid (Route & __route) +{ + + std::vector t; + t.resize(__route.size()); + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + t [i] = 0 ; + } + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + t [__route [i]] ++ ; + } + + for (unsigned int i = 0 ; i < __route.size () ; i ++) + { + if (t [i] != 1) + { + t.clear(); + return false ; + } + } + + t.clear(); + return true ; // OK. +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_valid.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_valid.h new file mode 100644 index 000000000..90763d7fc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/route_valid.h @@ -0,0 +1,19 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "route_valid.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef route_valid_h +#define route_valid_h + +#include "route.h" + +bool valid (Route & __route) ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt.cpp new file mode 100644 index 000000000..9aa779d50 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt.cpp @@ -0,0 +1,47 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt.h" + +TwoOpt TwoOpt :: operator ! () const +{ + TwoOpt move = * this ; + std :: swap (move.first, move.second) ; + + return move ; +} + +void TwoOpt :: operator () (Route & __route) +{ + + std :: vector seq_cities ; + + for (unsigned int i = second ; i > first ; i --) + { + seq_cities.push_back (__route [i]) ; + } + + unsigned int j = 0 ; + for (unsigned int i = first + 1 ; i < second + 1 ; i ++) + { + __route [i] = seq_cities [j ++] ; + } +} + +void TwoOpt :: readFrom (std :: istream & __is) +{ + __is >> first >> second ; +} + +void TwoOpt :: printOn (std :: ostream & __os) const +{ + __os << first << ' ' << second ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt.h new file mode 100644 index 000000000..279a813c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt.h @@ -0,0 +1,36 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_h +#define two_opt_h + +#include + +#include +#include + +#include "route.h" + +class TwoOpt : public moMove , public std :: pair , public eoPersistent +{ + +public : + + TwoOpt operator ! () const ; + + void operator () (Route & __route) ; + + void readFrom (std :: istream & __is) ; + + void printOn (std :: ostream & __os) const ; +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_incr_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_incr_eval.cpp new file mode 100644 index 000000000..1b371104b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_incr_eval.cpp @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "TwoOptIncrEval.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_incr_eval.h" +#include "graph.h" + +float TwoOptIncrEval :: operator () (const TwoOpt & __move, const Route & __route) +{ + // From + unsigned int v1 = __route [__move.first], v1_next = __route [__move.first + 1] ; + + // To + unsigned int v2 = __route [__move.second], v2_next = __route [__move.second + 1] ; + + return __route.fitness () + - Graph :: distance (v1, v2) + - Graph :: distance (v1_next, v2_next) + + Graph :: distance (v1, v1_next) + + Graph :: distance (v2, v2_next) ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_incr_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_incr_eval.h new file mode 100644 index 000000000..233cb264d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_incr_eval.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "TwoOptIncrEval.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_optincr_eval_h +#define two_optincr_eval_h + +#include +#include "two_opt.h" + +class TwoOptIncrEval : public moMoveIncrEval +{ + +public : + + float operator () (const TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_init.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_init.cpp new file mode 100644 index 000000000..bc464f6ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_init.cpp @@ -0,0 +1,18 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_init.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_init.h" + +void TwoOptInit :: operator () (TwoOpt & __move, const Route & __route) +{ + __move.first = 0 ; + __move.second = 2 ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_init.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_init.h new file mode 100644 index 000000000..b8460f69e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_init.h @@ -0,0 +1,29 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_init.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_init_h +#define two_opt_init_h + +#include + +#include "two_opt.h" + +/** It sets the first couple of edges */ +class TwoOptInit : public moMoveInit +{ + +public : + + void operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_next.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_next.cpp new file mode 100644 index 000000000..d0b297f51 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_next.cpp @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_next.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_next.h" +#include "graph.h" + +bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) +{ + if (__move.first == Graph :: size () - 4 && __move.second == __move.first + 2) + { + return false ; + } + else + { + __move.second ++ ; + if (__move.second == Graph :: size () - 1) + { + __move.first ++ ; + __move.second = __move.first + 2 ; + } + + return true ; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_next.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_next.h new file mode 100644 index 000000000..ac60bc3e6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_next.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_next.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_next_h +#define two_opt_next_h + +#include +#include "two_opt.h" + +/** It updates a couple of edges */ +class TwoOptNext : public moNextMove +{ + +public : + + bool operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_rand.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_rand.cpp new file mode 100644 index 000000000..7db7f6cb7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_rand.cpp @@ -0,0 +1,20 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_rand.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_rand.h" +#include "graph.h" +#include + +void TwoOptRand :: operator () (TwoOpt & __move) +{ + __move.first = rng.random (Graph :: size () - 3) ; + __move.second = __move.first + 2 + rng.random (Graph :: size () - __move.first - 3) ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_rand.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_rand.h new file mode 100644 index 000000000..600cf8b77 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_rand.h @@ -0,0 +1,28 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_rand.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_rand_h +#define two_opt_rand_h + +#include + +#include "two_opt.h" + +class TwoOptRand : public moRandMove +{ + +public : + + void operator () (TwoOpt & __move) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_tabu_list.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_tabu_list.cpp new file mode 100644 index 000000000..f5492cde3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_tabu_list.cpp @@ -0,0 +1,58 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_tabu_list.cpp" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_tabu_list.h" +#include "graph.h" + +#define TABU_LENGTH 10 + +void TwoOptTabuList :: init () +{ + // Size (eventually) + tabu_span.resize (Graph :: size ()) ; + for (unsigned int i = 0 ; i < tabu_span.size () ; i ++) + { + tabu_span [i].resize (Graph :: size ()) ; + } + + // Clear + for (unsigned int i = 0 ; i < tabu_span.size () ; i ++) + { + for (unsigned int j = 0 ; j < tabu_span [i].size () ; j ++) + { + tabu_span [i] [j] = 0 ; + } + } +} + +bool TwoOptTabuList :: operator () (const TwoOpt & __move, const Route & __sol) +{ + return tabu_span [__move.first] [__move.second] > 0 ; +} + +void TwoOptTabuList :: add (const TwoOpt & __move, const Route & __sol) +{ + tabu_span [__move.first] [__move.second] = tabu_span [__move.second] [__move.first] = TABU_LENGTH ; +} + +void TwoOptTabuList :: update () +{ + for (unsigned int i = 0 ; i < tabu_span.size () ; i ++) + { + for (unsigned int j = 0 ; j < tabu_span [i].size () ; j ++) + { + if (tabu_span [i] [j] > 0) + { + tabu_span [i] [j] -- ; + } + } + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_tabu_list.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_tabu_list.h new file mode 100644 index 000000000..29c6c8439 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-mo/tutorial/examples/tsp/two_opt_tabu_list.h @@ -0,0 +1,38 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +// "two_opt_tabu_list.h" + +// (c) OPAC Team, LIFL, 2003-2006 + +/* LICENCE TEXT + + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef two_opt_tabu_list_h +#define two_opt_tabu_list_h + +#include +#include "two_opt.h" +#include "route.h" + +/** The table of tabu movements, i.e. forbidden edges */ +class TwoOptTabuList : public moTabuList +{ +public : + + bool operator () (const TwoOpt & __move, const Route & __sol) ; + + void add (const TwoOpt & __move, const Route & __sol) ; + + void update () ; + + void init () ; + +private : + + std :: vector > tabu_span ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/AUTHORS b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/AUTHORS new file mode 100644 index 000000000..50787a3ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/AUTHORS @@ -0,0 +1,4 @@ +Sébastien Cahon +Arnaud Liefooghe +Thomas Legrand +Abdelhakim Deneche diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/CMakeLists.txt new file mode 100644 index 000000000..d1fc05403 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/CMakeLists.txt @@ -0,0 +1,111 @@ + +###################################################################################### +### 0) If you want to set your variables in moeo-conf.cmake and avoid the cmd line +###################################################################################### + +INCLUDE(moeo-conf.cmake OPTIONAL) + +###################################################################################### + + +###################################################################################### +### 1) Main project config +###################################################################################### + +# set the project name +PROJECT(ParadisEO-MOEO) + +# check cmake version compatibility +CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) + +# regular expression checking +INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") + +# set a language for the entire project. +ENABLE_LANGUAGE(CXX) +ENABLE_LANGUAGE(C) + +##################################################################################### + + +##################################################################################### +### 2) Include required modules +##################################################################################### +INCLUDE(CMakeBackwardCompatibilityCXX) + +INCLUDE(FindDoxygen) + +INCLUDE(FindGnuplot) + +# check for some functions +INCLUDE(CheckLibraryExists) + +###################################################################################### + + +###################################################################################### +### 3) SET main paths (can be defined in moeo-conf.cmake) +###################################################################################### + +IF(NOT DEFINED MOEO_DIR) + SET(MOEO_DIR ${ParadisEO-MOEO_SOURCE_DIR} CACHE PATH "ParadisEO-MOEO main directory") +ENDIF(NOT DEFINED MOEO_DIR) + +# Need main EO directory path +IF(NOT DEFINED EO_DIR OR NOT EO_DIR) + SET(EO_DIR ${EOdir} CACHE PATH "ParadisEO-EO main directory" FORCE) # given on the command line +ELSE(NOT DEFINED EO_DIR OR NOT EO_DIR) + MESSAGE(STATUS "EOdir already defined as ${EO_DIR}") +ENDIF(NOT DEFINED EO_DIR OR NOT EO_DIR) + +# Set the main paths +IF(NOT DEFINED EO_SRC_DIR) + SET(EO_SRC_DIR "${EO_DIR}/src") +ENDIF(NOT DEFINED EO_SRC_DIR) + +IF(NOT DEFINED MOEO_SRC_DIR) + SET(MOEO_SRC_DIR ${MOEO_DIR}/src) +ENDIF(NOT DEFINED MOEO_SRC_DIR) + +IF(NOT DEFINED MOEO_DOC_DIR) + SET(MOEO_DOC_DIR ${MOEO_DIR}/doc) +ENDIF(NOT DEFINED MOEO_DOC_DIR) +###################################################################################### + + +###################################################################################### +### 4) Paths checking +###################################################################################### +IF(EXISTS ${EO_DIR}) + MESSAGE (STATUS "Using ParadisEO-EO path: ${EO_DIR}") +ELSE(EXISTS ${EO_DIR}) + MESSAGE (FATAL_ERROR "Could not find the ParadisEO-EO path: ${EO_DIR}. You should use : cmake . -DEOdir=") +ENDIF(EXISTS ${EO_DIR}) + +# Is it an absolute path ? +IF(WIN32) + SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:") +ELSE(WIN32) + SET (ABSOLUTE_PATH_REGEX "^/") +ENDIF(WIN32) + +IF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + MESSAGE (FATAL_ERROR "${EO_DIR} MUST BE an absolute path") +ENDIF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + +IF(WIN32) + SET(EO_LIB_DIR "${EO_DIR}\\win\\lib\\") +ELSE(WIN32) + SET(EO_LIB_DIR "${EO_DIR}/src") +ENDIF(WIN32) + +###################################################################################### + + +###################################################################################### +### 5) Where must cmake go now ? +###################################################################################### + +SUBDIRS(doc src tutorial) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/NEWS b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/NEWS new file mode 100644 index 000000000..52e218e1c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/NEWS @@ -0,0 +1 @@ +* release 1.0 diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/README b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/README new file mode 100644 index 000000000..a4ec3b608 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/README @@ -0,0 +1,81 @@ + PARADISEO-MOEO README FILE +======================================================================= + check latest news at http://paradiseo.gforge.inria.fr/ +======================================================================= + +Welcome to ParadisEO-MOEO, the Multi-Objective Evolving Objects library. +The latest news about ParadisEO-MOEO can be found on the gforge repository at +http://paradiseo.gforge.inria.fr/ +In case of any problem, please e-mail us at +paradiseo-help@lists.gforge.inria.fr + + +======================================================================= + BUILDING PARADISEO-MOEO +======================================================================= +The basic installation procedure goes the following. + +To compile paradiseo-moeo in the default directory, +go to paradiseo-moeo/build/ and run: + > cmake ../ -DEOdir=$(EO_SRC) + > make + // for an easy-use of the provided lessons + > make install + // optional (if the documentation is not already available) + > make doc + +To compile paradiseo-moeo anywhere else, simply run: + > cmake $(MOEO) -DEOdir=$(EO_SRC) + > make + // for an easy-use of the provided lessons + > make install + // optional (if the documentation is not already available) + > make doc + +where $(EO_SRC) is the top-level source directory of PARADISEO-EO, +and $(MOEO) is the top-level directory of PARADISEO-MOEO. + +To clean everything, simply run + > make clean + +======================================================================= + DIRECTORY STRUCTURE +======================================================================= +After unpacking the archive file, you should end up with the following +structure: + +.../ The main PARADISEO-MOEO directory, created when unpacking. + | + | + +-- build BUILD directory that contains libraries and executable files. + | + | + +-- src SOURCE directory that contains PARADISEO-MOEO source files. + | + | + +-- doc DOCUMENTATION directory (generated by Doxygen). + | | + | +-- html HTML files - start at index.html. + | | + | +-- latex latex files - use to generate Postcript doc. + | | + | +-- man Unix man format documentation. + | + | + +-- tutorial TUTORIAL directory that contains with lessons. + | + +-- examples APPLICATIONS - one directory per separate application. + | | + | +-- flowshop Flow-shop scheduling problem example source files. + | | + | +-- benchs Benchmark suites for the flow-shop. + | + +-- Lesson1 A bi-objective flow-shop problem example solved using main MOEAs. + | + +-- Lesson2 NSGA-II to solve the SCH1 problem. + +======================================================================= + NOTES +======================================================================= + +Mailing list : paradiseo-help@lists.gforge.inria.fr diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/CMakeLists.txt new file mode 100644 index 000000000..427bdf9ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/CMakeLists.txt @@ -0,0 +1,38 @@ + +### ParadisEO-MOEO Doc generation using Doxygen ### + +# Find the Doxygen package - will set all the variables required to use Doxygen +FIND_PACKAGE(Doxygen) + +IF (DOXYGEN_FOUND) + +SET(MOEO_DOC_COMMENT "ParadisEO-MOEO framework documentation") +SET(DOXYGEN_INPUT "moeo.doxyfile") +SET(DOXYGEN_OUTPUT "ParadisEO-MOEO documentation") + +ADD_CUSTOM_COMMAND( + OUTPUT ${DOXYGEN_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from ${MOEO_DOC_DIR} ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo "Done." + WORKING_DIRECTORY ${MOEO_DOC_DIR} + COMMENT ${MOEO_DOC_COMMENT} + DEPENDS ${DOXYGEN_INPUT} + ) + +# The main target launched with "make doc" +ADD_CUSTOM_TARGET(doc DEPENDS ${DOXYGEN_OUTPUT}) + +# A forced additionnal target that generate the documentation in the current directory +ADD_CUSTOM_TARGET(doc_forced + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from current directory ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo " Done." + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + +ELSE (DOXYGEN_FOUND) + MESSAGE(STATUS "Unable to generate the document, Doxygen package not found") +ENDIF (DOXYGEN_FOUND) + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/MOEO_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/MOEO_8h-source.html new file mode 100644 index 000000000..bf80259c1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/MOEO_8h-source.html @@ -0,0 +1,230 @@ + + +ParadisEO-MOEO: MOEO.h Source File + + + + +
+
+

MOEO.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // MOEO.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEO_H_
+00014 #define MOEO_H_
+00015 
+00016 #include <iostream>
+00017 #include <stdexcept>
+00018 #include <string>
+00019 #include <EO.h>
+00020 
+00033 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity >
+00034 class MOEO : public EO < MOEOObjectiveVector >
+00035 {
+00036 public:
+00037 
+00039     typedef MOEOObjectiveVector ObjectiveVector;
+00040 
+00042     typedef MOEOFitness Fitness;
+00043 
+00045     typedef MOEODiversity Diversity;
+00046 
+00047 
+00051     MOEO()
+00052     {
+00053         // default values for every parameters
+00054         objectiveVectorValue = ObjectiveVector();
+00055         fitnessValue = Fitness();
+00056         diversityValue = Diversity();
+00057         // invalidate all
+00058         invalidate();
+00059     }
+00060 
+00061 
+00065     virtual ~MOEO() {};
+00066 
+00067 
+00071     ObjectiveVector objectiveVector() const
+00072     {
+00073         if ( invalidObjectiveVector() )
+00074         {
+00075             throw std::runtime_error("invalid objective vector in MOEO");
+00076         }
+00077         return objectiveVectorValue;
+00078     }
+00079 
+00080 
+00085     void objectiveVector(const ObjectiveVector & _objectiveVectorValue)
+00086     {
+00087         objectiveVectorValue = _objectiveVectorValue;
+00088         invalidObjectiveVectorValue = false;
+00089     }
+00090 
+00091 
+00095     void invalidateObjectiveVector()
+00096     {
+00097         invalidObjectiveVectorValue = true;
+00098     }
+00099 
+00100 
+00104     bool invalidObjectiveVector() const
+00105     {
+00106         return invalidObjectiveVectorValue;
+00107     }
+00108 
+00109 
+00113     Fitness fitness() const
+00114     {
+00115         if ( invalidFitness() )
+00116         {
+00117             throw std::runtime_error("invalid fitness in MOEO");
+00118         }
+00119         return fitnessValue;
+00120     }
+00121 
+00122 
+00127     void fitness(const Fitness & _fitnessValue)
+00128     {
+00129         fitnessValue = _fitnessValue;
+00130         invalidFitnessValue = false;
+00131     }
+00132 
+00133 
+00137     void invalidateFitness()
+00138     {
+00139         invalidFitnessValue = true;
+00140     }
+00141 
+00142 
+00146     bool invalidFitness() const
+00147     {
+00148         return invalidFitnessValue;
+00149     }
+00150 
+00151 
+00155     Diversity diversity() const
+00156     {
+00157         if ( invalidDiversity() )
+00158         {
+00159             throw std::runtime_error("invalid diversity in MOEO");
+00160         }
+00161         return diversityValue;
+00162     }
+00163 
+00164 
+00169     void diversity(const Diversity & _diversityValue)
+00170     {
+00171         diversityValue = _diversityValue;
+00172         invalidDiversityValue = false;
+00173     }
+00174 
+00175 
+00179     void invalidateDiversity()
+00180     {
+00181         invalidDiversityValue = true;
+00182     }
+00183 
+00184 
+00188     bool invalidDiversity() const
+00189     {
+00190         return invalidDiversityValue;
+00191     }
+00192 
+00193 
+00197     void invalidate()
+00198     {
+00199         invalidateObjectiveVector();
+00200         invalidateFitness();
+00201         invalidateDiversity();
+00202     }
+00203 
+00204 
+00208     bool invalid() const
+00209     {
+00210         return invalidObjectiveVector();
+00211     }
+00212 
+00213 
+00220     bool operator<(const MOEO & _other) const
+00221     {
+00222         return objectiveVector() < _other.objectiveVector();
+00223     }
+00224 
+00225 
+00229     virtual std::string className() const
+00230     {
+00231         return "MOEO";
+00232     }
+00233 
+00234 
+00239     virtual void printOn(std::ostream & _os) const
+00240     {
+00241         if ( invalidObjectiveVector() )
+00242         {
+00243             _os << "INVALID\t";
+00244         }
+00245         else
+00246         {
+00247             _os << objectiveVectorValue << '\t';
+00248         }
+00249     }
+00250 
+00251 
+00256     virtual void readFrom(std::istream & _is)
+00257     {
+00258         std::string objectiveVector_str;
+00259         int pos = _is.tellg();
+00260         _is >> objectiveVector_str;
+00261         if (objectiveVector_str == "INVALID")
+00262         {
+00263             invalidateObjectiveVector();
+00264         }
+00265         else
+00266         {
+00267             invalidObjectiveVectorValue = false;
+00268             _is.seekg(pos); // rewind
+00269             _is >> objectiveVectorValue;
+00270         }
+00271     }
+00272 
+00273 
+00274 private:
+00275 
+00277     ObjectiveVector objectiveVectorValue;
+00279     bool invalidObjectiveVectorValue;
+00281     Fitness fitnessValue;
+00283     bool invalidFitnessValue;
+00285     Diversity diversityValue;
+00287     bool invalidDiversityValue;
+00288 
+00289 };
+00290 
+00291 #endif /*MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/annotated.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/annotated.html new file mode 100644 index 000000000..9dbcf38c5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/annotated.html @@ -0,0 +1,118 @@ + + +ParadisEO-MOEO: Class List + + + + +
+
+ +

ParadisEO-MOEO Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >Base class allowing to represent a solution (an individual) for multi-objective optimization
moeoAchievementFitnessAssignment< MOEOT >Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980)
moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C
moeoAggregativeComparator< MOEOT >Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value
moeoAlgoAbstract class for multi-objective algorithms
moeoArchive< MOEOT >An archive is a secondary population that stores non-dominated solutions
moeoArchiveObjectiveVectorSavingUpdater< MOEOT >This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation
moeoArchiveUpdater< MOEOT >This class allows to update the archive at each generation with newly found non-dominated solutions
moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >MoeoIndicatorBasedFitnessAssignment for binary indicators
moeoBinaryMetric< A1, A2, R >Base class for binary metrics
moeoBinaryMetricSavingUpdater< MOEOT >This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file
moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >This class is an implementationeo of a simple bit-valued moeoVector
moeoCombinedLS< MOEOT, Type >This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions
moeoComparator< MOEOT >Functor allowing to compare two solutions
moeoContributionMetric< ObjectiveVector >The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc
moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >Functor allowing to get a vector of objective vectors from a population
moeoCriterionBasedFitnessAssignment< MOEOT >MoeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies
moeoCrowdingDiversityAssignment< MOEOT >Diversity assignment sheme based on crowding proposed in: K
moeoDetTournamentSelect< MOEOT >Selection strategy that selects ONE individual by deterministic tournament
moeoDistance< MOEOT, Type >The base class for distance computation
moeoDistanceMatrix< MOEOT, Type >A matrix to compute distances between every pair of individuals contained in a population
moeoDiversityAssignment< MOEOT >Functor that sets the diversity values of a whole population
moeoDiversityThenFitnessComparator< MOEOT >Functor allowing to compare two solutions according to their diversity values, then according to their fitness values
moeoDummyDiversityAssignment< MOEOT >MoeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid
moeoDummyFitnessAssignment< MOEOT >MoeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid
moeoEA< MOEOT >Abstract class for multi-objective evolutionary algorithms
moeoEasyEA< MOEOT >An easy class to design multi-objective evolutionary algorithms
moeoEasyEA< MOEOT >::eoDummyEvalDummy eval
moeoEasyEA< MOEOT >::eoDummySelectDummy select
moeoEasyEA< MOEOT >::eoDummyTransformDummy transform
moeoElitistReplacement< MOEOT >Elitist replacement strategy that consists in keeping the N best individuals
moeoElitistReplacement< MOEOT >::CmpThis object is used to compare solutions in order to sort the population
moeoEntropyMetric< ObjectiveVector >The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc
moeoEnvironmentalReplacement< MOEOT >Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion
moeoEnvironmentalReplacement< MOEOT >::CmpThis object is used to compare solutions in order to sort the population
moeoEuclideanDistance< MOEOT >A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e
moeoEvalFunc< MOEOT >
moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >Fitness assignment sheme based on an indicator proposed in: E
moeoFastNonDominatedSortingFitnessAssignment< MOEOT >Fitness assignment sheme based on Pareto-dominance count proposed in: N
moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparatorFunctor allowing to compare two solutions according to their first objective value, then their second, and so on
moeoFitnessAssignment< MOEOT >Functor that sets the fitness values of a whole population
moeoFitnessThenDiversityComparator< MOEOT >Functor allowing to compare two solutions according to their fitness values, then according to their diversity values
moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >Diversity assignment sheme based on crowding proposed in: K
moeoFrontByFrontSharingDiversityAssignment< MOEOT >Sharing assignment scheme on the way it is used in NSGA
moeoGDominanceObjectiveVectorComparator< ObjectiveVector >This functor class allows to compare 2 objective vectors according to g-dominance
moeoGenerationalReplacement< MOEOT >Generational replacement: only the new individuals are preserved
moeoHybridLS< MOEOT >This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified
moeoHypervolumeBinaryMetric< ObjectiveVector >Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S
moeoIBEA< MOEOT >IBEA (Indicator-Based Evolutionary Algorithm) as described in: E
moeoIndicatorBasedFitnessAssignment< MOEOT >MoeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies
moeoLS< MOEOT, Type >Abstract class for local searches applied to multi-objective optimization
moeoManhattanDistance< MOEOT >A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e
moeoMetricBase class for performance metrics (also known as quality indicators)
moeoNormalizedDistance< MOEOT, Type >The base class for double distance computation with normalized objective values (i.e
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values
moeoNSGA< MOEOT >NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N
moeoNSGAII< MOEOT >NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S
moeoObjectiveObjectiveVectorComparator< ObjectiveVector >Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on
moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >Abstract class allowing to represent a solution in the objective space (phenotypic representation)
moeoObjectiveVectorComparator< ObjectiveVector >Abstract class allowing to compare 2 objective vectors
moeoObjectiveVectorTraitsA traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized
moeoOneObjectiveComparator< MOEOT >Functor allowing to compare two solutions according to one objective
moeoParetoBasedFitnessAssignment< MOEOT >MoeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies
moeoParetoObjectiveVectorComparator< ObjectiveVector >This functor class allows to compare 2 objective vectors according to Pareto dominance
moeoRandomSelect< MOEOT >Selection strategy that selects only one element randomly from a whole population
moeoRealObjectiveVector< ObjectiveVectorTraits >This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e
moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >This class is an implementation of a simple double-valued moeoVector
moeoReplacement< MOEOT >Replacement strategy for multi-objective optimization
moeoRouletteSelect< MOEOT >Selection strategy that selects ONE individual by using roulette wheel process
moeoScalarFitnessAssignment< MOEOT >MoeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies
moeoSelectFromPopAndArch< MOEOT >Elitist selection process that consists in choosing individuals in the archive as well as in the current population
moeoSelectOne< MOEOT >Selection strategy for multi-objective optimization that selects only one element from a whole population
moeoSharingDiversityAssignment< MOEOT >Sharing assignment scheme originally porposed by: D
moeoSolutionUnaryMetric< ObjectiveVector, R >Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector
moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors
moeoStochTournamentSelect< MOEOT >Selection strategy that selects ONE individual by stochastic tournament
moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >MoeoIndicatorBasedFitnessAssignment for unary indicators
moeoUnaryMetric< A, R >Base class for unary metrics
moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison)
moeoVectorUnaryMetric< ObjectiveVector, R >Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors)
moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors)
+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO-members.html new file mode 100644 index 000000000..62f9e30bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO-members.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Member List

This is the complete list of members for MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
className() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversityValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
fitnessValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversityValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitnessValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVectorValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVectorValueMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [private]
operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
readFrom(std::istream &_is)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO.html new file mode 100644 index 000000000..eeb0dc648 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO.html @@ -0,0 +1,388 @@ + + +ParadisEO-MOEO: MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference + + + + +
+
+ +

MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

Base class allowing to represent a solution (an individual) for multi-objective optimization. +More... +

+#include <MOEO.h> +

+

Inheritance diagram for MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >: +

+ +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > +moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOObjectiveVector ObjectiveVector
 the objective vector type of a solution
+typedef MOEOFitness Fitness
 the fitness type of a solution
+typedef MOEODiversity Diversity
 the diversity type of a solution

Public Member Functions

MOEO ()
 Ctor.
+virtual ~MOEO ()
 Virtual dtor.
+ObjectiveVector objectiveVector () const
 Returns the objective vector of the current solution.
void objectiveVector (const ObjectiveVector &_objectiveVectorValue)
 Sets the objective vector of the current solution.
+void invalidateObjectiveVector ()
 Sets the objective vector as invalid.
+bool invalidObjectiveVector () const
 Returns true if the objective vector is invalid, false otherwise.
+Fitness fitness () const
 Returns the fitness value of the current solution.
void fitness (const Fitness &_fitnessValue)
 Sets the fitness value of the current solution.
+void invalidateFitness ()
 Sets the fitness value as invalid.
+bool invalidFitness () const
 Returns true if the fitness value is invalid, false otherwise.
+Diversity diversity () const
 Returns the diversity value of the current solution.
void diversity (const Diversity &_diversityValue)
 Sets the diversity value of the current solution.
+void invalidateDiversity ()
 Sets the diversity value as invalid.
+bool invalidDiversity () const
 Returns true if the diversity value is invalid, false otherwise.
+void invalidate ()
 Sets the objective vector, the fitness value and the diversity value as invalid.
+bool invalid () const
 Returns true if the fitness value is invalid, false otherwise.
bool operator< (const MOEO &_other) const
 Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
+virtual std::string className () const
 Return the class id (the class name as a std::string).
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.

Private Attributes

+ObjectiveVector objectiveVectorValue
 the objective vector of this solution
+bool invalidObjectiveVectorValue
 true if the objective vector is invalid
+Fitness fitnessValue
 the fitness value of this solution
+bool invalidFitnessValue
 true if the fitness value is invalid
+Diversity diversityValue
 the diversity value of this solution
+bool invalidDiversityValue
 true if the diversity value is invalid
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ class MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+ +Base class allowing to represent a solution (an individual) for multi-objective optimization. +

+The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a moeoObjectiveVector object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Using some specific representations, you will have to define a copy constructor if the default one is not what you want. In the same cases, you will also have to define the affectation operator (operator=). Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. Besides, note that, contrary to the mono-objective case (and to EO) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. +

+ +

+Definition at line 34 of file MOEO.h.


Member Function Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector (const ObjectiveVector _objectiveVectorValue  )  [inline]
+
+
+ +

+Sets the objective vector of the current solution. +

+

Parameters:
+ + +
_objectiveVectorValue the new objective vector
+
+ +

+Definition at line 85 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitness (const Fitness _fitnessValue  )  [inline]
+
+
+ +

+Sets the fitness value of the current solution. +

+

Parameters:
+ + +
_fitnessValue the new fitness value
+
+ +

+Definition at line 127 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitnessValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidFitnessValue. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversity (const Diversity _diversityValue  )  [inline]
+
+
+ +

+Sets the diversity value of the current solution. +

+

Parameters:
+ + +
_diversityValue the new diversity value
+
+ +

+Definition at line 169 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversityValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidDiversityValue. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
bool MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator< (const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > &  _other  )  const [inline]
+
+
+ +

+Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+You should implement another function in the sub-class of MOEO to have another sorting mecanism.

Parameters:
+ + +
_other the other MOEO object to compare with
+
+ +

+Definition at line 220 of file MOEO.h. +

+References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector(). +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream &  _os  )  const [inline, virtual]
+
+ +

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream &  _is  )  [inline, virtual]
+
+ +

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO.png new file mode 100644 index 000000000..43ac723c7 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classMOEO.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classes.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classes.html new file mode 100644 index 000000000..5b16de773 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classes.html @@ -0,0 +1,56 @@ + + +ParadisEO-MOEO: Alphabetical List + + + + +
+
+ +

ParadisEO-MOEO Class Index

A | B | C | D | E | F | G | H | I | L | M | N | O | P | R | S | U | V

+ +
  A  
+
moeoEasyEA::eoDummyTransform   moeoNormalizedSolutionVsSolutionBinaryMetric   
moeoAchievementFitnessAssignment   moeoElitistReplacement   moeoNSGA   
moeoAdditiveEpsilonBinaryMetric   moeoElitistReplacement::Cmp   moeoNSGAII   
moeoAggregativeComparator   moeoEntropyMetric   
  O  
+
moeoAlgo   moeoEnvironmentalReplacement   moeoObjectiveObjectiveVectorComparator   
moeoArchive   moeoEnvironmentalReplacement::Cmp   moeoObjectiveVector   
moeoArchiveObjectiveVectorSavingUpdater   moeoEuclideanDistance   moeoObjectiveVectorComparator   
moeoArchiveUpdater   moeoEvalFunc   moeoObjectiveVectorTraits   
  B  
+
moeoExpBinaryIndicatorBasedFitnessAssignment   moeoOneObjectiveComparator   
moeoBinaryIndicatorBasedFitnessAssignment   
  F  
+
  P  
+
moeoBinaryMetric   moeoFastNonDominatedSortingFitnessAssignment   moeoParetoBasedFitnessAssignment   
moeoBinaryMetricSavingUpdater   moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator   moeoParetoObjectiveVectorComparator   
moeoBitVector   moeoFitnessAssignment   
  R  
+
  C  
+
moeoFitnessThenDiversityComparator   moeoRandomSelect   
moeoCombinedLS   moeoFrontByFrontCrowdingDiversityAssignment   moeoRealObjectiveVector   
moeoComparator   moeoFrontByFrontSharingDiversityAssignment   moeoRealVector   
moeoContributionMetric   
  G  
+
moeoReplacement   
moeoConvertPopToObjectiveVectors   moeoGDominanceObjectiveVectorComparator   moeoRouletteSelect   
moeoCriterionBasedFitnessAssignment   moeoGenerationalReplacement   
  S  
+
moeoCrowdingDiversityAssignment   
  H  
+
moeoScalarFitnessAssignment   
  D  
+
moeoHybridLS   moeoSelectFromPopAndArch   
moeoDetTournamentSelect   moeoHypervolumeBinaryMetric   moeoSelectOne   
moeoDistance   
  I  
+
moeoSharingDiversityAssignment   
moeoDistanceMatrix   moeoIBEA   moeoSolutionUnaryMetric   
moeoDiversityAssignment   moeoIndicatorBasedFitnessAssignment   moeoSolutionVsSolutionBinaryMetric   
moeoDiversityThenFitnessComparator   
  L  
+
moeoStochTournamentSelect   
moeoDummyDiversityAssignment   moeoLS   
  U  
+
moeoDummyFitnessAssignment   
  M  
+
moeoUnaryIndicatorBasedFitnessAssignment   
  E  
+
moeoManhattanDistance   moeoUnaryMetric   
moeoEA   moeoMetric   
  V  
+
moeoEasyEA   MOEO   moeoVector   
moeoEasyEA::eoDummyEval   
  N  
+
moeoVectorUnaryMetric   
moeoEasyEA::eoDummySelect   moeoNormalizedDistance   moeoVectorVsVectorBinaryMetric   

A | B | C | D | E | F | G | H | I | L | M | N | O | P | R | S | U | V

+


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html new file mode 100644 index 000000000..46ea4dc6e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoAchievementFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoAchievementFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
compute(MOEOT &_moeo)moeoAchievementFitnessAssignment< MOEOT > [inline, private]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
inf() const moeoAchievementFitnessAssignment< MOEOT > [inline, private]
lambdasmoeoAchievementFitnessAssignment< MOEOT > [private]
moeoAchievementFitnessAssignment(ObjectiveVector &_reference, std::vector< double > &_lambdas, double _spn=0.0001)moeoAchievementFitnessAssignment< MOEOT > [inline]
moeoAchievementFitnessAssignment(ObjectiveVector &_reference, double _spn=0.0001)moeoAchievementFitnessAssignment< MOEOT > [inline]
ObjectiveVector typedefmoeoAchievementFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoAchievementFitnessAssignment< MOEOT > [inline, virtual]
referencemoeoAchievementFitnessAssignment< MOEOT > [private]
setReference(const ObjectiveVector &_reference)moeoAchievementFitnessAssignment< MOEOT > [inline]
spnmoeoAchievementFitnessAssignment< MOEOT > [private]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoAchievementFitnessAssignment< MOEOT > [inline, virtual]
moeoScalarFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html new file mode 100644 index 000000000..531c60198 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.html @@ -0,0 +1,344 @@ + + +ParadisEO-MOEO: moeoAchievementFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoAchievementFitnessAssignment< MOEOT > Class Template Reference

Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). +More... +

+#include <moeoAchievementFitnessAssignment.h> +

+

Inheritance diagram for moeoAchievementFitnessAssignment< MOEOT >: +

+ +moeoScalarFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

 moeoAchievementFitnessAssignment (ObjectiveVector &_reference, std::vector< double > &_lambdas, double _spn=0.0001)
 Default ctor.
 moeoAchievementFitnessAssignment (ObjectiveVector &_reference, double _spn=0.0001)
 Ctor with default values for lambdas (1/nObjectives).
virtual void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do).
void setReference (const ObjectiveVector &_reference)
 Sets the reference point.

Private Member Functions

+double inf () const
 Returns a big value (regarded as infinite).
void compute (MOEOT &_moeo)
 Computes the fitness value for a solution.

Private Attributes

+ObjectiveVector reference
 the reference point
+std::vector< double > lambdas
 the weighted coefficients vector
+double spn
 an arbitrary small positive number (0 < _spn << 1)
+

Detailed Description

+

template<class MOEOT>
+ class moeoAchievementFitnessAssignment< MOEOT >

+ +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). +

+ +

+Definition at line 24 of file moeoAchievementFitnessAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoAchievementFitnessAssignment< MOEOT >::moeoAchievementFitnessAssignment (ObjectiveVector _reference,
std::vector< double > &  _lambdas,
double  _spn = 0.0001 
) [inline]
+
+
+ +

+Default ctor. +

+

Parameters:
+ + + + +
_reference reference point vector
_lambdas weighted coefficients vector
_spn arbitrary small positive number (0 < _spn << 1)
+
+ +

+Definition at line 38 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::spn. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoAchievementFitnessAssignment< MOEOT >::moeoAchievementFitnessAssignment (ObjectiveVector _reference,
double  _spn = 0.0001 
) [inline]
+
+
+ +

+Ctor with default values for lambdas (1/nObjectives). +

+

Parameters:
+ + + +
_reference reference point vector
_spn arbitrary small positive number (0 < _spn << 1)
+
+ +

+Definition at line 54 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::lambdas, and moeoAchievementFitnessAssignment< MOEOT >::spn. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoAchievementFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 75 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::compute(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoAchievementFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 89 of file moeoAchievementFitnessAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoAchievementFitnessAssignment< MOEOT >::setReference (const ObjectiveVector _reference  )  [inline]
+
+
+ +

+Sets the reference point. +

+

Parameters:
+ + +
_reference the new reference point
+
+ +

+Definition at line 99 of file moeoAchievementFitnessAssignment.h. +

+References moeoAchievementFitnessAssignment< MOEOT >::reference. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoAchievementFitnessAssignment< MOEOT >::compute (MOEOT &  _moeo  )  [inline, private]
+
+ +

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.png new file mode 100644 index 000000000..4396fd5a3 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAchievementFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html new file mode 100644 index 000000000..022d9a56b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > Member List

This is the complete list of members for moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + + + +
boundsmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [protected]
epsilon(const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj)moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedSolutionVsSolutionBinaryMetric()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
operator()(const ObjectiveVector &_o1, const ObjectiveVector &_o2)moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > [inline]
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, virtual]
tiny()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html new file mode 100644 index 000000000..bb64895b9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.html @@ -0,0 +1,171 @@ + + +ParadisEO-MOEO: moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > Class Template Reference

Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. +More... +

+#include <moeoAdditiveEpsilonBinaryMetric.h> +

+

Inheritance diagram for moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >: +

+ +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Member Functions

double operator() (const ObjectiveVector &_o1, const ObjectiveVector &_o2)
 Returns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2.

Private Member Functions

double epsilon (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj)
 Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >

+ +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. +

+M., Grunert da Fonseca V.: Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117–132 (2003). +

+ +

+Definition at line 24 of file moeoAdditiveEpsilonBinaryMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::operator() (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2 
) [inline]
+
+
+ +

+Returns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2. +

+

Warning:
don't forget to set the bounds for every objective before the call of this function
+
Parameters:
+ + + +
_o1 the first objective vector
_o2 the second objective vector
+
+ +

+Definition at line 35 of file moeoAdditiveEpsilonBinaryMetric.h. +

+References moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::epsilon(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + + + + + + + +
double moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::epsilon (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2,
const unsigned int  _obj 
) [inline, private]
+
+
+ +

+Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2. +

+

Parameters:
+ + + + +
_o1 the first objective vector
_o2 the second objective vector
_obj the index of the objective
+
+ +

+Definition at line 64 of file moeoAdditiveEpsilonBinaryMetric.h. +

+References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds. +

+Referenced by moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.png new file mode 100644 index 000000000..636b8dfc5 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAdditiveEpsilonBinaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator-members.html new file mode 100644 index 000000000..0adb64126 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator-members.html @@ -0,0 +1,44 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoAggregativeComparator< MOEOT > Member List

This is the complete list of members for moeoAggregativeComparator< MOEOT >, including all inherited members.

+ + + + + + + + +
functor_category()eoBF< A1, A2, R > [static]
moeoAggregativeComparator(double _weightFitness=1.0, double _weightDiversity=1.0)moeoAggregativeComparator< MOEOT > [inline]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoAggregativeComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
weightDiversitymoeoAggregativeComparator< MOEOT > [private]
weightFitnessmoeoAggregativeComparator< MOEOT > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html new file mode 100644 index 000000000..77c14acea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.html @@ -0,0 +1,162 @@ + + +ParadisEO-MOEO: moeoAggregativeComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoAggregativeComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. +More... +

+#include <moeoAggregativeComparator.h> +

+

Inheritance diagram for moeoAggregativeComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moeoAggregativeComparator (double _weightFitness=1.0, double _weightDiversity=1.0)
 Ctor.
const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values.

Private Attributes

+double weightFitness
 the weight for fitness
+double weightDiversity
 the weight for diversity
+

Detailed Description

+

template<class MOEOT>
+ class moeoAggregativeComparator< MOEOT >

+ +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. +

+ +

+Definition at line 22 of file moeoAggregativeComparator.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoAggregativeComparator< MOEOT >::moeoAggregativeComparator (double  _weightFitness = 1.0,
double  _weightDiversity = 1.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_weightFitness the weight for fitness
_weightDiversity the weight for diversity
+
+ +

+Definition at line 31 of file moeoAggregativeComparator.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoAggregativeComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 40 of file moeoAggregativeComparator.h. +

+References moeoAggregativeComparator< MOEOT >::weightDiversity, and moeoAggregativeComparator< MOEOT >::weightFitness. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.png new file mode 100644 index 000000000..6a43ed016 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAggregativeComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAlgo.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAlgo.html new file mode 100644 index 000000000..ecae6cb2c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAlgo.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoAlgo Class Reference + + + + +
+
+ +

moeoAlgo Class Reference

Abstract class for multi-objective algorithms. +More... +

+#include <moeoAlgo.h> +

+

Inheritance diagram for moeoAlgo: +

+ +moeoEA< MOEOT > +moeoLS< MOEOT, Type > +moeoEasyEA< MOEOT > +moeoIBEA< MOEOT > +moeoNSGA< MOEOT > +moeoNSGAII< MOEOT > +moeoCombinedLS< MOEOT, Type > + + + +
+

Detailed Description

+Abstract class for multi-objective algorithms. +

+ +

+Definition at line 19 of file moeoAlgo.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAlgo.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAlgo.png new file mode 100644 index 000000000..464a61acd Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoAlgo.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive-members.html new file mode 100644 index 000000000..0e6ecb7bc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive-members.html @@ -0,0 +1,80 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoArchive< MOEOT > Member List

This is the complete list of members for moeoArchive< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
append(unsigned _newPopSize, eoInit< MOEOT > &_chromInit)eoPop< MOEOT >
best_element() const eoPop< MOEOT >
className() const eoPop< MOEOT > [virtual]
comparatormoeoArchive< MOEOT > [private]
contains(const ObjectiveVector &_objectiveVector) const moeoArchive< MOEOT > [inline]
dominates(const ObjectiveVector &_objectiveVector) const moeoArchive< MOEOT > [inline]
eoPop()eoPop< MOEOT >
eoPop(unsigned _popSize, eoInit< MOEOT > &_chromInit)eoPop< MOEOT >
eoPop(std::istream &_is)eoPop< MOEOT >
eoPop(void)eoPop< MOEOT >
equals(const moeoArchive< MOEOT > &_arch)moeoArchive< MOEOT > [inline]
Fitness typedefeoPop< MOEOT >
fitness_traits typedefeoPop< MOEOT >
getPerf2Worth()eoPop< MOEOT >
invalidate()eoPop< MOEOT > [virtual]
it_best_element()eoPop< MOEOT >
it_worse_element()eoPop< MOEOT >
moeoArchive()moeoArchive< MOEOT > [inline]
moeoArchive(moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)moeoArchive< MOEOT > [inline]
nth_element(int nth)eoPop< MOEOT >
nth_element(int which, std::vector< const MOEOT * > &result) const eoPop< MOEOT >
nth_element_fitness(int which) const eoPop< MOEOT >
ObjectiveVector typedefmoeoArchive< MOEOT >
paretoComparatormoeoArchive< MOEOT > [private]
printOn(std::ostream &_os) const eoPop< MOEOT > [virtual]
readFrom(std::istream &_is)eoPop< MOEOT > [virtual]
scale()eoPop< MOEOT >
setPerf2Worth(eoPerf2Worth< MOEOT > &_p2w)eoPop< MOEOT >
setPerf2Worth(eoPerf2Worth< MOEOT > *_p2w)eoPop< MOEOT >
shuffle(void)eoPop< MOEOT >
shuffle(std::vector< const MOEOT * > &result) const eoPop< MOEOT >
sort(void)eoPop< MOEOT >
sort(std::vector< const MOEOT * > &result) const eoPop< MOEOT >
sort()eoPop< MOEOT >
sortedPrintOn(std::ostream &_os) const eoPop< MOEOT > [virtual]
swap(eoPop< MOEOT > &other)eoPop< MOEOT >
swap(eoPop< MOEOT > &other)eoPop< MOEOT >
update(const MOEOT &_moeo)moeoArchive< MOEOT > [inline]
update(const eoPop< MOEOT > &_pop)moeoArchive< MOEOT > [inline]
worse_element() const eoPop< MOEOT >
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPop()eoPop< MOEOT > [virtual]
~eoPrintable()eoPrintable [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive.html new file mode 100644 index 000000000..a5dfb18a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive.html @@ -0,0 +1,324 @@ + + +ParadisEO-MOEO: moeoArchive< MOEOT > Class Template Reference + + + + +
+
+ +

moeoArchive< MOEOT > Class Template Reference

An archive is a secondary population that stores non-dominated solutions. +More... +

+#include <moeoArchive.h> +

+

Inheritance diagram for moeoArchive< MOEOT >: +

+ +eoPop< MOEOT > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type of an objective vector for a solution.

Public Member Functions

 moeoArchive ()
 Default ctor.
 moeoArchive (moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)
 Ctor.
bool dominates (const ObjectiveVector &_objectiveVector) const
 Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor.
bool contains (const ObjectiveVector &_objectiveVector) const
 Returns true if the current archive already contains a solution with the same objective values than _objectiveVector.
void update (const MOEOT &_moeo)
 Updates the archive with a given individual _moeo.
void update (const eoPop< MOEOT > &_pop)
 Updates the archive with a given population _pop.
bool equals (const moeoArchive< MOEOT > &_arch)
 Returns true if the current archive contains the same objective vectors than the given archive _arch.

Private Attributes

+moeoObjectiveVectorComparator<
+ ObjectiveVector > & 
comparator
 The moeoObjectiveVectorComparator used to compare solutions.
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector
paretoComparator
 A moeoObjectiveVectorComparator based on Pareto dominance (used as default).
+

Detailed Description

+

template<class MOEOT>
+ class moeoArchive< MOEOT >

+ +An archive is a secondary population that stores non-dominated solutions. +

+ +

+Definition at line 24 of file moeoArchive.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + +
moeoArchive< MOEOT >::moeoArchive (  )  [inline]
+
+
+ +

+Default ctor. +

+The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance +

+Definition at line 44 of file moeoArchive.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoArchive< MOEOT >::moeoArchive (moeoObjectiveVectorComparator< ObjectiveVector > &  _comparator  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_comparator the moeoObjectiveVectorComparator used to compare solutions
+
+ +

+Definition at line 52 of file moeoArchive.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
bool moeoArchive< MOEOT >::dominates (const ObjectiveVector _objectiveVector  )  const [inline]
+
+
+ +

+Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor. +

+

Parameters:
+ + +
_objectiveVector the objective vector to compare with the current archive
+
+ +

+Definition at line 60 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::comparator. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
bool moeoArchive< MOEOT >::contains (const ObjectiveVector _objectiveVector  )  const [inline]
+
+
+ +

+Returns true if the current archive already contains a solution with the same objective values than _objectiveVector. +

+

Parameters:
+ + +
_objectiveVector the objective vector to compare with the current archive
+
+ +

+Definition at line 78 of file moeoArchive.h. +

+Referenced by moeoArchive< MOEOT >::equals(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoArchive< MOEOT >::update (const MOEOT &  _moeo  )  [inline]
+
+
+ +

+Updates the archive with a given individual _moeo. +

+

Parameters:
+ + +
_moeo the given individual
+
+ +

+Definition at line 95 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::comparator. +

+Referenced by moeoArchive< MOEOT >::update(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoArchive< MOEOT >::update (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Updates the archive with a given population _pop. +

+

Parameters:
+ + +
_pop the given population
+
+ +

+Definition at line 138 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::update(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
bool moeoArchive< MOEOT >::equals (const moeoArchive< MOEOT > &  _arch  )  [inline]
+
+
+ +

+Returns true if the current archive contains the same objective vectors than the given archive _arch. +

+

Parameters:
+ + +
_arch the given archive
+
+ +

+Definition at line 151 of file moeoArchive.h. +

+References moeoArchive< MOEOT >::contains(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive.png new file mode 100644 index 000000000..d3035b86e Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchive.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html new file mode 100644 index 000000000..b98fdeb3d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater-members.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoArchiveObjectiveVectorSavingUpdater< MOEOT > Member List

This is the complete list of members for moeoArchiveObjectiveVectorSavingUpdater< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + +
archmoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
className(void) const eoUpdater [virtual]
countmoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
countermoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
filenamemoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
functor_category()eoF< void > [static]
idmoeoArchiveObjectiveVectorSavingUpdater< MOEOT > [private]
lastCall()eoUpdater [virtual]
moeoArchiveObjectiveVectorSavingUpdater(moeoArchive< MOEOT > &_arch, const std::string &_filename, bool _count=false, int _id=-1)moeoArchiveObjectiveVectorSavingUpdater< MOEOT > [inline]
operator()()moeoArchiveObjectiveVectorSavingUpdater< MOEOT > [inline, virtual]
result_type typedefeoF< void >
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html new file mode 100644 index 000000000..2d96408d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.html @@ -0,0 +1,145 @@ + + +ParadisEO-MOEO: moeoArchiveObjectiveVectorSavingUpdater< MOEOT > Class Template Reference + + + + +
+
+ +

moeoArchiveObjectiveVectorSavingUpdater< MOEOT > Class Template Reference

This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. +More... +

+#include <moeoArchiveObjectiveVectorSavingUpdater.h> +

+

Inheritance diagram for moeoArchiveObjectiveVectorSavingUpdater< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoArchiveObjectiveVectorSavingUpdater (moeoArchive< MOEOT > &_arch, const std::string &_filename, bool _count=false, int _id=-1)
 Ctor.
+void operator() ()
 Saves the fitness of the archive's members into the file.

Private Attributes

+moeoArchive< MOEOT > & arch
 local archive
+std::string filename
 target filename
+bool count
 this variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated
+unsigned int counter
 counter
+int id
 own ID
+

Detailed Description

+

template<class MOEOT>
+ class moeoArchiveObjectiveVectorSavingUpdater< MOEOT >

+ +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. +

+ +

+Definition at line 28 of file moeoArchiveObjectiveVectorSavingUpdater.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoArchiveObjectiveVectorSavingUpdater< MOEOT >::moeoArchiveObjectiveVectorSavingUpdater (moeoArchive< MOEOT > &  _arch,
const std::string &  _filename,
bool  _count = false,
int  _id = -1 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + + +
_arch local archive
_filename target filename
_count put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated
_id own ID
+
+ +

+Definition at line 39 of file moeoArchiveObjectiveVectorSavingUpdater.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.png new file mode 100644 index 000000000..c70a60fc0 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveObjectiveVectorSavingUpdater.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html new file mode 100644 index 000000000..7dfe3fe05 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater-members.html @@ -0,0 +1,46 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoArchiveUpdater< MOEOT > Member List

This is the complete list of members for moeoArchiveUpdater< MOEOT >, including all inherited members.

+ + + + + + + + + + +
archmoeoArchiveUpdater< MOEOT > [private]
className(void) const eoUpdater [virtual]
functor_category()eoF< void > [static]
lastCall()eoUpdater [virtual]
moeoArchiveUpdater(moeoArchive< MOEOT > &_arch, const eoPop< MOEOT > &_pop)moeoArchiveUpdater< MOEOT > [inline]
operator()()moeoArchiveUpdater< MOEOT > [inline, virtual]
popmoeoArchiveUpdater< MOEOT > [private]
result_type typedefeoF< void >
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html new file mode 100644 index 000000000..fd9b9369d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.html @@ -0,0 +1,119 @@ + + +ParadisEO-MOEO: moeoArchiveUpdater< MOEOT > Class Template Reference + + + + +
+
+ +

moeoArchiveUpdater< MOEOT > Class Template Reference

This class allows to update the archive at each generation with newly found non-dominated solutions. +More... +

+#include <moeoArchiveUpdater.h> +

+

Inheritance diagram for moeoArchiveUpdater< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moeoArchiveUpdater (moeoArchive< MOEOT > &_arch, const eoPop< MOEOT > &_pop)
 Ctor.
+void operator() ()
 Updates the archive with newly found non-dominated solutions contained in the main population.

Private Attributes

+moeoArchive< MOEOT > & arch
 the archive of non-dominated solutions
+const eoPop< MOEOT > & pop
 the main population
+

Detailed Description

+

template<class MOEOT>
+ class moeoArchiveUpdater< MOEOT >

+ +This class allows to update the archive at each generation with newly found non-dominated solutions. +

+ +

+Definition at line 24 of file moeoArchiveUpdater.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoArchiveUpdater< MOEOT >::moeoArchiveUpdater (moeoArchive< MOEOT > &  _arch,
const eoPop< MOEOT > &  _pop 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_arch an archive of non-dominated solutions
_pop the main population
+
+ +

+Definition at line 33 of file moeoArchiveUpdater.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.png new file mode 100644 index 000000000..9ab110825 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoArchiveUpdater.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html new file mode 100644 index 000000000..a2f97f50c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..0692d7396 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

moeoIndicatorBasedFitnessAssignment for binary indicators. +More... +

+#include <moeoBinaryIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >

+ +moeoIndicatorBasedFitnessAssignment for binary indicators. +

+ +

+Definition at line 22 of file moeoBinaryIndicatorBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.png new file mode 100644 index 000000000..6c4992b88 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryIndicatorBasedFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html new file mode 100644 index 000000000..0b733f042 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBinaryMetric< A1, A2, R > Member List

This is the complete list of members for moeoBinaryMetric< A1, A2, R >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html new file mode 100644 index 000000000..a868c053c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric.html @@ -0,0 +1,71 @@ + + +ParadisEO-MOEO: moeoBinaryMetric< A1, A2, R > Class Template Reference + + + + +
+
+ +

moeoBinaryMetric< A1, A2, R > Class Template Reference

Base class for binary metrics. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoBinaryMetric< A1, A2, R >: +

+ +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > +moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoContributionMetric< ObjectiveVector > +moeoEntropyMetric< ObjectiveVector > +moeoAdditiveEpsilonBinaryMetric< ObjectiveVector > +moeoHypervolumeBinaryMetric< ObjectiveVector > + +List of all members. + +
+

Detailed Description

+

template<class A1, class A2, class R>
+ class moeoBinaryMetric< A1, A2, R >

+ +Base class for binary metrics. +

+ +

+Definition at line 36 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric.png new file mode 100644 index 000000000..7e7be93f0 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html new file mode 100644 index 000000000..2f3041071 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBinaryMetricSavingUpdater< MOEOT > Member List

This is the complete list of members for moeoBinaryMetricSavingUpdater< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
className(void) const eoUpdater [virtual]
countermoeoBinaryMetricSavingUpdater< MOEOT > [private]
filenamemoeoBinaryMetricSavingUpdater< MOEOT > [private]
firstGenmoeoBinaryMetricSavingUpdater< MOEOT > [private]
functor_category()eoF< void > [static]
lastCall()eoUpdater [virtual]
metricmoeoBinaryMetricSavingUpdater< MOEOT > [private]
moeoBinaryMetricSavingUpdater(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > &_metric, const eoPop< MOEOT > &_pop, std::string _filename)moeoBinaryMetricSavingUpdater< MOEOT > [inline]
ObjectiveVector typedefmoeoBinaryMetricSavingUpdater< MOEOT >
oldPopmoeoBinaryMetricSavingUpdater< MOEOT > [private]
operator()()moeoBinaryMetricSavingUpdater< MOEOT > [inline, virtual]
popmoeoBinaryMetricSavingUpdater< MOEOT > [private]
result_type typedefeoF< void >
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html new file mode 100644 index 000000000..90951ce84 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.html @@ -0,0 +1,148 @@ + + +ParadisEO-MOEO: moeoBinaryMetricSavingUpdater< MOEOT > Class Template Reference + + + + +
+
+ +

moeoBinaryMetricSavingUpdater< MOEOT > Class Template Reference

This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. +More... +

+#include <moeoBinaryMetricSavingUpdater.h> +

+

Inheritance diagram for moeoBinaryMetricSavingUpdater< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The objective vector type of a solution.

Public Member Functions

 moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > &_metric, const eoPop< MOEOT > &_pop, std::string _filename)
 Ctor.
+void operator() ()
 Saves the metric's value for the current generation.

Private Attributes

+moeoVectorVsVectorBinaryMetric<
+ ObjectiveVector, double > & 
metric
 binary metric comparing two Pareto sets
+const eoPop< MOEOT > & pop
 main population
+eoPop< MOEOT > oldPop
 (n-1) population
+std::string filename
 target filename
+bool firstGen
 is it the first generation ?
+unsigned int counter
 counter
+

Detailed Description

+

template<class MOEOT>
+ class moeoBinaryMetricSavingUpdater< MOEOT >

+ +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. +

+ +

+Definition at line 28 of file moeoBinaryMetricSavingUpdater.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoBinaryMetricSavingUpdater< MOEOT >::moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > &  _metric,
const eoPop< MOEOT > &  _pop,
std::string  _filename 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + +
_metric the binary metric comparing two Pareto sets
_pop the main population
_filename the target filename
+
+ +

+Definition at line 42 of file moeoBinaryMetricSavingUpdater.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.png new file mode 100644 index 000000000..b7ec32e83 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBinaryMetricSavingUpdater.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector-members.html new file mode 100644 index 000000000..5e1467750 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector-members.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Member List

This is the complete list of members for moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AtomType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >
className() const moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
ContainerType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoBitVector(unsigned int _size=0, bool _value=false)moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoVector(unsigned int _size=0, bool_value=bool())moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > &_moeo) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > [inline]
MOEO::operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
readFrom(std::istream &_is)moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
value(const std::vector< bool > &_v)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > [inline]
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector.html new file mode 100644 index 000000000..8fc19adc3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector.html @@ -0,0 +1,186 @@ + + +ParadisEO-MOEO: moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference + + + + +
+
+ +

moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

This class is an implementationeo of a simple bit-valued moeoVector. +More... +

+#include <moeoBitVector.h> +

+

Inheritance diagram for moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >: +

+ +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > +MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + + + + + + + +

Public Member Functions

 moeoBitVector (unsigned int _size=0, bool _value=false)
 Ctor.
+virtual std::string className () const
 Returns the class name as a std::string.
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ class moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+ +This class is an implementationeo of a simple bit-valued moeoVector. +

+ +

+Definition at line 22 of file moeoBitVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + + + + + + + + + + +
moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::moeoBitVector (unsigned int  _size = 0,
bool  _value = false 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_size Length of vector (default is 0)
_value Initial value of all elements (default is default value of type GeneType)
+
+ +

+Definition at line 37 of file moeoBitVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream &  _os  )  const [inline, virtual]
+
+
+ +

+Writing object. +

+

Parameters:
+ + +
_os output stream
+
+ +

+Reimplemented from moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >. +

+Definition at line 54 of file moeoBitVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + +
virtual void moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream &  _is  )  [inline, virtual]
+
+
+ +

+Reading object. +

+

Parameters:
+ + +
_is input stream
+
+ +

+Reimplemented from moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >. +

+Definition at line 67 of file moeoBitVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector.png new file mode 100644 index 000000000..461c6469d Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoBitVector.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS-members.html new file mode 100644 index 000000000..100ee9263 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoCombinedLS< MOEOT, Type > Member List

This is the complete list of members for moeoCombinedLS< MOEOT, Type >, including all inherited members.

+ + + + + + + +
add(moeoLS< MOEOT, Type > &_mols)moeoCombinedLS< MOEOT, Type > [inline]
combinedLSmoeoCombinedLS< MOEOT, Type > [private]
functor_category()eoBF< Type, moeoArchive< MOEOT > &, void > [static]
moeoCombinedLS(moeoLS< MOEOT, Type > &_first_mols)moeoCombinedLS< MOEOT, Type > [inline]
operator()(Type _type, moeoArchive< MOEOT > &_arch)moeoCombinedLS< MOEOT, Type > [inline, virtual]
~eoBF()eoBF< Type, moeoArchive< MOEOT > &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS.html new file mode 100644 index 000000000..f71f8df5d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS.html @@ -0,0 +1,190 @@ + + +ParadisEO-MOEO: moeoCombinedLS< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoCombinedLS< MOEOT, Type > Class Template Reference

This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. +More... +

+#include <moeoCombinedLS.h> +

+

Inheritance diagram for moeoCombinedLS< MOEOT, Type >: +

+ +moeoLS< MOEOT, Type > +moeoAlgo +eoBF< Type, moeoArchive< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Member Functions

 moeoCombinedLS (moeoLS< MOEOT, Type > &_first_mols)
 Ctor.
void add (moeoLS< MOEOT, Type > &_mols)
 Adds a new local search to combine.
void operator() (Type _type, moeoArchive< MOEOT > &_arch)
 Gives a new solution in order to explore the neigborhood.

Private Attributes

+std::vector< moeoLS< MOEOT,
+ Type > * > 
combinedLS
 the vector that contains the combined LS
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoCombinedLS< MOEOT, Type >

+ +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. +

+ +

+Definition at line 25 of file moeoCombinedLS.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
moeoCombinedLS< MOEOT, Type >::moeoCombinedLS (moeoLS< MOEOT, Type > &  _first_mols  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_first_mols the first multi-objective local search to add
+
+ +

+Definition at line 33 of file moeoCombinedLS.h. +

+References moeoCombinedLS< MOEOT, Type >::combinedLS. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
void moeoCombinedLS< MOEOT, Type >::add (moeoLS< MOEOT, Type > &  _mols  )  [inline]
+
+
+ +

+Adds a new local search to combine. +

+

Parameters:
+ + +
_mols the multi-objective local search to add
+
+ +

+Definition at line 42 of file moeoCombinedLS.h. +

+References moeoCombinedLS< MOEOT, Type >::combinedLS. +

+

+ +

+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + +
void moeoCombinedLS< MOEOT, Type >::operator() (Type  _type,
moeoArchive< MOEOT > &  _arch 
) [inline, virtual]
+
+
+ +

+Gives a new solution in order to explore the neigborhood. +

+The new non-dominated solutions are added to the archive

Parameters:
+ + + +
_type the object to apply the local search to
_arch the archive of non-dominated solutions
+
+ +

+Implements eoBF< Type, moeoArchive< MOEOT > &, void >. +

+Definition at line 53 of file moeoCombinedLS.h. +

+References moeoCombinedLS< MOEOT, Type >::combinedLS. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS.png new file mode 100644 index 000000000..7bc8d9deb Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCombinedLS.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator-members.html new file mode 100644 index 000000000..4856707b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoComparator< MOEOT > Member List

This is the complete list of members for moeoComparator< MOEOT >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator.html new file mode 100644 index 000000000..3bbce0cdb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator.html @@ -0,0 +1,64 @@ + + +ParadisEO-MOEO: moeoComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions. +More... +

+#include <moeoComparator.h> +

+

Inheritance diagram for moeoComparator< MOEOT >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moeoAggregativeComparator< MOEOT > +moeoDiversityThenFitnessComparator< MOEOT > +moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator +moeoFitnessThenDiversityComparator< MOEOT > +moeoOneObjectiveComparator< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoComparator< MOEOT >

+ +Functor allowing to compare two solutions. +

+ +

+Definition at line 22 of file moeoComparator.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator.png new file mode 100644 index 000000000..616eae5e0 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html new file mode 100644 index 000000000..f03f3abc6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoContributionMetric< ObjectiveVector > Member List

This is the complete list of members for moeoContributionMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + +
card_C(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline, private]
card_N(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline, private]
card_W(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
operator()(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoContributionMetric< ObjectiveVector > [inline]
moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoContributionMetric< ObjectiveVector > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric.html new file mode 100644 index 000000000..f3ece7e27 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric.html @@ -0,0 +1,262 @@ + + +ParadisEO-MOEO: moeoContributionMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoContributionMetric< ObjectiveVector > Class Template Reference

The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. +More... +

+#include <moeoContributionMetric.h> +

+

Inheritance diagram for moeoContributionMetric< ObjectiveVector >: +

+ +moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

double operator() (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'.

Private Member Functions

unsigned int card_C (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the number of solutions both in '_set1' and '_set2'.
unsigned int card_W (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the number of solutions in '_set1' dominating at least one solution of '_set2'.
unsigned int card_N (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2'.

Private Attributes

+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoContributionMetric< ObjectiveVector >

+ +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. +

+of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) +

+ +

+Definition at line 24 of file moeoContributionMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoContributionMetric< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline]
+
+
+ +

+Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 33 of file moeoContributionMetric.h. +

+References moeoContributionMetric< ObjectiveVector >::card_C(), moeoContributionMetric< ObjectiveVector >::card_N(), and moeoContributionMetric< ObjectiveVector >::card_W(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoContributionMetric< ObjectiveVector >::card_C (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline, private]
+
+
+ +

+Returns the number of solutions both in '_set1' and '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 54 of file moeoContributionMetric.h. +

+Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoContributionMetric< ObjectiveVector >::card_W (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline, private]
+
+
+ +

+Returns the number of solutions in '_set1' dominating at least one solution of '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 71 of file moeoContributionMetric.h. +

+References moeoContributionMetric< ObjectiveVector >::paretoComparator. +

+Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoContributionMetric< ObjectiveVector >::card_N (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline, private]
+
+
+ +

+Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 89 of file moeoContributionMetric.h. +

+References moeoContributionMetric< ObjectiveVector >::paretoComparator. +

+Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric.png new file mode 100644 index 000000000..2f9f60d0d Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoContributionMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors-members.html new file mode 100644 index 000000000..3c151d971 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > Member List

This is the complete list of members for moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >, including all inherited members.

+ + + + + +
functor_category()eoUF< A1, R > [static]
operator()(const eoPop< MOEOT > _pop)moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > [inline]
eoUF::operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html new file mode 100644 index 000000000..5cf80069a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.html @@ -0,0 +1,95 @@ + + +ParadisEO-MOEO: moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector > Class Template Reference

Functor allowing to get a vector of objective vectors from a population. +More... +

+#include <moeoConvertPopToObjectiveVectors.h> +

+

Inheritance diagram for moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >: +

+ +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const std::vector< ObjectiveVector > operator() (const eoPop< MOEOT > _pop)
 Returns a vector of the objective vectors from the population _pop.
+

Detailed Description

+

template<class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector>
+ class moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >

+ +Functor allowing to get a vector of objective vectors from a population. +

+ +

+Definition at line 23 of file moeoConvertPopToObjectiveVectors.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector>
+ + + + + + + + + +
const std::vector< ObjectiveVector > moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >::operator() (const eoPop< MOEOT >  _pop  )  [inline]
+
+
+ +

+Returns a vector of the objective vectors from the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 31 of file moeoConvertPopToObjectiveVectors.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.png new file mode 100644 index 000000000..3904ce954 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoConvertPopToObjectiveVectors.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html new file mode 100644 index 000000000..f891fee3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoCriterionBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoCriterionBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html new file mode 100644 index 000000000..3d6bd3fa0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.html @@ -0,0 +1,60 @@ + + +ParadisEO-MOEO: moeoCriterionBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoCriterionBasedFitnessAssignment< MOEOT > Class Template Reference

moeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies. +More... +

+#include <moeoCriterionBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoCriterionBasedFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoCriterionBasedFitnessAssignment< MOEOT >

+ +moeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies. +

+ +

+Definition at line 22 of file moeoCriterionBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.png new file mode 100644 index 000000000..d3a36cb02 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCriterionBasedFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html new file mode 100644 index 000000000..34c10fb4e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment-members.html @@ -0,0 +1,46 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoCrowdingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoCrowdingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
inf() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
ObjectiveVector typedefmoeoCrowdingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoCrowdingDiversityAssignment< MOEOT > [inline, virtual]
setDistances(eoPop< MOEOT > &_pop)moeoCrowdingDiversityAssignment< MOEOT > [inline, protected, virtual]
tiny() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoCrowdingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html new file mode 100644 index 000000000..b3f029baa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.html @@ -0,0 +1,204 @@ + + +ParadisEO-MOEO: moeoCrowdingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoCrowdingDiversityAssignment< MOEOT > Class Template Reference

Diversity assignment sheme based on crowding proposed in: K. +More... +

+#include <moeoCrowdingDiversityAssignment.h> +

+

Inheritance diagram for moeoCrowdingDiversityAssignment< MOEOT >: +

+ +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

+double inf () const
 Returns a big value (regarded as infinite).
+double tiny () const
 Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound).
void operator() (eoPop< MOEOT > &_pop)
 Computes diversity values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Protected Member Functions

virtual void setDistances (eoPop< MOEOT > &_pop)
 Sets the distance values.
+

Detailed Description

+

template<class MOEOT>
+ class moeoCrowdingDiversityAssignment< MOEOT >

+ +Diversity assignment sheme based on crowding proposed in: K. +

+Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). +

+ +

+Definition at line 25 of file moeoCrowdingDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoCrowdingDiversityAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Computes diversity values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 55 of file moeoCrowdingDiversityAssignment.h. +

+References moeoCrowdingDiversityAssignment< MOEOT >::inf(), and moeoCrowdingDiversityAssignment< MOEOT >::setDistances(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoCrowdingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Implements moeoDiversityAssignment< MOEOT >. +

+Reimplemented in moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >. +

+Definition at line 78 of file moeoCrowdingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoCrowdingDiversityAssignment< MOEOT >::setDistances (eoPop< MOEOT > &  _pop  )  [inline, protected, virtual]
+
+
+ +

+Sets the distance values. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented in moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >. +

+Definition at line 90 of file moeoCrowdingDiversityAssignment.h. +

+References moeoCrowdingDiversityAssignment< MOEOT >::inf(). +

+Referenced by moeoCrowdingDiversityAssignment< MOEOT >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.png new file mode 100644 index 000000000..75ba1a783 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoCrowdingDiversityAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html new file mode 100644 index 000000000..23a446b6a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDetTournamentSelect< MOEOT > Member List

This is the complete list of members for moeoDetTournamentSelect< MOEOT >, including all inherited members.

+ + + + + + + + + + + +
comparatormoeoDetTournamentSelect< MOEOT > [protected]
defaultComparatormoeoDetTournamentSelect< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
moeoDetTournamentSelect(moeoComparator< MOEOT > &_comparator, unsigned int _tSize=2)moeoDetTournamentSelect< MOEOT > [inline]
moeoDetTournamentSelect(unsigned int _tSize=2)moeoDetTournamentSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoDetTournamentSelect< MOEOT > [inline]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
tSizemoeoDetTournamentSelect< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html new file mode 100644 index 000000000..b2e27ff56 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.html @@ -0,0 +1,196 @@ + + +ParadisEO-MOEO: moeoDetTournamentSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDetTournamentSelect< MOEOT > Class Template Reference

Selection strategy that selects ONE individual by deterministic tournament. +More... +

+#include <moeoDetTournamentSelect.h> +

+

Inheritance diagram for moeoDetTournamentSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoDetTournamentSelect (moeoComparator< MOEOT > &_comparator, unsigned int _tSize=2)
 Full Ctor.
 moeoDetTournamentSelect (unsigned int _tSize=2)
 Ctor without comparator.
const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Apply the tournament to the given population.

Protected Attributes

+moeoComparator< MOEOT > & comparator
 the comparator (used to compare 2 individuals)
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+unsigned int tSize
 the number of individuals in the tournament
+

Detailed Description

+

template<class MOEOT>
+ class moeoDetTournamentSelect< MOEOT >

+ +Selection strategy that selects ONE individual by deterministic tournament. +

+ +

+Definition at line 24 of file moeoDetTournamentSelect.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoDetTournamentSelect< MOEOT >::moeoDetTournamentSelect (moeoComparator< MOEOT > &  _comparator,
unsigned int  _tSize = 2 
) [inline]
+
+
+ +

+Full Ctor. +

+

Parameters:
+ + + +
_comparator the comparator (used to compare 2 individuals)
_tSize the number of individuals in the tournament (default: 2)
+
+ +

+Definition at line 33 of file moeoDetTournamentSelect.h. +

+References moeoDetTournamentSelect< MOEOT >::tSize. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoDetTournamentSelect< MOEOT >::moeoDetTournamentSelect (unsigned int  _tSize = 2  )  [inline]
+
+
+ +

+Ctor without comparator. +

+A moeoFitnessThenDiversityComparator is used as default.

Parameters:
+ + +
_tSize the number of individuals in the tournament (default: 2)
+
+ +

+Definition at line 49 of file moeoDetTournamentSelect.h. +

+References moeoDetTournamentSelect< MOEOT >::tSize. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
const MOEOT& moeoDetTournamentSelect< MOEOT >::operator() (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Apply the tournament to the given population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 65 of file moeoDetTournamentSelect.h. +

+References moeoDetTournamentSelect< MOEOT >::comparator, and moeoDetTournamentSelect< MOEOT >::tSize. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.png new file mode 100644 index 000000000..4fbb81319 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDetTournamentSelect.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance-members.html new file mode 100644 index 000000000..d1e7e2c5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDistance< MOEOT, Type > Member List

This is the complete list of members for moeoDistance< MOEOT, Type >, including all inherited members.

+ + + + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoDistance< MOEOT, Type > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoDistance< MOEOT, Type > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoDistance< MOEOT, Type > [inline, virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance.html new file mode 100644 index 000000000..a5a4062e9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance.html @@ -0,0 +1,197 @@ + + +ParadisEO-MOEO: moeoDistance< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoDistance< MOEOT, Type > Class Template Reference

The base class for distance computation. +More... +

+#include <moeoDistance.h> +

+

Inheritance diagram for moeoDistance< MOEOT, Type >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moeoNormalizedDistance< MOEOT, Type > + +List of all members. + + + + + + + + + + + +

Public Member Functions

virtual void setup (const eoPop< MOEOT > &_pop)
 Nothing to do.
virtual void setup (double _min, double _max, unsigned int _obj)
 Nothing to do.
virtual void setup (eoRealInterval _realInterval, unsigned int _obj)
 Nothing to do.
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoDistance< MOEOT, Type >

+ +The base class for distance computation. +

+ +

+Definition at line 22 of file moeoDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
virtual void moeoDistance< MOEOT, Type >::setup (const eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Nothing to do. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented in moeoNormalizedDistance< MOEOT, Type >, and moeoNormalizedDistance< MOEOT >. +

+Definition at line 30 of file moeoDistance.h. +

+

+ +

+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void moeoDistance< MOEOT, Type >::setup (double  _min,
double  _max,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Nothing to do. +

+

Parameters:
+ + + + +
_min lower bound
_max upper bound
_obj the objective index
+
+ +

+Reimplemented in moeoNormalizedDistance< MOEOT, Type >, and moeoNormalizedDistance< MOEOT >. +

+Definition at line 40 of file moeoDistance.h. +

+

+ +

+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoDistance< MOEOT, Type >::setup (eoRealInterval  _realInterval,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Nothing to do. +

+

Parameters:
+ + + +
_realInterval the eoRealInterval object
_obj the objective index
+
+ +

+Reimplemented in moeoNormalizedDistance< MOEOT, Type >, and moeoNormalizedDistance< MOEOT >. +

+Definition at line 49 of file moeoDistance.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance.png new file mode 100644 index 000000000..cf22dcd06 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistance.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html new file mode 100644 index 000000000..9c6f09ae3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDistanceMatrix< MOEOT, Type > Member List

This is the complete list of members for moeoDistanceMatrix< MOEOT, Type >, including all inherited members.

+ + + + + + +
distancemoeoDistanceMatrix< MOEOT, Type > [private]
functor_category()eoUF< const eoPop< MOEOT > &, void > [static]
moeoDistanceMatrix(unsigned int _size, moeoDistance< MOEOT, Type > &_distance)moeoDistanceMatrix< MOEOT, Type > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoDistanceMatrix< MOEOT, Type > [inline, virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html new file mode 100644 index 000000000..21e8a6303 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.html @@ -0,0 +1,149 @@ + + +ParadisEO-MOEO: moeoDistanceMatrix< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoDistanceMatrix< MOEOT, Type > Class Template Reference

A matrix to compute distances between every pair of individuals contained in a population. +More... +

+#include <moeoDistanceMatrix.h> +

+

Inheritance diagram for moeoDistanceMatrix< MOEOT, Type >: +

+ +eoUF< const eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

 moeoDistanceMatrix (unsigned int _size, moeoDistance< MOEOT, Type > &_distance)
 Ctor.
void operator() (const eoPop< MOEOT > &_pop)
 Sets the distance between every pair of individuals contained in the population _pop.

Private Attributes

+moeoDistance< MOEOT, Type > & distance
 the distance to use
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoDistanceMatrix< MOEOT, Type >

+ +A matrix to compute distances between every pair of individuals contained in a population. +

+ +

+Definition at line 24 of file moeoDistanceMatrix.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + + + + + + + + + + +
moeoDistanceMatrix< MOEOT, Type >::moeoDistanceMatrix (unsigned int  _size,
moeoDistance< MOEOT, Type > &  _distance 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_size size for every dimension of the matrix
_distance the distance to use
+
+ +

+Definition at line 37 of file moeoDistanceMatrix.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type>
+ + + + + + + + + +
void moeoDistanceMatrix< MOEOT, Type >::operator() (const eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the distance between every pair of individuals contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< const eoPop< MOEOT > &, void >. +

+Definition at line 51 of file moeoDistanceMatrix.h. +

+References moeoDistanceMatrix< MOEOT, Type >::distance. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.png new file mode 100644 index 000000000..a8aac1611 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDistanceMatrix.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html new file mode 100644 index 000000000..89e1ae3df --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoDiversityAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html new file mode 100644 index 000000000..d0de623bd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.html @@ -0,0 +1,163 @@ + + +ParadisEO-MOEO: moeoDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDiversityAssignment< MOEOT > Class Template Reference

Functor that sets the diversity values of a whole population. +More... +

+#include <moeoDiversityAssignment.h> +

+

Inheritance diagram for moeoDiversityAssignment< MOEOT >: +

+ +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoCrowdingDiversityAssignment< MOEOT > +moeoDummyDiversityAssignment< MOEOT > +moeoSharingDiversityAssignment< MOEOT > +moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > +moeoFrontByFrontSharingDiversityAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

virtual void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0
 Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
void updateByDeleting (eoPop< MOEOT > &_pop, MOEOT &_moeo)
 Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDiversityAssignment< MOEOT >

+ +Functor that sets the diversity values of a whole population. +

+ +

+Definition at line 23 of file moeoDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [pure virtual]
+
+
+ +

+Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implemented in moeoCrowdingDiversityAssignment< MOEOT >, moeoDummyDiversityAssignment< MOEOT >, moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >, moeoFrontByFrontSharingDiversityAssignment< MOEOT >, and moeoSharingDiversityAssignment< MOEOT >. +

+Referenced by moeoDiversityAssignment< MOEOT >::updateByDeleting(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
MOEOT &  _moeo 
) [inline]
+
+
+ +

+Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. +

+

Parameters:
+ + + +
_pop the population
_moeo the individual
+
+ +

+Definition at line 44 of file moeoDiversityAssignment.h. +

+References moeoDiversityAssignment< MOEOT >::updateByDeleting(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.png new file mode 100644 index 000000000..2067845ec Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html new file mode 100644 index 000000000..8e86eb6c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDiversityThenFitnessComparator< MOEOT > Member List

This is the complete list of members for moeoDiversityThenFitnessComparator< MOEOT >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoDiversityThenFitnessComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html new file mode 100644 index 000000000..a3b4d6946 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoDiversityThenFitnessComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDiversityThenFitnessComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. +More... +

+#include <moeoDiversityThenFitnessComparator.h> +

+

Inheritance diagram for moeoDiversityThenFitnessComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDiversityThenFitnessComparator< MOEOT >

+ +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. +

+ +

+Definition at line 22 of file moeoDiversityThenFitnessComparator.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoDiversityThenFitnessComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 31 of file moeoDiversityThenFitnessComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.png new file mode 100644 index 000000000..14c65dd0b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDiversityThenFitnessComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment-members.html new file mode 100644 index 000000000..71b864185 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDummyDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoDummyDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoDummyDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoDummyDiversityAssignment< MOEOT > [inline, virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoDummyDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html new file mode 100644 index 000000000..5e66cd680 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.html @@ -0,0 +1,149 @@ + + +ParadisEO-MOEO: moeoDummyDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDummyDiversityAssignment< MOEOT > Class Template Reference

moeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid. +More... +

+#include <moeoDummyDiversityAssignment.h> +

+

Inheritance diagram for moeoDummyDiversityAssignment< MOEOT >: +

+ +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

void operator() (eoPop< MOEOT > &_pop)
 Sets the diversity to '0' for every individuals of the population _pop if it is invalid.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDummyDiversityAssignment< MOEOT >

+ +moeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid. +

+ +

+Definition at line 22 of file moeoDummyDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoDummyDiversityAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the diversity to '0' for every individuals of the population _pop if it is invalid. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 34 of file moeoDummyDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoDummyDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoDiversityAssignment< MOEOT >. +

+Definition at line 52 of file moeoDummyDiversityAssignment.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.png new file mode 100644 index 000000000..b4489ca44 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyDiversityAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment-members.html new file mode 100644 index 000000000..080d8e62d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoDummyFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoDummyFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoDummyFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoDummyFitnessAssignment< MOEOT > [inline, virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoDummyFitnessAssignment< MOEOT > [inline, virtual]
moeoFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html new file mode 100644 index 000000000..5aca7bd83 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.html @@ -0,0 +1,149 @@ + + +ParadisEO-MOEO: moeoDummyFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoDummyFitnessAssignment< MOEOT > Class Template Reference

moeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid. +More... +

+#include <moeoDummyFitnessAssignment.h> +

+

Inheritance diagram for moeoDummyFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness to '0' for every individuals of the population _pop if it is invalid.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoDummyFitnessAssignment< MOEOT >

+ +moeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid. +

+ +

+Definition at line 22 of file moeoDummyFitnessAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoDummyFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness to '0' for every individuals of the population _pop if it is invalid. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 34 of file moeoDummyFitnessAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoDummyFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 52 of file moeoDummyFitnessAssignment.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.png new file mode 100644 index 000000000..9dd125053 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoDummyFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA-members.html new file mode 100644 index 000000000..80a165c0c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEA< MOEOT > Member List

This is the complete list of members for moeoEA< MOEOT >, including all inherited members.

+ + + + +
functor_category()eoUF< A1, R > [static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA.html new file mode 100644 index 000000000..a66642a76 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoEA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEA< MOEOT > Class Template Reference

Abstract class for multi-objective evolutionary algorithms. +More... +

+#include <moeoEA.h> +

+

Inheritance diagram for moeoEA< MOEOT >: +

+ +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase +moeoEasyEA< MOEOT > +moeoIBEA< MOEOT > +moeoNSGA< MOEOT > +moeoNSGAII< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoEA< MOEOT >

+ +Abstract class for multi-objective evolutionary algorithms. +

+ +

+Definition at line 23 of file moeoEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA.png new file mode 100644 index 000000000..f07b00510 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEA.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA-members.html new file mode 100644 index 000000000..2b3dc0c26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA-members.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT > Member List

This is the complete list of members for moeoEasyEA< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
breedmoeoEasyEA< MOEOT > [protected]
continuatormoeoEasyEA< MOEOT > [protected]
diversityEvalmoeoEasyEA< MOEOT > [protected]
dummyEvalmoeoEasyEA< MOEOT > [protected]
dummyMergemoeoEasyEA< MOEOT > [protected]
dummyReducemoeoEasyEA< MOEOT > [protected]
dummySelectmoeoEasyEA< MOEOT > [protected]
dummyTransformmoeoEasyEA< MOEOT > [protected]
evalmoeoEasyEA< MOEOT > [protected]
evalFitAndDivBeforeSelectionmoeoEasyEA< MOEOT > [protected]
fitnessEvalmoeoEasyEA< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
loopEvalmoeoEasyEA< MOEOT > [protected]
mergeReducemoeoEasyEA< MOEOT > [protected]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoPopEvalFunc< MOEOT > &_popEval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
moeoEasyEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)moeoEasyEA< MOEOT > [inline]
operator()(eoPop< MOEOT > &_pop)moeoEasyEA< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoEasyEA< MOEOT > [protected]
replacemoeoEasyEA< MOEOT > [protected]
selectTransformmoeoEasyEA< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA.html new file mode 100644 index 000000000..82e7f4250 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA.html @@ -0,0 +1,599 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEasyEA< MOEOT > Class Template Reference

An easy class to design multi-objective evolutionary algorithms. +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a breed and merge.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoPopEvalFunc< MOEOT > &_popEval, eoBreed< MOEOT > &_breed, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a breed, a merge and a eoPopEval.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoBreed< MOEOT > &_breed, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a breed, a merge and a reduce.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, moeoReplacement< MOEOT > &_replace, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a select, a transform and a replacement.
 moeoEasyEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoSelect< MOEOT > &_select, eoTransform< MOEOT > &_transform, eoMerge< MOEOT > &_merge, eoReduce< MOEOT > &_reduce, moeoFitnessAssignment< MOEOT > &_fitnessEval, moeoDiversityAssignment< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)
 Ctor taking a select, a transform, a merge and a reduce.
virtual void operator() (eoPop< MOEOT > &_pop)
 Applies a few generation of evolution to the population _pop.

Protected Attributes

+eoContinue< MOEOT > & continuator
 the stopping criteria
+eoEvalFunc< MOEOT > & eval
 the evaluation functions
+eoPopLoopEval< MOEOT > loopEval
 to evaluate the whole population
+eoPopEvalFunc< MOEOT > & popEval
 to evaluate the whole population
+eoSelectTransform< MOEOT > selectTransform
 breed: a select followed by a transform
+eoBreed< MOEOT > & breed
 the breeder
+eoMergeReduce< MOEOT > mergeReduce
 replacement: a merge followed by a reduce
+moeoReplacement< MOEOT > & replace
 the replacment strategy
+moeoFitnessAssignment< MOEOT > & fitnessEval
 the fitness assignment strategy
+moeoDiversityAssignment< MOEOT > & diversityEval
 the diversity assignment strategy
+bool evalFitAndDivBeforeSelection
 if this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process
+moeoEasyEA::eoDummyEval dummyEval
 a dummy eval
+moeoEasyEA::eoDummySelect dummySelect
 a dummy select
+moeoEasyEA::eoDummyTransform dummyTransform
 a dummy transform
+eoNoElitism< MOEOT > dummyMerge
 a dummy merge
+eoTruncate< MOEOT > dummyReduce
 a dummy reduce

Classes

class  eoDummyEval
 a dummy eval More...
class  eoDummySelect
 a dummy select More...
class  eoDummyTransform
 a dummy transform More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >

+ +An easy class to design multi-objective evolutionary algorithms. +

+ +

+Definition at line 33 of file moeoEasyEA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoBreed< MOEOT > &  _breed,
moeoReplacement< MOEOT > &  _replace,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a breed and merge. +

+

Parameters:
+ + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_breed the breeder
_replace the replacement strategy
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 47 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoPopEvalFunc< MOEOT > &  _popEval,
eoBreed< MOEOT > &  _breed,
moeoReplacement< MOEOT > &  _replace,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a breed, a merge and a eoPopEval. +

+

Parameters:
+ + + + + + + + +
_continuator the stopping criteria
_popEval the evaluation functions for the whole population
_breed the breeder
_replace the replacement strategy
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 65 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoBreed< MOEOT > &  _breed,
eoMerge< MOEOT > &  _merge,
eoReduce< MOEOT > &  _reduce,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a breed, a merge and a reduce. +

+

Parameters:
+ + + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_breed the breeder
_merge the merge scheme
_reduce the reduce scheme
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 84 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoSelect< MOEOT > &  _select,
eoTransform< MOEOT > &  _transform,
moeoReplacement< MOEOT > &  _replace,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a select, a transform and a replacement. +

+

Parameters:
+ + + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_select the selection scheme
_transform the tranformation scheme
_replace the replacement strategy
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 103 of file moeoEasyEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoEasyEA< MOEOT >::moeoEasyEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoSelect< MOEOT > &  _select,
eoTransform< MOEOT > &  _transform,
eoMerge< MOEOT > &  _merge,
eoReduce< MOEOT > &  _reduce,
moeoFitnessAssignment< MOEOT > &  _fitnessEval,
moeoDiversityAssignment< MOEOT > &  _diversityEval,
bool  _evalFitAndDivBeforeSelection = false 
) [inline]
+
+
+ +

+Ctor taking a select, a transform, a merge and a reduce. +

+

Parameters:
+ + + + + + + + + + +
_continuator the stopping criteria
_eval the evaluation functions
_select the selection scheme
_transform the tranformation scheme
_merge the merge scheme
_reduce the reduce scheme
_fitnessEval the fitness evaluation scheme
_diversityEval the diversity evaluation scheme
_evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process
+
+ +

+Definition at line 123 of file moeoEasyEA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoEasyEA< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Applies a few generation of evolution to the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 135 of file moeoEasyEA.h. +

+References moeoEasyEA< MOEOT >::breed, moeoEasyEA< MOEOT >::continuator, moeoEasyEA< MOEOT >::diversityEval, moeoEasyEA< MOEOT >::evalFitAndDivBeforeSelection, moeoEasyEA< MOEOT >::fitnessEval, moeoEasyEA< MOEOT >::popEval, and moeoEasyEA< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA.png new file mode 100644 index 000000000..4a16b3df3 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html new file mode 100644 index 000000000..94a7af990 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT >::eoDummyEval Member List

This is the complete list of members for moeoEasyEA< MOEOT >::eoDummyEval, including all inherited members.

+ + + + + + + +
EOFitT typedefeoEvalFunc< MOEOT >
EOType typedefeoEvalFunc< MOEOT >
functor_category()eoUF< A1, R > [static]
operator()(MOEOT &)moeoEasyEA< MOEOT >::eoDummyEval [inline]
eoEvalFunc< MOEOT >::operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html new file mode 100644 index 000000000..15aee00a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.html @@ -0,0 +1,67 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT >::eoDummyEval Class Reference + + + + +
+
+ + +

moeoEasyEA< MOEOT >::eoDummyEval Class Reference

a dummy eval +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >::eoDummyEval: +

+ +eoEvalFunc< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (MOEOT &)
 the dummy functor
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >::eoDummyEval

+ +a dummy eval +

+ +

+Definition at line 200 of file moeoEasyEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.png new file mode 100644 index 000000000..b84873cf5 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyEval.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect-members.html new file mode 100644 index 000000000..0d9699a0c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT >::eoDummySelect Member List

This is the complete list of members for moeoEasyEA< MOEOT >::eoDummySelect, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const eoPop< MOEOT > &, eoPop< MOEOT > &)moeoEasyEA< MOEOT >::eoDummySelect [inline]
eoSelect< MOEOT >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html new file mode 100644 index 000000000..db589dc8a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.html @@ -0,0 +1,67 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT >::eoDummySelect Class Reference + + + + +
+
+ + +

moeoEasyEA< MOEOT >::eoDummySelect Class Reference

a dummy select +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >::eoDummySelect: +

+ +eoSelect< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (const eoPop< MOEOT > &, eoPop< MOEOT > &)
 the dummy functor
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >::eoDummySelect

+ +a dummy select +

+ +

+Definition at line 204 of file moeoEasyEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.png new file mode 100644 index 000000000..b8f3b8454 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummySelect.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html new file mode 100644 index 000000000..9785151f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEasyEA< MOEOT >::eoDummyTransform Member List

This is the complete list of members for moeoEasyEA< MOEOT >::eoDummyTransform, including all inherited members.

+ + + + + +
functor_category()eoUF< A1, R > [static]
operator()(eoPop< MOEOT > &)moeoEasyEA< MOEOT >::eoDummyTransform [inline]
eoTransform< MOEOT >::operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html new file mode 100644 index 000000000..26b0b6b11 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.html @@ -0,0 +1,67 @@ + + +ParadisEO-MOEO: moeoEasyEA< MOEOT >::eoDummyTransform Class Reference + + + + +
+
+ + +

moeoEasyEA< MOEOT >::eoDummyTransform Class Reference

a dummy transform +More... +

+#include <moeoEasyEA.h> +

+

Inheritance diagram for moeoEasyEA< MOEOT >::eoDummyTransform: +

+ +eoTransform< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (eoPop< MOEOT > &)
 the dummy functor
+

Detailed Description

+

template<class MOEOT>
+ class moeoEasyEA< MOEOT >::eoDummyTransform

+ +a dummy transform +

+ +

+Definition at line 208 of file moeoEasyEA.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.png new file mode 100644 index 000000000..c5e6511a2 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEasyEA_1_1eoDummyTransform.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html new file mode 100644 index 000000000..38090cf42 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement-members.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoElitistReplacement< MOEOT > Member List

This is the complete list of members for moeoElitistReplacement< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + +
comparatormoeoElitistReplacement< MOEOT > [protected]
defaultComparatormoeoElitistReplacement< MOEOT > [protected]
defaultDiversitymoeoElitistReplacement< MOEOT > [protected]
diversityAssignmentmoeoElitistReplacement< MOEOT > [protected]
fitnessAssignmentmoeoElitistReplacement< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)moeoElitistReplacement< MOEOT > [inline]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)moeoElitistReplacement< MOEOT > [inline]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)moeoElitistReplacement< MOEOT > [inline]
moeoElitistReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment)moeoElitistReplacement< MOEOT > [inline]
operator()(eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)moeoElitistReplacement< MOEOT > [inline]
moeoReplacement::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html new file mode 100644 index 000000000..a697db619 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement.html @@ -0,0 +1,310 @@ + + +ParadisEO-MOEO: moeoElitistReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoElitistReplacement< MOEOT > Class Template Reference

Elitist replacement strategy that consists in keeping the N best individuals. +More... +

+#include <moeoElitistReplacement.h> +

+

Inheritance diagram for moeoElitistReplacement< MOEOT >: +

+ +moeoReplacement< MOEOT > +eoReplacement< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)
 Full constructor.
 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)
 Constructor without comparator.
 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)
 Constructor without moeoDiversityAssignement.
 moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment)
 Constructor without moeoDiversityAssignement nor moeoComparator.
void operator() (eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)
 Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained.

Protected Attributes

+moeoFitnessAssignment< MOEOT > & fitnessAssignment
 the fitness assignment strategy
+moeoDiversityAssignment< MOEOT > & diversityAssignment
 the diversity assignment strategy
+moeoDummyDiversityAssignment<
+ MOEOT > 
defaultDiversity
 a dummy diversity assignment can be used as default
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+moeoElitistReplacement::Cmp comparator
 this object is used to compare solutions in order to sort the population

Classes

class  Cmp
 this object is used to compare solutions in order to sort the population More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoElitistReplacement< MOEOT >

+ +Elitist replacement strategy that consists in keeping the N best individuals. +

+ +

+Definition at line 26 of file moeoElitistReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Full constructor. +

+

Parameters:
+ + + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 36 of file moeoElitistReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment 
) [inline]
+
+
+ +

+Constructor without comparator. +

+A moeoFitThenDivComparator is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
+
+ +

+Definition at line 46 of file moeoElitistReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement. +

+A dummy diversity is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 56 of file moeoElitistReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoElitistReplacement< MOEOT >::moeoElitistReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment  )  [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement nor moeoComparator. +

+A moeoFitThenDivComparator and a dummy diversity are used as default.

Parameters:
+ + +
_fitnessAssignment the fitness assignment strategy
+
+ +

+Definition at line 66 of file moeoElitistReplacement.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoElitistReplacement< MOEOT >::operator() (eoPop< MOEOT > &  _parents,
eoPop< MOEOT > &  _offspring 
) [inline]
+
+
+ +

+Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. +

+

Parameters:
+ + + +
_parents the population composed of the parents (the population you want to replace)
_offspring the offspring population
+
+ +

+Definition at line 76 of file moeoElitistReplacement.h. +

+References moeoElitistReplacement< MOEOT >::comparator, moeoElitistReplacement< MOEOT >::diversityAssignment, and moeoElitistReplacement< MOEOT >::fitnessAssignment. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement.png new file mode 100644 index 000000000..c9df8b373 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html new file mode 100644 index 000000000..9a0d6d421 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp-members.html @@ -0,0 +1,39 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoElitistReplacement< MOEOT >::Cmp Member List

This is the complete list of members for moeoElitistReplacement< MOEOT >::Cmp, including all inherited members.

+ + + +
Cmp(moeoComparator< MOEOT > &_comp)moeoElitistReplacement< MOEOT >::Cmp [inline]
compmoeoElitistReplacement< MOEOT >::Cmp [private]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoElitistReplacement< MOEOT >::Cmp [inline]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html new file mode 100644 index 000000000..119df4255 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoElitistReplacement_1_1Cmp.html @@ -0,0 +1,100 @@ + + +ParadisEO-MOEO: moeoElitistReplacement< MOEOT >::Cmp Class Reference + + + + +
+
+ + +

moeoElitistReplacement< MOEOT >::Cmp Class Reference

this object is used to compare solutions in order to sort the population +More... +

+#include <moeoElitistReplacement.h> +

+List of all members. + + + + + + + + + + + + +

Public Member Functions

 Cmp (moeoComparator< MOEOT > &_comp)
 Ctor.
+bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual.

Private Attributes

+moeoComparator< MOEOT > & comp
 the comparator
+


Detailed Description

+

template<class MOEOT>
+ class moeoElitistReplacement< MOEOT >::Cmp

+ +this object is used to compare solutions in order to sort the population +

+ +

+Definition at line 105 of file moeoElitistReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoElitistReplacement< MOEOT >::Cmp::Cmp (moeoComparator< MOEOT > &  _comp  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_comp the comparator
+
+ +

+Definition at line 112 of file moeoElitistReplacement.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html new file mode 100644 index 000000000..e5b3bf639 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric-members.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEntropyMetric< ObjectiveVector > Member List

This is the complete list of members for moeoEntropyMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + + + + + + +
computeUnion(const std::vector< ObjectiveVector > &_f1, const std::vector< ObjectiveVector > &_f2, std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
euclidianDistance(const ObjectiveVector &_set1, const ObjectiveVector &_to, unsigned int _deg=2)moeoEntropyMetric< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
howManyInNicheOf(const std::vector< ObjectiveVector > &_f, const ObjectiveVector &_s, unsigned int _size)moeoEntropyMetric< ObjectiveVector > [inline, private]
normalize(std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
operator()(const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)moeoEntropyMetric< ObjectiveVector > [inline]
moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoEntropyMetric< ObjectiveVector > [private]
prenormalize(const std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
removeDominated(std::vector< ObjectiveVector > &_f)moeoEntropyMetric< ObjectiveVector > [inline, private]
vect_max_valmoeoEntropyMetric< ObjectiveVector > [private]
vect_min_valmoeoEntropyMetric< ObjectiveVector > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html new file mode 100644 index 000000000..2c3b8b53f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric.html @@ -0,0 +1,303 @@ + + +ParadisEO-MOEO: moeoEntropyMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoEntropyMetric< ObjectiveVector > Class Template Reference

The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. +More... +

+#include <moeoEntropyMetric.h> +

+

Inheritance diagram for moeoEntropyMetric< ObjectiveVector >: +

+ +moeoVectorVsVectorBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

double operator() (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)
 Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'.

Private Member Functions

void removeDominated (std::vector< ObjectiveVector > &_f)
 Removes the dominated individuals contained in _f.
void prenormalize (const std::vector< ObjectiveVector > &_f)
 Prenormalization.
void normalize (std::vector< ObjectiveVector > &_f)
 Normalization.
void computeUnion (const std::vector< ObjectiveVector > &_f1, const std::vector< ObjectiveVector > &_f2, std::vector< ObjectiveVector > &_f)
 Computation of the union of _f1 and _f2 in _f.
+unsigned int howManyInNicheOf (const std::vector< ObjectiveVector > &_f, const ObjectiveVector &_s, unsigned int _size)
 How many in niche.
+double euclidianDistance (const ObjectiveVector &_set1, const ObjectiveVector &_to, unsigned int _deg=2)
 Euclidian distance.

Private Attributes

+std::vector< double > vect_min_val
 vector of min values
+std::vector< double > vect_max_val
 vector of max values
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoEntropyMetric< ObjectiveVector >

+ +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. +

+of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) +

+ +

+Definition at line 25 of file moeoEntropyMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoEntropyMetric< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > &  _set1,
const std::vector< ObjectiveVector > &  _set2 
) [inline]
+
+
+ +

+Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'. +

+

Parameters:
+ + + +
_set1 the first Pareto set
_set2 the second Pareto set
+
+ +

+Definition at line 34 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::computeUnion(), moeoEntropyMetric< ObjectiveVector >::howManyInNicheOf(), moeoEntropyMetric< ObjectiveVector >::normalize(), moeoEntropyMetric< ObjectiveVector >::prenormalize(), and moeoEntropyMetric< ObjectiveVector >::removeDominated(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::removeDominated (std::vector< ObjectiveVector > &  _f  )  [inline, private]
+
+
+ +

+Removes the dominated individuals contained in _f. +

+

Parameters:
+ + +
_f a Pareto set
+
+ +

+Definition at line 85 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::paretoComparator. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::prenormalize (const std::vector< ObjectiveVector > &  _f  )  [inline, private]
+
+
+ +

+Prenormalization. +

+

Parameters:
+ + +
_f a Pareto set
+
+ +

+Definition at line 107 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::normalize (std::vector< ObjectiveVector > &  _f  )  [inline, private]
+
+
+ +

+Normalization. +

+

Parameters:
+ + +
_f a Pareto set
+
+ +

+Definition at line 129 of file moeoEntropyMetric.h. +

+References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void moeoEntropyMetric< ObjectiveVector >::computeUnion (const std::vector< ObjectiveVector > &  _f1,
const std::vector< ObjectiveVector > &  _f2,
std::vector< ObjectiveVector > &  _f 
) [inline, private]
+
+
+ +

+Computation of the union of _f1 and _f2 in _f. +

+

Parameters:
+ + + + +
_f1 the first Pareto set
_f2 the second Pareto set
_f the final Pareto set
+
+ +

+Definition at line 142 of file moeoEntropyMetric.h. +

+Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric.png new file mode 100644 index 000000000..070e38a33 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEntropyMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement-members.html new file mode 100644 index 000000000..5208fe0ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEnvironmentalReplacement< MOEOT > Member List

This is the complete list of members for moeoEnvironmentalReplacement< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
comparatormoeoEnvironmentalReplacement< MOEOT > [protected]
defaultComparatormoeoEnvironmentalReplacement< MOEOT > [protected]
defaultDiversitymoeoEnvironmentalReplacement< MOEOT > [protected]
diversityAssignmentmoeoEnvironmentalReplacement< MOEOT > [protected]
fitnessAssignmentmoeoEnvironmentalReplacement< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoEnvironmentalReplacement(moeoFitnessAssignment< MOEOT > &_fitnessAssignment)moeoEnvironmentalReplacement< MOEOT > [inline]
ObjectiveVector typedefmoeoEnvironmentalReplacement< MOEOT >
operator()(eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)moeoEnvironmentalReplacement< MOEOT > [inline]
moeoReplacement::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html new file mode 100644 index 000000000..0db3e2d24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.html @@ -0,0 +1,315 @@ + + +ParadisEO-MOEO: moeoEnvironmentalReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEnvironmentalReplacement< MOEOT > Class Template Reference

Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. +More... +

+#include <moeoEnvironmentalReplacement.h> +

+

Inheritance diagram for moeoEnvironmentalReplacement< MOEOT >: +

+ +moeoReplacement< MOEOT > +eoReplacement< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment, moeoComparator< MOEOT > &_comparator)
 Full constructor.
 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoDiversityAssignment< MOEOT > &_diversityAssignment)
 Constructor without comparator.
 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment, moeoComparator< MOEOT > &_comparator)
 Constructor without moeoDiversityAssignement.
 moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &_fitnessAssignment)
 Constructor without moeoDiversityAssignement nor moeoComparator.
void operator() (eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)
 Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained.

Protected Attributes

+moeoFitnessAssignment< MOEOT > & fitnessAssignment
 the fitness assignment strategy
+moeoDiversityAssignment< MOEOT > & diversityAssignment
 the diversity assignment strategy
+moeoDummyDiversityAssignment<
+ MOEOT > 
defaultDiversity
 a dummy diversity assignment can be used as default
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+moeoEnvironmentalReplacement::Cmp comparator
 this object is used to compare solutions in order to sort the population

Classes

class  Cmp
 this object is used to compare solutions in order to sort the population More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoEnvironmentalReplacement< MOEOT >

+ +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. +

+ +

+Definition at line 26 of file moeoEnvironmentalReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Full constructor. +

+

Parameters:
+ + + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 40 of file moeoEnvironmentalReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoDiversityAssignment< MOEOT > &  _diversityAssignment 
) [inline]
+
+
+ +

+Constructor without comparator. +

+A moeoFitThenDivComparator is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_diversityAssignment the diversity assignment strategy
+
+ +

+Definition at line 50 of file moeoEnvironmentalReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment,
moeoComparator< MOEOT > &  _comparator 
) [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement. +

+A dummy diversity is used as default.

Parameters:
+ + + +
_fitnessAssignment the fitness assignment strategy
_comparator the comparator (used to compare 2 individuals)
+
+ +

+Definition at line 60 of file moeoEnvironmentalReplacement.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::moeoEnvironmentalReplacement (moeoFitnessAssignment< MOEOT > &  _fitnessAssignment  )  [inline]
+
+
+ +

+Constructor without moeoDiversityAssignement nor moeoComparator. +

+A moeoFitThenDivComparator and a dummy diversity are used as default.

Parameters:
+ + +
_fitnessAssignment the fitness assignment strategy
+
+ +

+Definition at line 70 of file moeoEnvironmentalReplacement.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoEnvironmentalReplacement< MOEOT >::operator() (eoPop< MOEOT > &  _parents,
eoPop< MOEOT > &  _offspring 
) [inline]
+
+
+ +

+Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. +

+

Parameters:
+ + + +
_parents the population composed of the parents (the population you want to replace)
_offspring the offspring population
+
+ +

+Definition at line 80 of file moeoEnvironmentalReplacement.h. +

+References moeoEnvironmentalReplacement< MOEOT >::comparator, moeoEnvironmentalReplacement< MOEOT >::diversityAssignment, and moeoEnvironmentalReplacement< MOEOT >::fitnessAssignment. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.png new file mode 100644 index 000000000..ee0869fc6 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html new file mode 100644 index 000000000..f7bd8bcbd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp-members.html @@ -0,0 +1,39 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEnvironmentalReplacement< MOEOT >::Cmp Member List

This is the complete list of members for moeoEnvironmentalReplacement< MOEOT >::Cmp, including all inherited members.

+ + + +
Cmp(moeoComparator< MOEOT > &_comp)moeoEnvironmentalReplacement< MOEOT >::Cmp [inline]
compmoeoEnvironmentalReplacement< MOEOT >::Cmp [private]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoEnvironmentalReplacement< MOEOT >::Cmp [inline]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html new file mode 100644 index 000000000..105606415 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEnvironmentalReplacement_1_1Cmp.html @@ -0,0 +1,100 @@ + + +ParadisEO-MOEO: moeoEnvironmentalReplacement< MOEOT >::Cmp Class Reference + + + + +
+
+ + +

moeoEnvironmentalReplacement< MOEOT >::Cmp Class Reference

this object is used to compare solutions in order to sort the population +More... +

+#include <moeoEnvironmentalReplacement.h> +

+List of all members. + + + + + + + + + + + + +

Public Member Functions

 Cmp (moeoComparator< MOEOT > &_comp)
 Ctor.
+bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual.

Private Attributes

+moeoComparator< MOEOT > & comp
 the comparator
+


Detailed Description

+

template<class MOEOT>
+ class moeoEnvironmentalReplacement< MOEOT >::Cmp

+ +this object is used to compare solutions in order to sort the population +

+ +

+Definition at line 121 of file moeoEnvironmentalReplacement.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoEnvironmentalReplacement< MOEOT >::Cmp::Cmp (moeoComparator< MOEOT > &  _comp  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_comp the comparator
+
+ +

+Definition at line 128 of file moeoEnvironmentalReplacement.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html new file mode 100644 index 000000000..9a156b0a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEuclideanDistance< MOEOT > Member List

This is the complete list of members for moeoEuclideanDistance< MOEOT >, including all inherited members.

+ + + + + + + + + + + + +
boundsmoeoNormalizedDistance< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedDistance()moeoNormalizedDistance< MOEOT > [inline]
ObjectiveVector typedefmoeoEuclideanDistance< MOEOT >
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoEuclideanDistance< MOEOT > [inline]
moeoNormalizedDistance< MOEOT >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
tiny()moeoNormalizedDistance< MOEOT > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html new file mode 100644 index 000000000..35a0ad1b7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.html @@ -0,0 +1,116 @@ + + +ParadisEO-MOEO: moeoEuclideanDistance< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEuclideanDistance< MOEOT > Class Template Reference

A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. +More... +

+#include <moeoEuclideanDistance.h> +

+

Inheritance diagram for moeoEuclideanDistance< MOEOT >: +

+ +moeoNormalizedDistance< MOEOT > +moeoDistance< MOEOT, double > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

const double operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns the euclidian distance between _moeo1 and _moeo2 in the objective space.
+

Detailed Description

+

template<class MOEOT>
+ class moeoEuclideanDistance< MOEOT >

+ +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. +

+between 0 and 1). A distance value then lies between 0 and sqrt(nObjectives). +

+ +

+Definition at line 24 of file moeoEuclideanDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const double moeoEuclideanDistance< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns the euclidian distance between _moeo1 and _moeo2 in the objective space. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 37 of file moeoEuclideanDistance.h. +

+References moeoNormalizedDistance< MOEOT >::bounds. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.png new file mode 100644 index 000000000..e57f38c7c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEuclideanDistance.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html new file mode 100644 index 000000000..502a3dbde --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoEvalFunc< MOEOT > Member List

This is the complete list of members for moeoEvalFunc< MOEOT >, including all inherited members.

+ + + + + + +
EOFitT typedefeoEvalFunc< MOEOT >
EOType typedefeoEvalFunc< MOEOT >
functor_category()eoUF< A1, R > [static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc.html new file mode 100644 index 000000000..d5e674007 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc.html @@ -0,0 +1,55 @@ + + +ParadisEO-MOEO: moeoEvalFunc< MOEOT > Class Template Reference + + + + +
+
+ +

moeoEvalFunc< MOEOT > Class Template Reference

Inheritance diagram for moeoEvalFunc< MOEOT >: +

+ +eoEvalFunc< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoEvalFunc< MOEOT >

+ + +

+ +

+Definition at line 22 of file moeoEvalFunc.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc.png new file mode 100644 index 000000000..cf6ffdddc Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoEvalFunc.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html new file mode 100644 index 000000000..189086485 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment-members.html @@ -0,0 +1,52 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + +
computeFitness(const unsigned int _idx)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
computeValues(const eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
kappamoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [protected]
metricmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [protected]
moeoExpBinaryIndicatorBasedFitnessAssignment(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline]
ObjectiveVector typedefmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, virtual]
setFitnesses(eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
setup(const eoPop< MOEOT > &_pop)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, protected]
updateByAdding(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [inline, virtual]
moeoBinaryIndicatorBasedFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
valuesmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..8a3d4c8a4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.html @@ -0,0 +1,416 @@ + + +ParadisEO-MOEO: moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

Fitness assignment sheme based on an indicator proposed in: E. +More... +

+#include <moeoExpBinaryIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type of objective vector.

Public Member Functions

 moeoExpBinaryIndicatorBasedFitnessAssignment (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor.
void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
double updateByAdding (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec.

Protected Member Functions

void setup (const eoPop< MOEOT > &_pop)
 Sets the bounds for every objective using the min and the max value for every objective vector of _pop.
void computeValues (const eoPop< MOEOT > &_pop)
 Compute every indicator value in values (values[i] = I(_v[i], _o)).
void setFitnesses (eoPop< MOEOT > &_pop)
 Sets the fitness value of the whple population.
double computeFitness (const unsigned int _idx)
 Returns the fitness value of the _idx th individual of the population.

Protected Attributes

+moeoNormalizedSolutionVsSolutionBinaryMetric<
+ ObjectiveVector, double > & 
metric
 the quality indicator
+double kappa
 the scaling factor
+std::vector< std::vector<
+ double > > 
values
 the computed indicator values
+

Detailed Description

+

template<class MOEOT>
+ class moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >

+ +Fitness assignment sheme based on an indicator proposed in: E. +

+Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This strategy is, for instance, used in IBEA. +

+ +

+Definition at line 29 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::moeoExpBinaryIndicatorBasedFitnessAssignment (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_metric the quality indicator
_kappa the scaling factor
+
+ +

+Definition at line 42 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 50 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeValues(), moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(), and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 66 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
double moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::updateByAdding (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Definition at line 87 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup (const eoPop< MOEOT > &  _pop  )  [inline, protected]
+
+
+ +

+Sets the bounds for every objective using the min and the max value for every objective vector of _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 130 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup(). +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeValues (const eoPop< MOEOT > &  _pop  )  [inline, protected]
+
+
+ +

+Compute every indicator value in values (values[i] = I(_v[i], _o)). +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 152 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses (eoPop< MOEOT > &  _pop  )  [inline, protected]
+
+
+ +

+Sets the fitness value of the whple population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 174 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeFitness(). +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
double moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeFitness (const unsigned int  _idx  )  [inline, protected]
+
+
+ +

+Returns the fitness value of the _idx th individual of the population. +

+

Parameters:
+ + +
_idx the index
+
+ +

+Definition at line 187 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +

+References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.png new file mode 100644 index 000000000..6dd362e57 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoExpBinaryIndicatorBasedFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment-members.html new file mode 100644 index 000000000..5b6139dd3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
comparatormoeoFastNonDominatedSortingFitnessAssignment< MOEOT > [private]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
mObjectives(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, private]
moeoFastNonDominatedSortingFitnessAssignment()moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline]
moeoFastNonDominatedSortingFitnessAssignment(moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline]
objComparatormoeoFastNonDominatedSortingFitnessAssignment< MOEOT > [private]
ObjectiveVector typedefmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >
oneObjective(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, private]
operator()(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, virtual]
paretoComparatormoeoFastNonDominatedSortingFitnessAssignment< MOEOT > [private]
twoObjectives(eoPop< MOEOT > &_pop)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, private]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoFastNonDominatedSortingFitnessAssignment< MOEOT > [inline, virtual]
moeoParetoBasedFitnessAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html new file mode 100644 index 000000000..62bb71e18 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.html @@ -0,0 +1,325 @@ + + +ParadisEO-MOEO: moeoFastNonDominatedSortingFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT > Class Template Reference

Fitness assignment sheme based on Pareto-dominance count proposed in: N. +More... +

+#include <moeoFastNonDominatedSortingFitnessAssignment.h> +

+

Inheritance diagram for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >: +

+ +moeoParetoBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

moeoFastNonDominatedSortingFitnessAssignment ()
 Default ctor.
 moeoFastNonDominatedSortingFitnessAssignment (moeoObjectiveVectorComparator< ObjectiveVector > &_comparator)
 Ctor where you can choose your own way to compare objective vectors.
void operator() (eoPop< MOEOT > &_pop)
 Sets the fitness values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.

Private Member Functions

void oneObjective (eoPop< MOEOT > &_pop)
 Sets the fitness values for mono-objective problems.
void twoObjectives (eoPop< MOEOT > &_pop)
 Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size.
void mObjectives (eoPop< MOEOT > &_pop)
 Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size.

Private Attributes

+moeoObjectiveVectorComparator<
+ ObjectiveVector > & 
comparator
 Functor to compare two objective vectors.
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator objComparator
 Functor allowing to compare two solutions according to their first objective value, then their second, and so on.

Classes

class  ObjectiveComparator
 Functor allowing to compare two solutions according to their first objective value, then their second, and so on. More...
+

Detailed Description

+

template<class MOEOT>
+ class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >

+ +Fitness assignment sheme based on Pareto-dominance count proposed in: N. +

+Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms", Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) and in: K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). This strategy is, for instance, used in NSGA and NSGA-II. +

+ +

+Definition at line 32 of file moeoFastNonDominatedSortingFitnessAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::moeoFastNonDominatedSortingFitnessAssignment (moeoObjectiveVectorComparator< ObjectiveVector > &  _comparator  )  [inline]
+
+
+ +

+Ctor where you can choose your own way to compare objective vectors. +

+

Parameters:
+ + +
_comparator the functor used to compare objective vectors
+
+ +

+Definition at line 51 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the fitness values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 59 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::mObjectives(), and moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::oneObjective(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implements moeoFitnessAssignment< MOEOT >. +

+Definition at line 101 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::oneObjective (eoPop< MOEOT > &  _pop  )  [inline, private]
+
+
+ +

+Sets the fitness values for mono-objective problems. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 143 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::objComparator. +

+Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::twoObjectives (eoPop< MOEOT > &  _pop  )  [inline, private]
+
+
+ +

+Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 165 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::mObjectives (eoPop< MOEOT > &  _pop  )  [inline, private]
+
+
+ +

+Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 175 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +

+Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.png new file mode 100644 index 000000000..3749d9490 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html new file mode 100644 index 000000000..85ded43f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator Member List

This is the complete list of members for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator, including all inherited members.

+ + + + + + +
cmpmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator [private]
functor_category()eoBF< A1, A2, R > [static]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html new file mode 100644 index 000000000..bb5e01ab9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.html @@ -0,0 +1,114 @@ + + +ParadisEO-MOEO: moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator Class Reference + + + + +
+
+ + +

moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator Class Reference

Functor allowing to compare two solutions according to their first objective value, then their second, and so on. +More... +

+

Inheritance diagram for moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Member Functions

const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on.

Private Attributes

+moeoObjectiveObjectiveVectorComparator<
+ ObjectiveVector
cmp
 the corresponding comparator for objective vectors
+

Detailed Description

+

template<class MOEOT>
+ class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator

+ +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. +

+ +

+Definition at line 121 of file moeoFastNonDominatedSortingFitnessAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 129 of file moeoFastNonDominatedSortingFitnessAssignment.h. +

+References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator::cmp. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.png new file mode 100644 index 000000000..797288325 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html new file mode 100644 index 000000000..4f375f9a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html new file mode 100644 index 000000000..5cb85dadf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.html @@ -0,0 +1,168 @@ + + +ParadisEO-MOEO: moeoFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFitnessAssignment< MOEOT > Class Template Reference

Functor that sets the fitness values of a whole population. +More... +

+#include <moeoFitnessAssignment.h> +

+

Inheritance diagram for moeoFitnessAssignment< MOEOT >: +

+ +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoCriterionBasedFitnessAssignment< MOEOT > +moeoDummyFitnessAssignment< MOEOT > +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoParetoBasedFitnessAssignment< MOEOT > +moeoScalarFitnessAssignment< MOEOT > +moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > +moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > +moeoFastNonDominatedSortingFitnessAssignment< MOEOT > +moeoAchievementFitnessAssignment< MOEOT > +moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type for objective vector.

Public Member Functions

virtual void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0
 Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
void updateByDeleting (eoPop< MOEOT > &_pop, MOEOT &_moeo)
 Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account.
+

Detailed Description

+

template<class MOEOT>
+ class moeoFitnessAssignment< MOEOT >

+ +Functor that sets the fitness values of a whole population. +

+ +

+Definition at line 23 of file moeoFitnessAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [pure virtual]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +

+

Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+ +

+Implemented in moeoAchievementFitnessAssignment< MOEOT >, moeoDummyFitnessAssignment< MOEOT >, moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >, and moeoFastNonDominatedSortingFitnessAssignment< MOEOT >. +

+Referenced by moeoFitnessAssignment< MOEOT >::updateByDeleting(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFitnessAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
MOEOT &  _moeo 
) [inline]
+
+
+ +

+Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. +

+

Parameters:
+ + + +
_pop the population
_moeo the individual
+
+ +

+Definition at line 44 of file moeoFitnessAssignment.h. +

+References moeoFitnessAssignment< MOEOT >::updateByDeleting(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.png new file mode 100644 index 000000000..2e0cd207d Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator-members.html new file mode 100644 index 000000000..e7f2c1a83 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFitnessThenDiversityComparator< MOEOT > Member List

This is the complete list of members for moeoFitnessThenDiversityComparator< MOEOT >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoFitnessThenDiversityComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html new file mode 100644 index 000000000..329920597 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoFitnessThenDiversityComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFitnessThenDiversityComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. +More... +

+#include <moeoFitnessThenDiversityComparator.h> +

+

Inheritance diagram for moeoFitnessThenDiversityComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values.
+

Detailed Description

+

template<class MOEOT>
+ class moeoFitnessThenDiversityComparator< MOEOT >

+ +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. +

+ +

+Definition at line 22 of file moeoFitnessThenDiversityComparator.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoFitnessThenDiversityComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 31 of file moeoFitnessThenDiversityComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.png new file mode 100644 index 000000000..13040c492 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFitnessThenDiversityComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment-members.html new file mode 100644 index 000000000..0587064b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
inf() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
lastIndex(eoPop< MOEOT > &_pop, unsigned int _start)moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > [inline, private]
ObjectiveVector typedefmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoCrowdingDiversityAssignment< MOEOT > [inline, virtual]
setDistances(eoPop< MOEOT > &_pop)moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > [inline, private, virtual]
tiny() const moeoCrowdingDiversityAssignment< MOEOT > [inline]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html new file mode 100644 index 000000000..8a99e63c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.html @@ -0,0 +1,200 @@ + + +ParadisEO-MOEO: moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFrontByFrontCrowdingDiversityAssignment< MOEOT > Class Template Reference

Diversity assignment sheme based on crowding proposed in: K. +More... +

+#include <moeoFrontByFrontCrowdingDiversityAssignment.h> +

+

Inheritance diagram for moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >: +

+ +moeoCrowdingDiversityAssignment< MOEOT > +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Private Member Functions

void setDistances (eoPop< MOEOT > &_pop)
 Sets the distance values.
unsigned int lastIndex (eoPop< MOEOT > &_pop, unsigned int _start)
 Returns the index of the last individual having the same fitness value than _pop[_start].
+

Detailed Description

+

template<class MOEOT>
+ class moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >

+ +Diversity assignment sheme based on crowding proposed in: K. +

+Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. +

+ +

+Definition at line 25 of file moeoFrontByFrontCrowdingDiversityAssignment.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Reimplemented from moeoCrowdingDiversityAssignment< MOEOT >. +

+Definition at line 40 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::setDistances (eoPop< MOEOT > &  _pop  )  [inline, private, virtual]
+
+ +

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
unsigned int moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::lastIndex (eoPop< MOEOT > &  _pop,
unsigned int  _start 
) [inline, private]
+
+
+ +

+Returns the index of the last individual having the same fitness value than _pop[_start]. +

+

Parameters:
+ + + +
_pop the population
_start the index to start from
+
+ +

+Definition at line 121 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +

+Referenced by moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::setDistances(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.png new file mode 100644 index 000000000..30e862b7b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontCrowdingDiversityAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment-members.html new file mode 100644 index 000000000..b84ec0633 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment-members.html @@ -0,0 +1,53 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoFrontByFrontSharingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoFrontByFrontSharingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
alphamoeoSharingDiversityAssignment< MOEOT > [protected]
defaultDistancemoeoSharingDiversityAssignment< MOEOT > [protected]
distancemoeoSharingDiversityAssignment< MOEOT > [protected]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
moeoFrontByFrontSharingDiversityAssignment(moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=2.0)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline]
moeoFrontByFrontSharingDiversityAssignment(double _nicheSize=0.5, double _alpha=2.0)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline]
moeoSharingDiversityAssignment(moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
moeoSharingDiversityAssignment(double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
nicheSizemoeoSharingDiversityAssignment< MOEOT > [protected]
ObjectiveVector typedefmoeoFrontByFrontSharingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoSharingDiversityAssignment< MOEOT > [inline, virtual]
setSimilarities(eoPop< MOEOT > &_pop)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline, private, virtual]
sh(double _dist)moeoSharingDiversityAssignment< MOEOT > [inline, protected]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoFrontByFrontSharingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html new file mode 100644 index 000000000..116080162 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.html @@ -0,0 +1,248 @@ + + +ParadisEO-MOEO: moeoFrontByFrontSharingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoFrontByFrontSharingDiversityAssignment< MOEOT > Class Template Reference

Sharing assignment scheme on the way it is used in NSGA. +More... +

+#include <moeoFrontByFrontSharingDiversityAssignment.h> +

+

Inheritance diagram for moeoFrontByFrontSharingDiversityAssignment< MOEOT >: +

+ +moeoSharingDiversityAssignment< MOEOT > +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

 moeoFrontByFrontSharingDiversityAssignment (moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=2.0)
 Ctor.
 moeoFrontByFrontSharingDiversityAssignment (double _nicheSize=0.5, double _alpha=2.0)
 Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Private Member Functions

void setSimilarities (eoPop< MOEOT > &_pop)
 Sets similarities FRONT BY FRONT for every solution contained in the population _pop.
+

Detailed Description

+

template<class MOEOT>
+ class moeoFrontByFrontSharingDiversityAssignment< MOEOT >

+ +Sharing assignment scheme on the way it is used in NSGA. +

+ +

+Definition at line 22 of file moeoFrontByFrontSharingDiversityAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoFrontByFrontSharingDiversityAssignment< MOEOT >::moeoFrontByFrontSharingDiversityAssignment (moeoDistance< MOEOT, double > &  _distance,
double  _nicheSize = 0.5,
double  _alpha = 2.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + +
_distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space)
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 36 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoFrontByFrontSharingDiversityAssignment< MOEOT >::moeoFrontByFrontSharingDiversityAssignment (double  _nicheSize = 0.5,
double  _alpha = 2.0 
) [inline]
+
+
+ +

+Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +

+

Parameters:
+ + + +
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 45 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoFrontByFrontSharingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Reimplemented from moeoSharingDiversityAssignment< MOEOT >. +

+Definition at line 56 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoFrontByFrontSharingDiversityAssignment< MOEOT >::setSimilarities (eoPop< MOEOT > &  _pop  )  [inline, private, virtual]
+
+
+ +

+Sets similarities FRONT BY FRONT for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented from moeoSharingDiversityAssignment< MOEOT >. +

+Definition at line 74 of file moeoFrontByFrontSharingDiversityAssignment.h. +

+References moeoSharingDiversityAssignment< MOEOT >::distance, moeoSharingDiversityAssignment< MOEOT >::nicheSize, and moeoSharingDiversityAssignment< MOEOT >::sh(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.png new file mode 100644 index 000000000..836960c5c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoFrontByFrontSharingDiversityAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html new file mode 100644 index 000000000..f5d23a233 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoGDominanceObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoGDominanceObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + + + + + + +
flag(const ObjectiveVector &_objectiveVector)moeoGDominanceObjectiveVectorComparator< ObjectiveVector > [inline, private]
functor_category()eoBF< A1, A2, R > [static]
moeoGDominanceObjectiveVectorComparator(ObjectiveVector &_ref)moeoGDominanceObjectiveVectorComparator< ObjectiveVector > [inline]
operator()(const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)moeoGDominanceObjectiveVectorComparator< ObjectiveVector > [inline]
moeoObjectiveVectorComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoGDominanceObjectiveVectorComparator< ObjectiveVector > [private]
refmoeoGDominanceObjectiveVectorComparator< ObjectiveVector > [private]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html new file mode 100644 index 000000000..6f3cd26b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.html @@ -0,0 +1,194 @@ + + +ParadisEO-MOEO: moeoGDominanceObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoGDominanceObjectiveVectorComparator< ObjectiveVector > Class Template Reference

This functor class allows to compare 2 objective vectors according to g-dominance. +More... +

+#include <moeoGDominanceObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoGDominanceObjectiveVectorComparator< ObjectiveVector >: +

+ +moeoObjectiveVectorComparator< ObjectiveVector > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoGDominanceObjectiveVectorComparator (ObjectiveVector &_ref)
 Ctor.
const bool operator() (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)
 Returns true if _objectiveVector1 is g-dominated by _objectiveVector2.

Private Member Functions

unsigned int flag (const ObjectiveVector &_objectiveVector)
 Returns the flag of _objectiveVector according to the reference point.

Private Attributes

+ObjectiveVector & ref
 the reference point
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Pareto comparator.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoGDominanceObjectiveVectorComparator< ObjectiveVector >

+ +This functor class allows to compare 2 objective vectors according to g-dominance. +

+The concept of g-dominance as been introduced in: J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, "g-dominance: Reference point based dominance" (2007) +

+ +

+Definition at line 25 of file moeoGDominanceObjectiveVectorComparator.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::moeoGDominanceObjectiveVectorComparator (ObjectiveVector &  _ref  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_ref the reference point
+
+ +

+Definition at line 33 of file moeoGDominanceObjectiveVectorComparator.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
const bool moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::operator() (const ObjectiveVector &  _objectiveVector1,
const ObjectiveVector &  _objectiveVector2 
) [inline]
+
+
+ +

+Returns true if _objectiveVector1 is g-dominated by _objectiveVector2. +

+

Parameters:
+ + + +
_objectiveVector1 the first objective vector
_objectiveVector2 the second objective vector
+
+ +

+Definition at line 42 of file moeoGDominanceObjectiveVectorComparator.h. +

+References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::flag(), and moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::paretoComparator. +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
unsigned int moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::flag (const ObjectiveVector &  _objectiveVector  )  [inline, private]
+
+
+ +

+Returns the flag of _objectiveVector according to the reference point. +

+

Parameters:
+ + +
_objectiveVector the first objective vector
+
+ +

+Definition at line 76 of file moeoGDominanceObjectiveVectorComparator.h. +

+References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::ref. +

+Referenced by moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.png new file mode 100644 index 000000000..7b85ac538 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGDominanceObjectiveVectorComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html new file mode 100644 index 000000000..dd030acaa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoGenerationalReplacement< MOEOT > Member List

This is the complete list of members for moeoGenerationalReplacement< MOEOT >, including all inherited members.

+ + + + + + +
moeoReplacement::functor_category()eoBF< A1, A2, R > [static]
eoGenerationalReplacement< MOEOT >::functor_category()eoBF< A1, A2, R > [static]
operator()(eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)moeoGenerationalReplacement< MOEOT > [inline]
moeoReplacement::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html new file mode 100644 index 000000000..c67f42b83 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.html @@ -0,0 +1,113 @@ + + +ParadisEO-MOEO: moeoGenerationalReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoGenerationalReplacement< MOEOT > Class Template Reference

Generational replacement: only the new individuals are preserved. +More... +

+#include <moeoGenerationalReplacement.h> +

+

Inheritance diagram for moeoGenerationalReplacement< MOEOT >: +

+ +moeoReplacement< MOEOT > +eoGenerationalReplacement< MOEOT > +eoReplacement< MOEOT > +eoReplacement< EOT > +eoBF< A1, A2, R > +eoBF< A1, A2, R > +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

void operator() (eoPop< MOEOT > &_parents, eoPop< MOEOT > &_offspring)
 Swaps _parents and _offspring.
+

Detailed Description

+

template<class MOEOT>
+ class moeoGenerationalReplacement< MOEOT >

+ +Generational replacement: only the new individuals are preserved. +

+ +

+Definition at line 23 of file moeoGenerationalReplacement.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoGenerationalReplacement< MOEOT >::operator() (eoPop< MOEOT > &  _parents,
eoPop< MOEOT > &  _offspring 
) [inline]
+
+
+ +

+Swaps _parents and _offspring. +

+

Parameters:
+ + + +
_parents the parents population
_offspring the offspring population
+
+ +

+Reimplemented from eoGenerationalReplacement< MOEOT >. +

+Definition at line 32 of file moeoGenerationalReplacement.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.png new file mode 100644 index 000000000..add034462 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoGenerationalReplacement.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html new file mode 100644 index 000000000..1fcc328c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoHybridLS< MOEOT > Member List

This is the complete list of members for moeoHybridLS< MOEOT >, including all inherited members.

+ + + + + + + + + + + + +
archmoeoHybridLS< MOEOT > [private]
className(void) const eoUpdater [virtual]
functor_category()eoF< void > [static]
lastCall()eoUpdater [virtual]
moeoHybridLS(eoContinue< MOEOT > &_term, eoSelect< MOEOT > &_select, moeoLS< MOEOT, MOEOT > &_mols, moeoArchive< MOEOT > &_arch)moeoHybridLS< MOEOT > [inline]
molsmoeoHybridLS< MOEOT > [private]
operator()()moeoHybridLS< MOEOT > [inline, virtual]
result_type typedefeoF< void >
selectmoeoHybridLS< MOEOT > [private]
termmoeoHybridLS< MOEOT > [private]
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS.html new file mode 100644 index 000000000..68e76aa34 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS.html @@ -0,0 +1,141 @@ + + +ParadisEO-MOEO: moeoHybridLS< MOEOT > Class Template Reference + + + + +
+
+ +

moeoHybridLS< MOEOT > Class Template Reference

This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. +More... +

+#include <moeoHybridLS.h> +

+

Inheritance diagram for moeoHybridLS< MOEOT >: +

+ +eoUpdater +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoHybridLS (eoContinue< MOEOT > &_term, eoSelect< MOEOT > &_select, moeoLS< MOEOT, MOEOT > &_mols, moeoArchive< MOEOT > &_arch)
 Ctor.
+void operator() ()
 Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified.

Private Attributes

+eoContinue< MOEOT > & term
 stopping criteria
+eoSelect< MOEOT > & select
 selector
+moeoLS< MOEOT, MOEOT > & mols
 multi-objective local search
+moeoArchive< MOEOT > & arch
 archive
+

Detailed Description

+

template<class MOEOT>
+ class moeoHybridLS< MOEOT >

+ +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. +

+ +

+Definition at line 28 of file moeoHybridLS.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoHybridLS< MOEOT >::moeoHybridLS (eoContinue< MOEOT > &  _term,
eoSelect< MOEOT > &  _select,
moeoLS< MOEOT, MOEOT > &  _mols,
moeoArchive< MOEOT > &  _arch 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + + +
_term stopping criteria
_select selector
_mols a multi-objective local search
_arch the archive
+
+ +

+Definition at line 39 of file moeoHybridLS.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS.png new file mode 100644 index 000000000..3887a1abb Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHybridLS.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html new file mode 100644 index 000000000..93213e9a5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric-members.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoHypervolumeBinaryMetric< ObjectiveVector > Member List

This is the complete list of members for moeoHypervolumeBinaryMetric< ObjectiveVector >, including all inherited members.

+ + + + + + + + + + + + + + +
boundsmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [protected]
functor_category()eoBF< A1, A2, R > [static]
hypervolume(const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj, const bool _flag=false)moeoHypervolumeBinaryMetric< ObjectiveVector > [inline, private]
moeoHypervolumeBinaryMetric(double _rho=1.1)moeoHypervolumeBinaryMetric< ObjectiveVector > [inline]
moeoNormalizedSolutionVsSolutionBinaryMetric()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
operator()(const ObjectiveVector &_o1, const ObjectiveVector &_o2)moeoHypervolumeBinaryMetric< ObjectiveVector > [inline]
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
paretoComparatormoeoHypervolumeBinaryMetric< ObjectiveVector > [private]
rhomoeoHypervolumeBinaryMetric< ObjectiveVector > [private]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, virtual]
tiny()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html new file mode 100644 index 000000000..dcdfad374 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.html @@ -0,0 +1,225 @@ + + +ParadisEO-MOEO: moeoHypervolumeBinaryMetric< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoHypervolumeBinaryMetric< ObjectiveVector > Class Template Reference

Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. +More... +

+#include <moeoHypervolumeBinaryMetric.h> +

+

Inheritance diagram for moeoHypervolumeBinaryMetric< ObjectiveVector >: +

+ +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoHypervolumeBinaryMetric (double _rho=1.1)
 Ctor.
double operator() (const ObjectiveVector &_o1, const ObjectiveVector &_o2)
 Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho.

Private Member Functions

double hypervolume (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj, const bool _flag=false)
 Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj.

Private Attributes

+double rho
 value used to compute the reference point from the worst values for each objective
+moeoParetoObjectiveVectorComparator<
+ ObjectiveVector > 
paretoComparator
 Functor to compare two objective vectors according to Pareto dominance relation.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoHypervolumeBinaryMetric< ObjectiveVector >

+ +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. +

+: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832–842 (2004). This indicator is based on the hypervolume concept introduced in Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). +

+ +

+Definition at line 29 of file moeoHypervolumeBinaryMetric.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + +
moeoHypervolumeBinaryMetric< ObjectiveVector >::moeoHypervolumeBinaryMetric (double  _rho = 1.1  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_rho value used to compute the reference point from the worst values for each objective (default : 1.1)
+
+ +

+Definition at line 37 of file moeoHypervolumeBinaryMetric.h. +

+References moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
double moeoHypervolumeBinaryMetric< ObjectiveVector >::operator() (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2 
) [inline]
+
+
+ +

+Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho. +

+

Warning:
don't forget to set the bounds for every objective before the call of this function
+
Parameters:
+ + + +
_o1 the first objective vector
_o2 the second objective vector
+
+ +

+Definition at line 63 of file moeoHypervolumeBinaryMetric.h. +

+References moeoHypervolumeBinaryMetric< ObjectiveVector >::hypervolume(), and moeoHypervolumeBinaryMetric< ObjectiveVector >::paretoComparator. +

+

+ +

+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
double moeoHypervolumeBinaryMetric< ObjectiveVector >::hypervolume (const ObjectiveVector &  _o1,
const ObjectiveVector &  _o2,
const unsigned int  _obj,
const bool  _flag = false 
) [inline, private]
+
+
+ +

+Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. +

+

Parameters:
+ + + + + +
_o1 the first objective vector
_o2 the second objective vector
_obj the objective index
_flag used for iteration, if _flag=true _o2 is not talen into account (default : false)
+
+ +

+Definition at line 96 of file moeoHypervolumeBinaryMetric.h. +

+References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds, and moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +

+Referenced by moeoHypervolumeBinaryMetric< ObjectiveVector >::operator()(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.png new file mode 100644 index 000000000..df046df52 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoHypervolumeBinaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA-members.html new file mode 100644 index 000000000..db86b40ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA-members.html @@ -0,0 +1,57 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoIBEA< MOEOT > Member List

This is the complete list of members for moeoIBEA< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
breedmoeoIBEA< MOEOT > [protected]
continuatormoeoIBEA< MOEOT > [protected]
defaultGenContinuatormoeoIBEA< MOEOT > [protected]
defaultSGAGenOpmoeoIBEA< MOEOT > [protected]
dummyDiversityAssignmentmoeoIBEA< MOEOT > [protected]
fitnessAssignmentmoeoIBEA< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
genBreedmoeoIBEA< MOEOT > [protected]
moeoIBEA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
moeoIBEA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)moeoIBEA< MOEOT > [inline]
ObjectiveVector typedefmoeoIBEA< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoIBEA< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoIBEA< MOEOT > [protected]
replacemoeoIBEA< MOEOT > [protected]
selectmoeoIBEA< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA.html new file mode 100644 index 000000000..9ad5f241b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA.html @@ -0,0 +1,498 @@ + + +ParadisEO-MOEO: moeoIBEA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoIBEA< MOEOT > Class Template Reference

IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. +More... +

+#include <moeoIBEA.h> +

+

Inheritance diagram for moeoIBEA< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 The type of objective vector.

Public Member Functions

 moeoIBEA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Simple ctor with a eoGenOp.
 moeoIBEA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Simple ctor with a eoTransform.
 moeoIBEA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor with a crossover, a mutation and their corresponding rates.
 moeoIBEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor with a continuator (instead of _maxGen) and a eoGenOp.
 moeoIBEA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &_metric, const double _kappa=0.05)
 Ctor with a continuator (instead of _maxGen) and a eoTransform.
virtual void operator() (eoPop< MOEOT > &_pop)
 Apply a few generation of evolution to the population _pop until the stopping criteria is verified.

Protected Attributes

+eoGenContinue< MOEOT > defaultGenContinuator
 a continuator based on the number of generations (used as default)
+eoContinue< MOEOT > & continuator
 stopping criteria
+eoPopLoopEval< MOEOT > popEval
 evaluation function used to evaluate the whole population
+moeoDetTournamentSelect< MOEOT > select
 binary tournament selection
+moeoIndicatorBasedFitnessAssignment<
+ MOEOT > 
fitnessAssignment
 fitness assignment used in IBEA
+moeoDummyDiversityAssignment<
+ MOEOT > 
dummyDiversityAssignment
 dummy diversity assignment
+moeoEnvironmentalReplacement<
+ MOEOT > 
replace
 elitist replacement
+eoSGAGenOp< MOEOT > defaultSGAGenOp
 an object for genetic operators (used as default)
+eoGeneralBreeder< MOEOT > genBreed
 general breeder
+eoBreed< MOEOT > & breed
 breeder
+

Detailed Description

+

template<class MOEOT>
+ class moeoIBEA< MOEOT >

+ +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. +

+Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This class builds the IBEA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +

+ +

+Definition at line 38 of file moeoIBEA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Simple ctor with a eoGenOp. +

+

Parameters:
+ + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 54 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Simple ctor with a eoTransform. +

+

Parameters:
+ + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 68 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoQuadOp< MOEOT > &  _crossover,
double  _pCross,
eoMonOp< MOEOT > &  _mutation,
double  _pMut,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor with a crossover, a mutation and their corresponding rates. +

+

Parameters:
+ + + + + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_crossover crossover
_pCross crossover probability
_mutation mutation
_pMut mutation probability
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 85 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoGenOp. +

+

Parameters:
+ + + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 100 of file moeoIBEA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoIBEA< MOEOT >::moeoIBEA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double > &  _metric,
const double  _kappa = 0.05 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoTransform. +

+

Parameters:
+ + + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_metric metric
_kappa scaling factor kappa
+
+ +

+Definition at line 114 of file moeoIBEA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoIBEA< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 124 of file moeoIBEA.h. +

+References moeoIBEA< MOEOT >::breed, moeoIBEA< MOEOT >::continuator, moeoIBEA< MOEOT >::dummyDiversityAssignment, moeoIBEA< MOEOT >::fitnessAssignment, moeoIBEA< MOEOT >::popEval, and moeoIBEA< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA.png new file mode 100644 index 000000000..0ba6b5a1b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIBEA.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment-members.html new file mode 100644 index 000000000..72b2029c6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..7390738bf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

moeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies. +More... +

+#include <moeoIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoBinaryIndicatorBasedFitnessAssignment< MOEOT > +moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > +moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoIndicatorBasedFitnessAssignment< MOEOT >

+ +moeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies. +

+ +

+Definition at line 22 of file moeoIndicatorBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.png new file mode 100644 index 000000000..174829d60 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoIndicatorBasedFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS-members.html new file mode 100644 index 000000000..7ebd61395 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoLS< MOEOT, Type > Member List

This is the complete list of members for moeoLS< MOEOT, Type >, including all inherited members.

+ + + + +
functor_category()eoBF< Type, moeoArchive< MOEOT > &, void > [static]
operator()(Type, moeoArchive< MOEOT > &)=0eoBF< Type, moeoArchive< MOEOT > &, void > [pure virtual]
~eoBF()eoBF< Type, moeoArchive< MOEOT > &, void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS.html new file mode 100644 index 000000000..89c538843 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoLS< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoLS< MOEOT, Type > Class Template Reference

Abstract class for local searches applied to multi-objective optimization. +More... +

+#include <moeoLS.h> +

+

Inheritance diagram for moeoLS< MOEOT, Type >: +

+ +moeoAlgo +eoBF< Type, moeoArchive< MOEOT > &, void > +eoFunctorBase +moeoCombinedLS< MOEOT, Type > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT, class Type>
+ class moeoLS< MOEOT, Type >

+ +Abstract class for local searches applied to multi-objective optimization. +

+Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. +

+ +

+Definition at line 25 of file moeoLS.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS.png new file mode 100644 index 000000000..fffbbbd90 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoLS.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html new file mode 100644 index 000000000..1824953e4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoManhattanDistance< MOEOT > Member List

This is the complete list of members for moeoManhattanDistance< MOEOT >, including all inherited members.

+ + + + + + + + + + + + +
boundsmoeoNormalizedDistance< MOEOT > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedDistance()moeoNormalizedDistance< MOEOT > [inline]
ObjectiveVector typedefmoeoManhattanDistance< MOEOT >
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoManhattanDistance< MOEOT > [inline]
moeoNormalizedDistance< MOEOT >::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedDistance< MOEOT > [inline, virtual]
tiny()moeoNormalizedDistance< MOEOT > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html new file mode 100644 index 000000000..31bd0745a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance.html @@ -0,0 +1,116 @@ + + +ParadisEO-MOEO: moeoManhattanDistance< MOEOT > Class Template Reference + + + + +
+
+ +

moeoManhattanDistance< MOEOT > Class Template Reference

A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. +More... +

+#include <moeoManhattanDistance.h> +

+

Inheritance diagram for moeoManhattanDistance< MOEOT >: +

+ +moeoNormalizedDistance< MOEOT > +moeoDistance< MOEOT, double > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

const double operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space.
+

Detailed Description

+

template<class MOEOT>
+ class moeoManhattanDistance< MOEOT >

+ +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. +

+between 0 and 1). A distance value then lies between 0 and nObjectives. +

+ +

+Definition at line 24 of file moeoManhattanDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const double moeoManhattanDistance< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 37 of file moeoManhattanDistance.h. +

+References moeoNormalizedDistance< MOEOT >::bounds. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance.png new file mode 100644 index 000000000..55fba6446 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoManhattanDistance.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric-members.html new file mode 100644 index 000000000..c1027422f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric-members.html @@ -0,0 +1,37 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoMetric Member List

This is the complete list of members for moeoMetric, including all inherited members.

+ +
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric.html new file mode 100644 index 000000000..8b940b1c0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoMetric Class Reference + + + + +
+
+ +

moeoMetric Class Reference

Base class for performance metrics (also known as quality indicators). +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoMetric: +

+ +eoFunctorBase +moeoBinaryMetric< A1, A2, R > +moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double > +moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R > +moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double > +moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R > +moeoUnaryMetric< A, R > +moeoUnaryMetric< const ObjectiveVector &, R > +moeoUnaryMetric< const std::vector< ObjectiveVector > &, R > + +List of all members. + +
+

Detailed Description

+Base class for performance metrics (also known as quality indicators). +

+ +

+Definition at line 22 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric.png new file mode 100644 index 000000000..62d847a9e Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA-members.html new file mode 100644 index 000000000..3b66bf3ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA-members.html @@ -0,0 +1,56 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNSGA< MOEOT > Member List

This is the complete list of members for moeoNSGA< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
breedmoeoNSGA< MOEOT > [protected]
continuatormoeoNSGA< MOEOT > [protected]
defaultGenContinuatormoeoNSGA< MOEOT > [protected]
defaultSGAGenOpmoeoNSGA< MOEOT > [protected]
diversityAssignmentmoeoNSGA< MOEOT > [protected]
fitnessAssignmentmoeoNSGA< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
genBreedmoeoNSGA< MOEOT > [protected]
moeoNSGA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
moeoNSGA(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)moeoNSGA< MOEOT > [inline]
operator()(eoPop< MOEOT > &_pop)moeoNSGA< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoNSGA< MOEOT > [protected]
replacemoeoNSGA< MOEOT > [protected]
selectmoeoNSGA< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA.html new file mode 100644 index 000000000..b66d0cbea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA.html @@ -0,0 +1,457 @@ + + +ParadisEO-MOEO: moeoNSGA< MOEOT > Class Template Reference + + + + +
+
+ +

moeoNSGA< MOEOT > Class Template Reference

NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. +More... +

+#include <moeoNSGA.h> +

+

Inheritance diagram for moeoNSGA< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoNSGA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)
 Simple ctor with a eoGenOp.
 moeoNSGA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)
 Simple ctor with a eoTransform.
 moeoNSGA (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut, double _nicheSize=0.5)
 Ctor with a crossover, a mutation and their corresponding rates.
 moeoNSGA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op, double _nicheSize=0.5)
 Ctor with a continuator (instead of _maxGen) and a eoGenOp.
 moeoNSGA (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op, double _nicheSize=0.5)
 Ctor with a continuator (instead of _maxGen) and a eoTransform.
virtual void operator() (eoPop< MOEOT > &_pop)
 Apply a few generation of evolution to the population _pop until the stopping criteria is verified.

Protected Attributes

+eoGenContinue< MOEOT > defaultGenContinuator
 a continuator based on the number of generations (used as default)
+eoContinue< MOEOT > & continuator
 stopping criteria
+eoPopLoopEval< MOEOT > popEval
 evaluation function used to evaluate the whole population
+moeoDetTournamentSelect< MOEOT > select
 binary tournament selection
+moeoFastNonDominatedSortingFitnessAssignment<
+ MOEOT > 
fitnessAssignment
 fitness assignment used in NSGA-II
+moeoFrontByFrontSharingDiversityAssignment<
+ MOEOT > 
diversityAssignment
 diversity assignment used in NSGA-II
+moeoElitistReplacement< MOEOT > replace
 elitist replacement
+eoSGAGenOp< MOEOT > defaultSGAGenOp
 an object for genetic operators (used as default)
+eoGeneralBreeder< MOEOT > genBreed
 general breeder
+eoBreed< MOEOT > & breed
 breeder
+

Detailed Description

+

template<class MOEOT>
+ class moeoNSGA< MOEOT >

+ +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. +

+Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms". Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). This class builds the NSGA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +

+ +

+Definition at line 37 of file moeoNSGA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Simple ctor with a eoGenOp. +

+

Parameters:
+ + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 48 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Simple ctor with a eoTransform. +

+

Parameters:
+ + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 61 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoQuadOp< MOEOT > &  _crossover,
double  _pCross,
eoMonOp< MOEOT > &  _mutation,
double  _pMut,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Ctor with a crossover, a mutation and their corresponding rates. +

+

Parameters:
+ + + + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_crossover crossover
_pCross crossover probability
_mutation mutation
_pMut mutation probability
_nicheSize niche size
+
+ +

+Definition at line 77 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoGenOp. +

+

Parameters:
+ + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 91 of file moeoNSGA.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGA< MOEOT >::moeoNSGA (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op,
double  _nicheSize = 0.5 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoTransform. +

+

Parameters:
+ + + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
_nicheSize niche size
+
+ +

+Definition at line 104 of file moeoNSGA.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoNSGA< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 114 of file moeoNSGA.h. +

+References moeoNSGA< MOEOT >::breed, moeoNSGA< MOEOT >::continuator, moeoNSGA< MOEOT >::diversityAssignment, moeoNSGA< MOEOT >::fitnessAssignment, moeoNSGA< MOEOT >::popEval, and moeoNSGA< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA.png new file mode 100644 index 000000000..dd9cd8548 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGA.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html new file mode 100644 index 000000000..b4888680a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII-members.html @@ -0,0 +1,56 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNSGAII< MOEOT > Member List

This is the complete list of members for moeoNSGAII< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + +
breedmoeoNSGAII< MOEOT > [protected]
continuatormoeoNSGAII< MOEOT > [protected]
defaultGenContinuatormoeoNSGAII< MOEOT > [protected]
defaultSGAGenOpmoeoNSGAII< MOEOT > [protected]
diversityAssignmentmoeoNSGAII< MOEOT > [protected]
fitnessAssignmentmoeoNSGAII< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
genBreedmoeoNSGAII< MOEOT > [protected]
moeoNSGAII(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
moeoNSGAII(eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)moeoNSGAII< MOEOT > [inline]
operator()(eoPop< MOEOT > &_pop)moeoNSGAII< MOEOT > [inline, virtual]
moeoEA::operator()(A1)=0eoUF< A1, R > [pure virtual]
popEvalmoeoNSGAII< MOEOT > [protected]
replacemoeoNSGAII< MOEOT > [protected]
selectmoeoNSGAII< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII.html new file mode 100644 index 000000000..0ab609a0d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII.html @@ -0,0 +1,422 @@ + + +ParadisEO-MOEO: moeoNSGAII< MOEOT > Class Template Reference + + + + +
+
+ +

moeoNSGAII< MOEOT > Class Template Reference

NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. +More... +

+#include <moeoNSGAII.h> +

+

Inheritance diagram for moeoNSGAII< MOEOT >: +

+ +moeoEA< MOEOT > +moeoAlgo +eoAlgo< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoNSGAII (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)
 Simple ctor with a eoGenOp.
 moeoNSGAII (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)
 Simple ctor with a eoTransform.
 moeoNSGAII (unsigned int _maxGen, eoEvalFunc< MOEOT > &_eval, eoQuadOp< MOEOT > &_crossover, double _pCross, eoMonOp< MOEOT > &_mutation, double _pMut)
 Ctor with a crossover, a mutation and their corresponding rates.
 moeoNSGAII (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoGenOp< MOEOT > &_op)
 Ctor with a continuator (instead of _maxGen) and a eoGenOp.
 moeoNSGAII (eoContinue< MOEOT > &_continuator, eoEvalFunc< MOEOT > &_eval, eoTransform< MOEOT > &_op)
 Ctor with a continuator (instead of _maxGen) and a eoTransform.
virtual void operator() (eoPop< MOEOT > &_pop)
 Apply a few generation of evolution to the population _pop until the stopping criteria is verified.

Protected Attributes

+eoGenContinue< MOEOT > defaultGenContinuator
 a continuator based on the number of generations (used as default)
+eoContinue< MOEOT > & continuator
 stopping criteria
+eoPopLoopEval< MOEOT > popEval
 evaluation function used to evaluate the whole population
+moeoDetTournamentSelect< MOEOT > select
 binary tournament selection
+moeoFastNonDominatedSortingFitnessAssignment<
+ MOEOT > 
fitnessAssignment
 fitness assignment used in NSGA-II
+moeoFrontByFrontCrowdingDiversityAssignment<
+ MOEOT > 
diversityAssignment
 diversity assignment used in NSGA-II
+moeoElitistReplacement< MOEOT > replace
 elitist replacement
+eoSGAGenOp< MOEOT > defaultSGAGenOp
 an object for genetic operators (used as default)
+eoGeneralBreeder< MOEOT > genBreed
 general breeder
+eoBreed< MOEOT > & breed
 breeder
+

Detailed Description

+

template<class MOEOT>
+ class moeoNSGAII< MOEOT >

+ +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. +

+Agrawal, A. Pratap, and T. Meyarivan : "A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II". In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). This class builds the NSGA-II algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +

+ +

+Definition at line 37 of file moeoNSGAII.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op 
) [inline]
+
+
+ +

+Simple ctor with a eoGenOp. +

+

Parameters:
+ + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 47 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op 
) [inline]
+
+
+ +

+Simple ctor with a eoTransform. +

+

Parameters:
+ + + + +
_maxGen number of generations before stopping
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 59 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (unsigned int  _maxGen,
eoEvalFunc< MOEOT > &  _eval,
eoQuadOp< MOEOT > &  _crossover,
double  _pCross,
eoMonOp< MOEOT > &  _mutation,
double  _pMut 
) [inline]
+
+
+ +

+Ctor with a crossover, a mutation and their corresponding rates. +

+

Parameters:
+ + + + + + + +
_maxGen number of generations before stopping
_eval evaluation function
_crossover crossover
_pCross crossover probability
_mutation mutation
_pMut mutation probability
+
+ +

+Definition at line 74 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoGenOp< MOEOT > &  _op 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoGenOp. +

+

Parameters:
+ + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 87 of file moeoNSGAII.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoNSGAII< MOEOT >::moeoNSGAII (eoContinue< MOEOT > &  _continuator,
eoEvalFunc< MOEOT > &  _eval,
eoTransform< MOEOT > &  _op 
) [inline]
+
+
+ +

+Ctor with a continuator (instead of _maxGen) and a eoTransform. +

+

Parameters:
+ + + + +
_continuator stopping criteria
_eval evaluation function
_op variation operator
+
+ +

+Definition at line 99 of file moeoNSGAII.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoNSGAII< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 109 of file moeoNSGAII.h. +

+References moeoNSGAII< MOEOT >::breed, moeoNSGAII< MOEOT >::continuator, moeoNSGAII< MOEOT >::diversityAssignment, moeoNSGAII< MOEOT >::fitnessAssignment, moeoNSGAII< MOEOT >::popEval, and moeoNSGAII< MOEOT >::replace. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII.png new file mode 100644 index 000000000..f5c5303ea Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNSGAII.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html new file mode 100644 index 000000000..deb4e706f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNormalizedDistance< MOEOT, Type > Member List

This is the complete list of members for moeoNormalizedDistance< MOEOT, Type >, including all inherited members.

+ + + + + + + + + + + +
boundsmoeoNormalizedDistance< MOEOT, Type > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedDistance()moeoNormalizedDistance< MOEOT, Type > [inline]
ObjectiveVector typedefmoeoNormalizedDistance< MOEOT, Type >
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)moeoNormalizedDistance< MOEOT, Type > [inline, virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedDistance< MOEOT, Type > [inline, virtual]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedDistance< MOEOT, Type > [inline, virtual]
tiny()moeoNormalizedDistance< MOEOT, Type > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html new file mode 100644 index 000000000..d10987cb8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.html @@ -0,0 +1,220 @@ + + +ParadisEO-MOEO: moeoNormalizedDistance< MOEOT, Type > Class Template Reference + + + + +
+
+ +

moeoNormalizedDistance< MOEOT, Type > Class Template Reference

The base class for double distance computation with normalized objective values (i.e. +More... +

+#include <moeoNormalizedDistance.h> +

+

Inheritance diagram for moeoNormalizedDistance< MOEOT, Type >: +

+ +moeoDistance< MOEOT, Type > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

moeoNormalizedDistance ()
 Default ctr.
virtual void setup (const eoPop< MOEOT > &_pop)
 Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop.
virtual void setup (double _min, double _max, unsigned int _obj)
 Sets the lower bound (_min) and the upper bound (_max) for the objective _obj.
virtual void setup (eoRealInterval _realInterval, unsigned int _obj)
 Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object.

Static Public Member Functions

+static double tiny ()
 Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound).

Protected Attributes

+std::vector< eoRealIntervalbounds
 the bounds for every objective (bounds[i] = bounds for the objective i)
+

Detailed Description

+

template<class MOEOT, class Type = double>
+ class moeoNormalizedDistance< MOEOT, Type >

+ +The base class for double distance computation with normalized objective values (i.e. +

+between 0 and 1). +

+ +

+Definition at line 24 of file moeoNormalizedDistance.h.


Member Function Documentation

+ +
+
+
+template<class MOEOT, class Type = double>
+ + + + + + + + + +
virtual void moeoNormalizedDistance< MOEOT, Type >::setup (const eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented from moeoDistance< MOEOT, Type >. +

+Definition at line 59 of file moeoNormalizedDistance.h. +

+Referenced by moeoNormalizedDistance< MOEOT >::setup(). +

+

+ +

+
+
+template<class MOEOT, class Type = double>
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void moeoNormalizedDistance< MOEOT, Type >::setup (double  _min,
double  _max,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +

+

Parameters:
+ + + + +
_min lower bound
_max upper bound
_obj the objective index
+
+ +

+Reimplemented from moeoDistance< MOEOT, Type >. +

+Definition at line 83 of file moeoNormalizedDistance.h. +

+

+ +

+
+
+template<class MOEOT, class Type = double>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoNormalizedDistance< MOEOT, Type >::setup (eoRealInterval  _realInterval,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object. +

+

Parameters:
+ + + +
_realInterval the eoRealInterval object
_obj the objective index
+
+ +

+Reimplemented from moeoDistance< MOEOT, Type >. +

+Definition at line 99 of file moeoNormalizedDistance.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.png new file mode 100644 index 000000000..5fff51949 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedDistance.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric-members.html new file mode 100644 index 000000000..ffbed6f81 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + + + + + + +
boundsmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [protected]
functor_category()eoBF< A1, A2, R > [static]
moeoNormalizedSolutionVsSolutionBinaryMetric()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
setup(double _min, double _max, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline]
setup(eoRealInterval _realInterval, unsigned int _obj)moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline, virtual]
tiny()moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > [inline, static]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html new file mode 100644 index 000000000..6d432b049 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.html @@ -0,0 +1,178 @@ + + +ParadisEO-MOEO: moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference

Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. +More... +

+#include <moeoNormalizedSolutionVsSolutionBinaryMetric.h> +

+

Inheritance diagram for moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >: +

+ +moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + +

Public Member Functions

moeoNormalizedSolutionVsSolutionBinaryMetric ()
 Default ctr for any moeoNormalizedSolutionVsSolutionBinaryMetric object.
void setup (double _min, double _max, unsigned int _obj)
 Sets the lower bound (_min) and the upper bound (_max) for the objective _obj.
virtual void setup (eoRealInterval _realInterval, unsigned int _obj)
 Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object.

Static Public Member Functions

+static double tiny ()
 Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound).

Protected Attributes

+std::vector< eoRealIntervalbounds
 the bounds for every objective (bounds[i] = bounds for the objective i)
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+ +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. +

+Then, indicator values lie in the interval [-1,1]. Note that you have to set the bounds for every objective before using the operator(). +

+ +

+Definition at line 26 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector, class R>
+ + + + + + + + + + + + + + + + + + + + + + + + +
void moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup (double  _min,
double  _max,
unsigned int  _obj 
) [inline]
+
+
+ +

+Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +

+

Parameters:
+ + + + +
_min lower bound
_max upper bound
_obj the objective index
+
+ +

+Definition at line 50 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +

+Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +

+

+ +

+
+
+template<class ObjectiveVector, class R>
+ + + + + + + + + + + + + + + + + + +
virtual void moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup (eoRealInterval  _realInterval,
unsigned int  _obj 
) [inline, virtual]
+
+
+ +

+Sets the lower bound and the upper bound for the objective _obj using a eoRealInterval object. +

+

Parameters:
+ + + +
_realInterval the eoRealInterval object
_obj the objective index
+
+ +

+Definition at line 66 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.png new file mode 100644 index 000000000..07c556671 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoNormalizedSolutionVsSolutionBinaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html new file mode 100644 index 000000000..131653ad9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoObjectiveObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)moeoObjectiveObjectiveVectorComparator< ObjectiveVector > [inline]
moeoObjectiveVectorComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html new file mode 100644 index 000000000..3fd621f5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoObjectiveObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoObjectiveObjectiveVectorComparator< ObjectiveVector > Class Template Reference

Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. +More... +

+#include <moeoObjectiveObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoObjectiveObjectiveVectorComparator< ObjectiveVector >: +

+ +moeoObjectiveVectorComparator< ObjectiveVector > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)
 Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoObjectiveObjectiveVectorComparator< ObjectiveVector >

+ +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. +

+ +

+Definition at line 22 of file moeoObjectiveObjectiveVectorComparator.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
const bool moeoObjectiveObjectiveVectorComparator< ObjectiveVector >::operator() (const ObjectiveVector &  _objectiveVector1,
const ObjectiveVector &  _objectiveVector2 
) [inline]
+
+
+ +

+Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on. +

+

Parameters:
+ + + +
_objectiveVector1 the first objective vector
_objectiveVector2 the second objective vector
+
+ +

+Definition at line 31 of file moeoObjectiveObjectiveVectorComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.png new file mode 100644 index 000000000..4d94f5ab6 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveObjectiveVectorComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html new file mode 100644 index 000000000..2780676ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVector-members.html @@ -0,0 +1,44 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > Member List

This is the complete list of members for moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >, including all inherited members.

+ + + + + + + + +
maximizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
minimizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
moeoObjectiveVector(Type _value=Type())moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline]
moeoObjectiveVector(std::vector< Type > &_v)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline]
nObjectives()moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives)moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > [inline, static]
Traits typedefmoeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >
Type typedefmoeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html new file mode 100644 index 000000000..67e636056 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVector.html @@ -0,0 +1,222 @@ + + +ParadisEO-MOEO: moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > Class Template Reference + + + + +
+
+ +

moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType > Class Template Reference

Abstract class allowing to represent a solution in the objective space (phenotypic representation). +More... +

+#include <moeoObjectiveVector.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef ObjectiveVectorTraits Traits
 The traits of objective vectors.
+typedef ObjectiveVectorType Type
 The type of an objective value.

Public Member Functions

moeoObjectiveVector (Type _value=Type())
 Ctor.
 moeoObjectiveVector (std::vector< Type > &_v)
 Ctor from a vector of Type.

Static Public Member Functions

static void setup (unsigned int _nObjectives, std::vector< bool > &_bObjectives)
 Parameters setting (for the objective vector of any solution).
+static unsigned int nObjectives ()
 Returns the number of objectives.
static bool minimizing (unsigned int _i)
 Returns true if the _ith objective have to be minimized.
static bool maximizing (unsigned int _i)
 Returns true if the _ith objective have to be maximized.
+


Detailed Description

+

template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ class moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >

+ +Abstract class allowing to represent a solution in the objective space (phenotypic representation). +

+The template argument ObjectiveVectorTraits defaults to moeoObjectiveVectorTraits, but it can be replaced at will by any other class that implements the static functions defined therein. Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. +

+ +

+Definition at line 25 of file moeoObjectiveVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + +
moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::moeoObjectiveVector (std::vector< Type > &  _v  )  [inline]
+
+
+ +

+Ctor from a vector of Type. +

+

Parameters:
+ + +
_v the std::vector < Type >
+
+ +

+Definition at line 46 of file moeoObjectiveVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + + + + + + + + + + +
static void moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::setup (unsigned int  _nObjectives,
std::vector< bool > &  _bObjectives 
) [inline, static]
+
+
+ +

+Parameters setting (for the objective vector of any solution). +

+

Parameters:
+ + + +
_nObjectives the number of objectives
_bObjectives the min/max vector (true = min / false = max)
+
+ +

+Definition at line 55 of file moeoObjectiveVector.h. +

+

+ +

+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + +
static bool moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::minimizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be minimized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 74 of file moeoObjectiveVector.h. +

+

+ +

+
+
+template<class ObjectiveVectorTraits, class ObjectiveVectorType>
+ + + + + + + + + +
static bool moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >::maximizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be maximized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 84 of file moeoObjectiveVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html new file mode 100644 index 000000000..9038084ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html new file mode 100644 index 000000000..4ef212ff1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.html @@ -0,0 +1,64 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoObjectiveVectorComparator< ObjectiveVector > Class Template Reference

Abstract class allowing to compare 2 objective vectors. +More... +

+#include <moeoObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoObjectiveVectorComparator< ObjectiveVector >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +moeoGDominanceObjectiveVectorComparator< ObjectiveVector > +moeoObjectiveObjectiveVectorComparator< ObjectiveVector > +moeoParetoObjectiveVectorComparator< ObjectiveVector > + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoObjectiveVectorComparator< ObjectiveVector >

+ +Abstract class allowing to compare 2 objective vectors. +

+The template argument ObjectiveVector have to be a moeoObjectiveVector. +

+ +

+Definition at line 24 of file moeoObjectiveVectorComparator.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.png new file mode 100644 index 000000000..07d6ef1ec Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits-members.html new file mode 100644 index 000000000..dc372f30d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoObjectiveVectorTraits Member List

This is the complete list of members for moeoObjectiveVectorTraits, including all inherited members.

+ + + + + + + +
bObjmoeoObjectiveVectorTraits [private, static]
maximizing(unsigned int _i)moeoObjectiveVectorTraits [inline, static]
minimizing(unsigned int _i)moeoObjectiveVectorTraits [inline, static]
nObjmoeoObjectiveVectorTraits [private, static]
nObjectives()moeoObjectiveVectorTraits [inline, static]
setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives)moeoObjectiveVectorTraits [inline, static]
tolerance()moeoObjectiveVectorTraits [inline, static]


Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html new file mode 100644 index 000000000..752201b0a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoObjectiveVectorTraits.html @@ -0,0 +1,183 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorTraits Class Reference + + + + +
+
+ +

moeoObjectiveVectorTraits Class Reference

A traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized. +More... +

+#include <moeoObjectiveVectorTraits.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Static Public Member Functions

static void setup (unsigned int _nObjectives, std::vector< bool > &_bObjectives)
 Parameters setting.
+static unsigned int nObjectives ()
 Returns the number of objectives.
static bool minimizing (unsigned int _i)
 Returns true if the _ith objective have to be minimized.
static bool maximizing (unsigned int _i)
 Returns true if the _ith objective have to be maximized.
+static double tolerance ()
 Returns the tolerance value (to compare solutions).

Static Private Attributes

+static unsigned int nObj
 The number of objectives.
+static std::vector< bool > bObj
 The min/max vector.
+


Detailed Description

+A traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized. +

+ +

+Definition at line 23 of file moeoObjectiveVectorTraits.h.


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
static void moeoObjectiveVectorTraits::setup (unsigned int  _nObjectives,
std::vector< bool > &  _bObjectives 
) [inline, static]
+
+
+ +

+Parameters setting. +

+

Parameters:
+ + + +
_nObjectives the number of objectives
_bObjectives the min/max vector (true = min / false = max)
+
+ +

+Definition at line 32 of file moeoObjectiveVectorTraits.h. +

+References bObj, and nObj. +

+

+ +

+
+ + + + + + + + + +
static bool moeoObjectiveVectorTraits::minimizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be minimized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 67 of file moeoObjectiveVectorTraits.h. +

+References bObj. +

+Referenced by maximizing(). +

+

+ +

+
+ + + + + + + + + +
static bool moeoObjectiveVectorTraits::maximizing (unsigned int  _i  )  [inline, static]
+
+
+ +

+Returns true if the _ith objective have to be maximized. +

+

Parameters:
+ + +
_i the index
+
+ +

+Definition at line 80 of file moeoObjectiveVectorTraits.h. +

+References minimizing(). +

+

+


The documentation for this class was generated from the following files: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html new file mode 100644 index 000000000..ab307e330 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoOneObjectiveComparator< MOEOT > Member List

This is the complete list of members for moeoOneObjectiveComparator< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoBF< A1, A2, R > [static]
moeoOneObjectiveComparator(unsigned int _obj)moeoOneObjectiveComparator< MOEOT > [inline]
objmoeoOneObjectiveComparator< MOEOT > [private]
operator()(const MOEOT &_moeo1, const MOEOT &_moeo2)moeoOneObjectiveComparator< MOEOT > [inline]
moeoComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html new file mode 100644 index 000000000..9d8f1fba4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.html @@ -0,0 +1,150 @@ + + +ParadisEO-MOEO: moeoOneObjectiveComparator< MOEOT > Class Template Reference + + + + +
+
+ +

moeoOneObjectiveComparator< MOEOT > Class Template Reference

Functor allowing to compare two solutions according to one objective. +More... +

+#include <moeoOneObjectiveComparator.h> +

+

Inheritance diagram for moeoOneObjectiveComparator< MOEOT >: +

+ +moeoComparator< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

 moeoOneObjectiveComparator (unsigned int _obj)
 Ctor.
const bool operator() (const MOEOT &_moeo1, const MOEOT &_moeo2)
 Returns true if _moeo1 < _moeo2 on the obj objective.

Private Attributes

+unsigned int obj
 the index of objective
+

Detailed Description

+

template<class MOEOT>
+ class moeoOneObjectiveComparator< MOEOT >

+ +Functor allowing to compare two solutions according to one objective. +

+ +

+Definition at line 22 of file moeoOneObjectiveComparator.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoOneObjectiveComparator< MOEOT >::moeoOneObjectiveComparator (unsigned int  _obj  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_obj the index of objective
+
+ +

+Definition at line 30 of file moeoOneObjectiveComparator.h. +

+References moeoOneObjectiveComparator< MOEOT >::obj. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
const bool moeoOneObjectiveComparator< MOEOT >::operator() (const MOEOT &  _moeo1,
const MOEOT &  _moeo2 
) [inline]
+
+
+ +

+Returns true if _moeo1 < _moeo2 on the obj objective. +

+

Parameters:
+ + + +
_moeo1 the first solution
_moeo2 the second solution
+
+ +

+Definition at line 44 of file moeoOneObjectiveComparator.h. +

+References moeoOneObjectiveComparator< MOEOT >::obj. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.png new file mode 100644 index 000000000..b07c06bb3 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoOneObjectiveComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html new file mode 100644 index 000000000..0deb21e49 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoParetoBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoParetoBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html new file mode 100644 index 000000000..10e5b673a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoParetoBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoParetoBasedFitnessAssignment< MOEOT > Class Template Reference

moeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies. +More... +

+#include <moeoParetoBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoParetoBasedFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoFastNonDominatedSortingFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoParetoBasedFitnessAssignment< MOEOT >

+ +moeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies. +

+ +

+Definition at line 22 of file moeoParetoBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.png new file mode 100644 index 000000000..2291d4e38 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoBasedFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html new file mode 100644 index 000000000..0986468d4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoParetoObjectiveVectorComparator< ObjectiveVector > Member List

This is the complete list of members for moeoParetoObjectiveVectorComparator< ObjectiveVector >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)moeoParetoObjectiveVectorComparator< ObjectiveVector > [inline]
moeoObjectiveVectorComparator::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html new file mode 100644 index 000000000..998b35297 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.html @@ -0,0 +1,106 @@ + + +ParadisEO-MOEO: moeoParetoObjectiveVectorComparator< ObjectiveVector > Class Template Reference + + + + +
+
+ +

moeoParetoObjectiveVectorComparator< ObjectiveVector > Class Template Reference

This functor class allows to compare 2 objective vectors according to Pareto dominance. +More... +

+#include <moeoParetoObjectiveVectorComparator.h> +

+

Inheritance diagram for moeoParetoObjectiveVectorComparator< ObjectiveVector >: +

+ +moeoObjectiveVectorComparator< ObjectiveVector > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

const bool operator() (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)
 Returns true if _objectiveVector1 is dominated by _objectiveVector2.
+

Detailed Description

+

template<class ObjectiveVector>
+ class moeoParetoObjectiveVectorComparator< ObjectiveVector >

+ +This functor class allows to compare 2 objective vectors according to Pareto dominance. +

+ +

+Definition at line 22 of file moeoParetoObjectiveVectorComparator.h.


Member Function Documentation

+ +
+
+
+template<class ObjectiveVector>
+ + + + + + + + + + + + + + + + + + +
const bool moeoParetoObjectiveVectorComparator< ObjectiveVector >::operator() (const ObjectiveVector &  _objectiveVector1,
const ObjectiveVector &  _objectiveVector2 
) [inline]
+
+
+ +

+Returns true if _objectiveVector1 is dominated by _objectiveVector2. +

+

Parameters:
+ + + +
_objectiveVector1 the first objective vector
_objectiveVector2 the second objective vector
+
+ +

+Definition at line 31 of file moeoParetoObjectiveVectorComparator.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.png new file mode 100644 index 000000000..790ba77fa Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoParetoObjectiveVectorComparator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect-members.html new file mode 100644 index 000000000..742815810 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRandomSelect< MOEOT > Member List

This is the complete list of members for moeoRandomSelect< MOEOT >, including all inherited members.

+ + + + + + + + + +
moeoSelectOne::functor_category()eoUF< A1, R > [static]
eoRandomSelect< MOEOT >::functor_category()eoUF< A1, R > [static]
moeoRandomSelect()moeoRandomSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoRandomSelect< MOEOT > [inline, virtual]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
moeoSelectOne::setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
eoRandomSelect< MOEOT >::setup(const eoPop< EOT > &_pop)eoSelectOne< EOT, WorthT > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect.html new file mode 100644 index 000000000..4571aea5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoRandomSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoRandomSelect< MOEOT > Class Template Reference

Selection strategy that selects only one element randomly from a whole population. +More... +

+#include <moeoRandomSelect.h> +

+

Inheritance diagram for moeoRandomSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoRandomSelect< MOEOT > +eoSelectOne< MOEOT > +eoSelectOne< EOT, WorthT > +eoUF< A1, R > +eoUF< A1, R > +eoFunctorBase +eoFunctorBase + +List of all members. + + + + + + + + +

Public Member Functions

moeoRandomSelect ()
 Ctor.
+const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Return one individual at random by using an eoRandomSelect.
+

Detailed Description

+

template<class MOEOT>
+ class moeoRandomSelect< MOEOT >

+ +Selection strategy that selects only one element randomly from a whole population. +

+ +

+Definition at line 23 of file moeoRandomSelect.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect.png new file mode 100644 index 000000000..3347ccc9a Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRandomSelect.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html new file mode 100644 index 000000000..58cc2feb5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector-members.html @@ -0,0 +1,53 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRealObjectiveVector< ObjectiveVectorTraits > Member List

This is the complete list of members for moeoRealObjectiveVector< ObjectiveVectorTraits >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
dominates(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
maximizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
minimizing(unsigned int _i)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
moeoObjectiveVector(Type _value=Type())moeoObjectiveVector< ObjectiveVectorTraits, double > [inline]
moeoObjectiveVector(std::vector< Type > &_v)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline]
moeoRealObjectiveVector(double _value=0.0)moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
moeoRealObjectiveVector(std::vector< double > &_v)moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
nObjectives()moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
operator!=(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator<(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator<=(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator==(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator>(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
operator>=(const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const moeoRealObjectiveVector< ObjectiveVectorTraits > [inline]
setup(unsigned int _nObjectives, std::vector< bool > &_bObjectives)moeoObjectiveVector< ObjectiveVectorTraits, double > [inline, static]
Traits typedefmoeoObjectiveVector< ObjectiveVectorTraits, double >
Type typedefmoeoObjectiveVector< ObjectiveVectorTraits, double >


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html new file mode 100644 index 000000000..8ec3e5f93 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.html @@ -0,0 +1,351 @@ + + +ParadisEO-MOEO: moeoRealObjectiveVector< ObjectiveVectorTraits > Class Template Reference + + + + +
+
+ +

moeoRealObjectiveVector< ObjectiveVectorTraits > Class Template Reference

This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. +More... +

+#include <moeoRealObjectiveVector.h> +

+

Inheritance diagram for moeoRealObjectiveVector< ObjectiveVectorTraits >: +

+ +moeoObjectiveVector< ObjectiveVectorTraits, double > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

moeoRealObjectiveVector (double _value=0.0)
 Ctor.
 moeoRealObjectiveVector (std::vector< double > &_v)
 Ctor from a vector of doubles.
bool dominates (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a moeoObjectiveVectorComparator object to compare solutions).
bool operator== (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is equal to _other (according to a tolerance value).
bool operator!= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is different than _other (according to a tolerance value).
bool operator< (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
bool operator> (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
bool operator<= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
bool operator>= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &_other) const
 Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing).
+

Detailed Description

+

template<class ObjectiveVectorTraits>
+ class moeoRealObjectiveVector< ObjectiveVectorTraits >

+ +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. +

+that an objective value is represented using a double, and this for any objective. +

+ +

+Definition at line 27 of file moeoRealObjectiveVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
moeoRealObjectiveVector< ObjectiveVectorTraits >::moeoRealObjectiveVector (std::vector< double > &  _v  )  [inline]
+
+
+ +

+Ctor from a vector of doubles. +

+

Parameters:
+ + +
_v the std::vector < double >
+
+ +

+Definition at line 45 of file moeoRealObjectiveVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::dominates (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a moeoObjectiveVectorComparator object to compare solutions). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 54 of file moeoRealObjectiveVector.h. +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator== (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is equal to _other (according to a tolerance value). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 65 of file moeoRealObjectiveVector.h. +

+Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator!=(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator!= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is different than _other (according to a tolerance value). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 82 of file moeoRealObjectiveVector.h. +

+References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator< (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 93 of file moeoRealObjectiveVector.h. +

+Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<=(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator> (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 105 of file moeoRealObjectiveVector.h. +

+Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 116 of file moeoRealObjectiveVector.h. +

+References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<(). +

+

+ +

+
+
+template<class ObjectiveVectorTraits>
+ + + + + + + + + +
bool moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>= (const moeoRealObjectiveVector< ObjectiveVectorTraits > &  _other  )  const [inline]
+
+
+ +

+Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +

+

Parameters:
+ + +
_other the other moeoRealObjectiveVector object to compare with
+
+ +

+Definition at line 127 of file moeoRealObjectiveVector.h. +

+References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.png new file mode 100644 index 000000000..c5aa7381c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealObjectiveVector.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector-members.html new file mode 100644 index 000000000..3b5687e3c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector-members.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Member List

This is the complete list of members for moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AtomType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >
className() const moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
ContainerType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoRealVector(unsigned int _size=0, double _value=0.0)moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoVector(unsigned int _size=0, double_value=double())moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > &_moeo) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline]
MOEO::operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline, virtual]
readFrom(std::istream &_is)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
value(const std::vector< double > &_v)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > [inline]
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector.html new file mode 100644 index 000000000..4993a6aca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector.html @@ -0,0 +1,113 @@ + + +ParadisEO-MOEO: moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference + + + + +
+
+ +

moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity > Class Template Reference

This class is an implementation of a simple double-valued moeoVector. +More... +

+#include <moeoRealVector.h> +

+

Inheritance diagram for moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >: +

+ +moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > +MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + +

Public Member Functions

 moeoRealVector (unsigned int _size=0, double _value=0.0)
 Ctor.
+virtual std::string className () const
 Returns the class name as a std::string.
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ class moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+ +This class is an implementation of a simple double-valued moeoVector. +

+ +

+Definition at line 22 of file moeoRealVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity>
+ + + + + + + + + + + + + + + + + + +
moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::moeoRealVector (unsigned int  _size = 0,
double  _value = 0.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + +
_size Length of vector (default is 0)
_value Initial value of all elements (default is default value of type GeneType)
+
+ +

+Definition at line 31 of file moeoRealVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector.png new file mode 100644 index 000000000..ffe873b85 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRealVector.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement-members.html new file mode 100644 index 000000000..ca17ecb5a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoReplacement< MOEOT > Member List

This is the complete list of members for moeoReplacement< MOEOT >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement.html new file mode 100644 index 000000000..34f9ce415 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoReplacement< MOEOT > Class Template Reference + + + + +
+
+ +

moeoReplacement< MOEOT > Class Template Reference

Replacement strategy for multi-objective optimization. +More... +

+#include <moeoReplacement.h> +

+

Inheritance diagram for moeoReplacement< MOEOT >: +

+ +eoReplacement< MOEOT > +eoBF< A1, A2, R > +eoFunctorBase +moeoElitistReplacement< MOEOT > +moeoEnvironmentalReplacement< MOEOT > +moeoGenerationalReplacement< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoReplacement< MOEOT >

+ +Replacement strategy for multi-objective optimization. +

+ +

+Definition at line 22 of file moeoReplacement.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement.png new file mode 100644 index 000000000..81188d8ce Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoReplacement.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html new file mode 100644 index 000000000..6e8659266 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect-members.html @@ -0,0 +1,44 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoRouletteSelect< MOEOT > Member List

This is the complete list of members for moeoRouletteSelect< MOEOT >, including all inherited members.

+ + + + + + + + +
functor_category()eoUF< A1, R > [static]
moeoRouletteSelect(unsigned int _tSize=2)moeoRouletteSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoRouletteSelect< MOEOT > [inline]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
tSizemoeoRouletteSelect< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html new file mode 100644 index 000000000..bf715384a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect.html @@ -0,0 +1,144 @@ + + +ParadisEO-MOEO: moeoRouletteSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoRouletteSelect< MOEOT > Class Template Reference

Selection strategy that selects ONE individual by using roulette wheel process. +More... +

+#include <moeoRouletteSelect.h> +

+

Inheritance diagram for moeoRouletteSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + +

Public Member Functions

 moeoRouletteSelect (unsigned int _tSize=2)
 Ctor.
const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Apply the tournament to the given population.

Protected Attributes

+double & tSize
 size
+

Detailed Description

+

template<class MOEOT>
+ class moeoRouletteSelect< MOEOT >

+ +Selection strategy that selects ONE individual by using roulette wheel process. +

+

Warning:
This selection only uses fitness values (and not diversity values).
+ +

+ +

+Definition at line 24 of file moeoRouletteSelect.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoRouletteSelect< MOEOT >::moeoRouletteSelect (unsigned int  _tSize = 2  )  [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + +
_tSize the number of individuals in the tournament (default: 2)
+
+ +

+Definition at line 32 of file moeoRouletteSelect.h. +

+References moeoRouletteSelect< MOEOT >::tSize. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
const MOEOT& moeoRouletteSelect< MOEOT >::operator() (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Apply the tournament to the given population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 48 of file moeoRouletteSelect.h. +

+References moeoRouletteSelect< MOEOT >::tSize. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect.png new file mode 100644 index 000000000..5a9a8b943 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoRouletteSelect.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment-members.html new file mode 100644 index 000000000..97c5f5544 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoScalarFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoScalarFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html new file mode 100644 index 000000000..a2e1503f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoScalarFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoScalarFitnessAssignment< MOEOT > Class Template Reference

moeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies. +More... +

+#include <moeoScalarFitnessAssignment.h> +

+

Inheritance diagram for moeoScalarFitnessAssignment< MOEOT >: +

+ +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoAchievementFitnessAssignment< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoScalarFitnessAssignment< MOEOT >

+ +moeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies. +

+ +

+Definition at line 22 of file moeoScalarFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.png new file mode 100644 index 000000000..93cce3712 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoScalarFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html new file mode 100644 index 000000000..df1647da5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch-members.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSelectFromPopAndArch< MOEOT > Member List

This is the complete list of members for moeoSelectFromPopAndArch< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + +
archmoeoSelectFromPopAndArch< MOEOT > [private]
archSelectOnemoeoSelectFromPopAndArch< MOEOT > [private]
functor_category()eoUF< A1, R > [static]
moeoSelectFromPopAndArch(moeoSelectOne< MOEOT > &_popSelectOne, moeoSelectOne< MOEOT > _archSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)moeoSelectFromPopAndArch< MOEOT > [inline]
moeoSelectFromPopAndArch(moeoSelectOne< MOEOT > &_popSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)moeoSelectFromPopAndArch< MOEOT > [inline]
operator()(const eoPop< MOEOT > &pop)moeoSelectFromPopAndArch< MOEOT > [inline, virtual]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
popSelectOnemoeoSelectFromPopAndArch< MOEOT > [private]
randomSelectOnemoeoSelectFromPopAndArch< MOEOT > [private]
ratioFromPopmoeoSelectFromPopAndArch< MOEOT > [private]
setup(const eoPop< MOEOT > &_pop)moeoSelectFromPopAndArch< MOEOT > [inline, virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html new file mode 100644 index 000000000..5d9d7c135 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.html @@ -0,0 +1,201 @@ + + +ParadisEO-MOEO: moeoSelectFromPopAndArch< MOEOT > Class Template Reference + + + + +
+
+ +

moeoSelectFromPopAndArch< MOEOT > Class Template Reference

Elitist selection process that consists in choosing individuals in the archive as well as in the current population. +More... +

+#include <moeoSelectFromPopAndArch.h> +

+

Inheritance diagram for moeoSelectFromPopAndArch< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &_popSelectOne, moeoSelectOne< MOEOT > _archSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)
 Ctor.
 moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &_popSelectOne, moeoArchive< MOEOT > &_arch, double _ratioFromPop=0.5)
 Defaulr ctor - the archive's selection operator is a random selector.
+virtual const MOEOT & operator() (const eoPop< MOEOT > &pop)
 The selection process.
+virtual void setup (const eoPop< MOEOT > &_pop)
 Setups some population stats.

Private Attributes

+moeoSelectOne< MOEOT > & popSelectOne
 The population's selection operator.
+moeoSelectOne< MOEOT > & archSelectOne
 The archive's selection operator.
+moeoArchive< MOEOT > & arch
 The archive.
+double ratioFromPop
 The ratio of selected individuals from the population.
+moeoRandomSelect< MOEOT > randomSelectOne
 A random selection operator (used as default for archSelectOne).
+

Detailed Description

+

template<class MOEOT>
+ class moeoSelectFromPopAndArch< MOEOT >

+ +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. +

+ +

+Definition at line 26 of file moeoSelectFromPopAndArch.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
moeoSelectFromPopAndArch< MOEOT >::moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &  _popSelectOne,
moeoSelectOne< MOEOT >  _archSelectOne,
moeoArchive< MOEOT > &  _arch,
double  _ratioFromPop = 0.5 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + + +
_popSelectOne the population's selection operator
_archSelectOne the archive's selection operator
_arch the archive
_ratioFromPop the ratio of selected individuals from the population
+
+ +

+Definition at line 37 of file moeoSelectFromPopAndArch.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoSelectFromPopAndArch< MOEOT >::moeoSelectFromPopAndArch (moeoSelectOne< MOEOT > &  _popSelectOne,
moeoArchive< MOEOT > &  _arch,
double  _ratioFromPop = 0.5 
) [inline]
+
+
+ +

+Defaulr ctor - the archive's selection operator is a random selector. +

+

Parameters:
+ + + + +
_popSelectOne the population's selection operator
_arch the archive
_ratioFromPop the ratio of selected individuals from the population
+
+ +

+Definition at line 48 of file moeoSelectFromPopAndArch.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.png new file mode 100644 index 000000000..64ad01a6c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectFromPopAndArch.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne-members.html new file mode 100644 index 000000000..8eaa1d1df --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSelectOne< MOEOT > Member List

This is the complete list of members for moeoSelectOne< MOEOT >, including all inherited members.

+ + + + + +
functor_category()eoUF< A1, R > [static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne.html new file mode 100644 index 000000000..da2461fc3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoSelectOne< MOEOT > Class Template Reference + + + + +
+
+ +

moeoSelectOne< MOEOT > Class Template Reference

Selection strategy for multi-objective optimization that selects only one element from a whole population. +More... +

+#include <moeoSelectOne.h> +

+

Inheritance diagram for moeoSelectOne< MOEOT >: +

+ +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase +moeoDetTournamentSelect< MOEOT > +moeoRandomSelect< MOEOT > +moeoRouletteSelect< MOEOT > +moeoSelectFromPopAndArch< MOEOT > +moeoStochTournamentSelect< MOEOT > + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoSelectOne< MOEOT >

+ +Selection strategy for multi-objective optimization that selects only one element from a whole population. +

+ +

+Definition at line 22 of file moeoSelectOne.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne.png new file mode 100644 index 000000000..c3d4939f9 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSelectOne.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html new file mode 100644 index 000000000..6289a393a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment-members.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSharingDiversityAssignment< MOEOT > Member List

This is the complete list of members for moeoSharingDiversityAssignment< MOEOT >, including all inherited members.

+ + + + + + + + + + + + + + + +
alphamoeoSharingDiversityAssignment< MOEOT > [protected]
defaultDistancemoeoSharingDiversityAssignment< MOEOT > [protected]
distancemoeoSharingDiversityAssignment< MOEOT > [protected]
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
moeoSharingDiversityAssignment(moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
moeoSharingDiversityAssignment(double _nicheSize=0.5, double _alpha=1.0)moeoSharingDiversityAssignment< MOEOT > [inline]
nicheSizemoeoSharingDiversityAssignment< MOEOT > [protected]
ObjectiveVector typedefmoeoSharingDiversityAssignment< MOEOT >
operator()(eoPop< MOEOT > &_pop)moeoSharingDiversityAssignment< MOEOT > [inline, virtual]
setSimilarities(eoPop< MOEOT > &_pop)moeoSharingDiversityAssignment< MOEOT > [inline, protected, virtual]
sh(double _dist)moeoSharingDiversityAssignment< MOEOT > [inline, protected]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)moeoSharingDiversityAssignment< MOEOT > [inline, virtual]
moeoDiversityAssignment::updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoDiversityAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html new file mode 100644 index 000000000..97d76ae07 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.html @@ -0,0 +1,347 @@ + + +ParadisEO-MOEO: moeoSharingDiversityAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoSharingDiversityAssignment< MOEOT > Class Template Reference

Sharing assignment scheme originally porposed by: D. +More... +

+#include <moeoSharingDiversityAssignment.h> +

+

Inheritance diagram for moeoSharingDiversityAssignment< MOEOT >: +

+ +moeoDiversityAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase +moeoFrontByFrontSharingDiversityAssignment< MOEOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef MOEOT::ObjectiveVector ObjectiveVector
 the objective vector type of the solutions

Public Member Functions

 moeoSharingDiversityAssignment (moeoDistance< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)
 Ctor.
 moeoSharingDiversityAssignment (double _nicheSize=0.5, double _alpha=1.0)
 Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default.
void operator() (eoPop< MOEOT > &_pop)
 Sets diversity values for every solution contained in the population _pop.
void updateByDeleting (eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)

Protected Member Functions

virtual void setSimilarities (eoPop< MOEOT > &_pop)
 Sets similarities for every solution contained in the population _pop.
double sh (double _dist)
 Sharing function.

Protected Attributes

+moeoDistance< MOEOT, double > & distance
 the distance used to compute the neighborhood of solutions
+moeoEuclideanDistance< MOEOT > defaultDistance
 euclidean distancein the objective space (can be used as default)
+double nicheSize
 neighborhood size in terms of radius distance
+double alpha
 parameter used to regulate the shape of the sharing function
+

Detailed Description

+

template<class MOEOT>
+ class moeoSharingDiversityAssignment< MOEOT >

+ +Sharing assignment scheme originally porposed by: D. +

+E. Goldberg, "Genetic Algorithms in Search, Optimization and Machine Learning", Addision-Wesley, MA, USA (1989). +

+ +

+Definition at line 28 of file moeoSharingDiversityAssignment.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + + + + + + + +
moeoSharingDiversityAssignment< MOEOT >::moeoSharingDiversityAssignment (moeoDistance< MOEOT, double > &  _distance,
double  _nicheSize = 0.5,
double  _alpha = 1.0 
) [inline]
+
+
+ +

+Ctor. +

+

Parameters:
+ + + + +
_distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space)
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 42 of file moeoSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoSharingDiversityAssignment< MOEOT >::moeoSharingDiversityAssignment (double  _nicheSize = 0.5,
double  _alpha = 1.0 
) [inline]
+
+
+ +

+Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +

+

Parameters:
+ + + +
_nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed)
_alpha parameter used to regulate the shape of the sharing function
+
+ +

+Definition at line 51 of file moeoSharingDiversityAssignment.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
void moeoSharingDiversityAssignment< MOEOT >::operator() (eoPop< MOEOT > &  _pop  )  [inline, virtual]
+
+
+ +

+Sets diversity values for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Implements eoUF< eoPop< MOEOT > &, void >. +

+Definition at line 59 of file moeoSharingDiversityAssignment.h. +

+References moeoSharingDiversityAssignment< MOEOT >::setSimilarities(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
void moeoSharingDiversityAssignment< MOEOT >::updateByDeleting (eoPop< MOEOT > &  _pop,
ObjectiveVector _objVec 
) [inline, virtual]
+
+
+ +

+

Warning:
NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account.
+
Parameters:
+ + + +
_pop the population
_objVec the objective vector
+
+
Warning:
NOT IMPLEMENTED, DO NOTHING !
+ +

+Implements moeoDiversityAssignment< MOEOT >. +

+Reimplemented in moeoFrontByFrontSharingDiversityAssignment< MOEOT >. +

+Definition at line 80 of file moeoSharingDiversityAssignment.h. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
virtual void moeoSharingDiversityAssignment< MOEOT >::setSimilarities (eoPop< MOEOT > &  _pop  )  [inline, protected, virtual]
+
+
+ +

+Sets similarities for every solution contained in the population _pop. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Reimplemented in moeoFrontByFrontSharingDiversityAssignment< MOEOT >. +

+Definition at line 102 of file moeoSharingDiversityAssignment.h. +

+References moeoSharingDiversityAssignment< MOEOT >::distance, and moeoSharingDiversityAssignment< MOEOT >::sh(). +

+Referenced by moeoSharingDiversityAssignment< MOEOT >::operator()(). +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
double moeoSharingDiversityAssignment< MOEOT >::sh (double  _dist  )  [inline, protected]
+
+ +

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.png new file mode 100644 index 000000000..4bb9a13c2 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSharingDiversityAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html new file mode 100644 index 000000000..ff946811e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSolutionUnaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoSolutionUnaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + +
functor_category()eoUF< const ObjectiveVector &, R > [static]
operator()(const ObjectiveVector &)=0eoUF< const ObjectiveVector &, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const ObjectiveVector &, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html new file mode 100644 index 000000000..8823c6ed2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoSolutionUnaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoSolutionUnaryMetric< ObjectiveVector, R > Class Template Reference

Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoSolutionUnaryMetric< ObjectiveVector, R >: +

+ +moeoUnaryMetric< const ObjectiveVector &, R > +eoUF< const ObjectiveVector &, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoSolutionUnaryMetric< ObjectiveVector, R >

+ +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. +

+ +

+Definition at line 43 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.png new file mode 100644 index 000000000..88515c699 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionUnaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html new file mode 100644 index 000000000..cc3c993e2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html new file mode 100644 index 000000000..9f25989ae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.html @@ -0,0 +1,63 @@ + + +ParadisEO-MOEO: moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R > Class Template Reference

Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >: +

+ +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase +moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R > + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+ +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. +

+ +

+Definition at line 57 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.png new file mode 100644 index 000000000..3b831c961 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoSolutionVsSolutionBinaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html new file mode 100644 index 000000000..61acf6b3a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect-members.html @@ -0,0 +1,47 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoStochTournamentSelect< MOEOT > Member List

This is the complete list of members for moeoStochTournamentSelect< MOEOT >, including all inherited members.

+ + + + + + + + + + + +
comparatormoeoStochTournamentSelect< MOEOT > [protected]
defaultComparatormoeoStochTournamentSelect< MOEOT > [protected]
functor_category()eoUF< A1, R > [static]
moeoStochTournamentSelect(moeoComparator< MOEOT > &_comparator, double _tRate=1.0)moeoStochTournamentSelect< MOEOT > [inline]
moeoStochTournamentSelect(double _tRate=1.0)moeoStochTournamentSelect< MOEOT > [inline]
operator()(const eoPop< MOEOT > &_pop)moeoStochTournamentSelect< MOEOT > [inline]
moeoSelectOne::operator()(A1)=0eoUF< A1, R > [pure virtual]
setup(const eoPop< MOEOT > &_pop)eoSelectOne< MOEOT > [virtual]
tRatemoeoStochTournamentSelect< MOEOT > [protected]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html new file mode 100644 index 000000000..7e840c964 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.html @@ -0,0 +1,196 @@ + + +ParadisEO-MOEO: moeoStochTournamentSelect< MOEOT > Class Template Reference + + + + +
+
+ +

moeoStochTournamentSelect< MOEOT > Class Template Reference

Selection strategy that selects ONE individual by stochastic tournament. +More... +

+#include <moeoStochTournamentSelect.h> +

+

Inheritance diagram for moeoStochTournamentSelect< MOEOT >: +

+ +moeoSelectOne< MOEOT > +eoSelectOne< MOEOT > +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 moeoStochTournamentSelect (moeoComparator< MOEOT > &_comparator, double _tRate=1.0)
 Full Ctor.
 moeoStochTournamentSelect (double _tRate=1.0)
 Ctor without comparator.
const MOEOT & operator() (const eoPop< MOEOT > &_pop)
 Apply the tournament to the given population.

Protected Attributes

+moeoComparator< MOEOT > & comparator
 the comparator (used to compare 2 individuals)
+moeoFitnessThenDiversityComparator<
+ MOEOT > 
defaultComparator
 a fitness then diversity comparator can be used as default
+double tRate
 the tournament rate
+

Detailed Description

+

template<class MOEOT>
+ class moeoStochTournamentSelect< MOEOT >

+ +Selection strategy that selects ONE individual by stochastic tournament. +

+ +

+Definition at line 24 of file moeoStochTournamentSelect.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + + + + + + + + + + +
moeoStochTournamentSelect< MOEOT >::moeoStochTournamentSelect (moeoComparator< MOEOT > &  _comparator,
double  _tRate = 1.0 
) [inline]
+
+
+ +

+Full Ctor. +

+

Parameters:
+ + + +
_comparator the comparator (used to compare 2 individuals)
_tRate the tournament rate
+
+ +

+Definition at line 33 of file moeoStochTournamentSelect.h. +

+References moeoStochTournamentSelect< MOEOT >::tRate. +

+

+ +

+
+
+template<class MOEOT>
+ + + + + + + + + +
moeoStochTournamentSelect< MOEOT >::moeoStochTournamentSelect (double  _tRate = 1.0  )  [inline]
+
+
+ +

+Ctor without comparator. +

+A moeoFitnessThenDiversityComparator is used as default.

Parameters:
+ + +
_tRate the tournament rate
+
+ +

+Definition at line 53 of file moeoStochTournamentSelect.h. +

+References moeoStochTournamentSelect< MOEOT >::tRate. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOT>
+ + + + + + + + + +
const MOEOT& moeoStochTournamentSelect< MOEOT >::operator() (const eoPop< MOEOT > &  _pop  )  [inline]
+
+
+ +

+Apply the tournament to the given population. +

+

Parameters:
+ + +
_pop the population
+
+ +

+Definition at line 73 of file moeoStochTournamentSelect.h. +

+References moeoStochTournamentSelect< MOEOT >::comparator, and moeoStochTournamentSelect< MOEOT >::tRate. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.png new file mode 100644 index 000000000..640878725 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoStochTournamentSelect.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment-members.html new file mode 100644 index 000000000..1ceed260e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment-members.html @@ -0,0 +1,43 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > Member List

This is the complete list of members for moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >, including all inherited members.

+ + + + + + + +
functor_category()eoUF< eoPop< MOEOT > &, void > [static]
ObjectiveVector typedefmoeoFitnessAssignment< MOEOT >
operator()(eoPop< MOEOT > &)=0eoUF< eoPop< MOEOT > &, void > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, ObjectiveVector &_objVec)=0moeoFitnessAssignment< MOEOT > [pure virtual]
updateByDeleting(eoPop< MOEOT > &_pop, MOEOT &_moeo)moeoFitnessAssignment< MOEOT > [inline]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< eoPop< MOEOT > &, void > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html new file mode 100644 index 000000000..f309d2da0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference + + + + +
+
+ +

moeoUnaryIndicatorBasedFitnessAssignment< MOEOT > Class Template Reference

moeoIndicatorBasedFitnessAssignment for unary indicators. +More... +

+#include <moeoUnaryIndicatorBasedFitnessAssignment.h> +

+

Inheritance diagram for moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >: +

+ +moeoIndicatorBasedFitnessAssignment< MOEOT > +moeoFitnessAssignment< MOEOT > +eoUF< eoPop< MOEOT > &, void > +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class MOEOT>
+ class moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >

+ +moeoIndicatorBasedFitnessAssignment for unary indicators. +

+ +

+Definition at line 22 of file moeoUnaryIndicatorBasedFitnessAssignment.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.png new file mode 100644 index 000000000..0f96bc66f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryIndicatorBasedFitnessAssignment.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html new file mode 100644 index 000000000..7428da35e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoUnaryMetric< A, R > Member List

This is the complete list of members for moeoUnaryMetric< A, R >, including all inherited members.

+ + + + +
functor_category()eoUF< A, R > [static]
operator()(A)=0eoUF< A, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html new file mode 100644 index 000000000..f06c1e18b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric.html @@ -0,0 +1,61 @@ + + +ParadisEO-MOEO: moeoUnaryMetric< A, R > Class Template Reference + + + + +
+
+ +

moeoUnaryMetric< A, R > Class Template Reference

Base class for unary metrics. +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoUnaryMetric< A, R >: +

+ +eoUF< A, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class A, class R>
+ class moeoUnaryMetric< A, R >

+ +Base class for unary metrics. +

+ +

+Definition at line 29 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric.png new file mode 100644 index 000000000..faf9e9ecc Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoUnaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector-members.html new file mode 100644 index 000000000..86d38a27f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector-members.html @@ -0,0 +1,85 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > Member List

This is the complete list of members for moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AtomType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >
className() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]
ContainerType typedefmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >
Diversity typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
diversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
diversity(const Diversity &_diversityValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO()EO< MOEOObjectiveVector >
EO()EO< MOEOObjectiveVector >
Fitness typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
fitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
fitness(const Fitness &_fitnessValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::fitness(const Fitness &_fitness)EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::fitness(performance_type perf)EO< MOEOObjectiveVector >
fitness_traits typedefEO< MOEOObjectiveVector >
invalid() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidate_worth(void)EO< MOEOObjectiveVector >
invalidateDiversity()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateFitness()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidateObjectiveVector()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidDiversity() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidFitness() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
invalidObjectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
moeoVector(unsigned int _size=0, GeneType _value=GeneType())moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline]
ObjectiveVector typedefMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >
objectiveVector() const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
objectiveVector(const ObjectiveVector &_objectiveVectorValue)MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &_moeo) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline]
MOEO::operator<(const MOEO &_other) const MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline]
EO< MOEOObjectiveVector >::operator<(const EO &_eo2) const EO< MOEOObjectiveVector >
EO< MOEOObjectiveVector >::operator<(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
operator>(const EO &_eo2) const EO< MOEOObjectiveVector >
operator>(const EO< Fitness, Traits > &other) const EO< MOEOObjectiveVector >
performance(performance_type perf)EO< MOEOObjectiveVector >
performance(void) const EO< MOEOObjectiveVector >
performance_type typedefEO< MOEOObjectiveVector >
printOn(std::ostream &_os) const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline, virtual]
readFrom(std::istream &_is)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline, virtual]
storage_type typedefEO< MOEOObjectiveVector >
value(const std::vector< GeneType > &_v)moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > [inline]
worth(worth_type worth)EO< MOEOObjectiveVector >
worth(void) const EO< MOEOObjectiveVector >
worth_type typedefEO< MOEOObjectiveVector >
~EO()EO< MOEOObjectiveVector > [virtual]
~eoObject()eoObject [virtual]
~eoPersistent()eoPersistent [virtual]
~eoPrintable()eoPrintable [virtual]
~MOEO()MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > [inline, virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector.html new file mode 100644 index 000000000..29bef36d3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector.html @@ -0,0 +1,264 @@ + + +ParadisEO-MOEO: moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > Class Template Reference + + + + +
+
+ +

moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > Class Template Reference

Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). +More... +

+#include <moeoVector.h> +

+

Inheritance diagram for moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >: +

+ +MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity > +EO< MOEOObjectiveVector > +eoObject +eoPersistent +eoPrintable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

+typedef GeneType AtomType
 the atomic type
+typedef std::vector< GeneType > ContainerType
 the container type

Public Member Functions

 moeoVector (unsigned int _size=0, GeneType _value=GeneType())
 Default ctor.
void value (const std::vector< GeneType > &_v)
 We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor.
bool operator< (const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &_moeo) const
 To avoid conflicts between MOEO::operator< and std::vector<GeneType>::operator<.
virtual void printOn (std::ostream &_os) const
 Writing object.
virtual void readFrom (std::istream &_is)
 Reading object.
+

Detailed Description

+

template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ class moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >

+ +Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). +

+GeneType must have the following methods: void ctor (needed for the std::vector<>), copy ctor. +

+ +

+Definition at line 25 of file moeoVector.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + + + + + + + + + + +
moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::moeoVector (unsigned int  _size = 0,
GeneType  _value = GeneType() 
) [inline]
+
+
+ +

+Default ctor. +

+

Parameters:
+ + + +
_size Length of vector (default is 0)
_value Initial value of all elements (default is default value of type GeneType)
+
+ +

+Definition at line 47 of file moeoVector.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
void moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value (const std::vector< GeneType > &  _v  )  [inline]
+
+
+ +

+We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. +

+

Parameters:
+ + +
_v a vector of GeneType
+
+ +

+Definition at line 56 of file moeoVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
bool moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::operator< (const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &  _moeo  )  const [inline]
+
+
+ +

+To avoid conflicts between MOEO::operator< and std::vector<GeneType>::operator<. +

+

Parameters:
+ + +
_moeo the object to compare with
+
+ +

+Definition at line 79 of file moeoVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
virtual void moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::printOn (std::ostream &  _os  )  const [inline, virtual]
+
+
+ +

+Writing object. +

+

Parameters:
+ + +
_os output stream
+
+ +

+Reimplemented from MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Reimplemented in moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Definition at line 89 of file moeoVector.h. +

+

+ +

+
+
+template<class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType>
+ + + + + + + + + +
virtual void moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::readFrom (std::istream &  _is  )  [inline, virtual]
+
+
+ +

+Reading object. +

+

Parameters:
+ + +
_is input stream
+
+ +

+Reimplemented from MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Reimplemented in moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >. +

+Definition at line 102 of file moeoVector.h. +

+

+


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector.png new file mode 100644 index 000000000..a40378e79 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVector.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric-members.html new file mode 100644 index 000000000..8a00a7744 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoVectorUnaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoVectorUnaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + +
functor_category()eoUF< const std::vector< ObjectiveVector > &, R > [static]
operator()(const std::vector< ObjectiveVector > &)=0eoUF< const std::vector< ObjectiveVector > &, R > [pure virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< const std::vector< ObjectiveVector > &, R > [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html new file mode 100644 index 000000000..640c5cc8c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoVectorUnaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoVectorUnaryMetric< ObjectiveVector, R > Class Template Reference

Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoVectorUnaryMetric< ObjectiveVector, R >: +

+ +moeoUnaryMetric< const std::vector< ObjectiveVector > &, R > +eoUF< const std::vector< ObjectiveVector > &, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoVectorUnaryMetric< ObjectiveVector, R >

+ +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). +

+ +

+Definition at line 50 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.png new file mode 100644 index 000000000..7e9c163bf Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorUnaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html new file mode 100644 index 000000000..bec258a65 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-MOEO: Member List + + + + +
+
+ +

moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > Member List

This is the complete list of members for moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html new file mode 100644 index 000000000..e42c79320 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > Class Template Reference + + + + +
+
+ +

moeoVectorVsVectorBinaryMetric< ObjectiveVector, R > Class Template Reference

Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). +More... +

+#include <moeoMetric.h> +

+

Inheritance diagram for moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >: +

+ +moeoBinaryMetric< A1, A2, R > +eoBF< A1, A2, R > +moeoMetric +eoFunctorBase +eoFunctorBase + +List of all members. + +
+

Detailed Description

+

template<class ObjectiveVector, class R>
+ class moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >

+ +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). +

+ +

+Definition at line 64 of file moeoMetric.h.


The documentation for this class was generated from the following file: +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.png new file mode 100644 index 000000000..f8617fb5c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/classmoeoVectorVsVectorBinaryMetric.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/doxygen.css b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/doxygen.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/doxygen.png new file mode 100644 index 000000000..f0a274bba Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/doxygen.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/files.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/files.html new file mode 100644 index 000000000..2845bace0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/files.html @@ -0,0 +1,105 @@ + + +ParadisEO-MOEO: File Index + + + + +
+
+

ParadisEO-MOEO File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
index.h [code]
make_checkpoint_moeo.h [code]
make_continue_moeo.h [code]
make_ea_moeo.h [code]
MOEO.h [code]
moeoAchievementFitnessAssignment.h [code]
moeoAdditiveEpsilonBinaryMetric.h [code]
moeoAggregativeComparator.h [code]
moeoAlgo.h [code]
moeoArchive.h [code]
moeoArchiveObjectiveVectorSavingUpdater.h [code]
moeoArchiveUpdater.h [code]
moeoBinaryIndicatorBasedFitnessAssignment.h [code]
moeoBinaryMetricSavingUpdater.h [code]
moeoBitVector.h [code]
moeoCombinedLS.h [code]
moeoComparator.h [code]
moeoContributionMetric.h [code]
moeoConvertPopToObjectiveVectors.h [code]
moeoCriterionBasedFitnessAssignment.h [code]
moeoCrowdingDiversityAssignment.h [code]
moeoDetTournamentSelect.h [code]
moeoDistance.h [code]
moeoDistanceMatrix.h [code]
moeoDiversityAssignment.h [code]
moeoDiversityThenFitnessComparator.h [code]
moeoDummyDiversityAssignment.h [code]
moeoDummyFitnessAssignment.h [code]
moeoEA.h [code]
moeoEasyEA.h [code]
moeoElitistReplacement.h [code]
moeoEntropyMetric.h [code]
moeoEnvironmentalReplacement.h [code]
moeoEuclideanDistance.h [code]
moeoEvalFunc.h [code]
moeoExpBinaryIndicatorBasedFitnessAssignment.h [code]
moeoFastNonDominatedSortingFitnessAssignment.h [code]
moeoFitnessAssignment.h [code]
moeoFitnessThenDiversityComparator.h [code]
moeoFrontByFrontCrowdingDiversityAssignment.h [code]
moeoFrontByFrontSharingDiversityAssignment.h [code]
moeoGDominanceObjectiveVectorComparator.h [code]
moeoGenerationalReplacement.h [code]
moeoHybridLS.h [code]
moeoHypervolumeBinaryMetric.h [code]
moeoIBEA.h [code]
moeoIndicatorBasedFitnessAssignment.h [code]
moeoLS.h [code]
moeoManhattanDistance.h [code]
moeoMetric.h [code]
moeoNormalizedDistance.h [code]
moeoNormalizedSolutionVsSolutionBinaryMetric.h [code]
moeoNSGA.h [code]
moeoNSGAII.h [code]
moeoObjectiveObjectiveVectorComparator.h [code]
moeoObjectiveVector.h [code]
moeoObjectiveVectorComparator.h [code]
moeoObjectiveVectorTraits.cpp [code]
moeoObjectiveVectorTraits.h [code]
moeoOneObjectiveComparator.h [code]
moeoParetoBasedFitnessAssignment.h [code]
moeoParetoObjectiveVectorComparator.h [code]
moeoRandomSelect.h [code]
moeoRealObjectiveVector.h [code]
moeoRealVector.h [code]
moeoReplacement.h [code]
moeoRouletteSelect.h [code]
moeoScalarFitnessAssignment.h [code]
moeoSelectFromPopAndArch.h [code]
moeoSelectOne.h [code]
moeoSelectors.h [code]
moeoSharingDiversityAssignment.h [code]
moeoStochTournamentSelect.h [code]
moeoUnaryIndicatorBasedFitnessAssignment.h [code]
moeoVector.h [code]
+
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2blank.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2blank.png new file mode 100644 index 000000000..493c3c0b6 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2blank.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2doc.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2doc.png new file mode 100644 index 000000000..f72999f92 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2doc.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2folderclosed.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2folderclosed.png new file mode 100644 index 000000000..d6d063440 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2folderclosed.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2folderopen.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2folderopen.png new file mode 100644 index 000000000..bbe2c913c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2folderopen.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2lastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2lastnode.png new file mode 100644 index 000000000..e7b9ba90c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2lastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2link.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2link.png new file mode 100644 index 000000000..14f3fed00 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2link.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2mlastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2mlastnode.png new file mode 100644 index 000000000..09ceb6adb Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2mlastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2mnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2mnode.png new file mode 100644 index 000000000..3254c0511 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2mnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2node.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2node.png new file mode 100644 index 000000000..c9f06a57f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2node.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2plastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2plastnode.png new file mode 100644 index 000000000..0b07e0091 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2plastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2pnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2pnode.png new file mode 100644 index 000000000..2001b797b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2pnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2vertline.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2vertline.png new file mode 100644 index 000000000..b330f3a33 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/ftv2vertline.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions.html new file mode 100644 index 000000000..754d72974 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions.html @@ -0,0 +1,294 @@ + + +ParadisEO-MOEO: Class Members + + + + +
+
+ + +
+ +
+ +

+Here is a list of all documented class members with links to the class documentation for each member: +

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- h -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- w -

+

- ~ -

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_func.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_func.html new file mode 100644 index 000000000..6d17e1916 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_func.html @@ -0,0 +1,202 @@ + + +ParadisEO-MOEO: Class Members - Functions + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- c -

+

- d -

+

- e -

+

- f -

+

- h -

+

- i -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- ~ -

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_type.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_type.html new file mode 100644 index 000000000..0bf32edeb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_type.html @@ -0,0 +1,54 @@ + + +ParadisEO-MOEO: Class Members - Typedefs + + + + +
+
+ + +  +

+

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_vars.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_vars.html new file mode 100644 index 000000000..5a16b35af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/functions_vars.html @@ -0,0 +1,181 @@ + + +ParadisEO-MOEO: Class Members - Variables + + + + +
+
+ + +
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- v -

+

- w -

+
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/hierarchy.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/hierarchy.html new file mode 100644 index 000000000..c2b22f76d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/hierarchy.html @@ -0,0 +1,296 @@ + + +ParadisEO-MOEO: Hierarchical Index + + + + +
+
+ +

ParadisEO-MOEO Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/index.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/index.html new file mode 100644 index 000000000..7e73d848d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-MOEO + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/index_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/index_8h-source.html new file mode 100644 index 000000000..26439f45e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/index_8h-source.html @@ -0,0 +1,29 @@ + + +ParadisEO-MOEO: index.h Source File + + + + +
+
+

index.h

00001 
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/installdox b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/installdox new file mode 100755 index 000000000..1628445b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/main.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/main.html new file mode 100644 index 000000000..682843ae4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/main.html @@ -0,0 +1,38 @@ + + +ParadisEO-MOEO: Welcome to ParadisEO-MOEO + + + + +
+
+

Welcome to ParadisEO-MOEO

+

+

1.0-beta

+intro

+ParadisEO-MOEO is a white-box object-oriented generic framework dedicated to the flexible design of evolutionary multi-objective algorithms. This paradigm-free software embeds some features and techniques for Pareto-based resolution and aims to provide a set of classes allowing to ease and speed up the development of computationally efficient programs. It is based on a clear conceptual distinction between the solution methods and the multi-objective problems they are intended to solve. This separation confers a maximum design and code reuse. ParadisEO-MOEO provides a broad range of archive-related features (such as elitism or performance metrics) and the most common Pareto-based fitness assignment strategies (MOGA, NSGA, SPEA, IBEA and more). Furthermore, parallel and distributed models as well as hybridization mechanisms can be applied to an algorithm designed within ParadisEO-MOEO using the whole version of ParadisEO.

+Tutorials

+Tutorials for ParadisEO-MOEO are available here.

+install

+The installation procedure of the package is detailed in the README file in the top-directory of the source-tree.

+design

+For an introduction to the design of ParadisEO-MOEO, you can look at the ParadisEO website.
Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html new file mode 100644 index 000000000..7c1dccf94 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__checkpoint__moeo_8h-source.html @@ -0,0 +1,189 @@ + + +ParadisEO-MOEO: make_checkpoint_moeo.h Source File + + + + +
+
+

make_checkpoint_moeo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // make_checkpoint_moeo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MAKE_CHECKPOINT_MOEO_H_
+00014 #define MAKE_CHECKPOINT_MOEO_H_
+00015 
+00016 #include <stdlib.h>
+00017 #include <sstream>
+00018 #include <eoContinue.h>
+00019 #include <eoEvalFuncCounter.h>
+00020 #include <utils/checkpointing>
+00021 #include <utils/selectors.h>
+00022 #include <utils/eoParser.h>
+00023 #include <utils/eoState.h>
+00024 #include <metric/moeoContributionMetric.h>
+00025 #include <metric/moeoEntropyMetric.h>
+00026 #include <utils/moeoArchiveUpdater.h>
+00027 #include <utils/moeoArchiveObjectiveVectorSavingUpdater.h>
+00028 #include <utils/moeoBinaryMetricSavingUpdater.h>
+00029 
+00030 bool testDirRes(std::string _dirName, bool _erase);
+00031 
+00041 template < class MOEOT >
+00042 eoCheckPoint < MOEOT > & do_make_checkpoint_moeo (eoParser & _parser, eoState & _state, eoEvalFuncCounter < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _archive)
+00043 {
+00044     eoCheckPoint < MOEOT > & checkpoint = _state.storeFunctor(new eoCheckPoint < MOEOT > (_continue));
+00045     /* the objective vector type */
+00046     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00047     
+00049     // Counters
+00051     // is nb Eval to be used as counter?
+00052     //bool useEval = _parser.getORcreateParam(true, "useEval", "Use nb of eval. as counter (vs nb of gen.)", '\0', "Output").value();
+00053     // Create anyway a generation-counter parameter
+00054     eoValueParam<unsigned int> *generationCounter = new eoValueParam<unsigned int>(0, "Gen.");
+00055     // Create an incrementor (sub-class of eoUpdater).
+00056     eoIncrementor<unsigned int> & increment = _state.storeFunctor( new eoIncrementor<unsigned int>(generationCounter->value()) );
+00057     // Add it to the checkpoint
+00058     checkpoint.add(increment);
+00059     // dir for DISK output
+00060     std::string & dirName =  _parser.getORcreateParam(std::string("Res"), "resDir", "Directory to store DISK outputs", '\0', "Output").value();
+00061     // shoudl we empty it if exists
+00062     eoValueParam<bool>& eraseParam = _parser.getORcreateParam(true, "eraseDir", "erase files in dirName if any", '\0', "Output");
+00063     bool dirOK = false;            // not tested yet
+00064 
+00065     // Dump of the whole population
+00066     //-----------------------------
+00067     bool printPop = _parser.getORcreateParam(false, "printPop", "Print sorted pop. every gen.", '\0', "Output").value();
+00068     eoSortedPopStat<MOEOT> * popStat;
+00069     if ( printPop ) // we do want pop dump
+00070     {
+00071         popStat = & _state.storeFunctor(new eoSortedPopStat<MOEOT>);
+00072         checkpoint.add(*popStat);
+00073     }
+00074 
+00076     // State savers
+00078     // feed the state to state savers
+00079     // save state every N  generation
+00080     eoValueParam<unsigned int>& saveFrequencyParam = _parser.createParam((unsigned int)(0), "saveFrequency", "Save every F generation (0 = only final state, absent = never)", '\0', "Persistence" );
+00081     if (_parser.isItThere(saveFrequencyParam))
+00082     {
+00083         // first make sure dirName is OK
+00084         if (! dirOK )
+00085             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00086         unsigned int freq = (saveFrequencyParam.value()>0 ? saveFrequencyParam.value() : UINT_MAX );
+00087 #ifdef _MSVC
+00088         std::string stmp = dirName + "\generations";
+00089 #else
+00090         std::string stmp = dirName + "/generations";
+00091 #endif
+00092         eoCountedStateSaver *stateSaver1 = new eoCountedStateSaver(freq, _state, stmp);
+00093         _state.storeFunctor(stateSaver1);
+00094         checkpoint.add(*stateSaver1);
+00095     }
+00096     // save state every T seconds
+00097     eoValueParam<unsigned int>& saveTimeIntervalParam = _parser.getORcreateParam((unsigned int)(0), "saveTimeInterval", "Save every T seconds (0 or absent = never)", '\0',"Persistence" );
+00098     if (_parser.isItThere(saveTimeIntervalParam) && saveTimeIntervalParam.value()>0)
+00099     {
+00100         // first make sure dirName is OK
+00101         if (! dirOK )
+00102             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00103 #ifdef _MSVC
+00104         std::string stmp = dirName + "\time";
+00105 #else
+00106         std::string stmp = dirName + "/time";
+00107 #endif
+00108         eoTimedStateSaver *stateSaver2 = new eoTimedStateSaver(saveTimeIntervalParam.value(), _state, stmp);
+00109         _state.storeFunctor(stateSaver2);
+00110         checkpoint.add(*stateSaver2);
+00111     }
+00112 
+00114     // Archive
+00116     // update the archive every generation
+00117     bool updateArch = _parser.getORcreateParam(true, "updateArch", "Update the archive at each gen.", '\0', "Evolution Engine").value();
+00118     if (updateArch)
+00119     {
+00120         moeoArchiveUpdater < MOEOT > * updater = new moeoArchiveUpdater < MOEOT > (_archive, _pop);
+00121         _state.storeFunctor(updater);
+00122         checkpoint.add(*updater);
+00123     }
+00124     // store the objective vectors contained in the archive every generation
+00125     bool storeArch = _parser.getORcreateParam(false, "storeArch", "Store the archive's objective vectors at each gen.", '\0', "Output").value();
+00126     if (storeArch)
+00127     {
+00128         if (! dirOK )
+00129             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00130 #ifdef _MSVC
+00131         std::string stmp = dirName + "\arch";
+00132 #else
+00133         std::string stmp = dirName + "/arch";
+00134 #endif
+00135         moeoArchiveObjectiveVectorSavingUpdater < MOEOT > * save_updater = new moeoArchiveObjectiveVectorSavingUpdater < MOEOT > (_archive, stmp);
+00136         _state.storeFunctor(save_updater);
+00137         checkpoint.add(*save_updater);
+00138     }
+00139     // store the contribution of the non-dominated solutions
+00140     bool cont = _parser.getORcreateParam(false, "contribution", "Store the contribution of the archive at each gen.", '\0', "Output").value();
+00141     if (cont)
+00142     {
+00143         if (! dirOK )
+00144             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00145 #ifdef _MSVC
+00146         std::string stmp = dirName + "\contribution";
+00147 #else
+00148         std::string stmp = dirName + "/contribution";
+00149 #endif
+00150         moeoContributionMetric < ObjectiveVector > * contribution = new moeoContributionMetric < ObjectiveVector >;
+00151         moeoBinaryMetricSavingUpdater < MOEOT > * contribution_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*contribution, _archive, stmp);
+00152         _state.storeFunctor(contribution_updater);
+00153         checkpoint.add(*contribution_updater);
+00154     }
+00155     // store the entropy of the non-dominated solutions
+00156     bool ent = _parser.getORcreateParam(false, "entropy", "Store the entropy of the archive at each gen.", '\0', "Output").value();
+00157     if (ent)
+00158     {
+00159         if (! dirOK )
+00160             dirOK = testDirRes(dirName, eraseParam.value()); // TRUE
+00161 #ifdef _MSVC
+00162         std::string stmp = dirName + "\entropy";
+00163 #else
+00164         std::string stmp = dirName + "/entropy";
+00165 #endif
+00166         moeoEntropyMetric < ObjectiveVector > * entropy = new moeoEntropyMetric < ObjectiveVector >;
+00167         moeoBinaryMetricSavingUpdater < MOEOT > * entropy_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*entropy, _archive, stmp);
+00168         _state.storeFunctor(entropy_updater);
+00169         checkpoint.add(*entropy_updater);
+00170     }
+00171 
+00172     // and that's it for the (control and) output
+00173     return checkpoint;
+00174 }
+00175 
+00176 #endif /*MAKE_CHECKPOINT_MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html new file mode 100644 index 000000000..2460ada81 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__continue__moeo_8h-source.html @@ -0,0 +1,123 @@ + + +ParadisEO-MOEO: make_continue_moeo.h Source File + + + + +
+
+

make_continue_moeo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // make_continue_moeo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MAKE_CONTINUE_MOEO_H_
+00014 #define MAKE_CONTINUE_MOEO_H_
+00015 
+00016 #include <eoCombinedContinue.h>
+00017 #include <eoGenContinue.h>
+00018 #include <eoEvalContinue.h>
+00019 #include <eoFitContinue.h>
+00020 #include <eoTimeContinue.h>
+00021 #ifndef _MSC_VER
+00022 #include <eoCtrlCContinue.h>
+00023 #endif
+00024 #include <utils/eoParser.h>
+00025 #include <utils/eoState.h>
+00026 
+00027 
+00033 template <class MOEOT>
+00034 eoCombinedContinue<MOEOT> * make_combinedContinue(eoCombinedContinue<MOEOT> *_combined, eoContinue<MOEOT> *_cont)
+00035 {
+00036     if (_combined)                 // already exists
+00037         _combined->add(*_cont);
+00038     else
+00039         _combined = new eoCombinedContinue<MOEOT>(*_cont);
+00040     return _combined;
+00041 }
+00042 
+00043 
+00050 template <class MOEOT>
+00051 eoContinue<MOEOT> & do_make_continue_moeo(eoParser& _parser, eoState& _state, eoEvalFuncCounter<MOEOT> & _eval)
+00052 {
+00053     // the combined continue - to be filled
+00054     eoCombinedContinue<MOEOT> *continuator = NULL;
+00055     // First the eoGenContinue - need a default value so you can run blind
+00056     // but we also need to be able to avoid it <--> 0
+00057     eoValueParam<unsigned int>& maxGenParam = _parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations (0 = none)",'G',"Stopping criterion");
+00058     if (maxGenParam.value()) // positive: -> define and store
+00059     {
+00060         eoGenContinue<MOEOT> *genCont = new eoGenContinue<MOEOT>(maxGenParam.value());
+00061         _state.storeFunctor(genCont);
+00062         // and "add" to combined
+00063         continuator = make_combinedContinue<MOEOT>(continuator, genCont);
+00064     }
+00065     // maxEval
+00066     eoValueParam<unsigned long>& maxEvalParam = _parser.getORcreateParam((unsigned long)(0), "maxEval", "Maximum number of evaluations (0 = none)", 'E', "Stopping criterion");
+00067     if (maxEvalParam.value())
+00068     {
+00069         eoEvalContinue<MOEOT> *evalCont = new eoEvalContinue<MOEOT>(_eval, maxEvalParam.value());
+00070         _state.storeFunctor(evalCont);
+00071         // and "add" to combined
+00072         continuator = make_combinedContinue<MOEOT>(continuator, evalCont);
+00073     }
+00074     // maxTime
+00075     eoValueParam<unsigned long>& maxTimeParam = _parser.getORcreateParam((unsigned long)(0), "maxTime", "Maximum running time in seconds (0 = none)", 'T', "Stopping criterion");
+00076     if (maxTimeParam.value()) // positive: -> define and store
+00077     {
+00078         eoTimeContinue<MOEOT> *timeCont = new eoTimeContinue<MOEOT>(maxTimeParam.value());
+00079         _state.storeFunctor(timeCont);
+00080         // and "add" to combined
+00081         continuator = make_combinedContinue<MOEOT>(continuator, timeCont);
+00082     }
+00083     // CtrlC
+00084 #ifndef _MSC_VER
+00085     // the CtrlC interception (Linux only I'm afraid)
+00086     eoCtrlCContinue<MOEOT> *ctrlCCont;
+00087     eoValueParam<bool>& ctrlCParam = _parser.createParam(true, "CtrlC", "Terminate current generation upon Ctrl C",'C', "Stopping criterion");
+00088     if (_parser.isItThere(ctrlCParam))
+00089     {
+00090         ctrlCCont = new eoCtrlCContinue<MOEOT>;
+00091         // store
+00092         _state.storeFunctor(ctrlCCont);
+00093         // add to combinedContinue
+00094         continuator = make_combinedContinue<MOEOT>(continuator, ctrlCCont);
+00095     }
+00096 #endif
+00097     // now check that there is at least one!
+00098     if (!continuator)
+00099         throw std::runtime_error("You MUST provide a stopping criterion");
+00100     // OK, it's there: store in the eoState
+00101     _state.storeFunctor(continuator);
+00102     // and return
+00103     return *continuator;
+00104 }
+00105 
+00106 #endif /*MAKE_CONTINUE_MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html new file mode 100644 index 000000000..1a424cf6b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/make__ea__moeo_8h-source.html @@ -0,0 +1,291 @@ + + +ParadisEO-MOEO: make_ea_moeo.h Source File + + + + +
+
+

make_ea_moeo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // make_ea_moeo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MAKE_EA_MOEO_H_
+00014 #define MAKE_EA_MOEO_H_
+00015 
+00016 #include <stdlib.h>
+00017 #include <eoContinue.h>
+00018 #include <eoEvalFunc.h>
+00019 #include <eoGeneralBreeder.h>
+00020 #include <eoGenOp.h>
+00021 #include <utils/eoParser.h>
+00022 #include <utils/eoState.h>
+00023 
+00024 #include <algo/moeoEA.h>
+00025 #include <algo/moeoEasyEA.h>
+00026 #include <archive/moeoArchive.h>
+00027 #include <comparator/moeoAggregativeComparator.h>
+00028 #include <comparator/moeoComparator.h>
+00029 #include <comparator/moeoDiversityThenFitnessComparator.h>
+00030 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00031 #include <diversity/moeoDiversityAssignment.h>
+00032 #include <diversity/moeoDummyDiversityAssignment.h>
+00033 #include <diversity/moeoFrontByFrontCrowdingDiversityAssignment.h>
+00034 #include <diversity/moeoFrontByFrontSharingDiversityAssignment.h>
+00035 #include <fitness/moeoDummyFitnessAssignment.h>
+00036 #include <fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h>
+00037 #include <fitness/moeoFastNonDominatedSortingFitnessAssignment.h>
+00038 #include <fitness/moeoFitnessAssignment.h>
+00039 #include <metric/moeoAdditiveEpsilonBinaryMetric.h>
+00040 #include <metric/moeoHypervolumeBinaryMetric.h>
+00041 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00042 #include <replacement/moeoElitistReplacement.h>
+00043 #include <replacement/moeoEnvironmentalReplacement.h>
+00044 #include <replacement/moeoGenerationalReplacement.h>
+00045 #include <replacement/moeoReplacement.h>
+00046 #include <selection/moeoDetTournamentSelect.h>
+00047 #include <selection/moeoRandomSelect.h>
+00048 #include <selection/moeoStochTournamentSelect.h>
+00049 #include <selection/moeoSelectOne.h>
+00050 #include <selection/moeoSelectors.h>
+00051 
+00052 
+00062 template < class MOEOT >
+00063 moeoEA < MOEOT > & do_make_ea_moeo(eoParser & _parser, eoState & _state, eoEvalFunc < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoGenOp < MOEOT > & _op, moeoArchive < MOEOT > & _archive)
+00064 {
+00065 
+00066     /* the objective vector type */
+00067     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00068 
+00069 
+00070     /* the fitness assignment strategy */
+00071     std::string & fitnessParam = _parser.createParam(std::string("FastNonDominatedSorting"), "fitness",
+00072                             "Fitness assignment scheme: Dummy, FastNonDominatedSorting or IndicatorBased", 'F',
+00073                             "Evolution Engine").value();
+00074     std::string & indicatorParam = _parser.createParam(std::string("Epsilon"), "indicator",
+00075                               "Binary indicator for IndicatorBased: Epsilon, Hypervolume", 'i',
+00076                               "Evolution Engine").value();
+00077     double rho = _parser.createParam(1.1, "rho", "reference point for the hypervolume indicator", 'r',
+00078                                      "Evolution Engine").value();
+00079     double kappa = _parser.createParam(0.05, "kappa", "Scaling factor kappa for IndicatorBased", 'k',
+00080                                        "Evolution Engine").value();
+00081     moeoFitnessAssignment < MOEOT > * fitnessAssignment;
+00082     if (fitnessParam == std::string("Dummy"))
+00083     {
+00084         fitnessAssignment = new moeoDummyFitnessAssignment < MOEOT> ();
+00085     }
+00086     else if (fitnessParam == std::string("FastNonDominatedSorting"))
+00087     {
+00088         fitnessAssignment = new moeoFastNonDominatedSortingFitnessAssignment < MOEOT> ();
+00089     }
+00090     else if (fitnessParam == std::string("IndicatorBased"))
+00091     {
+00092         // metric
+00093         moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > *metric;
+00094         if (indicatorParam == std::string("Epsilon"))
+00095         {
+00096             metric = new moeoAdditiveEpsilonBinaryMetric < ObjectiveVector >;
+00097         }
+00098         else if (indicatorParam == std::string("Hypervolume"))
+00099         {
+00100             metric = new moeoHypervolumeBinaryMetric < ObjectiveVector > (rho);
+00101         }
+00102         else
+00103         {
+00104             std::string stmp = std::string("Invalid binary quality indicator: ") + indicatorParam;
+00105             throw std::runtime_error(stmp.c_str());
+00106         }
+00107         fitnessAssignment = new moeoExpBinaryIndicatorBasedFitnessAssignment < MOEOT > (*metric, kappa);
+00108     }
+00109     else
+00110     {
+00111         std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam;
+00112         throw std::runtime_error(stmp.c_str());
+00113     }
+00114     _state.storeFunctor(fitnessAssignment);
+00115 
+00116 
+00117     /* the diversity assignment strategy */
+00118     eoValueParam<eoParamParamType> & diversityParam = _parser.createParam(eoParamParamType("Dummy"), "diversity",
+00119             "Diversity assignment scheme: Dummy, Sharing(nicheSize) or Crowding", 'D', "Evolution Engine");
+00120     eoParamParamType & diversityParamValue = diversityParam.value();
+00121     moeoDiversityAssignment < MOEOT > * diversityAssignment;
+00122     if (diversityParamValue.first == std::string("Dummy"))
+00123     {
+00124         diversityAssignment = new moeoDummyDiversityAssignment < MOEOT> ();
+00125     }
+00126     else if (diversityParamValue.first == std::string("Sharing"))
+00127     {
+00128         double nicheSize;
+00129         if (!diversityParamValue.second.size())   // no parameter added
+00130         {
+00131             std::cerr << "WARNING, no niche size given for Sharing, using 0.5" << std::endl;
+00132             nicheSize = 0.5;
+00133             diversityParamValue.second.push_back(std::string("0.5"));
+00134         }
+00135         else
+00136         {
+00137             nicheSize = atoi(diversityParamValue.second[0].c_str());
+00138         }
+00139         diversityAssignment = new moeoFrontByFrontSharingDiversityAssignment < MOEOT> (nicheSize);
+00140     }
+00141     else if (diversityParamValue.first == std::string("Crowding"))
+00142     {
+00143         diversityAssignment = new moeoFrontByFrontCrowdingDiversityAssignment < MOEOT> ();
+00144     }
+00145     else
+00146     {
+00147         std::string stmp = std::string("Invalid diversity assignment strategy: ") + diversityParamValue.first;
+00148         throw std::runtime_error(stmp.c_str());
+00149     }
+00150     _state.storeFunctor(diversityAssignment);
+00151 
+00152 
+00153     /* the comparator strategy */
+00154     std::string & comparatorParam = _parser.createParam(std::string("FitnessThenDiversity"), "comparator",
+00155                                "Comparator scheme: FitnessThenDiversity, DiversityThenFitness or Aggregative", 'C', "Evolution Engine").value();
+00156     moeoComparator < MOEOT > * comparator;
+00157     if (comparatorParam == std::string("FitnessThenDiversity"))
+00158     {
+00159         comparator = new moeoFitnessThenDiversityComparator < MOEOT> ();
+00160     }
+00161     else if (comparatorParam == std::string("DiversityThenFitness"))
+00162     {
+00163         comparator = new moeoDiversityThenFitnessComparator < MOEOT> ();
+00164     }
+00165     else if (comparatorParam == std::string("Aggregative"))
+00166     {
+00167         comparator = new moeoAggregativeComparator < MOEOT> ();
+00168     }
+00169     else
+00170     {
+00171         std::string stmp = std::string("Invalid comparator strategy: ") + comparatorParam;
+00172         throw std::runtime_error(stmp.c_str());
+00173     }
+00174     _state.storeFunctor(comparator);
+00175 
+00176 
+00177     /* the selection strategy */
+00178     eoValueParam < eoParamParamType > & selectionParam = _parser.createParam(eoParamParamType("DetTour(2)"), "selection",
+00179             "Selection scheme: DetTour(T), StochTour(t) or Random", 'S', "Evolution Engine");
+00180     eoParamParamType & ppSelect = selectionParam.value();
+00181     moeoSelectOne < MOEOT > * select;
+00182     if (ppSelect.first == std::string("DetTour"))
+00183     {
+00184         unsigned int tSize;
+00185         if (!ppSelect.second.size()) // no parameter added
+00186         {
+00187             std::cerr << "WARNING, no parameter passed to DetTour, using 2" << std::endl;
+00188             tSize = 2;
+00189             // put back 2 in parameter for consistency (and status file)
+00190             ppSelect.second.push_back(std::string("2"));
+00191         }
+00192         else // parameter passed by user as DetTour(T)
+00193         {
+00194             tSize = atoi(ppSelect.second[0].c_str());
+00195         }
+00196         select = new moeoDetTournamentSelect < MOEOT > (*comparator, tSize);
+00197     }
+00198     else if (ppSelect.first == std::string("StochTour"))
+00199     {
+00200         double tRate;
+00201         if (!ppSelect.second.size()) // no parameter added
+00202         {
+00203             std::cerr << "WARNING, no parameter passed to StochTour, using 1" << std::endl;
+00204             tRate = 1;
+00205             // put back 1 in parameter for consistency (and status file)
+00206             ppSelect.second.push_back(std::string("1"));
+00207         }
+00208         else // parameter passed by user as StochTour(T)
+00209         {
+00210             tRate = atof(ppSelect.second[0].c_str());
+00211         }
+00212         select = new moeoStochTournamentSelect < MOEOT > (*comparator, tRate);
+00213     }
+00214     /*
+00215     else if (ppSelect.first == string("Roulette"))
+00216     {
+00217         // TO DO !
+00218         // ...
+00219     }
+00220     */
+00221     else if (ppSelect.first == std::string("Random"))
+00222     {
+00223         select = new moeoRandomSelect <MOEOT > ();
+00224     }
+00225     else
+00226     {
+00227         std::string stmp = std::string("Invalid selection strategy: ") + ppSelect.first;
+00228         throw std::runtime_error(stmp.c_str());
+00229     }
+00230     _state.storeFunctor(select);
+00231 
+00232 
+00233     /* the replacement strategy */
+00234     std::string & replacementParam = _parser.createParam(std::string("Elitist"), "replacement",
+00235                                 "Replacement scheme: Elitist, Environmental or Generational", 'R', "Evolution Engine").value();
+00236     moeoReplacement < MOEOT > * replace;
+00237     if (replacementParam == std::string("Elitist"))
+00238     {
+00239         replace = new moeoElitistReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator);
+00240     }
+00241     else if (replacementParam == std::string("Environmental"))
+00242     {
+00243         replace = new moeoEnvironmentalReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator);
+00244     }
+00245     else if (replacementParam == std::string("Generational"))
+00246     {
+00247         replace = new moeoGenerationalReplacement < MOEOT> ();
+00248     }
+00249     else
+00250     {
+00251         std::string stmp = std::string("Invalid replacement strategy: ") + replacementParam;
+00252         throw std::runtime_error(stmp.c_str());
+00253     }
+00254     _state.storeFunctor(replace);
+00255 
+00256 
+00257     /* the number of offspring  */
+00258     eoValueParam < eoHowMany > & offspringRateParam = _parser.createParam(eoHowMany(1.0), "nbOffspring",
+00259             "Number of offspring (percentage or absolute)", 'O', "Evolution Engine");
+00260 
+00261 
+00262     // the general breeder
+00263     eoGeneralBreeder < MOEOT > * breed = new eoGeneralBreeder < MOEOT > (*select, _op, offspringRateParam.value());
+00264     _state.storeFunctor(breed);
+00265     // the eoEasyEA
+00266     moeoEA < MOEOT > * algo = new moeoEasyEA < MOEOT > (_continue, _eval, *breed, *replace, *fitnessAssignment, *diversityAssignment);
+00267     _state.storeFunctor(algo);
+00268     return *algo;
+00269 
+00270 }
+00271 
+00272 #endif /*MAKE_EA_MOEO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html new file mode 100644 index 000000000..c34e2534e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAchievementFitnessAssignment_8h-source.html @@ -0,0 +1,135 @@ + + +ParadisEO-MOEO: moeoAchievementFitnessAssignment.h Source File + + + + +
+
+

moeoAchievementFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAchievementFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOACHIEVEMENTFITNESSASSIGNMENT_H_
+00014 #define MOEOACHIEVEMENTFITNESSASSIGNMENT_H_
+00015 
+00016 #include <vector>
+00017 #include <eoPop.h>
+00018 #include <fitness/moeoScalarFitnessAssignment.h>
+00019 
+00023 template < class MOEOT >
+00024 class moeoAchievementFitnessAssignment : public moeoScalarFitnessAssignment < MOEOT >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00038     moeoAchievementFitnessAssignment(ObjectiveVector & _reference, std::vector < double > & _lambdas, double _spn=0.0001) : reference(_reference), lambdas(_lambdas), spn(_spn)
+00039     {
+00040         // consistency check
+00041         if ((spn < 0.0) || (spn > 1.0))
+00042         {
+00043             std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n";
+00044             spn = 0.0001;
+00045         }
+00046     }
+00047 
+00048 
+00054     moeoAchievementFitnessAssignment(ObjectiveVector & _reference, double _spn=0.0001) : reference(_reference), spn(_spn)
+00055     {
+00056         // compute the default values for lambdas
+00057         lambdas  = std::vector < double > (ObjectiveVector::nObjectives());
+00058         for (unsigned int i=0 ; i<lambdas.size(); i++)
+00059         {
+00060             lambdas[i] = 1.0 / ObjectiveVector::nObjectives();
+00061         }
+00062         // consistency check
+00063         if ((spn < 0.0) || (spn > 1.0))
+00064         {
+00065             std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n";
+00066             spn = 0.0001;
+00067         }
+00068     }
+00069 
+00070 
+00075     virtual void operator()(eoPop < MOEOT > & _pop)
+00076     {
+00077         for (unsigned int i=0; i<_pop.size() ; i++)
+00078         {
+00079             compute(_pop[i]);
+00080         }
+00081     }
+00082 
+00083 
+00089     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00090     {
+00091         // nothing to do ;-)
+00092     }
+00093 
+00094 
+00099     void setReference(const ObjectiveVector & _reference)
+00100     {
+00101         reference = _reference;
+00102     }
+00103 
+00104 
+00105 private:
+00106 
+00108     ObjectiveVector reference;
+00110     std::vector < double > lambdas;
+00112     double spn;
+00113 
+00114 
+00118     double inf() const
+00119     {
+00120         return std::numeric_limits<double>::max();
+00121     }
+00122 
+00123 
+00128     void compute(MOEOT & _moeo)
+00129     {
+00130         unsigned int nobj = MOEOT::ObjectiveVector::nObjectives();
+00131         double temp;
+00132         double min = inf();
+00133         double sum = 0;
+00134         for (unsigned int obj=0; obj<nobj; obj++)
+00135         {
+00136             temp = lambdas[obj] * (reference[obj] - _moeo.objectiveVector()[obj]);
+00137             min = std::min(min, temp);
+00138             sum += temp;
+00139         }
+00140         _moeo.fitness(min + spn*sum);
+00141     }
+00142 
+00143 };
+00144 
+00145 #endif /*MOEOACHIEVEMENTFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html new file mode 100644 index 000000000..8e9205d5d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAdditiveEpsilonBinaryMetric_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-MOEO: moeoAdditiveEpsilonBinaryMetric.h Source File + + + + +
+
+

moeoAdditiveEpsilonBinaryMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAdditiveEpsilonBinaryMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOADDITIVEEPSILONBINARYMETRIC_H_
+00014 #define MOEOADDITIVEEPSILONBINARYMETRIC_H_
+00015 
+00016 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00017 
+00023 template < class ObjectiveVector >
+00024 class moeoAdditiveEpsilonBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double >
+00025 {
+00026 public:
+00027 
+00035     double operator()(const ObjectiveVector & _o1, const ObjectiveVector & _o2)
+00036     {
+00037         // computation of the epsilon value for the first objective
+00038         double result = epsilon(_o1, _o2, 0);
+00039         // computation of the epsilon value for the other objectives
+00040         double tmp;
+00041         for (unsigned int i=1; i<ObjectiveVector::Traits::nObjectives(); i++)
+00042         {
+00043             tmp = epsilon(_o1, _o2, i);
+00044             result = std::max(result, tmp);
+00045         }
+00046         // returns the maximum epsilon value
+00047         return result;
+00048     }
+00049 
+00050 
+00051 private:
+00052 
+00054     using moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > :: bounds;
+00055 
+00056 
+00064     double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj)
+00065     {
+00066         double result;
+00067         // if the objective _obj have to be minimized
+00068         if (ObjectiveVector::Traits::minimizing(_obj))
+00069         {
+00070             // _o1[_obj] - _o2[_obj]
+00071             result = ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() );
+00072         }
+00073         // if the objective _obj have to be maximized
+00074         else
+00075         {
+00076             // _o2[_obj] - _o1[_obj]
+00077             result = ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() );
+00078         }
+00079         return result;
+00080     }
+00081 
+00082 };
+00083 
+00084 #endif /*MOEOADDITIVEEPSILONBINARYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html new file mode 100644 index 000000000..9048c4897 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAggregativeComparator_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-MOEO: moeoAggregativeComparator.h Source File + + + + +
+
+

moeoAggregativeComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAggregativeComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOAGGREGATIVECOMPARATOR_H_
+00014 #define MOEOAGGREGATIVECOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoAggregativeComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00031     moeoAggregativeComparator(double _weightFitness = 1.0, double _weightDiversity = 1.0) : weightFitness(_weightFitness), weightDiversity(_weightDiversity)
+00032     {}
+00033 
+00034 
+00040     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00041     {
+00042         return ( weightFitness * _moeo1.fitness() + weightDiversity * _moeo1.diversity() ) < ( weightFitness * _moeo2.fitness() + weightDiversity * _moeo2.diversity() );
+00043     }
+00044 
+00045 
+00046 private:
+00047 
+00049     double weightFitness;
+00051     double weightDiversity;
+00052 
+00053 };
+00054 
+00055 #endif /*MOEOAGGREGATIVECOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html new file mode 100644 index 000000000..fe3facd94 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoAlgo_8h-source.html @@ -0,0 +1,46 @@ + + +ParadisEO-MOEO: moeoAlgo.h Source File + + + + +
+
+

moeoAlgo.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoAlgo.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOALGO_H_
+00014 #define MOEOALGO_H_
+00015 
+00019 class moeoAlgo {};
+00020 
+00021 #endif /*MOEOALGO_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html new file mode 100644 index 000000000..e33603700 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchiveObjectiveVectorSavingUpdater_8h-source.html @@ -0,0 +1,104 @@ + + +ParadisEO-MOEO: moeoArchiveObjectiveVectorSavingUpdater.h Source File + + + + +
+
+

moeoArchiveObjectiveVectorSavingUpdater.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoArchiveObjectiveVectorSavingUpdater.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_
+00014 #define MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_
+00015 
+00016 #include <fstream>
+00017 #include <string>
+00018 #include <eoPop.h>
+00019 #include <utils/eoUpdater.h>
+00020 #include <archive/moeoArchive.h>
+00021 
+00022 #define MAX_BUFFER_SIZE 1000
+00023 
+00027 template < class MOEOT >
+00028 class moeoArchiveObjectiveVectorSavingUpdater : public eoUpdater
+00029 {
+00030 public:
+00031 
+00039     moeoArchiveObjectiveVectorSavingUpdater (moeoArchive<MOEOT> & _arch, const std::string & _filename, bool _count = false, int _id = -1) :
+00040             arch(_arch), filename(_filename), count(_count), counter(0), id(_id)
+00041     {}
+00042 
+00043 
+00047     void operator()() {
+00048         char buff[MAX_BUFFER_SIZE];
+00049         if (count)
+00050         {
+00051             if (id == -1)
+00052             {
+00053                 sprintf (buff, "%s.%u", filename.c_str(), counter ++);
+00054             }
+00055             else
+00056             {
+00057                 sprintf (buff, "%s.%u.%u", filename.c_str(), id, counter ++);
+00058             }
+00059         }
+00060         else
+00061         {
+00062             if (id == -1)
+00063             {
+00064                 sprintf (buff, "%s", filename.c_str());
+00065             }
+00066             else
+00067             {
+00068                 sprintf (buff, "%s.%u", filename.c_str(), id);
+00069             }
+00070             counter ++;
+00071         }
+00072         std::ofstream f(buff);
+00073         for (unsigned int i = 0; i < arch.size (); i++)
+00074             f << arch[i].objectiveVector() << std::endl;
+00075         f.close ();
+00076     }
+00077 
+00078 
+00079 private:
+00080 
+00082     moeoArchive<MOEOT> & arch;
+00084     std::string filename;
+00086     bool count;
+00088     unsigned int counter;
+00090     int id;
+00091 
+00092 };
+00093 
+00094 #endif /*MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html new file mode 100644 index 000000000..0919e6b35 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchiveUpdater_8h-source.html @@ -0,0 +1,69 @@ + + +ParadisEO-MOEO: moeoArchiveUpdater.h Source File + + + + +
+
+

moeoArchiveUpdater.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoArchiveUpdater.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOARCHIVEUPDATER_H_
+00014 #define MOEOARCHIVEUPDATER_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <utils/eoUpdater.h>
+00018 #include <archive/moeoArchive.h>
+00019 
+00023 template < class MOEOT >
+00024 class moeoArchiveUpdater : public eoUpdater
+00025 {
+00026 public:
+00027 
+00033     moeoArchiveUpdater(moeoArchive < MOEOT > & _arch, const eoPop < MOEOT > & _pop) : arch(_arch), pop(_pop)
+00034     {}
+00035 
+00036 
+00040     void operator()() {
+00041         arch.update(pop);
+00042     }
+00043 
+00044 
+00045 private:
+00046 
+00048     moeoArchive < MOEOT > & arch;
+00050     const eoPop < MOEOT > & pop;
+00051 
+00052 };
+00053 
+00054 #endif /*MOEOARCHIVEUPDATER_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchive_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchive_8h-source.html new file mode 100644 index 000000000..8a2e2a597 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoArchive_8h-source.html @@ -0,0 +1,172 @@ + + +ParadisEO-MOEO: moeoArchive.h Source File + + + + +
+
+

moeoArchive.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoArchive.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOARCHIVE_H_
+00014 #define MOEOARCHIVE_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <comparator/moeoObjectiveVectorComparator.h>
+00018 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00019 
+00023 template < class MOEOT >
+00024 class moeoArchive : public eoPop < MOEOT >
+00025 {
+00026 public:
+00027 
+00028     using eoPop < MOEOT > :: size;
+00029     using eoPop < MOEOT > :: operator[];
+00030     using eoPop < MOEOT > :: back;
+00031     using eoPop < MOEOT > :: pop_back;
+00032 
+00033 
+00037     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00038 
+00039 
+00044     moeoArchive() : eoPop < MOEOT >(), comparator(paretoComparator)
+00045     {}
+00046 
+00047 
+00052     moeoArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : eoPop < MOEOT >(), comparator(_comparator)
+00053     {}
+00054 
+00055 
+00060     bool dominates (const ObjectiveVector & _objectiveVector) const
+00061     {
+00062         for (unsigned int i = 0; i<size(); i++)
+00063         {
+00064             // if _objectiveVector is dominated by the ith individual of the archive...
+00065             if ( comparator(_objectiveVector, operator[](i).objectiveVector()) )
+00066             {
+00067                 return true;
+00068             }
+00069         }
+00070         return false;
+00071     }
+00072 
+00073 
+00078     bool contains (const ObjectiveVector & _objectiveVector) const
+00079     {
+00080         for (unsigned int i = 0; i<size(); i++)
+00081         {
+00082             if (operator[](i).objectiveVector() == _objectiveVector)
+00083             {
+00084                 return true;
+00085             }
+00086         }
+00087         return false;
+00088     }
+00089 
+00090 
+00095     void update (const MOEOT & _moeo)
+00096     {
+00097         // first step: removing the dominated solutions from the archive
+00098         for (unsigned int j=0; j<size();)
+00099         {
+00100             // if the jth solution contained in the archive is dominated by _moeo
+00101             if ( comparator(operator[](j).objectiveVector(), _moeo.objectiveVector()) )
+00102             {
+00103                 operator[](j) = back();
+00104                 pop_back();
+00105             }
+00106             else if (_moeo.objectiveVector() == operator[](j).objectiveVector())
+00107             {
+00108                 operator[](j) = back();
+00109                 pop_back();
+00110             }
+00111             else
+00112             {
+00113                 j++;
+00114             }
+00115         }
+00116         // second step: is _moeo dominated?
+00117         bool dom = false;
+00118         for (unsigned int j=0; j<size(); j++)
+00119         {
+00120             // if _moeo is dominated by the jth solution contained in the archive
+00121             if ( comparator(_moeo.objectiveVector(), operator[](j).objectiveVector()) )
+00122             {
+00123                 dom = true;
+00124                 break;
+00125             }
+00126         }
+00127         if (!dom)
+00128         {
+00129             push_back(_moeo);
+00130         }
+00131     }
+00132 
+00133 
+00138     void update (const eoPop < MOEOT > & _pop)
+00139     {
+00140         for (unsigned int i=0; i<_pop.size(); i++)
+00141         {
+00142             update(_pop[i]);
+00143         }
+00144     }
+00145 
+00146 
+00151     bool equals (const moeoArchive < MOEOT > & _arch)
+00152     {
+00153         for (unsigned int i=0; i<size(); i++)
+00154         {
+00155             if (! _arch.contains(operator[](i).objectiveVector()))
+00156             {
+00157                 return false;
+00158             }
+00159         }
+00160         for (unsigned int i=0; i<_arch.size() ; i++)
+00161         {
+00162             if (! contains(_arch[i].objectiveVector()))
+00163             {
+00164                 return false;
+00165             }
+00166         }
+00167         return true;
+00168     }
+00169 
+00170 
+00171 private:
+00172 
+00174     moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
+00176     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00177 
+00178 };
+00179 
+00180 #endif /*MOEOARCHIVE_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..19b8d4904 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBinaryIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoBinaryIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoBinaryIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoBinaryIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoBinaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html new file mode 100644 index 000000000..7c86a27ff --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBinaryMetricSavingUpdater_8h-source.html @@ -0,0 +1,98 @@ + + +ParadisEO-MOEO: moeoBinaryMetricSavingUpdater.h Source File + + + + +
+
+

moeoBinaryMetricSavingUpdater.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoBinaryMetricSavingUpdater.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOBINARYMETRICSAVINGUPDATER_H_
+00014 #define MOEOBINARYMETRICSAVINGUPDATER_H_
+00015 
+00016 #include <fstream>
+00017 #include <string>
+00018 #include <vector>
+00019 #include <eoPop.h>
+00020 #include <utils/eoUpdater.h>
+00021 #include <metric/moeoMetric.h>
+00022 
+00027 template < class MOEOT >
+00028 class moeoBinaryMetricSavingUpdater : public eoUpdater
+00029 {
+00030 public:
+00031 
+00033     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00034 
+00035 
+00042     moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > & _metric, const eoPop < MOEOT > & _pop, std::string _filename) :
+00043             metric(_metric), pop(_pop), filename(_filename), counter(1)
+00044     {}
+00045 
+00046 
+00050     void operator()() {
+00051         if (pop.size()) {
+00052             if (firstGen) {
+00053                 firstGen = false;
+00054             }
+00055             else {
+00056                 // creation of the two Pareto sets
+00057                 std::vector < ObjectiveVector > from;
+00058                 std::vector < ObjectiveVector > to;
+00059                 for (unsigned int i=0; i<pop.size(); i++)
+00060                     from.push_back(pop[i].objectiveVector());
+00061                 for (unsigned int i=0 ; i<oldPop.size(); i++)
+00062                     to.push_back(oldPop[i].objectiveVector());
+00063                 // writing the result into the file
+00064                 std::ofstream f (filename.c_str(), std::ios::app);
+00065                 f << counter++ << ' ' << metric(from,to) << std::endl;
+00066                 f.close();
+00067             }
+00068             oldPop = pop;
+00069         }
+00070     }
+00071 
+00072 
+00073 private:
+00074 
+00076     moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > & metric;
+00078     const eoPop < MOEOT > & pop;
+00080     eoPop< MOEOT > oldPop;
+00082     std::string filename;
+00084     bool firstGen;
+00086     unsigned int counter;
+00087 
+00088 };
+00089 
+00090 #endif /*MOEOBINARYMETRICSAVINGUPDATER_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html new file mode 100644 index 000000000..de5e8b4bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoBitVector_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-MOEO: moeoBitVector.h Source File + + + + +
+
+

moeoBitVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoBitVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOBITVECTOR_H_
+00014 #define MOEOBITVECTOR_H_
+00015 
+00016 #include <core/moeoVector.h>
+00017 
+00021 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity >
+00022 class moeoBitVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >
+00023 {
+00024 public:
+00025 
+00026     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: begin;
+00027     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: end;
+00028     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: resize;
+00029     using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: size;
+00030 
+00031 
+00037     moeoBitVector(unsigned int _size = 0, bool _value = false) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >(_size, _value)
+00038     {}
+00039 
+00040 
+00044     virtual std::string className() const
+00045     {
+00046         return "moeoBitVector";
+00047     }
+00048     
+00049     
+00054     virtual void printOn(std::ostream & _os) const
+00055     {
+00056         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os);
+00057         _os << ' ';
+00058         _os << size() << ' ';
+00059         std::copy(begin(), end(), std::ostream_iterator<bool>(_os));
+00060     }
+00061 
+00062 
+00067     virtual void readFrom(std::istream & _is)
+00068     {
+00069         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is);
+00070         unsigned int s;
+00071         _is >> s;
+00072         std::string bits;
+00073         _is >> bits;
+00074         if (_is)
+00075         {
+00076             resize(bits.size());
+00077             std::transform(bits.begin(), bits.end(), begin(), std::bind2nd(std::equal_to<char>(), '1'));
+00078         }
+00079     }
+00080 
+00081 };
+00082 
+00083 #endif /*MOEOBITVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html new file mode 100644 index 000000000..3593cea17 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCombinedLS_8h-source.html @@ -0,0 +1,76 @@ + + +ParadisEO-MOEO: moeoCombinedLS.h Source File + + + + +
+
+

moeoCombinedLS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoCombinedLS.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCOMBINEDLS_H_
+00014 #define MOEOCOMBINEDLS_H_
+00015 
+00016 #include <vector>
+00017 #include <algo/moeoLS.h>
+00018 #include <archive/moeoArchive.h>
+00019 
+00024 template < class MOEOT, class Type >
+00025 class moeoCombinedLS : public moeoLS < MOEOT, Type >
+00026 {
+00027 public:
+00028 
+00033     moeoCombinedLS(moeoLS < MOEOT, Type > & _first_mols)
+00034     {
+00035         combinedLS.push_back (& _first_mols);
+00036     }
+00037 
+00042     void add(moeoLS < MOEOT, Type > & _mols)
+00043     {
+00044         combinedLS.push_back(& _mols);
+00045     }
+00046 
+00053     void operator () (Type _type, moeoArchive < MOEOT > & _arch)
+00054     {
+00055         for (unsigned int i=0; i<combinedLS.size(); i++)
+00056             combinedLS[i] -> operator()(_type, _arch);
+00057     }
+00058 
+00059 
+00060 private:
+00061 
+00063     std::vector< moeoLS < MOEOT, Type > * >  combinedLS;
+00064 
+00065 };
+00066 
+00067 #endif /*MOEOCOMBINEDLS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoComparator_8h-source.html new file mode 100644 index 000000000..c498cc6d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoComparator_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoComparator.h Source File + + + + +
+
+

moeoComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCOMPARATOR_H_
+00014 #define MOEOCOMPARATOR_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoComparator : public eoBF < const MOEOT &, const MOEOT &, const bool > {};
+00023 
+00024 #endif /*MOEOCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html new file mode 100644 index 000000000..27eba87d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoContributionMetric_8h-source.html @@ -0,0 +1,110 @@ + + +ParadisEO-MOEO: moeoContributionMetric.h Source File + + + + +
+
+

moeoContributionMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoContributionMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCONTRIBUTIONMETRIC_H_
+00014 #define MOEOCONTRIBUTIONMETRIC_H_
+00015 
+00016 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00017 #include <metric/moeoMetric.h>
+00018 
+00023 template < class ObjectiveVector >
+00024 class moeoContributionMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double >
+00025 {
+00026 public:
+00027 
+00033     double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00034         unsigned int c  = card_C(_set1, _set2);
+00035         unsigned int w1 = card_W(_set1, _set2);
+00036         unsigned int n1 = card_N(_set1, _set2);
+00037         unsigned int w2 = card_W(_set2, _set1);
+00038         unsigned int n2 = card_N(_set2, _set1);
+00039         return (double) (c / 2.0 + w1 + n1) / (c + w1 + n1 + w2 + n2);
+00040     }
+00041 
+00042 
+00043 private:
+00044 
+00046     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00047     
+00048     
+00054     unsigned int card_C (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00055         unsigned int c=0;
+00056         for (unsigned int i=0; i<_set1.size(); i++)
+00057             for (unsigned int j=0; j<_set2.size(); j++)
+00058                 if (_set1[i] == _set2[j]) {
+00059                     c++;
+00060                     break;
+00061                 }
+00062         return c;
+00063     }
+00064 
+00065 
+00071     unsigned int card_W (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00072         unsigned int w=0;
+00073         for (unsigned int i=0; i<_set1.size(); i++)
+00074             for (unsigned int j=0; j<_set2.size(); j++)
+00075                 if (paretoComparator(_set2[j], _set1[i]))
+00076                 {
+00077                     w++;
+00078                     break;
+00079                 }
+00080         return w;
+00081     }
+00082 
+00083 
+00089     unsigned int card_N (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00090         unsigned int n=0;
+00091         for (unsigned int i=0; i<_set1.size(); i++) {
+00092             bool domin_rel = false;
+00093             for (unsigned int j=0; j<_set2.size(); j++)
+00094                 if ( (paretoComparator(_set2[j], _set1[i])) || (paretoComparator(_set1[i], _set2[j])) )
+00095                 {
+00096                     domin_rel = true;
+00097                     break;
+00098                 }
+00099             if (! domin_rel)
+00100                 n++;
+00101         }
+00102         return n;
+00103     }
+00104 
+00105 };
+00106 
+00107 #endif /*MOEOCONTRIBUTIONMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html new file mode 100644 index 000000000..414d5cde9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoConvertPopToObjectiveVectors_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoConvertPopToObjectiveVectors.h Source File + + + + +
+
+

moeoConvertPopToObjectiveVectors.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoConvertPopToObjectiveVectors.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOPOPTOOBJECTIVEVECTORS_H_
+00014 #define MOEOPOPTOOBJECTIVEVECTORS_H_
+00015 
+00016 #include <vector>
+00017 #include <eoFunctor.h>
+00018 
+00022 template < class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector >
+00023 class moeoConvertPopToObjectiveVectors : public eoUF < const eoPop < MOEOT >, const std::vector < ObjectiveVector > >
+00024 {
+00025 public:
+00026 
+00031     const std::vector < ObjectiveVector > operator()(const eoPop < MOEOT > _pop)
+00032     {
+00033         std::vector < ObjectiveVector > result;
+00034         result.resize(_pop.size());
+00035         for (unsigned int i=0; i<_pop.size(); i++)
+00036         {
+00037             result.push_back(_pop[i].objectiveVector());
+00038         }
+00039         return result;
+00040     }
+00041 
+00042 };
+00043 
+00044 #endif /*MOEOPOPTOOBJECTIVEVECTORS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..2f176243d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCriterionBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoCriterionBasedFitnessAssignment.h Source File + + + + +
+
+

moeoCriterionBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoCriterionBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoCriterionBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..bb20ab276 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoCrowdingDiversityAssignment_8h-source.html @@ -0,0 +1,124 @@ + + +ParadisEO-MOEO: moeoCrowdingDiversityAssignment.h Source File + + + + +
+
+

moeoCrowdingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoCrowdingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOCROWDINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOCROWDINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <comparator/moeoOneObjectiveComparator.h>
+00018 #include <diversity/moeoDiversityAssignment.h>
+00019 
+00024 template < class MOEOT >
+00025 class moeoCrowdingDiversityAssignment : public moeoDiversityAssignment < MOEOT >
+00026 {
+00027 public:
+00028 
+00030     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00031 
+00032 
+00036     double inf() const
+00037     {
+00038         return std::numeric_limits<double>::max();
+00039     }
+00040 
+00041 
+00045     double tiny() const
+00046     {
+00047         return 1e-6;
+00048     }
+00049 
+00050 
+00055     void operator()(eoPop < MOEOT > & _pop)
+00056     {
+00057         if (_pop.size() <= 2)
+00058         {
+00059             for (unsigned int i=0; i<_pop.size(); i++)
+00060             {
+00061                 _pop[i].diversity(inf());
+00062             }
+00063         }
+00064         else
+00065         {
+00066             setDistances(_pop);
+00067         }
+00068     }
+00069 
+00070 
+00078     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00079     {
+00080         std::cout << "WARNING : updateByDeleting not implemented in moeoCrowdingDiversityAssignment" << std::endl;
+00081     }
+00082 
+00083 
+00084 protected:
+00085 
+00090     virtual void setDistances (eoPop < MOEOT > & _pop)
+00091     {
+00092         double min, max, distance;
+00093         unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives();
+00094         // set diversity to 0
+00095         for (unsigned int i=0; i<_pop.size(); i++)
+00096         {
+00097             _pop[i].diversity(0);
+00098         }
+00099         // for each objective
+00100         for (unsigned int obj=0; obj<nObjectives; obj++)
+00101         {
+00102             // comparator
+00103             moeoOneObjectiveComparator < MOEOT > objComp(obj);
+00104             // sort
+00105             std::sort(_pop.begin(), _pop.end(), objComp);
+00106             // min & max
+00107             min = _pop[0].objectiveVector()[obj];
+00108             max = _pop[_pop.size()-1].objectiveVector()[obj];
+00109             // set the diversity value to infiny for min and max
+00110             _pop[0].diversity(inf());
+00111             _pop[_pop.size()-1].diversity(inf());
+00112             for (unsigned int i=1; i<_pop.size()-1; i++)
+00113             {
+00114                 distance = (_pop[i+1].objectiveVector()[obj] - _pop[i-1].objectiveVector()[obj]) / (max-min);
+00115                 _pop[i].diversity(_pop[i].diversity() + distance);
+00116             }
+00117         }
+00118     }
+00119 
+00120 };
+00121 
+00122 #endif /*MOEOCROWDINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html new file mode 100644 index 000000000..32ddd38f1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDetTournamentSelect_8h-source.html @@ -0,0 +1,92 @@ + + +ParadisEO-MOEO: moeoDetTournamentSelect.h Source File + + + + +
+
+

moeoDetTournamentSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDetTournamentSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODETTOURNAMENTSELECT_H_
+00014 #define MOEODETTOURNAMENTSELECT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <selection/moeoSelectOne.h>
+00019 #include <selection/moeoSelectors.h>
+00020 
+00024 template < class MOEOT > class moeoDetTournamentSelect:public moeoSelectOne < MOEOT >
+00025 {
+00026 public:
+00027 
+00033     moeoDetTournamentSelect (moeoComparator < MOEOT > & _comparator, unsigned int _tSize = 2) : comparator (_comparator), tSize (_tSize)
+00034     {
+00035         // consistency check
+00036         if (tSize < 2)
+00037         {
+00038             std::
+00039             cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n";
+00040             tSize = 2;
+00041         }
+00042     }
+00043 
+00044 
+00049     moeoDetTournamentSelect (unsigned int _tSize = 2) : comparator (defaultComparator), tSize (_tSize)
+00050     {
+00051         // consistency check
+00052         if (tSize < 2)
+00053         {
+00054             std::
+00055             cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n";
+00056             tSize = 2;
+00057         }
+00058     }
+00059 
+00060 
+00065     const MOEOT & operator() (const eoPop < MOEOT > &_pop)
+00066     {
+00067         // use the selector
+00068         return mo_deterministic_tournament (_pop, tSize, comparator);
+00069     }
+00070 
+00071 
+00072 protected:
+00073 
+00075     moeoComparator < MOEOT > & comparator;
+00077     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00079     unsigned int tSize;
+00080 
+00081 };
+00082 
+00083 #endif /*MOEODETTOURNAMENTSELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html new file mode 100644 index 000000000..4b704163f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDistanceMatrix_8h-source.html @@ -0,0 +1,91 @@ + + +ParadisEO-MOEO: moeoDistanceMatrix.h Source File + + + + +
+
+

moeoDistanceMatrix.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDistanceMatrix.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODISTANCEMATRIX_H_
+00014 #define MOEODISTANCEMATRIX_H_
+00015 
+00016 #include <vector>
+00017 #include <eoFunctor.h>
+00018 #include <distance/moeoDistance.h>
+00019 
+00023 template < class MOEOT , class Type >
+00024 class moeoDistanceMatrix : public eoUF < const eoPop < MOEOT > &, void > , public std::vector< std::vector < Type > >
+00025 {
+00026 public:
+00027 
+00028     using std::vector< std::vector < Type > > :: size;
+00029     using std::vector< std::vector < Type > > :: operator[];
+00030 
+00031 
+00037     moeoDistanceMatrix (unsigned int _size, moeoDistance < MOEOT , Type > & _distance) : distance(_distance)
+00038     {
+00039         this->resize(_size);
+00040         for (unsigned int i=0; i<_size; i++)
+00041         {
+00042             this->operator[](i).resize(_size);
+00043         }
+00044     }
+00045 
+00046 
+00051     void operator()(const eoPop < MOEOT > & _pop)
+00052     {
+00053         // 1 - setup the bounds (if necessary)
+00054         distance.setup(_pop);
+00055         // 2 - compute distances
+00056         this->operator[](0).operator[](0) = Type();
+00057         for (unsigned int i=0; i<size(); i++)
+00058         {
+00059             this->operator[](i).operator[](i) = Type();
+00060             for (unsigned int j=0; j<i; j++)
+00061             {
+00062                 this->operator[](i).operator[](j) = distance(_pop[i], _pop[j]);
+00063                 this->operator[](j).operator[](i) = this->operator[](i).operator[](j);
+00064             }
+00065         }
+00066     }
+00067 
+00068 
+00069 private:
+00070 
+00072     moeoDistance < MOEOT , Type > & distance;
+00073 
+00074 };
+00075 
+00076 #endif /*MOEODISTANCEMATRIX_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDistance_8h-source.html new file mode 100644 index 000000000..528d31801 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDistance_8h-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-MOEO: moeoDistance.h Source File + + + + +
+
+

moeoDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODISTANCE_H_
+00014 #define MOEODISTANCE_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 
+00021 template < class MOEOT , class Type >
+00022 class moeoDistance : public eoBF < const MOEOT &, const MOEOT &, const Type >
+00023 {
+00024 public:
+00025 
+00030     virtual void setup(const eoPop < MOEOT > & _pop)
+00031     {}
+00032 
+00033 
+00040     virtual void setup(double _min, double _max, unsigned int _obj)
+00041     {}
+00042 
+00043 
+00049     virtual void setup(eoRealInterval _realInterval, unsigned int _obj)
+00050     {}
+00051 
+00052 };
+00053 
+00054 #endif /*MOEODISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html new file mode 100644 index 000000000..a20621a4e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDiversityAssignment_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoDiversityAssignment.h Source File + + + + +
+
+

moeoDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODIVERSITYASSIGNMENT_H_
+00014 #define MOEODIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 #include <eoPop.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoDiversityAssignment : public eoUF < eoPop < MOEOT > &, void >
+00024 {
+00025 public:
+00026 
+00028     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00029 
+00030 
+00036     virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0;
+00037 
+00038 
+00044     void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo)
+00045     {
+00046         updateByDeleting(_pop, _moeo.objectiveVector());
+00047     }
+00048 
+00049 };
+00050 
+00051 #endif /*MOEODIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html new file mode 100644 index 000000000..645c33ca7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDiversityThenFitnessComparator_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoDiversityThenFitnessComparator.h Source File + + + + +
+
+

moeoDiversityThenFitnessComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDiversityThenFitnessComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODIVERSITYTHENFITNESSCOMPARATOR_H_
+00014 #define MOEODIVERSITYTHENFITNESSCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoDiversityThenFitnessComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00032     {
+00033         if (_moeo1.diversity() == _moeo2.diversity())
+00034         {
+00035             return _moeo1.fitness() < _moeo2.fitness();
+00036         }
+00037         else
+00038         {
+00039             return _moeo1.diversity() < _moeo2.diversity();
+00040         }
+00041     }
+00042 
+00043 };
+00044 
+00045 #endif /*MOEODIVERSITYTHENFITNESSCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html new file mode 100644 index 000000000..f0b3cb2b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDummyDiversityAssignment_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoDummyDiversityAssignment.h Source File + + + + +
+
+

moeoDummyDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDummyDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODUMMYDIVERSITYASSIGNMENT_H_
+00014 #define MOEODUMMYDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include<diversity/moeoDiversityAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoDummyDiversityAssignment : public moeoDiversityAssignment < MOEOT >
+00023 {
+00024 public:
+00025 
+00027     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00028 
+00029 
+00034     void operator () (eoPop < MOEOT > & _pop)
+00035     {
+00036         for (unsigned int idx = 0; idx<_pop.size (); idx++)
+00037         {
+00038             if (_pop[idx].invalidDiversity())
+00039             {
+00040                 // set the diversity to 0
+00041                 _pop[idx].diversity(0.0);
+00042             }
+00043         }
+00044     }
+00045 
+00046 
+00052     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00053     {
+00054         // nothing to do...  ;-)
+00055     }
+00056 
+00057 };
+00058 
+00059 #endif /*MOEODUMMYDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html new file mode 100644 index 000000000..ea85bf4e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoDummyFitnessAssignment_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoDummyFitnessAssignment.h Source File + + + + +
+
+

moeoDummyFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoDummyFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEODUMMYFITNESSASSIGNMENT_H_
+00014 #define MOEODUMMYFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoDummyFitnessAssignment : public moeoFitnessAssignment < MOEOT >
+00023 {
+00024 public:
+00025 
+00027     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00028 
+00029 
+00034     void operator () (eoPop < MOEOT > & _pop)
+00035     {
+00036         for (unsigned int idx = 0; idx<_pop.size (); idx++)
+00037         {
+00038             if (_pop[idx].invalidFitness())
+00039             {
+00040                 // set the diversity to 0
+00041                 _pop[idx].fitness(0.0);
+00042             }
+00043         }
+00044     }
+00045 
+00046 
+00052     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00053     {
+00054         // nothing to do...  ;-)
+00055     }
+00056 
+00057 };
+00058 
+00059 #endif /*MOEODUMMYFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEA_8h-source.html new file mode 100644 index 000000000..1059080cd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEA_8h-source.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: moeoEA.h Source File + + + + +
+
+

moeoEA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEA_H_
+00014 #define MOEOEA_H_
+00015 
+00016 #include <eoAlgo.h>
+00017 #include <algo/moeoAlgo.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoEA : public moeoAlgo, public eoAlgo < MOEOT > {};
+00024 
+00025 #endif /*MOEOEA_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html new file mode 100644 index 000000000..e6408d9a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEasyEA_8h-source.html @@ -0,0 +1,169 @@ + + +ParadisEO-MOEO: moeoEasyEA.h Source File + + + + +
+
+

moeoEasyEA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEasyEA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef _MOEOEASYEA_H
+00014 #define _MOEOEASYEA_H
+00015 
+00016 #include <apply.h>
+00017 #include <eoBreed.h>
+00018 #include <eoContinue.h>
+00019 #include <eoMergeReduce.h>
+00020 #include <eoPopEvalFunc.h>
+00021 #include <eoSelect.h>
+00022 #include <eoTransform.h>
+00023 #include <algo/moeoEA.h>
+00024 #include <diversity/moeoDiversityAssignment.h>
+00025 #include <diversity/moeoDummyDiversityAssignment.h>
+00026 #include <fitness/moeoFitnessAssignment.h>
+00027 #include <replacement/moeoReplacement.h>
+00028 
+00032 template < class MOEOT >
+00033 class moeoEasyEA: public moeoEA < MOEOT >
+00034 {
+00035 public:
+00036 
+00047     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace,
+00048                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00049             :
+00050             continuator(_continuator), eval (_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace),
+00051             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00052     {}
+00053 
+00054 
+00065     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoPopEvalFunc < MOEOT > & _popEval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace,
+00066                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00067             :
+00068             continuator(_continuator), eval (dummyEval), loopEval(dummyEval), popEval(_popEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace),
+00069             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00070     {}
+00071 
+00072 
+00084     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce,
+00085                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00086             :
+00087             continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(_merge,_reduce), replace(mergeReduce),
+00088             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00089     {}
+00090 
+00091 
+00103     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, moeoReplacement < MOEOT > & _replace,
+00104                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00105             :
+00106             continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(dummyMerge, dummyReduce), replace(_replace),
+00107             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00108     {}
+00109 
+00110 
+00123     moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce,
+00124                moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false)
+00125             :
+00126             continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(_merge,_reduce), replace(mergeReduce),
+00127             fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection)
+00128     {}
+00129 
+00130 
+00135     virtual void operator()(eoPop < MOEOT > & _pop)
+00136     {
+00137         eoPop < MOEOT > offspring, empty_pop;
+00138         popEval(empty_pop, _pop); // A first eval of pop.
+00139         bool firstTime = true;
+00140         do
+00141         {
+00142             try
+00143             {
+00144                 unsigned int pSize = _pop.size();
+00145                 offspring.clear(); // new offspring
+00146                 // fitness and diversity assignment (if you want to or if it is the first generation)
+00147                 if (evalFitAndDivBeforeSelection || firstTime)
+00148                 {
+00149                     firstTime = false;
+00150                     fitnessEval(_pop);
+00151                     diversityEval(_pop);
+00152                 }
+00153                 breed(_pop, offspring);
+00154                 popEval(_pop, offspring); // eval of parents + offspring if necessary
+00155                 replace(_pop, offspring); // after replace, the new pop. is in _pop
+00156                 if (pSize > _pop.size())
+00157                 {
+00158                     throw std::runtime_error("Population shrinking!");
+00159                 }
+00160                 else if (pSize < _pop.size())
+00161                 {
+00162                     throw std::runtime_error("Population growing!");
+00163                 }
+00164             }
+00165             catch (std::exception& e)
+00166             {
+00167                 std::string s = e.what();
+00168                 s.append( " in moeoEasyEA");
+00169                 throw std::runtime_error( s );
+00170             }
+00171         } while (continuator(_pop));
+00172     }
+00173 
+00174 
+00175 protected:
+00176 
+00178     eoContinue < MOEOT > & continuator;
+00180     eoEvalFunc < MOEOT > & eval;
+00182     eoPopLoopEval < MOEOT > loopEval;
+00184     eoPopEvalFunc < MOEOT > & popEval;
+00186     eoSelectTransform < MOEOT > selectTransform;
+00188     eoBreed < MOEOT > & breed;
+00190     eoMergeReduce < MOEOT > mergeReduce;
+00192     moeoReplacement < MOEOT > & replace;
+00194     moeoFitnessAssignment < MOEOT > & fitnessEval;
+00196     moeoDiversityAssignment < MOEOT > & diversityEval;
+00198     bool evalFitAndDivBeforeSelection;
+00200     class eoDummyEval : public eoEvalFunc < MOEOT >
+00201     { public: 
+00202         void operator()(MOEOT &) {}} dummyEval;
+00204     class eoDummySelect : public eoSelect < MOEOT >
+00205     { public: 
+00206         void operator()(const eoPop < MOEOT > &, eoPop < MOEOT > &) {} } dummySelect;
+00208     class eoDummyTransform : public eoTransform < MOEOT >
+00209     { public: 
+00210         void operator()(eoPop < MOEOT > &) {} } dummyTransform;
+00212     eoNoElitism < MOEOT > dummyMerge;
+00214     eoTruncate < MOEOT > dummyReduce;
+00215 
+00216 };
+00217 
+00218 #endif /*MOEOEASYEA_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html new file mode 100644 index 000000000..4aafd6694 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoElitistReplacement_8h-source.html @@ -0,0 +1,114 @@ + + +ParadisEO-MOEO: moeoElitistReplacement.h Source File + + + + +
+
+

moeoElitistReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoElitistReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOELITISTREPLACEMENT_H_
+00014 #define MOEOELITISTREPLACEMENT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <diversity/moeoDiversityAssignment.h>
+00019 #include <diversity/moeoDummyDiversityAssignment.h>
+00020 #include <fitness/moeoFitnessAssignment.h>
+00021 #include <replacement/moeoReplacement.h>
+00022 
+00026 template < class MOEOT > class moeoElitistReplacement:public moeoReplacement < MOEOT >
+00027 {
+00028 public:
+00029 
+00036     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) :
+00037             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator)
+00038     {}
+00039 
+00040 
+00046     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) :
+00047             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator)
+00048     {}
+00049 
+00050 
+00056     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) :
+00057             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator)
+00058     {}
+00059 
+00060 
+00066     moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) :
+00067             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator)
+00068     {}
+00069 
+00070 
+00076     void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring)
+00077     {
+00078         unsigned int sz = _parents.size ();
+00079         // merges offspring and parents into a global population
+00080         _parents.reserve (_parents.size () + _offspring.size ());
+00081         std::copy (_offspring.begin (), _offspring.end (), back_inserter (_parents));
+00082         // evaluates the fitness and the diversity of this global population
+00083         fitnessAssignment (_parents);
+00084         diversityAssignment (_parents);
+00085         // sorts the whole population according to the comparator
+00086         std::sort(_parents.begin(), _parents.end(), comparator);
+00087         // finally, resize this global population
+00088         _parents.resize (sz);
+00089         // and clear the offspring population
+00090         _offspring.clear ();
+00091     }
+00092 
+00093 
+00094 protected:
+00095 
+00097     moeoFitnessAssignment < MOEOT > & fitnessAssignment;
+00099     moeoDiversityAssignment < MOEOT > & diversityAssignment;
+00101     moeoDummyDiversityAssignment < MOEOT > defaultDiversity;
+00103     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00105     class Cmp
+00106     {
+00107     public:
+00112         Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp)
+00113         {}
+00119         bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00120         {
+00121             return comp(_moeo2,_moeo1);
+00122         }
+00123     private:
+00125         moeoComparator < MOEOT > & comp;
+00126     } comparator;
+00127 
+00128 };
+00129 
+00130 #endif /*MOEOELITISTREPLACEMENT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html new file mode 100644 index 000000000..235811f6d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEntropyMetric_8h-source.html @@ -0,0 +1,174 @@ + + +ParadisEO-MOEO: moeoEntropyMetric.h Source File + + + + +
+
+

moeoEntropyMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEntropyMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOENTROPYMETRIC_H_
+00014 #define MOEOENTROPYMETRIC_H_
+00015 
+00016 #include <vector>
+00017 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00018 #include <metric/moeoMetric.h>
+00019 
+00024 template < class ObjectiveVector >
+00025 class moeoEntropyMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double >
+00026 {
+00027 public:
+00028 
+00034     double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) {
+00035         // normalization
+00036         std::vector< ObjectiveVector > set1 = _set1;
+00037         std::vector< ObjectiveVector > set2= _set2;
+00038         removeDominated (set1);
+00039         removeDominated (set2);
+00040         prenormalize (set1);
+00041         normalize (set1);
+00042         normalize (set2);
+00043 
+00044         // making of PO*
+00045         std::vector< ObjectiveVector > star; // rotf :-)
+00046         computeUnion (set1, set2, star);
+00047         removeDominated (star);
+00048 
+00049         // making of PO1 U PO*
+00050         std::vector< ObjectiveVector > union_set1_star; // rotf again ...
+00051         computeUnion (set1, star, union_set1_star);
+00052 
+00053         unsigned int C = union_set1_star.size();
+00054         float omega=0;
+00055         float entropy=0;
+00056 
+00057         for (unsigned int i=0 ; i<C ; i++) {
+00058             unsigned int N_i = howManyInNicheOf (union_set1_star, union_set1_star[i], star.size());
+00059             unsigned int n_i = howManyInNicheOf (set1, union_set1_star[i], star.size());
+00060             if (n_i > 0) {
+00061                 omega += 1.0 / N_i;
+00062                 entropy += (float) n_i / (N_i * C) * log (((float) n_i / C) / log (2.0));
+00063             }
+00064         }
+00065         entropy /= - log (omega);
+00066         entropy *= log (2.0);
+00067         return entropy;
+00068     }
+00069 
+00070 
+00071 private:
+00072 
+00074     std::vector<double> vect_min_val;
+00076     std::vector<double> vect_max_val;
+00078     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00079 
+00080 
+00085     void removeDominated(std::vector < ObjectiveVector > & _f) {
+00086         for (unsigned int i=0 ; i<_f.size(); i++) {
+00087             bool dom = false;
+00088             for (unsigned int j=0; j<_f.size(); j++)
+00089                 if (i != j && paretoComparator(_f[i],_f[j]))
+00090                 {
+00091                     dom = true;
+00092                     break;
+00093                 }
+00094             if (dom) {
+00095                 _f[i] = _f.back();
+00096                 _f.pop_back();
+00097                 i--;
+00098             }
+00099         }
+00100     }
+00101 
+00102 
+00107     void prenormalize (const std::vector< ObjectiveVector > & _f) {
+00108         vect_min_val.clear();
+00109         vect_max_val.clear();
+00110 
+00111         for (unsigned int i=0 ; i<ObjectiveVector::nObjectives(); i++) {
+00112             float min_val = _f.front()[i], max_val = min_val;
+00113             for (unsigned int j=1 ; j<_f.size(); j++) {
+00114                 if (_f[j][i] < min_val)
+00115                     min_val = _f[j][i];
+00116                 if (_f[j][i]>max_val)
+00117                     max_val = _f[j][i];
+00118             }
+00119             vect_min_val.push_back(min_val);
+00120             vect_max_val.push_back (max_val);
+00121         }
+00122     }
+00123 
+00124 
+00129     void normalize (std::vector< ObjectiveVector > & _f) {
+00130         for (unsigned int i=0 ; i<ObjectiveVector::nObjectives(); i++)
+00131             for (unsigned int j=0; j<_f.size(); j++)
+00132                 _f[j][i] = (_f[j][i] - vect_min_val[i]) / (vect_max_val[i] - vect_min_val[i]);
+00133     }
+00134 
+00135 
+00142     void computeUnion(const std::vector< ObjectiveVector > & _f1, const std::vector< ObjectiveVector > & _f2, std::vector< ObjectiveVector > & _f) {
+00143         _f = _f1 ;
+00144         for (unsigned int i=0; i<_f2.size(); i++) {
+00145             bool b = false;
+00146             for (unsigned int j=0; j<_f1.size(); j ++)
+00147                 if (_f1[j] == _f2[i]) {
+00148                     b = true;
+00149                     break;
+00150                 }
+00151             if (! b)
+00152                 _f.push_back(_f2[i]);
+00153         }
+00154     }
+00155 
+00156 
+00160     unsigned int howManyInNicheOf (const std::vector< ObjectiveVector > & _f, const ObjectiveVector & _s, unsigned int _size) {
+00161         unsigned int n=0;
+00162         for (unsigned int i=0 ; i<_f.size(); i++) {
+00163             if (euclidianDistance(_f[i], _s) < (_s.size() / (double) _size))
+00164                 n++;
+00165         }
+00166         return n;
+00167     }
+00168 
+00169 
+00173     double euclidianDistance (const ObjectiveVector & _set1, const ObjectiveVector & _to, unsigned int _deg = 2) {
+00174         double dist=0;
+00175         for (unsigned int i=0; i<_set1.size(); i++)
+00176             dist += pow(fabs(_set1[i] - _to[i]), (int)_deg);
+00177         return pow(dist, 1.0 / _deg);
+00178     }
+00179 
+00180 };
+00181 
+00182 #endif /*MOEOENTROPYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html new file mode 100644 index 000000000..19fd00282 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEnvironmentalReplacement_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-MOEO: moeoEnvironmentalReplacement.h Source File + + + + +
+
+

moeoEnvironmentalReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEnvironmentalReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOENVIRONMENTALREPLACEMENT_H_
+00014 #define MOEOENVIRONMENTALREPLACEMENT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <diversity/moeoDiversityAssignment.h>
+00019 #include <fitness/moeoFitnessAssignment.h>
+00020 #include <replacement/moeoReplacement.h>
+00021 
+00026 template < class MOEOT > class moeoEnvironmentalReplacement:public moeoReplacement < MOEOT >
+00027 {
+00028 public:
+00029 
+00031     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00032 
+00033 
+00040     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) :
+00041             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator)
+00042     {}
+00043 
+00044 
+00050     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) :
+00051             fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator)
+00052     {}
+00053 
+00054 
+00060     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) :
+00061             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator)
+00062     {}
+00063 
+00064 
+00070     moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) :
+00071             fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator)
+00072     {}
+00073 
+00074 
+00080     void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring)
+00081     {
+00082         unsigned int sz = _parents.size();
+00083         // merges offspring and parents into a global population
+00084         _parents.reserve (_parents.size() + _offspring.size());
+00085         std::copy (_offspring.begin(), _offspring.end(), back_inserter(_parents));
+00086         // evaluates the fitness and the diversity of this global population
+00087         fitnessAssignment (_parents);
+00088         diversityAssignment (_parents);
+00089         // remove individuals 1 by 1 and update the fitness values
+00090         unsigned int worstIdx;
+00091         ObjectiveVector worstObjVec;
+00092         while (_parents.size() > sz)
+00093         {
+00094             // the individual to delete
+00095             worstIdx = std::min_element(_parents.begin(), _parents.end(), comparator) - _parents.begin();
+00096             worstObjVec = _parents[worstIdx].objectiveVector();
+00097             // remove the woorst individual
+00098             _parents[worstIdx] = _parents.back();
+00099             _parents.pop_back();
+00100             // update of the fitness and diversity values
+00101             fitnessAssignment.updateByDeleting(_parents, worstObjVec);
+00102             diversityAssignment.updateByDeleting(_parents, worstObjVec);
+00103 
+00104         }
+00105         // clear the offspring population
+00106         _offspring.clear ();
+00107     }
+00108 
+00109 
+00110 protected:
+00111 
+00113     moeoFitnessAssignment < MOEOT > & fitnessAssignment;
+00115     moeoDiversityAssignment < MOEOT > & diversityAssignment;
+00117     moeoDummyDiversityAssignment < MOEOT > defaultDiversity;
+00119     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00121     class Cmp
+00122     {
+00123     public:
+00128         Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp)
+00129         {}
+00135         bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00136         {
+00137             return comp(_moeo1,_moeo2);
+00138         }
+00139     private:
+00141         moeoComparator < MOEOT > & comp;
+00142     } comparator;
+00143 
+00144 };
+00145 
+00146 #endif /*MOEOENVIRONMENTALREPLACEMENT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html new file mode 100644 index 000000000..f5768d6a8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEuclideanDistance_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-MOEO: moeoEuclideanDistance.h Source File + + + + +
+
+

moeoEuclideanDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEuclideanDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEUCLIDEANDISTANCE_H_
+00014 #define MOEOEUCLIDEANDISTANCE_H_
+00015 
+00016 #include <math.h>
+00017 #include <distance/moeoNormalizedDistance.h>
+00018 
+00023 template < class MOEOT >
+00024 class moeoEuclideanDistance : public moeoNormalizedDistance < MOEOT >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00037     const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00038     {
+00039         double result = 0.0;
+00040         double tmp1, tmp2;
+00041         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00042         {
+00043             tmp1 = (_moeo1.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00044             tmp2 = (_moeo2.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00045             result += (tmp1-tmp2) * (tmp1-tmp2);
+00046         }
+00047         return sqrt(result);
+00048     }
+00049 
+00050 
+00051 private:
+00052 
+00054     using moeoNormalizedDistance < MOEOT > :: bounds;
+00055 
+00056 };
+00057 
+00058 #endif /*MOEOEUCLIDEANDISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html new file mode 100644 index 000000000..9c6ff9ed4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoEvalFunc_8h-source.html @@ -0,0 +1,52 @@ + + +ParadisEO-MOEO: moeoEvalFunc.h Source File + + + + +
+
+

moeoEvalFunc.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoEvalFunc.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEVALFUNC_H_
+00014 #define MOEOEVALFUNC_H_
+00015 
+00016 #include <eoEvalFunc.h>
+00017 
+00018 /*
+00019  * Functor that evaluates one MOEO by setting all its objective values.
+00020  */
+00021 template < class MOEOT >
+00022 class moeoEvalFunc : public eoEvalFunc< MOEOT > {};
+00023 
+00024 #endif /*MOEOEVALFUNC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..7203ec9f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoExpBinaryIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,185 @@ + + +ParadisEO-MOEO: moeoExpBinaryIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoExpBinaryIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <math.h>
+00017 #include <vector>
+00018 #include <eoPop.h>
+00019 #include <fitness/moeoBinaryIndicatorBasedFitnessAssignment.h>
+00020 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00021 #include <utils/moeoConvertPopToObjectiveVectors.h>
+00022 
+00028 template < class MOEOT >
+00029 class moeoExpBinaryIndicatorBasedFitnessAssignment : public moeoBinaryIndicatorBasedFitnessAssignment < MOEOT >
+00030 {
+00031 public:
+00032 
+00034     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00035 
+00036 
+00042     moeoExpBinaryIndicatorBasedFitnessAssignment(moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa = 0.05) : metric(_metric), kappa(_kappa)
+00043     {}
+00044 
+00045 
+00050     void operator()(eoPop < MOEOT > & _pop)
+00051     {
+00052         // 1 - setting of the bounds
+00053         setup(_pop);
+00054         // 2 - computing every indicator values
+00055         computeValues(_pop);
+00056         // 3 - setting fitnesses
+00057         setFitnesses(_pop);
+00058     }
+00059 
+00060 
+00066     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00067     {
+00068         std::vector < double > v;
+00069         v.resize(_pop.size());
+00070         for (unsigned int i=0; i<_pop.size(); i++)
+00071         {
+00072             v[i] = metric(_objVec, _pop[i].objectiveVector());
+00073         }
+00074         for (unsigned int i=0; i<_pop.size(); i++)
+00075         {
+00076             _pop[i].fitness( _pop[i].fitness() + exp(-v[i]/kappa) );
+00077         }
+00078     }
+00079 
+00080 
+00087     double updateByAdding(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00088     {
+00089         std::vector < double > v;
+00090         // update every fitness values to take the new individual into account
+00091         v.resize(_pop.size());
+00092         for (unsigned int i=0; i<_pop.size(); i++)
+00093         {
+00094             v[i] = metric(_objVec, _pop[i].objectiveVector());
+00095         }
+00096         for (unsigned int i=0; i<_pop.size(); i++)
+00097         {
+00098             _pop[i].fitness( _pop[i].fitness() - exp(-v[i]/kappa) );
+00099         }
+00100         // compute the fitness of the new individual
+00101         v.clear();
+00102         v.resize(_pop.size());
+00103         for (unsigned int i=0; i<_pop.size(); i++)
+00104         {
+00105             v[i] = metric(_pop[i].objectiveVector(), _objVec);
+00106         }
+00107         double result = 0;
+00108         for (unsigned int i=0; i<v.size(); i++)
+00109         {
+00110             result -= exp(-v[i]/kappa);
+00111         }
+00112         return result;
+00113     }
+00114 
+00115 
+00116 protected:
+00117 
+00119     moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & metric;
+00121     double kappa;
+00123     std::vector < std::vector<double> > values;
+00124 
+00125 
+00130     void setup(const eoPop < MOEOT > & _pop)
+00131     {
+00132         double min, max;
+00133         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00134         {
+00135             min = _pop[0].objectiveVector()[i];
+00136             max = _pop[0].objectiveVector()[i];
+00137             for (unsigned int j=1; j<_pop.size(); j++)
+00138             {
+00139                 min = std::min(min, _pop[j].objectiveVector()[i]);
+00140                 max = std::max(max, _pop[j].objectiveVector()[i]);
+00141             }
+00142             // setting of the bounds for the objective i
+00143             metric.setup(min, max, i);
+00144         }
+00145     }
+00146 
+00147 
+00152     void computeValues(const eoPop < MOEOT > & _pop)
+00153     {
+00154         values.clear();
+00155         values.resize(_pop.size());
+00156         for (unsigned int i=0; i<_pop.size(); i++)
+00157         {
+00158             values[i].resize(_pop.size());
+00159             for (unsigned int j=0; j<_pop.size(); j++)
+00160             {
+00161                 if (i != j)
+00162                 {
+00163                     values[i][j] = metric(_pop[i].objectiveVector(), _pop[j].objectiveVector());
+00164                 }
+00165             }
+00166         }
+00167     }
+00168 
+00169 
+00174     void setFitnesses(eoPop < MOEOT > & _pop)
+00175     {
+00176         for (unsigned int i=0; i<_pop.size(); i++)
+00177         {
+00178             _pop[i].fitness(computeFitness(i));
+00179         }
+00180     }
+00181 
+00182 
+00187     double computeFitness(const unsigned int _idx)
+00188     {
+00189         double result = 0;
+00190         for (unsigned int i=0; i<values.size(); i++)
+00191         {
+00192             if (i != _idx)
+00193             {
+00194                 result -= exp(-values[i][_idx]/kappa);
+00195             }
+00196         }
+00197         return result;
+00198     }
+00199 
+00200 };
+00201 
+00202 #endif /*MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html new file mode 100644 index 000000000..9a2e85e8b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFastNonDominatedSortingFitnessAssignment_8h-source.html @@ -0,0 +1,222 @@ + + +ParadisEO-MOEO: moeoFastNonDominatedSortingFitnessAssignment.h Source File + + + + +
+
+

moeoFastNonDominatedSortingFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFastNonDominatedSortingFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFASTNONDOMINATEDSORTINGFITNESSASSIGNMENT_H_
+00014 #define MOEOFASTNONDOMINATEDSORTINGFITNESSASSIGNMENT_H_
+00015 
+00016 #include <vector>
+00017 #include <eoPop.h>
+00018 #include <comparator/moeoObjectiveObjectiveVectorComparator.h>
+00019 #include <comparator/moeoObjectiveVectorComparator.h>
+00020 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00021 #include <fitness/moeoParetoBasedFitnessAssignment.h>
+00022 
+00023 
+00031 template < class MOEOT >
+00032 class moeoFastNonDominatedSortingFitnessAssignment : public moeoParetoBasedFitnessAssignment < MOEOT >
+00033 {
+00034 public:
+00035 
+00037     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00038 
+00039 
+00043     moeoFastNonDominatedSortingFitnessAssignment() : comparator(paretoComparator)
+00044     {}
+00045 
+00046 
+00051     moeoFastNonDominatedSortingFitnessAssignment(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : comparator(_comparator)
+00052     {}
+00053 
+00054 
+00059     void operator()(eoPop < MOEOT > & _pop)
+00060     {
+00061         // number of objectives for the problem under consideration
+00062         unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives();
+00063         if (nObjectives == 1)
+00064         {
+00065             // one objective
+00066             oneObjective(_pop);
+00067         }
+00068         else if (nObjectives == 2)
+00069         {
+00070             // two objectives (the two objectives function is still to implement)
+00071             mObjectives(_pop);
+00072         }
+00073         else if (nObjectives > 2)
+00074         {
+00075             // more than two objectives
+00076             mObjectives(_pop);
+00077         }
+00078         else
+00079         {
+00080             // problem with the number of objectives
+00081             throw std::runtime_error("Problem with the number of objectives in moeoNonDominatedSortingFitnessAssignment");
+00082         }
+00083         // a higher fitness is better, so the values need to be inverted
+00084         double max = _pop[0].fitness();
+00085         for (unsigned int i=1 ; i<_pop.size() ; i++)
+00086         {
+00087             max = std::max(max, _pop[i].fitness());
+00088         }
+00089         for (unsigned int i=0 ; i<_pop.size() ; i++)
+00090         {
+00091             _pop[i].fitness(max - _pop[i].fitness());
+00092         }
+00093     }
+00094 
+00095 
+00101     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00102     {
+00103         for (unsigned int i=0; i<_pop.size(); i++)
+00104         {
+00105             // if _pop[i] is dominated by _objVec
+00106             if ( comparator(_pop[i].objectiveVector(), _objVec) )
+00107             {
+00108                 _pop[i].fitness(_pop[i].fitness()+1);
+00109             }
+00110         }
+00111     }
+00112 
+00113 
+00114 private:
+00115 
+00117     moeoObjectiveVectorComparator < ObjectiveVector > & comparator;
+00119     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00121     class ObjectiveComparator : public moeoComparator < MOEOT >
+00122     {
+00123     public:
+00129          const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00130          {
+00131                 return cmp(_moeo1.objectiveVector(), _moeo2.objectiveVector());
+00132          }
+00133     private:
+00135         moeoObjectiveObjectiveVectorComparator < ObjectiveVector > cmp;
+00136     } objComparator;
+00137 
+00138 
+00143     void oneObjective (eoPop < MOEOT > & _pop)
+00144     {
+00145         // sorts the population in the ascending order
+00146         std::sort(_pop.begin(), _pop.end(), objComparator);
+00147         // assign fitness values
+00148         unsigned int rank = 1;
+00149         _pop[_pop.size()-1].fitness(rank);
+00150         for (unsigned int i=_pop.size()-2; i>=0; i--)
+00151         {
+00152             if (_pop[i].objectiveVector() != _pop[i+1].objectiveVector())
+00153             {
+00154                 rank++;
+00155             }
+00156             _pop[i].fitness(rank);
+00157         }
+00158     }
+00159 
+00160 
+00165     void twoObjectives (eoPop < MOEOT > & _pop)
+00166     {
+00167         //... TO DO !
+00168     }
+00169 
+00170 
+00175     void mObjectives (eoPop < MOEOT > & _pop)
+00176     {
+00177         // S[i] = indexes of the individuals dominated by _pop[i]
+00178         std::vector < std::vector<unsigned int> > S(_pop.size());
+00179         // n[i] = number of individuals that dominate the individual _pop[i]
+00180         std::vector < unsigned int > n(_pop.size(), 0);
+00181         // fronts: F[i] = indexes of the individuals contained in the ith front
+00182         std::vector < std::vector<unsigned int> > F(_pop.size()+2);
+00183         // used to store the number of the first front
+00184         F[1].reserve(_pop.size());
+00185         for (unsigned int p=0; p<_pop.size(); p++)
+00186         {
+00187             for (unsigned int q=0; q<_pop.size(); q++)
+00188             {
+00189                 // if q is dominated by p
+00190                 if ( comparator(_pop[q].objectiveVector(), _pop[p].objectiveVector()) )
+00191                 {
+00192                     // add q to the set of solutions dominated by p
+00193                     S[p].push_back(q);
+00194                 }
+00195                 // if p is dominated by q
+00196                 else if  ( comparator(_pop[p].objectiveVector(), _pop[q].objectiveVector()) )
+00197                 {
+00198                     // increment the domination counter of p
+00199                     n[p]++;
+00200                 }
+00201             }
+00202             // if no individual dominates p
+00203             if (n[p] == 0)
+00204             {
+00205                 // p belongs to the first front
+00206                 _pop[p].fitness(1);
+00207                 F[1].push_back(p);
+00208             }
+00209         }
+00210         // front counter
+00211         unsigned int counter=1;
+00212         unsigned int p,q;
+00213         while (! F[counter].empty())
+00214         {
+00215             // used to store the number of the next front
+00216             F[counter+1].reserve(_pop.size());
+00217             for (unsigned int i=0; i<F[counter].size(); i++)
+00218             {
+00219                 p = F[counter][i];
+00220                 for (unsigned int j=0; j<S[p].size(); j++)
+00221                 {
+00222                     q = S[p][j];
+00223                     n[q]--;
+00224                     // if no individual dominates q anymore
+00225                     if (n[q] == 0)
+00226                     {
+00227                         // q belongs to the next front
+00228                         _pop[q].fitness(counter+1);
+00229                         F[counter+1].push_back(q);
+00230                     }
+00231                 }
+00232             }
+00233             counter++;
+00234         }
+00235     }
+00236 
+00237 };
+00238 
+00239 #endif /*MOEOFASTNONDOMINATEDSORTINGFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html new file mode 100644 index 000000000..5e507a743 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFitnessAssignment_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoFitnessAssignment.h Source File + + + + +
+
+

moeoFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFITNESSASSIGNMENT_H_
+00014 #define MOEOFITNESSASSIGNMENT_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 #include <eoPop.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoFitnessAssignment : public eoUF < eoPop < MOEOT > &, void >
+00024 {
+00025 public:
+00026 
+00028     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00029 
+00030 
+00036     virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0;
+00037 
+00038 
+00044     void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo)
+00045     {
+00046         updateByDeleting(_pop, _moeo.objectiveVector());
+00047     }
+00048 
+00049 };
+00050 
+00051 #endif /*MOEOFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html new file mode 100644 index 000000000..61432d431 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFitnessThenDiversityComparator_8h-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-MOEO: moeoFitnessThenDiversityComparator.h Source File + + + + +
+
+

moeoFitnessThenDiversityComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFitnessThenDiversityComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_
+00014 #define MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoFitnessThenDiversityComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00032     {
+00033         if (_moeo1.fitness() == _moeo2.fitness())
+00034         {
+00035             return _moeo1.diversity() < _moeo2.diversity();
+00036         }
+00037         else
+00038         {
+00039             return _moeo1.fitness() < _moeo2.fitness();
+00040         }
+00041     }
+00042 
+00043 };
+00044 
+00045 #endif /*MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..79ccd805e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFrontByFrontCrowdingDiversityAssignment_8h-source.html @@ -0,0 +1,139 @@ + + +ParadisEO-MOEO: moeoFrontByFrontCrowdingDiversityAssignment.h Source File + + + + +
+
+

moeoFrontByFrontCrowdingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFrontByFrontCrowdingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <diversity/moeoCrowdingDiversityAssignment.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 
+00024 template < class MOEOT >
+00025 class moeoFrontByFrontCrowdingDiversityAssignment : public moeoCrowdingDiversityAssignment < MOEOT >
+00026 {
+00027 public:
+00028 
+00030     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00031 
+00032 
+00040     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00041     {
+00042         std::cout << "WARNING : updateByDeleting not implemented in moeoFrontByFrontCrowdingDistanceDiversityAssignment" << std::endl;
+00043     }
+00044 
+00045 
+00046 private:
+00047 
+00048     using moeoCrowdingDiversityAssignment < MOEOT >::inf;
+00049     using moeoCrowdingDiversityAssignment < MOEOT >::tiny;
+00050 
+00055     void setDistances (eoPop < MOEOT > & _pop)
+00056     {
+00057         unsigned int a,b;
+00058         double min, max, distance;
+00059         unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives();
+00060         // set diversity to 0 for every individual
+00061         for (unsigned int i=0; i<_pop.size(); i++)
+00062         {
+00063             _pop[i].diversity(0.0);
+00064         }
+00065         // sort the whole pop according to fitness values
+00066         moeoFitnessThenDiversityComparator < MOEOT > fitnessComparator;
+00067         std::sort(_pop.begin(), _pop.end(), fitnessComparator);
+00068         // compute the crowding distance values for every individual "front" by "front" (front : from a to b)
+00069         a = 0;                                  // the front starts at a
+00070         while (a < _pop.size())
+00071         {
+00072             b = lastIndex(_pop,a);      // the front ends at b
+00073             // if there is less than 2 individuals in the front...
+00074             if ((b-a) < 2)
+00075             {
+00076                 for (unsigned int i=a; i<=b; i++)
+00077                 {
+00078                     _pop[i].diversity(inf());
+00079                 }
+00080             }
+00081             // else...
+00082             else
+00083             {
+00084                 // for each objective
+00085                 for (unsigned int obj=0; obj<nObjectives; obj++)
+00086                 {
+00087                     // sort in the descending order using the values of the objective 'obj'
+00088                     moeoOneObjectiveComparator < MOEOT > objComp(obj);
+00089                     std::sort(_pop.begin()+a, _pop.begin()+b+1, objComp);
+00090                     // min & max
+00091                     min = _pop[b].objectiveVector()[obj];
+00092                     max = _pop[a].objectiveVector()[obj];
+00093                     // avoid extreme case
+00094                     if (min == max)
+00095                     {
+00096                         min -= tiny();
+00097                         max += tiny();
+00098                     }
+00099                     // set the diversity value to infiny for min and max
+00100                     _pop[a].diversity(inf());
+00101                     _pop[b].diversity(inf());
+00102                     // set the diversity values for the other individuals
+00103                     for (unsigned int i=a+1; i<b; i++)
+00104                     {
+00105                         distance = (_pop[i-1].objectiveVector()[obj] - _pop[i+1].objectiveVector()[obj]) / (max-min);
+00106                         _pop[i].diversity(_pop[i].diversity() + distance);
+00107                     }
+00108                 }
+00109             }
+00110             // go to the next front
+00111             a = b+1;
+00112         }
+00113     }
+00114 
+00115 
+00121     unsigned int lastIndex (eoPop < MOEOT > & _pop, unsigned int _start)
+00122     {
+00123         unsigned int i=_start;
+00124         while ( (i<_pop.size()-1) && (_pop[i].fitness()==_pop[i+1].fitness()) )
+00125         {
+00126             i++;
+00127         }
+00128         return i;
+00129     }
+00130 
+00131 };
+00132 
+00133 #endif /*MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..07217d89e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoFrontByFrontSharingDiversityAssignment_8h-source.html @@ -0,0 +1,108 @@ + + +ParadisEO-MOEO: moeoFrontByFrontSharingDiversityAssignment.h Source File + + + + +
+
+

moeoFrontByFrontSharingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoFrontByFrontSharingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <diversity/moeoSharingDiversityAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoFrontByFrontSharingDiversityAssignment : public moeoSharingDiversityAssignment < MOEOT >
+00023 {
+00024 public:
+00025 
+00027     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00028 
+00029 
+00036     moeoFrontByFrontSharingDiversityAssignment(moeoDistance<MOEOT,double> & _distance, double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_distance, _nicheSize, _alpha)
+00037     {}
+00038 
+00039 
+00045     moeoFrontByFrontSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_nicheSize, _alpha)
+00046     {}
+00047 
+00048 
+00056     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00057     {
+00058         std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl;
+00059     }
+00060 
+00061 
+00062 private:
+00063 
+00064     using moeoSharingDiversityAssignment < MOEOT >::distance;
+00065     using moeoSharingDiversityAssignment < MOEOT >::nicheSize;
+00066     using moeoSharingDiversityAssignment < MOEOT >::sh;
+00067     using moeoSharingDiversityAssignment < MOEOT >::operator();
+00068 
+00069 
+00074     void setSimilarities(eoPop < MOEOT > & _pop)
+00075     {
+00076         // compute distances between every individuals
+00077         moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance);
+00078         dMatrix(_pop);
+00079         // sets the distance to bigger than the niche size for every couple of solutions that do not belong to the same front
+00080         for (unsigned int i=0; i<_pop.size(); i++)
+00081         {
+00082             for (unsigned int j=0; j<i; j++)
+00083             {
+00084                 if (_pop[i].fitness() != _pop[j].fitness())
+00085                 {
+00086                     dMatrix[i][j] = nicheSize;
+00087                     dMatrix[j][i] = nicheSize;
+00088                 }
+00089             }
+00090         }
+00091         // compute similarities
+00092         double sum;
+00093         for (unsigned int i=0; i<_pop.size(); i++)
+00094         {
+00095             sum = 0.0;
+00096             for (unsigned int j=0; j<_pop.size(); j++)
+00097             {
+00098                 sum += sh(dMatrix[i][j]);
+00099             }
+00100             _pop[i].diversity(sum);
+00101         }
+00102     }
+00103 
+00104 };
+00105 
+00106 #endif /*MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..b6fe9a584 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoGDominanceObjectiveVectorComparator_8h-source.html @@ -0,0 +1,109 @@ + + +ParadisEO-MOEO: moeoGDominanceObjectiveVectorComparator.h Source File + + + + +
+
+

moeoGDominanceObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoGDominanceObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoObjectiveVectorComparator.h>
+00017 
+00024 template < class ObjectiveVector >
+00025 class moeoGDominanceObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector >
+00026 {
+00027 public:
+00028 
+00033     moeoGDominanceObjectiveVectorComparator(ObjectiveVector & _ref) : ref(_ref)
+00034     {}
+00035 
+00036 
+00042     const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)
+00043     {
+00044         unsigned int flag1 = flag(_objectiveVector1);
+00045         unsigned int flag2 = flag(_objectiveVector2);
+00046         if (flag2==0)
+00047         {
+00048             // cannot dominate
+00049             return false;
+00050         }
+00051         else if ( (flag2==1) && (flag1==0) )
+00052         {
+00053             // is dominated
+00054             return true;
+00055         }
+00056         else // (flag1==1) && (flag2==1)
+00057         {
+00058             // both are on the good region, so let's use the classical Pareto dominance
+00059             return paretoComparator(_objectiveVector1, _objectiveVector2);
+00060         }
+00061     }
+00062 
+00063 
+00064 private:
+00065 
+00067     ObjectiveVector & ref;
+00069     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00070 
+00071 
+00076     unsigned int flag(const ObjectiveVector & _objectiveVector)
+00077     {
+00078         unsigned int result=1;
+00079         for (unsigned int i=0; i<ref.nObjectives(); i++)
+00080         {
+00081             if (_objectiveVector[i] > ref[i])
+00082             {
+00083                 result=0;
+00084             }
+00085         }
+00086         if (result==0)
+00087         {
+00088             result=1;
+00089             for (unsigned int i=0; i<ref.nObjectives(); i++)
+00090             {
+00091                 if (_objectiveVector[i] < ref[i])
+00092                 {
+00093                     result=0;
+00094                 }
+00095             }
+00096         }
+00097         return result;
+00098     }
+00099 
+00100 };
+00101 
+00102 #endif /*MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html new file mode 100644 index 000000000..dfd29840f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoGenerationalReplacement_8h-source.html @@ -0,0 +1,59 @@ + + +ParadisEO-MOEO: moeoGenerationalReplacement.h Source File + + + + +
+
+

moeoGenerationalReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoGenerationalReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOGENERATIONALREPLACEMENT_H_
+00014 #define MOEOGENERATIONALREPLACEMENT_H_
+00015 
+00016 #include <eoReplacement.h>
+00017 #include <replacement/moeoReplacement.h>
+00018 
+00022 template < class MOEOT >
+00023 class moeoGenerationalReplacement : public moeoReplacement < MOEOT >, public eoGenerationalReplacement < MOEOT >
+00024 {
+00025 public:
+00026 
+00032     void operator()(eoPop < MOEOT > & _parents, eoPop < MOEOT > & _offspring)
+00033     {
+00034         eoGenerationalReplacement < MOEOT >::operator ()(_parents, _offspring);
+00035     }
+00036 
+00037 };
+00038 
+00039 #endif /*MOEOGENERATIONALREPLACEMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html new file mode 100644 index 000000000..7c4dc21d9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoHybridLS_8h-source.html @@ -0,0 +1,86 @@ + + +ParadisEO-MOEO: moeoHybridLS.h Source File + + + + +
+
+

moeoHybridLS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoHybridLS.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOHYBRIDLS_H_
+00014 #define MOEOHYBRIDLS_H_
+00015 
+00016 #include <eoContinue.h>
+00017 #include <eoPop.h>
+00018 #include <eoSelect.h>
+00019 #include <utils/eoUpdater.h>
+00020 #include <algo/moeoLS.h>
+00021 #include <archive/moeoArchive.h>
+00022 
+00027 template < class MOEOT >
+00028 class moeoHybridLS : public eoUpdater
+00029 {
+00030 public:
+00031 
+00039     moeoHybridLS (eoContinue < MOEOT > & _term, eoSelect < MOEOT > & _select, moeoLS < MOEOT, MOEOT > & _mols, moeoArchive < MOEOT > & _arch) :
+00040             term(_term), select(_select), mols(_mols), arch(_arch)
+00041     {}
+00042 
+00043 
+00047     void operator () ()
+00048     {
+00049         if (! term (arch))
+00050         {
+00051             // selection of solutions
+00052             eoPop < MOEOT > selectedSolutions;
+00053             select(arch, selectedSolutions);
+00054             // apply the local search to every selected solution
+00055             for (unsigned int i=0; i<selectedSolutions.size(); i++)
+00056             {
+00057                 mols(selectedSolutions[i], arch);
+00058             }
+00059         }
+00060     }
+00061 
+00062 
+00063 private:
+00064 
+00066     eoContinue < MOEOT > & term;
+00068     eoSelect < MOEOT > & select;
+00070     moeoLS < MOEOT, MOEOT > & mols;
+00072     moeoArchive < MOEOT > & arch;
+00073 
+00074 };
+00075 
+00076 #endif /*MOEOHYBRIDLS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html new file mode 100644 index 000000000..e6f47b14c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoHypervolumeBinaryMetric_8h-source.html @@ -0,0 +1,141 @@ + + +ParadisEO-MOEO: moeoHypervolumeBinaryMetric.h Source File + + + + +
+
+

moeoHypervolumeBinaryMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoHypervolumeBinaryMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOHYPERVOLUMEBINARYMETRIC_H_
+00014 #define MOEOHYPERVOLUMEBINARYMETRIC_H_
+00015 
+00016 #include <stdexcept>
+00017 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00018 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00019 
+00028 template < class ObjectiveVector >
+00029 class moeoHypervolumeBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double >
+00030 {
+00031 public:
+00032 
+00037     moeoHypervolumeBinaryMetric(double _rho = 1.1) : rho(_rho)
+00038     {
+00039         // not-a-maximization problem check
+00040         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00041         {
+00042             if (ObjectiveVector::Traits::maximizing(i))
+00043             {
+00044                 throw std::runtime_error("Hypervolume binary metric not yet implemented for a maximization problem in moeoHypervolumeBinaryMetric");
+00045             }
+00046         }
+00047         // consistency check
+00048         if (rho < 1)
+00049         {
+00050             std::cout << "Warning, value used to compute the reference point rho for the hypervolume calculation must not be smaller than 1" << std::endl;
+00051             std::cout << "Adjusted to 1" << std::endl;
+00052             rho = 1;
+00053         }
+00054     }
+00055 
+00056 
+00063     double operator()(const ObjectiveVector & _o1, const ObjectiveVector & _o2)
+00064     {
+00065         double result;
+00066         // if _o2 is dominated by _o1
+00067         if ( paretoComparator(_o2,_o1) )
+00068         {
+00069             result = - hypervolume(_o1, _o2, ObjectiveVector::Traits::nObjectives()-1);
+00070         }
+00071         else
+00072         {
+00073             result = hypervolume(_o2, _o1, ObjectiveVector::Traits::nObjectives()-1);
+00074         }
+00075         return result;
+00076     }
+00077 
+00078 
+00079 private:
+00080 
+00082     double rho;
+00084     using moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > :: bounds;
+00086     moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator;
+00087 
+00088 
+00096     double hypervolume(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj, const bool _flag = false)
+00097     {
+00098         double result;
+00099         double range = rho * bounds[_obj].range();
+00100         double max = bounds[_obj].minimum() + range;
+00101         // value of _1 for the objective _obj
+00102         double v1 = _o1[_obj];
+00103         // value of _2 for the objective _obj (if _flag=true, v2=max)
+00104         double v2;
+00105         if (_flag)
+00106         {
+00107             v2 = max;
+00108         }
+00109         else
+00110         {
+00111             v2 = _o2[_obj];
+00112         }
+00113         // computation of the volume
+00114         if (_obj == 0)
+00115         {
+00116             if (v1 < v2)
+00117             {
+00118                 result = (v2 - v1) / range;
+00119             }
+00120             else
+00121             {
+00122                 result = 0;
+00123             }
+00124         }
+00125         else
+00126         {
+00127             if (v1 < v2)
+00128             {
+00129                 result = ( hypervolume(_o1, _o2, _obj-1, true) * (v2 - v1) / range ) + ( hypervolume(_o1, _o2, _obj-1) * (max - v2) / range );
+00130             }
+00131             else
+00132             {
+00133                 result = hypervolume(_o1, _o2, _obj-1) * (max - v2) / range;
+00134             }
+00135         }
+00136         return result;
+00137     }
+00138 
+00139 };
+00140 
+00141 #endif /*MOEOHYPERVOLUMEBINARYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html new file mode 100644 index 000000000..15efffd13 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoIBEA_8h-source.html @@ -0,0 +1,133 @@ + + +ParadisEO-MOEO: moeoIBEA.h Source File + + + + +
+
+

moeoIBEA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoIBEA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOIBEA_H_
+00014 #define MOEOIBEA_H_
+00015 
+00016 
+00017 #include <eoBreed.h>
+00018 #include <eoContinue.h>
+00019 #include <eoEvalFunc.h>
+00020 #include <eoGenContinue.h>
+00021 #include <eoGeneralBreeder.h>
+00022 #include <eoGenOp.h>
+00023 #include <eoPopEvalFunc.h>
+00024 #include <eoSGAGenOp.h>
+00025 #include <algo/moeoEA.h>
+00026 #include <diversity/moeoDummyDiversityAssignment.h>
+00027 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
+00028 #include <metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h>
+00029 #include <replacement/moeoEnvironmentalReplacement.h>
+00030 #include <selection/moeoDetTournamentSelect.h>
+00031 
+00037 template < class MOEOT >
+00038 class moeoIBEA : public moeoEA < MOEOT >
+00039 {
+00040 public:
+00041 
+00043     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00044 
+00045 
+00054     moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00055             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00056             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00057     {}
+00058 
+00059 
+00068     moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00069             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00070             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00071     {}
+00072 
+00073 
+00085     moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00086             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
+00087             fitnessAssignment(_metric, _kappa), replace (fitnessAssignment, dummyDiversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut),
+00088             genBreed (select, defaultSGAGenOp), breed (genBreed)
+00089     {}
+00090 
+00091 
+00100     moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00101             continuator(_continuator), popEval(_eval), select(2),
+00102             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00103     {}
+00104 
+00105 
+00114     moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) :
+00115             continuator(_continuator), popEval(_eval), select(2),
+00116             fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed)
+00117     {}
+00118 
+00119 
+00124     virtual void operator () (eoPop < MOEOT > &_pop)
+00125     {
+00126         eoPop < MOEOT > offspring, empty_pop;
+00127         popEval (empty_pop, _pop);      // a first eval of _pop
+00128         // evaluate fitness and diversity
+00129         fitnessAssignment(_pop);
+00130         dummyDiversityAssignment(_pop);
+00131         do
+00132         {
+00133             // generate offspring, worths are recalculated if necessary
+00134             breed (_pop, offspring);
+00135             // eval of offspring
+00136             popEval (_pop, offspring);
+00137             // after replace, the new pop is in _pop. Worths are recalculated if necessary
+00138             replace (_pop, offspring);
+00139         } while (continuator (_pop));
+00140     }
+00141 
+00142 
+00143 protected:
+00144 
+00146     eoGenContinue < MOEOT > defaultGenContinuator;
+00148     eoContinue < MOEOT > & continuator;
+00150     eoPopLoopEval < MOEOT > popEval;
+00152     moeoDetTournamentSelect < MOEOT > select;
+00154     moeoIndicatorBasedFitnessAssignment < MOEOT > fitnessAssignment;
+00156     moeoDummyDiversityAssignment < MOEOT > dummyDiversityAssignment;
+00158     moeoEnvironmentalReplacement < MOEOT > replace;
+00160     eoSGAGenOp < MOEOT > defaultSGAGenOp;
+00162     eoGeneralBreeder < MOEOT > genBreed;
+00164     eoBreed < MOEOT > & breed;
+00165 
+00166 };
+00167 
+00168 #endif /*MOEOIBEA_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..69f600b2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoIndicatorBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoLS_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoLS_8h-source.html new file mode 100644 index 000000000..ef0877ea8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoLS_8h-source.html @@ -0,0 +1,51 @@ + + +ParadisEO-MOEO: moeoLS.h Source File + + + + +
+
+

moeoLS.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoLS.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOLS_H_
+00014 #define MOEOLS_H_
+00015 
+00016 #include <eoFunctor.h>
+00017 #include <algo/moeoAlgo.h>
+00018 #include <archive/moeoArchive.h>
+00019 
+00024 template < class MOEOT, class Type >
+00025 class moeoLS: public moeoAlgo, public eoBF < Type, moeoArchive < MOEOT > &, void > {};
+00026 
+00027 #endif /*MOEOLS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html new file mode 100644 index 000000000..cd4145ca3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoManhattanDistance_8h-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-MOEO: moeoManhattanDistance.h Source File + + + + +
+
+

moeoManhattanDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoManhattanDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOMANHATTANDISTANCE_H_
+00014 #define MOEOMANHATTANDISTANCE_H_
+00015 
+00016 #include <math.h>
+00017 #include <distance/moeoNormalizedDistance.h>
+00018 
+00023 template < class MOEOT >
+00024 class moeoManhattanDistance : public moeoNormalizedDistance < MOEOT >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00037     const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00038     {
+00039         double result = 0.0;
+00040         double tmp1, tmp2;
+00041         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00042         {
+00043             tmp1 = (_moeo1.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00044             tmp2 = (_moeo2.objectiveVector()[i] - bounds[i].minimum()) / bounds[i].range();
+00045             result += fabs(tmp1-tmp2);
+00046         }
+00047         return result;
+00048     }
+00049 
+00050 
+00051 private:
+00052 
+00054     using moeoNormalizedDistance < MOEOT > :: bounds;
+00055 
+00056 };
+00057 
+00058 #endif /*MOEOMANHATTANDISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoMetric_8h-source.html new file mode 100644 index 000000000..7777b1e72 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoMetric_8h-source.html @@ -0,0 +1,74 @@ + + +ParadisEO-MOEO: moeoMetric.h Source File + + + + +
+
+

moeoMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOMETRIC_H_
+00014 #define MOEOMETRIC_H_
+00015 
+00016 #include <vector>
+00017 #include <eoFunctor.h>
+00018 
+00022 class moeoMetric : public eoFunctorBase {};
+00023 
+00024 
+00028 template < class A, class R >
+00029 class moeoUnaryMetric : public eoUF < A, R >, public moeoMetric {};
+00030 
+00031 
+00035 template < class A1, class A2, class R >
+00036 class moeoBinaryMetric : public eoBF < A1, A2, R >, public moeoMetric {};
+00037 
+00038 
+00042 template < class ObjectiveVector, class R >
+00043 class moeoSolutionUnaryMetric : public moeoUnaryMetric < const ObjectiveVector &, R > {};
+00044 
+00045 
+00049 template < class ObjectiveVector, class R >
+00050 class moeoVectorUnaryMetric : public moeoUnaryMetric < const std::vector < ObjectiveVector > &, R > {};
+00051 
+00052 
+00056 template < class ObjectiveVector, class R >
+00057 class moeoSolutionVsSolutionBinaryMetric : public moeoBinaryMetric < const ObjectiveVector &, const ObjectiveVector &, R > {};
+00058 
+00059 
+00063 template < class ObjectiveVector, class R >
+00064 class moeoVectorVsVectorBinaryMetric : public moeoBinaryMetric < const std::vector < ObjectiveVector > &, const std::vector < ObjectiveVector > &, R > {};
+00065 
+00066 
+00067 #endif /*MOEOMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html new file mode 100644 index 000000000..049369962 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNSGAII_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-MOEO: moeoNSGAII.h Source File + + + + +
+
+

moeoNSGAII.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNSGAII.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONSGAII_H_
+00014 #define MOEONSGAII_H_
+00015 
+00016 #include <eoBreed.h>
+00017 #include <eoContinue.h>
+00018 #include <eoEvalFunc.h>
+00019 #include <eoGenContinue.h>
+00020 #include <eoGeneralBreeder.h>
+00021 #include <eoGenOp.h>
+00022 #include <eoPopEvalFunc.h>
+00023 #include <eoSGAGenOp.h>
+00024 #include <algo/moeoEA.h>
+00025 #include <diversity/moeoFrontByFrontCrowdingDiversityAssignment.h>
+00026 #include <fitness/moeoFastNonDominatedSortingFitnessAssignment.h>
+00027 #include <replacement/moeoElitistReplacement.h>
+00028 #include <selection/moeoDetTournamentSelect.h>
+00029 
+00036 template < class MOEOT >
+00037 class moeoNSGAII: public moeoEA < MOEOT >
+00038 {
+00039 public:
+00040 
+00047     moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) :
+00048             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00049             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00050     {}
+00051 
+00052 
+00059     moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) :
+00060             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00061             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00062     {}
+00063 
+00064 
+00074     moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut) :
+00075             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
+00076             replace (fitnessAssignment, diversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut),
+00077             genBreed (select, defaultSGAGenOp), breed (genBreed)
+00078     {}
+00079 
+00080 
+00087     moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) :
+00088             continuator(_continuator), popEval(_eval), select(2),
+00089             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00090     {}
+00091 
+00092 
+00099     moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) :
+00100             continuator(_continuator), popEval(_eval), select(2),
+00101             replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00102     {}
+00103 
+00104 
+00109     virtual void operator () (eoPop < MOEOT > &_pop)
+00110     {
+00111         eoPop < MOEOT > offspring, empty_pop;
+00112         popEval (empty_pop, _pop);      // a first eval of _pop
+00113         // evaluate fitness and diversity
+00114         fitnessAssignment(_pop);
+00115         diversityAssignment(_pop);
+00116         do
+00117         {
+00118             // generate offspring, worths are recalculated if necessary
+00119             breed (_pop, offspring);
+00120             // eval of offspring
+00121             popEval (_pop, offspring);
+00122             // after replace, the new pop is in _pop. Worths are recalculated if necessary
+00123             replace (_pop, offspring);
+00124         } while (continuator (_pop));
+00125     }
+00126 
+00127 
+00128 protected:
+00129 
+00131     eoGenContinue < MOEOT > defaultGenContinuator;
+00133     eoContinue < MOEOT > & continuator;
+00135     eoPopLoopEval < MOEOT > popEval;
+00137     moeoDetTournamentSelect < MOEOT > select;
+00139     moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment;
+00141     moeoFrontByFrontCrowdingDiversityAssignment  < MOEOT > diversityAssignment;
+00143     moeoElitistReplacement < MOEOT > replace;
+00145     eoSGAGenOp < MOEOT > defaultSGAGenOp;
+00147     eoGeneralBreeder < MOEOT > genBreed;
+00149     eoBreed < MOEOT > & breed;
+00150 
+00151 };
+00152 
+00153 #endif /*MOEONSGAII_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html new file mode 100644 index 000000000..d1d9112d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNSGA_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-MOEO: moeoNSGA.h Source File + + + + +
+
+

moeoNSGA.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNSGA.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONSGA_H_
+00014 #define MOEONSGA_H_
+00015 
+00016 #include <eoBreed.h>
+00017 #include <eoContinue.h>
+00018 #include <eoEvalFunc.h>
+00019 #include <eoGenContinue.h>
+00020 #include <eoGeneralBreeder.h>
+00021 #include <eoGenOp.h>
+00022 #include <eoPopEvalFunc.h>
+00023 #include <eoSGAGenOp.h>
+00024 #include <algo/moeoEA.h>
+00025 #include <diversity/moeoFrontByFrontSharingDiversityAssignment.h>
+00026 #include <fitness/moeoFastNonDominatedSortingFitnessAssignment.h>
+00027 #include <replacement/moeoElitistReplacement.h>
+00028 #include <selection/moeoDetTournamentSelect.h>
+00029 
+00036 template < class MOEOT >
+00037 class moeoNSGA: public moeoEA < MOEOT >
+00038 {
+00039 public:
+00040 
+00048     moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) :
+00049             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00050             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00051     {}
+00052 
+00053 
+00061     moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) :
+00062             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2),
+00063             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00064     {}
+00065 
+00066 
+00077     moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, double _nicheSize = 0.5) :
+00078             defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2),
+00079             diversityAssignment(_nicheSize), replace (fitnessAssignment, diversityAssignment),
+00080             defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), genBreed (select, defaultSGAGenOp), breed (genBreed)
+00081     {}
+00082 
+00083 
+00091     moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) :
+00092             continuator(_continuator), popEval(_eval), select(2),
+00093             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00094     {}
+00095 
+00096 
+00104     moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) :
+00105             continuator(_continuator), popEval(_eval), select(2),
+00106             diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed)
+00107     {}
+00108 
+00109 
+00114     virtual void operator () (eoPop < MOEOT > &_pop)
+00115     {
+00116         eoPop < MOEOT > offspring, empty_pop;
+00117         popEval (empty_pop, _pop);      // a first eval of _pop
+00118         // evaluate fitness and diversity
+00119         fitnessAssignment(_pop);
+00120         diversityAssignment(_pop);
+00121         do
+00122         {
+00123             // generate offspring, worths are recalculated if necessary
+00124             breed (_pop, offspring);
+00125             // eval of offspring
+00126             popEval (_pop, offspring);
+00127             // after replace, the new pop is in _pop. Worths are recalculated if necessary
+00128             replace (_pop, offspring);
+00129         } while (continuator (_pop));
+00130     }
+00131 
+00132 
+00133 protected:
+00134 
+00136     eoGenContinue < MOEOT > defaultGenContinuator;
+00138     eoContinue < MOEOT > & continuator;
+00140     eoPopLoopEval < MOEOT > popEval;
+00142     moeoDetTournamentSelect < MOEOT > select;
+00144     moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment;
+00146     moeoFrontByFrontSharingDiversityAssignment  < MOEOT > diversityAssignment;
+00148     moeoElitistReplacement < MOEOT > replace;
+00150     eoSGAGenOp < MOEOT > defaultSGAGenOp;
+00152     eoGeneralBreeder < MOEOT > genBreed;
+00154     eoBreed < MOEOT > & breed;
+00155 
+00156 };
+00157 
+00158 #endif /*MOEONSGAII_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html new file mode 100644 index 000000000..8b7af33f7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNormalizedDistance_8h-source.html @@ -0,0 +1,114 @@ + + +ParadisEO-MOEO: moeoNormalizedDistance.h Source File + + + + +
+
+

moeoNormalizedDistance.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNormalizedDistance.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONORMALIZEDDISTANCE_H_
+00014 #define MOEONORMALIZEDDISTANCE_H_
+00015 
+00016 #include <vector>
+00017 #include <utils/eoRealBounds.h>
+00018 #include <distance/moeoDistance.h>
+00019 
+00023 template < class MOEOT , class Type = double >
+00024 class moeoNormalizedDistance : public moeoDistance < MOEOT , Type >
+00025 {
+00026 public:
+00027 
+00029     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00030 
+00031 
+00035     moeoNormalizedDistance()
+00036     {
+00037         bounds.resize(ObjectiveVector::Traits::nObjectives());
+00038         // initialize bounds in case someone does not want to use them
+00039         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00040         {
+00041             bounds[i] = eoRealInterval(0,1);
+00042         }
+00043     }
+00044 
+00045 
+00049     static double tiny()
+00050     {
+00051         return 1e-6;
+00052     }
+00053 
+00054 
+00059     virtual void setup(const eoPop < MOEOT > & _pop)
+00060     {
+00061         double min, max;
+00062         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00063         {
+00064             min = _pop[0].objectiveVector()[i];
+00065             max = _pop[0].objectiveVector()[i];
+00066             for (unsigned int j=1; j<_pop.size(); j++)
+00067             {
+00068                 min = std::min(min, _pop[j].objectiveVector()[i]);
+00069                 max = std::max(max, _pop[j].objectiveVector()[i]);
+00070             }
+00071             // setting of the bounds for the objective i
+00072             setup(min, max, i);
+00073         }
+00074     }
+00075 
+00076 
+00083     virtual void setup(double _min, double _max, unsigned int _obj)
+00084     {
+00085         if (_min == _max)
+00086         {
+00087             _min -= tiny();
+00088             _max += tiny();
+00089         }
+00090         bounds[_obj] = eoRealInterval(_min, _max);
+00091     }
+00092 
+00093 
+00099     virtual void setup(eoRealInterval _realInterval, unsigned int _obj)
+00100     {
+00101         bounds[_obj] = _realInterval;
+00102     }
+00103 
+00104 
+00105 protected:
+00106 
+00108     std::vector < eoRealInterval > bounds;
+00109 
+00110 };
+00111 
+00112 #endif /*MOEONORMALIZEDDISTANCE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html new file mode 100644 index 000000000..b1db4319a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoNormalizedSolutionVsSolutionBinaryMetric_8h-source.html @@ -0,0 +1,93 @@ + + +ParadisEO-MOEO: moeoNormalizedSolutionVsSolutionBinaryMetric.h Source File + + + + +
+
+

moeoNormalizedSolutionVsSolutionBinaryMetric.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoNormalizedSolutionVsSolutionBinaryMetric.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_
+00014 #define MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_
+00015 
+00016 #include <vector>
+00017 #include <utils/eoRealBounds.h>
+00018 #include <metric/moeoMetric.h>
+00019 
+00025 template < class ObjectiveVector, class R >
+00026 class moeoNormalizedSolutionVsSolutionBinaryMetric : public moeoSolutionVsSolutionBinaryMetric < ObjectiveVector, R >
+00027 {
+00028 public:
+00029 
+00033     moeoNormalizedSolutionVsSolutionBinaryMetric()
+00034     {
+00035         bounds.resize(ObjectiveVector::Traits::nObjectives());
+00036         // initialize bounds in case someone does not want to use them
+00037         for (unsigned int i=0; i<ObjectiveVector::Traits::nObjectives(); i++)
+00038         {
+00039             bounds[i] = eoRealInterval(0,1);
+00040         }
+00041     }
+00042 
+00043 
+00050     void setup(double _min, double _max, unsigned int _obj)
+00051     {
+00052         if (_min == _max)
+00053         {
+00054             _min -= tiny();
+00055             _max += tiny();
+00056         }
+00057         bounds[_obj] = eoRealInterval(_min, _max);
+00058     }
+00059 
+00060 
+00066     virtual void setup(eoRealInterval _realInterval, unsigned int _obj)
+00067     {
+00068         bounds[_obj] = _realInterval;
+00069     }
+00070 
+00071 
+00075     static double tiny()
+00076     {
+00077         return 1e-6;
+00078     }
+00079 
+00080 
+00081 protected:
+00082 
+00084     std::vector < eoRealInterval > bounds;
+00085 
+00086 };
+00087 
+00088 #endif /*MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..dbd2944d6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveObjectiveVectorComparator_8h-source.html @@ -0,0 +1,72 @@ + + +ParadisEO-MOEO: moeoObjectiveObjectiveVectorComparator.h Source File + + + + +
+
+

moeoObjectiveObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoObjectiveVectorComparator.h>
+00017 
+00021 template < class ObjectiveVector >
+00022 class moeoObjectiveObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)
+00032     {
+00033         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00034         {
+00035             if ( fabs(_objectiveVector1[i] - _objectiveVector2[i]) > ObjectiveVector::Traits::tolerance() )
+00036             {
+00037                 if (_objectiveVector1[i] < _objectiveVector2[i])
+00038                 {
+00039                     return true;
+00040                 }
+00041                 else
+00042                 {
+00043                     return false;
+00044                 }
+00045             }
+00046         }
+00047         return false;
+00048     }
+00049 
+00050 };
+00051 
+00052 #endif /*MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..1d8b36eba --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorComparator_8h-source.html @@ -0,0 +1,50 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorComparator.h Source File + + + + +
+
+

moeoObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <math.h>
+00017 #include <eoFunctor.h>
+00018 
+00023 template < class ObjectiveVector >
+00024 class moeoObjectiveVectorComparator : public eoBF < const ObjectiveVector &, const ObjectiveVector &, const bool > {};
+00025 
+00026 #endif /*MOEOOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html new file mode 100644 index 000000000..274429815 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8cpp-source.html @@ -0,0 +1,45 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorTraits.cpp Source File + + + + +
+
+

moeoObjectiveVectorTraits.cpp

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVectorTraits.cpp
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #include <core/moeoObjectiveVectorTraits.h>
+00014 
+00015 // The static variables of the moeoObjectiveVectorTraits class need to be allocated
+00016 unsigned int moeoObjectiveVectorTraits::nObj;
+00017 std::vector < bool > moeoObjectiveVectorTraits::bObj;
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html new file mode 100644 index 000000000..0c767fbd2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVectorTraits_8h-source.html @@ -0,0 +1,107 @@ + + +ParadisEO-MOEO: moeoObjectiveVectorTraits.h Source File + + + + +
+
+

moeoObjectiveVectorTraits.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVectorTraits.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEVECTORTRAITS_H_
+00014 #define MOEOOBJECTIVEVECTORTRAITS_H_
+00015 
+00016 #include <iostream>
+00017 #include <stdexcept>
+00018 #include <vector>
+00019 
+00023 class moeoObjectiveVectorTraits
+00024 {
+00025 public:
+00026 
+00032     static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives)
+00033     {
+00034         // in case the number of objectives was already set to a different value
+00035         if ( nObj && (nObj != _nObjectives) ) {
+00036             std::cout << "WARNING\n";
+00037             std::cout << "WARNING : the number of objectives are changing\n";
+00038             std::cout << "WARNING : Make sure all existing objects are destroyed\n";
+00039             std::cout << "WARNING\n";
+00040         }
+00041         // number of objectives
+00042         nObj = _nObjectives;
+00043         // min/max vector
+00044         bObj = _bObjectives;
+00045         // in case the number of objectives and the min/max vector size don't match
+00046         if (nObj != bObj.size())
+00047             throw std::runtime_error("Number of objectives and min/max size don't match in moeoObjectiveVectorTraits::setup");
+00048     }
+00049 
+00050 
+00054     static unsigned int nObjectives()
+00055     {
+00056         // in case the number of objectives would not be assigned yet
+00057         if (! nObj)
+00058             throw std::runtime_error("Number of objectives not assigned in moeoObjectiveVectorTraits");
+00059         return nObj;
+00060     }
+00061 
+00062 
+00067     static bool minimizing(unsigned int _i)
+00068     {
+00069         // in case there would be a wrong index
+00070         if (_i >= bObj.size())
+00071             throw std::runtime_error("Wrong index in moeoObjectiveVectorTraits");
+00072         return bObj[_i];
+00073     }
+00074 
+00075 
+00080     static bool maximizing(unsigned int _i) {
+00081         return (! minimizing(_i));
+00082     }
+00083 
+00084 
+00088     static double tolerance()
+00089     {
+00090         return 1e-6;
+00091     }
+00092 
+00093 
+00094 private:
+00095 
+00097     static unsigned int nObj;
+00099     static std::vector < bool > bObj;
+00100 
+00101 };
+00102 
+00103 #endif /*MOEOOBJECTIVEVECTORTRAITS_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html new file mode 100644 index 000000000..eb176bfb1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoObjectiveVector_8h-source.html @@ -0,0 +1,88 @@ + + +ParadisEO-MOEO: moeoObjectiveVector.h Source File + + + + +
+
+

moeoObjectiveVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoObjectiveVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOOBJECTIVEVECTOR_H_
+00014 #define MOEOOBJECTIVEVECTOR_H_
+00015 
+00016 #include <vector>
+00017 
+00024 template < class ObjectiveVectorTraits, class ObjectiveVectorType >
+00025 class moeoObjectiveVector : public std::vector < ObjectiveVectorType >
+00026 {
+00027 public:
+00028 
+00030     typedef ObjectiveVectorTraits Traits;
+00032     typedef ObjectiveVectorType Type;
+00033 
+00034 
+00038     moeoObjectiveVector(Type _value = Type()) : std::vector < Type > (ObjectiveVectorTraits::nObjectives(), _value)
+00039     {}
+00040 
+00041 
+00046     moeoObjectiveVector(std::vector < Type > & _v) : std::vector < Type > (_v)
+00047     {}
+00048 
+00049 
+00055     static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives)
+00056     {
+00057         ObjectiveVectorTraits::setup(_nObjectives, _bObjectives);
+00058     }
+00059 
+00060 
+00064     static unsigned int nObjectives()
+00065     {
+00066         return ObjectiveVectorTraits::nObjectives();
+00067     }
+00068 
+00069 
+00074     static bool minimizing(unsigned int _i)
+00075     {
+00076         return ObjectiveVectorTraits::minimizing(_i);
+00077     }
+00078 
+00079 
+00084     static bool maximizing(unsigned int _i)
+00085     {
+00086         return ObjectiveVectorTraits::maximizing(_i);
+00087     }
+00088 
+00089 };
+00090 
+00091 #endif /*MOEOOBJECTIVEVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html new file mode 100644 index 000000000..c8e676e7a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoOneObjectiveComparator_8h-source.html @@ -0,0 +1,72 @@ + + +ParadisEO-MOEO: moeoOneObjectiveComparator.h Source File + + + + +
+
+

moeoOneObjectiveComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoOneObjectiveComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOONEOBJECTIVECOMPARATOR_H_
+00014 #define MOEOONEOBJECTIVECOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoOneObjectiveComparator : public moeoComparator < MOEOT >
+00023 {
+00024 public:
+00025 
+00030     moeoOneObjectiveComparator(unsigned int _obj) : obj(_obj)
+00031     {
+00032         if (obj > MOEOT::ObjectiveVector::nObjectives())
+00033         {
+00034             throw std::runtime_error("Problem with the index of objective in moeoOneObjectiveComparator");
+00035         }
+00036     }
+00037 
+00038 
+00044     const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2)
+00045     {
+00046         return _moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj];
+00047     }
+00048 
+00049 
+00050 private:
+00051 
+00053     unsigned int obj;
+00054 
+00055 };
+00056 
+00057 #endif /*MOEOONEOBJECTIVECOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..4a3e88ba1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoParetoBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoParetoBasedFitnessAssignment.h Source File + + + + +
+
+

moeoParetoBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoParetoBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOPARETOBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOPARETOBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoParetoBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023     
+00024 #endif /*MOEOPARETOBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html new file mode 100644 index 000000000..c19ab5dc7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoParetoObjectiveVectorComparator_8h-source.html @@ -0,0 +1,90 @@ + + +ParadisEO-MOEO: moeoParetoObjectiveVectorComparator.h Source File + + + + +
+
+

moeoParetoObjectiveVectorComparator.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoParetoObjectiveVectorComparator.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_
+00014 #define MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_
+00015 
+00016 #include <comparator/moeoObjectiveVectorComparator.h>
+00017 
+00021 template < class ObjectiveVector >
+00022 class moeoParetoObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector >
+00023 {
+00024 public:
+00025 
+00031     const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)
+00032     {
+00033         bool dom = false;
+00034         for (unsigned int i=0; i<ObjectiveVector::nObjectives(); i++)
+00035         {
+00036             // first, we have to check if the 2 objective values are not equal for the ith objective
+00037             if ( fabs(_objectiveVector1[i] - _objectiveVector2[i]) > ObjectiveVector::Traits::tolerance() )
+00038             {
+00039                 // if the ith objective have to be minimized...
+00040                 if (ObjectiveVector::minimizing(i))
+00041                 {
+00042                     if (_objectiveVector1[i] > _objectiveVector2[i])
+00043                     {
+00044                         dom = true;             //_objectiveVector1[i] is not better than _objectiveVector2[i]
+00045                     }
+00046                     else
+00047                     {
+00048                         return false;   //_objectiveVector2 cannot dominate _objectiveVector1
+00049                     }
+00050                 }
+00051                 // if the ith objective have to be maximized...
+00052                 else if (ObjectiveVector::maximizing(i))
+00053                 {
+00054                     if (_objectiveVector1[i] > _objectiveVector2[i])
+00055                     {
+00056                         dom = true;             //_objectiveVector1[i] is not better than _objectiveVector2[i]
+00057                     }
+00058                     else
+00059                     {
+00060                         return false;   //_objectiveVector2 cannot dominate _objectiveVector1
+00061                     }
+00062                 }
+00063             }
+00064         }
+00065         return dom;
+00066     }
+00067 
+00068 };
+00069 
+00070 #endif /*MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html new file mode 100644 index 000000000..b241126fe --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRandomSelect_8h-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoRandomSelect.h Source File + + + + +
+
+

moeoRandomSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRandomSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEORANDOMSELECT_H_
+00014 #define MOEORANDOMSELECT_H_
+00015 
+00016 #include <eoRandomSelect.h>
+00017 #include <selection/moeoSelectOne.h>
+00018 
+00019 
+00023 template < class MOEOT > class moeoRandomSelect:public moeoSelectOne < MOEOT >, public eoRandomSelect <MOEOT >
+00024 {
+00025 public:
+00026 
+00030     moeoRandomSelect(){}
+00031 
+00032 
+00036     const MOEOT & operator () (const eoPop < MOEOT > &_pop)
+00037     {
+00038         return eoRandomSelect < MOEOT >::operator ()(_pop);
+00039     }
+00040 
+00041 };
+00042 
+00043 #endif /*MOEORANDOMSELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html new file mode 100644 index 000000000..b99c4410d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRealObjectiveVector_8h-source.html @@ -0,0 +1,140 @@ + + +ParadisEO-MOEO: moeoRealObjectiveVector.h Source File + + + + +
+
+

moeoRealObjectiveVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRealObjectiveVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOREALOBJECTIVEVECTOR_H_
+00014 #define MOEOREALOBJECTIVEVECTOR_H_
+00015 
+00016 #include <iostream>
+00017 #include <math.h>
+00018 #include <comparator/moeoObjectiveObjectiveVectorComparator.h>
+00019 #include <comparator/moeoParetoObjectiveVectorComparator.h>
+00020 #include <core/moeoObjectiveVector.h>
+00021 
+00026 template < class ObjectiveVectorTraits >
+00027 class moeoRealObjectiveVector : public moeoObjectiveVector < ObjectiveVectorTraits, double >
+00028 {
+00029 public:
+00030 
+00031     using moeoObjectiveVector < ObjectiveVectorTraits, double >::size;
+00032     using moeoObjectiveVector < ObjectiveVectorTraits, double >::operator[];
+00033 
+00037     moeoRealObjectiveVector(double _value = 0.0) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_value)
+00038     {}
+00039 
+00040 
+00045     moeoRealObjectiveVector(std::vector < double > & _v) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_v)
+00046     {}
+00047 
+00048 
+00054     bool dominates(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00055     {
+00056         moeoParetoObjectiveVectorComparator < moeoRealObjectiveVector<ObjectiveVectorTraits> > comparator;
+00057         return comparator(_other, *this);
+00058     }
+00059 
+00060 
+00065     bool operator==(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00066     {
+00067         for (unsigned int i=0; i < size(); i++)
+00068         {
+00069             if ( fabs(operator[](i) - _other[i]) > ObjectiveVectorTraits::tolerance() )
+00070             {
+00071                 return false;
+00072             }
+00073         }
+00074         return true;
+00075     }
+00076 
+00077 
+00082     bool operator!=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00083     {
+00084         return ! operator==(_other);
+00085     }
+00086 
+00087 
+00093     bool operator<(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00094     {
+00095         moeoObjectiveObjectiveVectorComparator < moeoRealObjectiveVector < ObjectiveVectorTraits > > cmp;
+00096         return cmp(*this, _other);
+00097     }
+00098 
+00099 
+00105     bool operator>(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00106     {
+00107         return _other < *this;
+00108     }
+00109 
+00110 
+00116     bool operator<=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00117     {
+00118         return operator==(_other) || operator<(_other);
+00119     }
+00120 
+00121 
+00127     bool operator>=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const
+00128     {
+00129         return operator==(_other) || operator>(_other);
+00130     }
+00131 
+00132 };
+00133 
+00134 
+00140 template < class ObjectiveVectorTraits >
+00141 std::ostream & operator<<(std::ostream & _os, const moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector)
+00142 {
+00143     for (unsigned int i=0; i<_objectiveVector.size(); i++)
+00144     {
+00145         _os << _objectiveVector[i] << '\t';
+00146     }
+00147     return _os;
+00148 }
+00149 
+00155 template < class ObjectiveVectorTraits >
+00156 std::istream & operator>>(std::istream & _is, moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector)
+00157 {
+00158     _objectiveVector = moeoRealObjectiveVector < ObjectiveVectorTraits > ();
+00159     for (unsigned int i=0; i<_objectiveVector.size(); i++)
+00160     {
+00161         _is >> _objectiveVector[i];
+00162     }
+00163     return _is;
+00164 }
+00165 
+00166 #endif /*MOEOREALOBJECTIVEVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html new file mode 100644 index 000000000..7cdc9f41b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRealVector_8h-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-MOEO: moeoRealVector.h Source File + + + + +
+
+

moeoRealVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRealVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOREALVECTOR_H_
+00014 #define MOEOREALVECTOR_H_
+00015 
+00016 #include <core/moeoVector.h>
+00017 
+00021 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity >
+00022 class moeoRealVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >
+00023 {
+00024 public:
+00025 
+00031     moeoRealVector(unsigned int _size = 0, double _value = 0.0) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >(_size, _value)
+00032     {}
+00033     
+00034     
+00038     virtual std::string className() const
+00039     {
+00040         return "moeoRealVector";
+00041     }
+00042     
+00043 };
+00044 
+00045 #endif /*MOEOREALVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html new file mode 100644 index 000000000..e88aacc57 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoReplacement_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoReplacement.h Source File + + + + +
+
+

moeoReplacement.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoReplacement.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOREPLACEMENT_H_
+00014 #define MOEOREPLACEMENT_H_
+00015 
+00016 #include <eoReplacement.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoReplacement : public eoReplacement < MOEOT > {};
+00023 
+00024 #endif /*MOEOREPLACEMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html new file mode 100644 index 000000000..4b959bc30 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoRouletteSelect_8h-source.html @@ -0,0 +1,77 @@ + + +ParadisEO-MOEO: moeoRouletteSelect.h Source File + + + + +
+
+

moeoRouletteSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoRouletteSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOROULETTESELECT_H_
+00014 #define MOEOROULETTESELECT_H_
+00015 
+00016 #include <selection/moeoSelectOne.h>
+00017 #include <selection/moeoSelectors.h>
+00018 
+00023 template < class MOEOT >
+00024 class moeoRouletteSelect:public moeoSelectOne < MOEOT >
+00025 {
+00026 public:
+00027 
+00032     moeoRouletteSelect (unsigned int _tSize = 2) : tSize (_tSize)
+00033     {
+00034         // consistency check
+00035         if (tSize < 2)
+00036         {
+00037             std::
+00038             cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n";
+00039             tSize = 2;
+00040         }
+00041     }
+00042 
+00043 
+00048     const MOEOT & operator  () (const eoPop < MOEOT > & _pop)
+00049     {
+00050         // use the selector
+00051         return mo_roulette_wheel(_pop,tSize);
+00052     }
+00053 
+00054 
+00055 protected:
+00056 
+00058     double & tSize;
+00059 
+00060 };
+00061 
+00062 #endif /*MOEOROULETTESELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html new file mode 100644 index 000000000..f58151216 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoScalarFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoScalarFitnessAssignment.h Source File + + + + +
+
+

moeoScalarFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoScalarFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSCALARFITNESSASSIGNMENT_H_
+00014 #define MOEOSCALARFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoScalarFitnessAssignment : public moeoFitnessAssignment < MOEOT > {};
+00023     
+00024 #endif /*MOEOSCALARFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html new file mode 100644 index 000000000..2ad91cf24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectFromPopAndArch_8h-source.html @@ -0,0 +1,93 @@ + + +ParadisEO-MOEO: moeoSelectFromPopAndArch.h Source File + + + + +
+
+

moeoSelectFromPopAndArch.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSelectFormPopAndArch.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSELECTONEFROMPOPANDARCH_H_
+00014 #define MOEOSELECTONEFROMPOPANDARCH_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <utils/eoRNG.h>
+00018 #include <archive/moeoArchive.h>
+00019 #include <selection/moeoSelectOne.h>
+00020 #include <selection/moeoRandomSelect.h>
+00021 
+00025 template < class MOEOT >
+00026 class moeoSelectFromPopAndArch : public moeoSelectOne < MOEOT >
+00027 {
+00028 public:
+00029 
+00037     moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoSelectOne < MOEOT > _archSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5)
+00038             : popSelectOne(_popSelectOne), archSelectOne(_archSelectOne), arch(_arch), ratioFromPop(_ratioFromPop)
+00039     {}
+00040 
+00041 
+00048     moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5)
+00049             : popSelectOne(_popSelectOne), archSelectOne(randomSelectOne), arch(_arch), ratioFromPop(_ratioFromPop)
+00050     {}
+00051 
+00052 
+00056     virtual const MOEOT & operator () (const eoPop < MOEOT > & pop)
+00057     {
+00058         if (arch.size() > 0)
+00059             if (rng.flip(ratioFromPop))
+00060                 return popSelectOne(pop);
+00061             else
+00062                 return archSelectOne(arch);
+00063         else
+00064             return popSelectOne(pop);
+00065     }
+00066 
+00067 
+00071     virtual void setup (const eoPop < MOEOT > & _pop)
+00072     {
+00073         popSelectOne.setup(_pop);
+00074     }
+00075 
+00076 
+00077 private:
+00078 
+00080     moeoSelectOne < MOEOT > & popSelectOne;
+00082     moeoSelectOne < MOEOT > & archSelectOne;
+00084     moeoArchive < MOEOT > & arch;
+00086     double ratioFromPop;
+00088     moeoRandomSelect < MOEOT > randomSelectOne;
+00089 
+00090 };
+00091 
+00092 #endif /*MOEOSELECTONEFROMPOPANDARCH_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html new file mode 100644 index 000000000..465c5089b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectOne_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoSelectOne.h Source File + + + + +
+
+

moeoSelectOne.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSelectOne.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSELECTONE_H_
+00014 #define MOEOSELECTONE_H_
+00015 
+00016 #include <eoSelectOne.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoSelectOne : public eoSelectOne < MOEOT > {};
+00023 
+00024 #endif /*MOEOSELECTONE_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html new file mode 100644 index 000000000..d1ef69835 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSelectors_8h-source.html @@ -0,0 +1,186 @@ + + +ParadisEO-MOEO: moeoSelectors.h Source File + + + + +
+
+

moeoSelectors.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSelectors.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSELECTORS_H_
+00014 #define MOEOSELECTORS_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 
+00018 
+00019 template <class It,class MOEOT>
+00020 It mo_deterministic_tournament(It _begin, It _end, unsigned int _t_size,moeoComparator<MOEOT>& _comparator ,eoRng& _gen = rng)
+00021 {
+00022     It best = _begin + _gen.random(_end - _begin);
+00023 
+00024     for (unsigned int i = 0; i < _t_size - 1; ++i)
+00025     {
+00026         It competitor = _begin + _gen.random(_end - _begin);
+00027         // compare the two individuals by using the comparator
+00028         if (_comparator(*best, *competitor))
+00029             // best "better" than competitor
+00030             best=competitor;
+00031     }
+00032     return best;
+00033 }
+00034 
+00035 
+00036 template <class MOEOT>
+00037 const MOEOT& mo_deterministic_tournament(const eoPop<MOEOT>& _pop, unsigned int _t_size,moeoComparator<MOEOT>& _comparator, eoRng& _gen = rng)
+00038 {
+00039     return *mo_deterministic_tournament(_pop.begin(), _pop.end(),_t_size,_comparator, _gen);
+00040 }
+00041 
+00042 
+00043 template <class MOEOT>
+00044 MOEOT& mo_deterministic_tournament(eoPop<MOEOT>& _pop, unsigned int _t_size,moeoComparator<MOEOT>& _comparator,eoRng& _gen = rng)
+00045 {
+00046     return *mo_deterministic_tournament(_pop.begin(), _pop.end(), _t_size,_comparator, _gen);
+00047 }
+00048 
+00049 
+00050 template <class It,class MOEOT>
+00051 It mo_stochastic_tournament(It _begin, It _end, double _t_rate,moeoComparator<MOEOT>& _comparator ,eoRng& _gen = rng)
+00052 {
+00053     It i1 = _begin + _gen.random(_end - _begin);
+00054     It i2 = _begin + _gen.random(_end - _begin);
+00055 
+00056     bool return_better = _gen.flip(_t_rate);
+00057 
+00058     if (_comparator(*i1, *i2))
+00059     {
+00060         if (return_better) return i2;
+00061         // else
+00062 
+00063         return i1;
+00064     }
+00065     else
+00066     {
+00067         if (return_better) return i1;
+00068         // else
+00069     }
+00070     // else
+00071 
+00072     return i2;
+00073 }
+00074 
+00075 
+00076 template <class MOEOT>
+00077 const MOEOT& mo_stochastic_tournament(const eoPop<MOEOT>& _pop, double _t_rate,moeoComparator<MOEOT>& _comparator, eoRng& _gen = rng)
+00078 {
+00079     return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate,_comparator, _gen);
+00080 }
+00081 
+00082 
+00083 template <class MOEOT>
+00084 MOEOT& mo_stochastic_tournament(eoPop<MOEOT>& _pop, double _t_rate, eoRng& _gen = rng)
+00085 {
+00086     return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen);
+00087 }
+00088 
+00089 
+00090 template <class It>
+00091 It mo_roulette_wheel(It _begin, It _end, double total, eoRng& _gen = rng)
+00092 {
+00093 
+00094     float roulette = _gen.uniform(total);
+00095 
+00096     if (roulette == 0.0)           // covers the case where total==0.0
+00097         return _begin + _gen.random(_end - _begin); // uniform choice
+00098 
+00099     It i = _begin;
+00100 
+00101     while (roulette > 0.0)
+00102     {
+00103         roulette -= static_cast<double>(*(i++));
+00104     }
+00105 
+00106     return --i;
+00107 }
+00108 
+00109 
+00110 template <class MOEOT>
+00111 const MOEOT& mo_roulette_wheel(const eoPop<MOEOT>& _pop, double total, eoRng& _gen = rng)
+00112 {
+00113     float roulette = _gen.uniform(total);
+00114 
+00115     if (roulette == 0.0)           // covers the case where total==0.0
+00116         return _pop[_gen.random(_pop.size())]; // uniform choice
+00117 
+00118     typename eoPop<MOEOT>::const_iterator i = _pop.begin();
+00119 
+00120     while (roulette > 0.0)
+00121     {
+00122         roulette -= static_cast<double>((i++)->fitness());
+00123     }
+00124 
+00125     return *--i;
+00126 }
+00127 
+00128 
+00129 template <class MOEOT>
+00130 MOEOT& mo_roulette_wheel(eoPop<MOEOT>& _pop, double total, eoRng& _gen = rng)
+00131 {
+00132     float roulette = _gen.uniform(total);
+00133 
+00134     if (roulette == 0.0)           // covers the case where total==0.0
+00135         return _pop[_gen.random(_pop.size())]; // uniform choice
+00136 
+00137     typename eoPop<MOEOT>::iterator i = _pop.begin();
+00138 
+00139     while (roulette > 0.0)
+00140     {
+00141         // fitness only
+00142         roulette -= static_cast<double>((i++)->fitness());
+00143     }
+00144 
+00145     return *--i;
+00146 }
+00147 
+00148 
+00149 #endif /*MOEOSELECTORS_H_*/
+00150 
+00151 
+00152 
+00153 
+00154 
+00155 
+00156 
+00157 
+00158 
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html new file mode 100644 index 000000000..efcc51acf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoSharingDiversityAssignment_8h-source.html @@ -0,0 +1,131 @@ + + +ParadisEO-MOEO: moeoSharingDiversityAssignment.h Source File + + + + +
+
+

moeoSharingDiversityAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoSharingDiversityAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSHARINGDIVERSITYASSIGNMENT_H_
+00014 #define MOEOSHARINGDIVERSITYASSIGNMENT_H_
+00015 
+00016 #include <eoPop.h>
+00017 #include <comparator/moeoDiversityThenFitnessComparator.h>
+00018 #include <distance/moeoDistance.h>
+00019 #include <distance/moeoDistanceMatrix.h>
+00020 #include <distance/moeoEuclideanDistance.h>
+00021 #include <diversity/moeoDiversityAssignment.h>
+00022 
+00027 template < class MOEOT >
+00028 class moeoSharingDiversityAssignment : public moeoDiversityAssignment < MOEOT >
+00029 {
+00030 public:
+00031 
+00033     typedef typename MOEOT::ObjectiveVector ObjectiveVector;
+00034 
+00035 
+00042     moeoSharingDiversityAssignment(moeoDistance<MOEOT,double> & _distance, double _nicheSize = 0.5, double _alpha = 1.0) : distance(_distance), nicheSize(_nicheSize), alpha(_alpha)
+00043     {}
+00044 
+00045 
+00051     moeoSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 1.0) : distance(defaultDistance), nicheSize(_nicheSize), alpha(_alpha)
+00052     {}
+00053 
+00054 
+00059     void operator()(eoPop < MOEOT > & _pop)
+00060     {
+00061         // 1 - set simuilarities
+00062         setSimilarities(_pop);
+00063         // 2 - a higher diversity is better, so the values need to be inverted
+00064         moeoDiversityThenFitnessComparator < MOEOT > divComparator;
+00065         double max = std::max_element(_pop.begin(), _pop.end(), divComparator)->diversity();
+00066         for (unsigned int i=0 ; i<_pop.size() ; i++)
+00067         {
+00068             _pop[i].diversity(max - _pop[i].diversity());
+00069         }
+00070     }
+00071 
+00072 
+00080     void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec)
+00081     {
+00082         std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl;
+00083     }
+00084 
+00085 
+00086 protected:
+00087 
+00089     moeoDistance < MOEOT , double > & distance;
+00091     moeoEuclideanDistance < MOEOT > defaultDistance;
+00093     double nicheSize;
+00095     double alpha;
+00096 
+00097 
+00102     virtual void setSimilarities(eoPop < MOEOT > & _pop)
+00103     {
+00104         // compute distances between every individuals
+00105         moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance);
+00106         dMatrix(_pop);
+00107         // compute similarities
+00108         double sum;
+00109         for (unsigned int i=0; i<_pop.size(); i++)
+00110         {
+00111             sum = 0.0;
+00112             for (unsigned int j=0; j<_pop.size(); j++)
+00113             {
+00114                 sum += sh(dMatrix[i][j]);
+00115             }
+00116             _pop[i].diversity(sum);
+00117         }
+00118     }
+00119 
+00120 
+00125     double sh(double _dist)
+00126     {
+00127         double result;
+00128         if (_dist < nicheSize)
+00129         {
+00130             result = 1.0 - pow(_dist / nicheSize, alpha);
+00131         }
+00132         else
+00133         {
+00134             result = 0.0;
+00135         }
+00136         return result;
+00137     }
+00138 
+00139 };
+00140 
+00141 
+00142 #endif /*MOEOSHARINGDIVERSITYASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html new file mode 100644 index 000000000..4bf4ffa16 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoStochTournamentSelect_8h-source.html @@ -0,0 +1,100 @@ + + +ParadisEO-MOEO: moeoStochTournamentSelect.h Source File + + + + +
+
+

moeoStochTournamentSelect.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoStochTournamentSelect.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOSTOCHTOURNAMENTSELECT_H_
+00014 #define MOEOSTOCHTOURNAMENTSELECT_H_
+00015 
+00016 #include <comparator/moeoComparator.h>
+00017 #include <comparator/moeoFitnessThenDiversityComparator.h>
+00018 #include <selection/moeoSelectOne.h>
+00019 #include <selection/moeoSelectors.h>
+00020 
+00024 template < class MOEOT > class moeoStochTournamentSelect:public moeoSelectOne <MOEOT>
+00025 {
+00026 public:
+00027 
+00033     moeoStochTournamentSelect (moeoComparator < MOEOT > & _comparator, double _tRate = 1.0) : comparator (_comparator), tRate (_tRate)
+00034     {
+00035         // consistency checks
+00036         if (tRate < 0.5)
+00037         {
+00038             std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n";
+00039             tRate = 0.55;
+00040         }
+00041         if (tRate > 1)
+00042         {
+00043             std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n";
+00044             tRate = 1;
+00045         }
+00046     }
+00047     
+00048 
+00053     moeoStochTournamentSelect (double _tRate = 1.0) : comparator (defaultComparator), tRate (_tRate)
+00054     {
+00055         // consistency checks
+00056         if (tRate < 0.5)
+00057         {
+00058             std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n";
+00059             tRate = 0.55;
+00060         }
+00061         if (tRate > 1)
+00062         {
+00063             std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n";
+00064             tRate = 1;
+00065         }
+00066     }
+00067 
+00068 
+00073     const MOEOT & operator() (const eoPop < MOEOT > &_pop)
+00074     {
+00075         // use the selector
+00076         return mo_stochastic_tournament(_pop,tRate,comparator);
+00077     }
+00078 
+00079 
+00080 protected:
+00081 
+00083     moeoComparator < MOEOT > & comparator;
+00085     moeoFitnessThenDiversityComparator < MOEOT > defaultComparator;
+00087     double tRate;
+00088 
+00089 };
+00090 
+00091 #endif /*MOEOSTOCHTOURNAMENTSELECT_H_ */
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html new file mode 100644 index 000000000..153a136c8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoUnaryIndicatorBasedFitnessAssignment_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-MOEO: moeoUnaryIndicatorBasedFitnessAssignment.h Source File + + + + +
+
+

moeoUnaryIndicatorBasedFitnessAssignment.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoUnaryIndicatorBasedFitnessAssignment.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00014 #define MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_
+00015 
+00016 #include <fitness/moeoIndicatorBasedFitnessAssignment.h>
+00017 
+00021 template < class MOEOT >
+00022 class moeoUnaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {};
+00023 
+00024 #endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoVector_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoVector_8h-source.html new file mode 100644 index 000000000..ffe2d3a50 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/moeoVector_8h-source.html @@ -0,0 +1,134 @@ + + +ParadisEO-MOEO: moeoVector.h Source File + + + + +
+
+

moeoVector.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
+00002 
+00003 //-----------------------------------------------------------------------------
+00004 // moeoVector.h
+00005 // (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007
+00006 /*
+00007     This library...
+00008 
+00009     Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr
+00010  */
+00011 //-----------------------------------------------------------------------------
+00012 
+00013 #ifndef MOEOVECTOR_H_
+00014 #define MOEOVECTOR_H_
+00015 
+00016 #include <iterator>
+00017 #include <vector>
+00018 #include <core/MOEO.h>
+00019 
+00024 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType >
+00025 class moeoVector : public MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >, public std::vector < GeneType >
+00026 {
+00027 public:
+00028 
+00029     using MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity > :: invalidate;
+00030     using std::vector < GeneType > :: operator[];
+00031     using std::vector < GeneType > :: begin;
+00032     using std::vector < GeneType > :: end;
+00033     using std::vector < GeneType > :: resize;
+00034     using std::vector < GeneType > :: size;
+00035 
+00037     typedef GeneType AtomType;
+00039     typedef std::vector < GeneType > ContainerType;
+00040 
+00041 
+00047     moeoVector(unsigned int _size = 0, GeneType _value = GeneType()) :
+00048             MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >(), std::vector<GeneType>(_size, _value)
+00049     {}
+00050      
+00051     
+00056     void value(const std::vector < GeneType > & _v)
+00057     {
+00058         if (_v.size() != size())           // safety check
+00059         {
+00060             if (size())            // NOT an initial empty std::vector
+00061             {
+00062                 std::cout << "Warning: Changing size in moeoVector assignation"<<std::endl;
+00063                 resize(_v.size());
+00064             }
+00065             else
+00066             {
+00067                 throw std::runtime_error("Size not initialized in moeoVector");
+00068             }
+00069         }
+00070         std::copy(_v.begin(), _v.end(), begin());
+00071         invalidate();
+00072     }
+00073 
+00074 
+00079     bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo) const
+00080     {
+00081         return MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator<(_moeo);
+00082     }
+00083 
+00084 
+00089     virtual void printOn(std::ostream & _os) const
+00090     {
+00091         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os);
+00092         _os << ' ';
+00093         _os << size() << ' ';
+00094         std::copy(begin(), end(), std::ostream_iterator<AtomType>(_os, " "));
+00095     }
+00096 
+00097 
+00102     virtual void readFrom(std::istream & _is)
+00103     {
+00104         MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is);
+00105         unsigned int sz;
+00106         _is >> sz;
+00107         resize(sz);
+00108         unsigned int i;
+00109         for (i = 0; i < sz; ++i)
+00110         {
+00111             AtomType atom;
+00112             _is >> atom;
+00113             operator[](i) = atom;
+00114         }
+00115     }
+00116 
+00117 };
+00118 
+00119 
+00125 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType >
+00126 bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2)
+00127 {
+00128     return _moeo1.operator<(_moeo2);
+00129 }
+00130 
+00131 
+00137 template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType >
+00138 bool operator>(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2)
+00139 {
+00140     return _moeo1.operator>(_moeo2);
+00141 }
+00142 
+00143 #endif /*MOEOVECTOR_H_*/
+

Generated on Fri Jul 6 09:41:04 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/search.idx b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/search.idx new file mode 100644 index 000000000..4927c4c6c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/search.idx differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/search.php b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/search.php new file mode 100644 index 000000000..13fa755ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/search.php @@ -0,0 +1,381 @@ + + +Search + + + + +
+
    +
  • Main Page
  • +
  • Classes
  • +
  • Files
  • +
  • +
    + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
    \n
    \n
  • \n
\n
\n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

".search_results()."

".matches_text(0)."
".matches_text($numDocs); + echo "\n"; + echo "
$num.".$doc["name"]."
".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
\n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
\n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
\n"; + fclose($file); +} + +main(); + + +?> +
Generated on Fri Jul 6 09:41:05 2007 for ParadisEO-MOEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_b.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_b.gif new file mode 100644 index 000000000..0d623483f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_b.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_l.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_l.gif new file mode 100644 index 000000000..9b1e6337c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_l.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_r.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_r.gif new file mode 100644 index 000000000..ce9dd9f53 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tab_r.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tabs.css b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tree.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tree.html new file mode 100644 index 000000000..69d9d5aff --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/html/tree.html @@ -0,0 +1,495 @@ + + + + + + + TreeView + + + + +
+

ParadisEO-MOEO

+
+

o*Welcome to ParadisEO-MOEO

+

o+Class List

+
+

|o*MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+

|o*moeoAchievementFitnessAssignment< MOEOT >

+

|o*moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >

+

|o*moeoAggregativeComparator< MOEOT >

+

|o*moeoAlgo

+

|o*moeoArchive< MOEOT >

+

|o*moeoArchiveObjectiveVectorSavingUpdater< MOEOT >

+

|o*moeoArchiveUpdater< MOEOT >

+

|o*moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoBinaryMetric< A1, A2, R >

+

|o*moeoBinaryMetricSavingUpdater< MOEOT >

+

|o*moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+

|o*moeoCombinedLS< MOEOT, Type >

+

|o*moeoComparator< MOEOT >

+

|o*moeoContributionMetric< ObjectiveVector >

+

|o*moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >

+

|o*moeoCriterionBasedFitnessAssignment< MOEOT >

+

|o*moeoCrowdingDiversityAssignment< MOEOT >

+

|o*moeoDetTournamentSelect< MOEOT >

+

|o*moeoDistance< MOEOT, Type >

+

|o*moeoDistanceMatrix< MOEOT, Type >

+

|o*moeoDiversityAssignment< MOEOT >

+

|o*moeoDiversityThenFitnessComparator< MOEOT >

+

|o*moeoDummyDiversityAssignment< MOEOT >

+

|o*moeoDummyFitnessAssignment< MOEOT >

+

|o*moeoEA< MOEOT >

+

|o*moeoEasyEA< MOEOT >

+

|o*moeoEasyEA< MOEOT >::eoDummyEval

+

|o*moeoEasyEA< MOEOT >::eoDummySelect

+

|o*moeoEasyEA< MOEOT >::eoDummyTransform

+

|o*moeoElitistReplacement< MOEOT >

+

|o*moeoElitistReplacement< MOEOT >::Cmp

+

|o*moeoEntropyMetric< ObjectiveVector >

+

|o*moeoEnvironmentalReplacement< MOEOT >

+

|o*moeoEnvironmentalReplacement< MOEOT >::Cmp

+

|o*moeoEuclideanDistance< MOEOT >

+

|o*moeoEvalFunc< MOEOT >

+

|o*moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoFastNonDominatedSortingFitnessAssignment< MOEOT >

+

|o*moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator

+

|o*moeoFitnessAssignment< MOEOT >

+

|o*moeoFitnessThenDiversityComparator< MOEOT >

+

|o*moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >

+

|o*moeoFrontByFrontSharingDiversityAssignment< MOEOT >

+

|o*moeoGDominanceObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoGenerationalReplacement< MOEOT >

+

|o*moeoHybridLS< MOEOT >

+

|o*moeoHypervolumeBinaryMetric< ObjectiveVector >

+

|o*moeoIBEA< MOEOT >

+

|o*moeoIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoLS< MOEOT, Type >

+

|o*moeoManhattanDistance< MOEOT >

+

|o*moeoMetric

+

|o*moeoNormalizedDistance< MOEOT, Type >

+

|o*moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+

|o*moeoNSGA< MOEOT >

+

|o*moeoNSGAII< MOEOT >

+

|o*moeoObjectiveObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >

+

|o*moeoObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoObjectiveVectorTraits

+

|o*moeoOneObjectiveComparator< MOEOT >

+

|o*moeoParetoBasedFitnessAssignment< MOEOT >

+

|o*moeoParetoObjectiveVectorComparator< ObjectiveVector >

+

|o*moeoRandomSelect< MOEOT >

+

|o*moeoRealObjectiveVector< ObjectiveVectorTraits >

+

|o*moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >

+

|o*moeoReplacement< MOEOT >

+

|o*moeoRouletteSelect< MOEOT >

+

|o*moeoScalarFitnessAssignment< MOEOT >

+

|o*moeoSelectFromPopAndArch< MOEOT >

+

|o*moeoSelectOne< MOEOT >

+

|o*moeoSharingDiversityAssignment< MOEOT >

+

|o*moeoSolutionUnaryMetric< ObjectiveVector, R >

+

|o*moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >

+

|o*moeoStochTournamentSelect< MOEOT >

+

|o*moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >

+

|o*moeoUnaryMetric< A, R >

+

|o*moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >

+

|o*moeoVectorUnaryMetric< ObjectiveVector, R >

+

|\*moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >

+
+

o+Class Hierarchy

+
+

|o+eoFunctorBase [external]

+
+

||o+eoBF< A1, A2, R > [external]

+
+

|||o+eoReplacement< EOT > [external]

+ +

|||o+eoReplacement< MOEOT > [external]

+ +

|||o+eoSelect< MOEOT > [external]

+ +

|||o+moeoBinaryMetric< A1, A2, R >

+ +

|||o+moeoComparator< MOEOT >

+ +

|||o+moeoDistance< MOEOT, Type >

+ +

|||o+moeoDistance< MOEOT, double >

+ +

|||\+moeoObjectiveVectorComparator< ObjectiveVector >

+ +
+

||o+eoBF< const const ObjectiveVector &, ObjectiveVector &, double > [external]

+ +

||o+eoBF< const const ObjectiveVector &, ObjectiveVector &, R > [external]

+ +

||o+eoBF< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double > [external]

+ +

||o+eoBF< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R > [external]

+ +

||o+eoBF< Type, moeoArchive< MOEOT > &, void > [external]

+ +

||o+eoF< void > [external]

+ +

||o+eoUF< A1, R > [external]

+ +

||o+eoUF< A, R > [external]

+ +

||o+eoUF< const eoPop< MOEOT > &, void > [external]

+ +

||o+eoUF< const ObjectiveVector &, R > [external]

+ +

||o+eoUF< const std::vector< ObjectiveVector > &, R > [external]

+ +

||o+eoUF< eoPop< MOEOT > &, void > [external]

+ +

||\+moeoMetric

+ +
+

|o+eoObject [external]

+ +

|o+eoPrintable [external]

+
+

||\+eoPersistent [external]

+
+

|| o*EO< MOEOObjectiveVector > [external]

+

|| \*eoPop< MOEOT > [external]

+
+
+

|o+moeoAlgo

+ +

|o*moeoElitistReplacement< MOEOT >::Cmp

+

|o*moeoEnvironmentalReplacement< MOEOT >::Cmp

+

|o*moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >

+

|o+moeoObjectiveVector< ObjectiveVectorTraits, double >

+ +

|\*moeoObjectiveVectorTraits

+
+

o*Class Members

+

\+File List

+
+

 o*index.h

+

 o*make_checkpoint_moeo.h

+

 o*make_continue_moeo.h

+

 o*make_ea_moeo.h

+

 o*MOEO.h

+

 o*moeoAchievementFitnessAssignment.h

+

 o*moeoAdditiveEpsilonBinaryMetric.h

+

 o*moeoAggregativeComparator.h

+

 o*moeoAlgo.h

+

 o*moeoArchive.h

+

 o*moeoArchiveObjectiveVectorSavingUpdater.h

+

 o*moeoArchiveUpdater.h

+

 o*moeoBinaryIndicatorBasedFitnessAssignment.h

+

 o*moeoBinaryMetricSavingUpdater.h

+

 o*moeoBitVector.h

+

 o*moeoCombinedLS.h

+

 o*moeoComparator.h

+

 o*moeoContributionMetric.h

+

 o*moeoConvertPopToObjectiveVectors.h

+

 o*moeoCriterionBasedFitnessAssignment.h

+

 o*moeoCrowdingDiversityAssignment.h

+

 o*moeoDetTournamentSelect.h

+

 o*moeoDistance.h

+

 o*moeoDistanceMatrix.h

+

 o*moeoDiversityAssignment.h

+

 o*moeoDiversityThenFitnessComparator.h

+

 o*moeoDummyDiversityAssignment.h

+

 o*moeoDummyFitnessAssignment.h

+

 o*moeoEA.h

+

 o*moeoEasyEA.h

+

 o*moeoElitistReplacement.h

+

 o*moeoEntropyMetric.h

+

 o*moeoEnvironmentalReplacement.h

+

 o*moeoEuclideanDistance.h

+

 o*moeoEvalFunc.h

+

 o*moeoExpBinaryIndicatorBasedFitnessAssignment.h

+

 o*moeoFastNonDominatedSortingFitnessAssignment.h

+

 o*moeoFitnessAssignment.h

+

 o*moeoFitnessThenDiversityComparator.h

+

 o*moeoFrontByFrontCrowdingDiversityAssignment.h

+

 o*moeoFrontByFrontSharingDiversityAssignment.h

+

 o*moeoGDominanceObjectiveVectorComparator.h

+

 o*moeoGenerationalReplacement.h

+

 o*moeoHybridLS.h

+

 o*moeoHypervolumeBinaryMetric.h

+

 o*moeoIBEA.h

+

 o*moeoIndicatorBasedFitnessAssignment.h

+

 o*moeoLS.h

+

 o*moeoManhattanDistance.h

+

 o*moeoMetric.h

+

 o*moeoNormalizedDistance.h

+

 o*moeoNormalizedSolutionVsSolutionBinaryMetric.h

+

 o*moeoNSGA.h

+

 o*moeoNSGAII.h

+

 o*moeoObjectiveObjectiveVectorComparator.h

+

 o*moeoObjectiveVector.h

+

 o*moeoObjectiveVectorComparator.h

+

 o*moeoObjectiveVectorTraits.cpp

+

 o*moeoObjectiveVectorTraits.h

+

 o*moeoOneObjectiveComparator.h

+

 o*moeoParetoBasedFitnessAssignment.h

+

 o*moeoParetoObjectiveVectorComparator.h

+

 o*moeoRandomSelect.h

+

 o*moeoRealObjectiveVector.h

+

 o*moeoRealVector.h

+

 o*moeoReplacement.h

+

 o*moeoRouletteSelect.h

+

 o*moeoScalarFitnessAssignment.h

+

 o*moeoSelectFromPopAndArch.h

+

 o*moeoSelectOne.h

+

 o*moeoSelectors.h

+

 o*moeoSharingDiversityAssignment.h

+

 o*moeoStochTournamentSelect.h

+

 o*moeoUnaryIndicatorBasedFitnessAssignment.h

+

 \*moeoVector.h

+
+
+
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/index.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/index.h new file mode 100644 index 000000000..72ba706bb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/index.h @@ -0,0 +1,44 @@ +/** @mainpage Welcome to ParadisEO-MOEO + +@section intro Introduction + +ParadisEO-MOEO is a white-box object-oriented generic framework dedicated to the flexible design of evolutionary multi-objective algorithms. +This paradigm-free software embeds some features and techniques for Pareto-based resolution and +aims to provide a set of classes allowing to ease and speed up the development of computationally efficient programs. +It is based on a clear conceptual distinction between the solution methods and the multi-objective problems they are intended to solve. +This separation confers a maximum design and code reuse. +ParadisEO-MOEO provides a broad range of archive-related features (such as elitism or performance metrics) +and the most common Pareto-based fitness assignment strategies (MOGA, NSGA, SPEA, IBEA and more). +Furthermore, parallel and distributed models as well as hybridization mechanisms can be applied to an algorithm designed within ParadisEO-MOEO +using the whole version of ParadisEO. + + + +@section tutorials Tutorials + +Tutorials for ParadisEO-MOEO are available here. + + + +@section install Installation + +The installation procedure of the package is detailed in the README file in the top-directory of the source-tree. + + + +@section design Overall Design + +For an introduction to the design of ParadisEO-MOEO, +you can look at the ParadisEO website. +*/ + + + +/** @page webpages Related webpages + +- ParadisEO homepage +- INRIA GForge project page +- README +- NEWS +*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/FreeSans.ttf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/FreeSans.ttf new file mode 100644 index 000000000..b550b90ba Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/FreeSans.ttf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/Makefile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/Makefile new file mode 100644 index 000000000..776fcf968 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/Makefile @@ -0,0 +1,39 @@ +all: clean refman.dvi + +ps: refman.ps + +pdf: refman.pdf + +ps_2on1: refman_2on1.ps + +pdf_2on1: refman_2on1.pdf + +refman.ps: refman.dvi + dvips -o refman.ps refman.dvi + +refman.pdf: refman.ps + ps2pdf refman.ps refman.pdf + +refman.dvi: refman.tex doxygen.sty + echo "Running latex..." + latex refman.tex + echo "Running makeindex..." + makeindex refman.idx + echo "Rerunning latex...." + latex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + latex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + +refman_2on1.ps: refman.ps + psnup -2 refman.ps >refman_2on1.ps + +refman_2on1.pdf: refman_2on1.ps + ps2pdf refman_2on1.ps refman_2on1.pdf + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/annotated.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/annotated.tex new file mode 100644 index 000000000..72ddd57a4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/annotated.tex @@ -0,0 +1,84 @@ +\section{Paradis\-EO-MOEO Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\bf{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} (Base class allowing to represent a solution (an individual) for multi-objective optimization )}{\pageref{classMOEO}}{} +\item\contentsline{section}{\bf{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$} (Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980) )}{\pageref{classmoeoAchievementFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$} (Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C )}{\pageref{classmoeoAdditiveEpsilonBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Aggregative\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value )}{\pageref{classmoeoAggregativeComparator}}{} +\item\contentsline{section}{\bf{moeo\-Algo} (Abstract class for multi-objective algorithms )}{\pageref{classmoeoAlgo}}{} +\item\contentsline{section}{\bf{moeo\-Archive$<$ MOEOT $>$} (An archive is a secondary population that stores non-dominated solutions )}{\pageref{classmoeoArchive}}{} +\item\contentsline{section}{\bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$} (This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation )}{\pageref{classmoeoArchiveObjectiveVectorSavingUpdater}}{} +\item\contentsline{section}{\bf{moeo\-Archive\-Updater$<$ MOEOT $>$} (This class allows to update the archive at each generation with newly found non-dominated solutions )}{\pageref{classmoeoArchiveUpdater}}{} +\item\contentsline{section}{\bf{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Indicator\-Based\-Fitness\-Assignment for binary indicators )}{\pageref{classmoeoBinaryIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Binary\-Metric$<$ A1, A2, R $>$} (Base class for binary metrics )}{\pageref{classmoeoBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$} (This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file )}{\pageref{classmoeoBinaryMetricSavingUpdater}}{} +\item\contentsline{section}{\bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} (This class is an implementationeo of a simple bit-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector} )}{\pageref{classmoeoBitVector}}{} +\item\contentsline{section}{\bf{moeo\-Combined\-LS$<$ MOEOT, Type $>$} (This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions )}{\pageref{classmoeoCombinedLS}}{} +\item\contentsline{section}{\bf{moeo\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions )}{\pageref{classmoeoComparator}}{} +\item\contentsline{section}{\bf{moeo\-Contribution\-Metric$<$ Objective\-Vector $>$} (The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc )}{\pageref{classmoeoContributionMetric}}{} +\item\contentsline{section}{\bf{moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$} (Functor allowing to get a vector of objective vectors from a population )}{\pageref{classmoeoConvertPopToObjectiveVectors}}{} +\item\contentsline{section}{\bf{moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Criterion\-Based\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for criterion-based strategies )}{\pageref{classmoeoCriterionBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} (Diversity assignment sheme based on crowding proposed in: K )}{\pageref{classmoeoCrowdingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Det\-Tournament\-Select$<$ MOEOT $>$} (Selection strategy that selects ONE individual by deterministic tournament )}{\pageref{classmoeoDetTournamentSelect}}{} +\item\contentsline{section}{\bf{moeo\-Distance$<$ MOEOT, Type $>$} (The base class for distance computation )}{\pageref{classmoeoDistance}}{} +\item\contentsline{section}{\bf{moeo\-Distance\-Matrix$<$ MOEOT, Type $>$} (A matrix to compute distances between every pair of individuals contained in a population )}{\pageref{classmoeoDistanceMatrix}}{} +\item\contentsline{section}{\bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} (Functor that sets the diversity values of a whole population )}{\pageref{classmoeoDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to their diversity values, then according to their fitness values )}{\pageref{classmoeoDiversityThenFitnessComparator}}{} +\item\contentsline{section}{\bf{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$} (Moeo\-Dummy\-Diversity\-Assignment is a \doxyref{moeo\-Diversity\-Assignment}{p.}{classmoeoDiversityAssignment} that gives the value '0' as the individual's diversity for a whole population if it is invalid )}{\pageref{classmoeoDummyDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Dummy\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} that gives the value '0' as the individual's fitness for a whole population if it is invalid )}{\pageref{classmoeoDummyFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-EA$<$ MOEOT $>$} (Abstract class for multi-objective evolutionary algorithms )}{\pageref{classmoeoEA}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$} (An easy class to design multi-objective evolutionary algorithms )}{\pageref{classmoeoEasyEA}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval} (\doxyref{Dummy} eval )}{\pageref{classmoeoEasyEA_1_1eoDummyEval}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select} (\doxyref{Dummy} select )}{\pageref{classmoeoEasyEA_1_1eoDummySelect}}{} +\item\contentsline{section}{\bf{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform} (\doxyref{Dummy} transform )}{\pageref{classmoeoEasyEA_1_1eoDummyTransform}}{} +\item\contentsline{section}{\bf{moeo\-Elitist\-Replacement$<$ MOEOT $>$} (Elitist replacement strategy that consists in keeping the N best individuals )}{\pageref{classmoeoElitistReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp} (This object is used to compare solutions in order to sort the population )}{\pageref{classmoeoElitistReplacement_1_1Cmp}}{} +\item\contentsline{section}{\bf{moeo\-Entropy\-Metric$<$ Objective\-Vector $>$} (The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc )}{\pageref{classmoeoEntropyMetric}}{} +\item\contentsline{section}{\bf{moeo\-Environmental\-Replacement$<$ MOEOT $>$} (Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion )}{\pageref{classmoeoEnvironmentalReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp} (This object is used to compare solutions in order to sort the population )}{\pageref{classmoeoEnvironmentalReplacement_1_1Cmp}}{} +\item\contentsline{section}{\bf{moeo\-Euclidean\-Distance$<$ MOEOT $>$} (A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e )}{\pageref{classmoeoEuclideanDistance}}{} +\item\contentsline{section}{\bf{moeo\-Eval\-Func$<$ MOEOT $>$} }{\pageref{classmoeoEvalFunc}}{} +\item\contentsline{section}{\bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Fitness assignment sheme based on an indicator proposed in: E )}{\pageref{classmoeoExpBinaryIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$} (Fitness assignment sheme based on Pareto-dominance count proposed in: N )}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator} (Functor allowing to compare two solutions according to their first objective value, then their second, and so on )}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator}}{} +\item\contentsline{section}{\bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} (Functor that sets the fitness values of a whole population )}{\pageref{classmoeoFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to their fitness values, then according to their diversity values )}{\pageref{classmoeoFitnessThenDiversityComparator}}{} +\item\contentsline{section}{\bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} (Diversity assignment sheme based on crowding proposed in: K )}{\pageref{classmoeoFrontByFrontCrowdingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} (Sharing assignment scheme on the way it is used in NSGA )}{\pageref{classmoeoFrontByFrontSharingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (This functor class allows to compare 2 objective vectors according to g-dominance )}{\pageref{classmoeoGDominanceObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Generational\-Replacement$<$ MOEOT $>$} (Generational replacement: only the new individuals are preserved )}{\pageref{classmoeoGenerationalReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Hybrid\-LS$<$ MOEOT $>$} (This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified )}{\pageref{classmoeoHybridLS}}{} +\item\contentsline{section}{\bf{moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$} (Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., K\~{A}¼nzli S )}{\pageref{classmoeoHypervolumeBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-IBEA$<$ MOEOT $>$} (IBEA (Indicator-Based Evolutionary Algorithm) as described in: E )}{\pageref{classmoeoIBEA}}{} +\item\contentsline{section}{\bf{moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Indicator\-Based\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Indicator-based strategies )}{\pageref{classmoeoIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-LS$<$ MOEOT, Type $>$} (Abstract class for local searches applied to multi-objective optimization )}{\pageref{classmoeoLS}}{} +\item\contentsline{section}{\bf{moeo\-Manhattan\-Distance$<$ MOEOT $>$} (A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e )}{\pageref{classmoeoManhattanDistance}}{} +\item\contentsline{section}{\bf{moeo\-Metric} (Base class for performance metrics (also known as quality indicators) )}{\pageref{classmoeoMetric}}{} +\item\contentsline{section}{\bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} (The base class for double distance computation with normalized objective values (i.e )}{\pageref{classmoeoNormalizedDistance}}{} +\item\contentsline{section}{\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} (Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values )}{\pageref{classmoeoNormalizedSolutionVsSolutionBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-NSGA$<$ MOEOT $>$} (NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N )}{\pageref{classmoeoNSGA}}{} +\item\contentsline{section}{\bf{moeo\-NSGAII$<$ MOEOT $>$} (NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S )}{\pageref{classmoeoNSGAII}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on )}{\pageref{classmoeoObjectiveObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$} (Abstract class allowing to represent a solution in the objective space (phenotypic representation) )}{\pageref{classmoeoObjectiveVector}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (Abstract class allowing to compare 2 objective vectors )}{\pageref{classmoeoObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Objective\-Vector\-Traits} (A traits class for \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} to specify the number of objectives and which ones have to be minimized or maximized )}{\pageref{classmoeoObjectiveVectorTraits}}{} +\item\contentsline{section}{\bf{moeo\-One\-Objective\-Comparator$<$ MOEOT $>$} (Functor allowing to compare two solutions according to one objective )}{\pageref{classmoeoOneObjectiveComparator}}{} +\item\contentsline{section}{\bf{moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Pareto\-Based\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Pareto-based strategies )}{\pageref{classmoeoParetoBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} (This functor class allows to compare 2 objective vectors according to Pareto dominance )}{\pageref{classmoeoParetoObjectiveVectorComparator}}{} +\item\contentsline{section}{\bf{moeo\-Random\-Select$<$ MOEOT $>$} (Selection strategy that selects only one element randomly from a whole population )}{\pageref{classmoeoRandomSelect}}{} +\item\contentsline{section}{\bf{moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$} (This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e )}{\pageref{classmoeoRealObjectiveVector}}{} +\item\contentsline{section}{\bf{moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} (This class is an implementation of a simple double-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector} )}{\pageref{classmoeoRealVector}}{} +\item\contentsline{section}{\bf{moeo\-Replacement$<$ MOEOT $>$} (Replacement strategy for multi-objective optimization )}{\pageref{classmoeoReplacement}}{} +\item\contentsline{section}{\bf{moeo\-Roulette\-Select$<$ MOEOT $>$} (Selection strategy that selects ONE individual by using roulette wheel process )}{\pageref{classmoeoRouletteSelect}}{} +\item\contentsline{section}{\bf{moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Scalar\-Fitness\-Assignment is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for scalar strategies )}{\pageref{classmoeoScalarFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$} (Elitist selection process that consists in choosing individuals in the archive as well as in the current population )}{\pageref{classmoeoSelectFromPopAndArch}}{} +\item\contentsline{section}{\bf{moeo\-Select\-One$<$ MOEOT $>$} (Selection strategy for multi-objective optimization that selects only one element from a whole population )}{\pageref{classmoeoSelectOne}}{} +\item\contentsline{section}{\bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} (Sharing assignment scheme originally porposed by: D )}{\pageref{classmoeoSharingDiversityAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$} (Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector )}{\pageref{classmoeoSolutionUnaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} (Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors )}{\pageref{classmoeoSolutionVsSolutionBinaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$} (Selection strategy that selects ONE individual by stochastic tournament )}{\pageref{classmoeoStochTournamentSelect}}{} +\item\contentsline{section}{\bf{moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} (Moeo\-Indicator\-Based\-Fitness\-Assignment for unary indicators )}{\pageref{classmoeoUnaryIndicatorBasedFitnessAssignment}}{} +\item\contentsline{section}{\bf{moeo\-Unary\-Metric$<$ A, R $>$} (Base class for unary metrics )}{\pageref{classmoeoUnaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} (Base class for fixed length chromosomes, just derives from \doxyref{MOEO}{p.}{classMOEO} and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison) )}{\pageref{classmoeoVector}}{} +\item\contentsline{section}{\bf{moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$} (Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors) )}{\pageref{classmoeoVectorUnaryMetric}}{} +\item\contentsline{section}{\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$} (Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors) )}{\pageref{classmoeoVectorVsVectorBinaryMetric}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classMOEO.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classMOEO.eps new file mode 100644 index 000000000..a23d66bea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classMOEO.eps @@ -0,0 +1,243 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 80.6452 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 6.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) cw +(moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 1 2 box + (EO< MOEOObjectiveVector >) 1 3 box + (eoObject) 0.5 4 box + (eoPersistent) 1.5 4 box + (eoPrintable) 1.5 5 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) 0 1 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) 1 1 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) 2 1 box + (moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 1 0 box + (moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 2 0 box + +% ----- relations ----- + +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +0.5 1.5 4 conn +solid +1 0.5 4 in +solid +1 1.5 4 in +solid +0 1.5 4 out +solid +1 1.5 5 in +solid +1 1 1.25 out +solid +0 2 2 conn +solid +0 0 1.75 in +solid +0 1 1.75 in +solid +1 1 0.25 out +solid +0 2 1.75 in +solid +1 2 0.25 out +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classMOEO.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classMOEO.tex new file mode 100644 index 000000000..06e3ed232 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classMOEO.tex @@ -0,0 +1,226 @@ +\section{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference} +\label{classMOEO}\index{MOEO@{MOEO}} +Base class allowing to represent a solution (an individual) for multi-objective optimization. + + +{\tt \#include $<$MOEO.h$>$} + +Inheritance diagram for MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.25806cm]{classMOEO} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOObjective\-Vector \bf{Objective\-Vector}\label{classMOEO_9fafca99234ef3cd9fdbaf05bde5a275} + +\begin{CompactList}\small\item\em the objective vector type of a solution \item\end{CompactList}\item +typedef MOEOFitness \bf{Fitness}\label{classMOEO_03184b6c0b5c905e0ff5a790a3d55803} + +\begin{CompactList}\small\item\em the fitness type of a solution \item\end{CompactList}\item +typedef MOEODiversity \bf{Diversity}\label{classMOEO_9682a883fedc6333e95906e02236d492} + +\begin{CompactList}\small\item\em the diversity type of a solution \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{MOEO} ()\label{classMOEO_cff537a68ecc80c753318d3e12f842f5} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +virtual \bf{$\sim$MOEO} ()\label{classMOEO_0215e9acab4ab57088175f9856e6c48c} + +\begin{CompactList}\small\item\em Virtual dtor. \item\end{CompactList}\item +\bf{Objective\-Vector} \bf{objective\-Vector} () const \label{classMOEO_7509143b0f18644e7d3183a039cece7b} + +\begin{CompactList}\small\item\em Returns the objective vector of the current solution. \item\end{CompactList}\item +void \bf{objective\-Vector} (const \bf{Objective\-Vector} \&\_\-objective\-Vector\-Value) +\begin{CompactList}\small\item\em Sets the objective vector of the current solution. \item\end{CompactList}\item +void \bf{invalidate\-Objective\-Vector} ()\label{classMOEO_6b75e7e84726cf4e2d50216a35cec70b} + +\begin{CompactList}\small\item\em Sets the objective vector as invalid. \item\end{CompactList}\item +bool \bf{invalid\-Objective\-Vector} () const \label{classMOEO_c8e93beabdab8c2f79f17c7e39efdd05} + +\begin{CompactList}\small\item\em Returns true if the objective vector is invalid, false otherwise. \item\end{CompactList}\item +\bf{Fitness} \bf{fitness} () const \label{classMOEO_c02c16902f914a6fde83a33d2c8b1534} + +\begin{CompactList}\small\item\em Returns the fitness value of the current solution. \item\end{CompactList}\item +void \bf{fitness} (const \bf{Fitness} \&\_\-fitness\-Value) +\begin{CompactList}\small\item\em Sets the fitness value of the current solution. \item\end{CompactList}\item +void \bf{invalidate\-Fitness} ()\label{classMOEO_55876e2e7cd537052fec1c7f46f37ffe} + +\begin{CompactList}\small\item\em Sets the fitness value as invalid. \item\end{CompactList}\item +bool \bf{invalid\-Fitness} () const \label{classMOEO_9423f9daebb1f7be6d52c80692e4af48} + +\begin{CompactList}\small\item\em Returns true if the fitness value is invalid, false otherwise. \item\end{CompactList}\item +\bf{Diversity} \bf{diversity} () const \label{classMOEO_c610f4636e8c26a351fcfbc25028aa01} + +\begin{CompactList}\small\item\em Returns the diversity value of the current solution. \item\end{CompactList}\item +void \bf{diversity} (const \bf{Diversity} \&\_\-diversity\-Value) +\begin{CompactList}\small\item\em Sets the diversity value of the current solution. \item\end{CompactList}\item +void \bf{invalidate\-Diversity} ()\label{classMOEO_1283a27baab9728673445832e6d4301a} + +\begin{CompactList}\small\item\em Sets the diversity value as invalid. \item\end{CompactList}\item +bool \bf{invalid\-Diversity} () const \label{classMOEO_c4941e8e600fd360fdf1b061ee938e34} + +\begin{CompactList}\small\item\em Returns true if the diversity value is invalid, false otherwise. \item\end{CompactList}\item +void \bf{invalidate} ()\label{classMOEO_1069501a40e07071d78c067c46b696ee} + +\begin{CompactList}\small\item\em Sets the objective vector, the fitness value and the diversity value as invalid. \item\end{CompactList}\item +bool \bf{invalid} () const \label{classMOEO_314df446d1a9211121cedb2629da8906} + +\begin{CompactList}\small\item\em Returns true if the fitness value is invalid, false otherwise. \item\end{CompactList}\item +bool \bf{operator$<$} (const \bf{MOEO} \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the objective vector of the current solution is smaller than the objective vector of \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +virtual std::string \bf{class\-Name} () const \label{classMOEO_ca43305b2f4d1b1933f7e1c579404379} + +\begin{CompactList}\small\item\em Return the class id (the class name as a std::string). \item\end{CompactList}\item +virtual void \bf{print\-On} (std::ostream \&\_\-os) const +\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item +virtual void \bf{read\-From} (std::istream \&\_\-is) +\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{Objective\-Vector} \bf{objective\-Vector\-Value}\label{classMOEO_26b6fd1187b825b655d5a34b1d0693c9} + +\begin{CompactList}\small\item\em the objective vector of this solution \item\end{CompactList}\item +bool \bf{invalid\-Objective\-Vector\-Value}\label{classMOEO_d07613f286ef484f164c51c9c1b2dc91} + +\begin{CompactList}\small\item\em true if the objective vector is invalid \item\end{CompactList}\item +\bf{Fitness} \bf{fitness\-Value}\label{classMOEO_bcc3104ab7311fa5987de80811393c7c} + +\begin{CompactList}\small\item\em the fitness value of this solution \item\end{CompactList}\item +bool \bf{invalid\-Fitness\-Value}\label{classMOEO_17f57546c6de38604d6749cc6ef9d254} + +\begin{CompactList}\small\item\em true if the fitness value is invalid \item\end{CompactList}\item +\bf{Diversity} \bf{diversity\-Value}\label{classMOEO_83cc0d3a4020cbd7e1ff895dfedc61eb} + +\begin{CompactList}\small\item\em the diversity value of this solution \item\end{CompactList}\item +bool \bf{invalid\-Diversity\-Value}\label{classMOEO_c53c08b7c51d4cc06efe58c6127f9b7d} + +\begin{CompactList}\small\item\em true if the diversity value is invalid \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} + +Base class allowing to represent a solution (an individual) for multi-objective optimization. + +The template argument MOEOObjective\-Vector allows to represent the solution in the objective space (it can be a \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Using some specific representations, you will have to define a copy constructor if the default one is not what you want. In the same cases, you will also have to define the affectation operator (operator=). Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. Besides, note that, contrary to the mono-objective case (and to \doxyref{EO}) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. + + + +Definition at line 34 of file MOEO.h. + +\subsection{Member Function Documentation} +\index{MOEO@{MOEO}!objectiveVector@{objectiveVector}} +\index{objectiveVector@{objectiveVector}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector (const \bf{Objective\-Vector} \& {\em \_\-objective\-Vector\-Value})\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_d4a765a76f9acc1bca36297ab55d7282} + + +Sets the objective vector of the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector\-Value}]the new objective vector \end{description} +\end{Desc} + + +Definition at line 85 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.\index{MOEO@{MOEO}!fitness@{fitness}} +\index{fitness@{fitness}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::fitness (const \bf{Fitness} \& {\em \_\-fitness\-Value})\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_4dc05ded73bb60d1a51e282006c8942d} + + +Sets the fitness value of the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Value}]the new fitness value \end{description} +\end{Desc} + + +Definition at line 127 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::fitness\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Fitness\-Value.\index{MOEO@{MOEO}!diversity@{diversity}} +\index{diversity@{diversity}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::diversity (const \bf{Diversity} \& {\em \_\-diversity\-Value})\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_1f0a391984cd14bcf930d1d81dd4848e} + + +Sets the diversity value of the current solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-diversity\-Value}]the new diversity value \end{description} +\end{Desc} + + +Definition at line 169 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::diversity\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Diversity\-Value.\index{MOEO@{MOEO}!operator<@{operator$<$}} +\index{operator<@{operator$<$}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ bool \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::operator$<$ (const \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classMOEO_119ef916de4955298febaf3e1c8ad705} + + +Returns true if the objective vector of the current solution is smaller than the objective vector of \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +You should implement another function in the sub-class of \doxyref{MOEO}{p.}{classMOEO} to have another sorting mecanism. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{MOEO}{p.}{classMOEO} object to compare with \end{description} +\end{Desc} + + +Definition at line 220 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector().\index{MOEO@{MOEO}!printOn@{printOn}} +\index{printOn@{printOn}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt [inline, virtual]}}\label{classMOEO_a3b6074b3289585bf4dc6998e8397e24} + + +Writing object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-os}]output stream \end{description} +\end{Desc} + + +Reimplemented from \bf{EO$<$ MOEOObjective\-Vector $>$}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_78f821c548cf46d8bcd30aa8a52ffb7c}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}, and \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}. + +Definition at line 239 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector(), and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value.\index{MOEO@{MOEO}!readFrom@{readFrom}} +\index{readFrom@{readFrom}!MOEO@{MOEO}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{MOEO}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classMOEO_1bbd9cb1a7709592bf4bc29dff8c5273} + + +Reading object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-is}]input stream \end{description} +\end{Desc} + + +Reimplemented from \bf{EO$<$ MOEOObjective\-Vector $>$}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}, \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}, and \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}. + +Definition at line 256 of file MOEO.h. + +References MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalidate\-Objective\-Vector(), MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::invalid\-Objective\-Vector\-Value, and MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::objective\-Vector\-Value. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +MOEO.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.eps new file mode 100644 index 000000000..d447c1718 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 336.7 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.485 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoAchievementFitnessAssignment< MOEOT >) cw +(moeoScalarFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoAchievementFitnessAssignment< MOEOT >) 0 0 box + (moeoScalarFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex new file mode 100644 index 000000000..71218a65c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAchievementFitnessAssignment.tex @@ -0,0 +1,172 @@ +\section{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoAchievementFitnessAssignment}\index{moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}} +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + + +{\tt \#include $<$moeo\-Achievement\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoAchievementFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoAchievementFitnessAssignment_1a58a88ff0175cf303eb63d8b4f52a26} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \&\_\-reference, std::vector$<$ double $>$ \&\_\-lambdas, double \_\-spn=0.0001) +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \&\_\-reference, double \_\-spn=0.0001) +\begin{CompactList}\small\item\em Ctor with default values for lambdas (1/n\-Objectives). \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account (nothing to do). \item\end{CompactList}\item +void \bf{set\-Reference} (const \bf{Objective\-Vector} \&\_\-reference) +\begin{CompactList}\small\item\em Sets the reference point. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +double \bf{inf} () const \label{classmoeoAchievementFitnessAssignment_cdc77cfe1180bc792b9de82755828896} + +\begin{CompactList}\small\item\em Returns a big value (regarded as infinite). \item\end{CompactList}\item +void \bf{compute} (MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Computes the fitness value for a solution. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{Objective\-Vector} \bf{reference}\label{classmoeoAchievementFitnessAssignment_3f01cc20823b53f440dd1ab5a82c3564} + +\begin{CompactList}\small\item\em the reference point \item\end{CompactList}\item +std::vector$<$ double $>$ \bf{lambdas}\label{classmoeoAchievementFitnessAssignment_2992fb7c43286bef9cd6dc7628fa083a} + +\begin{CompactList}\small\item\em the weighted coefficients vector \item\end{CompactList}\item +double \bf{spn}\label{classmoeoAchievementFitnessAssignment_bf99cd0c85e298bdd1281ef2fb06e7b0} + +\begin{CompactList}\small\item\em an arbitrary small positive number (0 $<$ \_\-spn $<$$<$ 1) \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$} + +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + + + +Definition at line 24 of file moeo\-Achievement\-Fitness\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}} +\index{moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \& {\em \_\-reference}, std::vector$<$ double $>$ \& {\em \_\-lambdas}, double {\em \_\-spn} = {\tt 0.0001})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAchievementFitnessAssignment_52ae7d8112e66813232172a26d03cbb8} + + +Default ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-reference}]reference point vector \item[{\em \_\-lambdas}]weighted coefficients vector \item[{\em \_\-spn}]arbitrary small positive number (0 $<$ \_\-spn $<$$<$ 1) \end{description} +\end{Desc} + + +Definition at line 38 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::spn.\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}} +\index{moeoAchievementFitnessAssignment@{moeoAchievementFitnessAssignment}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Achievement\-Fitness\-Assignment} (\bf{Objective\-Vector} \& {\em \_\-reference}, double {\em \_\-spn} = {\tt 0.0001})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAchievementFitnessAssignment_75d9668a256381ef764352d705dcf47a} + + +Ctor with default values for lambdas (1/n\-Objectives). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-reference}]reference point vector \item[{\em \_\-spn}]arbitrary small positive number (0 $<$ \_\-spn $<$$<$ 1) \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::lambdas, and moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::spn. + +\subsection{Member Function Documentation} +\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoAchievementFitnessAssignment_d5863db9571d7f23a16ca184adf562a3} + + +Sets the fitness values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 75 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::compute().\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoAchievementFitnessAssignment_a6a2ae6c263dbcea3c16cde4c8a1e5fc} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account (nothing to do). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 89 of file moeo\-Achievement\-Fitness\-Assignment.h.\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!setReference@{setReference}} +\index{setReference@{setReference}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::set\-Reference (const \bf{Objective\-Vector} \& {\em \_\-reference})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAchievementFitnessAssignment_d200530e3fbdf847dca970ac2265d83d} + + +Sets the reference point. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-reference}]the new reference point \end{description} +\end{Desc} + + +Definition at line 99 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::reference.\index{moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}!compute@{compute}} +\index{compute@{compute}!moeoAchievementFitnessAssignment@{moeo\-Achievement\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Achievement\-Fitness\-Assignment}$<$ MOEOT $>$::compute (MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoAchievementFitnessAssignment_7c027540ed0d7f61559f636b6b8a4b29} + + +Computes the fitness value for a solution. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo}]the solution \end{description} +\end{Desc} + + +Definition at line 128 of file moeo\-Achievement\-Fitness\-Assignment.h. + +References moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::inf(), moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::lambdas, moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::reference, and moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::spn. + +Referenced by moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Achievement\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps new file mode 100644 index 000000000..cc5b0870f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.159 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) 0.5 0 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 2 box + (moeoBinaryMetric< A1, A2, R >) 0.5 3 box + (eoBF< A1, A2, R >) 0 4 box + (moeoMetric) 1 4 box + (eoFunctorBase) 0 5 box + (eoFunctorBase) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +0 0 4 out +solid +1 1 4 in +solid +0 1 4 out +solid +1 0 5 in +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex new file mode 100644 index 000000000..7f652f420 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAdditiveEpsilonBinaryMetric.tex @@ -0,0 +1,78 @@ +\section{moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoAdditiveEpsilonBinaryMetric}\index{moeoAdditiveEpsilonBinaryMetric@{moeoAdditiveEpsilonBinaryMetric}} +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + + +{\tt \#include $<$moeo\-Additive\-Epsilon\-Binary\-Metric.h$>$} + +Inheritance diagram for moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.70044cm]{classmoeoAdditiveEpsilonBinaryMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{operator()} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2) +\begin{CompactList}\small\item\em Returns the minimal distance by which the objective vector \_\-o1 must be translated in all objectives so that it weakly dominates the objective vector \_\-o2. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +double \bf{epsilon} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2, const unsigned int \_\-obj) +\begin{CompactList}\small\item\em Returns the epsilon value by which the objective vector \_\-o1 must be translated in the objective \_\-obj so that it dominates the objective vector \_\-o2. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$} + +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + +M., Grunert da Fonseca V.: Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117\^{a}€“132 (2003). + + + +Definition at line 24 of file moeo\-Additive\-Epsilon\-Binary\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Additive\-Epsilon\-Binary\-Metric}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAdditiveEpsilonBinaryMetric_545aa2c8e6dd93084276763c9d8a3709} + + +Returns the minimal distance by which the objective vector \_\-o1 must be translated in all objectives so that it weakly dominates the objective vector \_\-o2. + +\begin{Desc} +\item[Warning:]don't forget to set the bounds for every objective before the call of this function \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 35 of file moeo\-Additive\-Epsilon\-Binary\-Metric.h. + +References moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$::epsilon().\index{moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}!epsilon@{epsilon}} +\index{epsilon@{epsilon}!moeoAdditiveEpsilonBinaryMetric@{moeo\-Additive\-Epsilon\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Additive\-Epsilon\-Binary\-Metric}$<$ Objective\-Vector $>$::epsilon (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2}, const unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoAdditiveEpsilonBinaryMetric_04253f76c832d24a3fd6bc574be54c46} + + +Returns the epsilon value by which the objective vector \_\-o1 must be translated in the objective \_\-obj so that it dominates the objective vector \_\-o2. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \item[{\em \_\-obj}]the index of the objective \end{description} +\end{Desc} + + +Definition at line 64 of file moeo\-Additive\-Epsilon\-Binary\-Metric.h. + +References moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$::bounds. + +Referenced by moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Additive\-Epsilon\-Binary\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.eps new file mode 100644 index 000000000..9789f7000 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 313.725 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.59375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoAggregativeComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoAggregativeComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex new file mode 100644 index 000000000..1455c58cf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAggregativeComparator.tex @@ -0,0 +1,79 @@ +\section{moeo\-Aggregative\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoAggregativeComparator}\index{moeoAggregativeComparator@{moeoAggregativeComparator}} +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + + +{\tt \#include $<$moeo\-Aggregative\-Comparator.h$>$} + +Inheritance diagram for moeo\-Aggregative\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoAggregativeComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Aggregative\-Comparator} (double \_\-weight\-Fitness=1.0, double \_\-weight\-Diversity=1.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 according to the aggregation of their fitness and diversity values. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double \bf{weight\-Fitness}\label{classmoeoAggregativeComparator_9ddf44b9e447bee8503c5b9cad9a7df0} + +\begin{CompactList}\small\item\em the weight for fitness \item\end{CompactList}\item +double \bf{weight\-Diversity}\label{classmoeoAggregativeComparator_d4ce25f797af0218c6c8cfca7c73b2d3} + +\begin{CompactList}\small\item\em the weight for diversity \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Aggregative\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + + + +Definition at line 22 of file moeo\-Aggregative\-Comparator.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}!moeoAggregativeComparator@{moeoAggregativeComparator}} +\index{moeoAggregativeComparator@{moeoAggregativeComparator}!moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Aggregative\-Comparator}$<$ MOEOT $>$::\bf{moeo\-Aggregative\-Comparator} (double {\em \_\-weight\-Fitness} = {\tt 1.0}, double {\em \_\-weight\-Diversity} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAggregativeComparator_76cc4d0f5f9bd4984c77410ad8142914} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-weight\-Fitness}]the weight for fitness \item[{\em \_\-weight\-Diversity}]the weight for diversity \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Aggregative\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoAggregativeComparator@{moeo\-Aggregative\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Aggregative\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoAggregativeComparator_2f6745ebc2d575e64b162fc250f04b0f} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 according to the aggregation of their fitness and diversity values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 40 of file moeo\-Aggregative\-Comparator.h. + +References moeo\-Aggregative\-Comparator$<$ MOEOT $>$::weight\-Diversity, and moeo\-Aggregative\-Comparator$<$ MOEOT $>$::weight\-Fitness. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Aggregative\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAlgo.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAlgo.eps new file mode 100644 index 000000000..a43467b12 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAlgo.eps @@ -0,0 +1,229 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 52.6316 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 9.5 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 5 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoAlgo) cw +(moeoEA< MOEOT >) cw +(moeoLS< MOEOT, Type >) cw +(moeoEasyEA< MOEOT >) cw +(moeoIBEA< MOEOT >) cw +(moeoNSGA< MOEOT >) cw +(moeoNSGAII< MOEOT >) cw +(moeoCombinedLS< MOEOT, Type >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoAlgo) 2.75 2 box + (moeoEA< MOEOT >) 1.5 1 box + (moeoLS< MOEOT, Type >) 4 1 box + (moeoEasyEA< MOEOT >) 0 0 box + (moeoIBEA< MOEOT >) 1 0 box + (moeoNSGA< MOEOT >) 2 0 box + (moeoNSGAII< MOEOT >) 3 0 box + (moeoCombinedLS< MOEOT, Type >) 4 0 box + +% ----- relations ----- + +solid +1 2.75 1.25 out +solid +1.5 4 2 conn +solid +0 1.5 1.75 in +solid +1 1.5 0.25 out +solid +0 3 1 conn +solid +0 4 1.75 in +solid +1 4 0.25 out +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in +solid +0 4 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAlgo.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAlgo.tex new file mode 100644 index 000000000..528bd7d40 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoAlgo.tex @@ -0,0 +1,25 @@ +\section{moeo\-Algo Class Reference} +\label{classmoeoAlgo}\index{moeoAlgo@{moeoAlgo}} +Abstract class for multi-objective algorithms. + + +{\tt \#include $<$moeo\-Algo.h$>$} + +Inheritance diagram for moeo\-Algo::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.47368cm]{classmoeoAlgo} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +Abstract class for multi-objective algorithms. + + + +Definition at line 19 of file moeo\-Algo.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Algo.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchive.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchive.eps new file mode 100644 index 000000000..b035ce904 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchive.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 242.424 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.0625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoArchive< MOEOT >) cw +(eoPop< MOEOT >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoArchive< MOEOT >) 0.5 0 box + (eoPop< MOEOT >) 0.5 1 box + (eoObject) 0 2 box + (eoPersistent) 1 2 box + (eoPrintable) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchive.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchive.tex new file mode 100644 index 000000000..56265b135 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchive.tex @@ -0,0 +1,170 @@ +\section{moeo\-Archive$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoArchive}\index{moeoArchive@{moeoArchive}} +An archive is a secondary population that stores non-dominated solutions. + + +{\tt \#include $<$moeo\-Archive.h$>$} + +Inheritance diagram for moeo\-Archive$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoArchive} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoArchive_655f6879b14d7b4e65ea03724e5ee601} + +\begin{CompactList}\small\item\em The type of an objective vector for a solution. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Archive} () +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +\bf{moeo\-Archive} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +bool \bf{dominates} (const \bf{Objective\-Vector} \&\_\-objective\-Vector) const +\begin{CompactList}\small\item\em Returns true if the current archive dominates \_\-objective\-Vector according to the \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} given in the constructor. \item\end{CompactList}\item +bool \bf{contains} (const \bf{Objective\-Vector} \&\_\-objective\-Vector) const +\begin{CompactList}\small\item\em Returns true if the current archive already contains a solution with the same objective values than \_\-objective\-Vector. \item\end{CompactList}\item +void \bf{update} (const MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Updates the archive with a given individual \_\-moeo. \item\end{CompactList}\item +void \bf{update} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Updates the archive with a given population \_\-pop. \item\end{CompactList}\item +bool \bf{equals} (const \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch) +\begin{CompactList}\small\item\em Returns true if the current archive contains the same objective vectors than the given archive \_\-arch. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& \bf{comparator}\label{classmoeoArchive_59d96d161a53b3ee50df8ca5ad0d0642} + +\begin{CompactList}\small\item\em The \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} used to compare solutions. \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \bf{pareto\-Comparator}\label{classmoeoArchive_eefd5b82b1d7f7d60c72683da9cd8682} + +\begin{CompactList}\small\item\em A \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} based on Pareto dominance (used as default). \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Archive$<$ MOEOT $>$} + +An archive is a secondary population that stores non-dominated solutions. + + + +Definition at line 24 of file moeo\-Archive.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoArchive@{moeo\-Archive}!moeoArchive@{moeoArchive}} +\index{moeoArchive@{moeoArchive}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive}$<$ MOEOT $>$::\bf{moeo\-Archive} ()\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_a593ca2122484d255b5aa5a0463bd913} + + +Default ctor. + +The \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} used to compare solutions is based on Pareto dominance + +Definition at line 44 of file moeo\-Archive.h.\index{moeoArchive@{moeo\-Archive}!moeoArchive@{moeoArchive}} +\index{moeoArchive@{moeoArchive}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive}$<$ MOEOT $>$::\bf{moeo\-Archive} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_75e5fee339ca463405434f6f48497de0} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} used to compare solutions \end{description} +\end{Desc} + + +Definition at line 52 of file moeo\-Archive.h. + +\subsection{Member Function Documentation} +\index{moeoArchive@{moeo\-Archive}!dominates@{dominates}} +\index{dominates@{dominates}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ bool \bf{moeo\-Archive}$<$ MOEOT $>$::dominates (const \bf{Objective\-Vector} \& {\em \_\-objective\-Vector}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_67f667e822e0485c6976c6ee0d18f70a} + + +Returns true if the current archive dominates \_\-objective\-Vector according to the \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} given in the constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector}]the objective vector to compare with the current archive \end{description} +\end{Desc} + + +Definition at line 60 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::comparator.\index{moeoArchive@{moeo\-Archive}!contains@{contains}} +\index{contains@{contains}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ bool \bf{moeo\-Archive}$<$ MOEOT $>$::contains (const \bf{Objective\-Vector} \& {\em \_\-objective\-Vector}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_748d5c75d713075288257192be1986a9} + + +Returns true if the current archive already contains a solution with the same objective values than \_\-objective\-Vector. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector}]the objective vector to compare with the current archive \end{description} +\end{Desc} + + +Definition at line 78 of file moeo\-Archive.h. + +Referenced by moeo\-Archive$<$ MOEOT $>$::equals().\index{moeoArchive@{moeo\-Archive}!update@{update}} +\index{update@{update}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Archive}$<$ MOEOT $>$::update (const MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_6df0acd84cab4cb53682f2e6ca850e9a} + + +Updates the archive with a given individual \_\-moeo. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo}]the given individual \end{description} +\end{Desc} + + +Definition at line 95 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::comparator. + +Referenced by moeo\-Archive$<$ MOEOT $>$::update().\index{moeoArchive@{moeo\-Archive}!update@{update}} +\index{update@{update}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Archive}$<$ MOEOT $>$::update (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_877bf4f0937f6be263e2686df4e77cf3} + + +Updates the archive with a given population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the given population \end{description} +\end{Desc} + + +Definition at line 138 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::update().\index{moeoArchive@{moeo\-Archive}!equals@{equals}} +\index{equals@{equals}!moeoArchive@{moeo\-Archive}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ bool \bf{moeo\-Archive}$<$ MOEOT $>$::equals (const \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchive_937088a6054ba1b50db651f50dda3a72} + + +Returns true if the current archive contains the same objective vectors than the given archive \_\-arch. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-arch}]the given archive \end{description} +\end{Desc} + + +Definition at line 151 of file moeo\-Archive.h. + +References moeo\-Archive$<$ MOEOT $>$::contains(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Archive.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.eps new file mode 100644 index 000000000..c41be59f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 235.294 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoArchiveObjectiveVectorSavingUpdater< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoArchiveObjectiveVectorSavingUpdater< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex new file mode 100644 index 000000000..8faaea295 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveObjectiveVectorSavingUpdater.tex @@ -0,0 +1,70 @@ +\section{moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoArchiveObjectiveVectorSavingUpdater}\index{moeoArchiveObjectiveVectorSavingUpdater@{moeoArchiveObjectiveVectorSavingUpdater}} +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + + +{\tt \#include $<$moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h$>$} + +Inheritance diagram for moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoArchiveObjectiveVectorSavingUpdater} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, const std::string \&\_\-filename, bool \_\-count=false, int \_\-id=-1) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoArchiveObjectiveVectorSavingUpdater_0f6770822c62463ee3b56f7a4c59a850} + +\begin{CompactList}\small\item\em Saves the fitness of the archive's members into the file. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoArchiveObjectiveVectorSavingUpdater_b252eed0ea4f837efefdcdd81d5c42a6} + +\begin{CompactList}\small\item\em local archive \item\end{CompactList}\item +std::string \bf{filename}\label{classmoeoArchiveObjectiveVectorSavingUpdater_7571569a5fb6df07f5d4e72310ec4d4d} + +\begin{CompactList}\small\item\em target filename \item\end{CompactList}\item +bool \bf{count}\label{classmoeoArchiveObjectiveVectorSavingUpdater_6eb54eb29152e2d357b1b975ce33c062} + +\begin{CompactList}\small\item\em this variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated \item\end{CompactList}\item +unsigned int \bf{counter}\label{classmoeoArchiveObjectiveVectorSavingUpdater_5ea4722f75597976cf6a21a7fba3ddbc} + +\begin{CompactList}\small\item\em counter \item\end{CompactList}\item +int \bf{id}\label{classmoeoArchiveObjectiveVectorSavingUpdater_cd6940347cf39a47085c4d0a7c558355} + +\begin{CompactList}\small\item\em own ID \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$} + +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + + + +Definition at line 28 of file moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoArchiveObjectiveVectorSavingUpdater@{moeo\-Archive\-Objective\-Vector\-Saving\-Updater}!moeoArchiveObjectiveVectorSavingUpdater@{moeoArchiveObjectiveVectorSavingUpdater}} +\index{moeoArchiveObjectiveVectorSavingUpdater@{moeoArchiveObjectiveVectorSavingUpdater}!moeoArchiveObjectiveVectorSavingUpdater@{moeo\-Archive\-Objective\-Vector\-Saving\-Updater}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater}$<$ MOEOT $>$::\bf{moeo\-Archive\-Objective\-Vector\-Saving\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, const std::string \& {\em \_\-filename}, bool {\em \_\-count} = {\tt false}, int {\em \_\-id} = {\tt -1})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchiveObjectiveVectorSavingUpdater_d9f70d24605ccd1e89c8b4ea4c96c333} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-arch}]local archive \item[{\em \_\-filename}]target filename \item[{\em \_\-count}]put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated \item[{\em \_\-id}]own ID \end{description} +\end{Desc} + + +Definition at line 39 of file moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Archive\-Objective\-Vector\-Saving\-Updater.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.eps new file mode 100644 index 000000000..3617df02d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 382.775 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.30625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoArchiveUpdater< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoArchiveUpdater< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex new file mode 100644 index 000000000..8336f6069 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoArchiveUpdater.tex @@ -0,0 +1,61 @@ +\section{moeo\-Archive\-Updater$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoArchiveUpdater}\index{moeoArchiveUpdater@{moeoArchiveUpdater}} +This class allows to update the archive at each generation with newly found non-dominated solutions. + + +{\tt \#include $<$moeo\-Archive\-Updater.h$>$} + +Inheritance diagram for moeo\-Archive\-Updater$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoArchiveUpdater} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Archive\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoArchiveUpdater_3d72137dce51d0d4f0cc7207be42878a} + +\begin{CompactList}\small\item\em Updates the archive with newly found non-dominated solutions contained in the main population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoArchiveUpdater_64531e46898b0e2a4ec48ba28dbfd59d} + +\begin{CompactList}\small\item\em the archive of non-dominated solutions \item\end{CompactList}\item +const \bf{eo\-Pop}$<$ MOEOT $>$ \& \bf{pop}\label{classmoeoArchiveUpdater_a7ba8cde3727d1f24835083e85dfd70d} + +\begin{CompactList}\small\item\em the main population \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Archive\-Updater$<$ MOEOT $>$} + +This class allows to update the archive at each generation with newly found non-dominated solutions. + + + +Definition at line 24 of file moeo\-Archive\-Updater.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoArchiveUpdater@{moeo\-Archive\-Updater}!moeoArchiveUpdater@{moeoArchiveUpdater}} +\index{moeoArchiveUpdater@{moeoArchiveUpdater}!moeoArchiveUpdater@{moeo\-Archive\-Updater}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Archive\-Updater}$<$ MOEOT $>$::\bf{moeo\-Archive\-Updater} (\bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoArchiveUpdater_1497a2bc8df12565b3ea21bb8e08bee1} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-arch}]an archive of non-dominated solutions \item[{\em \_\-pop}]the main population \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Archive\-Updater.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Archive\-Updater.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..c4b6f367c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 327.869 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0 2 box + (moeoFitnessAssignment< MOEOT >) 0 3 box + (eoUF< eoPop< MOEOT > &, void >) 0 4 box + (eoFunctorBase) 0 5 box + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +0 0 4 out +solid +1 0 5 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..6acb4a7df --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoBinaryIndicatorBasedFitnessAssignment}\index{moeoBinaryIndicatorBasedFitnessAssignment@{moeoBinaryIndicatorBasedFitnessAssignment}} +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for binary indicators. + + +{\tt \#include $<$moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=6cm]{classmoeoBinaryIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for binary indicators. + + + +Definition at line 22 of file moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps new file mode 100644 index 000000000..afd2c025d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.eps @@ -0,0 +1,271 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 52.8634 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 9.45833 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 5 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoContributionMetric< ObjectiveVector >) cw +(moeoEntropyMetric< ObjectiveVector >) cw +(moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) cw +(moeoHypervolumeBinaryMetric< ObjectiveVector >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoBinaryMetric< A1, A2, R >) 1.5 3 box + (eoBF< A1, A2, R >) 1 4 box + (moeoMetric) 2 4 box + (eoFunctorBase) 1 5 box + (eoFunctorBase) 2 5 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0 2 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 1 2 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) 2 2 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) 3 2 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0 1 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 1 1 box + (moeoContributionMetric< ObjectiveVector >) 2.5 1 box + (moeoEntropyMetric< ObjectiveVector >) 3.5 1 box + (moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >) 0.5 0 box + (moeoHypervolumeBinaryMetric< ObjectiveVector >) 1.5 0 box + +% ----- relations ----- + +solid +0 1.5 3 out +solid +1 2 4 conn +solid +1 1 4 in +solid +0 1 4 out +solid +1 2 4 in +solid +0 2 4 out +solid +1 1 5 in +solid +1 2 5 in +solid +1 1.5 2.25 out +solid +0 3 3 conn +solid +0 0 2.75 in +solid +1 0 1.25 out +solid +0 1 2.75 in +solid +1 1 1.25 out +solid +0 2 2.75 in +solid +0 3 2.75 in +solid +1 3 1.25 out +solid +2.5 3.5 2 conn +solid +0 0 1.75 in +solid +0 1 1.75 in +solid +1 1 0.25 out +solid +0.5 1.5 1 conn +solid +0 2.5 1.75 in +solid +0 3.5 1.75 in +solid +0 0.5 0.75 in +solid +0 1.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex new file mode 100644 index 000000000..b803fc3ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Binary\-Metric$<$ A1, A2, R $>$ Class Template Reference} +\label{classmoeoBinaryMetric}\index{moeoBinaryMetric@{moeoBinaryMetric}} +Base class for binary metrics. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Binary\-Metric$<$ A1, A2, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.48018cm]{classmoeoBinaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class A1, class A2, class R$>$ class moeo\-Binary\-Metric$<$ A1, A2, R $>$} + +Base class for binary metrics. + + + +Definition at line 36 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.eps new file mode 100644 index 000000000..b9c5cec08 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 289.855 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.725 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoBinaryMetricSavingUpdater< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoBinaryMetricSavingUpdater< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex new file mode 100644 index 000000000..73030a896 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBinaryMetricSavingUpdater.tex @@ -0,0 +1,79 @@ +\section{moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoBinaryMetricSavingUpdater}\index{moeoBinaryMetricSavingUpdater@{moeoBinaryMetricSavingUpdater}} +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. + + +{\tt \#include $<$moeo\-Binary\-Metric\-Saving\-Updater.h$>$} + +Inheritance diagram for moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoBinaryMetricSavingUpdater} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoBinaryMetricSavingUpdater_21c2b12ee8600d8550eff42bcba87fd2} + +\begin{CompactList}\small\item\em The objective vector type of a solution. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Binary\-Metric\-Saving\-Updater} (\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, std::string \_\-filename) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoBinaryMetricSavingUpdater_a4f0a9e86b4a39ef88e7f8e1c1d6d229} + +\begin{CompactList}\small\item\em Saves the metric's value for the current generation. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& \bf{metric}\label{classmoeoBinaryMetricSavingUpdater_d1c66d6d179aff03d6949f4f76d3237c} + +\begin{CompactList}\small\item\em binary metric comparing two Pareto sets \item\end{CompactList}\item +const \bf{eo\-Pop}$<$ MOEOT $>$ \& \bf{pop}\label{classmoeoBinaryMetricSavingUpdater_79eea0916733568929ea9c0758ffe8fa} + +\begin{CompactList}\small\item\em main population \item\end{CompactList}\item +\bf{eo\-Pop}$<$ MOEOT $>$ \bf{old\-Pop}\label{classmoeoBinaryMetricSavingUpdater_0461af7e569921fec49538ff8fa998d4} + +\begin{CompactList}\small\item\em (n-1) population \item\end{CompactList}\item +std::string \bf{filename}\label{classmoeoBinaryMetricSavingUpdater_6d280c180de7bab1e18ab2bb39a0e184} + +\begin{CompactList}\small\item\em target filename \item\end{CompactList}\item +bool \bf{first\-Gen}\label{classmoeoBinaryMetricSavingUpdater_9bfa927499265f53f2b25afd2cd3c94f} + +\begin{CompactList}\small\item\em is it the first generation ? \item\end{CompactList}\item +unsigned int \bf{counter}\label{classmoeoBinaryMetricSavingUpdater_d8d3ce9ac8ab5a57ee1840bc1c98d776} + +\begin{CompactList}\small\item\em counter \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$} + +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. + + + +Definition at line 28 of file moeo\-Binary\-Metric\-Saving\-Updater.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoBinaryMetricSavingUpdater@{moeo\-Binary\-Metric\-Saving\-Updater}!moeoBinaryMetricSavingUpdater@{moeoBinaryMetricSavingUpdater}} +\index{moeoBinaryMetricSavingUpdater@{moeoBinaryMetricSavingUpdater}!moeoBinaryMetricSavingUpdater@{moeo\-Binary\-Metric\-Saving\-Updater}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Binary\-Metric\-Saving\-Updater}$<$ MOEOT $>$::\bf{moeo\-Binary\-Metric\-Saving\-Updater} (\bf{moeo\-Vector\-Vs\-Vector\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, std::string {\em \_\-filename})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoBinaryMetricSavingUpdater_b7c3fb73caf759450367c76d4716bb62} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-metric}]the binary metric comparing two Pareto sets \item[{\em \_\-pop}]the main population \item[{\em \_\-filename}]the target filename \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Binary\-Metric\-Saving\-Updater.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Binary\-Metric\-Saving\-Updater.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBitVector.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBitVector.eps new file mode 100644 index 000000000..586e3e79b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBitVector.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 129.87 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.85 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) cw +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 0 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >) 0.5 1 box + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 2 box + (EO< MOEOObjectiveVector >) 0.5 3 box + (eoObject) 0 4 box + (eoPersistent) 1 4 box + (eoPrintable) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +1 1 4 in +solid +0 1 4 out +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBitVector.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBitVector.tex new file mode 100644 index 000000000..a980f804a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoBitVector.tex @@ -0,0 +1,91 @@ +\section{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference} +\label{classmoeoBitVector}\index{moeoBitVector@{moeoBitVector}} +This class is an implementationeo of a simple bit-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + +{\tt \#include $<$moeo\-Bit\-Vector.h$>$} + +Inheritance diagram for moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.63636cm]{classmoeoBitVector} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Bit\-Vector} (unsigned int \_\-size=0, bool \_\-value=false) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +virtual std::string \bf{class\-Name} () const \label{classmoeoBitVector_dc2b3649bb839b04a14371b5b96dc738} + +\begin{CompactList}\small\item\em Returns the class name as a std::string. \item\end{CompactList}\item +virtual void \bf{print\-On} (std::ostream \&\_\-os) const +\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item +virtual void \bf{read\-From} (std::istream \&\_\-is) +\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} + +This class is an implementationeo of a simple bit-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + + +Definition at line 22 of file moeo\-Bit\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoBitVector@{moeo\-Bit\-Vector}!moeoBitVector@{moeoBitVector}} +\index{moeoBitVector@{moeoBitVector}!moeoBitVector@{moeo\-Bit\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ \bf{moeo\-Bit\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\bf{moeo\-Bit\-Vector} (unsigned int {\em \_\-size} = {\tt 0}, bool {\em \_\-value} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoBitVector_959ae6d2acf91467142366049a0b6121} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]Length of vector (default is 0) \item[{\em \_\-value}]Initial value of all elements (default is default value of type Gene\-Type) \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Bit\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoBitVector@{moeo\-Bit\-Vector}!printOn@{printOn}} +\index{printOn@{printOn}!moeoBitVector@{moeo\-Bit\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{moeo\-Bit\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoBitVector_78f821c548cf46d8bcd30aa8a52ffb7c} + + +Writing object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-os}]output stream \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308}. + +Definition at line 54 of file moeo\-Bit\-Vector.h.\index{moeoBitVector@{moeo\-Bit\-Vector}!readFrom@{readFrom}} +\index{readFrom@{readFrom}!moeoBitVector@{moeo\-Bit\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ virtual void \bf{moeo\-Bit\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521} + + +Reading object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-is}]input stream \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$} \doxyref{p.}{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9}. + +Definition at line 67 of file moeo\-Bit\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Bit\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCombinedLS.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCombinedLS.eps new file mode 100644 index 000000000..31da390c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCombinedLS.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.013 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.7875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoCombinedLS< MOEOT, Type >) cw +(moeoLS< MOEOT, Type >) cw +(moeoAlgo) cw +(eoBF< Type, moeoArchive< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoCombinedLS< MOEOT, Type >) 0.5 0 box + (moeoLS< MOEOT, Type >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoBF< Type, moeoArchive< MOEOT > &, void >) 1 2 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex new file mode 100644 index 000000000..462b057d7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCombinedLS.tex @@ -0,0 +1,98 @@ +\section{moeo\-Combined\-LS$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoCombinedLS}\index{moeoCombinedLS@{moeoCombinedLS}} +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. + + +{\tt \#include $<$moeo\-Combined\-LS.h$>$} + +Inheritance diagram for moeo\-Combined\-LS$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.69637cm]{classmoeoCombinedLS} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Combined\-LS} (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \&\_\-first\_\-mols) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{add} (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \&\_\-mols) +\begin{CompactList}\small\item\em Adds a new local search to combine. \item\end{CompactList}\item +void \bf{operator()} (Type \_\-type, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch) +\begin{CompactList}\small\item\em Gives a new solution in order to explore the neigborhood. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{moeo\-LS}$<$ MOEOT, Type $>$ $\ast$ $>$ \bf{combined\-LS}\label{classmoeoCombinedLS_3cf36ae7ada10d2837b60df01210d92a} + +\begin{CompactList}\small\item\em the vector that contains the combined LS \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-Combined\-LS$<$ MOEOT, Type $>$} + +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. + + + +Definition at line 25 of file moeo\-Combined\-LS.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoCombinedLS@{moeo\-Combined\-LS}!moeoCombinedLS@{moeoCombinedLS}} +\index{moeoCombinedLS@{moeoCombinedLS}!moeoCombinedLS@{moeo\-Combined\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ \bf{moeo\-Combined\-LS}$<$ MOEOT, Type $>$::\bf{moeo\-Combined\-LS} (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \& {\em \_\-first\_\-mols})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoCombinedLS_5d09220b47bac67bd332dc0f93226ae1} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-first\_\-mols}]the first multi-objective local search to add \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Combined\-LS.h. + +References moeo\-Combined\-LS$<$ MOEOT, Type $>$::combined\-LS. + +\subsection{Member Function Documentation} +\index{moeoCombinedLS@{moeo\-Combined\-LS}!add@{add}} +\index{add@{add}!moeoCombinedLS@{moeo\-Combined\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ void \bf{moeo\-Combined\-LS}$<$ MOEOT, Type $>$::add (\bf{moeo\-LS}$<$ MOEOT, Type $>$ \& {\em \_\-mols})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoCombinedLS_1637b4dcf2dd694cc9ffbad605b2bf13} + + +Adds a new local search to combine. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-mols}]the multi-objective local search to add \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Combined\-LS.h. + +References moeo\-Combined\-LS$<$ MOEOT, Type $>$::combined\-LS.\index{moeoCombinedLS@{moeo\-Combined\-LS}!operator()@{operator()}} +\index{operator()@{operator()}!moeoCombinedLS@{moeo\-Combined\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ void \bf{moeo\-Combined\-LS}$<$ MOEOT, Type $>$::operator() (Type {\em \_\-type}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoCombinedLS_634d7fa3092fe8f88a1b54cacfdc35fd} + + +Gives a new solution in order to explore the neigborhood. + +The new non-dominated solutions are added to the archive \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-type}]the object to apply the local search to \item[{\em \_\-arch}]the archive of non-dominated solutions \end{description} +\end{Desc} + + +Implements \bf{eo\-BF$<$ Type, moeo\-Archive$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 53 of file moeo\-Combined\-LS.h. + +References moeo\-Combined\-LS$<$ MOEOT, Type $>$::combined\-LS. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Combined\-LS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoComparator.eps new file mode 100644 index 000000000..c87d0fa42 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoComparator.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 32.2581 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 15.5 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 5 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoAggregativeComparator< MOEOT >) cw +(moeoDiversityThenFitnessComparator< MOEOT >) cw +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) cw +(moeoFitnessThenDiversityComparator< MOEOT >) cw +(moeoOneObjectiveComparator< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoComparator< MOEOT >) 2 1 box + (eoBF< A1, A2, R >) 2 2 box + (eoFunctorBase) 2 3 box + (moeoAggregativeComparator< MOEOT >) 0 0 box + (moeoDiversityThenFitnessComparator< MOEOT >) 1 0 box + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) 2 0 box + (moeoFitnessThenDiversityComparator< MOEOT >) 3 0 box + (moeoOneObjectiveComparator< MOEOT >) 4 0 box + +% ----- relations ----- + +solid +0 2 1 out +solid +1 2 2 in +solid +0 2 2 out +solid +1 2 3 in +solid +1 2 0.25 out +solid +0 4 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in +solid +0 4 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoComparator.tex new file mode 100644 index 000000000..22da026e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoComparator.tex @@ -0,0 +1,27 @@ +\section{moeo\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoComparator}\index{moeoComparator@{moeoComparator}} +Functor allowing to compare two solutions. + + +{\tt \#include $<$moeo\-Comparator.h$>$} + +Inheritance diagram for moeo\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=0.903226cm]{classmoeoComparator} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions. + + + +Definition at line 22 of file moeo\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps new file mode 100644 index 000000000..b5ce434de --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoContributionMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.626 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.77 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoContributionMetric< ObjectiveVector >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoContributionMetric< ObjectiveVector >) 0.5 0 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex new file mode 100644 index 000000000..9ecca0f4b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoContributionMetric.tex @@ -0,0 +1,120 @@ +\section{moeo\-Contribution\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoContributionMetric}\index{moeoContributionMetric@{moeoContributionMetric}} +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + + +{\tt \#include $<$moeo\-Contribution\-Metric.h$>$} + +Inheritance diagram for moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.71353cm]{classmoeoContributionMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{operator()} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the contribution of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +unsigned int \bf{card\_\-C} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the number of solutions both in '\_\-set1' and '\_\-set2'. \item\end{CompactList}\item +unsigned int \bf{card\_\-W} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the number of solutions in '\_\-set1' dominating at least one solution of '\_\-set2'. \item\end{CompactList}\item +unsigned int \bf{card\_\-N} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the number of solutions in '\_\-set1' having no relation of dominance with those from '\_\-set2'. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoContributionMetric_b474229c85ffbf5108f51eef01ab2d64} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Contribution\-Metric$<$ Objective\-Vector $>$} + +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + +of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) + + + +Definition at line 24 of file moeo\-Contribution\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::operator() (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoContributionMetric_491610f6557874c2989eaa7a75117dcb} + + +Returns the contribution of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Contribution\-Metric.h. + +References moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::card\_\-C(), moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::card\_\-N(), and moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::card\_\-W().\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!card_C@{card\_\-C}} +\index{card_C@{card\_\-C}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::card\_\-C (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoContributionMetric_4e60849763aaad0cdea66e71edf2d29e} + + +Returns the number of solutions both in '\_\-set1' and '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-Contribution\-Metric.h. + +Referenced by moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!card_W@{card\_\-W}} +\index{card_W@{card\_\-W}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::card\_\-W (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoContributionMetric_68d6d1ec1ed0bed1ea290cdacb93b5b2} + + +Returns the number of solutions in '\_\-set1' dominating at least one solution of '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 71 of file moeo\-Contribution\-Metric.h. + +References moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator. + +Referenced by moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoContributionMetric@{moeo\-Contribution\-Metric}!card_N@{card\_\-N}} +\index{card_N@{card\_\-N}!moeoContributionMetric@{moeo\-Contribution\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-Contribution\-Metric}$<$ Objective\-Vector $>$::card\_\-N (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoContributionMetric_df26b17120ed2271a6d1ec9c8c77b451} + + +Returns the number of solutions in '\_\-set1' having no relation of dominance with those from '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 89 of file moeo\-Contribution\-Metric.h. + +References moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator. + +Referenced by moeo\-Contribution\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Contribution\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.eps new file mode 100644 index 000000000..70c54441c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 150 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.33333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >) 0 0 box + (eoUF< A1, R >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex new file mode 100644 index 000000000..92b954b37 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoConvertPopToObjectiveVectors.tex @@ -0,0 +1,49 @@ +\section{moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$ Class Template Reference} +\label{classmoeoConvertPopToObjectiveVectors}\index{moeoConvertPopToObjectiveVectors@{moeoConvertPopToObjectiveVectors}} +Functor allowing to get a vector of objective vectors from a population. + + +{\tt \#include $<$moeo\-Convert\-Pop\-To\-Objective\-Vectors.h$>$} + +Inheritance diagram for moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmoeoConvertPopToObjectiveVectors} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const std::vector$<$ Objective\-Vector $>$ \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \_\-pop) +\begin{CompactList}\small\item\em Returns a vector of the objective vectors from the population \_\-pop. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Objective\-Vector = typename MOEOT::Objective\-Vector$>$ class moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$} + +Functor allowing to get a vector of objective vectors from a population. + + + +Definition at line 23 of file moeo\-Convert\-Pop\-To\-Objective\-Vectors.h. + +\subsection{Member Function Documentation} +\index{moeoConvertPopToObjectiveVectors@{moeo\-Convert\-Pop\-To\-Objective\-Vectors}!operator()@{operator()}} +\index{operator()@{operator()}!moeoConvertPopToObjectiveVectors@{moeo\-Convert\-Pop\-To\-Objective\-Vectors}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Objective\-Vector = typename MOEOT::Objective\-Vector$>$ const std::vector$<$ Objective\-Vector $>$ \bf{moeo\-Convert\-Pop\-To\-Objective\-Vectors}$<$ MOEOT, Objective\-Vector $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoConvertPopToObjectiveVectors_8fada75aa151a6eaa310c5064f783c86} + + +Returns a vector of the objective vectors from the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Convert\-Pop\-To\-Objective\-Vectors.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Convert\-Pop\-To\-Objective\-Vectors.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.eps new file mode 100644 index 000000000..08faf7012 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 259.74 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.925 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoCriterionBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoCriterionBasedFitnessAssignment< MOEOT >) 0 0 box + (moeoFitnessAssignment< MOEOT >) 0 1 box + (eoUF< eoPop< MOEOT > &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex new file mode 100644 index 000000000..ed43820ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCriterionBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoCriterionBasedFitnessAssignment}\index{moeoCriterionBasedFitnessAssignment@{moeoCriterionBasedFitnessAssignment}} +\doxyref{moeo\-Criterion\-Based\-Fitness\-Assignment}{p.}{classmoeoCriterionBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for criterion-based strategies. + + +{\tt \#include $<$moeo\-Criterion\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoCriterionBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Criterion\-Based\-Fitness\-Assignment}{p.}{classmoeoCriterionBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for criterion-based strategies. + + + +Definition at line 22 of file moeo\-Criterion\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Criterion\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.eps new file mode 100644 index 000000000..74b57aad4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 275.482 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.815 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoCrowdingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoCrowdingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex new file mode 100644 index 000000000..be11b8f3a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoCrowdingDiversityAssignment.tex @@ -0,0 +1,114 @@ +\section{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoCrowdingDiversityAssignment}\index{moeoCrowdingDiversityAssignment@{moeoCrowdingDiversityAssignment}} +Diversity assignment sheme based on crowding proposed in: K. + + +{\tt \#include $<$moeo\-Crowding\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoCrowdingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoCrowdingDiversityAssignment_e6ece5e7569e9d168fcddaae37902585} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{inf} () const \label{classmoeoCrowdingDiversityAssignment_e7f5dbe11427a5c264e70fe4e036242f} + +\begin{CompactList}\small\item\em Returns a big value (regarded as infinite). \item\end{CompactList}\item +double \bf{tiny} () const \label{classmoeoCrowdingDiversityAssignment_eb70be9c246dfa56b55a4ecc5454f778} + +\begin{CompactList}\small\item\em Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Computes diversity values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Protected Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{set\-Distances} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the distance values. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} + +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, \char`\"{}A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II\char`\"{}, IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + + + +Definition at line 25 of file moeo\-Crowding\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoCrowdingDiversityAssignment_1db056d5e06b337e67f848fdb60fa2a6} + + +Computes diversity values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 55 of file moeo\-Crowding\-Diversity\-Assignment.h. + +References moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::inf(), and moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::set\-Distances().\index{moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoCrowdingDiversityAssignment_ba1d60c8e59fbe2c12e9eef33863f012} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Implements \bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb}. + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontCrowdingDiversityAssignment_f73ff88bd29c49260e2ca859250e4b68}. + +Definition at line 78 of file moeo\-Crowding\-Diversity\-Assignment.h.\index{moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}!setDistances@{setDistances}} +\index{setDistances@{setDistances}!moeoCrowdingDiversityAssignment@{moeo\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Distances (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected, virtual]}}\label{classmoeoCrowdingDiversityAssignment_acbe3e03404ecc67dd5e83f00576c255} + + +Sets the distance values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontCrowdingDiversityAssignment_1aa0ec7b94fbbf952636bcc21e1a9d16}. + +Definition at line 90 of file moeo\-Crowding\-Diversity\-Assignment.h. + +References moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::inf(). + +Referenced by moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Crowding\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.eps new file mode 100644 index 000000000..28f1b4487 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 416.667 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDetTournamentSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDetTournamentSelect< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex new file mode 100644 index 000000000..113c14ff7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDetTournamentSelect.tex @@ -0,0 +1,102 @@ +\section{moeo\-Det\-Tournament\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDetTournamentSelect}\index{moeoDetTournamentSelect@{moeoDetTournamentSelect}} +Selection strategy that selects ONE individual by deterministic tournament. + + +{\tt \#include $<$moeo\-Det\-Tournament\-Select.h$>$} + +Inheritance diagram for moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoDetTournamentSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Det\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator, unsigned int \_\-t\-Size=2) +\begin{CompactList}\small\item\em Full Ctor. \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select} (unsigned int \_\-t\-Size=2) +\begin{CompactList}\small\item\em Ctor without comparator. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply the tournament to the given population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comparator}\label{classmoeoDetTournamentSelect_f31a46190da0fe561d748133456907c9} + +\begin{CompactList}\small\item\em the comparator (used to compare 2 individuals) \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoDetTournamentSelect_dde5fc82ffff52056aab75632f779825} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +unsigned int \bf{t\-Size}\label{classmoeoDetTournamentSelect_061c191c2df365cf4325e0093aae2ae6} + +\begin{CompactList}\small\item\em the number of individuals in the tournament \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Det\-Tournament\-Select$<$ MOEOT $>$} + +Selection strategy that selects ONE individual by deterministic tournament. + + + +Definition at line 24 of file moeo\-Det\-Tournament\-Select.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}!moeoDetTournamentSelect@{moeoDetTournamentSelect}} +\index{moeoDetTournamentSelect@{moeoDetTournamentSelect}!moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Det\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator}, unsigned int {\em \_\-t\-Size} = {\tt 2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDetTournamentSelect_106e44d01bbf2775b483104639c6556e} + + +Full Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \item[{\em \_\-t\-Size}]the number of individuals in the tournament (default: 2) \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Det\-Tournament\-Select.h. + +References moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::t\-Size.\index{moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}!moeoDetTournamentSelect@{moeoDetTournamentSelect}} +\index{moeoDetTournamentSelect@{moeoDetTournamentSelect}!moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Det\-Tournament\-Select} (unsigned int {\em \_\-t\-Size} = {\tt 2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDetTournamentSelect_f17a16c1b0f688832e7143e55d0f767d} + + +Ctor without comparator. + +A \doxyref{moeo\-Fitness\-Then\-Diversity\-Comparator}{p.}{classmoeoFitnessThenDiversityComparator} is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-t\-Size}]the number of individuals in the tournament (default: 2) \end{description} +\end{Desc} + + +Definition at line 49 of file moeo\-Det\-Tournament\-Select.h. + +References moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::t\-Size. + +\subsection{Member Function Documentation} +\index{moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDetTournamentSelect@{moeo\-Det\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const MOEOT\& \bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDetTournamentSelect_0d7051a48570e5dcbe9a19b90e4be3bf} + + +Apply the tournament to the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 65 of file moeo\-Det\-Tournament\-Select.h. + +References moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::comparator, and moeo\-Det\-Tournament\-Select$<$ MOEOT $>$::t\-Size. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Det\-Tournament\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistance.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistance.eps new file mode 100644 index 000000000..74950e0b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistance.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 297.398 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.68125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDistance< MOEOT, Type >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoNormalizedDistance< MOEOT, Type >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDistance< MOEOT, Type >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + (moeoNormalizedDistance< MOEOT, Type >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistance.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistance.tex new file mode 100644 index 000000000..b01cae414 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistance.tex @@ -0,0 +1,87 @@ +\section{moeo\-Distance$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoDistance}\index{moeoDistance@{moeoDistance}} +The base class for distance computation. + + +{\tt \#include $<$moeo\-Distance.h$>$} + +Inheritance diagram for moeo\-Distance$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDistance} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Nothing to do. \item\end{CompactList}\item +virtual void \bf{setup} (double \_\-min, double \_\-max, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Nothing to do. \item\end{CompactList}\item +virtual void \bf{setup} (\bf{eo\-Real\-Interval} \_\-real\-Interval, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Nothing to do. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-Distance$<$ MOEOT, Type $>$} + +The base class for distance computation. + + + +Definition at line 22 of file moeo\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoDistance@{moeo\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoDistance@{moeo\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ virtual void \bf{moeo\-Distance}$<$ MOEOT, Type $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistance_1834a67c2a7a96f0c9a3c408108a8f8c} + + +Nothing to do. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoNormalizedDistance_b99ffed3c0ce6c9c10aef0a76d983bb1}, and \bf{moeo\-Normalized\-Distance$<$ MOEOT $>$} \doxyref{p.}{classmoeoNormalizedDistance_b99ffed3c0ce6c9c10aef0a76d983bb1}. + +Definition at line 30 of file moeo\-Distance.h.\index{moeoDistance@{moeo\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoDistance@{moeo\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ virtual void \bf{moeo\-Distance}$<$ MOEOT, Type $>$::setup (double {\em \_\-min}, double {\em \_\-max}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistance_341c4fa39652871761053e85914a16ad} + + +Nothing to do. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-min}]lower bound \item[{\em \_\-max}]upper bound \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoNormalizedDistance_e58bbf9eb90a8d2704f88d774d3fe1e1}, and \bf{moeo\-Normalized\-Distance$<$ MOEOT $>$} \doxyref{p.}{classmoeoNormalizedDistance_e58bbf9eb90a8d2704f88d774d3fe1e1}. + +Definition at line 40 of file moeo\-Distance.h.\index{moeoDistance@{moeo\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoDistance@{moeo\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ virtual void \bf{moeo\-Distance}$<$ MOEOT, Type $>$::setup (\bf{eo\-Real\-Interval} {\em \_\-real\-Interval}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistance_b08e7b8c1bedb2993669ec0315fb2b73} + + +Nothing to do. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-real\-Interval}]the \doxyref{eo\-Real\-Interval} object \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoNormalizedDistance_dda4f95d7f6cae9dd1f4bf6cd8fb7c1c}, and \bf{moeo\-Normalized\-Distance$<$ MOEOT $>$} \doxyref{p.}{classmoeoNormalizedDistance_dda4f95d7f6cae9dd1f4bf6cd8fb7c1c}. + +Definition at line 49 of file moeo\-Distance.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.eps new file mode 100644 index 000000000..595189b41 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 229.008 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.18333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDistanceMatrix< MOEOT, Type >) cw +(eoUF< const eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDistanceMatrix< MOEOT, Type >) 0 0 box + (eoUF< const eoPop< MOEOT > &, void >) 0 1 box + (eoFunctorBase) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex new file mode 100644 index 000000000..670658e13 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDistanceMatrix.tex @@ -0,0 +1,78 @@ +\section{moeo\-Distance\-Matrix$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoDistanceMatrix}\index{moeoDistanceMatrix@{moeoDistanceMatrix}} +A matrix to compute distances between every pair of individuals contained in a population. + + +{\tt \#include $<$moeo\-Distance\-Matrix.h$>$} + +Inheritance diagram for moeo\-Distance\-Matrix$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmoeoDistanceMatrix} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Distance\-Matrix} (unsigned int \_\-size, \bf{moeo\-Distance}$<$ MOEOT, Type $>$ \&\_\-distance) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the distance between every pair of individuals contained in the population \_\-pop. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Distance}$<$ MOEOT, Type $>$ \& \bf{distance}\label{classmoeoDistanceMatrix_72789ab7bcb89670cdc4242173dc2c69} + +\begin{CompactList}\small\item\em the distance to use \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-Distance\-Matrix$<$ MOEOT, Type $>$} + +A matrix to compute distances between every pair of individuals contained in a population. + + + +Definition at line 24 of file moeo\-Distance\-Matrix.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoDistanceMatrix@{moeo\-Distance\-Matrix}!moeoDistanceMatrix@{moeoDistanceMatrix}} +\index{moeoDistanceMatrix@{moeoDistanceMatrix}!moeoDistanceMatrix@{moeo\-Distance\-Matrix}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ \bf{moeo\-Distance\-Matrix}$<$ MOEOT, Type $>$::\bf{moeo\-Distance\-Matrix} (unsigned int {\em \_\-size}, \bf{moeo\-Distance}$<$ MOEOT, Type $>$ \& {\em \_\-distance})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDistanceMatrix_5526260bd46b6877abd700a15b9b9ee8} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]size for every dimension of the matrix \item[{\em \_\-distance}]the distance to use \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Distance\-Matrix.h. + +\subsection{Member Function Documentation} +\index{moeoDistanceMatrix@{moeo\-Distance\-Matrix}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDistanceMatrix@{moeo\-Distance\-Matrix}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type$>$ void \bf{moeo\-Distance\-Matrix}$<$ MOEOT, Type $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDistanceMatrix_ae3d433983a0a3d369cc17971498ad48} + + +Sets the distance between every pair of individuals contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ const eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 51 of file moeo\-Distance\-Matrix.h. + +References moeo\-Distance\-Matrix$<$ MOEOT, Type $>$::distance. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Distance\-Matrix.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps new file mode 100644 index 000000000..0826c5e9c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.eps @@ -0,0 +1,231 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 91.8274 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 5.445 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoCrowdingDiversityAssignment< MOEOT >) cw +(moeoDummyDiversityAssignment< MOEOT >) cw +(moeoSharingDiversityAssignment< MOEOT >) cw +(moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) cw +(moeoFrontByFrontSharingDiversityAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDiversityAssignment< MOEOT >) 1 2 box + (eoUF< eoPop< MOEOT > &, void >) 1 3 box + (eoFunctorBase) 1 4 box + (moeoCrowdingDiversityAssignment< MOEOT >) 0 1 box + (moeoDummyDiversityAssignment< MOEOT >) 1 1 box + (moeoSharingDiversityAssignment< MOEOT >) 2 1 box + (moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 0 0 box + (moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 2 0 box + +% ----- relations ----- + +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in +solid +1 1 1.25 out +solid +0 2 2 conn +solid +0 0 1.75 in +solid +1 0 0.25 out +solid +0 1 1.75 in +solid +0 2 1.75 in +solid +1 2 0.25 out +solid +0 0 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex new file mode 100644 index 000000000..152d28c7d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDiversityAssignment}\index{moeoDiversityAssignment@{moeoDiversityAssignment}} +Functor that sets the diversity values of a whole population. + + +{\tt \#include $<$moeo\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.57117cm]{classmoeoDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoDiversityAssignment_dc2aa6c655cb0c163aa3c769c91c9339} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec)=0 +\begin{CompactList}\small\item\em Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Updates the diversity values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Diversity\-Assignment$<$ MOEOT $>$} + +Functor that sets the diversity values of a whole population. + + + +Definition at line 23 of file moeo\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoDiversityAssignment@{moeo\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDiversityAssignment@{moeo\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb} + + +Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implemented in \bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoCrowdingDiversityAssignment_ba1d60c8e59fbe2c12e9eef33863f012}, \bf{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDummyDiversityAssignment_3382b59e2b8bbdc840dc25463649f1e4}, \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontCrowdingDiversityAssignment_f73ff88bd29c49260e2ca859250e4b68}, \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontSharingDiversityAssignment_623489a246f86cf24cc5860d32caa743}, and \bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoSharingDiversityAssignment_21c8d6e020af23b2be219b7e02248300}. + +Referenced by moeo\-Diversity\-Assignment$<$ MOEOT $>$::update\-By\-Deleting().\index{moeoDiversityAssignment@{moeo\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDiversityAssignment@{moeo\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDiversityAssignment_d104002fdd5d81aabe25f95d443ed390} + + +Updates the diversity values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-moeo}]the individual \end{description} +\end{Desc} + + +Definition at line 44 of file moeo\-Diversity\-Assignment.h. + +References moeo\-Diversity\-Assignment$<$ MOEOT $>$::update\-By\-Deleting(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.eps new file mode 100644 index 000000000..2e4daddc8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 263.158 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.9 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDiversityThenFitnessComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDiversityThenFitnessComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex new file mode 100644 index 000000000..e094536aa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDiversityThenFitnessComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDiversityThenFitnessComparator}\index{moeoDiversityThenFitnessComparator@{moeoDiversityThenFitnessComparator}} +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + + +{\tt \#include $<$moeo\-Diversity\-Then\-Fitness\-Comparator.h$>$} + +Inheritance diagram for moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDiversityThenFitnessComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their diversity values, then according to their fitness values. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + + + +Definition at line 22 of file moeo\-Diversity\-Then\-Fitness\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoDiversityThenFitnessComparator@{moeo\-Diversity\-Then\-Fitness\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDiversityThenFitnessComparator@{moeo\-Diversity\-Then\-Fitness\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Diversity\-Then\-Fitness\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoDiversityThenFitnessComparator_62620887203d033af92091d838d4b0b6} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their diversity values, then according to their fitness values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Diversity\-Then\-Fitness\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Diversity\-Then\-Fitness\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.eps new file mode 100644 index 000000000..f96a71e7a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 290.909 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.71875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDummyDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDummyDiversityAssignment< MOEOT >) 0 0 box + (moeoDiversityAssignment< MOEOT >) 0 1 box + (eoUF< eoPop< MOEOT > &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex new file mode 100644 index 000000000..d96ccf59c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyDiversityAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDummyDiversityAssignment}\index{moeoDummyDiversityAssignment@{moeoDummyDiversityAssignment}} +\doxyref{moeo\-Dummy\-Diversity\-Assignment}{p.}{classmoeoDummyDiversityAssignment} is a \doxyref{moeo\-Diversity\-Assignment}{p.}{classmoeoDiversityAssignment} that gives the value '0' as the individual's diversity for a whole population if it is invalid. + + +{\tt \#include $<$moeo\-Dummy\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDummyDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoDummyDiversityAssignment_657d87e8f537200392bd7a24649f0294} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the diversity to '0' for every individuals of the population \_\-pop if it is invalid. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Dummy\-Diversity\-Assignment}{p.}{classmoeoDummyDiversityAssignment} is a \doxyref{moeo\-Diversity\-Assignment}{p.}{classmoeoDiversityAssignment} that gives the value '0' as the individual's diversity for a whole population if it is invalid. + + + +Definition at line 22 of file moeo\-Dummy\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyDiversityAssignment_78c9150d3c586f5324ccbd2faa984ba9} + + +Sets the diversity to '0' for every individuals of the population \_\-pop if it is invalid. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 34 of file moeo\-Dummy\-Diversity\-Assignment.h.\index{moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDummyDiversityAssignment@{moeo\-Dummy\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyDiversityAssignment_3382b59e2b8bbdc840dc25463649f1e4} + + +Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb}. + +Definition at line 52 of file moeo\-Dummy\-Diversity\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Dummy\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.eps new file mode 100644 index 000000000..5a126222e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 301.887 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoDummyFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoDummyFitnessAssignment< MOEOT >) 0 0 box + (moeoFitnessAssignment< MOEOT >) 0 1 box + (eoUF< eoPop< MOEOT > &, void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex new file mode 100644 index 000000000..3f8969533 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoDummyFitnessAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoDummyFitnessAssignment}\index{moeoDummyFitnessAssignment@{moeoDummyFitnessAssignment}} +\doxyref{moeo\-Dummy\-Fitness\-Assignment}{p.}{classmoeoDummyFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} that gives the value '0' as the individual's fitness for a whole population if it is invalid. + + +{\tt \#include $<$moeo\-Dummy\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoDummyFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoDummyFitnessAssignment_33cc1cd06c4c1d8f1f56602594e0593a} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness to '0' for every individuals of the population \_\-pop if it is invalid. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Dummy\-Fitness\-Assignment}{p.}{classmoeoDummyFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} that gives the value '0' as the individual's fitness for a whole population if it is invalid. + + + +Definition at line 22 of file moeo\-Dummy\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyFitnessAssignment_03c7c1649ae3c83ef6b3668977c10982} + + +Sets the fitness to '0' for every individuals of the population \_\-pop if it is invalid. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 34 of file moeo\-Dummy\-Fitness\-Assignment.h.\index{moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoDummyFitnessAssignment@{moeo\-Dummy\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Dummy\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoDummyFitnessAssignment_6e87d4a8ff8f43a7001a21a13795d00e} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 52 of file moeo\-Dummy\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Dummy\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEA.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEA.eps new file mode 100644 index 000000000..91075a456 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEA.eps @@ -0,0 +1,235 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 151.515 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.3 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 4 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(moeoEasyEA< MOEOT >) cw +(moeoIBEA< MOEOT >) cw +(moeoNSGA< MOEOT >) cw +(moeoNSGAII< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEA< MOEOT >) 1.5 1 box + (moeoAlgo) 1 2 box + (eoAlgo< MOEOT >) 2 2 box + (eoUF< A1, R >) 2 3 box + (eoFunctorBase) 2 4 box + (moeoEasyEA< MOEOT >) 0 0 box + (moeoIBEA< MOEOT >) 1 0 box + (moeoNSGA< MOEOT >) 2 0 box + (moeoNSGAII< MOEOT >) 3 0 box + +% ----- relations ----- + +solid +0 1.5 1 out +solid +1 2 2 conn +solid +1 1 2 in +solid +1 2 2 in +solid +0 2 2 out +solid +1 2 3 in +solid +0 2 3 out +solid +1 2 4 in +solid +1 1.5 0.25 out +solid +0 3 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEA.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEA.tex new file mode 100644 index 000000000..c6de2bc08 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEA.tex @@ -0,0 +1,27 @@ +\section{moeo\-EA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEA}\index{moeoEA@{moeoEA}} +Abstract class for multi-objective evolutionary algorithms. + + +{\tt \#include $<$moeo\-EA.h$>$} + +Inheritance diagram for moeo\-EA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.24242cm]{classmoeoEA} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-EA$<$ MOEOT $>$} + +Abstract class for multi-objective evolutionary algorithms. + + + +Definition at line 23 of file moeo\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps new file mode 100644 index 000000000..528189a2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEasyEA< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex new file mode 100644 index 000000000..4ea751dcc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA.tex @@ -0,0 +1,194 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEasyEA}\index{moeoEasyEA@{moeoEasyEA}} +An easy class to design multi-objective evolutionary algorithms. + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoEasyEA} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Breed}$<$ MOEOT $>$ \&\_\-breed, \bf{moeo\-Replacement}$<$ MOEOT $>$ \&\_\-replace, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a breed and merge. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Pop\-Eval\-Func}$<$ MOEOT $>$ \&\_\-pop\-Eval, \bf{eo\-Breed}$<$ MOEOT $>$ \&\_\-breed, \bf{moeo\-Replacement}$<$ MOEOT $>$ \&\_\-replace, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a breed, a merge and a eo\-Pop\-Eval. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Breed}$<$ MOEOT $>$ \&\_\-breed, \bf{eo\-Merge}$<$ MOEOT $>$ \&\_\-merge, \bf{eo\-Reduce}$<$ MOEOT $>$ \&\_\-reduce, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a breed, a merge and a reduce. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Select}$<$ MOEOT $>$ \&\_\-select, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-transform, \bf{moeo\-Replacement}$<$ MOEOT $>$ \&\_\-replace, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a select, a transform and a replacement. \item\end{CompactList}\item +\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Select}$<$ MOEOT $>$ \&\_\-select, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-transform, \bf{eo\-Merge}$<$ MOEOT $>$ \&\_\-merge, \bf{eo\-Reduce}$<$ MOEOT $>$ \&\_\-reduce, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Eval, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Eval, bool \_\-eval\-Fit\-And\-Div\-Before\-Selection=false) +\begin{CompactList}\small\item\em Ctor taking a select, a transform, a merge and a reduce. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Applies a few generation of evolution to the population \_\-pop. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoEasyEA_5f5b76acbaf99a6a3ee2710da07dde29} + +\begin{CompactList}\small\item\em the stopping criteria \item\end{CompactList}\item +\bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& \bf{eval}\label{classmoeoEasyEA_26e8ebce6a1bc3216e20171688ba6b83} + +\begin{CompactList}\small\item\em the evaluation functions \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{loop\-Eval}\label{classmoeoEasyEA_c1d492090805bf322c07159a9238a7ae} + +\begin{CompactList}\small\item\em to evaluate the whole population \item\end{CompactList}\item +\bf{eo\-Pop\-Eval\-Func}$<$ MOEOT $>$ \& \bf{pop\-Eval}\label{classmoeoEasyEA_189a8f5196844907ff71f386d95bf415} + +\begin{CompactList}\small\item\em to evaluate the whole population \item\end{CompactList}\item +\bf{eo\-Select\-Transform}$<$ MOEOT $>$ \bf{select\-Transform}\label{classmoeoEasyEA_bd69a176f3cacc2694342075a9022f74} + +\begin{CompactList}\small\item\em breed: a select followed by a transform \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoEasyEA_35d5909694019d1b0d52347c72a9092e} + +\begin{CompactList}\small\item\em the breeder \item\end{CompactList}\item +\bf{eo\-Merge\-Reduce}$<$ MOEOT $>$ \bf{merge\-Reduce}\label{classmoeoEasyEA_15a69654c07b24f9795add0a22f1f856} + +\begin{CompactList}\small\item\em replacement: a merge followed by a reduce \item\end{CompactList}\item +\bf{moeo\-Replacement}$<$ MOEOT $>$ \& \bf{replace}\label{classmoeoEasyEA_91611cf2862c2db953554e367a576244} + +\begin{CompactList}\small\item\em the replacment strategy \item\end{CompactList}\item +\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Eval}\label{classmoeoEasyEA_1268fc2f0b62fe51bca17d4efb51954b} + +\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item +\bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& \bf{diversity\-Eval}\label{classmoeoEasyEA_b9d1b3790072dbbbe0012a252bab95f4} + +\begin{CompactList}\small\item\em the diversity assignment strategy \item\end{CompactList}\item +bool \bf{eval\-Fit\-And\-Div\-Before\-Selection}\label{classmoeoEasyEA_856a19d9a7c180fe33ce7a5bb010edcc} + +\begin{CompactList}\small\item\em if this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process \item\end{CompactList}\item +\bf{moeo\-Easy\-EA::eo\-Dummy\-Eval} \bf{dummy\-Eval}\label{classmoeoEasyEA_16cbb12cb7de77c6d7d3f7aee9434880} + +\begin{CompactList}\small\item\em a dummy eval \item\end{CompactList}\item +\bf{moeo\-Easy\-EA::eo\-Dummy\-Select} \bf{dummy\-Select}\label{classmoeoEasyEA_fed6522fe0fcea204850dbb89cc7116e} + +\begin{CompactList}\small\item\em a dummy select \item\end{CompactList}\item +\bf{moeo\-Easy\-EA::eo\-Dummy\-Transform} \bf{dummy\-Transform}\label{classmoeoEasyEA_56991f36963ed61e44e91759c891f13c} + +\begin{CompactList}\small\item\em a dummy transform \item\end{CompactList}\item +\bf{eo\-No\-Elitism}$<$ MOEOT $>$ \bf{dummy\-Merge}\label{classmoeoEasyEA_e26830e1301cfd626eed55b0fbf8dbcb} + +\begin{CompactList}\small\item\em a dummy merge \item\end{CompactList}\item +\bf{eo\-Truncate}$<$ MOEOT $>$ \bf{dummy\-Reduce}\label{classmoeoEasyEA_65963f9308ccc0acc3dfc32a128f6228} + +\begin{CompactList}\small\item\em a dummy reduce \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{eo\-Dummy\-Eval} +\begin{CompactList}\small\item\em a dummy eval \item\end{CompactList}\item +class \bf{eo\-Dummy\-Select} +\begin{CompactList}\small\item\em a dummy select \item\end{CompactList}\item +class \bf{eo\-Dummy\-Transform} +\begin{CompactList}\small\item\em a dummy transform \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$} + +An easy class to design multi-objective evolutionary algorithms. + + + +Definition at line 33 of file moeo\-Easy\-EA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Breed}$<$ MOEOT $>$ \& {\em \_\-breed}, \bf{moeo\-Replacement}$<$ MOEOT $>$ \& {\em \_\-replace}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_3f657699b8ed340ae3f51194206daa20} + + +Ctor taking a breed and merge. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-breed}]the breeder \item[{\em \_\-replace}]the replacement strategy \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 47 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Pop\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-pop\-Eval}, \bf{eo\-Breed}$<$ MOEOT $>$ \& {\em \_\-breed}, \bf{moeo\-Replacement}$<$ MOEOT $>$ \& {\em \_\-replace}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_6cdebc72ce0134ce1680dafdf94740a1} + + +Ctor taking a breed, a merge and a eo\-Pop\-Eval. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-pop\-Eval}]the evaluation functions for the whole population \item[{\em \_\-breed}]the breeder \item[{\em \_\-replace}]the replacement strategy \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 65 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Breed}$<$ MOEOT $>$ \& {\em \_\-breed}, \bf{eo\-Merge}$<$ MOEOT $>$ \& {\em \_\-merge}, \bf{eo\-Reduce}$<$ MOEOT $>$ \& {\em \_\-reduce}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_65c1069eeed979ca433e6caee3b5e942} + + +Ctor taking a breed, a merge and a reduce. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-breed}]the breeder \item[{\em \_\-merge}]the merge scheme \item[{\em \_\-reduce}]the reduce scheme \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 84 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Select}$<$ MOEOT $>$ \& {\em \_\-select}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-transform}, \bf{moeo\-Replacement}$<$ MOEOT $>$ \& {\em \_\-replace}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_27f0db7a608636c904305afa11cd6ae1} + + +Ctor taking a select, a transform and a replacement. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-select}]the selection scheme \item[{\em \_\-transform}]the tranformation scheme \item[{\em \_\-replace}]the replacement strategy \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 103 of file moeo\-Easy\-EA.h.\index{moeoEasyEA@{moeo\-Easy\-EA}!moeoEasyEA@{moeoEasyEA}} +\index{moeoEasyEA@{moeoEasyEA}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::\bf{moeo\-Easy\-EA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Select}$<$ MOEOT $>$ \& {\em \_\-select}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-transform}, \bf{eo\-Merge}$<$ MOEOT $>$ \& {\em \_\-merge}, \bf{eo\-Reduce}$<$ MOEOT $>$ \& {\em \_\-reduce}, \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Eval}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Eval}, bool {\em \_\-eval\-Fit\-And\-Div\-Before\-Selection} = {\tt false})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEasyEA_564a3291a8239515328cf0a6b40f3c99} + + +Ctor taking a select, a transform, a merge and a reduce. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]the stopping criteria \item[{\em \_\-eval}]the evaluation functions \item[{\em \_\-select}]the selection scheme \item[{\em \_\-transform}]the tranformation scheme \item[{\em \_\-merge}]the merge scheme \item[{\em \_\-reduce}]the reduce scheme \item[{\em \_\-fitness\-Eval}]the fitness evaluation scheme \item[{\em \_\-diversity\-Eval}]the diversity evaluation scheme \item[{\em \_\-eval\-Fit\-And\-Div\-Before\-Selection}]put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process \end{description} +\end{Desc} + + +Definition at line 123 of file moeo\-Easy\-EA.h. + +\subsection{Member Function Documentation} +\index{moeoEasyEA@{moeo\-Easy\-EA}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEasyEA@{moeo\-Easy\-EA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Easy\-EA}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoEasyEA_f18e8fd179fbb2b89f4a59d213317170} + + +Applies a few generation of evolution to the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 135 of file moeo\-Easy\-EA.h. + +References moeo\-Easy\-EA$<$ MOEOT $>$::breed, moeo\-Easy\-EA$<$ MOEOT $>$::continuator, moeo\-Easy\-EA$<$ MOEOT $>$::diversity\-Eval, moeo\-Easy\-EA$<$ MOEOT $>$::eval\-Fit\-And\-Div\-Before\-Selection, moeo\-Easy\-EA$<$ MOEOT $>$::fitness\-Eval, moeo\-Easy\-EA$<$ MOEOT $>$::pop\-Eval, and moeo\-Easy\-EA$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.eps new file mode 100644 index 000000000..6887abc95 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 318.725 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.56875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEasyEA< MOEOT >::eoDummyEval) cw +(eoEvalFunc< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >::eoDummyEval) 0 0 box + (eoEvalFunc< MOEOT >) 0 1 box + (eoUF< A1, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex new file mode 100644 index 000000000..a29cf04b9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyEval.tex @@ -0,0 +1,33 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval Class Reference} +\label{classmoeoEasyEA_1_1eoDummyEval}\index{moeoEasyEA::eoDummyEval@{moeoEasyEA::eoDummyEval}} +a dummy eval + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEasyEA_1_1eoDummyEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (MOEOT \&)\label{classmoeoEasyEA_1_1eoDummyEval_1ed55869451f883db2fc43c60f7caff5} + +\begin{CompactList}\small\item\em the dummy functor \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval} + +a dummy eval + + + +Definition at line 200 of file moeo\-Easy\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.eps new file mode 100644 index 000000000..d9db8ba09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 306.513 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.63125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEasyEA< MOEOT >::eoDummySelect) cw +(eoSelect< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >::eoDummySelect) 0 0 box + (eoSelect< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex new file mode 100644 index 000000000..50599fe9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummySelect.tex @@ -0,0 +1,33 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select Class Reference} +\label{classmoeoEasyEA_1_1eoDummySelect}\index{moeoEasyEA::eoDummySelect@{moeoEasyEA::eoDummySelect}} +a dummy select + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEasyEA_1_1eoDummySelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&, \bf{eo\-Pop}$<$ MOEOT $>$ \&)\label{classmoeoEasyEA_1_1eoDummySelect_32207d2ed997aa90ba9f32f5625b63d6} + +\begin{CompactList}\small\item\em the dummy functor \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select} + +a dummy select + + + +Definition at line 204 of file moeo\-Easy\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.eps new file mode 100644 index 000000000..35dbc762b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 282.686 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.76875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEasyEA< MOEOT >::eoDummyTransform) cw +(eoTransform< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEasyEA< MOEOT >::eoDummyTransform) 0 0 box + (eoTransform< MOEOT >) 0 1 box + (eoUF< A1, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex new file mode 100644 index 000000000..495ae6b6c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEasyEA_1_1eoDummyTransform.tex @@ -0,0 +1,33 @@ +\section{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform Class Reference} +\label{classmoeoEasyEA_1_1eoDummyTransform}\index{moeoEasyEA::eoDummyTransform@{moeoEasyEA::eoDummyTransform}} +a dummy transform + + +{\tt \#include $<$moeo\-Easy\-EA.h$>$} + +Inheritance diagram for moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEasyEA_1_1eoDummyTransform} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&)\label{classmoeoEasyEA_1_1eoDummyTransform_0e153e482291a7f19f7f7a02505fb432} + +\begin{CompactList}\small\item\em the dummy functor \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform} + +a dummy transform + + + +Definition at line 208 of file moeo\-Easy\-EA.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Easy\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.eps new file mode 100644 index 000000000..afafe9024 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 452.489 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.105 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoElitistReplacement< MOEOT >) cw +(moeoReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoElitistReplacement< MOEOT >) 0 0 box + (moeoReplacement< MOEOT >) 0 1 box + (eoReplacement< MOEOT >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex new file mode 100644 index 000000000..7b71765f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement.tex @@ -0,0 +1,141 @@ +\section{moeo\-Elitist\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoElitistReplacement}\index{moeoElitistReplacement@{moeoElitistReplacement}} +Elitist replacement strategy that consists in keeping the N best individuals. + + +{\tt \#include $<$moeo\-Elitist\-Replacement.h$>$} + +Inheritance diagram for moeo\-Elitist\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoElitistReplacement} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment) +\begin{CompactList}\small\item\em Constructor without comparator. \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement. \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-parents, \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-offspring) +\begin{CompactList}\small\item\em Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Assignment}\label{classmoeoElitistReplacement_ba390ae799848417dc41d0e71b010425} + +\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item +\bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& \bf{diversity\-Assignment}\label{classmoeoElitistReplacement_7dff2c8d871e87a2ba326b69fd0c48d9} + +\begin{CompactList}\small\item\em the diversity assignment strategy \item\end{CompactList}\item +\bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{default\-Diversity}\label{classmoeoElitistReplacement_0a88fa6ae1cba0eb041b804f86e31ab2} + +\begin{CompactList}\small\item\em a dummy diversity assignment can be used as default \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoElitistReplacement_e4b10eae9d1b048525737fbe47e34215} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement::Cmp} \bf{comparator}\label{classmoeoElitistReplacement_4ef0a67b6f52c7238449522f4773ad60} + +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{Cmp} +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Elitist\-Replacement$<$ MOEOT $>$} + +Elitist replacement strategy that consists in keeping the N best individuals. + + + +Definition at line 26 of file moeo\-Elitist\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_1d91980f3f800833c8e9452cb450ae3e} + + +Full constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 36 of file moeo\-Elitist\-Replacement.h.\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_d7122be0519207c7496852284ed24514} + + +Constructor without comparator. + +A moeo\-Fit\-Then\-Div\-Comparator is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \end{description} +\end{Desc} + + +Definition at line 46 of file moeo\-Elitist\-Replacement.h.\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_81b7b8e0cac6cbed36e47688adf1466c} + + +Constructor without moeo\-Diversity\-Assignement. + +A dummy diversity is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 56 of file moeo\-Elitist\-Replacement.h.\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!moeoElitistReplacement@{moeoElitistReplacement}} +\index{moeoElitistReplacement@{moeoElitistReplacement}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Elitist\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_2ef7c199d779d473a9d35cee21556794} + + +Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. + +A moeo\-Fit\-Then\-Div\-Comparator and a dummy diversity are used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \end{description} +\end{Desc} + + +Definition at line 66 of file moeo\-Elitist\-Replacement.h. + +\subsection{Member Function Documentation} +\index{moeoElitistReplacement@{moeo\-Elitist\-Replacement}!operator()@{operator()}} +\index{operator()@{operator()}!moeoElitistReplacement@{moeo\-Elitist\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-parents}, \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-offspring})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_0364c6ef9d16f7eb65caa9edfce69006} + + +Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-parents}]the population composed of the parents (the population you want to replace) \item[{\em \_\-offspring}]the offspring population \end{description} +\end{Desc} + + +Definition at line 76 of file moeo\-Elitist\-Replacement.h. + +References moeo\-Elitist\-Replacement$<$ MOEOT $>$::comparator, moeo\-Elitist\-Replacement$<$ MOEOT $>$::diversity\-Assignment, and moeo\-Elitist\-Replacement$<$ MOEOT $>$::fitness\-Assignment. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Elitist\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex new file mode 100644 index 000000000..e3d9c7dec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoElitistReplacement_1_1Cmp.tex @@ -0,0 +1,52 @@ +\section{moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp Class Reference} +\label{classmoeoElitistReplacement_1_1Cmp}\index{moeoElitistReplacement::Cmp@{moeoElitistReplacement::Cmp}} +this object is used to compare solutions in order to sort the population + + +{\tt \#include $<$moeo\-Elitist\-Replacement.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{Cmp} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comp) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2)\label{classmoeoElitistReplacement_1_1Cmp_2411b927dde02225114635e776ce863f} + +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 is greater than \_\-moeo2 according to the comparator \_\-moeo1 the first individual \_\-moeo2 the first individual. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comp}\label{classmoeoElitistReplacement_1_1Cmp_c7c0d0839bcbe86455d9f1064884219a} + +\begin{CompactList}\small\item\em the comparator \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp} + +this object is used to compare solutions in order to sort the population + + + +Definition at line 105 of file moeo\-Elitist\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoElitistReplacement::Cmp@{moeo\-Elitist\-Replacement::Cmp}!Cmp@{Cmp}} +\index{Cmp@{Cmp}!moeoElitistReplacement::Cmp@{moeo\-Elitist\-Replacement::Cmp}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$::Cmp::Cmp (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comp})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoElitistReplacement_1_1Cmp_c9f21fe0df172dc601a13d6531c5ffd9} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comp}]the comparator \end{description} +\end{Desc} + + +Definition at line 112 of file moeo\-Elitist\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Elitist\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps new file mode 100644 index 000000000..07195f6e5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.626 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.77 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEntropyMetric< ObjectiveVector >) cw +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEntropyMetric< ObjectiveVector >) 0.5 0 box + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex new file mode 100644 index 000000000..eaf9016ca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEntropyMetric.tex @@ -0,0 +1,152 @@ +\section{moeo\-Entropy\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoEntropyMetric}\index{moeoEntropyMetric@{moeoEntropyMetric}} +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + + +{\tt \#include $<$moeo\-Entropy\-Metric.h$>$} + +Inheritance diagram for moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.71353cm]{classmoeoEntropyMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +double \bf{operator()} (const std::vector$<$ Objective\-Vector $>$ \&\_\-set1, const std::vector$<$ Objective\-Vector $>$ \&\_\-set2) +\begin{CompactList}\small\item\em Returns the entropy of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{remove\-Dominated} (std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Removes the dominated individuals contained in \_\-f. \item\end{CompactList}\item +void \bf{prenormalize} (const std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Prenormalization. \item\end{CompactList}\item +void \bf{normalize} (std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Normalization. \item\end{CompactList}\item +void \bf{compute\-Union} (const std::vector$<$ Objective\-Vector $>$ \&\_\-f1, const std::vector$<$ Objective\-Vector $>$ \&\_\-f2, std::vector$<$ Objective\-Vector $>$ \&\_\-f) +\begin{CompactList}\small\item\em Computation of the union of \_\-f1 and \_\-f2 in \_\-f. \item\end{CompactList}\item +unsigned int \bf{how\-Many\-In\-Niche\-Of} (const std::vector$<$ Objective\-Vector $>$ \&\_\-f, const Objective\-Vector \&\_\-s, unsigned int \_\-size)\label{classmoeoEntropyMetric_7977dac672bd6e2e1dfff8cf7954c180} + +\begin{CompactList}\small\item\em How many in niche. \item\end{CompactList}\item +double \bf{euclidian\-Distance} (const Objective\-Vector \&\_\-set1, const Objective\-Vector \&\_\-to, unsigned int \_\-deg=2)\label{classmoeoEntropyMetric_4716a673498a0681fb78414e390824a3} + +\begin{CompactList}\small\item\em Euclidian distance. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +std::vector$<$ double $>$ \bf{vect\_\-min\_\-val}\label{classmoeoEntropyMetric_e423d7d4416ef371ce7b0fd24c3212f8} + +\begin{CompactList}\small\item\em vector of min values \item\end{CompactList}\item +std::vector$<$ double $>$ \bf{vect\_\-max\_\-val}\label{classmoeoEntropyMetric_f5fad6d144520fd1403f774f98b18b99} + +\begin{CompactList}\small\item\em vector of max values \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoEntropyMetric_227ce550253c35957300c6e11730c847} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Entropy\-Metric$<$ Objective\-Vector $>$} + +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + +of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) + + + +Definition at line 25 of file moeo\-Entropy\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::operator() (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-set2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEntropyMetric_191a8cdda7873e20338e678c5a7b927b} + + +Returns the entropy of the Pareto set '\_\-set1' relatively to the Pareto set '\_\-set2'. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-set1}]the first Pareto set \item[{\em \_\-set2}]the second Pareto set \end{description} +\end{Desc} + + +Definition at line 34 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::compute\-Union(), moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::how\-Many\-In\-Niche\-Of(), moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::normalize(), moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::prenormalize(), and moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::remove\-Dominated().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!removeDominated@{removeDominated}} +\index{removeDominated@{removeDominated}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::remove\-Dominated (std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_198a717fd0bab0bb91346399c1021f82} + + +Removes the dominated individuals contained in \_\-f. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f}]a Pareto set \end{description} +\end{Desc} + + +Definition at line 85 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!prenormalize@{prenormalize}} +\index{prenormalize@{prenormalize}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::prenormalize (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_51dd04bdd0ac6315f4f5956fb726cec1} + + +Prenormalization. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f}]a Pareto set \end{description} +\end{Desc} + + +Definition at line 107 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-max\_\-val, and moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-min\_\-val. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!normalize@{normalize}} +\index{normalize@{normalize}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::normalize (std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_2ed5771c3c611634b415f4be48cad172} + + +Normalization. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f}]a Pareto set \end{description} +\end{Desc} + + +Definition at line 129 of file moeo\-Entropy\-Metric.h. + +References moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-max\_\-val, and moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::vect\_\-min\_\-val. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()().\index{moeoEntropyMetric@{moeo\-Entropy\-Metric}!computeUnion@{computeUnion}} +\index{computeUnion@{computeUnion}!moeoEntropyMetric@{moeo\-Entropy\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ void \bf{moeo\-Entropy\-Metric}$<$ Objective\-Vector $>$::compute\-Union (const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f1}, const std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f2}, std::vector$<$ Objective\-Vector $>$ \& {\em \_\-f})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoEntropyMetric_4b99c1842d780a89bda08e99a59e3e29} + + +Computation of the union of \_\-f1 and \_\-f2 in \_\-f. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-f1}]the first Pareto set \item[{\em \_\-f2}]the second Pareto set \item[{\em \_\-f}]the final Pareto set \end{description} +\end{Desc} + + +Definition at line 142 of file moeo\-Entropy\-Metric.h. + +Referenced by moeo\-Entropy\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Entropy\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.eps new file mode 100644 index 000000000..06f562ea4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 367.647 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.36 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEnvironmentalReplacement< MOEOT >) cw +(moeoReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEnvironmentalReplacement< MOEOT >) 0 0 box + (moeoReplacement< MOEOT >) 0 1 box + (eoReplacement< MOEOT >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex new file mode 100644 index 000000000..4b64e667d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement.tex @@ -0,0 +1,147 @@ +\section{moeo\-Environmental\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEnvironmentalReplacement}\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. + + +{\tt \#include $<$moeo\-Environmental\-Replacement.h$>$} + +Inheritance diagram for moeo\-Environmental\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoEnvironmentalReplacement} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoEnvironmentalReplacement_ef38fb9b1ab23ddd2c558639e19f4821} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Full constructor. \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \&\_\-diversity\-Assignment) +\begin{CompactList}\small\item\em Constructor without comparator. \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment, \bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement. \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \&\_\-fitness\-Assignment) +\begin{CompactList}\small\item\em Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-parents, \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-offspring) +\begin{CompactList}\small\item\em Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& \bf{fitness\-Assignment}\label{classmoeoEnvironmentalReplacement_4b7bc138b17ad5381355c0481bc9c669} + +\begin{CompactList}\small\item\em the fitness assignment strategy \item\end{CompactList}\item +\bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& \bf{diversity\-Assignment}\label{classmoeoEnvironmentalReplacement_e2453bd96c9a490f7de21f9ce22fdff9} + +\begin{CompactList}\small\item\em the diversity assignment strategy \item\end{CompactList}\item +\bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{default\-Diversity}\label{classmoeoEnvironmentalReplacement_7f546704db3225ee1c40439beff5f618} + +\begin{CompactList}\small\item\em a dummy diversity assignment can be used as default \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoEnvironmentalReplacement_b7f4ce8d3ecf2d18e8c48982875760bb} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement::Cmp} \bf{comparator}\label{classmoeoEnvironmentalReplacement_e3a9d75b9e6603aba4a04fb8062db0a4} + +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{Cmp} +\begin{CompactList}\small\item\em this object is used to compare solutions in order to sort the population \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Environmental\-Replacement$<$ MOEOT $>$} + +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. + + + +Definition at line 26 of file moeo\-Environmental\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_de6e8f546a4583f1eee31366f7099c38} + + +Full constructor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 40 of file moeo\-Environmental\-Replacement.h.\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Diversity\-Assignment}$<$ MOEOT $>$ \& {\em \_\-diversity\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_9199a29cf89cd6b01bb9be304f344940} + + +Constructor without comparator. + +A moeo\-Fit\-Then\-Div\-Comparator is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-diversity\-Assignment}]the diversity assignment strategy \end{description} +\end{Desc} + + +Definition at line 50 of file moeo\-Environmental\-Replacement.h.\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment}, \bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_7512641b5d58c96a148a75fd4dc95bf7} + + +Constructor without moeo\-Diversity\-Assignement. + +A dummy diversity is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \end{description} +\end{Desc} + + +Definition at line 60 of file moeo\-Environmental\-Replacement.h.\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}} +\index{moeoEnvironmentalReplacement@{moeoEnvironmentalReplacement}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::\bf{moeo\-Environmental\-Replacement} (\bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$ \& {\em \_\-fitness\-Assignment})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_2dfa5d51660039b4f90196e7885ed586} + + +Constructor without moeo\-Diversity\-Assignement nor \doxyref{moeo\-Comparator}{p.}{classmoeoComparator}. + +A moeo\-Fit\-Then\-Div\-Comparator and a dummy diversity are used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-fitness\-Assignment}]the fitness assignment strategy \end{description} +\end{Desc} + + +Definition at line 70 of file moeo\-Environmental\-Replacement.h. + +\subsection{Member Function Documentation} +\index{moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEnvironmentalReplacement@{moeo\-Environmental\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-parents}, \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-offspring})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_55acfca7f9dd9e3d75cef7c9015dc037} + + +Replaces the first population by adding the individuals of the second one, sorting with a \doxyref{moeo\-Comparator}{p.}{classmoeoComparator} and resizing the whole population obtained. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-parents}]the population composed of the parents (the population you want to replace) \item[{\em \_\-offspring}]the offspring population \end{description} +\end{Desc} + + +Definition at line 80 of file moeo\-Environmental\-Replacement.h. + +References moeo\-Environmental\-Replacement$<$ MOEOT $>$::comparator, moeo\-Environmental\-Replacement$<$ MOEOT $>$::diversity\-Assignment, and moeo\-Environmental\-Replacement$<$ MOEOT $>$::fitness\-Assignment. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Environmental\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex new file mode 100644 index 000000000..9d597aa51 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEnvironmentalReplacement_1_1Cmp.tex @@ -0,0 +1,52 @@ +\section{moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp Class Reference} +\label{classmoeoEnvironmentalReplacement_1_1Cmp}\index{moeoEnvironmentalReplacement::Cmp@{moeoEnvironmentalReplacement::Cmp}} +this object is used to compare solutions in order to sort the population + + +{\tt \#include $<$moeo\-Environmental\-Replacement.h$>$} + +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{Cmp} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comp) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2)\label{classmoeoEnvironmentalReplacement_1_1Cmp_b006918d5d6fc1f87fb9ed585946595a} + +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 is greater than \_\-moeo2 according to the comparator \_\-moeo1 the first individual \_\-moeo2 the first individual. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comp}\label{classmoeoEnvironmentalReplacement_1_1Cmp_5c345292ee3ec6b8f7b79dafe3ac2c81} + +\begin{CompactList}\small\item\em the comparator \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp} + +this object is used to compare solutions in order to sort the population + + + +Definition at line 121 of file moeo\-Environmental\-Replacement.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoEnvironmentalReplacement::Cmp@{moeo\-Environmental\-Replacement::Cmp}!Cmp@{Cmp}} +\index{Cmp@{Cmp}!moeoEnvironmentalReplacement::Cmp@{moeo\-Environmental\-Replacement::Cmp}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$::Cmp::Cmp (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comp})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEnvironmentalReplacement_1_1Cmp_efd55b365f306715f1a871b50d479f38} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comp}]the comparator \end{description} +\end{Desc} + + +Definition at line 128 of file moeo\-Environmental\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Environmental\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.eps new file mode 100644 index 000000000..298825456 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 431.034 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.16 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEuclideanDistance< MOEOT >) cw +(moeoNormalizedDistance< MOEOT >) cw +(moeoDistance< MOEOT, double >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEuclideanDistance< MOEOT >) 0 0 box + (moeoNormalizedDistance< MOEOT >) 0 1 box + (moeoDistance< MOEOT, double >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex new file mode 100644 index 000000000..19ed853ed --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEuclideanDistance.tex @@ -0,0 +1,59 @@ +\section{moeo\-Euclidean\-Distance$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEuclideanDistance}\index{moeoEuclideanDistance@{moeoEuclideanDistance}} +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + + +{\tt \#include $<$moeo\-Euclidean\-Distance.h$>$} + +Inheritance diagram for moeo\-Euclidean\-Distance$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoEuclideanDistance} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoEuclideanDistance_d75b1b8695b3eb16f9574496b5822daa} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const double \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns the euclidian distance between \_\-moeo1 and \_\-moeo2 in the objective space. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Euclidean\-Distance$<$ MOEOT $>$} + +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and sqrt(n\-Objectives). + + + +Definition at line 24 of file moeo\-Euclidean\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoEuclideanDistance@{moeo\-Euclidean\-Distance}!operator()@{operator()}} +\index{operator()@{operator()}!moeoEuclideanDistance@{moeo\-Euclidean\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const double \bf{moeo\-Euclidean\-Distance}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoEuclideanDistance_20ff559e95da92a46990eb0658f018f1} + + +Returns the euclidian distance between \_\-moeo1 and \_\-moeo2 in the objective space. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Euclidean\-Distance.h. + +References moeo\-Normalized\-Distance$<$ MOEOT $>$::bounds. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Euclidean\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEvalFunc.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEvalFunc.eps new file mode 100644 index 000000000..0a42e820d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEvalFunc.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 459.77 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.0875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoEvalFunc< MOEOT >) cw +(eoEvalFunc< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoEvalFunc< MOEOT >) 0 0 box + (eoEvalFunc< MOEOT >) 0 1 box + (eoUF< A1, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex new file mode 100644 index 000000000..a935b8a71 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoEvalFunc.tex @@ -0,0 +1,22 @@ +\section{moeo\-Eval\-Func$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoEvalFunc}\index{moeoEvalFunc@{moeoEvalFunc}} +Inheritance diagram for moeo\-Eval\-Func$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoEvalFunc} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Eval\-Func$<$ MOEOT $>$} + + + + + +Definition at line 22 of file moeo\-Eval\-Func.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Eval\-Func.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..15d7d9454 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 327.869 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.525 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0 2 box + (moeoFitnessAssignment< MOEOT >) 0 3 box + (eoUF< eoPop< MOEOT > &, void >) 0 4 box + (eoFunctorBase) 0 5 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +0 0 4 out +solid +1 0 5 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..34fe9b788 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoExpBinaryIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,213 @@ +\section{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment}\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeoExpBinaryIndicatorBasedFitnessAssignment}} +Fitness assignment sheme based on an indicator proposed in: E. + + +{\tt \#include $<$moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=6cm]{classmoeoExpBinaryIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_e519691e807af18ea11b7d8c17d2b9b4} + +\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment} (\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\item +double \bf{update\-By\-Adding} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the adding of the objective vector \_\-obj\-Vec into account and returns the fitness value of \_\-obj\-Vec. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Member Functions} +\begin{CompactItemize} +\item +void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the bounds for every objective using the min and the max value for every objective vector of \_\-pop. \item\end{CompactList}\item +void \bf{compute\-Values} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Compute every indicator value in values (values[i] = I(\_\-v[i], \_\-o)). \item\end{CompactList}\item +void \bf{set\-Fitnesses} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness value of the whple population. \item\end{CompactList}\item +double \bf{compute\-Fitness} (const unsigned int \_\-idx) +\begin{CompactList}\small\item\em Returns the fitness value of the \_\-idx th individual of the population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& \bf{metric}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_98008d8346524381bee9c26a2e600f24} + +\begin{CompactList}\small\item\em the quality indicator \item\end{CompactList}\item +double \bf{kappa}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_22d049e40f87f505259b69e7a55a8339} + +\begin{CompactList}\small\item\em the scaling factor \item\end{CompactList}\item +std::vector$<$ std::vector$<$ double $>$ $>$ \bf{values}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_872dc1802f45c8ed0a93d5ee6b1e4d2a} + +\begin{CompactList}\small\item\em the computed indicator values \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +Fitness assignment sheme based on an indicator proposed in: E. + +Zitzler, S. K\~{A}¼nzli, \char`\"{}Indicator-Based Selection in Multiobjective Search\char`\"{}, Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This strategy is, for instance, used in IBEA. + + + +Definition at line 29 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeoExpBinaryIndicatorBasedFitnessAssignment}} +\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeoExpBinaryIndicatorBasedFitnessAssignment}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment} (\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_226214378bbf6ebc7fea813a62a5c66e} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-metric}]the quality indicator \item[{\em \_\-kappa}]the scaling factor \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_fde913bb1d456edd82d4a2d000f705ae} + + +Sets the fitness values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 50 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::compute\-Values(), moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::set\-Fitnesses(), and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::setup().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_1ad61bf146d3b24b41ef0575360f664b} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 66 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::kappa, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric.\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!updateByAdding@{updateByAdding}} +\index{updateByAdding@{updateByAdding}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ double \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Adding (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_f94d9d4dee8dde20cda67e84643aae50} + + +Updates the fitness values of the whole population \_\-pop by taking the adding of the objective vector \_\-obj\-Vec into account and returns the fitness value of \_\-obj\-Vec. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Definition at line 87 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::kappa, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric.\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!setup@{setup}} +\index{setup@{setup}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_ebdbaaf036ca944319b9f8706602382f} + + +Sets the bounds for every objective using the min and the max value for every objective vector of \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 130 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric, and moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::setup(). + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!computeValues@{computeValues}} +\index{computeValues@{computeValues}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::compute\-Values (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_20cf29102b848f7ce342dbbb17e9636b} + + +Compute every indicator value in values (values[i] = I(\_\-v[i], \_\-o)). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 152 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::metric, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::values. + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!setFitnesses@{setFitnesses}} +\index{setFitnesses@{setFitnesses}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::set\-Fitnesses (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_063741218c8aa82f53845f9230cb0693} + + +Sets the fitness value of the whple population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 174 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::compute\-Fitness(). + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}!computeFitness@{computeFitness}} +\index{computeFitness@{computeFitness}!moeoExpBinaryIndicatorBasedFitnessAssignment@{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ double \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$::compute\-Fitness (const unsigned int {\em \_\-idx})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoExpBinaryIndicatorBasedFitnessAssignment_d2fd41b9b356d1f1f87ce0f44907336f} + + +Returns the fitness value of the \_\-idx th individual of the population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-idx}]the index \end{description} +\end{Desc} + + +Definition at line 187 of file moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h. + +References moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::kappa, and moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::values. + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::set\-Fitnesses(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.eps new file mode 100644 index 000000000..2e7225c9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 270.27 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.85 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) cw +(moeoParetoBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 0 0 box + (moeoParetoBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex new file mode 100644 index 000000000..04c3317a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment.tex @@ -0,0 +1,179 @@ +\section{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFastNonDominatedSortingFitnessAssignment}\index{moeoFastNonDominatedSortingFitnessAssignment@{moeoFastNonDominatedSortingFitnessAssignment}} +Fitness assignment sheme based on Pareto-dominance count proposed in: N. + + +{\tt \#include $<$moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoFastNonDominatedSortingFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFastNonDominatedSortingFitnessAssignment_7bca09c8cf084700172a6e0dfcf6c381} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment} ()\label{classmoeoFastNonDominatedSortingFitnessAssignment_d02bd6ca60399f6171c08fa42f131644} + +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \&\_\-comparator) +\begin{CompactList}\small\item\em Ctor where you can choose your own way to compare objective vectors. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{one\-Objective} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for mono-objective problems. \item\end{CompactList}\item +void \bf{two\-Objectives} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. \item\end{CompactList}\item +void \bf{m\-Objectives} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the fitness values for problems with more than two objectives with a complexity of O(n\^{A}² log n), where n stands for the population size. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& \bf{comparator}\label{classmoeoFastNonDominatedSortingFitnessAssignment_cc2269f00944e308e53004cc3a68855b} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors. \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \bf{pareto\-Comparator}\label{classmoeoFastNonDominatedSortingFitnessAssignment_c91bade0a1aa1200d0245f7c13fb74fc} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment::Objective\-Comparator} \bf{obj\-Comparator}\label{classmoeoFastNonDominatedSortingFitnessAssignment_1ff82dbdcd601806382bb1af98c30572} + +\begin{CompactList}\small\item\em Functor allowing to compare two solutions according to their first objective value, then their second, and so on. \item\end{CompactList}\end{CompactItemize} +\subsection*{Classes} +\begin{CompactItemize} +\item +class \bf{Objective\-Comparator} +\begin{CompactList}\small\item\em Functor allowing to compare two solutions according to their first objective value, then their second, and so on. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$} + +Fitness assignment sheme based on Pareto-dominance count proposed in: N. + +Srinivas, K. Deb, \char`\"{}Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms\char`\"{}, Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) and in: K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, \char`\"{}A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II\char`\"{}, IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). This strategy is, for instance, used in NSGA and NSGA-II. + + + +Definition at line 32 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!moeoFastNonDominatedSortingFitnessAssignment@{moeoFastNonDominatedSortingFitnessAssignment}} +\index{moeoFastNonDominatedSortingFitnessAssignment@{moeoFastNonDominatedSortingFitnessAssignment}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment} (\bf{moeo\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \& {\em \_\-comparator})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_6843abccb77386a06016063f42c63f75} + + +Ctor where you can choose your own way to compare objective vectors. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the functor used to compare objective vectors \end{description} +\end{Desc} + + +Definition at line 51 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_4d75a10be83e50e4d3827c32b74f9d7d} + + +Sets the fitness values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 59 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::m\-Objectives(), and moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::one\-Objective().\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_8d16de444f6c7a73c28c9087b652656e} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implements \bf{moeo\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269}. + +Definition at line 101 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::comparator.\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!oneObjective@{oneObjective}} +\index{oneObjective@{oneObjective}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::one\-Objective (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_f69d3a918dbbe8d7e9ef5abc50fbf17b} + + +Sets the fitness values for mono-objective problems. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 143 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::obj\-Comparator. + +Referenced by moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::operator()().\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!twoObjectives@{twoObjectives}} +\index{twoObjectives@{twoObjectives}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::two\-Objectives (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_ac0337fe41c4d565c5a81de38398a9e9} + + +Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 165 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h.\index{moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}!mObjectives@{mObjectives}} +\index{mObjectives@{mObjectives}!moeoFastNonDominatedSortingFitnessAssignment@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::m\-Objectives (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_f28ad92fe565e13b8d38a3beb30e1e29} + + +Sets the fitness values for problems with more than two objectives with a complexity of O(n\^{A}² log n), where n stands for the population size. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 175 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::comparator. + +Referenced by moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.eps new file mode 100644 index 000000000..40263889c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 161.29 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.1 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex new file mode 100644 index 000000000..1d9464262 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator.tex @@ -0,0 +1,55 @@ +\section{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator Class Reference} +\label{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator}\index{moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator@{moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator}} +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. + + +Inheritance diagram for moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 on the first objective, then on the second, and so on. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Objective\-Vector\-Comparator}$<$ \bf{Objective\-Vector} $>$ \bf{cmp}\label{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator_2280f5d8df81b5c69676fa4fade67719} + +\begin{CompactList}\small\item\em the corresponding comparator for objective vectors \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator} + +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. + + + +Definition at line 121 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment::Objective\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator@{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment::Objective\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$::Objective\-Comparator::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator_21ba1645a166a348a24c204e88f97987} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 on the first objective, then on the second, and so on. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 129 of file moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h. + +References moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator::cmp. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps new file mode 100644 index 000000000..3756f7262 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.eps @@ -0,0 +1,257 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 54.0541 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 9.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 6 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoCriterionBasedFitnessAssignment< MOEOT >) cw +(moeoDummyFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoParetoBasedFitnessAssignment< MOEOT >) cw +(moeoScalarFitnessAssignment< MOEOT >) cw +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) cw +(moeoAchievementFitnessAssignment< MOEOT >) cw +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFitnessAssignment< MOEOT >) 2 3 box + (eoUF< eoPop< MOEOT > &, void >) 2 4 box + (eoFunctorBase) 2 5 box + (moeoCriterionBasedFitnessAssignment< MOEOT >) 0 2 box + (moeoDummyFitnessAssignment< MOEOT >) 1 2 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 2 2 box + (moeoParetoBasedFitnessAssignment< MOEOT >) 3.5 2 box + (moeoScalarFitnessAssignment< MOEOT >) 4.5 2 box + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 1.5 1 box + (moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) 2.5 1 box + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 3.5 1 box + (moeoAchievementFitnessAssignment< MOEOT >) 4.5 1 box + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 1.5 0 box + +% ----- relations ----- + +solid +0 2 3 out +solid +1 2 4 in +solid +0 2 4 out +solid +1 2 5 in +solid +1 2 2.25 out +solid +0 4.5 3 conn +solid +0 0 2.75 in +solid +0 1 2.75 in +solid +0 2 2.75 in +solid +1 2 1.25 out +solid +1.5 2.5 2 conn +solid +0 3.5 2.75 in +solid +1 3.5 1.25 out +solid +0 4.5 2.75 in +solid +1 4.5 1.25 out +solid +0 1.5 1.75 in +solid +1 1.5 0.25 out +solid +0 2.5 1.75 in +solid +0 3.5 1.75 in +solid +0 4.5 1.75 in +solid +0 1.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex new file mode 100644 index 000000000..e59b75d7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessAssignment.tex @@ -0,0 +1,75 @@ +\section{moeo\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFitnessAssignment}\index{moeoFitnessAssignment@{moeoFitnessAssignment}} +Functor that sets the fitness values of a whole population. + + +{\tt \#include $<$moeo\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.51351cm]{classmoeoFitnessAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFitnessAssignment_6271b8215ea5df4fc1f19e513cd1d533} + +\begin{CompactList}\small\item\em The type for objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec)=0 +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, MOEOT \&\_\-moeo) +\begin{CompactList}\small\item\em Updates the fitness values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fitness\-Assignment$<$ MOEOT $>$} + +Functor that sets the fitness values of a whole population. + + + +Definition at line 23 of file moeo\-Fitness\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFitnessAssignment@{moeo\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFitnessAssignment@{moeo\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [pure virtual]}}\label{classmoeoFitnessAssignment_4922629569eddc9be049b3ead1ab0269} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} + + +Implemented in \bf{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoAchievementFitnessAssignment_a6a2ae6c263dbcea3c16cde4c8a1e5fc}, \bf{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDummyFitnessAssignment_6e87d4a8ff8f43a7001a21a13795d00e}, \bf{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoExpBinaryIndicatorBasedFitnessAssignment_1ad61bf146d3b24b41ef0575360f664b}, and \bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFastNonDominatedSortingFitnessAssignment_8d16de444f6c7a73c28c9087b652656e}. + +Referenced by moeo\-Fitness\-Assignment$<$ MOEOT $>$::update\-By\-Deleting().\index{moeoFitnessAssignment@{moeo\-Fitness\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFitnessAssignment@{moeo\-Fitness\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Fitness\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, MOEOT \& {\em \_\-moeo})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFitnessAssignment_057fd85764abb5de35adb52b5ef695be} + + +Updates the fitness values of the whole population \_\-pop by taking the deletion of the individual \_\-moeo into account. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-moeo}]the individual \end{description} +\end{Desc} + + +Definition at line 44 of file moeo\-Fitness\-Assignment.h. + +References moeo\-Fitness\-Assignment$<$ MOEOT $>$::update\-By\-Deleting(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.eps new file mode 100644 index 000000000..c32881430 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 263.158 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.9 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFitnessThenDiversityComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFitnessThenDiversityComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex new file mode 100644 index 000000000..467c9ba75 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFitnessThenDiversityComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFitnessThenDiversityComparator}\index{moeoFitnessThenDiversityComparator@{moeoFitnessThenDiversityComparator}} +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + + +{\tt \#include $<$moeo\-Fitness\-Then\-Diversity\-Comparator.h$>$} + +Inheritance diagram for moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoFitnessThenDiversityComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their fitness values, then according to their diversity values. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + + + +Definition at line 22 of file moeo\-Fitness\-Then\-Diversity\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoFitnessThenDiversityComparator@{moeo\-Fitness\-Then\-Diversity\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoFitnessThenDiversityComparator@{moeo\-Fitness\-Then\-Diversity\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFitnessThenDiversityComparator_087856d1a7d81f242e95591d694e3ef6} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 according to their fitness values, then according to their diversity values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Fitness\-Then\-Diversity\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Fitness\-Then\-Diversity\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.eps new file mode 100644 index 000000000..3db76e75a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 275.482 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.815 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) cw +(moeoCrowdingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >) 0 0 box + (moeoCrowdingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex new file mode 100644 index 000000000..8296d2833 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontCrowdingDiversityAssignment.tex @@ -0,0 +1,102 @@ +\section{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFrontByFrontCrowdingDiversityAssignment}\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeoFrontByFrontCrowdingDiversityAssignment}} +Diversity assignment sheme based on crowding proposed in: K. + + +{\tt \#include $<$moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoFrontByFrontCrowdingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_aebd424133b426cf6a2ec7b20743bbaf} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{set\-Distances} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the distance values. \item\end{CompactList}\item +unsigned int \bf{last\-Index} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, unsigned int \_\-start) +\begin{CompactList}\small\item\em Returns the index of the last individual having the same fitness value than \_\-pop[\_\-start]. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} + +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, \char`\"{}A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II\char`\"{}, IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. + + + +Definition at line 25 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_f73ff88bd29c49260e2ca859250e4b68} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Reimplemented from \bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoCrowdingDiversityAssignment_ba1d60c8e59fbe2c12e9eef33863f012}. + +Definition at line 40 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h.\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}!setDistances@{setDistances}} +\index{setDistances@{setDistances}!moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Distances (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_1aa0ec7b94fbbf952636bcc21e1a9d16} + + +Sets the distance values. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoCrowdingDiversityAssignment_acbe3e03404ecc67dd5e83f00576c255}. + +Definition at line 55 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h. + +References moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::inf(), moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::last\-Index(), and moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::tiny().\index{moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}!lastIndex@{lastIndex}} +\index{lastIndex@{lastIndex}!moeoFrontByFrontCrowdingDiversityAssignment@{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ unsigned int \bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$::last\-Index (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, unsigned int {\em \_\-start})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoFrontByFrontCrowdingDiversityAssignment_ab8e153a4716375414ff2140fc3fa480} + + +Returns the index of the last individual having the same fitness value than \_\-pop[\_\-start]. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-start}]the index to start from \end{description} +\end{Desc} + + +Definition at line 121 of file moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h. + +Referenced by moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$::set\-Distances(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.eps new file mode 100644 index 000000000..951532f00 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 283.286 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.765 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoFrontByFrontSharingDiversityAssignment< MOEOT >) cw +(moeoSharingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 0 0 box + (moeoSharingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex new file mode 100644 index 000000000..cb17edb2b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoFrontByFrontSharingDiversityAssignment.tex @@ -0,0 +1,117 @@ +\section{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoFrontByFrontSharingDiversityAssignment}\index{moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}} +Sharing assignment scheme on the way it is used in NSGA. + + +{\tt \#include $<$moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoFrontByFrontSharingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoFrontByFrontSharingDiversityAssignment_c5350ba4340adea240c9cb362c1eb96d} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \&\_\-distance, double \_\-niche\-Size=0.5, double \_\-alpha=2.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (double \_\-niche\-Size=0.5, double \_\-alpha=2.0) +\begin{CompactList}\small\item\em Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +void \bf{set\-Similarities} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets similarities FRONT BY FRONT for every solution contained in the population \_\-pop. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} + +Sharing assignment scheme on the way it is used in NSGA. + + + +Definition at line 22 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \& {\em \_\-distance}, double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 2.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_a77c641d3d9184f60c3aace07fb1774f} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-distance}]the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) \item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 36 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h.\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeoFrontByFrontSharingDiversityAssignment}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment} (double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 2.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_fec74d6b140ff6bb98e80ca13d57b6d7} + + +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 45 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_623489a246f86cf24cc5860d32caa743} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Reimplemented from \bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoSharingDiversityAssignment_21c8d6e020af23b2be219b7e02248300}. + +Definition at line 56 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h.\index{moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}!setSimilarities@{setSimilarities}} +\index{setSimilarities@{setSimilarities}!moeoFrontByFrontSharingDiversityAssignment@{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Similarities (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, private, virtual]}}\label{classmoeoFrontByFrontSharingDiversityAssignment_a0f6c045237aba2857c4a9ec25679e69} + + +Sets similarities FRONT BY FRONT for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoSharingDiversityAssignment_c01f6ac1abba3799f5c4b6c0608dac55}. + +Definition at line 74 of file moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::distance, moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::niche\-Size, and moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::sh(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.eps new file mode 100644 index 000000000..c47fc760a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 202.02 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.475 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveVectorComparator< ObjectiveVector >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex new file mode 100644 index 000000000..0d7c46fe4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGDominanceObjectiveVectorComparator.tex @@ -0,0 +1,104 @@ +\section{moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoGDominanceObjectiveVectorComparator}\index{moeoGDominanceObjectiveVectorComparator@{moeoGDominanceObjectiveVectorComparator}} +This functor class allows to compare 2 objective vectors according to g-dominance. + + +{\tt \#include $<$moeo\-GDominance\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoGDominanceObjectiveVectorComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-GDominance\-Objective\-Vector\-Comparator} (Objective\-Vector \&\_\-ref) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const bool \bf{operator()} (const Objective\-Vector \&\_\-objective\-Vector1, const Objective\-Vector \&\_\-objective\-Vector2) +\begin{CompactList}\small\item\em Returns true if \_\-objective\-Vector1 is g-dominated by \_\-objective\-Vector2. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +unsigned int \bf{flag} (const Objective\-Vector \&\_\-objective\-Vector) +\begin{CompactList}\small\item\em Returns the flag of \_\-objective\-Vector according to the reference point. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +Objective\-Vector \& \bf{ref}\label{classmoeoGDominanceObjectiveVectorComparator_54cf089933c4d5d70ceb931c2b97ca68} + +\begin{CompactList}\small\item\em the reference point \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoGDominanceObjectiveVectorComparator_5768e6444e546f1da2f36ccabcfc1f70} + +\begin{CompactList}\small\item\em Pareto comparator. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +This functor class allows to compare 2 objective vectors according to g-dominance. + +The concept of g-dominance as been introduced in: J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, \char`\"{}g-dominance: Reference point based dominance\char`\"{} (2007) + + + +Definition at line 25 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}!moeoGDominanceObjectiveVectorComparator@{moeoGDominanceObjectiveVectorComparator}} +\index{moeoGDominanceObjectiveVectorComparator@{moeoGDominanceObjectiveVectorComparator}!moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ \bf{moeo\-GDominance\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::\bf{moeo\-GDominance\-Objective\-Vector\-Comparator} (Objective\-Vector \& {\em \_\-ref})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoGDominanceObjectiveVectorComparator_fc4e1f1201b6420d206b28ab98e9ea0d} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-ref}]the reference point \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ const bool \bf{moeo\-GDominance\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-objective\-Vector1}, const Objective\-Vector \& {\em \_\-objective\-Vector2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoGDominanceObjectiveVectorComparator_4b8c3496d77abf6e774333f3296e6d79} + + +Returns true if \_\-objective\-Vector1 is g-dominated by \_\-objective\-Vector2. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector1}]the first objective vector \item[{\em \_\-objective\-Vector2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +References moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::flag(), and moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::pareto\-Comparator.\index{moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}!flag@{flag}} +\index{flag@{flag}!moeoGDominanceObjectiveVectorComparator@{moeo\-GDominance\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ unsigned int \bf{moeo\-GDominance\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::flag (const Objective\-Vector \& {\em \_\-objective\-Vector})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoGDominanceObjectiveVectorComparator_75bf5141369522563e60d4e3ac2ec9cb} + + +Returns the flag of \_\-objective\-Vector according to the reference point. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector}]the first objective vector \end{description} +\end{Desc} + + +Definition at line 76 of file moeo\-GDominance\-Objective\-Vector\-Comparator.h. + +References moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::ref. + +Referenced by moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-GDominance\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps new file mode 100644 index 000000000..63a2ad358 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.eps @@ -0,0 +1,239 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 189.394 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.64 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoGenerationalReplacement< MOEOT >) cw +(moeoReplacement< MOEOT >) cw +(eoGenerationalReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoReplacement< EOT >) cw +(eoBF< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoGenerationalReplacement< MOEOT >) 0.5 0 box + (moeoReplacement< MOEOT >) 0 1 box + (eoGenerationalReplacement< MOEOT >) 1 1 box + (eoReplacement< MOEOT >) 0 2 box + (eoReplacement< EOT >) 1 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoBF< A1, A2, R >) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex new file mode 100644 index 000000000..9ebd8d44b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoGenerationalReplacement.tex @@ -0,0 +1,51 @@ +\section{moeo\-Generational\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoGenerationalReplacement}\index{moeoGenerationalReplacement@{moeoGenerationalReplacement}} +Generational replacement: only the new individuals are preserved. + + +{\tt \#include $<$moeo\-Generational\-Replacement.h$>$} + +Inheritance diagram for moeo\-Generational\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoGenerationalReplacement} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-parents, \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-offspring) +\begin{CompactList}\small\item\em Swaps \_\-parents and \_\-offspring. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Generational\-Replacement$<$ MOEOT $>$} + +Generational replacement: only the new individuals are preserved. + + + +Definition at line 23 of file moeo\-Generational\-Replacement.h. + +\subsection{Member Function Documentation} +\index{moeoGenerationalReplacement@{moeo\-Generational\-Replacement}!operator()@{operator()}} +\index{operator()@{operator()}!moeoGenerationalReplacement@{moeo\-Generational\-Replacement}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Generational\-Replacement}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-parents}, \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-offspring})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoGenerationalReplacement_7b8ac20d375820ba44a9f3dd4b95e120} + + +Swaps \_\-parents and \_\-offspring. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-parents}]the parents population \item[{\em \_\-offspring}]the offspring population \end{description} +\end{Desc} + + +Reimplemented from \bf{eo\-Generational\-Replacement$<$ MOEOT $>$}. + +Definition at line 32 of file moeo\-Generational\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Generational\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHybridLS.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHybridLS.eps new file mode 100644 index 000000000..5ca50d410 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHybridLS.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 462.428 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.08125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoHybridLS< MOEOT >) cw +(eoUpdater) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoHybridLS< MOEOT >) 0 0 box + (eoUpdater) 0 1 box + (eoF< void >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex new file mode 100644 index 000000000..3834f08e0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHybridLS.tex @@ -0,0 +1,67 @@ +\section{moeo\-Hybrid\-LS$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoHybridLS}\index{moeoHybridLS@{moeoHybridLS}} +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. + + +{\tt \#include $<$moeo\-Hybrid\-LS.h$>$} + +Inheritance diagram for moeo\-Hybrid\-LS$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoHybridLS} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Hybrid\-LS} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-term, \bf{eo\-Select}$<$ MOEOT $>$ \&\_\-select, \bf{moeo\-LS}$<$ MOEOT, MOEOT $>$ \&\_\-mols, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +void \bf{operator()} ()\label{classmoeoHybridLS_bd35c0f0e03914b1b669cb064310d3eb} + +\begin{CompactList}\small\item\em Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{term}\label{classmoeoHybridLS_776a00e2e8970ad6e3940c61eabd52ba} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Select}$<$ MOEOT $>$ \& \bf{select}\label{classmoeoHybridLS_106ca80830d807da0cfdcac934737533} + +\begin{CompactList}\small\item\em selector \item\end{CompactList}\item +\bf{moeo\-LS}$<$ MOEOT, MOEOT $>$ \& \bf{mols}\label{classmoeoHybridLS_28af163ec90dbff609b38666b249a19c} + +\begin{CompactList}\small\item\em multi-objective local search \item\end{CompactList}\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoHybridLS_4cda70ac38a51d7b629a1fed56af4c33} + +\begin{CompactList}\small\item\em archive \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Hybrid\-LS$<$ MOEOT $>$} + +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. + + + +Definition at line 28 of file moeo\-Hybrid\-LS.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoHybridLS@{moeo\-Hybrid\-LS}!moeoHybridLS@{moeoHybridLS}} +\index{moeoHybridLS@{moeoHybridLS}!moeoHybridLS@{moeo\-Hybrid\-LS}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Hybrid\-LS}$<$ MOEOT $>$::\bf{moeo\-Hybrid\-LS} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-term}, \bf{eo\-Select}$<$ MOEOT $>$ \& {\em \_\-select}, \bf{moeo\-LS}$<$ MOEOT, MOEOT $>$ \& {\em \_\-mols}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoHybridLS_e669b2ca5e17467eb9819c71557aad53} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-term}]stopping criteria \item[{\em \_\-select}]selector \item[{\em \_\-mols}]a multi-objective local search \item[{\em \_\-arch}]the archive \end{description} +\end{Desc} + + +Definition at line 39 of file moeo\-Hybrid\-LS.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Hybrid\-LS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps new file mode 100644 index 000000000..42dbae300 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.159 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoHypervolumeBinaryMetric< ObjectiveVector >) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoHypervolumeBinaryMetric< ObjectiveVector >) 0.5 0 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 1 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >) 0.5 2 box + (moeoBinaryMetric< A1, A2, R >) 0.5 3 box + (eoBF< A1, A2, R >) 0 4 box + (moeoMetric) 1 4 box + (eoFunctorBase) 0 5 box + (eoFunctorBase) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +0 0 4 out +solid +1 1 4 in +solid +0 1 4 out +solid +1 0 5 in +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex new file mode 100644 index 000000000..ecc5cb8a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoHypervolumeBinaryMetric.tex @@ -0,0 +1,108 @@ +\section{moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoHypervolumeBinaryMetric}\index{moeoHypervolumeBinaryMetric@{moeoHypervolumeBinaryMetric}} +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., K\~{A}¼nzli S. + + +{\tt \#include $<$moeo\-Hypervolume\-Binary\-Metric.h$>$} + +Inheritance diagram for moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.70044cm]{classmoeoHypervolumeBinaryMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Hypervolume\-Binary\-Metric} (double \_\-rho=1.1) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +double \bf{operator()} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2) +\begin{CompactList}\small\item\em Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +double \bf{hypervolume} (const Objective\-Vector \&\_\-o1, const Objective\-Vector \&\_\-o2, const unsigned int \_\-obj, const bool \_\-flag=false) +\begin{CompactList}\small\item\em Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho for the objective \_\-obj. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +double \bf{rho}\label{classmoeoHypervolumeBinaryMetric_2498b6010719249121e3a371978d927b} + +\begin{CompactList}\small\item\em value used to compute the reference point from the worst values for each objective \item\end{CompactList}\item +\bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$ \bf{pareto\-Comparator}\label{classmoeoHypervolumeBinaryMetric_2bbeb34a5bfde25b9eadc7eca899906e} + +\begin{CompactList}\small\item\em Functor to compare two objective vectors according to Pareto dominance relation. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$} + +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., K\~{A}¼nzli S. + +: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832\^{a}€“842 (2004). This indicator is based on the hypervolume concept introduced in Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). + + + +Definition at line 29 of file moeo\-Hypervolume\-Binary\-Metric.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}!moeoHypervolumeBinaryMetric@{moeoHypervolumeBinaryMetric}} +\index{moeoHypervolumeBinaryMetric@{moeoHypervolumeBinaryMetric}!moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ \bf{moeo\-Hypervolume\-Binary\-Metric}$<$ Objective\-Vector $>$::\bf{moeo\-Hypervolume\-Binary\-Metric} (double {\em \_\-rho} = {\tt 1.1})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoHypervolumeBinaryMetric_01a07711a7c9f38cdc2c76e40a3c5958} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-rho}]value used to compute the reference point from the worst values for each objective (default : 1.1) \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Hypervolume\-Binary\-Metric.h. + +References moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::rho. + +\subsection{Member Function Documentation} +\index{moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}!operator()@{operator()}} +\index{operator()@{operator()}!moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Hypervolume\-Binary\-Metric}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoHypervolumeBinaryMetric_c147309a5ba6b365be926e6083c5b9f2} + + +Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho. + +\begin{Desc} +\item[Warning:]don't forget to set the bounds for every objective before the call of this function \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 63 of file moeo\-Hypervolume\-Binary\-Metric.h. + +References moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::hypervolume(), and moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::pareto\-Comparator.\index{moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}!hypervolume@{hypervolume}} +\index{hypervolume@{hypervolume}!moeoHypervolumeBinaryMetric@{moeo\-Hypervolume\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ double \bf{moeo\-Hypervolume\-Binary\-Metric}$<$ Objective\-Vector $>$::hypervolume (const Objective\-Vector \& {\em \_\-o1}, const Objective\-Vector \& {\em \_\-o2}, const unsigned int {\em \_\-obj}, const bool {\em \_\-flag} = {\tt false})\hspace{0.3cm}{\tt [inline, private]}}\label{classmoeoHypervolumeBinaryMetric_e841d13001c63b043981a41fcb49218a} + + +Returns the volume of the space that is dominated by \_\-o2 but not by \_\-o1 with respect to a reference point computed using rho for the objective \_\-obj. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-o1}]the first objective vector \item[{\em \_\-o2}]the second objective vector \item[{\em \_\-obj}]the objective index \item[{\em \_\-flag}]used for iteration, if \_\-flag=true \_\-o2 is not talen into account (default : false) \end{description} +\end{Desc} + + +Definition at line 96 of file moeo\-Hypervolume\-Binary\-Metric.h. + +References moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$::bounds, and moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::rho. + +Referenced by moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$::operator()(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Hypervolume\-Binary\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIBEA.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIBEA.eps new file mode 100644 index 000000000..8402bc3c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIBEA.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 337.838 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.48 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoIBEA< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoIBEA< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIBEA.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIBEA.tex new file mode 100644 index 000000000..9289ceb87 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIBEA.tex @@ -0,0 +1,175 @@ +\section{moeo\-IBEA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoIBEA}\index{moeoIBEA@{moeoIBEA}} +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + + +{\tt \#include $<$moeo\-IBEA.h$>$} + +Inheritance diagram for moeo\-IBEA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoIBEA} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoIBEA_220d16bade11304306f124f6014dc4b8} + +\begin{CompactList}\small\item\em The type of objective vector. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-IBEA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-IBEA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Transform}. \item\end{CompactList}\item +\bf{moeo\-IBEA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \&\_\-crossover, double \_\-p\-Cross, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mutation, double \_\-p\-Mut, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor with a crossover, a mutation and their corresponding rates. \item\end{CompactList}\item +\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \&\_\-metric, const double \_\-kappa=0.05) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Gen\-Continue}$<$ MOEOT $>$ \bf{default\-Gen\-Continuator}\label{classmoeoIBEA_70ecf0f84e1d4ba33b20fdfb2a3b3d02} + +\begin{CompactList}\small\item\em a continuator based on the number of generations (used as default) \item\end{CompactList}\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoIBEA_d3772c044b41ea51f7aef80c0e12a75b} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{pop\-Eval}\label{classmoeoIBEA_a3fa636bc571c43a43eadddf5817da73} + +\begin{CompactList}\small\item\em evaluation function used to evaluate the whole population \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$ \bf{select}\label{classmoeoIBEA_0b3ef8b89b356b575ae3bad1636b5faa} + +\begin{CompactList}\small\item\em binary tournament selection \item\end{CompactList}\item +\bf{moeo\-Indicator\-Based\-Fitness\-Assignment}$<$ MOEOT $>$ \bf{fitness\-Assignment}\label{classmoeoIBEA_fed3304c930a10d27b0ec7e0c7974e40} + +\begin{CompactList}\small\item\em fitness assignment used in IBEA \item\end{CompactList}\item +\bf{moeo\-Dummy\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{dummy\-Diversity\-Assignment}\label{classmoeoIBEA_f31b1a42c2c3db0201ac7c5ed2c016f0} + +\begin{CompactList}\small\item\em dummy diversity assignment \item\end{CompactList}\item +\bf{moeo\-Environmental\-Replacement}$<$ MOEOT $>$ \bf{replace}\label{classmoeoIBEA_074ac1d52fa02e8f77b75ad46f0193f8} + +\begin{CompactList}\small\item\em elitist replacement \item\end{CompactList}\item +\bf{eo\-SGAGen\-Op}$<$ MOEOT $>$ \bf{default\-SGAGen\-Op}\label{classmoeoIBEA_eb9d41ac2c472683a32b302bc518094d} + +\begin{CompactList}\small\item\em an object for genetic operators (used as default) \item\end{CompactList}\item +\bf{eo\-General\-Breeder}$<$ MOEOT $>$ \bf{gen\-Breed}\label{classmoeoIBEA_33582dd65d7c5b90868d6719183a721e} + +\begin{CompactList}\small\item\em general breeder \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoIBEA_670490da376ec266458d509354a7e101} + +\begin{CompactList}\small\item\em breeder \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-IBEA$<$ MOEOT $>$} + +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + +Zitzler, S. K\~{A}¼nzli, \char`\"{}Indicator-Based Selection in Multiobjective Search\char`\"{}, Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This class builds the IBEA algorithm only by using the fine-grained components of the Paradis\-EO-MOEO framework. + + + +Definition at line 38 of file moeo\-IBEA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_ff425ab40d782131dc2fea3485bf20df} + + +Simple ctor with a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_cbc97868f6eb817d95127c43231c7540} + + +Simple ctor with a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 68 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \& {\em \_\-crossover}, double {\em \_\-p\-Cross}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mutation}, double {\em \_\-p\-Mut}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_b0c051de75326b11a391aaacdb324dac} + + +Ctor with a crossover, a mutation and their corresponding rates. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-crossover}]crossover \item[{\em \_\-p\-Cross}]crossover probability \item[{\em \_\-mutation}]mutation \item[{\em \_\-p\-Mut}]mutation probability \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 85 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_9b59ebf11f896198264ab5594dbaaefd} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 100 of file moeo\-IBEA.h.\index{moeoIBEA@{moeo\-IBEA}!moeoIBEA@{moeoIBEA}} +\index{moeoIBEA@{moeoIBEA}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-IBEA}$<$ MOEOT $>$::\bf{moeo\-IBEA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ \bf{Objective\-Vector}, double $>$ \& {\em \_\-metric}, const double {\em \_\-kappa} = {\tt 0.05})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoIBEA_654c67d0bd74ea798580ec4c81435f92} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-metric}]metric \item[{\em \_\-kappa}]scaling factor kappa \end{description} +\end{Desc} + + +Definition at line 114 of file moeo\-IBEA.h. + +\subsection{Member Function Documentation} +\index{moeoIBEA@{moeo\-IBEA}!operator()@{operator()}} +\index{operator()@{operator()}!moeoIBEA@{moeo\-IBEA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-IBEA}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoIBEA_34e98caf16795ac05d2977f8d20151cd} + + +Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 124 of file moeo\-IBEA.h. + +References moeo\-IBEA$<$ MOEOT $>$::breed, moeo\-IBEA$<$ MOEOT $>$::continuator, moeo\-IBEA$<$ MOEOT $>$::dummy\-Diversity\-Assignment, moeo\-IBEA$<$ MOEOT $>$::fitness\-Assignment, moeo\-IBEA$<$ MOEOT $>$::pop\-Eval, and moeo\-IBEA$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-IBEA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..ae7bc439f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 163.934 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0.5 2 box + (moeoFitnessAssignment< MOEOT >) 0.5 3 box + (eoUF< eoPop< MOEOT > &, void >) 0.5 4 box + (eoFunctorBase) 0.5 5 box + (moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) 1 1 box + (moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +1 0.5 4 in +solid +0 0.5 4 out +solid +1 0.5 5 in +solid +1 0.5 1.25 out +solid +0 1 2 conn +solid +0 0 1.75 in +solid +1 0 0.25 out +solid +0 1 1.75 in +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..1946f7512 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoIndicatorBasedFitnessAssignment}\index{moeoIndicatorBasedFitnessAssignment@{moeoIndicatorBasedFitnessAssignment}} +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Indicator-based strategies. + + +{\tt \#include $<$moeo\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.59016cm]{classmoeoIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Indicator-based strategies. + + + +Definition at line 22 of file moeo\-Indicator\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoLS.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoLS.eps new file mode 100644 index 000000000..7501ada41 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoLS.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.013 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.7875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoLS< MOEOT, Type >) cw +(moeoAlgo) cw +(eoBF< Type, moeoArchive< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoCombinedLS< MOEOT, Type >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoLS< MOEOT, Type >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoBF< Type, moeoArchive< MOEOT > &, void >) 1 2 box + (eoFunctorBase) 1 3 box + (moeoCombinedLS< MOEOT, Type >) 0.5 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +1 0.5 0.25 out +solid +0 0.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoLS.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoLS.tex new file mode 100644 index 000000000..a768f0a79 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoLS.tex @@ -0,0 +1,29 @@ +\section{moeo\-LS$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoLS}\index{moeoLS@{moeoLS}} +Abstract class for local searches applied to multi-objective optimization. + + +{\tt \#include $<$moeo\-LS.h$>$} + +Inheritance diagram for moeo\-LS$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.69637cm]{classmoeoLS} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type$>$ class moeo\-LS$<$ MOEOT, Type $>$} + +Abstract class for local searches applied to multi-objective optimization. + +Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. + + + +Definition at line 25 of file moeo\-LS.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-LS.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.eps new file mode 100644 index 000000000..be2de7245 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 431.034 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.16 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoManhattanDistance< MOEOT >) cw +(moeoNormalizedDistance< MOEOT >) cw +(moeoDistance< MOEOT, double >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoManhattanDistance< MOEOT >) 0 0 box + (moeoNormalizedDistance< MOEOT >) 0 1 box + (moeoDistance< MOEOT, double >) 0 2 box + (eoBF< A1, A2, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex new file mode 100644 index 000000000..b53cc6973 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoManhattanDistance.tex @@ -0,0 +1,59 @@ +\section{moeo\-Manhattan\-Distance$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoManhattanDistance}\index{moeoManhattanDistance@{moeoManhattanDistance}} +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + + +{\tt \#include $<$moeo\-Manhattan\-Distance.h$>$} + +Inheritance diagram for moeo\-Manhattan\-Distance$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoManhattanDistance} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoManhattanDistance_44fa512b80d2eee94e876a95babc9913} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const double \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns the Manhattan distance between \_\-moeo1 and \_\-moeo2 in the objective space. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Manhattan\-Distance$<$ MOEOT $>$} + +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and n\-Objectives. + + + +Definition at line 24 of file moeo\-Manhattan\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoManhattanDistance@{moeo\-Manhattan\-Distance}!operator()@{operator()}} +\index{operator()@{operator()}!moeoManhattanDistance@{moeo\-Manhattan\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const double \bf{moeo\-Manhattan\-Distance}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoManhattanDistance_dcabb2bddb46439a47cd1af5dd124f92} + + +Returns the Manhattan distance between \_\-moeo1 and \_\-moeo2 in the objective space. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Manhattan\-Distance.h. + +References moeo\-Normalized\-Distance$<$ MOEOT $>$::bounds. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Manhattan\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoMetric.eps new file mode 100644 index 000000000..8ddac6002 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoMetric.eps @@ -0,0 +1,236 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 154.083 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.245 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 10 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoMetric) cw +(eoFunctorBase) cw +(moeoBinaryMetric< A1, A2, R >) cw +(moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double >) cw +(moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R >) cw +(moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double >) cw +(moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >) cw +(moeoUnaryMetric< A, R >) cw +(moeoUnaryMetric< const ObjectiveVector &, R >) cw +(moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoMetric) 0 8 box + (eoFunctorBase) 0 9 box + (moeoBinaryMetric< A1, A2, R >) 1 7 box +1 7 mark + (moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double >) 1 6 box + (moeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R >) 1 5 box + (moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double >) 1 4 box + (moeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >) 1 3 box + (moeoUnaryMetric< A, R >) 1 2 box + (moeoUnaryMetric< const ObjectiveVector &, R >) 1 1 box +1 1 mark + (moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) 1 0 box +1 0 mark + +% ----- relations ----- + +solid +0 0 8 out +solid +1 0 9 in +solid +1 0 7.25 out +solid +0 0 7.5 hedge +solid +0 0 6.5 hedge +solid +0 0 5.5 hedge +solid +0 0 4.5 hedge +solid +0 0 3.5 hedge +solid +0 0 2.5 hedge +solid +0 0 1.5 hedge +solid +0 0 0.5 hedge +solid +0 8 0.5 vedge diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoMetric.tex new file mode 100644 index 000000000..a181e5345 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoMetric.tex @@ -0,0 +1,25 @@ +\section{moeo\-Metric Class Reference} +\label{classmoeoMetric}\index{moeoMetric@{moeoMetric}} +Base class for performance metrics (also known as quality indicators). + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Metric::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4.31433cm]{classmoeoMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +Base class for performance metrics (also known as quality indicators). + + + +Definition at line 22 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGA.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGA.eps new file mode 100644 index 000000000..0996a06ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGA.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 322.581 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.55 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNSGA< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNSGA< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGA.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGA.tex new file mode 100644 index 000000000..b4f2680ac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGA.tex @@ -0,0 +1,169 @@ +\section{moeo\-NSGA$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoNSGA}\index{moeoNSGA@{moeoNSGA}} +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + + +{\tt \#include $<$moeo\-NSGA.h$>$} + +Inheritance diagram for moeo\-NSGA$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoNSGA} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-NSGA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Transform}. \item\end{CompactList}\item +\bf{moeo\-NSGA} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \&\_\-crossover, double \_\-p\-Cross, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mutation, double \_\-p\-Mut, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Ctor with a crossover, a mutation and their corresponding rates. \item\end{CompactList}\item +\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op, double \_\-niche\-Size=0.5) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Gen\-Continue}$<$ MOEOT $>$ \bf{default\-Gen\-Continuator}\label{classmoeoNSGA_6dbb57c19ff00085df8397cebcce066d} + +\begin{CompactList}\small\item\em a continuator based on the number of generations (used as default) \item\end{CompactList}\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoNSGA_ef67320e3820548b333577b33430fcbe} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{pop\-Eval}\label{classmoeoNSGA_b54adef108d8b4c5a7c0da1e2065ac85} + +\begin{CompactList}\small\item\em evaluation function used to evaluate the whole population \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$ \bf{select}\label{classmoeoNSGA_ffd95fab4aed24fc866334c28e77a666} + +\begin{CompactList}\small\item\em binary tournament selection \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$ \bf{fitness\-Assignment}\label{classmoeoNSGA_2c13f9fa53c29d93af39cca083ccb10d} + +\begin{CompactList}\small\item\em fitness assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{diversity\-Assignment}\label{classmoeoNSGA_e361fa8aed173619e2aae64dba0c504a} + +\begin{CompactList}\small\item\em diversity assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$ \bf{replace}\label{classmoeoNSGA_8470efa1ef87b6448f081ec802858a8c} + +\begin{CompactList}\small\item\em elitist replacement \item\end{CompactList}\item +\bf{eo\-SGAGen\-Op}$<$ MOEOT $>$ \bf{default\-SGAGen\-Op}\label{classmoeoNSGA_879b4451e77b627705280373ff0a26ab} + +\begin{CompactList}\small\item\em an object for genetic operators (used as default) \item\end{CompactList}\item +\bf{eo\-General\-Breeder}$<$ MOEOT $>$ \bf{gen\-Breed}\label{classmoeoNSGA_3ee7a5ea8ed71859ea544741de9989f2} + +\begin{CompactList}\small\item\em general breeder \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoNSGA_1538e7c32062d9d9c634b9948ca28000} + +\begin{CompactList}\small\item\em breeder \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-NSGA$<$ MOEOT $>$} + +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + +Srinivas, K. Deb, \char`\"{}Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms\char`\"{}. Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). This class builds the NSGA algorithm only by using the fine-grained components of the Paradis\-EO-MOEO framework. + + + +Definition at line 37 of file moeo\-NSGA.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_3f5d288a5f3bdeb8c35dfcefbaf0dd43} + + +Simple ctor with a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 48 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_177e825966d70e7f697a52be7819e830} + + +Simple ctor with a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 61 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \& {\em \_\-crossover}, double {\em \_\-p\-Cross}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mutation}, double {\em \_\-p\-Mut}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_7c7b4bb55b7ee74da780f20a943809fd} + + +Ctor with a crossover, a mutation and their corresponding rates. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-crossover}]crossover \item[{\em \_\-p\-Cross}]crossover probability \item[{\em \_\-mutation}]mutation \item[{\em \_\-p\-Mut}]mutation probability \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 77 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_5f8a315499cb7e65911af0c7587144d8} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 91 of file moeo\-NSGA.h.\index{moeoNSGA@{moeo\-NSGA}!moeoNSGA@{moeoNSGA}} +\index{moeoNSGA@{moeoNSGA}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGA}$<$ MOEOT $>$::\bf{moeo\-NSGA} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op}, double {\em \_\-niche\-Size} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGA_eacee61268618c12d44d2f07cf7a796c} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \item[{\em \_\-niche\-Size}]niche size \end{description} +\end{Desc} + + +Definition at line 104 of file moeo\-NSGA.h. + +\subsection{Member Function Documentation} +\index{moeoNSGA@{moeo\-NSGA}!operator()@{operator()}} +\index{operator()@{operator()}!moeoNSGA@{moeo\-NSGA}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-NSGA}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNSGA_632676ceb299f3318c116b2b2b386b0d} + + +Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 114 of file moeo\-NSGA.h. + +References moeo\-NSGA$<$ MOEOT $>$::breed, moeo\-NSGA$<$ MOEOT $>$::continuator, moeo\-NSGA$<$ MOEOT $>$::diversity\-Assignment, moeo\-NSGA$<$ MOEOT $>$::fitness\-Assignment, moeo\-NSGA$<$ MOEOT $>$::pop\-Eval, and moeo\-NSGA$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-NSGA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps new file mode 100644 index 000000000..5f2c5c2fb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGAII.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 310.559 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.61 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNSGAII< MOEOT >) cw +(moeoEA< MOEOT >) cw +(moeoAlgo) cw +(eoAlgo< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNSGAII< MOEOT >) 0.5 0 box + (moeoEA< MOEOT >) 0.5 1 box + (moeoAlgo) 0 2 box + (eoAlgo< MOEOT >) 1 2 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex new file mode 100644 index 000000000..9b00c8430 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNSGAII.tex @@ -0,0 +1,169 @@ +\section{moeo\-NSGAII$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoNSGAII}\index{moeoNSGAII@{moeoNSGAII}} +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + + +{\tt \#include $<$moeo\-NSGAII.h$>$} + +Inheritance diagram for moeo\-NSGAII$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoNSGAII} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-NSGAII} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Simple ctor with a \doxyref{eo\-Transform}. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (unsigned int \_\-max\-Gen, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \&\_\-crossover, double \_\-p\-Cross, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \&\_\-mutation, double \_\-p\-Mut) +\begin{CompactList}\small\item\em Ctor with a crossover, a mutation and their corresponding rates. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. \item\end{CompactList}\item +\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \&\_\-continuator, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \&\_\-eval, \bf{eo\-Transform}$<$ MOEOT $>$ \&\_\-op) +\begin{CompactList}\small\item\em Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. \item\end{CompactList}\item +virtual void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{eo\-Gen\-Continue}$<$ MOEOT $>$ \bf{default\-Gen\-Continuator}\label{classmoeoNSGAII_2bc5adbd55a32faead1c4ac0cbac3b35} + +\begin{CompactList}\small\item\em a continuator based on the number of generations (used as default) \item\end{CompactList}\item +\bf{eo\-Continue}$<$ MOEOT $>$ \& \bf{continuator}\label{classmoeoNSGAII_7eb1e36631eebbe3216167b1077e3a53} + +\begin{CompactList}\small\item\em stopping criteria \item\end{CompactList}\item +\bf{eo\-Pop\-Loop\-Eval}$<$ MOEOT $>$ \bf{pop\-Eval}\label{classmoeoNSGAII_5b042567e51f014b3fe841346d9830a0} + +\begin{CompactList}\small\item\em evaluation function used to evaluate the whole population \item\end{CompactList}\item +\bf{moeo\-Det\-Tournament\-Select}$<$ MOEOT $>$ \bf{select}\label{classmoeoNSGAII_6134c5baa1c6921aaacd67f6f452871a} + +\begin{CompactList}\small\item\em binary tournament selection \item\end{CompactList}\item +\bf{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment}$<$ MOEOT $>$ \bf{fitness\-Assignment}\label{classmoeoNSGAII_2cf7c853cc4213664b0654b1e5a8862a} + +\begin{CompactList}\small\item\em fitness assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment}$<$ MOEOT $>$ \bf{diversity\-Assignment}\label{classmoeoNSGAII_4abf4583668c6f145f4dbb0a24d2dae0} + +\begin{CompactList}\small\item\em diversity assignment used in NSGA-II \item\end{CompactList}\item +\bf{moeo\-Elitist\-Replacement}$<$ MOEOT $>$ \bf{replace}\label{classmoeoNSGAII_75bc4b735c5de2a6fc93b2f2b63c7251} + +\begin{CompactList}\small\item\em elitist replacement \item\end{CompactList}\item +\bf{eo\-SGAGen\-Op}$<$ MOEOT $>$ \bf{default\-SGAGen\-Op}\label{classmoeoNSGAII_a2050440184979533f2c403bb044c064} + +\begin{CompactList}\small\item\em an object for genetic operators (used as default) \item\end{CompactList}\item +\bf{eo\-General\-Breeder}$<$ MOEOT $>$ \bf{gen\-Breed}\label{classmoeoNSGAII_2099c3069a7da12485578fc66ff71ff1} + +\begin{CompactList}\small\item\em general breeder \item\end{CompactList}\item +\bf{eo\-Breed}$<$ MOEOT $>$ \& \bf{breed}\label{classmoeoNSGAII_17954849435e579d74bf37ed7b9063fc} + +\begin{CompactList}\small\item\em breeder \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-NSGAII$<$ MOEOT $>$} + +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + +Agrawal, A. Pratap, and T. Meyarivan : \char`\"{}A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II\char`\"{}. In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). This class builds the NSGA-II algorithm only by using the fine-grained components of the Paradis\-EO-MOEO framework. + + + +Definition at line 37 of file moeo\-NSGAII.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_a13ddb75d60e2956905a9eacca2e0b2e} + + +Simple ctor with a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 47 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_56a2b2ab62b2a4025f1d122e3cfa2aa2} + + +Simple ctor with a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 59 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (unsigned int {\em \_\-max\-Gen}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Quad\-Op}$<$ MOEOT $>$ \& {\em \_\-crossover}, double {\em \_\-p\-Cross}, \bf{eo\-Mon\-Op}$<$ MOEOT $>$ \& {\em \_\-mutation}, double {\em \_\-p\-Mut})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_996e1b2683378ae1880b7520814aa9c9} + + +Ctor with a crossover, a mutation and their corresponding rates. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-max\-Gen}]number of generations before stopping \item[{\em \_\-eval}]evaluation function \item[{\em \_\-crossover}]crossover \item[{\em \_\-p\-Cross}]crossover probability \item[{\em \_\-mutation}]mutation \item[{\em \_\-p\-Mut}]mutation probability \end{description} +\end{Desc} + + +Definition at line 74 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Gen\-Op}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_1797f01afde01d155e559522df12ae05} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Gen\-Op}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 87 of file moeo\-NSGAII.h.\index{moeoNSGAII@{moeo\-NSGAII}!moeoNSGAII@{moeoNSGAII}} +\index{moeoNSGAII@{moeoNSGAII}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-NSGAII}$<$ MOEOT $>$::\bf{moeo\-NSGAII} (\bf{eo\-Continue}$<$ MOEOT $>$ \& {\em \_\-continuator}, \bf{eo\-Eval\-Func}$<$ MOEOT $>$ \& {\em \_\-eval}, \bf{eo\-Transform}$<$ MOEOT $>$ \& {\em \_\-op})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNSGAII_a2b8d5b2ca7e7fd5845c6cda896b75c6} + + +Ctor with a continuator (instead of \_\-max\-Gen) and a \doxyref{eo\-Transform}. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-continuator}]stopping criteria \item[{\em \_\-eval}]evaluation function \item[{\em \_\-op}]variation operator \end{description} +\end{Desc} + + +Definition at line 99 of file moeo\-NSGAII.h. + +\subsection{Member Function Documentation} +\index{moeoNSGAII@{moeo\-NSGAII}!operator()@{operator()}} +\index{operator()@{operator()}!moeoNSGAII@{moeo\-NSGAII}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-NSGAII}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNSGAII_60ba3ed4287efe81e1ff66b22e1d2e14} + + +Apply a few generation of evolution to the population \_\-pop until the stopping criteria is verified. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 109 of file moeo\-NSGAII.h. + +References moeo\-NSGAII$<$ MOEOT $>$::breed, moeo\-NSGAII$<$ MOEOT $>$::continuator, moeo\-NSGAII$<$ MOEOT $>$::diversity\-Assignment, moeo\-NSGAII$<$ MOEOT $>$::fitness\-Assignment, moeo\-NSGAII$<$ MOEOT $>$::pop\-Eval, and moeo\-NSGAII$<$ MOEOT $>$::replace. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-NSGAII.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.eps new file mode 100644 index 000000000..b6b9ed08e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 297.398 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.68125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNormalizedDistance< MOEOT, Type >) cw +(moeoDistance< MOEOT, Type >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNormalizedDistance< MOEOT, Type >) 0 0 box + (moeoDistance< MOEOT, Type >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex new file mode 100644 index 000000000..cacbcda7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedDistance.tex @@ -0,0 +1,112 @@ +\section{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$ Class Template Reference} +\label{classmoeoNormalizedDistance}\index{moeoNormalizedDistance@{moeoNormalizedDistance}} +The base class for double distance computation with normalized objective values (i.e. + + +{\tt \#include $<$moeo\-Normalized\-Distance.h$>$} + +Inheritance diagram for moeo\-Normalized\-Distance$<$ MOEOT, Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoNormalizedDistance} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoNormalizedDistance_4009eb0c953bdc30b98dfc219774ce84} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Normalized\-Distance} ()\label{classmoeoNormalizedDistance_d3948169e6781aaf5f1b5de7ae09ba89} + +\begin{CompactList}\small\item\em Default ctr. \item\end{CompactList}\item +virtual void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population \_\-pop. \item\end{CompactList}\item +virtual void \bf{setup} (double \_\-min, double \_\-max, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. \item\end{CompactList}\item +virtual void \bf{setup} (\bf{eo\-Real\-Interval} \_\-real\-Interval, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static double \bf{tiny} ()\label{classmoeoNormalizedDistance_3534fa0cebf35373baa77ce18cfe572a} + +\begin{CompactList}\small\item\em Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{eo\-Real\-Interval} $>$ \bf{bounds}\label{classmoeoNormalizedDistance_db85a478b20f9d8ec0f34f30a15e7bdd} + +\begin{CompactList}\small\item\em the bounds for every objective (bounds[i] = bounds for the objective i) \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT, class Type = double$>$ class moeo\-Normalized\-Distance$<$ MOEOT, Type $>$} + +The base class for double distance computation with normalized objective values (i.e. + +between 0 and 1). + + + +Definition at line 24 of file moeo\-Normalized\-Distance.h. + +\subsection{Member Function Documentation} +\index{moeoNormalizedDistance@{moeo\-Normalized\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedDistance@{moeo\-Normalized\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type = double$>$ virtual void \bf{moeo\-Normalized\-Distance}$<$ MOEOT, Type $>$::setup (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedDistance_b99ffed3c0ce6c9c10aef0a76d983bb1} + + +Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoDistance_1834a67c2a7a96f0c9a3c408108a8f8c}. + +Definition at line 59 of file moeo\-Normalized\-Distance.h. + +Referenced by moeo\-Normalized\-Distance$<$ MOEOT $>$::setup().\index{moeoNormalizedDistance@{moeo\-Normalized\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedDistance@{moeo\-Normalized\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type = double$>$ virtual void \bf{moeo\-Normalized\-Distance}$<$ MOEOT, Type $>$::setup (double {\em \_\-min}, double {\em \_\-max}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedDistance_e58bbf9eb90a8d2704f88d774d3fe1e1} + + +Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-min}]lower bound \item[{\em \_\-max}]upper bound \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoDistance_341c4fa39652871761053e85914a16ad}. + +Definition at line 83 of file moeo\-Normalized\-Distance.h.\index{moeoNormalizedDistance@{moeo\-Normalized\-Distance}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedDistance@{moeo\-Normalized\-Distance}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT, class Type = double$>$ virtual void \bf{moeo\-Normalized\-Distance}$<$ MOEOT, Type $>$::setup (\bf{eo\-Real\-Interval} {\em \_\-real\-Interval}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedDistance_dda4f95d7f6cae9dd1f4bf6cd8fb7c1c} + + +Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-real\-Interval}]the \doxyref{eo\-Real\-Interval} object \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Reimplemented from \bf{moeo\-Distance$<$ MOEOT, Type $>$} \doxyref{p.}{classmoeoDistance_b08e7b8c1bedb2993669ec0315fb2b73}. + +Definition at line 99 of file moeo\-Normalized\-Distance.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Normalized\-Distance.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps new file mode 100644 index 000000000..c4f1216cf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 117.925 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.24 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex new file mode 100644 index 000000000..531f2961c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoNormalizedSolutionVsSolutionBinaryMetric.tex @@ -0,0 +1,84 @@ +\section{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric}\index{moeoNormalizedSolutionVsSolutionBinaryMetric@{moeoNormalizedSolutionVsSolutionBinaryMetric}} +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + + +{\tt \#include $<$moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h$>$} + +Inheritance diagram for moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.30189cm]{classmoeoNormalizedSolutionVsSolutionBinaryMetric} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric} ()\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_e58174a553269d3e8b0685a1f22b8333} + +\begin{CompactList}\small\item\em Default ctr for any \doxyref{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}{p.}{classmoeoNormalizedSolutionVsSolutionBinaryMetric} object. \item\end{CompactList}\item +void \bf{setup} (double \_\-min, double \_\-max, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. \item\end{CompactList}\item +virtual void \bf{setup} (\bf{eo\-Real\-Interval} \_\-real\-Interval, unsigned int \_\-obj) +\begin{CompactList}\small\item\em Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static double \bf{tiny} ()\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_d0ccbdceb71b9d2d6ae8ceec1af9dcdb} + +\begin{CompactList}\small\item\em Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +std::vector$<$ \bf{eo\-Real\-Interval} $>$ \bf{bounds}\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_81bff9a83c74f7f7f8a1db28c09c4c38} + +\begin{CompactList}\small\item\em the bounds for every objective (bounds[i] = bounds for the objective i) \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + +Then, indicator values lie in the interval [-1,1]. Note that you have to set the bounds for every objective before using the operator(). + + + +Definition at line 26 of file moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h. + +\subsection{Member Function Documentation} +\index{moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector, class R$>$ void \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ Objective\-Vector, R $>$::setup (double {\em \_\-min}, double {\em \_\-max}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_1f56a2f59a9b0548ad0ab691c8a02334} + + +Sets the lower bound (\_\-min) and the upper bound (\_\-max) for the objective \_\-obj. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-min}]lower bound \item[{\em \_\-max}]upper bound \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Definition at line 50 of file moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h. + +Referenced by moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::setup().\index{moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}!setup@{setup}} +\index{setup@{setup}!moeoNormalizedSolutionVsSolutionBinaryMetric@{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector, class R$>$ virtual void \bf{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric}$<$ Objective\-Vector, R $>$::setup (\bf{eo\-Real\-Interval} {\em \_\-real\-Interval}, unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoNormalizedSolutionVsSolutionBinaryMetric_0693a23c68e3fe0bb546e34926dcfe93} + + +Sets the lower bound and the upper bound for the objective \_\-obj using a \doxyref{eo\-Real\-Interval} object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-real\-Interval}]the \doxyref{eo\-Real\-Interval} object \item[{\em \_\-obj}]the objective index \end{description} +\end{Desc} + + +Definition at line 66 of file moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.eps new file mode 100644 index 000000000..d06716d53 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 211.64 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.3625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveVectorComparator< ObjectiveVector >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex new file mode 100644 index 000000000..6117be6be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveObjectiveVectorComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoObjectiveObjectiveVectorComparator}\index{moeoObjectiveObjectiveVectorComparator@{moeoObjectiveObjectiveVectorComparator}} +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + + +{\tt \#include $<$moeo\-Objective\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoObjectiveObjectiveVectorComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const Objective\-Vector \&\_\-objective\-Vector1, const Objective\-Vector \&\_\-objective\-Vector2) +\begin{CompactList}\small\item\em Returns true if \_\-objective\-Vector1 $<$ \_\-objective\-Vector2 on the first objective, then on the second, and so on. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + + + +Definition at line 22 of file moeo\-Objective\-Objective\-Vector\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoObjectiveObjectiveVectorComparator@{moeo\-Objective\-Objective\-Vector\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoObjectiveObjectiveVectorComparator@{moeo\-Objective\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ const bool \bf{moeo\-Objective\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-objective\-Vector1}, const Objective\-Vector \& {\em \_\-objective\-Vector2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoObjectiveObjectiveVectorComparator_bc3c97b380e87107e92f52843a7f9303} + + +Returns true if \_\-objective\-Vector1 $<$ \_\-objective\-Vector2 on the first objective, then on the second, and so on. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector1}]the first objective vector \item[{\em \_\-objective\-Vector2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Objective\-Objective\-Vector\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Objective\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex new file mode 100644 index 000000000..f97618af4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVector.tex @@ -0,0 +1,114 @@ +\section{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$ Class Template Reference} +\label{classmoeoObjectiveVector}\index{moeoObjectiveVector@{moeoObjectiveVector}} +Abstract class allowing to represent a solution in the objective space (phenotypic representation). + + +{\tt \#include $<$moeo\-Objective\-Vector.h$>$} + +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef Objective\-Vector\-Traits \bf{Traits}\label{classmoeoObjectiveVector_21ee0475420b613951b96a550e814fbb} + +\begin{CompactList}\small\item\em The traits of objective vectors. \item\end{CompactList}\item +typedef Objective\-Vector\-Type \bf{Type}\label{classmoeoObjectiveVector_e86f199692cae43bc346be63130eb993} + +\begin{CompactList}\small\item\em The type of an objective value. \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Objective\-Vector} (\bf{Type} \_\-value=\bf{Type}())\label{classmoeoObjectiveVector_084e9d2cecbf9ea66e4b68537457109f} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Objective\-Vector} (std::vector$<$ \bf{Type} $>$ \&\_\-v) +\begin{CompactList}\small\item\em Ctor from a vector of Type. \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static void \bf{setup} (unsigned int \_\-n\-Objectives, std::vector$<$ bool $>$ \&\_\-b\-Objectives) +\begin{CompactList}\small\item\em \doxyref{Parameters} setting (for the objective vector of any solution). \item\end{CompactList}\item +static unsigned int \bf{n\-Objectives} ()\label{classmoeoObjectiveVector_4c9a17116e0a95b4e3191f299e10fc9d} + +\begin{CompactList}\small\item\em Returns the number of objectives. \item\end{CompactList}\item +static bool \bf{minimizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be minimized. \item\end{CompactList}\item +static bool \bf{maximizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be maximized. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ class moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$} + +Abstract class allowing to represent a solution in the objective space (phenotypic representation). + +The template argument Objective\-Vector\-Traits defaults to \doxyref{moeo\-Objective\-Vector\-Traits}{p.}{classmoeoObjectiveVectorTraits}, but it can be replaced at will by any other class that implements the static functions defined therein. Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. + + + +Definition at line 25 of file moeo\-Objective\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!moeoObjectiveVector@{moeoObjectiveVector}} +\index{moeoObjectiveVector@{moeoObjectiveVector}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::\bf{moeo\-Objective\-Vector} (std::vector$<$ \bf{Type} $>$ \& {\em \_\-v})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoObjectiveVector_c504cb6a2086a80aaaf41978032c8ce7} + + +Ctor from a vector of Type. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-v}]the std::vector $<$ Type $>$ \end{description} +\end{Desc} + + +Definition at line 46 of file moeo\-Objective\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!setup@{setup}} +\index{setup@{setup}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ static void \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::setup (unsigned int {\em \_\-n\-Objectives}, std::vector$<$ bool $>$ \& {\em \_\-b\-Objectives})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVector_0593e2d91be697d9b255513236cb207f} + + +\doxyref{Parameters} setting (for the objective vector of any solution). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-n\-Objectives}]the number of objectives \item[{\em \_\-b\-Objectives}]the min/max vector (true = min / false = max) \end{description} +\end{Desc} + + +Definition at line 55 of file moeo\-Objective\-Vector.h.\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!minimizing@{minimizing}} +\index{minimizing@{minimizing}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ static bool \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::minimizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVector_decaf6e3b9a9ac97461d2b271facfc5f} + + +Returns true if the \_\-ith objective have to be minimized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 74 of file moeo\-Objective\-Vector.h.\index{moeoObjectiveVector@{moeo\-Objective\-Vector}!maximizing@{maximizing}} +\index{maximizing@{maximizing}!moeoObjectiveVector@{moeo\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits, class Objective\-Vector\-Type$>$ static bool \bf{moeo\-Objective\-Vector}$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$::maximizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVector_b62231b0e1c6bb6bab43d6d058871ce3} + + +Returns true if the \_\-ith objective have to be maximized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 84 of file moeo\-Objective\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Objective\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps new file mode 100644 index 000000000..1451a2738 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.eps @@ -0,0 +1,219 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 67.3401 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 7.425 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) cw +(moeoParetoObjectiveVectorComparator< ObjectiveVector >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoObjectiveVectorComparator< ObjectiveVector >) 1 1 box + (eoBF< A1, A2, R >) 1 2 box + (eoFunctorBase) 1 3 box + (moeoGDominanceObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveObjectiveVectorComparator< ObjectiveVector >) 1 0 box + (moeoParetoObjectiveVectorComparator< ObjectiveVector >) 2 0 box + +% ----- relations ----- + +solid +0 1 1 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +1 1 0.25 out +solid +0 2 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex new file mode 100644 index 000000000..9bfde27f5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorComparator.tex @@ -0,0 +1,29 @@ +\section{moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoObjectiveVectorComparator}\index{moeoObjectiveVectorComparator@{moeoObjectiveVectorComparator}} +Abstract class allowing to compare 2 objective vectors. + + +{\tt \#include $<$moeo\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.88552cm]{classmoeoObjectiveVectorComparator} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +Abstract class allowing to compare 2 objective vectors. + +The template argument Objective\-Vector have to be a \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector}. + + + +Definition at line 24 of file moeo\-Objective\-Vector\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex new file mode 100644 index 000000000..ea58ffa09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoObjectiveVectorTraits.tex @@ -0,0 +1,97 @@ +\section{moeo\-Objective\-Vector\-Traits Class Reference} +\label{classmoeoObjectiveVectorTraits}\index{moeoObjectiveVectorTraits@{moeoObjectiveVectorTraits}} +A traits class for \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} to specify the number of objectives and which ones have to be minimized or maximized. + + +{\tt \#include $<$moeo\-Objective\-Vector\-Traits.h$>$} + +\subsection*{Static Public Member Functions} +\begin{CompactItemize} +\item +static void \bf{setup} (unsigned int \_\-n\-Objectives, std::vector$<$ bool $>$ \&\_\-b\-Objectives) +\begin{CompactList}\small\item\em \doxyref{Parameters} setting. \item\end{CompactList}\item +static unsigned int \bf{n\-Objectives} ()\label{classmoeoObjectiveVectorTraits_5befa177fc91ead8234bac7ce9d1e587} + +\begin{CompactList}\small\item\em Returns the number of objectives. \item\end{CompactList}\item +static bool \bf{minimizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be minimized. \item\end{CompactList}\item +static bool \bf{maximizing} (unsigned int \_\-i) +\begin{CompactList}\small\item\em Returns true if the \_\-ith objective have to be maximized. \item\end{CompactList}\item +static double \bf{tolerance} ()\label{classmoeoObjectiveVectorTraits_c1199e4f019ec88a0365db81e9ab8d1f} + +\begin{CompactList}\small\item\em Returns the tolerance value (to compare solutions). \item\end{CompactList}\end{CompactItemize} +\subsection*{Static Private Attributes} +\begin{CompactItemize} +\item +static unsigned int \bf{n\-Obj}\label{classmoeoObjectiveVectorTraits_77b639889ffc6d306d4dfded5a160236} + +\begin{CompactList}\small\item\em The number of objectives. \item\end{CompactList}\item +static std::vector$<$ bool $>$ \bf{b\-Obj}\label{classmoeoObjectiveVectorTraits_db329d416c75711f671c9d7cffb06299} + +\begin{CompactList}\small\item\em The min/max vector. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +A traits class for \doxyref{moeo\-Objective\-Vector}{p.}{classmoeoObjectiveVector} to specify the number of objectives and which ones have to be minimized or maximized. + + + +Definition at line 23 of file moeo\-Objective\-Vector\-Traits.h. + +\subsection{Member Function Documentation} +\index{moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}!setup@{setup}} +\index{setup@{setup}!moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}static void moeo\-Objective\-Vector\-Traits::setup (unsigned int {\em \_\-n\-Objectives}, std::vector$<$ bool $>$ \& {\em \_\-b\-Objectives})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVectorTraits_327c1994f1b5aa3d6b5c8cae0b971191} + + +\doxyref{Parameters} setting. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-n\-Objectives}]the number of objectives \item[{\em \_\-b\-Objectives}]the min/max vector (true = min / false = max) \end{description} +\end{Desc} + + +Definition at line 32 of file moeo\-Objective\-Vector\-Traits.h. + +References b\-Obj, and n\-Obj.\index{moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}!minimizing@{minimizing}} +\index{minimizing@{minimizing}!moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}static bool moeo\-Objective\-Vector\-Traits::minimizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVectorTraits_1478ae3006747619aa9ef3c016bdc831} + + +Returns true if the \_\-ith objective have to be minimized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 67 of file moeo\-Objective\-Vector\-Traits.h. + +References b\-Obj. + +Referenced by maximizing().\index{moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}!maximizing@{maximizing}} +\index{maximizing@{maximizing}!moeoObjectiveVectorTraits@{moeo\-Objective\-Vector\-Traits}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}static bool moeo\-Objective\-Vector\-Traits::maximizing (unsigned int {\em \_\-i})\hspace{0.3cm}{\tt [inline, static]}}\label{classmoeoObjectiveVectorTraits_c8e1a93d8c8480c391a007969ae652df} + + +Returns true if the \_\-ith objective have to be maximized. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-i}]the index \end{description} +\end{Desc} + + +Definition at line 80 of file moeo\-Objective\-Vector\-Traits.h. + +References minimizing(). + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +moeo\-Objective\-Vector\-Traits.h\item +moeo\-Objective\-Vector\-Traits.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.eps new file mode 100644 index 000000000..deebfb25e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 303.03 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.65 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoOneObjectiveComparator< MOEOT >) cw +(moeoComparator< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoOneObjectiveComparator< MOEOT >) 0 0 box + (moeoComparator< MOEOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex new file mode 100644 index 000000000..8b59cdb14 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoOneObjectiveComparator.tex @@ -0,0 +1,78 @@ +\section{moeo\-One\-Objective\-Comparator$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoOneObjectiveComparator}\index{moeoOneObjectiveComparator@{moeoOneObjectiveComparator}} +Functor allowing to compare two solutions according to one objective. + + +{\tt \#include $<$moeo\-One\-Objective\-Comparator.h$>$} + +Inheritance diagram for moeo\-One\-Objective\-Comparator$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoOneObjectiveComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-One\-Objective\-Comparator} (unsigned int \_\-obj) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const bool \bf{operator()} (const MOEOT \&\_\-moeo1, const MOEOT \&\_\-moeo2) +\begin{CompactList}\small\item\em Returns true if \_\-moeo1 $<$ \_\-moeo2 on the obj objective. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +unsigned int \bf{obj}\label{classmoeoOneObjectiveComparator_a45047e66adac81f5a34a2a0fe05f591} + +\begin{CompactList}\small\item\em the index of objective \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-One\-Objective\-Comparator$<$ MOEOT $>$} + +Functor allowing to compare two solutions according to one objective. + + + +Definition at line 22 of file moeo\-One\-Objective\-Comparator.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}!moeoOneObjectiveComparator@{moeoOneObjectiveComparator}} +\index{moeoOneObjectiveComparator@{moeoOneObjectiveComparator}!moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-One\-Objective\-Comparator}$<$ MOEOT $>$::\bf{moeo\-One\-Objective\-Comparator} (unsigned int {\em \_\-obj})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoOneObjectiveComparator_be1249440803553ef868182019d49e4d} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-obj}]the index of objective \end{description} +\end{Desc} + + +Definition at line 30 of file moeo\-One\-Objective\-Comparator.h. + +References moeo\-One\-Objective\-Comparator$<$ MOEOT $>$::obj. + +\subsection{Member Function Documentation} +\index{moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoOneObjectiveComparator@{moeo\-One\-Objective\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const bool \bf{moeo\-One\-Objective\-Comparator}$<$ MOEOT $>$::operator() (const MOEOT \& {\em \_\-moeo1}, const MOEOT \& {\em \_\-moeo2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoOneObjectiveComparator_962a4cbc308c30a83c9c485a79374f6a} + + +Returns true if \_\-moeo1 $<$ \_\-moeo2 on the obj objective. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo1}]the first solution \item[{\em \_\-moeo2}]the second solution \end{description} +\end{Desc} + + +Definition at line 44 of file moeo\-One\-Objective\-Comparator.h. + +References moeo\-One\-Objective\-Comparator$<$ MOEOT $>$::obj. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-One\-Objective\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.eps new file mode 100644 index 000000000..6905f3d2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 270.27 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.85 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoParetoBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoParetoBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoFastNonDominatedSortingFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex new file mode 100644 index 000000000..742a285c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoParetoBasedFitnessAssignment}\index{moeoParetoBasedFitnessAssignment@{moeoParetoBasedFitnessAssignment}} +\doxyref{moeo\-Pareto\-Based\-Fitness\-Assignment}{p.}{classmoeoParetoBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Pareto-based strategies. + + +{\tt \#include $<$moeo\-Pareto\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoParetoBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Pareto\-Based\-Fitness\-Assignment}{p.}{classmoeoParetoBasedFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for Pareto-based strategies. + + + +Definition at line 22 of file moeo\-Pareto\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Pareto\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.eps new file mode 100644 index 000000000..cda7a9a73 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 221.607 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.25625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoParetoObjectiveVectorComparator< ObjectiveVector >) cw +(moeoObjectiveVectorComparator< ObjectiveVector >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoParetoObjectiveVectorComparator< ObjectiveVector >) 0 0 box + (moeoObjectiveVectorComparator< ObjectiveVector >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex new file mode 100644 index 000000000..fe17076c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoParetoObjectiveVectorComparator.tex @@ -0,0 +1,49 @@ +\section{moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$ Class Template Reference} +\label{classmoeoParetoObjectiveVectorComparator}\index{moeoParetoObjectiveVectorComparator@{moeoParetoObjectiveVectorComparator}} +This functor class allows to compare 2 objective vectors according to Pareto dominance. + + +{\tt \#include $<$moeo\-Pareto\-Objective\-Vector\-Comparator.h$>$} + +Inheritance diagram for moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classmoeoParetoObjectiveVectorComparator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +const bool \bf{operator()} (const Objective\-Vector \&\_\-objective\-Vector1, const Objective\-Vector \&\_\-objective\-Vector2) +\begin{CompactList}\small\item\em Returns true if \_\-objective\-Vector1 is dominated by \_\-objective\-Vector2. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector$>$ class moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$} + +This functor class allows to compare 2 objective vectors according to Pareto dominance. + + + +Definition at line 22 of file moeo\-Pareto\-Objective\-Vector\-Comparator.h. + +\subsection{Member Function Documentation} +\index{moeoParetoObjectiveVectorComparator@{moeo\-Pareto\-Objective\-Vector\-Comparator}!operator()@{operator()}} +\index{operator()@{operator()}!moeoParetoObjectiveVectorComparator@{moeo\-Pareto\-Objective\-Vector\-Comparator}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector$>$ const bool \bf{moeo\-Pareto\-Objective\-Vector\-Comparator}$<$ Objective\-Vector $>$::operator() (const Objective\-Vector \& {\em \_\-objective\-Vector1}, const Objective\-Vector \& {\em \_\-objective\-Vector2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoParetoObjectiveVectorComparator_9bd4302396fb179efe14035dc097726c} + + +Returns true if \_\-objective\-Vector1 is dominated by \_\-objective\-Vector2. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-objective\-Vector1}]the first objective vector \item[{\em \_\-objective\-Vector2}]the second objective vector \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Pareto\-Objective\-Vector\-Comparator.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Pareto\-Objective\-Vector\-Comparator.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps new file mode 100644 index 000000000..6a6789ed7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRandomSelect.eps @@ -0,0 +1,239 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 250 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoRandomSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoRandomSelect< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoSelectOne< EOT, WorthT >) cw +(eoUF< A1, R >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoRandomSelect< MOEOT >) 0.5 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoRandomSelect< MOEOT >) 1 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoSelectOne< EOT, WorthT >) 1 2 box + (eoUF< A1, R >) 0 3 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex new file mode 100644 index 000000000..8209cde07 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRandomSelect.tex @@ -0,0 +1,36 @@ +\section{moeo\-Random\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoRandomSelect}\index{moeoRandomSelect@{moeoRandomSelect}} +Selection strategy that selects only one element randomly from a whole population. + + +{\tt \#include $<$moeo\-Random\-Select.h$>$} + +Inheritance diagram for moeo\-Random\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoRandomSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Random\-Select} ()\label{classmoeoRandomSelect_209022add1e1750f28497dfe637bb5dc} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)\label{classmoeoRandomSelect_96dbd0832ad677090ef79ff3867d7af9} + +\begin{CompactList}\small\item\em Return one individual at random by using an \doxyref{eo\-Random\-Select}. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Random\-Select$<$ MOEOT $>$} + +Selection strategy that selects only one element randomly from a whole population. + + + +Definition at line 23 of file moeo\-Random\-Select.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Random\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.eps new file mode 100644 index 000000000..43966f7af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 119.048 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoRealObjectiveVector< ObjectiveVectorTraits >) cw +(moeoObjectiveVector< ObjectiveVectorTraits, double >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoRealObjectiveVector< ObjectiveVectorTraits >) 0 0 box + (moeoObjectiveVector< ObjectiveVectorTraits, double >) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex new file mode 100644 index 000000000..2d68acf46 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealObjectiveVector.tex @@ -0,0 +1,181 @@ +\section{moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$ Class Template Reference} +\label{classmoeoRealObjectiveVector}\index{moeoRealObjectiveVector@{moeoRealObjectiveVector}} +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + + +{\tt \#include $<$moeo\-Real\-Objective\-Vector.h$>$} + +Inheritance diagram for moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classmoeoRealObjectiveVector} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Real\-Objective\-Vector} (double \_\-value=0.0)\label{classmoeoRealObjectiveVector_07b6df71c6ca3b50a0a0379838233525} + +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Real\-Objective\-Vector} (std::vector$<$ double $>$ \&\_\-v) +\begin{CompactList}\small\item\em Ctor from a vector of doubles. \item\end{CompactList}\item +bool \bf{dominates} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector dominates \_\-other according to the Pareto dominance relation (but it's better to use a \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} object to compare solutions). \item\end{CompactList}\item +bool \bf{operator==} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is equal to \_\-other (according to a tolerance value). \item\end{CompactList}\item +bool \bf{operator!=} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is different than \_\-other (according to a tolerance value). \item\end{CompactList}\item +bool \bf{operator$<$} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is smaller than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +bool \bf{operator$>$} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is greater than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +bool \bf{operator$<$=} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is smaller than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\item +bool \bf{operator$>$=} (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \&\_\-other) const +\begin{CompactList}\small\item\em Returns true if the current objective vector is greater than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector\-Traits$>$ class moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$} + +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + +that an objective value is represented using a double, and this for any objective. + + + +Definition at line 27 of file moeo\-Real\-Objective\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!moeoRealObjectiveVector@{moeoRealObjectiveVector}} +\index{moeoRealObjectiveVector@{moeoRealObjectiveVector}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::\bf{moeo\-Real\-Objective\-Vector} (std::vector$<$ double $>$ \& {\em \_\-v})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_59083142c6a1766f0df30f2457fff34c} + + +Ctor from a vector of doubles. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-v}]the std::vector $<$ double $>$ \end{description} +\end{Desc} + + +Definition at line 45 of file moeo\-Real\-Objective\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!dominates@{dominates}} +\index{dominates@{dominates}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::dominates (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_403a1b537d7accba53ecc939dbe5b829} + + +Returns true if the current objective vector dominates \_\-other according to the Pareto dominance relation (but it's better to use a \doxyref{moeo\-Objective\-Vector\-Comparator}{p.}{classmoeoObjectiveVectorComparator} object to compare solutions). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 54 of file moeo\-Real\-Objective\-Vector.h.\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator==@{operator==}} +\index{operator==@{operator==}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator== (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_e2f1665239fac279784a7c2d4e030a0a} + + +Returns true if the current objective vector is equal to \_\-other (according to a tolerance value). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 65 of file moeo\-Real\-Objective\-Vector.h. + +Referenced by moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator!=(), and moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$>$=().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator"!=@{operator"!=}} +\index{operator"!=@{operator"!=}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator!= (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_7300c03310d45932f3de8b54f7079c61} + + +Returns true if the current objective vector is different than \_\-other (according to a tolerance value). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 82 of file moeo\-Real\-Objective\-Vector.h. + +References moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator==().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator<@{operator$<$}} +\index{operator<@{operator$<$}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$<$ (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_2113937b8a097943278f471255f2da28} + + +Returns true if the current objective vector is smaller than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 93 of file moeo\-Real\-Objective\-Vector.h. + +Referenced by moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$<$=().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator>@{operator$>$}} +\index{operator>@{operator$>$}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$>$ (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_6f3b3f40139f9a6ede18297b6eff3189} + + +Returns true if the current objective vector is greater than \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 105 of file moeo\-Real\-Objective\-Vector.h. + +Referenced by moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$>$=().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator<=@{operator$<$=}} +\index{operator<=@{operator$<$=}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$<$= (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_f7ea79ab6b2a6672df9a5725e7d842a0} + + +Returns true if the current objective vector is smaller than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 116 of file moeo\-Real\-Objective\-Vector.h. + +References moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$<$().\index{moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}!operator>=@{operator$>$=}} +\index{operator>=@{operator$>$=}!moeoRealObjectiveVector@{moeo\-Real\-Objective\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class Objective\-Vector\-Traits$>$ bool \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$::operator$>$= (const \bf{moeo\-Real\-Objective\-Vector}$<$ Objective\-Vector\-Traits $>$ \& {\em \_\-other}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealObjectiveVector_1aadf971866abb81a35fadbe650c9701} + + +Returns true if the current objective vector is greater than or equal to \_\-other on the first objective, then on the second, and so on (can be usefull for sorting/printing). + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-other}]the other \doxyref{moeo\-Real\-Objective\-Vector}{p.}{classmoeoRealObjectiveVector} object to compare with \end{description} +\end{Desc} + + +Definition at line 127 of file moeo\-Real\-Objective\-Vector.h. + +References moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator==(), and moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$::operator$>$(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Real\-Objective\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealVector.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealVector.eps new file mode 100644 index 000000000..68a3a30ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealVector.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 126.05 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.96667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 6 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) cw +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 0 box + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >) 0.5 1 box + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 2 box + (EO< MOEOObjectiveVector >) 0.5 3 box + (eoObject) 0 4 box + (eoPersistent) 1 4 box + (eoPrintable) 1 5 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +0 0.5 3 out +solid +0 1 4 conn +solid +1 0 4 in +solid +1 1 4 in +solid +0 1 4 out +solid +1 1 5 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealVector.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealVector.tex new file mode 100644 index 000000000..708720a20 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRealVector.tex @@ -0,0 +1,52 @@ +\section{moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$ Class Template Reference} +\label{classmoeoRealVector}\index{moeoRealVector@{moeoRealVector}} +This class is an implementation of a simple double-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + +{\tt \#include $<$moeo\-Real\-Vector.h$>$} + +Inheritance diagram for moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.52941cm]{classmoeoRealVector} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Real\-Vector} (unsigned int \_\-size=0, double \_\-value=0.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +virtual std::string \bf{class\-Name} () const \label{classmoeoRealVector_0585cfbce7824e8c2a0f336017b9ffd9} + +\begin{CompactList}\small\item\em Returns the class name as a std::string. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ class moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} + +This class is an implementation of a simple double-valued \doxyref{moeo\-Vector}{p.}{classmoeoVector}. + + + +Definition at line 22 of file moeo\-Real\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoRealVector@{moeo\-Real\-Vector}!moeoRealVector@{moeoRealVector}} +\index{moeoRealVector@{moeoRealVector}!moeoRealVector@{moeo\-Real\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity$>$ \bf{moeo\-Real\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$::\bf{moeo\-Real\-Vector} (unsigned int {\em \_\-size} = {\tt 0}, double {\em \_\-value} = {\tt 0.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRealVector_575f601664ea6d9d48e3e11c4beeafed} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]Length of vector (default is 0) \item[{\em \_\-value}]Initial value of all elements (default is default value of type Gene\-Type) \end{description} +\end{Desc} + + +Definition at line 31 of file moeo\-Real\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Real\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoReplacement.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoReplacement.eps new file mode 100644 index 000000000..ab3b9798a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoReplacement.eps @@ -0,0 +1,225 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 122.549 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.08 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoReplacement< MOEOT >) cw +(eoReplacement< MOEOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(moeoElitistReplacement< MOEOT >) cw +(moeoEnvironmentalReplacement< MOEOT >) cw +(moeoGenerationalReplacement< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoReplacement< MOEOT >) 1 1 box + (eoReplacement< MOEOT >) 1 2 box + (eoBF< A1, A2, R >) 1 3 box + (eoFunctorBase) 1 4 box + (moeoElitistReplacement< MOEOT >) 0 0 box + (moeoEnvironmentalReplacement< MOEOT >) 1 0 box + (moeoGenerationalReplacement< MOEOT >) 2 0 box + +% ----- relations ----- + +solid +0 1 1 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in +solid +1 1 0.25 out +solid +0 2 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoReplacement.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoReplacement.tex new file mode 100644 index 000000000..2a3aeebb4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoReplacement.tex @@ -0,0 +1,27 @@ +\section{moeo\-Replacement$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoReplacement}\index{moeoReplacement@{moeoReplacement}} +Replacement strategy for multi-objective optimization. + + +{\tt \#include $<$moeo\-Replacement.h$>$} + +Inheritance diagram for moeo\-Replacement$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.43137cm]{classmoeoReplacement} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Replacement$<$ MOEOT $>$} + +Replacement strategy for multi-objective optimization. + + + +Definition at line 22 of file moeo\-Replacement.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Replacement.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.eps new file mode 100644 index 000000000..d9a7d8227 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 500 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoRouletteSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoRouletteSelect< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex new file mode 100644 index 000000000..83ad8f48c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoRouletteSelect.tex @@ -0,0 +1,82 @@ +\section{moeo\-Roulette\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoRouletteSelect}\index{moeoRouletteSelect@{moeoRouletteSelect}} +Selection strategy that selects ONE individual by using roulette wheel process. + + +{\tt \#include $<$moeo\-Roulette\-Select.h$>$} + +Inheritance diagram for moeo\-Roulette\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoRouletteSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Roulette\-Select} (unsigned int \_\-t\-Size=2) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply the tournament to the given population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +double \& \bf{t\-Size}\label{classmoeoRouletteSelect_19af84fe966381cbfbe032f69ee0b42b} + +\begin{CompactList}\small\item\em size \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Roulette\-Select$<$ MOEOT $>$} + +Selection strategy that selects ONE individual by using roulette wheel process. + +\begin{Desc} +\item[Warning:]This selection only uses fitness values (and not diversity values). \end{Desc} + + + + +Definition at line 24 of file moeo\-Roulette\-Select.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoRouletteSelect@{moeo\-Roulette\-Select}!moeoRouletteSelect@{moeoRouletteSelect}} +\index{moeoRouletteSelect@{moeoRouletteSelect}!moeoRouletteSelect@{moeo\-Roulette\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Roulette\-Select}$<$ MOEOT $>$::\bf{moeo\-Roulette\-Select} (unsigned int {\em \_\-t\-Size} = {\tt 2})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRouletteSelect_4caa45f4c9d1ad2949cc14d2c21b77ea} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-t\-Size}]the number of individuals in the tournament (default: 2) \end{description} +\end{Desc} + + +Definition at line 32 of file moeo\-Roulette\-Select.h. + +References moeo\-Roulette\-Select$<$ MOEOT $>$::t\-Size. + +\subsection{Member Function Documentation} +\index{moeoRouletteSelect@{moeo\-Roulette\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moeoRouletteSelect@{moeo\-Roulette\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const MOEOT\& \bf{moeo\-Roulette\-Select}$<$ MOEOT $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoRouletteSelect_573fe156daf6fdfbae96d2b54a9fc260} + + +Apply the tournament to the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 48 of file moeo\-Roulette\-Select.h. + +References moeo\-Roulette\-Select$<$ MOEOT $>$::t\-Size. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Roulette\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.eps new file mode 100644 index 000000000..c325c6d69 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 336.7 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.485 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoScalarFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoAchievementFitnessAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoScalarFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoAchievementFitnessAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex new file mode 100644 index 000000000..39534c2a6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoScalarFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoScalarFitnessAssignment}\index{moeoScalarFitnessAssignment@{moeoScalarFitnessAssignment}} +\doxyref{moeo\-Scalar\-Fitness\-Assignment}{p.}{classmoeoScalarFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for scalar strategies. + + +{\tt \#include $<$moeo\-Scalar\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoScalarFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Scalar\-Fitness\-Assignment}{p.}{classmoeoScalarFitnessAssignment} is a \doxyref{moeo\-Fitness\-Assignment}{p.}{classmoeoFitnessAssignment} for scalar strategies. + + + +Definition at line 22 of file moeo\-Scalar\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Scalar\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.eps new file mode 100644 index 000000000..5e90b21a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 389.105 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.285 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSelectFromPopAndArch< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSelectFromPopAndArch< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex new file mode 100644 index 000000000..6f2be7c04 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectFromPopAndArch.tex @@ -0,0 +1,89 @@ +\section{moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoSelectFromPopAndArch}\index{moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}} +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + + +{\tt \#include $<$moeo\-Select\-From\-Pop\-And\-Arch.h$>$} + +Inheritance diagram for moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoSelectFromPopAndArch} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \&\_\-pop\-Select\-One, \bf{moeo\-Select\-One}$<$ MOEOT $>$ \_\-arch\-Select\-One, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, double \_\-ratio\-From\-Pop=0.5) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \&\_\-pop\-Select\-One, \bf{moeo\-Archive}$<$ MOEOT $>$ \&\_\-arch, double \_\-ratio\-From\-Pop=0.5) +\begin{CompactList}\small\item\em Defaulr ctor - the archive's selection operator is a random selector. \item\end{CompactList}\item +virtual const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&pop)\label{classmoeoSelectFromPopAndArch_7b763aef8e25f205159b69b3f746c942} + +\begin{CompactList}\small\item\em The selection process. \item\end{CompactList}\item +virtual void \bf{setup} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop)\label{classmoeoSelectFromPopAndArch_70180aeaa5d647a720276c82b7a0b111} + +\begin{CompactList}\small\item\em Setups some population stats. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& \bf{pop\-Select\-One}\label{classmoeoSelectFromPopAndArch_e16fb61bf9c115b0a34528e512d30ac6} + +\begin{CompactList}\small\item\em The population's selection operator. \item\end{CompactList}\item +\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& \bf{arch\-Select\-One}\label{classmoeoSelectFromPopAndArch_a34f3871b3a9f94614a15c381c2fa570} + +\begin{CompactList}\small\item\em The archive's selection operator. \item\end{CompactList}\item +\bf{moeo\-Archive}$<$ MOEOT $>$ \& \bf{arch}\label{classmoeoSelectFromPopAndArch_e87de22341f2225ea94ee2895a7eb4a6} + +\begin{CompactList}\small\item\em The archive. \item\end{CompactList}\item +double \bf{ratio\-From\-Pop}\label{classmoeoSelectFromPopAndArch_78a1e18111b46c447c86a0f77484d970} + +\begin{CompactList}\small\item\em The ratio of selected individuals from the population. \item\end{CompactList}\item +\bf{moeo\-Random\-Select}$<$ MOEOT $>$ \bf{random\-Select\-One}\label{classmoeoSelectFromPopAndArch_d6094492eed214e3bdb0330620a5890a} + +\begin{CompactList}\small\item\em A random selection operator (used as default for arch\-Select\-One). \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$} + +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + + + +Definition at line 26 of file moeo\-Select\-From\-Pop\-And\-Arch.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}!moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}} +\index{moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}!moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Select\-From\-Pop\-And\-Arch}$<$ MOEOT $>$::\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& {\em \_\-pop\-Select\-One}, \bf{moeo\-Select\-One}$<$ MOEOT $>$ {\em \_\-arch\-Select\-One}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, double {\em \_\-ratio\-From\-Pop} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSelectFromPopAndArch_96b34f67d678a7df7610f28bf10c4e86} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop\-Select\-One}]the population's selection operator \item[{\em \_\-arch\-Select\-One}]the archive's selection operator \item[{\em \_\-arch}]the archive \item[{\em \_\-ratio\-From\-Pop}]the ratio of selected individuals from the population \end{description} +\end{Desc} + + +Definition at line 37 of file moeo\-Select\-From\-Pop\-And\-Arch.h.\index{moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}!moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}} +\index{moeoSelectFromPopAndArch@{moeoSelectFromPopAndArch}!moeoSelectFromPopAndArch@{moeo\-Select\-From\-Pop\-And\-Arch}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Select\-From\-Pop\-And\-Arch}$<$ MOEOT $>$::\bf{moeo\-Select\-From\-Pop\-And\-Arch} (\bf{moeo\-Select\-One}$<$ MOEOT $>$ \& {\em \_\-pop\-Select\-One}, \bf{moeo\-Archive}$<$ MOEOT $>$ \& {\em \_\-arch}, double {\em \_\-ratio\-From\-Pop} = {\tt 0.5})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSelectFromPopAndArch_1c225b5f7b5a5ce6e87b46a7ea4a4cd0} + + +Defaulr ctor - the archive's selection operator is a random selector. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop\-Select\-One}]the population's selection operator \item[{\em \_\-arch}]the archive \item[{\em \_\-ratio\-From\-Pop}]the ratio of selected individuals from the population \end{description} +\end{Desc} + + +Definition at line 48 of file moeo\-Select\-From\-Pop\-And\-Arch.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Select\-From\-Pop\-And\-Arch.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps new file mode 100644 index 000000000..3af7fa4fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectOne.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 77.821 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 6.425 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 5 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(moeoDetTournamentSelect< MOEOT >) cw +(moeoRandomSelect< MOEOT >) cw +(moeoRouletteSelect< MOEOT >) cw +(moeoSelectFromPopAndArch< MOEOT >) cw +(moeoStochTournamentSelect< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSelectOne< MOEOT >) 2 1 box + (eoSelectOne< MOEOT >) 2 2 box + (eoUF< A1, R >) 2 3 box + (eoFunctorBase) 2 4 box + (moeoDetTournamentSelect< MOEOT >) 0 0 box + (moeoRandomSelect< MOEOT >) 1 0 box + (moeoRouletteSelect< MOEOT >) 2 0 box + (moeoSelectFromPopAndArch< MOEOT >) 3 0 box + (moeoStochTournamentSelect< MOEOT >) 4 0 box + +% ----- relations ----- + +solid +0 2 1 out +solid +1 2 2 in +solid +0 2 2 out +solid +1 2 3 in +solid +0 2 3 out +solid +1 2 4 in +solid +1 2 0.25 out +solid +0 4 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in +solid +0 4 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex new file mode 100644 index 000000000..fc3c2f417 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSelectOne.tex @@ -0,0 +1,27 @@ +\section{moeo\-Select\-One$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoSelectOne}\index{moeoSelectOne@{moeoSelectOne}} +Selection strategy for multi-objective optimization that selects only one element from a whole population. + + +{\tt \#include $<$moeo\-Select\-One.h$>$} + +Inheritance diagram for moeo\-Select\-One$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.17899cm]{classmoeoSelectOne} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Select\-One$<$ MOEOT $>$} + +Selection strategy for multi-objective optimization that selects only one element from a whole population. + + + +Definition at line 22 of file moeo\-Select\-One.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Select\-One.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.eps new file mode 100644 index 000000000..182d449c9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 283.286 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.765 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSharingDiversityAssignment< MOEOT >) cw +(moeoDiversityAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +(moeoFrontByFrontSharingDiversityAssignment< MOEOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSharingDiversityAssignment< MOEOT >) 0 1 box + (moeoDiversityAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + (moeoFrontByFrontSharingDiversityAssignment< MOEOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex new file mode 100644 index 000000000..a26431630 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSharingDiversityAssignment.tex @@ -0,0 +1,178 @@ +\section{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoSharingDiversityAssignment}\index{moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}} +Sharing assignment scheme originally porposed by: D. + + +{\tt \#include $<$moeo\-Sharing\-Diversity\-Assignment.h$>$} + +Inheritance diagram for moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoSharingDiversityAssignment} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef MOEOT::Objective\-Vector \bf{Objective\-Vector}\label{classmoeoSharingDiversityAssignment_5e92f136f41363dcb8a6df94dbf2f3b3} + +\begin{CompactList}\small\item\em the objective vector type of the solutions \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \&\_\-distance, double \_\-niche\-Size=0.5, double \_\-alpha=1.0) +\begin{CompactList}\small\item\em Ctor. \item\end{CompactList}\item +\bf{moeo\-Sharing\-Diversity\-Assignment} (double \_\-niche\-Size=0.5, double \_\-alpha=1.0) +\begin{CompactList}\small\item\em Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. \item\end{CompactList}\item +void \bf{operator()} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets diversity values for every solution contained in the population \_\-pop. \item\end{CompactList}\item +void \bf{update\-By\-Deleting} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop, \bf{Objective\-Vector} \&\_\-obj\-Vec) +\end{CompactItemize} +\subsection*{Protected Member Functions} +\begin{CompactItemize} +\item +virtual void \bf{set\-Similarities} (\bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Sets similarities for every solution contained in the population \_\-pop. \item\end{CompactList}\item +double \bf{sh} (double \_\-dist) +\begin{CompactList}\small\item\em Sharing function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Distance}$<$ MOEOT, double $>$ \& \bf{distance}\label{classmoeoSharingDiversityAssignment_b81d950d0469ebd4c769994bcea58f8b} + +\begin{CompactList}\small\item\em the distance used to compute the neighborhood of solutions \item\end{CompactList}\item +\bf{moeo\-Euclidean\-Distance}$<$ MOEOT $>$ \bf{default\-Distance}\label{classmoeoSharingDiversityAssignment_ecde6f1a0ba15d9ec563396a585188f0} + +\begin{CompactList}\small\item\em euclidean distancein the objective space (can be used as default) \item\end{CompactList}\item +double \bf{niche\-Size}\label{classmoeoSharingDiversityAssignment_175d978d4b56603a3bcb45fec8395441} + +\begin{CompactList}\small\item\em neighborhood size in terms of radius distance \item\end{CompactList}\item +double \bf{alpha}\label{classmoeoSharingDiversityAssignment_95ed49448a35d5b99cdfd496a33fd45b} + +\begin{CompactList}\small\item\em parameter used to regulate the shape of the sharing function \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} + +Sharing assignment scheme originally porposed by: D. + +E. Goldberg, \char`\"{}Genetic Algorithms in Search, Optimization and Machine Learning\char`\"{}, Addision-Wesley, MA, USA (1989). + + + +Definition at line 28 of file moeo\-Sharing\-Diversity\-Assignment.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}} +\index{moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Sharing\-Diversity\-Assignment} (\bf{moeo\-Distance}$<$ MOEOT, double $>$ \& {\em \_\-distance}, double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSharingDiversityAssignment_10ba0d2cdd57ce47244afdf4b1623409} + + +Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-distance}]the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) \item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 42 of file moeo\-Sharing\-Diversity\-Assignment.h.\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}} +\index{moeoSharingDiversityAssignment@{moeoSharingDiversityAssignment}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::\bf{moeo\-Sharing\-Diversity\-Assignment} (double {\em \_\-niche\-Size} = {\tt 0.5}, double {\em \_\-alpha} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoSharingDiversityAssignment_ccc66529da0cacd3f11a019ebe646668} + + +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-niche\-Size}]neighborhood size in terms of radius distance (closely related to the way the distances are computed) \item[{\em \_\-alpha}]parameter used to regulate the shape of the sharing function \end{description} +\end{Desc} + + +Definition at line 51 of file moeo\-Sharing\-Diversity\-Assignment.h. + +\subsection{Member Function Documentation} +\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!operator()@{operator()}} +\index{operator()@{operator()}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::operator() (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoSharingDiversityAssignment_6228be85e166172cf03def1a004505d5} + + +Sets diversity values for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Implements \bf{eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>$}. + +Definition at line 59 of file moeo\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::set\-Similarities().\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!updateByDeleting@{updateByDeleting}} +\index{updateByDeleting@{updateByDeleting}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ void \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::update\-By\-Deleting (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop}, \bf{Objective\-Vector} \& {\em \_\-obj\-Vec})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoSharingDiversityAssignment_21c8d6e020af23b2be219b7e02248300} + + +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population \_\-pop by taking the deletion of the objective vector \_\-obj\-Vec into account. \end{Desc} +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \item[{\em \_\-obj\-Vec}]the objective vector \end{description} +\end{Desc} +\begin{Desc} +\item[Warning:]NOT IMPLEMENTED, DO NOTHING ! \end{Desc} + + +Implements \bf{moeo\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoDiversityAssignment_57f400263b36664df6269f1b522cfdcb}. + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontSharingDiversityAssignment_623489a246f86cf24cc5860d32caa743}. + +Definition at line 80 of file moeo\-Sharing\-Diversity\-Assignment.h.\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!setSimilarities@{setSimilarities}} +\index{setSimilarities@{setSimilarities}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ virtual void \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::set\-Similarities (\bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline, protected, virtual]}}\label{classmoeoSharingDiversityAssignment_c01f6ac1abba3799f5c4b6c0608dac55} + + +Sets similarities for every solution contained in the population \_\-pop. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Reimplemented in \bf{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$} \doxyref{p.}{classmoeoFrontByFrontSharingDiversityAssignment_a0f6c045237aba2857c4a9ec25679e69}. + +Definition at line 102 of file moeo\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::distance, and moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::sh(). + +Referenced by moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::operator()().\index{moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}!sh@{sh}} +\index{sh@{sh}!moeoSharingDiversityAssignment@{moeo\-Sharing\-Diversity\-Assignment}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ double \bf{moeo\-Sharing\-Diversity\-Assignment}$<$ MOEOT $>$::sh (double {\em \_\-dist})\hspace{0.3cm}{\tt [inline, protected]}}\label{classmoeoSharingDiversityAssignment_5b5daaa55e97c6fcd172d61c7837e26c} + + +Sharing function. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-dist}]the distance value \end{description} +\end{Desc} + + +Definition at line 125 of file moeo\-Sharing\-Diversity\-Assignment.h. + +References moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::alpha, and moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::niche\-Size. + +Referenced by moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::set\-Similarities(), and moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$::set\-Similarities(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Sharing\-Diversity\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps new file mode 100644 index 000000000..6b51f160e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 132.45 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3.775 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSolutionUnaryMetric< ObjectiveVector, R >) cw +(moeoUnaryMetric< const ObjectiveVector &, R >) cw +(eoUF< const ObjectiveVector &, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSolutionUnaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoUnaryMetric< const ObjectiveVector &, R >) 0.5 1 box + (eoUF< const ObjectiveVector &, R >) 0 2 box + (moeoMetric) 1 2 box + (eoFunctorBase) 0 3 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex new file mode 100644 index 000000000..71e3e9d58 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionUnaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoSolutionUnaryMetric}\index{moeoSolutionUnaryMetric@{moeoSolutionUnaryMetric}} +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.70861cm]{classmoeoSolutionUnaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + + + +Definition at line 43 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps new file mode 100644 index 000000000..0ba5b7092 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 117.925 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.24 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +(moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 1 box + (moeoBinaryMetric< A1, A2, R >) 0.5 2 box + (eoBF< A1, A2, R >) 0 3 box + (moeoMetric) 1 3 box + (eoFunctorBase) 0 4 box + (eoFunctorBase) 1 4 box + (moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >) 0.5 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +0 0 3 out +solid +1 1 3 in +solid +0 1 3 out +solid +1 0 4 in +solid +1 1 4 in +solid +1 0.5 0.25 out +solid +0 0.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex new file mode 100644 index 000000000..f98bbe8a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoSolutionVsSolutionBinaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoSolutionVsSolutionBinaryMetric}\index{moeoSolutionVsSolutionBinaryMetric@{moeoSolutionVsSolutionBinaryMetric}} +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.30189cm]{classmoeoSolutionVsSolutionBinaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + + + +Definition at line 57 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.eps new file mode 100644 index 000000000..87f5b6ec3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 395.257 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.265 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoStochTournamentSelect< MOEOT >) cw +(moeoSelectOne< MOEOT >) cw +(eoSelectOne< MOEOT >) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoStochTournamentSelect< MOEOT >) 0 0 box + (moeoSelectOne< MOEOT >) 0 1 box + (eoSelectOne< MOEOT >) 0 2 box + (eoUF< A1, R >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex new file mode 100644 index 000000000..0215c08f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoStochTournamentSelect.tex @@ -0,0 +1,102 @@ +\section{moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoStochTournamentSelect}\index{moeoStochTournamentSelect@{moeoStochTournamentSelect}} +Selection strategy that selects ONE individual by stochastic tournament. + + +{\tt \#include $<$moeo\-Stoch\-Tournament\-Select.h$>$} + +Inheritance diagram for moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoStochTournamentSelect} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Stoch\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \&\_\-comparator, double \_\-t\-Rate=1.0) +\begin{CompactList}\small\item\em Full Ctor. \item\end{CompactList}\item +\bf{moeo\-Stoch\-Tournament\-Select} (double \_\-t\-Rate=1.0) +\begin{CompactList}\small\item\em Ctor without comparator. \item\end{CompactList}\item +const MOEOT \& \bf{operator()} (const \bf{eo\-Pop}$<$ MOEOT $>$ \&\_\-pop) +\begin{CompactList}\small\item\em Apply the tournament to the given population. \item\end{CompactList}\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\bf{moeo\-Comparator}$<$ MOEOT $>$ \& \bf{comparator}\label{classmoeoStochTournamentSelect_a8ae24cb50092cc77872a447b6602009} + +\begin{CompactList}\small\item\em the comparator (used to compare 2 individuals) \item\end{CompactList}\item +\bf{moeo\-Fitness\-Then\-Diversity\-Comparator}$<$ MOEOT $>$ \bf{default\-Comparator}\label{classmoeoStochTournamentSelect_ec34173496ad3dd0cd118b5233a53855} + +\begin{CompactList}\small\item\em a fitness then diversity comparator can be used as default \item\end{CompactList}\item +double \bf{t\-Rate}\label{classmoeoStochTournamentSelect_659d064e1333ee9a3e9808a15a2f53f6} + +\begin{CompactList}\small\item\em the tournament rate \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$} + +Selection strategy that selects ONE individual by stochastic tournament. + + + +Definition at line 24 of file moeo\-Stoch\-Tournament\-Select.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}!moeoStochTournamentSelect@{moeoStochTournamentSelect}} +\index{moeoStochTournamentSelect@{moeoStochTournamentSelect}!moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Stoch\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Stoch\-Tournament\-Select} (\bf{moeo\-Comparator}$<$ MOEOT $>$ \& {\em \_\-comparator}, double {\em \_\-t\-Rate} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoStochTournamentSelect_dfd4eb2c6d148fd3cab2fb670ae7f1d4} + + +Full Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-comparator}]the comparator (used to compare 2 individuals) \item[{\em \_\-t\-Rate}]the tournament rate \end{description} +\end{Desc} + + +Definition at line 33 of file moeo\-Stoch\-Tournament\-Select.h. + +References moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::t\-Rate.\index{moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}!moeoStochTournamentSelect@{moeoStochTournamentSelect}} +\index{moeoStochTournamentSelect@{moeoStochTournamentSelect}!moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ \bf{moeo\-Stoch\-Tournament\-Select}$<$ MOEOT $>$::\bf{moeo\-Stoch\-Tournament\-Select} (double {\em \_\-t\-Rate} = {\tt 1.0})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoStochTournamentSelect_a7d9a735f65193a943ca2cdce780e80d} + + +Ctor without comparator. + +A \doxyref{moeo\-Fitness\-Then\-Diversity\-Comparator}{p.}{classmoeoFitnessThenDiversityComparator} is used as default. \begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-t\-Rate}]the tournament rate \end{description} +\end{Desc} + + +Definition at line 53 of file moeo\-Stoch\-Tournament\-Select.h. + +References moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::t\-Rate. + +\subsection{Member Function Documentation} +\index{moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}!operator()@{operator()}} +\index{operator()@{operator()}!moeoStochTournamentSelect@{moeo\-Stoch\-Tournament\-Select}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOT$>$ const MOEOT\& \bf{moeo\-Stoch\-Tournament\-Select}$<$ MOEOT $>$::operator() (const \bf{eo\-Pop}$<$ MOEOT $>$ \& {\em \_\-pop})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoStochTournamentSelect_2323cbf99554b37dc3724c8ea26e52c1} + + +Apply the tournament to the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-pop}]the population \end{description} +\end{Desc} + + +Definition at line 73 of file moeo\-Stoch\-Tournament\-Select.h. + +References moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::comparator, and moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$::t\-Rate. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Stoch\-Tournament\-Select.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.eps new file mode 100644 index 000000000..c3dc0c5dd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 292.398 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.71 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoIndicatorBasedFitnessAssignment< MOEOT >) cw +(moeoFitnessAssignment< MOEOT >) cw +(eoUF< eoPop< MOEOT > &, void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >) 0 0 box + (moeoIndicatorBasedFitnessAssignment< MOEOT >) 0 1 box + (moeoFitnessAssignment< MOEOT >) 0 2 box + (eoUF< eoPop< MOEOT > &, void >) 0 3 box + (eoFunctorBase) 0 4 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +0 0 3 out +solid +1 0 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex new file mode 100644 index 000000000..3186f1ddb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryIndicatorBasedFitnessAssignment.tex @@ -0,0 +1,27 @@ +\section{moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$ Class Template Reference} +\label{classmoeoUnaryIndicatorBasedFitnessAssignment}\index{moeoUnaryIndicatorBasedFitnessAssignment@{moeoUnaryIndicatorBasedFitnessAssignment}} +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for unary indicators. + + +{\tt \#include $<$moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment.h$>$} + +Inheritance diagram for moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classmoeoUnaryIndicatorBasedFitnessAssignment} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOT$>$ class moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$} + +\doxyref{moeo\-Indicator\-Based\-Fitness\-Assignment}{p.}{classmoeoIndicatorBasedFitnessAssignment} for unary indicators. + + + +Definition at line 22 of file moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.eps new file mode 100644 index 000000000..aa9d7b900 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 176.471 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.83333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoUnaryMetric< A, R >) cw +(eoUF< A, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoUnaryMetric< A, R >) 0.5 0 box + (eoUF< A, R >) 0 1 box + (moeoMetric) 1 1 box + (eoFunctorBase) 0 2 box + (eoFunctorBase) 1 2 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +1 1 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex new file mode 100644 index 000000000..33a9a8088 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoUnaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Unary\-Metric$<$ A, R $>$ Class Template Reference} +\label{classmoeoUnaryMetric}\index{moeoUnaryMetric@{moeoUnaryMetric}} +Base class for unary metrics. + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Unary\-Metric$<$ A, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classmoeoUnaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class A, class R$>$ class moeo\-Unary\-Metric$<$ A, R $>$} + +Base class for unary metrics. + + + +Definition at line 29 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVector.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVector.eps new file mode 100644 index 000000000..f0dc8dc31 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVector.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 100.806 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.96 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) cw +(MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) cw +(EO< MOEOObjectiveVector >) cw +(eoObject) cw +(eoPersistent) cw +(eoPrintable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >) 0.5 0 box + (MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >) 0.5 1 box + (EO< MOEOObjectiveVector >) 0.5 2 box + (eoObject) 0 3 box + (eoPersistent) 1 3 box + (eoPrintable) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +0 1 3 conn +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVector.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVector.tex new file mode 100644 index 000000000..26a55b536 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVector.tex @@ -0,0 +1,135 @@ +\section{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$ Class Template Reference} +\label{classmoeoVector}\index{moeoVector@{moeoVector}} +Base class for fixed length chromosomes, just derives from \doxyref{MOEO}{p.}{classMOEO} and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + + +{\tt \#include $<$moeo\-Vector.h$>$} + +Inheritance diagram for moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.82258cm]{classmoeoVector} +\end{center} +\end{figure} +\subsection*{Public Types} +\begin{CompactItemize} +\item +typedef Gene\-Type \bf{Atom\-Type}\label{classmoeoVector_9d4400084dec28c37e392bb8b0a0b452} + +\begin{CompactList}\small\item\em the atomic type \item\end{CompactList}\item +typedef std::vector$<$ Gene\-Type $>$ \bf{Container\-Type}\label{classmoeoVector_b0fb83132e1f2c8b8258013a01aeb364} + +\begin{CompactList}\small\item\em the container type \item\end{CompactList}\end{CompactItemize} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\bf{moeo\-Vector} (unsigned int \_\-size=0, Gene\-Type \_\-value=Gene\-Type()) +\begin{CompactList}\small\item\em Default ctor. \item\end{CompactList}\item +void \bf{value} (const std::vector$<$ Gene\-Type $>$ \&\_\-v) +\begin{CompactList}\small\item\em We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. \item\end{CompactList}\item +bool \bf{operator$<$} (const \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$ \&\_\-moeo) const +\begin{CompactList}\small\item\em To avoid conflicts between \doxyref{MOEO::operator$<$}{p.}{classMOEO_119ef916de4955298febaf3e1c8ad705} and std::vector$<$Gene\-Type$>$::operator$<$. \item\end{CompactList}\item +virtual void \bf{print\-On} (std::ostream \&\_\-os) const +\begin{CompactList}\small\item\em Writing object. \item\end{CompactList}\item +virtual void \bf{read\-From} (std::istream \&\_\-is) +\begin{CompactList}\small\item\em Reading object. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ class moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$} + +Base class for fixed length chromosomes, just derives from \doxyref{MOEO}{p.}{classMOEO} and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + +Gene\-Type must have the following methods: void ctor (needed for the std::vector$<$$>$), copy ctor. + + + +Definition at line 25 of file moeo\-Vector.h. + +\subsection{Constructor \& Destructor Documentation} +\index{moeoVector@{moeo\-Vector}!moeoVector@{moeoVector}} +\index{moeoVector@{moeoVector}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::\bf{moeo\-Vector} (unsigned int {\em \_\-size} = {\tt 0}, Gene\-Type {\em \_\-value} = {\tt GeneType()})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoVector_b109dd4d5ae93cdc4d039eb3c3b07664} + + +Default ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-size}]Length of vector (default is 0) \item[{\em \_\-value}]Initial value of all elements (default is default value of type Gene\-Type) \end{description} +\end{Desc} + + +Definition at line 47 of file moeo\-Vector.h. + +\subsection{Member Function Documentation} +\index{moeoVector@{moeo\-Vector}!value@{value}} +\index{value@{value}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ void \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::value (const std::vector$<$ Gene\-Type $>$ \& {\em \_\-v})\hspace{0.3cm}{\tt [inline]}}\label{classmoeoVector_a7fadd876fe492717815510f68a921c5} + + +We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-v}]a vector of Gene\-Type \end{description} +\end{Desc} + + +Definition at line 56 of file moeo\-Vector.h.\index{moeoVector@{moeo\-Vector}!operator<@{operator$<$}} +\index{operator<@{operator$<$}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ bool \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::operator$<$ (const \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$ \& {\em \_\-moeo}) const\hspace{0.3cm}{\tt [inline]}}\label{classmoeoVector_d7a5feff640f00e5d6a29c3ebd11e90b} + + +To avoid conflicts between \doxyref{MOEO::operator$<$}{p.}{classMOEO_119ef916de4955298febaf3e1c8ad705} and std::vector$<$Gene\-Type$>$::operator$<$. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-moeo}]the object to compare with \end{description} +\end{Desc} + + +Definition at line 79 of file moeo\-Vector.h.\index{moeoVector@{moeo\-Vector}!printOn@{printOn}} +\index{printOn@{printOn}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ virtual void \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::print\-On (std::ostream \& {\em \_\-os}) const\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoVector_d0a92cb26483ffab754ac4a0efb76308} + + +Writing object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-os}]output stream \end{description} +\end{Desc} + + +Reimplemented from \bf{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classMOEO_a3b6074b3289585bf4dc6998e8397e24}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_78f821c548cf46d8bcd30aa8a52ffb7c}. + +Definition at line 89 of file moeo\-Vector.h.\index{moeoVector@{moeo\-Vector}!readFrom@{readFrom}} +\index{readFrom@{readFrom}!moeoVector@{moeo\-Vector}} +\subsubsection{\setlength{\rightskip}{0pt plus 5cm}template$<$class MOEOObjective\-Vector, class MOEOFitness, class MOEODiversity, class Gene\-Type$>$ virtual void \bf{moeo\-Vector}$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$::read\-From (std::istream \& {\em \_\-is})\hspace{0.3cm}{\tt [inline, virtual]}}\label{classmoeoVector_cd8ee0fe79bb9515b29e2a4d3fee5ab9} + + +Reading object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em \_\-is}]input stream \end{description} +\end{Desc} + + +Reimplemented from \bf{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classMOEO_1bbd9cb1a7709592bf4bc29dff8c5273}. + +Reimplemented in \bf{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$} \doxyref{p.}{classmoeoBitVector_31cd3f894615d0a27dd116a5c8082521}. + +Definition at line 102 of file moeo\-Vector.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Vector.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps new file mode 100644 index 000000000..85372a8a3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 104.167 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.8 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoVectorUnaryMetric< ObjectiveVector, R >) cw +(moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) cw +(eoUF< const std::vector< ObjectiveVector > &, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoVectorUnaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoUnaryMetric< const std::vector< ObjectiveVector > &, R >) 0.5 1 box + (eoUF< const std::vector< ObjectiveVector > &, R >) 0 2 box + (moeoMetric) 1 2 box + (eoFunctorBase) 0 3 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex new file mode 100644 index 000000000..c805f24f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorUnaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoVectorUnaryMetric}\index{moeoVectorUnaryMetric@{moeoVectorUnaryMetric}} +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.91667cm]{classmoeoVectorUnaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). + + + +Definition at line 50 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps new file mode 100644 index 000000000..f1b6e0933 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 115.274 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 4.3375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) cw +(moeoBinaryMetric< A1, A2, R >) cw +(eoBF< A1, A2, R >) cw +(moeoMetric) cw +(eoFunctorBase) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >) 0.5 0 box + (moeoBinaryMetric< A1, A2, R >) 0.5 1 box + (eoBF< A1, A2, R >) 0 2 box + (moeoMetric) 1 2 box + (eoFunctorBase) 0 3 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex new file mode 100644 index 000000000..bcb97e8c4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/classmoeoVectorVsVectorBinaryMetric.tex @@ -0,0 +1,27 @@ +\section{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$ Class Template Reference} +\label{classmoeoVectorVsVectorBinaryMetric}\index{moeoVectorVsVectorBinaryMetric@{moeoVectorVsVectorBinaryMetric}} +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). + + +{\tt \#include $<$moeo\-Metric.h$>$} + +Inheritance diagram for moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3.22767cm]{classmoeoVectorVsVectorBinaryMetric} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class Objective\-Vector, class R$>$ class moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$} + +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). + + + +Definition at line 64 of file moeo\-Metric.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +moeo\-Metric.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/doxygen.sty b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/doxygen.sty new file mode 100644 index 000000000..b0079fc97 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Jul 6 09:41:04 2007 for Paradis\-EO-MOEO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Jul 6 09:41:04 2007 for Paradis\-EO-MOEO by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/hierarchy.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/hierarchy.tex new file mode 100644 index 000000000..f20cb80c6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/hierarchy.tex @@ -0,0 +1,230 @@ +\section{Paradis\-EO-MOEO Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item eo\-Functor\-Base{\tt [external]}\begin{CompactList} +\item eo\-BF$<$ A1, A2, R $>${\tt [external]}\begin{CompactList} +\item eo\-Replacement$<$ EOT $>${\tt [external]}\begin{CompactList} +\item eo\-Generational\-Replacement$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Generational\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoGenerationalReplacement}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Replacement$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoReplacement}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Elitist\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoElitistReplacement}}{} +\item \contentsline{section}{moeo\-Environmental\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoEnvironmentalReplacement}}{} +\item \contentsline{section}{moeo\-Generational\-Replacement$<$ MOEOT $>$}{\pageref{classmoeoGenerationalReplacement}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Select$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Select}{\pageref{classmoeoEasyEA_1_1eoDummySelect}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ A1, A2, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoSolutionVsSolutionBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoNormalizedSolutionVsSolutionBinaryMetric}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$}{\pageref{classmoeoSolutionVsSolutionBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Solution\-Vs\-Solution\-Binary\-Metric$<$ Objective\-Vector, double $>$}{\pageref{classmoeoNormalizedSolutionVsSolutionBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Additive\-Epsilon\-Binary\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoAdditiveEpsilonBinaryMetric}}{} +\item \contentsline{section}{moeo\-Hypervolume\-Binary\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoHypervolumeBinaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoVectorVsVectorBinaryMetric}}{} +\item \contentsline{section}{moeo\-Vector\-Vs\-Vector\-Binary\-Metric$<$ Objective\-Vector, double $>$}{\pageref{classmoeoVectorVsVectorBinaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Contribution\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoContributionMetric}}{} +\item \contentsline{section}{moeo\-Entropy\-Metric$<$ Objective\-Vector $>$}{\pageref{classmoeoEntropyMetric}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoComparator}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Aggregative\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoAggregativeComparator}}{} +\item \contentsline{section}{moeo\-Diversity\-Then\-Fitness\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoDiversityThenFitnessComparator}}{} +\item \contentsline{section}{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$::Objective\-Comparator}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator}}{} +\item \contentsline{section}{moeo\-Fitness\-Then\-Diversity\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoFitnessThenDiversityComparator}}{} +\item \contentsline{section}{moeo\-One\-Objective\-Comparator$<$ MOEOT $>$}{\pageref{classmoeoOneObjectiveComparator}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Distance$<$ MOEOT, Type $>$}{\pageref{classmoeoDistance}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Distance$<$ MOEOT, Type $>$}{\pageref{classmoeoNormalizedDistance}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Distance$<$ MOEOT, double $>$}{\pageref{classmoeoDistance}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Normalized\-Distance$<$ MOEOT $>$}{\pageref{classmoeoNormalizedDistance}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Euclidean\-Distance$<$ MOEOT $>$}{\pageref{classmoeoEuclideanDistance}}{} +\item \contentsline{section}{moeo\-Manhattan\-Distance$<$ MOEOT $>$}{\pageref{classmoeoManhattanDistance}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoObjectiveVectorComparator}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-GDominance\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoGDominanceObjectiveVectorComparator}}{} +\item \contentsline{section}{moeo\-Objective\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoObjectiveObjectiveVectorComparator}}{} +\item \contentsline{section}{moeo\-Pareto\-Objective\-Vector\-Comparator$<$ Objective\-Vector $>$}{\pageref{classmoeoParetoObjectiveVectorComparator}}{} +\end{CompactList} +\end{CompactList} +\item eo\-BF$<$ const const Objective\-Vector \&, Objective\-Vector \&, double $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ const const Objective\-Vector \&, Objective\-Vector \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, double $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\end{CompactList} +\item eo\-BF$<$ Type, moeo\-Archive$<$ MOEOT $>$ \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-LS$<$ MOEOT, Type $>$}{\pageref{classmoeoLS}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Combined\-LS$<$ MOEOT, Type $>$}{\pageref{classmoeoCombinedLS}}{} +\end{CompactList} +\end{CompactList} +\item eo\-F$<$ void $>${\tt [external]}\begin{CompactList} +\item eo\-Updater{\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Archive\-Objective\-Vector\-Saving\-Updater$<$ MOEOT $>$}{\pageref{classmoeoArchiveObjectiveVectorSavingUpdater}}{} +\item \contentsline{section}{moeo\-Archive\-Updater$<$ MOEOT $>$}{\pageref{classmoeoArchiveUpdater}}{} +\item \contentsline{section}{moeo\-Binary\-Metric\-Saving\-Updater$<$ MOEOT $>$}{\pageref{classmoeoBinaryMetricSavingUpdater}}{} +\item \contentsline{section}{moeo\-Hybrid\-LS$<$ MOEOT $>$}{\pageref{classmoeoHybridLS}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ A1, R $>${\tt [external]}\begin{CompactList} +\item eo\-Algo$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-EA$<$ MOEOT $>$}{\pageref{classmoeoEA}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$}{\pageref{classmoeoEasyEA}}{} +\item \contentsline{section}{moeo\-IBEA$<$ MOEOT $>$}{\pageref{classmoeoIBEA}}{} +\item \contentsline{section}{moeo\-NSGA$<$ MOEOT $>$}{\pageref{classmoeoNSGA}}{} +\item \contentsline{section}{moeo\-NSGAII$<$ MOEOT $>$}{\pageref{classmoeoNSGAII}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Eval\-Func$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Eval}{\pageref{classmoeoEasyEA_1_1eoDummyEval}}{} +\item \contentsline{section}{moeo\-Eval\-Func$<$ MOEOT $>$}{\pageref{classmoeoEvalFunc}}{} +\end{CompactList} +\item eo\-Select\-One$<$ EOT, Worth\-T $>${\tt [external]}\begin{CompactList} +\item eo\-Random\-Select$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Random\-Select$<$ MOEOT $>$}{\pageref{classmoeoRandomSelect}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Select\-One$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Select\-One$<$ MOEOT $>$}{\pageref{classmoeoSelectOne}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Det\-Tournament\-Select$<$ MOEOT $>$}{\pageref{classmoeoDetTournamentSelect}}{} +\item \contentsline{section}{moeo\-Random\-Select$<$ MOEOT $>$}{\pageref{classmoeoRandomSelect}}{} +\item \contentsline{section}{moeo\-Roulette\-Select$<$ MOEOT $>$}{\pageref{classmoeoRouletteSelect}}{} +\item \contentsline{section}{moeo\-Select\-From\-Pop\-And\-Arch$<$ MOEOT $>$}{\pageref{classmoeoSelectFromPopAndArch}}{} +\item \contentsline{section}{moeo\-Stoch\-Tournament\-Select$<$ MOEOT $>$}{\pageref{classmoeoStochTournamentSelect}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Transform$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Easy\-EA$<$ MOEOT $>$::eo\-Dummy\-Transform}{\pageref{classmoeoEasyEA_1_1eoDummyTransform}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Convert\-Pop\-To\-Objective\-Vectors$<$ MOEOT, Objective\-Vector $>$}{\pageref{classmoeoConvertPopToObjectiveVectors}}{} +\end{CompactList} +\item eo\-UF$<$ A, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ A, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\end{CompactList} +\item eo\-UF$<$ const eo\-Pop$<$ MOEOT $>$ \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Distance\-Matrix$<$ MOEOT, Type $>$}{\pageref{classmoeoDistanceMatrix}}{} +\end{CompactList} +\item eo\-UF$<$ const Objective\-Vector \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const Objective\-Vector \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Solution\-Unary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoSolutionUnaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ const std::vector$<$ Objective\-Vector $>$ \&, R $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Vector\-Unary\-Metric$<$ Objective\-Vector, R $>$}{\pageref{classmoeoVectorUnaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ eo\-Pop$<$ MOEOT $>$ \&, void $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoDiversityAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoCrowdingDiversityAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Front\-By\-Front\-Crowding\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFrontByFrontCrowdingDiversityAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Dummy\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoDummyDiversityAssignment}}{} +\item \contentsline{section}{moeo\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoSharingDiversityAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Front\-By\-Front\-Sharing\-Diversity\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFrontByFrontSharingDiversityAssignment}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Criterion\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoCriterionBasedFitnessAssignment}}{} +\item \contentsline{section}{moeo\-Dummy\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoDummyFitnessAssignment}}{} +\item \contentsline{section}{moeo\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoIndicatorBasedFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoBinaryIndicatorBasedFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Exp\-Binary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoExpBinaryIndicatorBasedFitnessAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Unary\-Indicator\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoUnaryIndicatorBasedFitnessAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Pareto\-Based\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoParetoBasedFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Fast\-Non\-Dominated\-Sorting\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoFastNonDominatedSortingFitnessAssignment}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Scalar\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoScalarFitnessAssignment}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Achievement\-Fitness\-Assignment$<$ MOEOT $>$}{\pageref{classmoeoAchievementFitnessAssignment}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Metric}{\pageref{classmoeoMetric}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ A1, A2, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const Objective\-Vector \&, Objective\-Vector \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, double $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Binary\-Metric$<$ const const std::vector$<$ Objective\-Vector $>$ \&, std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoBinaryMetric}}{} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ A, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const Objective\-Vector \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\item \contentsline{section}{moeo\-Unary\-Metric$<$ const std::vector$<$ Objective\-Vector $>$ \&, R $>$}{\pageref{classmoeoUnaryMetric}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Object{\tt [external]}\begin{CompactList} +\item EO$<$ MOEOObjective\-Vector $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{MOEO$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}{\pageref{classMOEO}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, Gene\-Type $>$}{\pageref{classmoeoVector}}{} +\item \contentsline{section}{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, bool $>$}{\pageref{classmoeoVector}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Bit\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}{\pageref{classmoeoBitVector}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity, double $>$}{\pageref{classmoeoVector}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Real\-Vector$<$ MOEOObjective\-Vector, MOEOFitness, MOEODiversity $>$}{\pageref{classmoeoRealVector}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item eo\-Pop$<$ MOEOT $>${\tt [external]}\begin{CompactList} +\item \contentsline{section}{moeo\-Archive$<$ MOEOT $>$}{\pageref{classmoeoArchive}}{} +\end{CompactList} +\end{CompactList} +\item eo\-Printable{\tt [external]}\begin{CompactList} +\item eo\-Persistent{\tt [external]}\begin{CompactList} +\item EO$<$ MOEOObjective\-Vector $>${\tt [external]}\item eo\-Pop$<$ MOEOT $>${\tt [external]}\end{CompactList} +\end{CompactList} +\item \contentsline{section}{moeo\-Algo}{\pageref{classmoeoAlgo}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-EA$<$ MOEOT $>$}{\pageref{classmoeoEA}}{} +\item \contentsline{section}{moeo\-LS$<$ MOEOT, Type $>$}{\pageref{classmoeoLS}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Elitist\-Replacement$<$ MOEOT $>$::Cmp}{\pageref{classmoeoElitistReplacement_1_1Cmp}}{} +\item \contentsline{section}{moeo\-Environmental\-Replacement$<$ MOEOT $>$::Cmp}{\pageref{classmoeoEnvironmentalReplacement_1_1Cmp}}{} +\item \contentsline{section}{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, Objective\-Vector\-Type $>$}{\pageref{classmoeoObjectiveVector}}{} +\item \contentsline{section}{moeo\-Objective\-Vector$<$ Objective\-Vector\-Traits, double $>$}{\pageref{classmoeoObjectiveVector}}{} +\begin{CompactList} +\item \contentsline{section}{moeo\-Real\-Objective\-Vector$<$ Objective\-Vector\-Traits $>$}{\pageref{classmoeoRealObjectiveVector}}{} +\end{CompactList} +\item \contentsline{section}{moeo\-Objective\-Vector\-Traits}{\pageref{classmoeoObjectiveVectorTraits}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/main.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/main.tex new file mode 100644 index 000000000..8b7f04a2e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/main.tex @@ -0,0 +1,5 @@ +\section{intro}\label{main_intro} +Paradis\-EO-MOEO is a white-box object-oriented generic framework dedicated to the flexible design of evolutionary multi-objective algorithms. This paradigm-free software embeds some features and techniques for Pareto-based resolution and aims to provide a set of classes allowing to ease and speed up the development of computationally efficient programs. It is based on a clear conceptual distinction between the solution methods and the multi-objective problems they are intended to solve. This separation confers a maximum design and code reuse. Paradis\-EO-MOEO provides a broad range of archive-related features (such as elitism or performance metrics) and the most common Pareto-based fitness assignment strategies (MOGA, NSGA, SPEA, IBEA and more). Furthermore, parallel and distributed models as well as hybridization mechanisms can be applied to an algorithm designed within Paradis\-EO-MOEO using the whole version of Paradis\-EO.\section{Tutorials}\label{main_tutorials} +Tutorials for Paradis\-EO-MOEO are available {\tt here}.\section{install}\label{main_install} +The installation procedure of the package is detailed in the README file in the top-directory of the source-tree.\section{design}\label{main_design} +For an introduction to the design of Paradis\-EO-MOEO, you can look at the {\tt Paradis\-EO website}. \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/refman.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/refman.tex new file mode 100644 index 000000000..421e63d02 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/latex/refman.tex @@ -0,0 +1,119 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-MOEO Reference Manual\\[1ex]\large 1.0-beta }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Fri Jul 6 09:41:04 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{Welcome to Paradis\-EO-MOEO } +\label{index}\input{main} +\chapter{Paradis\-EO-MOEO Hierarchical Index} +\input{hierarchy} +\chapter{Paradis\-EO-MOEO Class Index} +\input{annotated} +\chapter{Paradis\-EO-MOEO Class Documentation} +\input{classMOEO} +\include{classmoeoAchievementFitnessAssignment} +\include{classmoeoAdditiveEpsilonBinaryMetric} +\include{classmoeoAggregativeComparator} +\include{classmoeoAlgo} +\include{classmoeoArchive} +\include{classmoeoArchiveObjectiveVectorSavingUpdater} +\include{classmoeoArchiveUpdater} +\include{classmoeoBinaryIndicatorBasedFitnessAssignment} +\include{classmoeoBinaryMetric} +\include{classmoeoBinaryMetricSavingUpdater} +\include{classmoeoBitVector} +\include{classmoeoCombinedLS} +\include{classmoeoComparator} +\include{classmoeoContributionMetric} +\include{classmoeoConvertPopToObjectiveVectors} +\include{classmoeoCriterionBasedFitnessAssignment} +\include{classmoeoCrowdingDiversityAssignment} +\include{classmoeoDetTournamentSelect} +\include{classmoeoDistance} +\include{classmoeoDistanceMatrix} +\include{classmoeoDiversityAssignment} +\include{classmoeoDiversityThenFitnessComparator} +\include{classmoeoDummyDiversityAssignment} +\include{classmoeoDummyFitnessAssignment} +\include{classmoeoEA} +\include{classmoeoEasyEA} +\include{classmoeoEasyEA_1_1eoDummyEval} +\include{classmoeoEasyEA_1_1eoDummySelect} +\include{classmoeoEasyEA_1_1eoDummyTransform} +\include{classmoeoElitistReplacement} +\include{classmoeoElitistReplacement_1_1Cmp} +\include{classmoeoEntropyMetric} +\include{classmoeoEnvironmentalReplacement} +\include{classmoeoEnvironmentalReplacement_1_1Cmp} +\include{classmoeoEuclideanDistance} +\include{classmoeoEvalFunc} +\include{classmoeoExpBinaryIndicatorBasedFitnessAssignment} +\include{classmoeoFastNonDominatedSortingFitnessAssignment} +\include{classmoeoFastNonDominatedSortingFitnessAssignment_1_1ObjectiveComparator} +\include{classmoeoFitnessAssignment} +\include{classmoeoFitnessThenDiversityComparator} +\include{classmoeoFrontByFrontCrowdingDiversityAssignment} +\include{classmoeoFrontByFrontSharingDiversityAssignment} +\include{classmoeoGDominanceObjectiveVectorComparator} +\include{classmoeoGenerationalReplacement} +\include{classmoeoHybridLS} +\include{classmoeoHypervolumeBinaryMetric} +\include{classmoeoIBEA} +\include{classmoeoIndicatorBasedFitnessAssignment} +\include{classmoeoLS} +\include{classmoeoManhattanDistance} +\include{classmoeoMetric} +\include{classmoeoNormalizedDistance} +\include{classmoeoNormalizedSolutionVsSolutionBinaryMetric} +\include{classmoeoNSGA} +\include{classmoeoNSGAII} +\include{classmoeoObjectiveObjectiveVectorComparator} +\include{classmoeoObjectiveVector} +\include{classmoeoObjectiveVectorComparator} +\include{classmoeoObjectiveVectorTraits} +\include{classmoeoOneObjectiveComparator} +\include{classmoeoParetoBasedFitnessAssignment} +\include{classmoeoParetoObjectiveVectorComparator} +\include{classmoeoRandomSelect} +\include{classmoeoRealObjectiveVector} +\include{classmoeoRealVector} +\include{classmoeoReplacement} +\include{classmoeoRouletteSelect} +\include{classmoeoScalarFitnessAssignment} +\include{classmoeoSelectFromPopAndArch} +\include{classmoeoSelectOne} +\include{classmoeoSharingDiversityAssignment} +\include{classmoeoSolutionUnaryMetric} +\include{classmoeoSolutionVsSolutionBinaryMetric} +\include{classmoeoStochTournamentSelect} +\include{classmoeoUnaryIndicatorBasedFitnessAssignment} +\include{classmoeoUnaryMetric} +\include{classmoeoVector} +\include{classmoeoVectorUnaryMetric} +\include{classmoeoVectorVsVectorBinaryMetric} +\printindex +\end{document} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/MOEO.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/MOEO.3 new file mode 100644 index 000000000..abe00ef66 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/MOEO.3 @@ -0,0 +1,253 @@ +.TH "MOEO" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +MOEO \- Base class allowing to represent a solution (an individual) for multi-objective optimization. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBEO< MOEOObjectiveVector >\fP. +.PP +Inherited by \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP, and \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of a solution \fP" +.ti -1c +.RI "typedef MOEOFitness \fBFitness\fP" +.br +.RI "\fIthe fitness type of a solution \fP" +.ti -1c +.RI "typedef MOEODiversity \fBDiversity\fP" +.br +.RI "\fIthe diversity type of a solution \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBMOEO\fP ()" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "virtual \fB~MOEO\fP ()" +.br +.RI "\fIVirtual dtor. \fP" +.ti -1c +.RI "\fBObjectiveVector\fP \fBobjectiveVector\fP () const " +.br +.RI "\fIReturns the objective vector of the current solution. \fP" +.ti -1c +.RI "void \fBobjectiveVector\fP (const \fBObjectiveVector\fP &_objectiveVectorValue)" +.br +.RI "\fISets the objective vector of the current solution. \fP" +.ti -1c +.RI "void \fBinvalidateObjectiveVector\fP ()" +.br +.RI "\fISets the objective vector as invalid. \fP" +.ti -1c +.RI "bool \fBinvalidObjectiveVector\fP () const " +.br +.RI "\fIReturns true if the objective vector is invalid, false otherwise. \fP" +.ti -1c +.RI "\fBFitness\fP \fBfitness\fP () const " +.br +.RI "\fIReturns the fitness value of the current solution. \fP" +.ti -1c +.RI "void \fBfitness\fP (const \fBFitness\fP &_fitnessValue)" +.br +.RI "\fISets the fitness value of the current solution. \fP" +.ti -1c +.RI "void \fBinvalidateFitness\fP ()" +.br +.RI "\fISets the fitness value as invalid. \fP" +.ti -1c +.RI "bool \fBinvalidFitness\fP () const " +.br +.RI "\fIReturns true if the fitness value is invalid, false otherwise. \fP" +.ti -1c +.RI "\fBDiversity\fP \fBdiversity\fP () const " +.br +.RI "\fIReturns the diversity value of the current solution. \fP" +.ti -1c +.RI "void \fBdiversity\fP (const \fBDiversity\fP &_diversityValue)" +.br +.RI "\fISets the diversity value of the current solution. \fP" +.ti -1c +.RI "void \fBinvalidateDiversity\fP ()" +.br +.RI "\fISets the diversity value as invalid. \fP" +.ti -1c +.RI "bool \fBinvalidDiversity\fP () const " +.br +.RI "\fIReturns true if the diversity value is invalid, false otherwise. \fP" +.ti -1c +.RI "void \fBinvalidate\fP ()" +.br +.RI "\fISets the objective vector, the fitness value and the diversity value as invalid. \fP" +.ti -1c +.RI "bool \fBinvalid\fP () const " +.br +.RI "\fIReturns true if the fitness value is invalid, false otherwise. \fP" +.ti -1c +.RI "bool \fBoperator<\fP (const \fBMOEO\fP &_other) const " +.br +.RI "\fIReturns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "virtual std::string \fBclassName\fP () const " +.br +.RI "\fIReturn the class id (the class name as a std::string). \fP" +.ti -1c +.RI "virtual void \fBprintOn\fP (std::ostream &_os) const " +.br +.RI "\fIWriting object. \fP" +.ti -1c +.RI "virtual void \fBreadFrom\fP (std::istream &_is)" +.br +.RI "\fIReading object. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBObjectiveVector\fP \fBobjectiveVectorValue\fP" +.br +.RI "\fIthe objective vector of this solution \fP" +.ti -1c +.RI "bool \fBinvalidObjectiveVectorValue\fP" +.br +.RI "\fItrue if the objective vector is invalid \fP" +.ti -1c +.RI "\fBFitness\fP \fBfitnessValue\fP" +.br +.RI "\fIthe fitness value of this solution \fP" +.ti -1c +.RI "bool \fBinvalidFitnessValue\fP" +.br +.RI "\fItrue if the fitness value is invalid \fP" +.ti -1c +.RI "\fBDiversity\fP \fBdiversityValue\fP" +.br +.RI "\fIthe diversity value of this solution \fP" +.ti -1c +.RI "bool \fBinvalidDiversityValue\fP" +.br +.RI "\fItrue if the diversity value is invalid \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >" +Base class allowing to represent a solution (an individual) for multi-objective optimization. + +The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a \fBmoeoObjectiveVector\fP object). The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). All template arguments must have a void and a copy constructor. Using some specific representations, you will have to define a copy constructor if the default one is not what you want. In the same cases, you will also have to define the affectation operator (operator=). Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. Besides, note that, contrary to the mono-objective case (and to \fBEO\fP) where the fitness value of a solution is confused with its objective value, the fitness value differs of the objectives values in the multi-objective case. +.PP +Definition at line 34 of file MOEO.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector (const \fBObjectiveVector\fP & _objectiveVectorValue)\fC [inline]\fP" +.PP +Sets the objective vector of the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVectorValue\fP the new objective vector +.RE +.PP + +.PP +Definition at line 85 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. +.SS "template void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitness (const \fBFitness\fP & _fitnessValue)\fC [inline]\fP" +.PP +Sets the fitness value of the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessValue\fP the new fitness value +.RE +.PP + +.PP +Definition at line 127 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::fitnessValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidFitnessValue. +.SS "template void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversity (const \fBDiversity\fP & _diversityValue)\fC [inline]\fP" +.PP +Sets the diversity value of the current solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_diversityValue\fP the new diversity value +.RE +.PP + +.PP +Definition at line 169 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::diversityValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidDiversityValue. +.SS "template bool \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator< (const \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity > & _other) const\fC [inline]\fP" +.PP +Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +You should implement another function in the sub-class of \fBMOEO\fP to have another sorting mecanism. +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBMOEO\fP object to compare with +.RE +.PP + +.PP +Definition at line 220 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVector(). +.SS "template virtual void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream & _os) const\fC [inline, virtual]\fP" +.PP +Writing object. +.PP +\fBParameters:\fP +.RS 4 +\fI_os\fP output stream +.RE +.PP + +.PP +Reimplemented from \fBEO< MOEOObjectiveVector >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP, and \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +Definition at line 239 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVector(), and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. +.SS "template virtual void \fBMOEO\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream & _is)\fC [inline, virtual]\fP" +.PP +Reading object. +.PP +\fBParameters:\fP +.RS 4 +\fI_is\fP input stream +.RE +.PP + +.PP +Reimplemented from \fBEO< MOEOObjectiveVector >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >\fP, \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP, and \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +Definition at line 256 of file MOEO.h. +.PP +References MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidateObjectiveVector(), MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::invalidObjectiveVectorValue, and MOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::objectiveVectorValue. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 new file mode 100644 index 000000000..615e6ff2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAchievementFitnessAssignment.3 @@ -0,0 +1,185 @@ +.TH "moeoAchievementFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAchievementFitnessAssignment \- Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoScalarFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP &_reference, std::vector< double > &_lambdas, double _spn=0.0001)" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP &_reference, double _spn=0.0001)" +.br +.RI "\fICtor with default values for lambdas (1/nObjectives). \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). \fP" +.ti -1c +.RI "void \fBsetReference\fP (const \fBObjectiveVector\fP &_reference)" +.br +.RI "\fISets the reference point. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "double \fBinf\fP () const " +.br +.RI "\fIReturns a big value (regarded as infinite). \fP" +.ti -1c +.RI "void \fBcompute\fP (MOEOT &_moeo)" +.br +.RI "\fIComputes the fitness value for a solution. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBObjectiveVector\fP \fBreference\fP" +.br +.RI "\fIthe reference point \fP" +.ti -1c +.RI "std::vector< double > \fBlambdas\fP" +.br +.RI "\fIthe weighted coefficients vector \fP" +.ti -1c +.RI "double \fBspn\fP" +.br +.RI "\fIan arbitrary small positive number (0 < _spn << 1) \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoAchievementFitnessAssignment< MOEOT >" +Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). +.PP +Definition at line 24 of file moeoAchievementFitnessAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP & _reference, std::vector< double > & _lambdas, double _spn = \fC0.0001\fP)\fC [inline]\fP" +.PP +Default ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_reference\fP reference point vector +.br +\fI_lambdas\fP weighted coefficients vector +.br +\fI_spn\fP arbitrary small positive number (0 < _spn << 1) +.RE +.PP + +.PP +Definition at line 38 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::spn. +.SS "template \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::\fBmoeoAchievementFitnessAssignment\fP (\fBObjectiveVector\fP & _reference, double _spn = \fC0.0001\fP)\fC [inline]\fP" +.PP +Ctor with default values for lambdas (1/nObjectives). +.PP +\fBParameters:\fP +.RS 4 +\fI_reference\fP reference point vector +.br +\fI_spn\fP arbitrary small positive number (0 < _spn << 1) +.RE +.PP + +.PP +Definition at line 54 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::lambdas, and moeoAchievementFitnessAssignment< MOEOT >::spn. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 75 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::compute(). +.SS "template void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 89 of file moeoAchievementFitnessAssignment.h. +.SS "template void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::setReference (const \fBObjectiveVector\fP & _reference)\fC [inline]\fP" +.PP +Sets the reference point. +.PP +\fBParameters:\fP +.RS 4 +\fI_reference\fP the new reference point +.RE +.PP + +.PP +Definition at line 99 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::reference. +.SS "template void \fBmoeoAchievementFitnessAssignment\fP< MOEOT >::compute (MOEOT & _moeo)\fC [inline, private]\fP" +.PP +Computes the fitness value for a solution. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo\fP the solution +.RE +.PP + +.PP +Definition at line 128 of file moeoAchievementFitnessAssignment.h. +.PP +References moeoAchievementFitnessAssignment< MOEOT >::inf(), moeoAchievementFitnessAssignment< MOEOT >::lambdas, moeoAchievementFitnessAssignment< MOEOT >::reference, and moeoAchievementFitnessAssignment< MOEOT >::spn. +.PP +Referenced by moeoAchievementFitnessAssignment< MOEOT >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 new file mode 100644 index 000000000..993fdc5bd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAdditiveEpsilonBinaryMetric.3 @@ -0,0 +1,86 @@ +.TH "moeoAdditiveEpsilonBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAdditiveEpsilonBinaryMetric \- Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBoperator()\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2)" +.br +.RI "\fIReturns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "double \fBepsilon\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj)" +.br +.RI "\fIReturns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >" +Additive epsilon binary metric allowing to compare two objective vectors as proposed in Zitzler E., Thiele L., Laumanns M., Fonseca C. + +M., Grunert da Fonseca V.: Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117–132 (2003). +.PP +Definition at line 24 of file moeoAdditiveEpsilonBinaryMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoAdditiveEpsilonBinaryMetric\fP< ObjectiveVector >::operator() (const ObjectiveVector & _o1, const ObjectiveVector & _o2)\fC [inline]\fP" +.PP +Returns the minimal distance by which the objective vector _o1 must be translated in all objectives so that it weakly dominates the objective vector _o2. +.PP +\fBWarning:\fP +.RS 4 +don't forget to set the bounds for every objective before the call of this function +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 35 of file moeoAdditiveEpsilonBinaryMetric.h. +.PP +References moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::epsilon(). +.SS "template double \fBmoeoAdditiveEpsilonBinaryMetric\fP< ObjectiveVector >::epsilon (const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj)\fC [inline, private]\fP" +.PP +Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj so that it dominates the objective vector _o2. +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.br +\fI_obj\fP the index of the objective +.RE +.PP + +.PP +Definition at line 64 of file moeoAdditiveEpsilonBinaryMetric.h. +.PP +References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds. +.PP +Referenced by moeoAdditiveEpsilonBinaryMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 new file mode 100644 index 000000000..05d0ef1ae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAggregativeComparator.3 @@ -0,0 +1,83 @@ +.TH "moeoAggregativeComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAggregativeComparator \- Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoAggregativeComparator\fP (double _weightFitness=1.0, double _weightDiversity=1.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBweightFitness\fP" +.br +.RI "\fIthe weight for fitness \fP" +.ti -1c +.RI "double \fBweightDiversity\fP" +.br +.RI "\fIthe weight for diversity \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoAggregativeComparator< MOEOT >" +Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. +.PP +Definition at line 22 of file moeoAggregativeComparator.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoAggregativeComparator\fP< MOEOT >::\fBmoeoAggregativeComparator\fP (double _weightFitness = \fC1.0\fP, double _weightDiversity = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_weightFitness\fP the weight for fitness +.br +\fI_weightDiversity\fP the weight for diversity +.RE +.PP + +.PP +Definition at line 31 of file moeoAggregativeComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoAggregativeComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 40 of file moeoAggregativeComparator.h. +.PP +References moeoAggregativeComparator< MOEOT >::weightDiversity, and moeoAggregativeComparator< MOEOT >::weightFitness. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAlgo.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAlgo.3 new file mode 100644 index 000000000..226863d9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoAlgo.3 @@ -0,0 +1,23 @@ +.TH "moeoAlgo" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoAlgo \- Abstract class for multi-objective algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherited by \fBmoeoEA< MOEOT >\fP, \fBmoeoLS< MOEOT, Type >\fP, and \fBmoeoLS< MOEOT, MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP +Abstract class for multi-objective algorithms. +.PP +Definition at line 19 of file moeoAlgo.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchive.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchive.3 new file mode 100644 index 000000000..1b5a1e9fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchive.3 @@ -0,0 +1,172 @@ +.TH "moeoArchive" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoArchive \- An archive is a secondary population that stores non-dominated solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoPop< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type of an objective vector for a solution. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoArchive\fP ()" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "\fBmoeoArchive\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > &_comparator)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "bool \fBdominates\fP (const \fBObjectiveVector\fP &_objectiveVector) const " +.br +.RI "\fIReturns true if the current archive dominates _objectiveVector according to the \fBmoeoObjectiveVectorComparator\fP given in the constructor. \fP" +.ti -1c +.RI "bool \fBcontains\fP (const \fBObjectiveVector\fP &_objectiveVector) const " +.br +.RI "\fIReturns true if the current archive already contains a solution with the same objective values than _objectiveVector. \fP" +.ti -1c +.RI "void \fBupdate\fP (const MOEOT &_moeo)" +.br +.RI "\fIUpdates the archive with a given individual _moeo. \fP" +.ti -1c +.RI "void \fBupdate\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIUpdates the archive with a given population _pop. \fP" +.ti -1c +.RI "bool \fBequals\fP (const \fBmoeoArchive\fP< MOEOT > &_arch)" +.br +.RI "\fIReturns true if the current archive contains the same objective vectors than the given archive _arch. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & \fBcomparator\fP" +.br +.RI "\fIThe \fBmoeoObjectiveVectorComparator\fP used to compare solutions. \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > \fBparetoComparator\fP" +.br +.RI "\fIA \fBmoeoObjectiveVectorComparator\fP based on Pareto dominance (used as default). \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoArchive< MOEOT >" +An archive is a secondary population that stores non-dominated solutions. +.PP +Definition at line 24 of file moeoArchive.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoArchive\fP< MOEOT >::\fBmoeoArchive\fP ()\fC [inline]\fP" +.PP +Default ctor. +.PP +The \fBmoeoObjectiveVectorComparator\fP used to compare solutions is based on Pareto dominance +.PP +Definition at line 44 of file moeoArchive.h. +.SS "template \fBmoeoArchive\fP< MOEOT >::\fBmoeoArchive\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & _comparator)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the \fBmoeoObjectiveVectorComparator\fP used to compare solutions +.RE +.PP + +.PP +Definition at line 52 of file moeoArchive.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoeoArchive\fP< MOEOT >::dominates (const \fBObjectiveVector\fP & _objectiveVector) const\fC [inline]\fP" +.PP +Returns true if the current archive dominates _objectiveVector according to the \fBmoeoObjectiveVectorComparator\fP given in the constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector\fP the objective vector to compare with the current archive +.RE +.PP + +.PP +Definition at line 60 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::comparator. +.SS "template bool \fBmoeoArchive\fP< MOEOT >::contains (const \fBObjectiveVector\fP & _objectiveVector) const\fC [inline]\fP" +.PP +Returns true if the current archive already contains a solution with the same objective values than _objectiveVector. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector\fP the objective vector to compare with the current archive +.RE +.PP + +.PP +Definition at line 78 of file moeoArchive.h. +.PP +Referenced by moeoArchive< MOEOT >::equals(). +.SS "template void \fBmoeoArchive\fP< MOEOT >::update (const MOEOT & _moeo)\fC [inline]\fP" +.PP +Updates the archive with a given individual _moeo. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo\fP the given individual +.RE +.PP + +.PP +Definition at line 95 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::comparator. +.PP +Referenced by moeoArchive< MOEOT >::update(). +.SS "template void \fBmoeoArchive\fP< MOEOT >::update (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Updates the archive with a given population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the given population +.RE +.PP + +.PP +Definition at line 138 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::update(). +.SS "template bool \fBmoeoArchive\fP< MOEOT >::equals (const \fBmoeoArchive\fP< MOEOT > & _arch)\fC [inline]\fP" +.PP +Returns true if the current archive contains the same objective vectors than the given archive _arch. +.PP +\fBParameters:\fP +.RS 4 +\fI_arch\fP the given archive +.RE +.PP + +.PP +Definition at line 151 of file moeoArchive.h. +.PP +References moeoArchive< MOEOT >::contains(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 new file mode 100644 index 000000000..1892067ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchiveObjectiveVectorSavingUpdater.3 @@ -0,0 +1,81 @@ +.TH "moeoArchiveObjectiveVectorSavingUpdater" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoArchiveObjectiveVectorSavingUpdater \- This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoArchiveObjectiveVectorSavingUpdater\fP (\fBmoeoArchive\fP< MOEOT > &_arch, const std::string &_filename, bool _count=false, int _id=-1)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fISaves the fitness of the archive's members into the file. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIlocal archive \fP" +.ti -1c +.RI "std::string \fBfilename\fP" +.br +.RI "\fItarget filename \fP" +.ti -1c +.RI "bool \fBcount\fP" +.br +.RI "\fIthis variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated \fP" +.ti -1c +.RI "unsigned int \fBcounter\fP" +.br +.RI "\fIcounter \fP" +.ti -1c +.RI "int \fBid\fP" +.br +.RI "\fIown ID \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoArchiveObjectiveVectorSavingUpdater< MOEOT >" +This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. +.PP +Definition at line 28 of file moeoArchiveObjectiveVectorSavingUpdater.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoArchiveObjectiveVectorSavingUpdater\fP< MOEOT >::\fBmoeoArchiveObjectiveVectorSavingUpdater\fP (\fBmoeoArchive\fP< MOEOT > & _arch, const std::string & _filename, bool _count = \fCfalse\fP, int _id = \fC-1\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_arch\fP local archive +.br +\fI_filename\fP target filename +.br +\fI_count\fP put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated +.br +\fI_id\fP own ID +.RE +.PP + +.PP +Definition at line 39 of file moeoArchiveObjectiveVectorSavingUpdater.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 new file mode 100644 index 000000000..8943e0320 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoArchiveUpdater.3 @@ -0,0 +1,65 @@ +.TH "moeoArchiveUpdater" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoArchiveUpdater \- This class allows to update the archive at each generation with newly found non-dominated solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoArchiveUpdater\fP (\fBmoeoArchive\fP< MOEOT > &_arch, const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIUpdates the archive with newly found non-dominated solutions contained in the main population. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIthe archive of non-dominated solutions \fP" +.ti -1c +.RI "const \fBeoPop\fP< MOEOT > & \fBpop\fP" +.br +.RI "\fIthe main population \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoArchiveUpdater< MOEOT >" +This class allows to update the archive at each generation with newly found non-dominated solutions. +.PP +Definition at line 24 of file moeoArchiveUpdater.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoArchiveUpdater\fP< MOEOT >::\fBmoeoArchiveUpdater\fP (\fBmoeoArchive\fP< MOEOT > & _arch, const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_arch\fP an archive of non-dominated solutions +.br +\fI_pop\fP the main population +.RE +.PP + +.PP +Definition at line 33 of file moeoArchiveUpdater.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..e52a68d35 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoBinaryIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBinaryIndicatorBasedFitnessAssignment \- \fBmoeoIndicatorBasedFitnessAssignment\fP for binary indicators. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoIndicatorBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoBinaryIndicatorBasedFitnessAssignment< MOEOT >" +\fBmoeoIndicatorBasedFitnessAssignment\fP for binary indicators. +.PP +Definition at line 22 of file moeoBinaryIndicatorBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 new file mode 100644 index 000000000..2dba6c225 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryMetric.3 @@ -0,0 +1,27 @@ +.TH "moeoBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBinaryMetric \- Base class for binary metrics. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< A1, A2, R >\fP, and \fBmoeoMetric\fP. +.PP +Inherited by \fBmoeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >\fP, \fBmoeoSolutionVsSolutionBinaryMetric< ObjectiveVector, double >\fP, \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, R >\fP, and \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoBinaryMetric< A1, A2, R >" +Base class for binary metrics. +.PP +Definition at line 36 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 new file mode 100644 index 000000000..f4d2e3640 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBinaryMetricSavingUpdater.3 @@ -0,0 +1,91 @@ +.TH "moeoBinaryMetricSavingUpdater" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBinaryMetricSavingUpdater \- This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe objective vector type of a solution. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoBinaryMetricSavingUpdater\fP (\fBmoeoVectorVsVectorBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const \fBeoPop\fP< MOEOT > &_pop, std::string _filename)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fISaves the metric's value for the current generation. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoVectorVsVectorBinaryMetric\fP< \fBObjectiveVector\fP, double > & \fBmetric\fP" +.br +.RI "\fIbinary metric comparing two Pareto sets \fP" +.ti -1c +.RI "const \fBeoPop\fP< MOEOT > & \fBpop\fP" +.br +.RI "\fImain population \fP" +.ti -1c +.RI "\fBeoPop\fP< MOEOT > \fBoldPop\fP" +.br +.RI "\fI(n-1) population \fP" +.ti -1c +.RI "std::string \fBfilename\fP" +.br +.RI "\fItarget filename \fP" +.ti -1c +.RI "bool \fBfirstGen\fP" +.br +.RI "\fIis it the first generation ? \fP" +.ti -1c +.RI "unsigned int \fBcounter\fP" +.br +.RI "\fIcounter \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoBinaryMetricSavingUpdater< MOEOT >" +This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) with the objective vectors of the population (or archive) of the generation (n-1) into a file. +.PP +Definition at line 28 of file moeoBinaryMetricSavingUpdater.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoBinaryMetricSavingUpdater\fP< MOEOT >::\fBmoeoBinaryMetricSavingUpdater\fP (\fBmoeoVectorVsVectorBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const \fBeoPop\fP< MOEOT > & _pop, std::string _filename)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_metric\fP the binary metric comparing two Pareto sets +.br +\fI_pop\fP the main population +.br +\fI_filename\fP the target filename +.RE +.PP + +.PP +Definition at line 42 of file moeoBinaryMetricSavingUpdater.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBitVector.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBitVector.3 new file mode 100644 index 000000000..9def6e6f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoBitVector.3 @@ -0,0 +1,91 @@ +.TH "moeoBitVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoBitVector \- This class is an implementationeo of a simple bit-valued \fBmoeoVector\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoBitVector\fP (unsigned int _size=0, bool _value=false)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "virtual std::string \fBclassName\fP () const " +.br +.RI "\fIReturns the class name as a std::string. \fP" +.ti -1c +.RI "virtual void \fBprintOn\fP (std::ostream &_os) const " +.br +.RI "\fIWriting object. \fP" +.ti -1c +.RI "virtual void \fBreadFrom\fP (std::istream &_is)" +.br +.RI "\fIReading object. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >" +This class is an implementationeo of a simple bit-valued \fBmoeoVector\fP. +.PP +Definition at line 22 of file moeoBitVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoBitVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::\fBmoeoBitVector\fP (unsigned int _size = \fC0\fP, bool _value = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP Length of vector (default is 0) +.br +\fI_value\fP Initial value of all elements (default is default value of type GeneType) +.RE +.PP + +.PP +Definition at line 37 of file moeoBitVector.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoBitVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn (std::ostream & _os) const\fC [inline, virtual]\fP" +.PP +Writing object. +.PP +\fBParameters:\fP +.RS 4 +\fI_os\fP output stream +.RE +.PP + +.PP +Reimplemented from \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP. +.PP +Definition at line 54 of file moeoBitVector.h. +.SS "template virtual void \fBmoeoBitVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom (std::istream & _is)\fC [inline, virtual]\fP" +.PP +Reading object. +.PP +\fBParameters:\fP +.RS 4 +\fI_is\fP input stream +.RE +.PP + +.PP +Reimplemented from \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >\fP. +.PP +Definition at line 67 of file moeoBitVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 new file mode 100644 index 000000000..ece6ac862 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCombinedLS.3 @@ -0,0 +1,101 @@ +.TH "moeoCombinedLS" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoCombinedLS \- This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoLS< MOEOT, Type >< MOEOT, Type >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoCombinedLS\fP (\fBmoeoLS\fP< MOEOT, Type > &_first_mols)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBadd\fP (\fBmoeoLS\fP< MOEOT, Type > &_mols)" +.br +.RI "\fIAdds a new local search to combine. \fP" +.ti -1c +.RI "void \fBoperator()\fP (Type _type, \fBmoeoArchive\fP< MOEOT > &_arch)" +.br +.RI "\fIGives a new solution in order to explore the neigborhood. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBmoeoLS\fP< MOEOT, Type > * > \fBcombinedLS\fP" +.br +.RI "\fIthe vector that contains the combined LS \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoCombinedLS< MOEOT, Type >" +This class allows to embed a set of local searches that are sequentially applied, and so working and updating the same archive of non-dominated solutions. +.PP +Definition at line 25 of file moeoCombinedLS.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoCombinedLS\fP< MOEOT, Type >::\fBmoeoCombinedLS\fP (\fBmoeoLS\fP< MOEOT, Type > & _first_mols)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_first_mols\fP the first multi-objective local search to add +.RE +.PP + +.PP +Definition at line 33 of file moeoCombinedLS.h. +.PP +References moeoCombinedLS< MOEOT, Type >::combinedLS. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoCombinedLS\fP< MOEOT, Type >::add (\fBmoeoLS\fP< MOEOT, Type > & _mols)\fC [inline]\fP" +.PP +Adds a new local search to combine. +.PP +\fBParameters:\fP +.RS 4 +\fI_mols\fP the multi-objective local search to add +.RE +.PP + +.PP +Definition at line 42 of file moeoCombinedLS.h. +.PP +References moeoCombinedLS< MOEOT, Type >::combinedLS. +.SS "template void \fBmoeoCombinedLS\fP< MOEOT, Type >::operator() (Type _type, \fBmoeoArchive\fP< MOEOT > & _arch)\fC [inline, virtual]\fP" +.PP +Gives a new solution in order to explore the neigborhood. +.PP +The new non-dominated solutions are added to the archive +.PP +\fBParameters:\fP +.RS 4 +\fI_type\fP the object to apply the local search to +.br +\fI_arch\fP the archive of non-dominated solutions +.RE +.PP + +.PP +Implements \fBeoBF< Type, moeoArchive< MOEOT > &, void >\fP. +.PP +Definition at line 53 of file moeoCombinedLS.h. +.PP +References moeoCombinedLS< MOEOT, Type >::combinedLS. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoComparator.3 new file mode 100644 index 000000000..c23eae7c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoComparator.3 @@ -0,0 +1,27 @@ +.TH "moeoComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoComparator \- Functor allowing to compare two solutions. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const MOEOT &, MOEOT &, bool >\fP. +.PP +Inherited by \fBmoeoAggregativeComparator< MOEOT >\fP, \fBmoeoDiversityThenFitnessComparator< MOEOT >\fP, \fBmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator\fP, \fBmoeoFitnessThenDiversityComparator< MOEOT >\fP, and \fBmoeoOneObjectiveComparator< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoComparator< MOEOT >" +Functor allowing to compare two solutions. +.PP +Definition at line 22 of file moeoComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 new file mode 100644 index 000000000..5aa0721ab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoContributionMetric.3 @@ -0,0 +1,129 @@ +.TH "moeoContributionMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoContributionMetric \- The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBoperator()\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "unsigned int \fBcard_C\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the number of solutions both in '_set1' and '_set2'. \fP" +.ti -1c +.RI "unsigned int \fBcard_W\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the number of solutions in '_set1' dominating at least one solution of '_set2'. \fP" +.ti -1c +.RI "unsigned int \fBcard_N\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the number of solutions in '_set1' having no relation of dominance with those from '_set2'. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoContributionMetric< ObjectiveVector >" +The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. + +of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) +.PP +Definition at line 24 of file moeoContributionMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoContributionMetric\fP< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline]\fP" +.PP +Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 33 of file moeoContributionMetric.h. +.PP +References moeoContributionMetric< ObjectiveVector >::card_C(), moeoContributionMetric< ObjectiveVector >::card_N(), and moeoContributionMetric< ObjectiveVector >::card_W(). +.SS "template unsigned int \fBmoeoContributionMetric\fP< ObjectiveVector >::card_C (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline, private]\fP" +.PP +Returns the number of solutions both in '_set1' and '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 54 of file moeoContributionMetric.h. +.PP +Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +.SS "template unsigned int \fBmoeoContributionMetric\fP< ObjectiveVector >::card_W (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline, private]\fP" +.PP +Returns the number of solutions in '_set1' dominating at least one solution of '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 71 of file moeoContributionMetric.h. +.PP +References moeoContributionMetric< ObjectiveVector >::paretoComparator. +.PP +Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). +.SS "template unsigned int \fBmoeoContributionMetric\fP< ObjectiveVector >::card_N (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline, private]\fP" +.PP +Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 89 of file moeoContributionMetric.h. +.PP +References moeoContributionMetric< ObjectiveVector >::paretoComparator. +.PP +Referenced by moeoContributionMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 new file mode 100644 index 000000000..8da73673a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoConvertPopToObjectiveVectors.3 @@ -0,0 +1,47 @@ +.TH "moeoConvertPopToObjectiveVectors" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoConvertPopToObjectiveVectors \- Functor allowing to get a vector of objective vectors from a population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< A1, R >< eoPop< MOEOT >, std::vector< ObjectiveVector > >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const std::vector< ObjectiveVector > \fBoperator()\fP (const \fBeoPop\fP< MOEOT > _pop)" +.br +.RI "\fIReturns a vector of the objective vectors from the population _pop. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoConvertPopToObjectiveVectors< MOEOT, ObjectiveVector >" +Functor allowing to get a vector of objective vectors from a population. +.PP +Definition at line 23 of file moeoConvertPopToObjectiveVectors.h. +.SH "Member Function Documentation" +.PP +.SS "template const std::vector< ObjectiveVector > \fBmoeoConvertPopToObjectiveVectors\fP< MOEOT, ObjectiveVector >::operator() (const \fBeoPop\fP< MOEOT > _pop)\fC [inline]\fP" +.PP +Returns a vector of the objective vectors from the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 31 of file moeoConvertPopToObjectiveVectors.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 new file mode 100644 index 000000000..1042ad029 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCriterionBasedFitnessAssignment.3 @@ -0,0 +1,25 @@ +.TH "moeoCriterionBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoCriterionBasedFitnessAssignment \- \fBmoeoCriterionBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for criterion-based strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoCriterionBasedFitnessAssignment< MOEOT >" +\fBmoeoCriterionBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for criterion-based strategies. +.PP +Definition at line 22 of file moeoCriterionBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 new file mode 100644 index 000000000..efb3498b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoCrowdingDiversityAssignment.3 @@ -0,0 +1,126 @@ +.TH "moeoCrowdingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoCrowdingDiversityAssignment \- Diversity assignment sheme based on crowding proposed in: K. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBinf\fP () const " +.br +.RI "\fIReturns a big value (regarded as infinite). \fP" +.ti -1c +.RI "double \fBtiny\fP () const " +.br +.RI "\fIReturns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIComputes diversity values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Protected Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBsetDistances\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the distance values. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoCrowdingDiversityAssignment< MOEOT >" +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, 'A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II', IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). +.PP +Definition at line 25 of file moeoCrowdingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoCrowdingDiversityAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Computes diversity values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 55 of file moeoCrowdingDiversityAssignment.h. +.PP +References moeoCrowdingDiversityAssignment< MOEOT >::inf(), and moeoCrowdingDiversityAssignment< MOEOT >::setDistances(). +.SS "template void \fBmoeoCrowdingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Implements \fBmoeoDiversityAssignment< MOEOT >\fP. +.PP +Reimplemented in \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 78 of file moeoCrowdingDiversityAssignment.h. +.SS "template virtual void \fBmoeoCrowdingDiversityAssignment\fP< MOEOT >::setDistances (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected, virtual]\fP" +.PP +Sets the distance values. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented in \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 90 of file moeoCrowdingDiversityAssignment.h. +.PP +References moeoCrowdingDiversityAssignment< MOEOT >::inf(). +.PP +Referenced by moeoCrowdingDiversityAssignment< MOEOT >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 new file mode 100644 index 000000000..dcaf2a369 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDetTournamentSelect.3 @@ -0,0 +1,107 @@ +.TH "moeoDetTournamentSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDetTournamentSelect \- Selection strategy that selects ONE individual by deterministic tournament. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > &_comparator, unsigned int _tSize=2)" +.br +.RI "\fIFull Ctor. \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP (unsigned int _tSize=2)" +.br +.RI "\fICtor without comparator. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply the tournament to the given population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomparator\fP" +.br +.RI "\fIthe comparator (used to compare 2 individuals) \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "unsigned int \fBtSize\fP" +.br +.RI "\fIthe number of individuals in the tournament \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDetTournamentSelect< MOEOT >" +Selection strategy that selects ONE individual by deterministic tournament. +.PP +Definition at line 24 of file moeoDetTournamentSelect.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoDetTournamentSelect\fP< MOEOT >::\fBmoeoDetTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > & _comparator, unsigned int _tSize = \fC2\fP)\fC [inline]\fP" +.PP +Full Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the comparator (used to compare 2 individuals) +.br +\fI_tSize\fP the number of individuals in the tournament (default: 2) +.RE +.PP + +.PP +Definition at line 33 of file moeoDetTournamentSelect.h. +.PP +References moeoDetTournamentSelect< MOEOT >::tSize. +.SS "template \fBmoeoDetTournamentSelect\fP< MOEOT >::\fBmoeoDetTournamentSelect\fP (unsigned int _tSize = \fC2\fP)\fC [inline]\fP" +.PP +Ctor without comparator. +.PP +A \fBmoeoFitnessThenDiversityComparator\fP is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_tSize\fP the number of individuals in the tournament (default: 2) +.RE +.PP + +.PP +Definition at line 49 of file moeoDetTournamentSelect.h. +.PP +References moeoDetTournamentSelect< MOEOT >::tSize. +.SH "Member Function Documentation" +.PP +.SS "template const MOEOT& \fBmoeoDetTournamentSelect\fP< MOEOT >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Apply the tournament to the given population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 65 of file moeoDetTournamentSelect.h. +.PP +References moeoDetTournamentSelect< MOEOT >::comparator, and moeoDetTournamentSelect< MOEOT >::tSize. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDistance.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDistance.3 new file mode 100644 index 000000000..03ad058c8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDistance.3 @@ -0,0 +1,93 @@ +.TH "moeoDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDistance \- The base class for distance computation. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const MOEOT &, MOEOT &, Type >\fP. +.PP +Inherited by \fBmoeoNormalizedDistance< MOEOT, Type >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fINothing to do. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (double _min, double _max, unsigned int _obj)" +.br +.RI "\fINothing to do. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (\fBeoRealInterval\fP _realInterval, unsigned int _obj)" +.br +.RI "\fINothing to do. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDistance< MOEOT, Type >" +The base class for distance computation. +.PP +Definition at line 22 of file moeoDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoDistance\fP< MOEOT, Type >::setup (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Nothing to do. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented in \fBmoeoNormalizedDistance< MOEOT, Type >\fP, and \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +Definition at line 30 of file moeoDistance.h. +.SS "template virtual void \fBmoeoDistance\fP< MOEOT, Type >::setup (double _min, double _max, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Nothing to do. +.PP +\fBParameters:\fP +.RS 4 +\fI_min\fP lower bound +.br +\fI_max\fP upper bound +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented in \fBmoeoNormalizedDistance< MOEOT, Type >\fP, and \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +Definition at line 40 of file moeoDistance.h. +.SS "template virtual void \fBmoeoDistance\fP< MOEOT, Type >::setup (\fBeoRealInterval\fP _realInterval, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Nothing to do. +.PP +\fBParameters:\fP +.RS 4 +\fI_realInterval\fP the \fBeoRealInterval\fP object +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented in \fBmoeoNormalizedDistance< MOEOT, Type >\fP, and \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +Definition at line 49 of file moeoDistance.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 new file mode 100644 index 000000000..b773ecc9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDistanceMatrix.3 @@ -0,0 +1,79 @@ +.TH "moeoDistanceMatrix" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDistanceMatrix \- A matrix to compute distances between every pair of individuals contained in a population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< const eoPop< MOEOT > &, void >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoDistanceMatrix\fP (unsigned int _size, \fBmoeoDistance\fP< MOEOT, Type > &_distance)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the distance between every pair of individuals contained in the population _pop. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoDistance\fP< MOEOT, Type > & \fBdistance\fP" +.br +.RI "\fIthe distance to use \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDistanceMatrix< MOEOT, Type >" +A matrix to compute distances between every pair of individuals contained in a population. +.PP +Definition at line 24 of file moeoDistanceMatrix.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoDistanceMatrix\fP< MOEOT, Type >::\fBmoeoDistanceMatrix\fP (unsigned int _size, \fBmoeoDistance\fP< MOEOT, Type > & _distance)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP size for every dimension of the matrix +.br +\fI_distance\fP the distance to use +.RE +.PP + +.PP +Definition at line 37 of file moeoDistanceMatrix.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoDistanceMatrix\fP< MOEOT, Type >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the distance between every pair of individuals contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< const eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 51 of file moeoDistanceMatrix.h. +.PP +References moeoDistanceMatrix< MOEOT, Type >::distance. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 new file mode 100644 index 000000000..624f95504 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDiversityAssignment.3 @@ -0,0 +1,81 @@ +.TH "moeoDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDiversityAssignment \- Functor that sets the diversity values of a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Inherited by \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP, \fBmoeoDummyDiversityAssignment< MOEOT >\fP, and \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)=0" +.br +.RI "\fIUpdates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, MOEOT &_moeo)" +.br +.RI "\fIUpdates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDiversityAssignment< MOEOT >" +Functor that sets the diversity values of a whole population. +.PP +Definition at line 23 of file moeoDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [pure virtual]\fP" +.PP +Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implemented in \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP, \fBmoeoDummyDiversityAssignment< MOEOT >\fP, \fBmoeoFrontByFrontCrowdingDiversityAssignment< MOEOT >\fP, \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP, and \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +Referenced by moeoDiversityAssignment< MOEOT >::updateByDeleting(). +.SS "template void \fBmoeoDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, MOEOT & _moeo)\fC [inline]\fP" +.PP +Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_moeo\fP the individual +.RE +.PP + +.PP +Definition at line 44 of file moeoDiversityAssignment.h. +.PP +References moeoDiversityAssignment< MOEOT >::updateByDeleting(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 new file mode 100644 index 000000000..2a396ab3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDiversityThenFitnessComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoDiversityThenFitnessComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDiversityThenFitnessComparator \- Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDiversityThenFitnessComparator< MOEOT >" +Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. +.PP +Definition at line 22 of file moeoDiversityThenFitnessComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoDiversityThenFitnessComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 31 of file moeoDiversityThenFitnessComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 new file mode 100644 index 000000000..b0b6084ef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDummyDiversityAssignment.3 @@ -0,0 +1,77 @@ +.TH "moeoDummyDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDummyDiversityAssignment \- \fBmoeoDummyDiversityAssignment\fP is a \fBmoeoDiversityAssignment\fP that gives the value '0' as the individual's diversity for a whole population if it is invalid. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the diversity to '0' for every individuals of the population _pop if it is invalid. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDummyDiversityAssignment< MOEOT >" +\fBmoeoDummyDiversityAssignment\fP is a \fBmoeoDiversityAssignment\fP that gives the value '0' as the individual's diversity for a whole population if it is invalid. +.PP +Definition at line 22 of file moeoDummyDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoDummyDiversityAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the diversity to '0' for every individuals of the population _pop if it is invalid. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 34 of file moeoDummyDiversityAssignment.h. +.SS "template void \fBmoeoDummyDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 52 of file moeoDummyDiversityAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 new file mode 100644 index 000000000..5e3695170 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoDummyFitnessAssignment.3 @@ -0,0 +1,77 @@ +.TH "moeoDummyFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoDummyFitnessAssignment \- \fBmoeoDummyFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP that gives the value '0' as the individual's fitness for a whole population if it is invalid. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness to '0' for every individuals of the population _pop if it is invalid. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoDummyFitnessAssignment< MOEOT >" +\fBmoeoDummyFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP that gives the value '0' as the individual's fitness for a whole population if it is invalid. +.PP +Definition at line 22 of file moeoDummyFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoDummyFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness to '0' for every individuals of the population _pop if it is invalid. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 34 of file moeoDummyFitnessAssignment.h. +.SS "template void \fBmoeoDummyFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 52 of file moeoDummyFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEA.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEA.3 new file mode 100644 index 000000000..4e47016a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEA.3 @@ -0,0 +1,27 @@ +.TH "moeoEA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEA \- Abstract class for multi-objective evolutionary algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoAlgo\fP, and \fBeoAlgo< MOEOT >\fP. +.PP +Inherited by \fBmoeoEasyEA< MOEOT >\fP, \fBmoeoIBEA< MOEOT >\fP, \fBmoeoNSGA< MOEOT >\fP, and \fBmoeoNSGAII< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoEA< MOEOT >" +Abstract class for multi-objective evolutionary algorithms. +.PP +Definition at line 23 of file moeoEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 new file mode 100644 index 000000000..27bf6fb2a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA.3 @@ -0,0 +1,283 @@ +.TH "moeoEasyEA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA \- An easy class to design multi-objective evolutionary algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoBreed\fP< MOEOT > &_breed, \fBmoeoReplacement\fP< MOEOT > &_replace, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a breed and merge. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoPopEvalFunc\fP< MOEOT > &_popEval, \fBeoBreed\fP< MOEOT > &_breed, \fBmoeoReplacement\fP< MOEOT > &_replace, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a breed, a merge and a eoPopEval. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoBreed\fP< MOEOT > &_breed, \fBeoMerge\fP< MOEOT > &_merge, \fBeoReduce\fP< MOEOT > &_reduce, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a breed, a merge and a reduce. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoSelect\fP< MOEOT > &_select, \fBeoTransform\fP< MOEOT > &_transform, \fBmoeoReplacement\fP< MOEOT > &_replace, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a select, a transform and a replacement. \fP" +.ti -1c +.RI "\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoSelect\fP< MOEOT > &_select, \fBeoTransform\fP< MOEOT > &_transform, \fBeoMerge\fP< MOEOT > &_merge, \fBeoReduce\fP< MOEOT > &_reduce, \fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityEval, bool _evalFitAndDivBeforeSelection=false)" +.br +.RI "\fICtor taking a select, a transform, a merge and a reduce. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApplies a few generation of evolution to the population _pop. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIthe stopping criteria \fP" +.ti -1c +.RI "\fBeoEvalFunc\fP< MOEOT > & \fBeval\fP" +.br +.RI "\fIthe evaluation functions \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBloopEval\fP" +.br +.RI "\fIto evaluate the whole population \fP" +.ti -1c +.RI "\fBeoPopEvalFunc\fP< MOEOT > & \fBpopEval\fP" +.br +.RI "\fIto evaluate the whole population \fP" +.ti -1c +.RI "\fBeoSelectTransform\fP< MOEOT > \fBselectTransform\fP" +.br +.RI "\fIbreed: a select followed by a transform \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIthe breeder \fP" +.ti -1c +.RI "\fBeoMergeReduce\fP< MOEOT > \fBmergeReduce\fP" +.br +.RI "\fIreplacement: a merge followed by a reduce \fP" +.ti -1c +.RI "\fBmoeoReplacement\fP< MOEOT > & \fBreplace\fP" +.br +.RI "\fIthe replacment strategy \fP" +.ti -1c +.RI "\fBmoeoFitnessAssignment\fP< MOEOT > & \fBfitnessEval\fP" +.br +.RI "\fIthe fitness assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDiversityAssignment\fP< MOEOT > & \fBdiversityEval\fP" +.br +.RI "\fIthe diversity assignment strategy \fP" +.ti -1c +.RI "bool \fBevalFitAndDivBeforeSelection\fP" +.br +.RI "\fIif this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process \fP" +.ti -1c +.RI "\fBmoeoEasyEA::eoDummyEval\fP \fBdummyEval\fP" +.br +.RI "\fIa dummy eval \fP" +.ti -1c +.RI "\fBmoeoEasyEA::eoDummySelect\fP \fBdummySelect\fP" +.br +.RI "\fIa dummy select \fP" +.ti -1c +.RI "\fBmoeoEasyEA::eoDummyTransform\fP \fBdummyTransform\fP" +.br +.RI "\fIa dummy transform \fP" +.ti -1c +.RI "\fBeoNoElitism\fP< MOEOT > \fBdummyMerge\fP" +.br +.RI "\fIa dummy merge \fP" +.ti -1c +.RI "\fBeoTruncate\fP< MOEOT > \fBdummyReduce\fP" +.br +.RI "\fIa dummy reduce \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBeoDummyEval\fP" +.br +.RI "\fIa dummy eval \fP" +.ti -1c +.RI "class \fBeoDummySelect\fP" +.br +.RI "\fIa dummy select \fP" +.ti -1c +.RI "class \fBeoDummyTransform\fP" +.br +.RI "\fIa dummy transform \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >" +An easy class to design multi-objective evolutionary algorithms. +.PP +Definition at line 33 of file moeoEasyEA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoBreed\fP< MOEOT > & _breed, \fBmoeoReplacement\fP< MOEOT > & _replace, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a breed and merge. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_breed\fP the breeder +.br +\fI_replace\fP the replacement strategy +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 47 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoPopEvalFunc\fP< MOEOT > & _popEval, \fBeoBreed\fP< MOEOT > & _breed, \fBmoeoReplacement\fP< MOEOT > & _replace, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a breed, a merge and a eoPopEval. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_popEval\fP the evaluation functions for the whole population +.br +\fI_breed\fP the breeder +.br +\fI_replace\fP the replacement strategy +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 65 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoBreed\fP< MOEOT > & _breed, \fBeoMerge\fP< MOEOT > & _merge, \fBeoReduce\fP< MOEOT > & _reduce, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a breed, a merge and a reduce. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_breed\fP the breeder +.br +\fI_merge\fP the merge scheme +.br +\fI_reduce\fP the reduce scheme +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 84 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoSelect\fP< MOEOT > & _select, \fBeoTransform\fP< MOEOT > & _transform, \fBmoeoReplacement\fP< MOEOT > & _replace, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a select, a transform and a replacement. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_select\fP the selection scheme +.br +\fI_transform\fP the tranformation scheme +.br +\fI_replace\fP the replacement strategy +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 103 of file moeoEasyEA.h. +.SS "template \fBmoeoEasyEA\fP< MOEOT >::\fBmoeoEasyEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoSelect\fP< MOEOT > & _select, \fBeoTransform\fP< MOEOT > & _transform, \fBeoMerge\fP< MOEOT > & _merge, \fBeoReduce\fP< MOEOT > & _reduce, \fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessEval, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = \fCfalse\fP)\fC [inline]\fP" +.PP +Ctor taking a select, a transform, a merge and a reduce. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP the stopping criteria +.br +\fI_eval\fP the evaluation functions +.br +\fI_select\fP the selection scheme +.br +\fI_transform\fP the tranformation scheme +.br +\fI_merge\fP the merge scheme +.br +\fI_reduce\fP the reduce scheme +.br +\fI_fitnessEval\fP the fitness evaluation scheme +.br +\fI_diversityEval\fP the diversity evaluation scheme +.br +\fI_evalFitAndDivBeforeSelection\fP put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process +.RE +.PP + +.PP +Definition at line 123 of file moeoEasyEA.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoEasyEA\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Applies a few generation of evolution to the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 135 of file moeoEasyEA.h. +.PP +References moeoEasyEA< MOEOT >::breed, moeoEasyEA< MOEOT >::continuator, moeoEasyEA< MOEOT >::diversityEval, moeoEasyEA< MOEOT >::evalFitAndDivBeforeSelection, moeoEasyEA< MOEOT >::fitnessEval, moeoEasyEA< MOEOT >::popEval, and moeoEasyEA< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 new file mode 100644 index 000000000..8c633b811 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyEval.3 @@ -0,0 +1,33 @@ +.TH "moeoEasyEA::eoDummyEval" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA::eoDummyEval \- a dummy eval + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoEvalFunc< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (MOEOT &)" +.br +.RI "\fIthe dummy functor \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >::eoDummyEval" +a dummy eval +.PP +Definition at line 200 of file moeoEasyEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 new file mode 100644 index 000000000..262690d20 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummySelect.3 @@ -0,0 +1,33 @@ +.TH "moeoEasyEA::eoDummySelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA::eoDummySelect \- a dummy select + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoSelect< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &, \fBeoPop\fP< MOEOT > &)" +.br +.RI "\fIthe dummy functor \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >::eoDummySelect" +a dummy select +.PP +Definition at line 204 of file moeoEasyEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 new file mode 100644 index 000000000..f617e33d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEasyEA_eoDummyTransform.3 @@ -0,0 +1,33 @@ +.TH "moeoEasyEA::eoDummyTransform" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEasyEA::eoDummyTransform \- a dummy transform + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoTransform< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &)" +.br +.RI "\fIthe dummy functor \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEasyEA< MOEOT >::eoDummyTransform" +a dummy transform +.PP +Definition at line 208 of file moeoEasyEA.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 new file mode 100644 index 000000000..da12f3489 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoElitistReplacement.3 @@ -0,0 +1,163 @@ +.TH "moeoElitistReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoElitistReplacement \- Elitist replacement strategy that consists in keeping the N best individuals. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoReplacement< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIFull constructor. \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment)" +.br +.RI "\fIConstructor without comparator. \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIConstructor without moeoDiversityAssignement. \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment)" +.br +.RI "\fIConstructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_parents, \fBeoPop\fP< MOEOT > &_offspring)" +.br +.RI "\fIReplaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoFitnessAssignment\fP< MOEOT > & \fBfitnessAssignment\fP" +.br +.RI "\fIthe fitness assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDiversityAssignment\fP< MOEOT > & \fBdiversityAssignment\fP" +.br +.RI "\fIthe diversity assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDummyDiversityAssignment\fP< MOEOT > \fBdefaultDiversity\fP" +.br +.RI "\fIa dummy diversity assignment can be used as default \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement::Cmp\fP \fBcomparator\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBCmp\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoElitistReplacement< MOEOT >" +Elitist replacement strategy that consists in keeping the N best individuals. +.PP +Definition at line 26 of file moeoElitistReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Full constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 36 of file moeoElitistReplacement.h. +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment)\fC [inline]\fP" +.PP +Constructor without comparator. +.PP +A moeoFitThenDivComparator is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.RE +.PP + +.PP +Definition at line 46 of file moeoElitistReplacement.h. +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement. +.PP +A dummy diversity is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 56 of file moeoElitistReplacement.h. +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::\fBmoeoElitistReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. +.PP +A moeoFitThenDivComparator and a dummy diversity are used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.RE +.PP + +.PP +Definition at line 66 of file moeoElitistReplacement.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoElitistReplacement\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _parents, \fBeoPop\fP< MOEOT > & _offspring)\fC [inline]\fP" +.PP +Replaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. +.PP +\fBParameters:\fP +.RS 4 +\fI_parents\fP the population composed of the parents (the population you want to replace) +.br +\fI_offspring\fP the offspring population +.RE +.PP + +.PP +Definition at line 76 of file moeoElitistReplacement.h. +.PP +References moeoElitistReplacement< MOEOT >::comparator, moeoElitistReplacement< MOEOT >::diversityAssignment, and moeoElitistReplacement< MOEOT >::fitnessAssignment. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 new file mode 100644 index 000000000..8778368a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoElitistReplacement_Cmp.3 @@ -0,0 +1,57 @@ +.TH "moeoElitistReplacement::Cmp" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoElitistReplacement::Cmp \- this object is used to compare solutions in order to sort the population + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCmp\fP (\fBmoeoComparator\fP< MOEOT > &_comp)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomp\fP" +.br +.RI "\fIthe comparator \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoElitistReplacement< MOEOT >::Cmp" +this object is used to compare solutions in order to sort the population +.PP +Definition at line 105 of file moeoElitistReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoElitistReplacement\fP< MOEOT >::Cmp::Cmp (\fBmoeoComparator\fP< MOEOT > & _comp)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comp\fP the comparator +.RE +.PP + +.PP +Definition at line 112 of file moeoElitistReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 new file mode 100644 index 000000000..507f0b8b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEntropyMetric.3 @@ -0,0 +1,163 @@ +.TH "moeoEntropyMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEntropyMetric \- The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVectorVsVectorBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "double \fBoperator()\fP (const std::vector< ObjectiveVector > &_set1, const std::vector< ObjectiveVector > &_set2)" +.br +.RI "\fIReturns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBremoveDominated\fP (std::vector< ObjectiveVector > &_f)" +.br +.RI "\fIRemoves the dominated individuals contained in _f. \fP" +.ti -1c +.RI "void \fBprenormalize\fP (const std::vector< ObjectiveVector > &_f)" +.br +.RI "\fIPrenormalization. \fP" +.ti -1c +.RI "void \fBnormalize\fP (std::vector< ObjectiveVector > &_f)" +.br +.RI "\fINormalization. \fP" +.ti -1c +.RI "void \fBcomputeUnion\fP (const std::vector< ObjectiveVector > &_f1, const std::vector< ObjectiveVector > &_f2, std::vector< ObjectiveVector > &_f)" +.br +.RI "\fIComputation of the union of _f1 and _f2 in _f. \fP" +.ti -1c +.RI "unsigned int \fBhowManyInNicheOf\fP (const std::vector< ObjectiveVector > &_f, const ObjectiveVector &_s, unsigned int _size)" +.br +.RI "\fIHow many in niche. \fP" +.ti -1c +.RI "double \fBeuclidianDistance\fP (const ObjectiveVector &_set1, const ObjectiveVector &_to, unsigned int _deg=2)" +.br +.RI "\fIEuclidian distance. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "std::vector< double > \fBvect_min_val\fP" +.br +.RI "\fIvector of min values \fP" +.ti -1c +.RI "std::vector< double > \fBvect_max_val\fP" +.br +.RI "\fIvector of max values \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEntropyMetric< ObjectiveVector >" +The entropy gives an idea of the diversity of a Pareto set relatively to another (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. + +of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) +.PP +Definition at line 25 of file moeoEntropyMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoEntropyMetric\fP< ObjectiveVector >::operator() (const std::vector< ObjectiveVector > & _set1, const std::vector< ObjectiveVector > & _set2)\fC [inline]\fP" +.PP +Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2'. +.PP +\fBParameters:\fP +.RS 4 +\fI_set1\fP the first Pareto set +.br +\fI_set2\fP the second Pareto set +.RE +.PP + +.PP +Definition at line 34 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::computeUnion(), moeoEntropyMetric< ObjectiveVector >::howManyInNicheOf(), moeoEntropyMetric< ObjectiveVector >::normalize(), moeoEntropyMetric< ObjectiveVector >::prenormalize(), and moeoEntropyMetric< ObjectiveVector >::removeDominated(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::removeDominated (std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Removes the dominated individuals contained in _f. +.PP +\fBParameters:\fP +.RS 4 +\fI_f\fP a Pareto set +.RE +.PP + +.PP +Definition at line 85 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::paretoComparator. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::prenormalize (const std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Prenormalization. +.PP +\fBParameters:\fP +.RS 4 +\fI_f\fP a Pareto set +.RE +.PP + +.PP +Definition at line 107 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::normalize (std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Normalization. +.PP +\fBParameters:\fP +.RS 4 +\fI_f\fP a Pareto set +.RE +.PP + +.PP +Definition at line 129 of file moeoEntropyMetric.h. +.PP +References moeoEntropyMetric< ObjectiveVector >::vect_max_val, and moeoEntropyMetric< ObjectiveVector >::vect_min_val. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). +.SS "template void \fBmoeoEntropyMetric\fP< ObjectiveVector >::computeUnion (const std::vector< ObjectiveVector > & _f1, const std::vector< ObjectiveVector > & _f2, std::vector< ObjectiveVector > & _f)\fC [inline, private]\fP" +.PP +Computation of the union of _f1 and _f2 in _f. +.PP +\fBParameters:\fP +.RS 4 +\fI_f1\fP the first Pareto set +.br +\fI_f2\fP the second Pareto set +.br +\fI_f\fP the final Pareto set +.RE +.PP + +.PP +Definition at line 142 of file moeoEntropyMetric.h. +.PP +Referenced by moeoEntropyMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 new file mode 100644 index 000000000..0dd3021f3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement.3 @@ -0,0 +1,171 @@ +.TH "moeoEnvironmentalReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEnvironmentalReplacement \- Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoReplacement< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIFull constructor. \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > &_diversityAssignment)" +.br +.RI "\fIConstructor without comparator. \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment, \fBmoeoComparator\fP< MOEOT > &_comparator)" +.br +.RI "\fIConstructor without moeoDiversityAssignement. \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > &_fitnessAssignment)" +.br +.RI "\fIConstructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_parents, \fBeoPop\fP< MOEOT > &_offspring)" +.br +.RI "\fIReplaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoFitnessAssignment\fP< MOEOT > & \fBfitnessAssignment\fP" +.br +.RI "\fIthe fitness assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDiversityAssignment\fP< MOEOT > & \fBdiversityAssignment\fP" +.br +.RI "\fIthe diversity assignment strategy \fP" +.ti -1c +.RI "\fBmoeoDummyDiversityAssignment\fP< MOEOT > \fBdefaultDiversity\fP" +.br +.RI "\fIa dummy diversity assignment can be used as default \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement::Cmp\fP \fBcomparator\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBCmp\fP" +.br +.RI "\fIthis object is used to compare solutions in order to sort the population \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEnvironmentalReplacement< MOEOT >" +Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 and by updating the fitness and diversity values after each deletion. +.PP +Definition at line 26 of file moeoEnvironmentalReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Full constructor. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 40 of file moeoEnvironmentalReplacement.h. +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoDiversityAssignment\fP< MOEOT > & _diversityAssignment)\fC [inline]\fP" +.PP +Constructor without comparator. +.PP +A moeoFitThenDivComparator is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_diversityAssignment\fP the diversity assignment strategy +.RE +.PP + +.PP +Definition at line 50 of file moeoEnvironmentalReplacement.h. +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment, \fBmoeoComparator\fP< MOEOT > & _comparator)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement. +.PP +A dummy diversity is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.br +\fI_comparator\fP the comparator (used to compare 2 individuals) +.RE +.PP + +.PP +Definition at line 60 of file moeoEnvironmentalReplacement.h. +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::\fBmoeoEnvironmentalReplacement\fP (\fBmoeoFitnessAssignment\fP< MOEOT > & _fitnessAssignment)\fC [inline]\fP" +.PP +Constructor without moeoDiversityAssignement nor \fBmoeoComparator\fP. +.PP +A moeoFitThenDivComparator and a dummy diversity are used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_fitnessAssignment\fP the fitness assignment strategy +.RE +.PP + +.PP +Definition at line 70 of file moeoEnvironmentalReplacement.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoEnvironmentalReplacement\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _parents, \fBeoPop\fP< MOEOT > & _offspring)\fC [inline]\fP" +.PP +Replaces the first population by adding the individuals of the second one, sorting with a \fBmoeoComparator\fP and resizing the whole population obtained. +.PP +\fBParameters:\fP +.RS 4 +\fI_parents\fP the population composed of the parents (the population you want to replace) +.br +\fI_offspring\fP the offspring population +.RE +.PP + +.PP +Definition at line 80 of file moeoEnvironmentalReplacement.h. +.PP +References moeoEnvironmentalReplacement< MOEOT >::comparator, moeoEnvironmentalReplacement< MOEOT >::diversityAssignment, and moeoEnvironmentalReplacement< MOEOT >::fitnessAssignment. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 new file mode 100644 index 000000000..002e0b2dd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEnvironmentalReplacement_Cmp.3 @@ -0,0 +1,57 @@ +.TH "moeoEnvironmentalReplacement::Cmp" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEnvironmentalReplacement::Cmp \- this object is used to compare solutions in order to sort the population + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCmp\fP (\fBmoeoComparator\fP< MOEOT > &_comp)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 is greater than _moeo2 according to the comparator _moeo1 the first individual _moeo2 the first individual. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomp\fP" +.br +.RI "\fIthe comparator \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEnvironmentalReplacement< MOEOT >::Cmp" +this object is used to compare solutions in order to sort the population +.PP +Definition at line 121 of file moeoEnvironmentalReplacement.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoEnvironmentalReplacement\fP< MOEOT >::Cmp::Cmp (\fBmoeoComparator\fP< MOEOT > & _comp)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comp\fP the comparator +.RE +.PP + +.PP +Definition at line 128 of file moeoEnvironmentalReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 new file mode 100644 index 000000000..ce8a9d940 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEuclideanDistance.3 @@ -0,0 +1,61 @@ +.TH "moeoEuclideanDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEuclideanDistance \- A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const double \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns the euclidian distance between _moeo1 and _moeo2 in the objective space. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoEuclideanDistance< MOEOT >" +A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and sqrt(nObjectives). +.PP +Definition at line 24 of file moeoEuclideanDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template const double \fBmoeoEuclideanDistance\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns the euclidian distance between _moeo1 and _moeo2 in the objective space. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 37 of file moeoEuclideanDistance.h. +.PP +References moeoNormalizedDistance< MOEOT >::bounds. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 new file mode 100644 index 000000000..5a2358207 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoEvalFunc.3 @@ -0,0 +1,21 @@ +.TH "moeoEvalFunc" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoEvalFunc \- +.SH SYNOPSIS +.br +.PP +Inherits \fBeoEvalFunc< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoEvalFunc< MOEOT >" + +.PP +Definition at line 22 of file moeoEvalFunc.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..7101d8f9b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoExpBinaryIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,223 @@ +.TH "moeoExpBinaryIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoExpBinaryIndicatorBasedFitnessAssignment \- Fitness assignment sheme based on an indicator proposed in: E. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoBinaryIndicatorBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type of objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP (\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.ti -1c +.RI "double \fBupdateByAdding\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec. \fP" +.in -1c +.SS "Protected Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the bounds for every objective using the min and the max value for every objective vector of _pop. \fP" +.ti -1c +.RI "void \fBcomputeValues\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fICompute every indicator value in values (values[i] = I(_v[i], _o)). \fP" +.ti -1c +.RI "void \fBsetFitnesses\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness value of the whple population. \fP" +.ti -1c +.RI "double \fBcomputeFitness\fP (const unsigned int _idx)" +.br +.RI "\fIReturns the fitness value of the _idx th individual of the population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & \fBmetric\fP" +.br +.RI "\fIthe quality indicator \fP" +.ti -1c +.RI "double \fBkappa\fP" +.br +.RI "\fIthe scaling factor \fP" +.ti -1c +.RI "std::vector< std::vector< double > > \fBvalues\fP" +.br +.RI "\fIthe computed indicator values \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >" +Fitness assignment sheme based on an indicator proposed in: E. + +Zitzler, S. Künzli, 'Indicator-Based Selection in Multiobjective Search', Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This strategy is, for instance, used in IBEA. +.PP +Definition at line 29 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::\fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP (\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_metric\fP the quality indicator +.br +\fI_kappa\fP the scaling factor +.RE +.PP + +.PP +Definition at line 42 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 50 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeValues(), moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(), and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 66 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +.SS "template double \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::updateByAdding (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account and returns the fitness value of _objVec. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Definition at line 87 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric. +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::setup (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected]\fP" +.PP +Sets the bounds for every objective using the min and the max value for every objective vector of _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 130 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >::setup(). +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::computeValues (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected]\fP" +.PP +Compute every indicator value in values (values[i] = I(_v[i], _o)). +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 152 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::metric, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +.SS "template void \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::setFitnesses (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected]\fP" +.PP +Sets the fitness value of the whple population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 174 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::computeFitness(). +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::operator()(). +.SS "template double \fBmoeoExpBinaryIndicatorBasedFitnessAssignment\fP< MOEOT >::computeFitness (const unsigned int _idx)\fC [inline, protected]\fP" +.PP +Returns the fitness value of the _idx th individual of the population. +.PP +\fBParameters:\fP +.RS 4 +\fI_idx\fP the index +.RE +.PP + +.PP +Definition at line 187 of file moeoExpBinaryIndicatorBasedFitnessAssignment.h. +.PP +References moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::kappa, and moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::values. +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setFitnesses(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 new file mode 100644 index 000000000..30604d117 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment.3 @@ -0,0 +1,189 @@ +.TH "moeoFastNonDominatedSortingFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFastNonDominatedSortingFitnessAssignment \- Fitness assignment sheme based on Pareto-dominance count proposed in: N. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoParetoBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP ()" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > &_comparator)" +.br +.RI "\fICtor where you can choose your own way to compare objective vectors. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoneObjective\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for mono-objective problems. \fP" +.ti -1c +.RI "void \fBtwoObjectives\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. \fP" +.ti -1c +.RI "void \fBmObjectives\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & \fBcomparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors. \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator\fP \fBobjComparator\fP" +.br +.RI "\fIFunctor allowing to compare two solutions according to their first objective value, then their second, and so on. \fP" +.in -1c +.SS "Classes" + +.in +1c +.ti -1c +.RI "class \fBObjectiveComparator\fP" +.br +.RI "\fIFunctor allowing to compare two solutions according to their first objective value, then their second, and so on. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >" +Fitness assignment sheme based on Pareto-dominance count proposed in: N. + +Srinivas, K. Deb, 'Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms', Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) and in: K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, 'A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II', IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). This strategy is, for instance, used in NSGA and NSGA-II. +.PP +Definition at line 32 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::\fBmoeoFastNonDominatedSortingFitnessAssignment\fP (\fBmoeoObjectiveVectorComparator\fP< \fBObjectiveVector\fP > & _comparator)\fC [inline]\fP" +.PP +Ctor where you can choose your own way to compare objective vectors. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the functor used to compare objective vectors +.RE +.PP + +.PP +Definition at line 51 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the fitness values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 59 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::mObjectives(), and moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::oneObjective(). +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implements \fBmoeoFitnessAssignment< MOEOT >\fP. +.PP +Definition at line 101 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::oneObjective (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private]\fP" +.PP +Sets the fitness values for mono-objective problems. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 143 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::objComparator. +.PP +Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::twoObjectives (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private]\fP" +.PP +Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 165 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SS "template void \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::mObjectives (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private]\fP" +.PP +Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 175 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::comparator. +.PP +Referenced by moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 new file mode 100644 index 000000000..201d05526 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFastNonDominatedSortingFitnessAssignment_ObjectiveComparator.3 @@ -0,0 +1,57 @@ +.TH "moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFastNonDominatedSortingFitnessAssignment::ObjectiveComparator \- Functor allowing to compare two solutions according to their first objective value, then their second, and so on. + +.PP +.SH SYNOPSIS +.br +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveObjectiveVectorComparator\fP< \fBObjectiveVector\fP > \fBcmp\fP" +.br +.RI "\fIthe corresponding comparator for objective vectors \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator" +Functor allowing to compare two solutions according to their first objective value, then their second, and so on. +.PP +Definition at line 121 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT >::ObjectiveComparator::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 129 of file moeoFastNonDominatedSortingFitnessAssignment.h. +.PP +References moeoFastNonDominatedSortingFitnessAssignment< MOEOT >::ObjectiveComparator::cmp. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 new file mode 100644 index 000000000..b8f19b169 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFitnessAssignment.3 @@ -0,0 +1,81 @@ +.TH "moeoFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFitnessAssignment \- Functor that sets the fitness values of a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Inherited by \fBmoeoCriterionBasedFitnessAssignment< MOEOT >\fP, \fBmoeoDummyFitnessAssignment< MOEOT >\fP, \fBmoeoIndicatorBasedFitnessAssignment< MOEOT >\fP, \fBmoeoParetoBasedFitnessAssignment< MOEOT >\fP, and \fBmoeoScalarFitnessAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type for objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)=0" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, MOEOT &_moeo)" +.br +.RI "\fIUpdates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFitnessAssignment< MOEOT >" +Functor that sets the fitness values of a whole population. +.PP +Definition at line 23 of file moeoFitnessAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [pure virtual]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP + +.PP +Implemented in \fBmoeoAchievementFitnessAssignment< MOEOT >\fP, \fBmoeoDummyFitnessAssignment< MOEOT >\fP, \fBmoeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >\fP, and \fBmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >\fP. +.PP +Referenced by moeoFitnessAssignment< MOEOT >::updateByDeleting(). +.SS "template void \fBmoeoFitnessAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, MOEOT & _moeo)\fC [inline]\fP" +.PP +Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_moeo\fP the individual +.RE +.PP + +.PP +Definition at line 44 of file moeoFitnessAssignment.h. +.PP +References moeoFitnessAssignment< MOEOT >::updateByDeleting(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 new file mode 100644 index 000000000..fc187a7e6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFitnessThenDiversityComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoFitnessThenDiversityComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFitnessThenDiversityComparator \- Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFitnessThenDiversityComparator< MOEOT >" +Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. +.PP +Definition at line 22 of file moeoFitnessThenDiversityComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoFitnessThenDiversityComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 31 of file moeoFitnessThenDiversityComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 new file mode 100644 index 000000000..966646c22 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFrontByFrontCrowdingDiversityAssignment.3 @@ -0,0 +1,112 @@ +.TH "moeoFrontByFrontCrowdingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFrontByFrontCrowdingDiversityAssignment \- Diversity assignment sheme based on crowding proposed in: K. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoCrowdingDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetDistances\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the distance values. \fP" +.ti -1c +.RI "unsigned int \fBlastIndex\fP (\fBeoPop\fP< MOEOT > &_pop, unsigned int _start)" +.br +.RI "\fIReturns the index of the last individual having the same fitness value than _pop[_start]. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >" +Diversity assignment sheme based on crowding proposed in: K. + +Deb, A. Pratap, S. Agarwal, T. Meyarivan, 'A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II', IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. +.PP +Definition at line 25 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Reimplemented from \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 40 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.SS "template void \fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT >::setDistances (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private, virtual]\fP" +.PP +Sets the distance values. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented from \fBmoeoCrowdingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 55 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.PP +References moeoCrowdingDiversityAssignment< MOEOT >::inf(), moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::lastIndex(), and moeoCrowdingDiversityAssignment< MOEOT >::tiny(). +.SS "template unsigned int \fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT >::lastIndex (\fBeoPop\fP< MOEOT > & _pop, unsigned int _start)\fC [inline, private]\fP" +.PP +Returns the index of the last individual having the same fitness value than _pop[_start]. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_start\fP the index to start from +.RE +.PP + +.PP +Definition at line 121 of file moeoFrontByFrontCrowdingDiversityAssignment.h. +.PP +Referenced by moeoFrontByFrontCrowdingDiversityAssignment< MOEOT >::setDistances(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 new file mode 100644 index 000000000..c21530d0e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoFrontByFrontSharingDiversityAssignment.3 @@ -0,0 +1,130 @@ +.TH "moeoFrontByFrontSharingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoFrontByFrontSharingDiversityAssignment \- Sharing assignment scheme on the way it is used in NSGA. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSharingDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoFrontByFrontSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=2.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoFrontByFrontSharingDiversityAssignment\fP (double _nicheSize=0.5, double _alpha=2.0)" +.br +.RI "\fICtor with an euclidean distance (with normalized objective values) in the objective space is used as default. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetSimilarities\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets similarities FRONT BY FRONT for every solution contained in the population _pop. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoFrontByFrontSharingDiversityAssignment< MOEOT >" +Sharing assignment scheme on the way it is used in NSGA. +.PP +Definition at line 22 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::\fBmoeoFrontByFrontSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > & _distance, double _nicheSize = \fC0.5\fP, double _alpha = \fC2.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_distance\fP the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) +.br +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 36 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SS "template \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::\fBmoeoFrontByFrontSharingDiversityAssignment\fP (double _nicheSize = \fC0.5\fP, double _alpha = \fC2.0\fP)\fC [inline]\fP" +.PP +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 45 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Reimplemented from \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 56 of file moeoFrontByFrontSharingDiversityAssignment.h. +.SS "template void \fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT >::setSimilarities (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, private, virtual]\fP" +.PP +Sets similarities FRONT BY FRONT for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented from \fBmoeoSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 74 of file moeoFrontByFrontSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::distance, moeoSharingDiversityAssignment< MOEOT >::nicheSize, and moeoSharingDiversityAssignment< MOEOT >::sh(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 new file mode 100644 index 000000000..0507dd666 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoGDominanceObjectiveVectorComparator.3 @@ -0,0 +1,107 @@ +.TH "moeoGDominanceObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoGDominanceObjectiveVectorComparator \- This functor class allows to compare 2 objective vectors according to g-dominance. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVectorComparator< ObjectiveVector >< ObjectiveVector >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoGDominanceObjectiveVectorComparator\fP (ObjectiveVector &_ref)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const bool \fBoperator()\fP (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)" +.br +.RI "\fIReturns true if _objectiveVector1 is g-dominated by _objectiveVector2. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "unsigned int \fBflag\fP (const ObjectiveVector &_objectiveVector)" +.br +.RI "\fIReturns the flag of _objectiveVector according to the reference point. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "ObjectiveVector & \fBref\fP" +.br +.RI "\fIthe reference point \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIPareto comparator. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoGDominanceObjectiveVectorComparator< ObjectiveVector >" +This functor class allows to compare 2 objective vectors according to g-dominance. + +The concept of g-dominance as been introduced in: J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, 'g-dominance: Reference point based dominance' (2007) +.PP +Definition at line 25 of file moeoGDominanceObjectiveVectorComparator.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoGDominanceObjectiveVectorComparator\fP< ObjectiveVector >::\fBmoeoGDominanceObjectiveVectorComparator\fP (ObjectiveVector & _ref)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_ref\fP the reference point +.RE +.PP + +.PP +Definition at line 33 of file moeoGDominanceObjectiveVectorComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoGDominanceObjectiveVectorComparator\fP< ObjectiveVector >::operator() (const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)\fC [inline]\fP" +.PP +Returns true if _objectiveVector1 is g-dominated by _objectiveVector2. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector1\fP the first objective vector +.br +\fI_objectiveVector2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 42 of file moeoGDominanceObjectiveVectorComparator.h. +.PP +References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::flag(), and moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::paretoComparator. +.SS "template unsigned int \fBmoeoGDominanceObjectiveVectorComparator\fP< ObjectiveVector >::flag (const ObjectiveVector & _objectiveVector)\fC [inline, private]\fP" +.PP +Returns the flag of _objectiveVector according to the reference point. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector\fP the first objective vector +.RE +.PP + +.PP +Definition at line 76 of file moeoGDominanceObjectiveVectorComparator.h. +.PP +References moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::ref. +.PP +Referenced by moeoGDominanceObjectiveVectorComparator< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 new file mode 100644 index 000000000..5fb0153d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoGenerationalReplacement.3 @@ -0,0 +1,51 @@ +.TH "moeoGenerationalReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoGenerationalReplacement \- Generational replacement: only the new individuals are preserved. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoReplacement< MOEOT >< MOEOT >\fP, and \fBeoGenerationalReplacement< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_parents, \fBeoPop\fP< MOEOT > &_offspring)" +.br +.RI "\fISwaps _parents and _offspring. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoGenerationalReplacement< MOEOT >" +Generational replacement: only the new individuals are preserved. +.PP +Definition at line 23 of file moeoGenerationalReplacement.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoGenerationalReplacement\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _parents, \fBeoPop\fP< MOEOT > & _offspring)\fC [inline]\fP" +.PP +Swaps _parents and _offspring. +.PP +\fBParameters:\fP +.RS 4 +\fI_parents\fP the parents population +.br +\fI_offspring\fP the offspring population +.RE +.PP + +.PP +Reimplemented from \fBeoGenerationalReplacement< MOEOT >\fP. +.PP +Definition at line 32 of file moeoGenerationalReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 new file mode 100644 index 000000000..ea18560ee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoHybridLS.3 @@ -0,0 +1,77 @@ +.TH "moeoHybridLS" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoHybridLS \- This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoHybridLS\fP (\fBeoContinue\fP< MOEOT > &_term, \fBeoSelect\fP< MOEOT > &_select, \fBmoeoLS\fP< MOEOT, MOEOT > &_mols, \fBmoeoArchive\fP< MOEOT > &_arch)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIApplies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBterm\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoSelect\fP< MOEOT > & \fBselect\fP" +.br +.RI "\fIselector \fP" +.ti -1c +.RI "\fBmoeoLS\fP< MOEOT, MOEOT > & \fBmols\fP" +.br +.RI "\fImulti-objective local search \fP" +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIarchive \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoHybridLS< MOEOT >" +This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive at every generation until a stopping criteria is verified. +.PP +Definition at line 28 of file moeoHybridLS.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoHybridLS\fP< MOEOT >::\fBmoeoHybridLS\fP (\fBeoContinue\fP< MOEOT > & _term, \fBeoSelect\fP< MOEOT > & _select, \fBmoeoLS\fP< MOEOT, MOEOT > & _mols, \fBmoeoArchive\fP< MOEOT > & _arch)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_term\fP stopping criteria +.br +\fI_select\fP selector +.br +\fI_mols\fP a multi-objective local search +.br +\fI_arch\fP the archive +.RE +.PP + +.PP +Definition at line 39 of file moeoHybridLS.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 new file mode 100644 index 000000000..d922d03ea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoHypervolumeBinaryMetric.3 @@ -0,0 +1,120 @@ +.TH "moeoHypervolumeBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoHypervolumeBinaryMetric \- Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoHypervolumeBinaryMetric\fP (double _rho=1.1)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "double \fBoperator()\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2)" +.br +.RI "\fIReturns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "double \fBhypervolume\fP (const ObjectiveVector &_o1, const ObjectiveVector &_o2, const unsigned int _obj, const bool _flag=false)" +.br +.RI "\fIReturns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "double \fBrho\fP" +.br +.RI "\fIvalue used to compute the reference point from the worst values for each objective \fP" +.ti -1c +.RI "\fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector > \fBparetoComparator\fP" +.br +.RI "\fIFunctor to compare two objective vectors according to Pareto dominance relation. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoHypervolumeBinaryMetric< ObjectiveVector >" +Hypervolume binary metric allowing to compare two objective vectors as proposed in Zitzler E., Künzli S. + +: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832–842 (2004). This indicator is based on the hypervolume concept introduced in Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). +.PP +Definition at line 29 of file moeoHypervolumeBinaryMetric.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoHypervolumeBinaryMetric\fP< ObjectiveVector >::\fBmoeoHypervolumeBinaryMetric\fP (double _rho = \fC1.1\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_rho\fP value used to compute the reference point from the worst values for each objective (default : 1.1) +.RE +.PP + +.PP +Definition at line 37 of file moeoHypervolumeBinaryMetric.h. +.PP +References moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +.SH "Member Function Documentation" +.PP +.SS "template double \fBmoeoHypervolumeBinaryMetric\fP< ObjectiveVector >::operator() (const ObjectiveVector & _o1, const ObjectiveVector & _o2)\fC [inline]\fP" +.PP +Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho. +.PP +\fBWarning:\fP +.RS 4 +don't forget to set the bounds for every objective before the call of this function +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 63 of file moeoHypervolumeBinaryMetric.h. +.PP +References moeoHypervolumeBinaryMetric< ObjectiveVector >::hypervolume(), and moeoHypervolumeBinaryMetric< ObjectiveVector >::paretoComparator. +.SS "template double \fBmoeoHypervolumeBinaryMetric\fP< ObjectiveVector >::hypervolume (const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj, const bool _flag = \fCfalse\fP)\fC [inline, private]\fP" +.PP +Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. +.PP +\fBParameters:\fP +.RS 4 +\fI_o1\fP the first objective vector +.br +\fI_o2\fP the second objective vector +.br +\fI_obj\fP the objective index +.br +\fI_flag\fP used for iteration, if _flag=true _o2 is not talen into account (default : false) +.RE +.PP + +.PP +Definition at line 96 of file moeoHypervolumeBinaryMetric.h. +.PP +References moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, double >::bounds, and moeoHypervolumeBinaryMetric< ObjectiveVector >::rho. +.PP +Referenced by moeoHypervolumeBinaryMetric< ObjectiveVector >::operator()(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoIBEA.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoIBEA.3 new file mode 100644 index 000000000..3f5a0347c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoIBEA.3 @@ -0,0 +1,231 @@ +.TH "moeoIBEA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoIBEA \- IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIThe type of objective vector. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fISimple ctor with a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fISimple ctor with a \fBeoTransform\fP. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoQuadOp\fP< MOEOT > &_crossover, double _pCross, \fBeoMonOp\fP< MOEOT > &_mutation, double _pMut, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor with a crossover, a mutation and their corresponding rates. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > &_metric, const double _kappa=0.05)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply a few generation of evolution to the population _pop until the stopping criteria is verified. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoGenContinue\fP< MOEOT > \fBdefaultGenContinuator\fP" +.br +.RI "\fIa continuator based on the number of generations (used as default) \fP" +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBpopEval\fP" +.br +.RI "\fIevaluation function used to evaluate the whole population \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP< MOEOT > \fBselect\fP" +.br +.RI "\fIbinary tournament selection \fP" +.ti -1c +.RI "\fBmoeoIndicatorBasedFitnessAssignment\fP< MOEOT > \fBfitnessAssignment\fP" +.br +.RI "\fIfitness assignment used in IBEA \fP" +.ti -1c +.RI "\fBmoeoDummyDiversityAssignment\fP< MOEOT > \fBdummyDiversityAssignment\fP" +.br +.RI "\fIdummy diversity assignment \fP" +.ti -1c +.RI "\fBmoeoEnvironmentalReplacement\fP< MOEOT > \fBreplace\fP" +.br +.RI "\fIelitist replacement \fP" +.ti -1c +.RI "\fBeoSGAGenOp\fP< MOEOT > \fBdefaultSGAGenOp\fP" +.br +.RI "\fIan object for genetic operators (used as default) \fP" +.ti -1c +.RI "\fBeoGeneralBreeder\fP< MOEOT > \fBgenBreed\fP" +.br +.RI "\fIgeneral breeder \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIbreeder \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoIBEA< MOEOT >" +IBEA (Indicator-Based Evolutionary Algorithm) as described in: E. + +Zitzler, S. Künzli, 'Indicator-Based Selection in Multiobjective Search', Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). This class builds the IBEA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +.PP +Definition at line 38 of file moeoIBEA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 54 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 68 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoQuadOp\fP< MOEOT > & _crossover, double _pCross, \fBeoMonOp\fP< MOEOT > & _mutation, double _pMut, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor with a crossover, a mutation and their corresponding rates. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_crossover\fP crossover +.br +\fI_pCross\fP crossover probability +.br +\fI_mutation\fP mutation +.br +\fI_pMut\fP mutation probability +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 85 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 100 of file moeoIBEA.h. +.SS "template \fBmoeoIBEA\fP< MOEOT >::\fBmoeoIBEA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< \fBObjectiveVector\fP, double > & _metric, const double _kappa = \fC0.05\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_metric\fP metric +.br +\fI_kappa\fP scaling factor kappa +.RE +.PP + +.PP +Definition at line 114 of file moeoIBEA.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoIBEA\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 124 of file moeoIBEA.h. +.PP +References moeoIBEA< MOEOT >::breed, moeoIBEA< MOEOT >::continuator, moeoIBEA< MOEOT >::dummyDiversityAssignment, moeoIBEA< MOEOT >::fitnessAssignment, moeoIBEA< MOEOT >::popEval, and moeoIBEA< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..918e0f1ce --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoIndicatorBasedFitnessAssignment \- \fBmoeoIndicatorBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Indicator-based strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoBinaryIndicatorBasedFitnessAssignment< MOEOT >\fP, and \fBmoeoUnaryIndicatorBasedFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoIndicatorBasedFitnessAssignment< MOEOT >" +\fBmoeoIndicatorBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Indicator-based strategies. +.PP +Definition at line 22 of file moeoIndicatorBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoLS.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoLS.3 new file mode 100644 index 000000000..a1a392b32 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoLS.3 @@ -0,0 +1,29 @@ +.TH "moeoLS" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoLS \- Abstract class for local searches applied to multi-objective optimization. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoAlgo\fP, and \fBeoBF< Type, moeoArchive< MOEOT > &, void >\fP. +.PP +Inherited by \fBmoeoCombinedLS< MOEOT, Type >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoLS< MOEOT, Type >" +Abstract class for local searches applied to multi-objective optimization. + +Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. +.PP +Definition at line 25 of file moeoLS.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 new file mode 100644 index 000000000..4e5bb31c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoManhattanDistance.3 @@ -0,0 +1,61 @@ +.TH "moeoManhattanDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoManhattanDistance \- A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoNormalizedDistance< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const double \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns the Manhattan distance between _moeo1 and _moeo2 in the objective space. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoManhattanDistance< MOEOT >" +A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. + +between 0 and 1). A distance value then lies between 0 and nObjectives. +.PP +Definition at line 24 of file moeoManhattanDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template const double \fBmoeoManhattanDistance\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 37 of file moeoManhattanDistance.h. +.PP +References moeoNormalizedDistance< MOEOT >::bounds. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoMetric.3 new file mode 100644 index 000000000..9336994f0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoMetric \- Base class for performance metrics (also known as quality indicators). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoFunctorBase\fP. +.PP +Inherited by \fBmoeoBinaryMetric< A1, A2, R >\fP, \fBmoeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, double >\fP, \fBmoeoBinaryMetric< const const ObjectiveVector &, ObjectiveVector &, R >\fP, \fBmoeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, double >\fP, \fBmoeoBinaryMetric< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >\fP, \fBmoeoUnaryMetric< A, R >\fP, \fBmoeoUnaryMetric< const ObjectiveVector &, R >\fP, and \fBmoeoUnaryMetric< const std::vector< ObjectiveVector > &, R >\fP. +.PP +.SH "Detailed Description" +.PP +Base class for performance metrics (also known as quality indicators). +.PP +Definition at line 22 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNSGA.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNSGA.3 new file mode 100644 index 000000000..c41f10c24 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNSGA.3 @@ -0,0 +1,213 @@ +.TH "moeoNSGA" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNSGA \- NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fISimple ctor with a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fISimple ctor with a \fBeoTransform\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoQuadOp\fP< MOEOT > &_crossover, double _pCross, \fBeoMonOp\fP< MOEOT > &_mutation, double _pMut, double _nicheSize=0.5)" +.br +.RI "\fICtor with a crossover, a mutation and their corresponding rates. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op, double _nicheSize=0.5)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply a few generation of evolution to the population _pop until the stopping criteria is verified. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoGenContinue\fP< MOEOT > \fBdefaultGenContinuator\fP" +.br +.RI "\fIa continuator based on the number of generations (used as default) \fP" +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBpopEval\fP" +.br +.RI "\fIevaluation function used to evaluate the whole population \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP< MOEOT > \fBselect\fP" +.br +.RI "\fIbinary tournament selection \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT > \fBfitnessAssignment\fP" +.br +.RI "\fIfitness assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoFrontByFrontSharingDiversityAssignment\fP< MOEOT > \fBdiversityAssignment\fP" +.br +.RI "\fIdiversity assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP< MOEOT > \fBreplace\fP" +.br +.RI "\fIelitist replacement \fP" +.ti -1c +.RI "\fBeoSGAGenOp\fP< MOEOT > \fBdefaultSGAGenOp\fP" +.br +.RI "\fIan object for genetic operators (used as default) \fP" +.ti -1c +.RI "\fBeoGeneralBreeder\fP< MOEOT > \fBgenBreed\fP" +.br +.RI "\fIgeneral breeder \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIbreeder \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNSGA< MOEOT >" +NSGA (Non-dominated Sorting Genetic Algorithm) as described in: N. + +Srinivas, K. Deb, 'Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms'. Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). This class builds the NSGA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +.PP +Definition at line 37 of file moeoNSGA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 48 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 61 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoQuadOp\fP< MOEOT > & _crossover, double _pCross, \fBeoMonOp\fP< MOEOT > & _mutation, double _pMut, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor with a crossover, a mutation and their corresponding rates. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_crossover\fP crossover +.br +\fI_pCross\fP crossover probability +.br +\fI_mutation\fP mutation +.br +\fI_pMut\fP mutation probability +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 77 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 91 of file moeoNSGA.h. +.SS "template \fBmoeoNSGA\fP< MOEOT >::\fBmoeoNSGA\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op, double _nicheSize = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.br +\fI_nicheSize\fP niche size +.RE +.PP + +.PP +Definition at line 104 of file moeoNSGA.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoNSGA\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 114 of file moeoNSGA.h. +.PP +References moeoNSGA< MOEOT >::breed, moeoNSGA< MOEOT >::continuator, moeoNSGA< MOEOT >::diversityAssignment, moeoNSGA< MOEOT >::fitnessAssignment, moeoNSGA< MOEOT >::popEval, and moeoNSGA< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 new file mode 100644 index 000000000..362c6f4fa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNSGAII.3 @@ -0,0 +1,203 @@ +.TH "moeoNSGAII" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNSGAII \- NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoEA< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op)" +.br +.RI "\fISimple ctor with a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op)" +.br +.RI "\fISimple ctor with a \fBeoTransform\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoQuadOp\fP< MOEOT > &_crossover, double _pCross, \fBeoMonOp\fP< MOEOT > &_mutation, double _pMut)" +.br +.RI "\fICtor with a crossover, a mutation and their corresponding rates. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoGenOp\fP< MOEOT > &_op)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. \fP" +.ti -1c +.RI "\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > &_continuator, \fBeoEvalFunc\fP< MOEOT > &_eval, \fBeoTransform\fP< MOEOT > &_op)" +.br +.RI "\fICtor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. \fP" +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply a few generation of evolution to the population _pop until the stopping criteria is verified. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBeoGenContinue\fP< MOEOT > \fBdefaultGenContinuator\fP" +.br +.RI "\fIa continuator based on the number of generations (used as default) \fP" +.ti -1c +.RI "\fBeoContinue\fP< MOEOT > & \fBcontinuator\fP" +.br +.RI "\fIstopping criteria \fP" +.ti -1c +.RI "\fBeoPopLoopEval\fP< MOEOT > \fBpopEval\fP" +.br +.RI "\fIevaluation function used to evaluate the whole population \fP" +.ti -1c +.RI "\fBmoeoDetTournamentSelect\fP< MOEOT > \fBselect\fP" +.br +.RI "\fIbinary tournament selection \fP" +.ti -1c +.RI "\fBmoeoFastNonDominatedSortingFitnessAssignment\fP< MOEOT > \fBfitnessAssignment\fP" +.br +.RI "\fIfitness assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoFrontByFrontCrowdingDiversityAssignment\fP< MOEOT > \fBdiversityAssignment\fP" +.br +.RI "\fIdiversity assignment used in NSGA-II \fP" +.ti -1c +.RI "\fBmoeoElitistReplacement\fP< MOEOT > \fBreplace\fP" +.br +.RI "\fIelitist replacement \fP" +.ti -1c +.RI "\fBeoSGAGenOp\fP< MOEOT > \fBdefaultSGAGenOp\fP" +.br +.RI "\fIan object for genetic operators (used as default) \fP" +.ti -1c +.RI "\fBeoGeneralBreeder\fP< MOEOT > \fBgenBreed\fP" +.br +.RI "\fIgeneral breeder \fP" +.ti -1c +.RI "\fBeoBreed\fP< MOEOT > & \fBbreed\fP" +.br +.RI "\fIbreeder \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNSGAII< MOEOT >" +NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: Deb, K., S. + +Agrawal, A. Pratap, and T. Meyarivan : 'A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II'. In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). This class builds the NSGA-II algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. +.PP +Definition at line 37 of file moeoNSGAII.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 47 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Simple ctor with a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 59 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (unsigned int _maxGen, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoQuadOp\fP< MOEOT > & _crossover, double _pCross, \fBeoMonOp\fP< MOEOT > & _mutation, double _pMut)\fC [inline]\fP" +.PP +Ctor with a crossover, a mutation and their corresponding rates. +.PP +\fBParameters:\fP +.RS 4 +\fI_maxGen\fP number of generations before stopping +.br +\fI_eval\fP evaluation function +.br +\fI_crossover\fP crossover +.br +\fI_pCross\fP crossover probability +.br +\fI_mutation\fP mutation +.br +\fI_pMut\fP mutation probability +.RE +.PP + +.PP +Definition at line 74 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoGenOp\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoGenOp\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 87 of file moeoNSGAII.h. +.SS "template \fBmoeoNSGAII\fP< MOEOT >::\fBmoeoNSGAII\fP (\fBeoContinue\fP< MOEOT > & _continuator, \fBeoEvalFunc\fP< MOEOT > & _eval, \fBeoTransform\fP< MOEOT > & _op)\fC [inline]\fP" +.PP +Ctor with a continuator (instead of _maxGen) and a \fBeoTransform\fP. +.PP +\fBParameters:\fP +.RS 4 +\fI_continuator\fP stopping criteria +.br +\fI_eval\fP evaluation function +.br +\fI_op\fP variation operator +.RE +.PP + +.PP +Definition at line 99 of file moeoNSGAII.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoNSGAII\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Apply a few generation of evolution to the population _pop until the stopping criteria is verified. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 109 of file moeoNSGAII.h. +.PP +References moeoNSGAII< MOEOT >::breed, moeoNSGAII< MOEOT >::continuator, moeoNSGAII< MOEOT >::diversityAssignment, moeoNSGAII< MOEOT >::fitnessAssignment, moeoNSGAII< MOEOT >::popEval, and moeoNSGAII< MOEOT >::replace. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 new file mode 100644 index 000000000..aa8fd1387 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNormalizedDistance.3 @@ -0,0 +1,123 @@ +.TH "moeoNormalizedDistance" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNormalizedDistance \- The base class for double distance computation with normalized objective values (i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDistance< MOEOT, Type >< MOEOT, Type >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNormalizedDistance\fP ()" +.br +.RI "\fIDefault ctr. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (double _min, double _max, unsigned int _obj)" +.br +.RI "\fISets the lower bound (_min) and the upper bound (_max) for the objective _obj. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (\fBeoRealInterval\fP _realInterval, unsigned int _obj)" +.br +.RI "\fISets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. \fP" +.in -1c +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static double \fBtiny\fP ()" +.br +.RI "\fIReturns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBeoRealInterval\fP > \fBbounds\fP" +.br +.RI "\fIthe bounds for every objective (bounds[i] = bounds for the objective i) \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNormalizedDistance< MOEOT, Type >" +The base class for double distance computation with normalized objective values (i.e. + +between 0 and 1). +.PP +Definition at line 24 of file moeoNormalizedDistance.h. +.SH "Member Function Documentation" +.PP +.SS "template virtual void \fBmoeoNormalizedDistance\fP< MOEOT, Type >::setup (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets the lower and the upper bounds for every objective using extremes values for solutions contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented from \fBmoeoDistance< MOEOT, Type >\fP. +.PP +Definition at line 59 of file moeoNormalizedDistance.h. +.PP +Referenced by moeoNormalizedDistance< MOEOT >::setup(). +.SS "template virtual void \fBmoeoNormalizedDistance\fP< MOEOT, Type >::setup (double _min, double _max, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +.PP +\fBParameters:\fP +.RS 4 +\fI_min\fP lower bound +.br +\fI_max\fP upper bound +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented from \fBmoeoDistance< MOEOT, Type >\fP. +.PP +Definition at line 83 of file moeoNormalizedDistance.h. +.SS "template virtual void \fBmoeoNormalizedDistance\fP< MOEOT, Type >::setup (\fBeoRealInterval\fP _realInterval, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Sets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. +.PP +\fBParameters:\fP +.RS 4 +\fI_realInterval\fP the \fBeoRealInterval\fP object +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Reimplemented from \fBmoeoDistance< MOEOT, Type >\fP. +.PP +Definition at line 99 of file moeoNormalizedDistance.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 new file mode 100644 index 000000000..105319a8c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoNormalizedSolutionVsSolutionBinaryMetric.3 @@ -0,0 +1,93 @@ +.TH "moeoNormalizedSolutionVsSolutionBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoNormalizedSolutionVsSolutionBinaryMetric \- Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >< ObjectiveVector, R >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP ()" +.br +.RI "\fIDefault ctr for any \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP object. \fP" +.ti -1c +.RI "void \fBsetup\fP (double _min, double _max, unsigned int _obj)" +.br +.RI "\fISets the lower bound (_min) and the upper bound (_max) for the objective _obj. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (\fBeoRealInterval\fP _realInterval, unsigned int _obj)" +.br +.RI "\fISets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. \fP" +.in -1c +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static double \fBtiny\fP ()" +.br +.RI "\fIReturns a very small value that can be used to avoid extreme cases (where the min bound == the max bound). \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBeoRealInterval\fP > \fBbounds\fP" +.br +.RI "\fIthe bounds for every objective (bounds[i] = bounds for the objective i) \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >" +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + +Then, indicator values lie in the interval [-1,1]. Note that you have to set the bounds for every objective before using the operator(). +.PP +Definition at line 26 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< ObjectiveVector, R >::setup (double _min, double _max, unsigned int _obj)\fC [inline]\fP" +.PP +Sets the lower bound (_min) and the upper bound (_max) for the objective _obj. +.PP +\fBParameters:\fP +.RS 4 +\fI_min\fP lower bound +.br +\fI_max\fP upper bound +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Definition at line 50 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. +.PP +Referenced by moeoExpBinaryIndicatorBasedFitnessAssignment< MOEOT >::setup(). +.SS "template virtual void \fBmoeoNormalizedSolutionVsSolutionBinaryMetric\fP< ObjectiveVector, R >::setup (\fBeoRealInterval\fP _realInterval, unsigned int _obj)\fC [inline, virtual]\fP" +.PP +Sets the lower bound and the upper bound for the objective _obj using a \fBeoRealInterval\fP object. +.PP +\fBParameters:\fP +.RS 4 +\fI_realInterval\fP the \fBeoRealInterval\fP object +.br +\fI_obj\fP the objective index +.RE +.PP + +.PP +Definition at line 66 of file moeoNormalizedSolutionVsSolutionBinaryMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 new file mode 100644 index 000000000..6d9e14c6e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveObjectiveVectorComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoObjectiveObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveObjectiveVectorComparator \- Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVectorComparator< ObjectiveVector >< ObjectiveVector >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)" +.br +.RI "\fIReturns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoObjectiveObjectiveVectorComparator< ObjectiveVector >" +Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. +.PP +Definition at line 22 of file moeoObjectiveObjectiveVectorComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoObjectiveObjectiveVectorComparator\fP< ObjectiveVector >::operator() (const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)\fC [inline]\fP" +.PP +Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector1\fP the first objective vector +.br +\fI_objectiveVector2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 31 of file moeoObjectiveObjectiveVectorComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 new file mode 100644 index 000000000..c458a270f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVector.3 @@ -0,0 +1,123 @@ +.TH "moeoObjectiveVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveVector \- Abstract class allowing to represent a solution in the objective space (phenotypic representation). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef ObjectiveVectorTraits \fBTraits\fP" +.br +.RI "\fIThe traits of objective vectors. \fP" +.ti -1c +.RI "typedef ObjectiveVectorType \fBType\fP" +.br +.RI "\fIThe type of an objective value. \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoObjectiveVector\fP (\fBType\fP _value=\fBType\fP())" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoObjectiveVector\fP (std::vector< \fBType\fP > &_v)" +.br +.RI "\fICtor from a vector of Type. \fP" +.in -1c +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static void \fBsetup\fP (unsigned int _nObjectives, std::vector< bool > &_bObjectives)" +.br +.RI "\fI\fBParameters\fP setting (for the objective vector of any solution). \fP" +.ti -1c +.RI "static unsigned int \fBnObjectives\fP ()" +.br +.RI "\fIReturns the number of objectives. \fP" +.ti -1c +.RI "static bool \fBminimizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be minimized. \fP" +.ti -1c +.RI "static bool \fBmaximizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be maximized. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoObjectiveVector< ObjectiveVectorTraits, ObjectiveVectorType >" +Abstract class allowing to represent a solution in the objective space (phenotypic representation). + +The template argument ObjectiveVectorTraits defaults to \fBmoeoObjectiveVectorTraits\fP, but it can be replaced at will by any other class that implements the static functions defined therein. Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. +.PP +Definition at line 25 of file moeoObjectiveVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::\fBmoeoObjectiveVector\fP (std::vector< \fBType\fP > & _v)\fC [inline]\fP" +.PP +Ctor from a vector of Type. +.PP +\fBParameters:\fP +.RS 4 +\fI_v\fP the std::vector < Type > +.RE +.PP + +.PP +Definition at line 46 of file moeoObjectiveVector.h. +.SH "Member Function Documentation" +.PP +.SS "template static void \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::setup (unsigned int _nObjectives, std::vector< bool > & _bObjectives)\fC [inline, static]\fP" +.PP +\fBParameters\fP setting (for the objective vector of any solution). +.PP +\fBParameters:\fP +.RS 4 +\fI_nObjectives\fP the number of objectives +.br +\fI_bObjectives\fP the min/max vector (true = min / false = max) +.RE +.PP + +.PP +Definition at line 55 of file moeoObjectiveVector.h. +.SS "template static bool \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::minimizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be minimized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 74 of file moeoObjectiveVector.h. +.SS "template static bool \fBmoeoObjectiveVector\fP< ObjectiveVectorTraits, ObjectiveVectorType >::maximizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be maximized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 84 of file moeoObjectiveVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 new file mode 100644 index 000000000..9cffe02e6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorComparator.3 @@ -0,0 +1,29 @@ +.TH "moeoObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveVectorComparator \- Abstract class allowing to compare 2 objective vectors. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const const ObjectiveVector &, ObjectiveVector &, bool >\fP. +.PP +Inherited by \fBmoeoGDominanceObjectiveVectorComparator< ObjectiveVector >\fP, \fBmoeoObjectiveObjectiveVectorComparator< ObjectiveVector >\fP, and \fBmoeoParetoObjectiveVectorComparator< ObjectiveVector >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoObjectiveVectorComparator< ObjectiveVector >" +Abstract class allowing to compare 2 objective vectors. + +The template argument ObjectiveVector have to be a \fBmoeoObjectiveVector\fP. +.PP +Definition at line 24 of file moeoObjectiveVectorComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 new file mode 100644 index 000000000..3ef49e0d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoObjectiveVectorTraits.3 @@ -0,0 +1,105 @@ +.TH "moeoObjectiveVectorTraits" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoObjectiveVectorTraits \- A traits class for \fBmoeoObjectiveVector\fP to specify the number of objectives and which ones have to be minimized or maximized. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +.SS "Static Public Member Functions" + +.in +1c +.ti -1c +.RI "static void \fBsetup\fP (unsigned int _nObjectives, std::vector< bool > &_bObjectives)" +.br +.RI "\fI\fBParameters\fP setting. \fP" +.ti -1c +.RI "static unsigned int \fBnObjectives\fP ()" +.br +.RI "\fIReturns the number of objectives. \fP" +.ti -1c +.RI "static bool \fBminimizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be minimized. \fP" +.ti -1c +.RI "static bool \fBmaximizing\fP (unsigned int _i)" +.br +.RI "\fIReturns true if the _ith objective have to be maximized. \fP" +.ti -1c +.RI "static double \fBtolerance\fP ()" +.br +.RI "\fIReturns the tolerance value (to compare solutions). \fP" +.in -1c +.SS "Static Private Attributes" + +.in +1c +.ti -1c +.RI "static unsigned int \fBnObj\fP" +.br +.RI "\fIThe number of objectives. \fP" +.ti -1c +.RI "static std::vector< bool > \fBbObj\fP" +.br +.RI "\fIThe min/max vector. \fP" +.in -1c +.SH "Detailed Description" +.PP +A traits class for \fBmoeoObjectiveVector\fP to specify the number of objectives and which ones have to be minimized or maximized. +.PP +Definition at line 23 of file moeoObjectiveVectorTraits.h. +.SH "Member Function Documentation" +.PP +.SS "static void moeoObjectiveVectorTraits::setup (unsigned int _nObjectives, std::vector< bool > & _bObjectives)\fC [inline, static]\fP" +.PP +\fBParameters\fP setting. +.PP +\fBParameters:\fP +.RS 4 +\fI_nObjectives\fP the number of objectives +.br +\fI_bObjectives\fP the min/max vector (true = min / false = max) +.RE +.PP + +.PP +Definition at line 32 of file moeoObjectiveVectorTraits.h. +.PP +References bObj, and nObj. +.SS "static bool moeoObjectiveVectorTraits::minimizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be minimized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 67 of file moeoObjectiveVectorTraits.h. +.PP +References bObj. +.PP +Referenced by maximizing(). +.SS "static bool moeoObjectiveVectorTraits::maximizing (unsigned int _i)\fC [inline, static]\fP" +.PP +Returns true if the _ith objective have to be maximized. +.PP +\fBParameters:\fP +.RS 4 +\fI_i\fP the index +.RE +.PP + +.PP +Definition at line 80 of file moeoObjectiveVectorTraits.h. +.PP +References minimizing(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 new file mode 100644 index 000000000..85af8098a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoOneObjectiveComparator.3 @@ -0,0 +1,79 @@ +.TH "moeoOneObjectiveComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoOneObjectiveComparator \- Functor allowing to compare two solutions according to one objective. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoComparator< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoOneObjectiveComparator\fP (unsigned int _obj)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const bool \fBoperator()\fP (const MOEOT &_moeo1, const MOEOT &_moeo2)" +.br +.RI "\fIReturns true if _moeo1 < _moeo2 on the obj objective. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "unsigned int \fBobj\fP" +.br +.RI "\fIthe index of objective \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoOneObjectiveComparator< MOEOT >" +Functor allowing to compare two solutions according to one objective. +.PP +Definition at line 22 of file moeoOneObjectiveComparator.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoOneObjectiveComparator\fP< MOEOT >::\fBmoeoOneObjectiveComparator\fP (unsigned int _obj)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_obj\fP the index of objective +.RE +.PP + +.PP +Definition at line 30 of file moeoOneObjectiveComparator.h. +.PP +References moeoOneObjectiveComparator< MOEOT >::obj. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoOneObjectiveComparator\fP< MOEOT >::operator() (const MOEOT & _moeo1, const MOEOT & _moeo2)\fC [inline]\fP" +.PP +Returns true if _moeo1 < _moeo2 on the obj objective. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo1\fP the first solution +.br +\fI_moeo2\fP the second solution +.RE +.PP + +.PP +Definition at line 44 of file moeoOneObjectiveComparator.h. +.PP +References moeoOneObjectiveComparator< MOEOT >::obj. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 new file mode 100644 index 000000000..ac08530a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoParetoBasedFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoParetoBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoParetoBasedFitnessAssignment \- \fBmoeoParetoBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Pareto-based strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoFastNonDominatedSortingFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoParetoBasedFitnessAssignment< MOEOT >" +\fBmoeoParetoBasedFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for Pareto-based strategies. +.PP +Definition at line 22 of file moeoParetoBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 new file mode 100644 index 000000000..6865648d2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoParetoObjectiveVectorComparator.3 @@ -0,0 +1,49 @@ +.TH "moeoParetoObjectiveVectorComparator" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoParetoObjectiveVectorComparator \- This functor class allows to compare 2 objective vectors according to Pareto dominance. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVectorComparator< ObjectiveVector >< ObjectiveVector >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "const bool \fBoperator()\fP (const ObjectiveVector &_objectiveVector1, const ObjectiveVector &_objectiveVector2)" +.br +.RI "\fIReturns true if _objectiveVector1 is dominated by _objectiveVector2. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoParetoObjectiveVectorComparator< ObjectiveVector >" +This functor class allows to compare 2 objective vectors according to Pareto dominance. +.PP +Definition at line 22 of file moeoParetoObjectiveVectorComparator.h. +.SH "Member Function Documentation" +.PP +.SS "template const bool \fBmoeoParetoObjectiveVectorComparator\fP< ObjectiveVector >::operator() (const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2)\fC [inline]\fP" +.PP +Returns true if _objectiveVector1 is dominated by _objectiveVector2. +.PP +\fBParameters:\fP +.RS 4 +\fI_objectiveVector1\fP the first objective vector +.br +\fI_objectiveVector2\fP the second objective vector +.RE +.PP + +.PP +Definition at line 31 of file moeoParetoObjectiveVectorComparator.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 new file mode 100644 index 000000000..280166d61 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRandomSelect.3 @@ -0,0 +1,37 @@ +.TH "moeoRandomSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRandomSelect \- Selection strategy that selects only one element randomly from a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP, and \fBeoRandomSelect< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRandomSelect\fP ()" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIReturn one individual at random by using an \fBeoRandomSelect\fP. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRandomSelect< MOEOT >" +Selection strategy that selects only one element randomly from a whole population. +.PP +Definition at line 23 of file moeoRandomSelect.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 new file mode 100644 index 000000000..ee845140a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRealObjectiveVector.3 @@ -0,0 +1,179 @@ +.TH "moeoRealObjectiveVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRealObjectiveVector \- This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoObjectiveVector< ObjectiveVectorTraits, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRealObjectiveVector\fP (double _value=0.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoRealObjectiveVector\fP (std::vector< double > &_v)" +.br +.RI "\fICtor from a vector of doubles. \fP" +.ti -1c +.RI "bool \fBdominates\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a \fBmoeoObjectiveVectorComparator\fP object to compare solutions). \fP" +.ti -1c +.RI "bool \fBoperator==\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is equal to _other (according to a tolerance value). \fP" +.ti -1c +.RI "bool \fBoperator!=\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is different than _other (according to a tolerance value). \fP" +.ti -1c +.RI "bool \fBoperator<\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "bool \fBoperator>\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "bool \fBoperator<=\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.ti -1c +.RI "bool \fBoperator>=\fP (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > &_other) const " +.br +.RI "\fIReturns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRealObjectiveVector< ObjectiveVectorTraits >" +This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, i.e. + +that an objective value is represented using a double, and this for any objective. +.PP +Definition at line 27 of file moeoRealObjectiveVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::\fBmoeoRealObjectiveVector\fP (std::vector< double > & _v)\fC [inline]\fP" +.PP +Ctor from a vector of doubles. +.PP +\fBParameters:\fP +.RS 4 +\fI_v\fP the std::vector < double > +.RE +.PP + +.PP +Definition at line 45 of file moeoRealObjectiveVector.h. +.SH "Member Function Documentation" +.PP +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::dominates (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector dominates _other according to the Pareto dominance relation (but it's better to use a \fBmoeoObjectiveVectorComparator\fP object to compare solutions). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 54 of file moeoRealObjectiveVector.h. +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator== (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is equal to _other (according to a tolerance value). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 65 of file moeoRealObjectiveVector.h. +.PP +Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator!=(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator!= (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is different than _other (according to a tolerance value). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 82 of file moeoRealObjectiveVector.h. +.PP +References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator< (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 93 of file moeoRealObjectiveVector.h. +.PP +Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<=(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator> (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 105 of file moeoRealObjectiveVector.h. +.PP +Referenced by moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>=(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator<= (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 116 of file moeoRealObjectiveVector.h. +.PP +References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator<(). +.SS "template bool \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits >::operator>= (const \fBmoeoRealObjectiveVector\fP< ObjectiveVectorTraits > & _other) const\fC [inline]\fP" +.PP +Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on (can be usefull for sorting/printing). +.PP +\fBParameters:\fP +.RS 4 +\fI_other\fP the other \fBmoeoRealObjectiveVector\fP object to compare with +.RE +.PP + +.PP +Definition at line 127 of file moeoRealObjectiveVector.h. +.PP +References moeoRealObjectiveVector< ObjectiveVectorTraits >::operator==(), and moeoRealObjectiveVector< ObjectiveVectorTraits >::operator>(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRealVector.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRealVector.3 new file mode 100644 index 000000000..aef8af9a0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRealVector.3 @@ -0,0 +1,53 @@ +.TH "moeoRealVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRealVector \- This class is an implementation of a simple double-valued \fBmoeoVector\fP. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRealVector\fP (unsigned int _size=0, double _value=0.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "virtual std::string \fBclassName\fP () const " +.br +.RI "\fIReturns the class name as a std::string. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRealVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >" +This class is an implementation of a simple double-valued \fBmoeoVector\fP. +.PP +Definition at line 22 of file moeoRealVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoRealVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity >::\fBmoeoRealVector\fP (unsigned int _size = \fC0\fP, double _value = \fC0.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP Length of vector (default is 0) +.br +\fI_value\fP Initial value of all elements (default is default value of type GeneType) +.RE +.PP + +.PP +Definition at line 31 of file moeoRealVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoReplacement.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoReplacement.3 new file mode 100644 index 000000000..7e13533a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoReplacement.3 @@ -0,0 +1,27 @@ +.TH "moeoReplacement" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoReplacement \- Replacement strategy for multi-objective optimization. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoReplacement< MOEOT >\fP. +.PP +Inherited by \fBmoeoElitistReplacement< MOEOT >\fP, \fBmoeoEnvironmentalReplacement< MOEOT >\fP, and \fBmoeoGenerationalReplacement< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoReplacement< MOEOT >" +Replacement strategy for multi-objective optimization. +.PP +Definition at line 22 of file moeoReplacement.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 new file mode 100644 index 000000000..7e2158f48 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoRouletteSelect.3 @@ -0,0 +1,84 @@ +.TH "moeoRouletteSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoRouletteSelect \- Selection strategy that selects ONE individual by using roulette wheel process. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoRouletteSelect\fP (unsigned int _tSize=2)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply the tournament to the given population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "double & \fBtSize\fP" +.br +.RI "\fIsize \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoRouletteSelect< MOEOT >" +Selection strategy that selects ONE individual by using roulette wheel process. + +\fBWarning:\fP +.RS 4 +This selection only uses fitness values (and not diversity values). +.RE +.PP + +.PP +Definition at line 24 of file moeoRouletteSelect.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoRouletteSelect\fP< MOEOT >::\fBmoeoRouletteSelect\fP (unsigned int _tSize = \fC2\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_tSize\fP the number of individuals in the tournament (default: 2) +.RE +.PP + +.PP +Definition at line 32 of file moeoRouletteSelect.h. +.PP +References moeoRouletteSelect< MOEOT >::tSize. +.SH "Member Function Documentation" +.PP +.SS "template const MOEOT& \fBmoeoRouletteSelect\fP< MOEOT >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Apply the tournament to the given population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 48 of file moeoRouletteSelect.h. +.PP +References moeoRouletteSelect< MOEOT >::tSize. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 new file mode 100644 index 000000000..4cb58a840 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoScalarFitnessAssignment.3 @@ -0,0 +1,27 @@ +.TH "moeoScalarFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoScalarFitnessAssignment \- \fBmoeoScalarFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for scalar strategies. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoAchievementFitnessAssignment< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoScalarFitnessAssignment< MOEOT >" +\fBmoeoScalarFitnessAssignment\fP is a \fBmoeoFitnessAssignment\fP for scalar strategies. +.PP +Definition at line 22 of file moeoScalarFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 new file mode 100644 index 000000000..cfd6a0a57 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSelectFromPopAndArch.3 @@ -0,0 +1,105 @@ +.TH "moeoSelectFromPopAndArch" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSelectFromPopAndArch \- Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > &_popSelectOne, \fBmoeoSelectOne\fP< MOEOT > _archSelectOne, \fBmoeoArchive\fP< MOEOT > &_arch, double _ratioFromPop=0.5)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > &_popSelectOne, \fBmoeoArchive\fP< MOEOT > &_arch, double _ratioFromPop=0.5)" +.br +.RI "\fIDefaulr ctor - the archive's selection operator is a random selector. \fP" +.ti -1c +.RI "virtual const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &pop)" +.br +.RI "\fIThe selection process. \fP" +.ti -1c +.RI "virtual void \fBsetup\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISetups some population stats. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoSelectOne\fP< MOEOT > & \fBpopSelectOne\fP" +.br +.RI "\fIThe population's selection operator. \fP" +.ti -1c +.RI "\fBmoeoSelectOne\fP< MOEOT > & \fBarchSelectOne\fP" +.br +.RI "\fIThe archive's selection operator. \fP" +.ti -1c +.RI "\fBmoeoArchive\fP< MOEOT > & \fBarch\fP" +.br +.RI "\fIThe archive. \fP" +.ti -1c +.RI "double \fBratioFromPop\fP" +.br +.RI "\fIThe ratio of selected individuals from the population. \fP" +.ti -1c +.RI "\fBmoeoRandomSelect\fP< MOEOT > \fBrandomSelectOne\fP" +.br +.RI "\fIA random selection operator (used as default for archSelectOne). \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoSelectFromPopAndArch< MOEOT >" +Elitist selection process that consists in choosing individuals in the archive as well as in the current population. +.PP +Definition at line 26 of file moeoSelectFromPopAndArch.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoSelectFromPopAndArch\fP< MOEOT >::\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > & _popSelectOne, \fBmoeoSelectOne\fP< MOEOT > _archSelectOne, \fBmoeoArchive\fP< MOEOT > & _arch, double _ratioFromPop = \fC0.5\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_popSelectOne\fP the population's selection operator +.br +\fI_archSelectOne\fP the archive's selection operator +.br +\fI_arch\fP the archive +.br +\fI_ratioFromPop\fP the ratio of selected individuals from the population +.RE +.PP + +.PP +Definition at line 37 of file moeoSelectFromPopAndArch.h. +.SS "template \fBmoeoSelectFromPopAndArch\fP< MOEOT >::\fBmoeoSelectFromPopAndArch\fP (\fBmoeoSelectOne\fP< MOEOT > & _popSelectOne, \fBmoeoArchive\fP< MOEOT > & _arch, double _ratioFromPop = \fC0.5\fP)\fC [inline]\fP" +.PP +Defaulr ctor - the archive's selection operator is a random selector. +.PP +\fBParameters:\fP +.RS 4 +\fI_popSelectOne\fP the population's selection operator +.br +\fI_arch\fP the archive +.br +\fI_ratioFromPop\fP the ratio of selected individuals from the population +.RE +.PP + +.PP +Definition at line 48 of file moeoSelectFromPopAndArch.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 new file mode 100644 index 000000000..19b48730f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSelectOne.3 @@ -0,0 +1,27 @@ +.TH "moeoSelectOne" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSelectOne \- Selection strategy for multi-objective optimization that selects only one element from a whole population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoSelectOne< MOEOT >\fP. +.PP +Inherited by \fBmoeoDetTournamentSelect< MOEOT >\fP, \fBmoeoRandomSelect< MOEOT >\fP, \fBmoeoRouletteSelect< MOEOT >\fP, \fBmoeoSelectFromPopAndArch< MOEOT >\fP, and \fBmoeoStochTournamentSelect< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoSelectOne< MOEOT >" +Selection strategy for multi-objective optimization that selects only one element from a whole population. +.PP +Definition at line 22 of file moeoSelectOne.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 new file mode 100644 index 000000000..a391bc9c0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSharingDiversityAssignment.3 @@ -0,0 +1,198 @@ +.TH "moeoSharingDiversityAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSharingDiversityAssignment \- Sharing assignment scheme originally porposed by: D. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoDiversityAssignment< MOEOT >< MOEOT >\fP. +.PP +Inherited by \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef MOEOT::ObjectiveVector \fBObjectiveVector\fP" +.br +.RI "\fIthe objective vector type of the solutions \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > &_distance, double _nicheSize=0.5, double _alpha=1.0)" +.br +.RI "\fICtor. \fP" +.ti -1c +.RI "\fBmoeoSharingDiversityAssignment\fP (double _nicheSize=0.5, double _alpha=1.0)" +.br +.RI "\fICtor with an euclidean distance (with normalized objective values) in the objective space is used as default. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets diversity values for every solution contained in the population _pop. \fP" +.ti -1c +.RI "void \fBupdateByDeleting\fP (\fBeoPop\fP< MOEOT > &_pop, \fBObjectiveVector\fP &_objVec)" +.br +.in -1c +.SS "Protected Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBsetSimilarities\fP (\fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fISets similarities for every solution contained in the population _pop. \fP" +.ti -1c +.RI "double \fBsh\fP (double _dist)" +.br +.RI "\fISharing function. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoDistance\fP< MOEOT, double > & \fBdistance\fP" +.br +.RI "\fIthe distance used to compute the neighborhood of solutions \fP" +.ti -1c +.RI "\fBmoeoEuclideanDistance\fP< MOEOT > \fBdefaultDistance\fP" +.br +.RI "\fIeuclidean distancein the objective space (can be used as default) \fP" +.ti -1c +.RI "double \fBnicheSize\fP" +.br +.RI "\fIneighborhood size in terms of radius distance \fP" +.ti -1c +.RI "double \fBalpha\fP" +.br +.RI "\fIparameter used to regulate the shape of the sharing function \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoSharingDiversityAssignment< MOEOT >" +Sharing assignment scheme originally porposed by: D. + +E. Goldberg, 'Genetic Algorithms in Search, Optimization and Machine Learning', Addision-Wesley, MA, USA (1989). +.PP +Definition at line 28 of file moeoSharingDiversityAssignment.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoSharingDiversityAssignment\fP< MOEOT >::\fBmoeoSharingDiversityAssignment\fP (\fBmoeoDistance\fP< MOEOT, double > & _distance, double _nicheSize = \fC0.5\fP, double _alpha = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_distance\fP the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) +.br +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 42 of file moeoSharingDiversityAssignment.h. +.SS "template \fBmoeoSharingDiversityAssignment\fP< MOEOT >::\fBmoeoSharingDiversityAssignment\fP (double _nicheSize = \fC0.5\fP, double _alpha = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_nicheSize\fP neighborhood size in terms of radius distance (closely related to the way the distances are computed) +.br +\fI_alpha\fP parameter used to regulate the shape of the sharing function +.RE +.PP + +.PP +Definition at line 51 of file moeoSharingDiversityAssignment.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoSharingDiversityAssignment\fP< MOEOT >::operator() (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, virtual]\fP" +.PP +Sets diversity values for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Implements \fBeoUF< eoPop< MOEOT > &, void >\fP. +.PP +Definition at line 59 of file moeoSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::setSimilarities(). +.SS "template void \fBmoeoSharingDiversityAssignment\fP< MOEOT >::updateByDeleting (\fBeoPop\fP< MOEOT > & _pop, \fBObjectiveVector\fP & _objVec)\fC [inline, virtual]\fP" +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. +.RE +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.br +\fI_objVec\fP the objective vector +.RE +.PP +\fBWarning:\fP +.RS 4 +NOT IMPLEMENTED, DO NOTHING ! +.RE +.PP + +.PP +Implements \fBmoeoDiversityAssignment< MOEOT >\fP. +.PP +Reimplemented in \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 80 of file moeoSharingDiversityAssignment.h. +.SS "template virtual void \fBmoeoSharingDiversityAssignment\fP< MOEOT >::setSimilarities (\fBeoPop\fP< MOEOT > & _pop)\fC [inline, protected, virtual]\fP" +.PP +Sets similarities for every solution contained in the population _pop. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Reimplemented in \fBmoeoFrontByFrontSharingDiversityAssignment< MOEOT >\fP. +.PP +Definition at line 102 of file moeoSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::distance, and moeoSharingDiversityAssignment< MOEOT >::sh(). +.PP +Referenced by moeoSharingDiversityAssignment< MOEOT >::operator()(). +.SS "template double \fBmoeoSharingDiversityAssignment\fP< MOEOT >::sh (double _dist)\fC [inline, protected]\fP" +.PP +Sharing function. +.PP +\fBParameters:\fP +.RS 4 +\fI_dist\fP the distance value +.RE +.PP + +.PP +Definition at line 125 of file moeoSharingDiversityAssignment.h. +.PP +References moeoSharingDiversityAssignment< MOEOT >::alpha, and moeoSharingDiversityAssignment< MOEOT >::nicheSize. +.PP +Referenced by moeoSharingDiversityAssignment< MOEOT >::setSimilarities(), and moeoFrontByFrontSharingDiversityAssignment< MOEOT >::setSimilarities(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 new file mode 100644 index 000000000..708dfdcb2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSolutionUnaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoSolutionUnaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSolutionUnaryMetric \- Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoUnaryMetric< const ObjectiveVector &, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoSolutionUnaryMetric< ObjectiveVector, R >" +Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. +.PP +Definition at line 43 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 new file mode 100644 index 000000000..d4e11d55c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoSolutionVsSolutionBinaryMetric.3 @@ -0,0 +1,27 @@ +.TH "moeoSolutionVsSolutionBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoSolutionVsSolutionBinaryMetric \- Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoBinaryMetric< A1, A2, R >< const const ObjectiveVector &, ObjectiveVector &, R >\fP. +.PP +Inherited by \fBmoeoNormalizedSolutionVsSolutionBinaryMetric< ObjectiveVector, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoSolutionVsSolutionBinaryMetric< ObjectiveVector, R >" +Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. +.PP +Definition at line 57 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 new file mode 100644 index 000000000..07965ece9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoStochTournamentSelect.3 @@ -0,0 +1,107 @@ +.TH "moeoStochTournamentSelect" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoStochTournamentSelect \- Selection strategy that selects ONE individual by stochastic tournament. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoSelectOne< MOEOT >< MOEOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoStochTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > &_comparator, double _tRate=1.0)" +.br +.RI "\fIFull Ctor. \fP" +.ti -1c +.RI "\fBmoeoStochTournamentSelect\fP (double _tRate=1.0)" +.br +.RI "\fICtor without comparator. \fP" +.ti -1c +.RI "const MOEOT & \fBoperator()\fP (const \fBeoPop\fP< MOEOT > &_pop)" +.br +.RI "\fIApply the tournament to the given population. \fP" +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "\fBmoeoComparator\fP< MOEOT > & \fBcomparator\fP" +.br +.RI "\fIthe comparator (used to compare 2 individuals) \fP" +.ti -1c +.RI "\fBmoeoFitnessThenDiversityComparator\fP< MOEOT > \fBdefaultComparator\fP" +.br +.RI "\fIa fitness then diversity comparator can be used as default \fP" +.ti -1c +.RI "double \fBtRate\fP" +.br +.RI "\fIthe tournament rate \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoStochTournamentSelect< MOEOT >" +Selection strategy that selects ONE individual by stochastic tournament. +.PP +Definition at line 24 of file moeoStochTournamentSelect.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoStochTournamentSelect\fP< MOEOT >::\fBmoeoStochTournamentSelect\fP (\fBmoeoComparator\fP< MOEOT > & _comparator, double _tRate = \fC1.0\fP)\fC [inline]\fP" +.PP +Full Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_comparator\fP the comparator (used to compare 2 individuals) +.br +\fI_tRate\fP the tournament rate +.RE +.PP + +.PP +Definition at line 33 of file moeoStochTournamentSelect.h. +.PP +References moeoStochTournamentSelect< MOEOT >::tRate. +.SS "template \fBmoeoStochTournamentSelect\fP< MOEOT >::\fBmoeoStochTournamentSelect\fP (double _tRate = \fC1.0\fP)\fC [inline]\fP" +.PP +Ctor without comparator. +.PP +A \fBmoeoFitnessThenDiversityComparator\fP is used as default. +.PP +\fBParameters:\fP +.RS 4 +\fI_tRate\fP the tournament rate +.RE +.PP + +.PP +Definition at line 53 of file moeoStochTournamentSelect.h. +.PP +References moeoStochTournamentSelect< MOEOT >::tRate. +.SH "Member Function Documentation" +.PP +.SS "template const MOEOT& \fBmoeoStochTournamentSelect\fP< MOEOT >::operator() (const \fBeoPop\fP< MOEOT > & _pop)\fC [inline]\fP" +.PP +Apply the tournament to the given population. +.PP +\fBParameters:\fP +.RS 4 +\fI_pop\fP the population +.RE +.PP + +.PP +Definition at line 73 of file moeoStochTournamentSelect.h. +.PP +References moeoStochTournamentSelect< MOEOT >::comparator, and moeoStochTournamentSelect< MOEOT >::tRate. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 new file mode 100644 index 000000000..350727dd2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoUnaryIndicatorBasedFitnessAssignment.3 @@ -0,0 +1,25 @@ +.TH "moeoUnaryIndicatorBasedFitnessAssignment" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoUnaryIndicatorBasedFitnessAssignment \- \fBmoeoIndicatorBasedFitnessAssignment\fP for unary indicators. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoIndicatorBasedFitnessAssignment< MOEOT >< MOEOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoUnaryIndicatorBasedFitnessAssignment< MOEOT >" +\fBmoeoIndicatorBasedFitnessAssignment\fP for unary indicators. +.PP +Definition at line 22 of file moeoUnaryIndicatorBasedFitnessAssignment.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 new file mode 100644 index 000000000..202360b62 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoUnaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoUnaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoUnaryMetric \- Base class for unary metrics. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoUF< A, R >\fP, and \fBmoeoMetric\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoUnaryMetric< A, R >" +Base class for unary metrics. +.PP +Definition at line 29 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVector.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVector.3 new file mode 100644 index 000000000..2179ad125 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVector.3 @@ -0,0 +1,137 @@ +.TH "moeoVector" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoVector \- Base class for fixed length chromosomes, just derives from \fBMOEO\fP and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +.SS "Public Types" + +.in +1c +.ti -1c +.RI "typedef GeneType \fBAtomType\fP" +.br +.RI "\fIthe atomic type \fP" +.ti -1c +.RI "typedef std::vector< GeneType > \fBContainerType\fP" +.br +.RI "\fIthe container type \fP" +.in -1c +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBmoeoVector\fP (unsigned int _size=0, GeneType _value=GeneType())" +.br +.RI "\fIDefault ctor. \fP" +.ti -1c +.RI "void \fBvalue\fP (const std::vector< GeneType > &_v)" +.br +.RI "\fIWe can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. \fP" +.ti -1c +.RI "bool \fBoperator<\fP (const \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > &_moeo) const " +.br +.RI "\fITo avoid conflicts between \fBMOEO::operator<\fP and std::vector::operator<. \fP" +.ti -1c +.RI "virtual void \fBprintOn\fP (std::ostream &_os) const " +.br +.RI "\fIWriting object. \fP" +.ti -1c +.RI "virtual void \fBreadFrom\fP (std::istream &_is)" +.br +.RI "\fIReading object. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >" +Base class for fixed length chromosomes, just derives from \fBMOEO\fP and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + +GeneType must have the following methods: void ctor (needed for the std::vector<>), copy ctor. +.PP +Definition at line 25 of file moeoVector.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::\fBmoeoVector\fP (unsigned int _size = \fC0\fP, GeneType _value = \fCGeneType()\fP)\fC [inline]\fP" +.PP +Default ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_size\fP Length of vector (default is 0) +.br +\fI_value\fP Initial value of all elements (default is default value of type GeneType) +.RE +.PP + +.PP +Definition at line 47 of file moeoVector.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::value (const std::vector< GeneType > & _v)\fC [inline]\fP" +.PP +We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. +.PP +\fBParameters:\fP +.RS 4 +\fI_v\fP a vector of GeneType +.RE +.PP + +.PP +Definition at line 56 of file moeoVector.h. +.SS "template bool \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::operator< (const \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType > & _moeo) const\fC [inline]\fP" +.PP +To avoid conflicts between \fBMOEO::operator<\fP and std::vector::operator<. +.PP +\fBParameters:\fP +.RS 4 +\fI_moeo\fP the object to compare with +.RE +.PP + +.PP +Definition at line 79 of file moeoVector.h. +.SS "template virtual void \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::printOn (std::ostream & _os) const\fC [inline, virtual]\fP" +.PP +Writing object. +.PP +\fBParameters:\fP +.RS 4 +\fI_os\fP output stream +.RE +.PP + +.PP +Reimplemented from \fBMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Definition at line 89 of file moeoVector.h. +.SS "template virtual void \fBmoeoVector\fP< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType >::readFrom (std::istream & _is)\fC [inline, virtual]\fP" +.PP +Reading object. +.PP +\fBParameters:\fP +.RS 4 +\fI_is\fP input stream +.RE +.PP + +.PP +Reimplemented from \fBMOEO< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Reimplemented in \fBmoeoBitVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity >\fP. +.PP +Definition at line 102 of file moeoVector.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 new file mode 100644 index 000000000..a98812e26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVectorUnaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoVectorUnaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoVectorUnaryMetric \- Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoUnaryMetric< const std::vector< ObjectiveVector > &, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoVectorUnaryMetric< ObjectiveVector, R >" +Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors). +.PP +Definition at line 50 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 new file mode 100644 index 000000000..b2e289fd9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/man/man3/moeoVectorVsVectorBinaryMetric.3 @@ -0,0 +1,25 @@ +.TH "moeoVectorVsVectorBinaryMetric" 3 "6 Jul 2007" "Version 1.0-beta" "ParadisEO-MOEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +moeoVectorVsVectorBinaryMetric \- Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBmoeoBinaryMetric< A1, A2, R >< const const std::vector< ObjectiveVector > &, std::vector< ObjectiveVector > &, R >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class moeoVectorVsVectorBinaryMetric< ObjectiveVector, R >" +Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors). +.PP +Definition at line 64 of file moeoMetric.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-MOEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/moeo.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/moeo.doxyfile new file mode 100644 index 000000000..ae4b5256f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/doc/moeo.doxyfile @@ -0,0 +1,237 @@ +# Doxyfile 1.5.1 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = ParadisEO-MOEO +PROJECT_NUMBER = 1.0-beta +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . ../src +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = moeo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../paradiseo-eo/doc/eo.doxytag=http://eodev.sourceforge.net/eo/doc/html +GENERATE_TAGFILE = moeo.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/moeo-conf.cmake b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/moeo-conf.cmake new file mode 100644 index 000000000..dda17efce --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/moeo-conf.cmake @@ -0,0 +1,32 @@ + +###################################################################################### +###################################################################################### +### In this file, you can specify many CMake variables used to build paradisEO-MOEO. +### For example, if you don't want ot give the EO path each time on the command line, +### uncomment the line the "SET(EO_DIR...)" and set your path. +### The section numbers are the same as those used in the CMakeLists.txt file. +###################################################################################### +###################################################################################### + +###################################################################################### +### 3) OPTIONNAL - Overwrite default paths +###################################################################################### + +# SET(MOEO_DIR "" CACHE PATH "ParadisEO-MOEO main directory") +# SET(EO_DIR "" CACHE PATH "ParadisEO-EO main directory") + +# SET(EO_SRC_DIR "") +# SET(MOEO_SRC_DIR "") +# SET(MOEO_DOC_DIR "") + +###################################################################################### + + +##################################################################################### +### 5) OPTIONNAL - Overwrite subdirs +###################################################################################### + +# SUBDIRS(doc src tutorial) + +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/CMakeLists.txt new file mode 100644 index 000000000..93f0fac3c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/CMakeLists.txt @@ -0,0 +1,80 @@ + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Define your target(s): just the moeo lib here. +###################################################################################### + +SET(MOEO_LIB_OUTPUT_PATH ${ParadisEO-MOEO_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${MOEO_LIB_OUTPUT_PATH}) + +SET (MOEO_SOURCES core/moeoObjectiveVectorTraits.cpp) + +# --> UNIX +IF(UNIX) + ADD_LIBRARY(moeo STATIC ${MOEO_SOURCES}) + +# --> WIN +ELSEIF(WIN32) + ADD_LIBRARY(moeo STATIC ${MOEO_SOURCES}) + +ENDIF(UNIX) +###################################################################################### + + +###################################################################################### +### 3) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(MOEO_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(moeo PROPERTIES VERSION "${MOEO_VERSION}") +###################################################################################### + + +###################################################################################### +### 4) Link the librairies for your target(s) +###################################################################################### + +# No library required + +###################################################################################### + + +###################################################################################### +### 5) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + +###################################################################################### +### 6) Where must cmake go now ? +###################################################################################### + +# nothing to be compiled in the subdirs + +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoAlgo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoAlgo.h new file mode 100644 index 000000000..0bc47ee8a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoAlgo.h @@ -0,0 +1,21 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAlgo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOALGO_H_ +#define MOEOALGO_H_ + +/** + * Abstract class for multi-objective algorithms. + */ +class moeoAlgo {}; + +#endif /*MOEOALGO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoCombinedLS.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoCombinedLS.h new file mode 100644 index 000000000..78b5b55a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoCombinedLS.h @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoCombinedLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCOMBINEDLS_H_ +#define MOEOCOMBINEDLS_H_ + +#include +#include +#include + +/** + * This class allows to embed a set of local searches that are sequentially applied, + * and so working and updating the same archive of non-dominated solutions. + */ +template < class MOEOT, class Type > +class moeoCombinedLS : public moeoLS < MOEOT, Type > +{ +public: + + /** + * Ctor + * @param _first_mols the first multi-objective local search to add + */ + moeoCombinedLS(moeoLS < MOEOT, Type > & _first_mols) + { + combinedLS.push_back (& _first_mols); + } + + /** + * Adds a new local search to combine + * @param _mols the multi-objective local search to add + */ + void add(moeoLS < MOEOT, Type > & _mols) + { + combinedLS.push_back(& _mols); + } + + /** + * Gives a new solution in order to explore the neigborhood. + * The new non-dominated solutions are added to the archive + * @param _type the object to apply the local search to + * @param _arch the archive of non-dominated solutions + */ + void operator () (Type _type, moeoArchive < MOEOT > & _arch) + { + for (unsigned int i=0; i operator()(_type, _arch); + } + + +private: + + /** the vector that contains the combined LS */ + std::vector< moeoLS < MOEOT, Type > * > combinedLS; + +}; + +#endif /*MOEOCOMBINEDLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoEA.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoEA.h new file mode 100644 index 000000000..d01264cec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoEA.h @@ -0,0 +1,25 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEA_H_ +#define MOEOEA_H_ + +#include +#include + +/** + * Abstract class for multi-objective evolutionary algorithms. + */ +template < class MOEOT > +class moeoEA : public moeoAlgo, public eoAlgo < MOEOT > {}; + +#endif /*MOEOEA_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoEasyEA.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoEasyEA.h new file mode 100755 index 000000000..883a95e76 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoEasyEA.h @@ -0,0 +1,218 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEasyEA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef _MOEOEASYEA_H +#define _MOEOEASYEA_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * An easy class to design multi-objective evolutionary algorithms. + */ +template < class MOEOT > +class moeoEasyEA: public moeoEA < MOEOT > +{ +public: + + /** + * Ctor taking a breed and merge. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _breed the breeder + * @param _replace the replacement strategy + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval (_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a breed, a merge and a eoPopEval. + * @param _continuator the stopping criteria + * @param _popEval the evaluation functions for the whole population + * @param _breed the breeder + * @param _replace the replacement strategy + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoPopEvalFunc < MOEOT > & _popEval, eoBreed < MOEOT > & _breed, moeoReplacement < MOEOT > & _replace, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval (dummyEval), loopEval(dummyEval), popEval(_popEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(dummyMerge, dummyReduce), replace(_replace), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a breed, a merge and a reduce. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _breed the breeder + * @param _merge the merge scheme + * @param _reduce the reduce scheme + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoBreed < MOEOT > & _breed, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(dummySelect, dummyTransform), breed(_breed), mergeReduce(_merge,_reduce), replace(mergeReduce), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a select, a transform and a replacement. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _select the selection scheme + * @param _transform the tranformation scheme + * @param _replace the replacement strategy + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, moeoReplacement < MOEOT > & _replace, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(dummyMerge, dummyReduce), replace(_replace), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Ctor taking a select, a transform, a merge and a reduce. + * @param _continuator the stopping criteria + * @param _eval the evaluation functions + * @param _select the selection scheme + * @param _transform the tranformation scheme + * @param _merge the merge scheme + * @param _reduce the reduce scheme + * @param _fitnessEval the fitness evaluation scheme + * @param _diversityEval the diversity evaluation scheme + * @param _evalFitAndDivBeforeSelection put this parameter to 'true' if you want to re-evalue the fitness and the diversity of the population before the selection process + */ + moeoEasyEA(eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoSelect < MOEOT > & _select, eoTransform < MOEOT > & _transform, eoMerge < MOEOT > & _merge, eoReduce< MOEOT > & _reduce, + moeoFitnessAssignment < MOEOT > & _fitnessEval, moeoDiversityAssignment < MOEOT > & _diversityEval, bool _evalFitAndDivBeforeSelection = false) + : + continuator(_continuator), eval(_eval), loopEval(_eval), popEval(loopEval), selectTransform(_select, _transform), breed(selectTransform), mergeReduce(_merge,_reduce), replace(mergeReduce), + fitnessEval(_fitnessEval), diversityEval(_diversityEval), evalFitAndDivBeforeSelection(_evalFitAndDivBeforeSelection) + {} + + + /** + * Applies a few generation of evolution to the population _pop. + * @param _pop the population + */ + virtual void operator()(eoPop < MOEOT > & _pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval(empty_pop, _pop); // A first eval of pop. + bool firstTime = true; + do + { + try + { + unsigned int pSize = _pop.size(); + offspring.clear(); // new offspring + // fitness and diversity assignment (if you want to or if it is the first generation) + if (evalFitAndDivBeforeSelection || firstTime) + { + firstTime = false; + fitnessEval(_pop); + diversityEval(_pop); + } + breed(_pop, offspring); + popEval(_pop, offspring); // eval of parents + offspring if necessary + replace(_pop, offspring); // after replace, the new pop. is in _pop + if (pSize > _pop.size()) + { + throw std::runtime_error("Population shrinking!"); + } + else if (pSize < _pop.size()) + { + throw std::runtime_error("Population growing!"); + } + } + catch (std::exception& e) + { + std::string s = e.what(); + s.append( " in moeoEasyEA"); + throw std::runtime_error( s ); + } + } while (continuator(_pop)); + } + + +protected: + + /** the stopping criteria */ + eoContinue < MOEOT > & continuator; + /** the evaluation functions */ + eoEvalFunc < MOEOT > & eval; + /** to evaluate the whole population */ + eoPopLoopEval < MOEOT > loopEval; + /** to evaluate the whole population */ + eoPopEvalFunc < MOEOT > & popEval; + /** breed: a select followed by a transform */ + eoSelectTransform < MOEOT > selectTransform; + /** the breeder */ + eoBreed < MOEOT > & breed; + /** replacement: a merge followed by a reduce */ + eoMergeReduce < MOEOT > mergeReduce; + /** the replacment strategy */ + moeoReplacement < MOEOT > & replace; + /** the fitness assignment strategy */ + moeoFitnessAssignment < MOEOT > & fitnessEval; + /** the diversity assignment strategy */ + moeoDiversityAssignment < MOEOT > & diversityEval; + /** if this parameter is set to 'true', the fitness and the diversity of the whole population will be re-evaluated before the selection process */ + bool evalFitAndDivBeforeSelection; + /** a dummy eval */ + class eoDummyEval : public eoEvalFunc < MOEOT > + { public: /** the dummy functor */ + void operator()(MOEOT &) {}} dummyEval; + /** a dummy select */ + class eoDummySelect : public eoSelect < MOEOT > + { public: /** the dummy functor */ + void operator()(const eoPop < MOEOT > &, eoPop < MOEOT > &) {} } dummySelect; + /** a dummy transform */ + class eoDummyTransform : public eoTransform < MOEOT > + { public: /** the dummy functor */ + void operator()(eoPop < MOEOT > &) {} } dummyTransform; + /** a dummy merge */ + eoNoElitism < MOEOT > dummyMerge; + /** a dummy reduce */ + eoTruncate < MOEOT > dummyReduce; + +}; + +#endif /*MOEOEASYEA_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoHybridLS.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoHybridLS.h new file mode 100644 index 000000000..3f2d6fd6f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoHybridLS.h @@ -0,0 +1,76 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoHybridLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOHYBRIDLS_H_ +#define MOEOHYBRIDLS_H_ + +#include +#include +#include +#include +#include +#include + +/** + * This class allows to apply a multi-objective local search to a number of selected individuals contained in the archive + * at every generation until a stopping criteria is verified. + */ +template < class MOEOT > +class moeoHybridLS : public eoUpdater +{ +public: + + /** + * Ctor + * @param _term stopping criteria + * @param _select selector + * @param _mols a multi-objective local search + * @param _arch the archive + */ + moeoHybridLS (eoContinue < MOEOT > & _term, eoSelect < MOEOT > & _select, moeoLS < MOEOT, MOEOT > & _mols, moeoArchive < MOEOT > & _arch) : + term(_term), select(_select), mols(_mols), arch(_arch) + {} + + + /** + * Applies the multi-objective local search to selected individuals contained in the archive if the stopping criteria is not verified + */ + void operator () () + { + if (! term (arch)) + { + // selection of solutions + eoPop < MOEOT > selectedSolutions; + select(arch, selectedSolutions); + // apply the local search to every selected solution + for (unsigned int i=0; i & term; + /** selector */ + eoSelect < MOEOT > & select; + /** multi-objective local search */ + moeoLS < MOEOT, MOEOT > & mols; + /** archive */ + moeoArchive < MOEOT > & arch; + +}; + +#endif /*MOEOHYBRIDLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoIBEA.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoIBEA.h new file mode 100644 index 000000000..9f9d2efef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoIBEA.h @@ -0,0 +1,168 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIBEA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOIBEA_H_ +#define MOEOIBEA_H_ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * IBEA (Indicator-Based Evolutionary Algorithm) as described in: + * E. Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). + * This class builds the IBEA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. + */ +template < class MOEOT > +class moeoIBEA : public moeoEA < MOEOT > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Simple ctor with a eoGenOp. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Simple ctor with a eoTransform. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a crossover, a mutation and their corresponding rates. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _crossover crossover + * @param _pCross crossover probability + * @param _mutation mutation + * @param _pMut mutation probability + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2), + fitnessAssignment(_metric, _kappa), replace (fitnessAssignment, dummyDiversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), + genBreed (select, defaultSGAGenOp), breed (genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoGenOp. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + continuator(_continuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoTransform. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _metric metric + * @param _kappa scaling factor kappa + */ + moeoIBEA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa=0.05) : + continuator(_continuator), popEval(_eval), select(2), + fitnessAssignment(_metric, _kappa), replace(fitnessAssignment, dummyDiversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Apply a few generation of evolution to the population _pop until the stopping criteria is verified. + * @param _pop the population + */ + virtual void operator () (eoPop < MOEOT > &_pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval (empty_pop, _pop); // a first eval of _pop + // evaluate fitness and diversity + fitnessAssignment(_pop); + dummyDiversityAssignment(_pop); + do + { + // generate offspring, worths are recalculated if necessary + breed (_pop, offspring); + // eval of offspring + popEval (_pop, offspring); + // after replace, the new pop is in _pop. Worths are recalculated if necessary + replace (_pop, offspring); + } while (continuator (_pop)); + } + + +protected: + + /** a continuator based on the number of generations (used as default) */ + eoGenContinue < MOEOT > defaultGenContinuator; + /** stopping criteria */ + eoContinue < MOEOT > & continuator; + /** evaluation function used to evaluate the whole population */ + eoPopLoopEval < MOEOT > popEval; + /** binary tournament selection */ + moeoDetTournamentSelect < MOEOT > select; + /** fitness assignment used in IBEA */ + moeoIndicatorBasedFitnessAssignment < MOEOT > fitnessAssignment; + /** dummy diversity assignment */ + moeoDummyDiversityAssignment < MOEOT > dummyDiversityAssignment; + /** elitist replacement */ + moeoEnvironmentalReplacement < MOEOT > replace; + /** an object for genetic operators (used as default) */ + eoSGAGenOp < MOEOT > defaultSGAGenOp; + /** general breeder */ + eoGeneralBreeder < MOEOT > genBreed; + /** breeder */ + eoBreed < MOEOT > & breed; + +}; + +#endif /*MOEOIBEA_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoLS.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoLS.h new file mode 100644 index 000000000..71d4e841a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoLS.h @@ -0,0 +1,27 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoLS.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOLS_H_ +#define MOEOLS_H_ + +#include +#include +#include + +/** + * Abstract class for local searches applied to multi-objective optimization. + * Starting from a Type (i.e.: an individual, a pop, an archive...), it produces a set of new non-dominated solutions. + */ +template < class MOEOT, class Type > +class moeoLS: public moeoAlgo, public eoBF < Type, moeoArchive < MOEOT > &, void > {}; + +#endif /*MOEOLS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoNSGA.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoNSGA.h new file mode 100644 index 000000000..b1bd71076 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoNSGA.h @@ -0,0 +1,158 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNSGA.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONSGA_H_ +#define MOEONSGA_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * NSGA (Non-dominated Sorting Genetic Algorithm) as described in: + * N. Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms". + * Evolutionary Computation, Vol. 2(3), No 2, pp. 221-248 (1994). + * This class builds the NSGA algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. + */ +template < class MOEOT > +class moeoNSGA: public moeoEA < MOEOT > +{ +public: + + /** + * Simple ctor with a eoGenOp. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Simple ctor with a eoTransform. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a crossover, a mutation and their corresponding rates. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _crossover crossover + * @param _pCross crossover probability + * @param _mutation mutation + * @param _pMut mutation probability + * @param _nicheSize niche size + */ + moeoNSGA (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut, double _nicheSize = 0.5) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2), + diversityAssignment(_nicheSize), replace (fitnessAssignment, diversityAssignment), + defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), genBreed (select, defaultSGAGenOp), breed (genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoGenOp. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op, double _nicheSize = 0.5) : + continuator(_continuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoTransform. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + * @param _nicheSize niche size + */ + moeoNSGA (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op, double _nicheSize = 0.5) : + continuator(_continuator), popEval(_eval), select(2), + diversityAssignment(_nicheSize), replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Apply a few generation of evolution to the population _pop until the stopping criteria is verified. + * @param _pop the population + */ + virtual void operator () (eoPop < MOEOT > &_pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval (empty_pop, _pop); // a first eval of _pop + // evaluate fitness and diversity + fitnessAssignment(_pop); + diversityAssignment(_pop); + do + { + // generate offspring, worths are recalculated if necessary + breed (_pop, offspring); + // eval of offspring + popEval (_pop, offspring); + // after replace, the new pop is in _pop. Worths are recalculated if necessary + replace (_pop, offspring); + } while (continuator (_pop)); + } + + +protected: + + /** a continuator based on the number of generations (used as default) */ + eoGenContinue < MOEOT > defaultGenContinuator; + /** stopping criteria */ + eoContinue < MOEOT > & continuator; + /** evaluation function used to evaluate the whole population */ + eoPopLoopEval < MOEOT > popEval; + /** binary tournament selection */ + moeoDetTournamentSelect < MOEOT > select; + /** fitness assignment used in NSGA-II */ + moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment; + /** diversity assignment used in NSGA-II */ + moeoFrontByFrontSharingDiversityAssignment < MOEOT > diversityAssignment; + /** elitist replacement */ + moeoElitistReplacement < MOEOT > replace; + /** an object for genetic operators (used as default) */ + eoSGAGenOp < MOEOT > defaultSGAGenOp; + /** general breeder */ + eoGeneralBreeder < MOEOT > genBreed; + /** breeder */ + eoBreed < MOEOT > & breed; + +}; + +#endif /*MOEONSGAII_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoNSGAII.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoNSGAII.h new file mode 100644 index 000000000..60854860f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/algo/moeoNSGAII.h @@ -0,0 +1,153 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNSGAII.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONSGAII_H_ +#define MOEONSGAII_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * NSGA-II (Non-dominated Sorting Genetic Algorithm II) as described in: + * Deb, K., S. Agrawal, A. Pratap, and T. Meyarivan : "A fast elitist non-dominated sorting genetic algorithm for multi-objective optimization: NSGA-II". + * In IEEE Transactions on Evolutionary Computation, Vol. 6, No 2, pp 182-197 (April 2002). + * This class builds the NSGA-II algorithm only by using the fine-grained components of the ParadisEO-MOEO framework. + */ +template < class MOEOT > +class moeoNSGAII: public moeoEA < MOEOT > +{ +public: + + /** + * Simple ctor with a eoGenOp. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Simple ctor with a eoTransform. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a crossover, a mutation and their corresponding rates. + * @param _maxGen number of generations before stopping + * @param _eval evaluation function + * @param _crossover crossover + * @param _pCross crossover probability + * @param _mutation mutation + * @param _pMut mutation probability + */ + moeoNSGAII (unsigned int _maxGen, eoEvalFunc < MOEOT > & _eval, eoQuadOp < MOEOT > & _crossover, double _pCross, eoMonOp < MOEOT > & _mutation, double _pMut) : + defaultGenContinuator(_maxGen), continuator(defaultGenContinuator), popEval(_eval), select (2), + replace (fitnessAssignment, diversityAssignment), defaultSGAGenOp(_crossover, _pCross, _mutation, _pMut), + genBreed (select, defaultSGAGenOp), breed (genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoGenOp. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoGenOp < MOEOT > & _op) : + continuator(_continuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Ctor with a continuator (instead of _maxGen) and a eoTransform. + * @param _continuator stopping criteria + * @param _eval evaluation function + * @param _op variation operator + */ + moeoNSGAII (eoContinue < MOEOT > & _continuator, eoEvalFunc < MOEOT > & _eval, eoTransform < MOEOT > & _op) : + continuator(_continuator), popEval(_eval), select(2), + replace(fitnessAssignment, diversityAssignment), genBreed(select, _op), breed(genBreed) + {} + + + /** + * Apply a few generation of evolution to the population _pop until the stopping criteria is verified. + * @param _pop the population + */ + virtual void operator () (eoPop < MOEOT > &_pop) + { + eoPop < MOEOT > offspring, empty_pop; + popEval (empty_pop, _pop); // a first eval of _pop + // evaluate fitness and diversity + fitnessAssignment(_pop); + diversityAssignment(_pop); + do + { + // generate offspring, worths are recalculated if necessary + breed (_pop, offspring); + // eval of offspring + popEval (_pop, offspring); + // after replace, the new pop is in _pop. Worths are recalculated if necessary + replace (_pop, offspring); + } while (continuator (_pop)); + } + + +protected: + + /** a continuator based on the number of generations (used as default) */ + eoGenContinue < MOEOT > defaultGenContinuator; + /** stopping criteria */ + eoContinue < MOEOT > & continuator; + /** evaluation function used to evaluate the whole population */ + eoPopLoopEval < MOEOT > popEval; + /** binary tournament selection */ + moeoDetTournamentSelect < MOEOT > select; + /** fitness assignment used in NSGA-II */ + moeoFastNonDominatedSortingFitnessAssignment < MOEOT > fitnessAssignment; + /** diversity assignment used in NSGA-II */ + moeoFrontByFrontCrowdingDiversityAssignment < MOEOT > diversityAssignment; + /** elitist replacement */ + moeoElitistReplacement < MOEOT > replace; + /** an object for genetic operators (used as default) */ + eoSGAGenOp < MOEOT > defaultSGAGenOp; + /** general breeder */ + eoGeneralBreeder < MOEOT > genBreed; + /** breeder */ + eoBreed < MOEOT > & breed; + +}; + +#endif /*MOEONSGAII_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/archive/moeoArchive.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/archive/moeoArchive.h new file mode 100644 index 000000000..9338799d8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/archive/moeoArchive.h @@ -0,0 +1,180 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoArchive.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOARCHIVE_H_ +#define MOEOARCHIVE_H_ + +#include +#include +#include + +/** + * An archive is a secondary population that stores non-dominated solutions. + */ +template < class MOEOT > +class moeoArchive : public eoPop < MOEOT > +{ +public: + + using eoPop < MOEOT > :: size; + using eoPop < MOEOT > :: operator[]; + using eoPop < MOEOT > :: back; + using eoPop < MOEOT > :: pop_back; + + + /** + * The type of an objective vector for a solution + */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctor. + * The moeoObjectiveVectorComparator used to compare solutions is based on Pareto dominance + */ + moeoArchive() : eoPop < MOEOT >(), comparator(paretoComparator) + {} + + + /** + * Ctor + * @param _comparator the moeoObjectiveVectorComparator used to compare solutions + */ + moeoArchive(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : eoPop < MOEOT >(), comparator(_comparator) + {} + + + /** + * Returns true if the current archive dominates _objectiveVector according to the moeoObjectiveVectorComparator given in the constructor + * @param _objectiveVector the objective vector to compare with the current archive + */ + bool dominates (const ObjectiveVector & _objectiveVector) const + { + for (unsigned int i = 0; i & _pop) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + update(_pop[i]); + } + } + + + /** + * Returns true if the current archive contains the same objective vectors than the given archive _arch + * @param _arch the given archive + */ + bool equals (const moeoArchive < MOEOT > & _arch) + { + for (unsigned int i=0; i & comparator; + /** A moeoObjectiveVectorComparator based on Pareto dominance (used as default) */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + +}; + +#endif /*MOEOARCHIVE_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h new file mode 100644 index 000000000..a217bd52d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoAggregativeComparator.h @@ -0,0 +1,55 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAggregativeComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOAGGREGATIVECOMPARATOR_H_ +#define MOEOAGGREGATIVECOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to their fitness and diversity values, each according to its aggregative value. + */ +template < class MOEOT > +class moeoAggregativeComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Ctor. + * @param _weightFitness the weight for fitness + * @param _weightDiversity the weight for diversity + */ + moeoAggregativeComparator(double _weightFitness = 1.0, double _weightDiversity = 1.0) : weightFitness(_weightFitness), weightDiversity(_weightDiversity) + {} + + + /** + * Returns true if _moeo1 < _moeo2 according to the aggregation of their fitness and diversity values + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return ( weightFitness * _moeo1.fitness() + weightDiversity * _moeo1.diversity() ) < ( weightFitness * _moeo2.fitness() + weightDiversity * _moeo2.diversity() ); + } + + +private: + + /** the weight for fitness */ + double weightFitness; + /** the weight for diversity */ + double weightDiversity; + +}; + +#endif /*MOEOAGGREGATIVECOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoComparator.h new file mode 100644 index 000000000..9243a57bc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoComparator.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCOMPARATOR_H_ +#define MOEOCOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions. + */ +template < class MOEOT > +class moeoComparator : public eoBF < const MOEOT &, const MOEOT &, const bool > {}; + +#endif /*MOEOCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h new file mode 100644 index 000000000..54df59b82 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoDiversityThenFitnessComparator.h @@ -0,0 +1,45 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDiversityThenFitnessComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODIVERSITYTHENFITNESSCOMPARATOR_H_ +#define MOEODIVERSITYTHENFITNESSCOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to their diversity values, then according to their fitness values. + */ +template < class MOEOT > +class moeoDiversityThenFitnessComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Returns true if _moeo1 < _moeo2 according to their diversity values, then according to their fitness values + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + if (_moeo1.diversity() == _moeo2.diversity()) + { + return _moeo1.fitness() < _moeo2.fitness(); + } + else + { + return _moeo1.diversity() < _moeo2.diversity(); + } + } + +}; + +#endif /*MOEODIVERSITYTHENFITNESSCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h new file mode 100644 index 000000000..5baf10097 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoFitnessThenDiversityComparator.h @@ -0,0 +1,45 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoFitnessThenDiversityComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_ +#define MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to their fitness values, then according to their diversity values. + */ +template < class MOEOT > +class moeoFitnessThenDiversityComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Returns true if _moeo1 < _moeo2 according to their fitness values, then according to their diversity values + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + if (_moeo1.fitness() == _moeo2.fitness()) + { + return _moeo1.diversity() < _moeo2.diversity(); + } + else + { + return _moeo1.fitness() < _moeo2.fitness(); + } + } + +}; + +#endif /*MOEOFITNESSTHENDIVERSITYCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h new file mode 100644 index 000000000..006d1c4f2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoGDominanceObjectiveVectorComparator.h @@ -0,0 +1,102 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoGDominanceObjectiveVectorComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_ +#define MOEOGDOMINANCEOBJECTIVEVECTORCOMPARATOR_H_ + +#include + +/** + * This functor class allows to compare 2 objective vectors according to g-dominance. + * The concept of g-dominance as been introduced in: + * J. Molina, L. V. Santana, A. G. Hernandez-Diaz, C. A. Coello Coello, R. Caballero, + * "g-dominance: Reference point based dominance" (2007) + */ +template < class ObjectiveVector > +class moeoGDominanceObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector > +{ +public: + + /** + * Ctor. + * @param _ref the reference point + */ + moeoGDominanceObjectiveVectorComparator(ObjectiveVector & _ref) : ref(_ref) + {} + + + /** + * Returns true if _objectiveVector1 is g-dominated by _objectiveVector2. + * @param _objectiveVector1 the first objective vector + * @param _objectiveVector2 the second objective vector + */ + const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2) + { + unsigned int flag1 = flag(_objectiveVector1); + unsigned int flag2 = flag(_objectiveVector2); + if (flag2==0) + { + // cannot dominate + return false; + } + else if ( (flag2==1) && (flag1==0) ) + { + // is dominated + return true; + } + else // (flag1==1) && (flag2==1) + { + // both are on the good region, so let's use the classical Pareto dominance + return paretoComparator(_objectiveVector1, _objectiveVector2); + } + } + + +private: + + /** the reference point */ + ObjectiveVector & ref; + /** Pareto comparator */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Returns the flag of _objectiveVector according to the reference point + * @param _objectiveVector the first objective vector + */ + unsigned int flag(const ObjectiveVector & _objectiveVector) + { + unsigned int result=1; + for (unsigned int i=0; i ref[i]) + { + result=0; + } + } + if (result==0) + { + result=1; + for (unsigned int i=0; i + +/** + * Functor allowing to compare two objective vectors according to their first objective value, then their second, and so on. + */ +template < class ObjectiveVector > +class moeoObjectiveObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector > +{ +public: + + /** + * Returns true if _objectiveVector1 < _objectiveVector2 on the first objective, then on the second, and so on + * @param _objectiveVector1 the first objective vector + * @param _objectiveVector2 the second objective vector + */ + const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2) + { + for (unsigned int i=0; i ObjectiveVector::Traits::tolerance() ) + { + if (_objectiveVector1[i] < _objectiveVector2[i]) + { + return true; + } + else + { + return false; + } + } + } + return false; + } + +}; + +#endif /*MOEOOBJECTIVEOBJECTIVEVECTORCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h new file mode 100644 index 000000000..75608ad12 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoObjectiveVectorComparator.h @@ -0,0 +1,26 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVectorComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOOBJECTIVEVECTORCOMPARATOR_H_ +#define MOEOOBJECTIVEVECTORCOMPARATOR_H_ + +#include +#include + +/** + * Abstract class allowing to compare 2 objective vectors. + * The template argument ObjectiveVector have to be a moeoObjectiveVector. + */ +template < class ObjectiveVector > +class moeoObjectiveVectorComparator : public eoBF < const ObjectiveVector &, const ObjectiveVector &, const bool > {}; + +#endif /*MOEOOBJECTIVEVECTORCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h new file mode 100644 index 000000000..74be47bb3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoOneObjectiveComparator.h @@ -0,0 +1,57 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoOneObjectiveComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOONEOBJECTIVECOMPARATOR_H_ +#define MOEOONEOBJECTIVECOMPARATOR_H_ + +#include + +/** + * Functor allowing to compare two solutions according to one objective. + */ +template < class MOEOT > +class moeoOneObjectiveComparator : public moeoComparator < MOEOT > +{ +public: + + /** + * Ctor. + * @param _obj the index of objective + */ + moeoOneObjectiveComparator(unsigned int _obj) : obj(_obj) + { + if (obj > MOEOT::ObjectiveVector::nObjectives()) + { + throw std::runtime_error("Problem with the index of objective in moeoOneObjectiveComparator"); + } + } + + + /** + * Returns true if _moeo1 < _moeo2 on the obj objective + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return _moeo1.objectiveVector()[obj] < _moeo2.objectiveVector()[obj]; + } + + +private: + + /** the index of objective */ + unsigned int obj; + +}; + +#endif /*MOEOONEOBJECTIVECOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h new file mode 100644 index 000000000..c9f8e8260 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/comparator/moeoParetoObjectiveVectorComparator.h @@ -0,0 +1,70 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoParetoObjectiveVectorComparator.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_ +#define MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_ + +#include + +/** + * This functor class allows to compare 2 objective vectors according to Pareto dominance. + */ +template < class ObjectiveVector > +class moeoParetoObjectiveVectorComparator : public moeoObjectiveVectorComparator < ObjectiveVector > +{ +public: + + /** + * Returns true if _objectiveVector1 is dominated by _objectiveVector2 + * @param _objectiveVector1 the first objective vector + * @param _objectiveVector2 the second objective vector + */ + const bool operator()(const ObjectiveVector & _objectiveVector1, const ObjectiveVector & _objectiveVector2) + { + bool dom = false; + for (unsigned int i=0; i ObjectiveVector::Traits::tolerance() ) + { + // if the ith objective have to be minimized... + if (ObjectiveVector::minimizing(i)) + { + if (_objectiveVector1[i] > _objectiveVector2[i]) + { + dom = true; //_objectiveVector1[i] is not better than _objectiveVector2[i] + } + else + { + return false; //_objectiveVector2 cannot dominate _objectiveVector1 + } + } + // if the ith objective have to be maximized... + else if (ObjectiveVector::maximizing(i)) + { + if (_objectiveVector1[i] > _objectiveVector2[i]) + { + dom = true; //_objectiveVector1[i] is not better than _objectiveVector2[i] + } + else + { + return false; //_objectiveVector2 cannot dominate _objectiveVector1 + } + } + } + } + return dom; + } + +}; + +#endif /*MOEOPARETOOBJECTIVEVECTORCOMPARATOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/MOEO.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/MOEO.h new file mode 100644 index 000000000..ed288facc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/MOEO.h @@ -0,0 +1,291 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// MOEO.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEO_H_ +#define MOEO_H_ + +#include +#include +#include +#include + +/** + * Base class allowing to represent a solution (an individual) for multi-objective optimization. + * The template argument MOEOObjectiveVector allows to represent the solution in the objective space (it can be a moeoObjectiveVector object). + * The template argument MOEOFitness is an object reflecting the quality of the solution in term of convergence (the fitness of a solution is always to be maximized). + * The template argument MOEODiversity is an object reflecting the quality of the solution in term of diversity (the diversity of a solution is always to be maximized). + * All template arguments must have a void and a copy constructor. + * Using some specific representations, you will have to define a copy constructor if the default one is not what you want. + * In the same cases, you will also have to define the affectation operator (operator=). + * Then, you will explicitly have to call the parent copy constructor and the parent affectation operator at the beginning of the corresponding implementation. + * Besides, note that, contrary to the mono-objective case (and to EO) where the fitness value of a solution is confused with its objective value, + * the fitness value differs of the objectives values in the multi-objective case. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity > +class MOEO : public EO < MOEOObjectiveVector > +{ +public: + + /** the objective vector type of a solution */ + typedef MOEOObjectiveVector ObjectiveVector; + + /** the fitness type of a solution */ + typedef MOEOFitness Fitness; + + /** the diversity type of a solution */ + typedef MOEODiversity Diversity; + + + /** + * Ctor + */ + MOEO() + { + // default values for every parameters + objectiveVectorValue = ObjectiveVector(); + fitnessValue = Fitness(); + diversityValue = Diversity(); + // invalidate all + invalidate(); + } + + + /** + * Virtual dtor + */ + virtual ~MOEO() {}; + + + /** + * Returns the objective vector of the current solution + */ + ObjectiveVector objectiveVector() const + { + if ( invalidObjectiveVector() ) + { + throw std::runtime_error("invalid objective vector in MOEO"); + } + return objectiveVectorValue; + } + + + /** + * Sets the objective vector of the current solution + * @param _objectiveVectorValue the new objective vector + */ + void objectiveVector(const ObjectiveVector & _objectiveVectorValue) + { + objectiveVectorValue = _objectiveVectorValue; + invalidObjectiveVectorValue = false; + } + + + /** + * Sets the objective vector as invalid + */ + void invalidateObjectiveVector() + { + invalidObjectiveVectorValue = true; + } + + + /** + * Returns true if the objective vector is invalid, false otherwise + */ + bool invalidObjectiveVector() const + { + return invalidObjectiveVectorValue; + } + + + /** + * Returns the fitness value of the current solution + */ + Fitness fitness() const + { + if ( invalidFitness() ) + { + throw std::runtime_error("invalid fitness in MOEO"); + } + return fitnessValue; + } + + + /** + * Sets the fitness value of the current solution + * @param _fitnessValue the new fitness value + */ + void fitness(const Fitness & _fitnessValue) + { + fitnessValue = _fitnessValue; + invalidFitnessValue = false; + } + + + /** + * Sets the fitness value as invalid + */ + void invalidateFitness() + { + invalidFitnessValue = true; + } + + + /** + * Returns true if the fitness value is invalid, false otherwise + */ + bool invalidFitness() const + { + return invalidFitnessValue; + } + + + /** + * Returns the diversity value of the current solution + */ + Diversity diversity() const + { + if ( invalidDiversity() ) + { + throw std::runtime_error("invalid diversity in MOEO"); + } + return diversityValue; + } + + + /** + * Sets the diversity value of the current solution + * @param _diversityValue the new diversity value + */ + void diversity(const Diversity & _diversityValue) + { + diversityValue = _diversityValue; + invalidDiversityValue = false; + } + + + /** + * Sets the diversity value as invalid + */ + void invalidateDiversity() + { + invalidDiversityValue = true; + } + + + /** + * Returns true if the diversity value is invalid, false otherwise + */ + bool invalidDiversity() const + { + return invalidDiversityValue; + } + + + /** + * Sets the objective vector, the fitness value and the diversity value as invalid + */ + void invalidate() + { + invalidateObjectiveVector(); + invalidateFitness(); + invalidateDiversity(); + } + + + /** + * Returns true if the fitness value is invalid, false otherwise + */ + bool invalid() const + { + return invalidObjectiveVector(); + } + + + /** + * Returns true if the objective vector of the current solution is smaller than the objective vector of _other on the first objective, + * then on the second, and so on (can be usefull for sorting/printing). + * You should implement another function in the sub-class of MOEO to have another sorting mecanism. + * @param _other the other MOEO object to compare with + */ + bool operator<(const MOEO & _other) const + { + return objectiveVector() < _other.objectiveVector(); + } + + + /** + * Return the class id (the class name as a std::string) + */ + virtual std::string className() const + { + return "MOEO"; + } + + + /** + * Writing object + * @param _os output stream + */ + virtual void printOn(std::ostream & _os) const + { + if ( invalidObjectiveVector() ) + { + _os << "INVALID\t"; + } + else + { + _os << objectiveVectorValue << '\t'; + } + } + + + /** + * Reading object + * @param _is input stream + */ + virtual void readFrom(std::istream & _is) + { + std::string objectiveVector_str; + int pos = _is.tellg(); + _is >> objectiveVector_str; + if (objectiveVector_str == "INVALID") + { + invalidateObjectiveVector(); + } + else + { + invalidObjectiveVectorValue = false; + _is.seekg(pos); // rewind + _is >> objectiveVectorValue; + } + } + + +private: + + /** the objective vector of this solution */ + ObjectiveVector objectiveVectorValue; + /** true if the objective vector is invalid */ + bool invalidObjectiveVectorValue; + /** the fitness value of this solution */ + Fitness fitnessValue; + /** true if the fitness value is invalid */ + bool invalidFitnessValue; + /** the diversity value of this solution */ + Diversity diversityValue; + /** true if the diversity value is invalid */ + bool invalidDiversityValue; + +}; + +#endif /*MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoBitVector.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoBitVector.h new file mode 100644 index 000000000..2e8642de8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoBitVector.h @@ -0,0 +1,83 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoBitVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOBITVECTOR_H_ +#define MOEOBITVECTOR_H_ + +#include + +/** + * This class is an implementationeo of a simple bit-valued moeoVector. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity > +class moeoBitVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > +{ +public: + + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: begin; + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: end; + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: resize; + using moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool > :: size; + + + /** + * Ctor + * @param _size Length of vector (default is 0) + * @param _value Initial value of all elements (default is default value of type GeneType) + */ + moeoBitVector(unsigned int _size = 0, bool _value = false) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, bool >(_size, _value) + {} + + + /** + * Returns the class name as a std::string + */ + virtual std::string className() const + { + return "moeoBitVector"; + } + + + /** + * Writing object + * @param _os output stream + */ + virtual void printOn(std::ostream & _os) const + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os); + _os << ' '; + _os << size() << ' '; + std::copy(begin(), end(), std::ostream_iterator(_os)); + } + + + /** + * Reading object + * @param _is input stream + */ + virtual void readFrom(std::istream & _is) + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is); + unsigned int s; + _is >> s; + std::string bits; + _is >> bits; + if (_is) + { + resize(bits.size()); + std::transform(bits.begin(), bits.end(), begin(), std::bind2nd(std::equal_to(), '1')); + } + } + +}; + +#endif /*MOEOBITVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoEvalFunc.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoEvalFunc.h new file mode 100644 index 000000000..1f6b7544d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoEvalFunc.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEvalFunc.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEVALFUNC_H_ +#define MOEOEVALFUNC_H_ + +#include + +/* + * Functor that evaluates one MOEO by setting all its objective values. + */ +template < class MOEOT > +class moeoEvalFunc : public eoEvalFunc< MOEOT > {}; + +#endif /*MOEOEVALFUNC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVector.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVector.h new file mode 100644 index 000000000..867f6a3d3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVector.h @@ -0,0 +1,91 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOOBJECTIVEVECTOR_H_ +#define MOEOOBJECTIVEVECTOR_H_ + +#include + +/** + * Abstract class allowing to represent a solution in the objective space (phenotypic representation). + * The template argument ObjectiveVectorTraits defaults to moeoObjectiveVectorTraits, + * but it can be replaced at will by any other class that implements the static functions defined therein. + * Some static funtions to access to the traits characteristics are re-defined in order not to write a lot of typedef's. + */ +template < class ObjectiveVectorTraits, class ObjectiveVectorType > +class moeoObjectiveVector : public std::vector < ObjectiveVectorType > +{ +public: + + /** The traits of objective vectors */ + typedef ObjectiveVectorTraits Traits; + /** The type of an objective value */ + typedef ObjectiveVectorType Type; + + + /** + * Ctor + */ + moeoObjectiveVector(Type _value = Type()) : std::vector < Type > (ObjectiveVectorTraits::nObjectives(), _value) + {} + + + /** + * Ctor from a vector of Type + * @param _v the std::vector < Type > + */ + moeoObjectiveVector(std::vector < Type > & _v) : std::vector < Type > (_v) + {} + + + /** + * Parameters setting (for the objective vector of any solution) + * @param _nObjectives the number of objectives + * @param _bObjectives the min/max vector (true = min / false = max) + */ + static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives) + { + ObjectiveVectorTraits::setup(_nObjectives, _bObjectives); + } + + + /** + * Returns the number of objectives + */ + static unsigned int nObjectives() + { + return ObjectiveVectorTraits::nObjectives(); + } + + + /** + * Returns true if the _ith objective have to be minimized + * @param _i the index + */ + static bool minimizing(unsigned int _i) + { + return ObjectiveVectorTraits::minimizing(_i); + } + + + /** + * Returns true if the _ith objective have to be maximized + * @param _i the index + */ + static bool maximizing(unsigned int _i) + { + return ObjectiveVectorTraits::maximizing(_i); + } + +}; + +#endif /*MOEOOBJECTIVEVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp new file mode 100644 index 000000000..84d507fca --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.cpp @@ -0,0 +1,17 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVectorTraits.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + +// The static variables of the moeoObjectiveVectorTraits class need to be allocated +unsigned int moeoObjectiveVectorTraits::nObj; +std::vector < bool > moeoObjectiveVectorTraits::bObj; diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h new file mode 100644 index 000000000..9c51c7463 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoObjectiveVectorTraits.h @@ -0,0 +1,103 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoObjectiveVectorTraits.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOOBJECTIVEVECTORTRAITS_H_ +#define MOEOOBJECTIVEVECTORTRAITS_H_ + +#include +#include +#include + +/** + * A traits class for moeoObjectiveVector to specify the number of objectives and which ones have to be minimized or maximized. + */ +class moeoObjectiveVectorTraits +{ +public: + + /** + * Parameters setting + * @param _nObjectives the number of objectives + * @param _bObjectives the min/max vector (true = min / false = max) + */ + static void setup(unsigned int _nObjectives, std::vector < bool > & _bObjectives) + { + // in case the number of objectives was already set to a different value + if ( nObj && (nObj != _nObjectives) ) { + std::cout << "WARNING\n"; + std::cout << "WARNING : the number of objectives are changing\n"; + std::cout << "WARNING : Make sure all existing objects are destroyed\n"; + std::cout << "WARNING\n"; + } + // number of objectives + nObj = _nObjectives; + // min/max vector + bObj = _bObjectives; + // in case the number of objectives and the min/max vector size don't match + if (nObj != bObj.size()) + throw std::runtime_error("Number of objectives and min/max size don't match in moeoObjectiveVectorTraits::setup"); + } + + + /** + * Returns the number of objectives + */ + static unsigned int nObjectives() + { + // in case the number of objectives would not be assigned yet + if (! nObj) + throw std::runtime_error("Number of objectives not assigned in moeoObjectiveVectorTraits"); + return nObj; + } + + + /** + * Returns true if the _ith objective have to be minimized + * @param _i the index + */ + static bool minimizing(unsigned int _i) + { + // in case there would be a wrong index + if (_i >= bObj.size()) + throw std::runtime_error("Wrong index in moeoObjectiveVectorTraits"); + return bObj[_i]; + } + + + /** + * Returns true if the _ith objective have to be maximized + * @param _i the index + */ + static bool maximizing(unsigned int _i) { + return (! minimizing(_i)); + } + + + /** + * Returns the tolerance value (to compare solutions) + */ + static double tolerance() + { + return 1e-6; + } + + +private: + + /** The number of objectives */ + static unsigned int nObj; + /** The min/max vector */ + static std::vector < bool > bObj; + +}; + +#endif /*MOEOOBJECTIVEVECTORTRAITS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoRealObjectiveVector.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoRealObjectiveVector.h new file mode 100644 index 000000000..bb8f36b61 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoRealObjectiveVector.h @@ -0,0 +1,166 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRealObjectiveVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREALOBJECTIVEVECTOR_H_ +#define MOEOREALOBJECTIVEVECTOR_H_ + +#include +#include +#include +#include +#include + +/** + * This class allows to represent a solution in the objective space (phenotypic representation) by a std::vector of real values, + * i.e. that an objective value is represented using a double, and this for any objective. + */ +template < class ObjectiveVectorTraits > +class moeoRealObjectiveVector : public moeoObjectiveVector < ObjectiveVectorTraits, double > +{ +public: + + using moeoObjectiveVector < ObjectiveVectorTraits, double >::size; + using moeoObjectiveVector < ObjectiveVectorTraits, double >::operator[]; + + /** + * Ctor + */ + moeoRealObjectiveVector(double _value = 0.0) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_value) + {} + + + /** + * Ctor from a vector of doubles + * @param _v the std::vector < double > + */ + moeoRealObjectiveVector(std::vector < double > & _v) : moeoObjectiveVector < ObjectiveVectorTraits, double > (_v) + {} + + + /** + * Returns true if the current objective vector dominates _other according to the Pareto dominance relation + * (but it's better to use a moeoObjectiveVectorComparator object to compare solutions) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool dominates(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + moeoParetoObjectiveVectorComparator < moeoRealObjectiveVector > comparator; + return comparator(_other, *this); + } + + + /** + * Returns true if the current objective vector is equal to _other (according to a tolerance value) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator==(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + for (unsigned int i=0; i < size(); i++) + { + if ( fabs(operator[](i) - _other[i]) > ObjectiveVectorTraits::tolerance() ) + { + return false; + } + } + return true; + } + + + /** + * Returns true if the current objective vector is different than _other (according to a tolerance value) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator!=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return ! operator==(_other); + } + + + /** + * Returns true if the current objective vector is smaller than _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator<(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + moeoObjectiveObjectiveVectorComparator < moeoRealObjectiveVector < ObjectiveVectorTraits > > cmp; + return cmp(*this, _other); + } + + + /** + * Returns true if the current objective vector is greater than _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator>(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return _other < *this; + } + + + /** + * Returns true if the current objective vector is smaller than or equal to _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator<=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return operator==(_other) || operator<(_other); + } + + + /** + * Returns true if the current objective vector is greater than or equal to _other on the first objective, then on the second, and so on + * (can be usefull for sorting/printing) + * @param _other the other moeoRealObjectiveVector object to compare with + */ + bool operator>=(const moeoRealObjectiveVector < ObjectiveVectorTraits > & _other) const + { + return operator==(_other) || operator>(_other); + } + +}; + + +/** + * Output for a moeoRealObjectiveVector object + * @param _os output stream + * @param _objectiveVector the objective vector to write + */ +template < class ObjectiveVectorTraits > +std::ostream & operator<<(std::ostream & _os, const moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector) +{ + for (unsigned int i=0; i<_objectiveVector.size(); i++) + { + _os << _objectiveVector[i] << '\t'; + } + return _os; +} + +/** + * Input for a moeoRealObjectiveVector object + * @param _is input stream + * @param _objectiveVector the objective vector to read + */ +template < class ObjectiveVectorTraits > +std::istream & operator>>(std::istream & _is, moeoRealObjectiveVector < ObjectiveVectorTraits > & _objectiveVector) +{ + _objectiveVector = moeoRealObjectiveVector < ObjectiveVectorTraits > (); + for (unsigned int i=0; i<_objectiveVector.size(); i++) + { + _is >> _objectiveVector[i]; + } + return _is; +} + +#endif /*MOEOREALOBJECTIVEVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoRealVector.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoRealVector.h new file mode 100644 index 000000000..0fa60cd06 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoRealVector.h @@ -0,0 +1,45 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRealVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREALVECTOR_H_ +#define MOEOREALVECTOR_H_ + +#include + +/** + * This class is an implementation of a simple double-valued moeoVector. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity > +class moeoRealVector : public moeoVector < MOEOObjectiveVector, MOEOFitness, MOEODiversity, double > +{ +public: + + /** + * Ctor + * @param _size Length of vector (default is 0) + * @param _value Initial value of all elements (default is default value of type GeneType) + */ + moeoRealVector(unsigned int _size = 0, double _value = 0.0) : moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, double >(_size, _value) + {} + + + /** + * Returns the class name as a std::string + */ + virtual std::string className() const + { + return "moeoRealVector"; + } + +}; + +#endif /*MOEOREALVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoVector.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoVector.h new file mode 100644 index 000000000..680306ff6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/core/moeoVector.h @@ -0,0 +1,143 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOVECTOR_H_ +#define MOEOVECTOR_H_ + +#include +#include +#include + +/** + * Base class for fixed length chromosomes, just derives from MOEO and std::vector and redirects the smaller than operator to MOEO (objective vector based comparison). + * GeneType must have the following methods: void ctor (needed for the std::vector<>), copy ctor. + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType > +class moeoVector : public MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >, public std::vector < GeneType > +{ +public: + + using MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity > :: invalidate; + using std::vector < GeneType > :: operator[]; + using std::vector < GeneType > :: begin; + using std::vector < GeneType > :: end; + using std::vector < GeneType > :: resize; + using std::vector < GeneType > :: size; + + /** the atomic type */ + typedef GeneType AtomType; + /** the container type */ + typedef std::vector < GeneType > ContainerType; + + + /** + * Default ctor. + * @param _size Length of vector (default is 0) + * @param _value Initial value of all elements (default is default value of type GeneType) + */ + moeoVector(unsigned int _size = 0, GeneType _value = GeneType()) : + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >(), std::vector(_size, _value) + {} + + + /** + * We can't have a Ctor from a std::vector as it would create ambiguity with the copy Ctor. + * @param _v a vector of GeneType + */ + void value(const std::vector < GeneType > & _v) + { + if (_v.size() != size()) // safety check + { + if (size()) // NOT an initial empty std::vector + { + std::cout << "Warning: Changing size in moeoVector assignation"<::operator< + * @param _moeo the object to compare with + */ + bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo) const + { + return MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::operator<(_moeo); + } + + + /** + * Writing object + * @param _os output stream + */ + virtual void printOn(std::ostream & _os) const + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::printOn(_os); + _os << ' '; + _os << size() << ' '; + std::copy(begin(), end(), std::ostream_iterator(_os, " ")); + } + + + /** + * Reading object + * @param _is input stream + */ + virtual void readFrom(std::istream & _is) + { + MOEO < MOEOObjectiveVector, MOEOFitness, MOEODiversity >::readFrom(_is); + unsigned int sz; + _is >> sz; + resize(sz); + unsigned int i; + for (i = 0; i < sz; ++i) + { + AtomType atom; + _is >> atom; + operator[](i) = atom; + } + } + +}; + + +/** + * To avoid conflicts between MOEO::operator< and std::vector::operator< + * @param _moeo1 the first object to compare + * @param _moeo2 the second object to compare + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType > +bool operator<(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2) +{ + return _moeo1.operator<(_moeo2); +} + + +/** + * To avoid conflicts between MOEO::operator> and std::vector::operator> + * @param _moeo1 the first object to compare + * @param _moeo2 the second object to compare + */ +template < class MOEOObjectiveVector, class MOEOFitness, class MOEODiversity, class GeneType > +bool operator>(const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo1, const moeoVector< MOEOObjectiveVector, MOEOFitness, MOEODiversity, GeneType> & _moeo2) +{ + return _moeo1.operator>(_moeo2); +} + +#endif /*MOEOVECTOR_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoDistance.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoDistance.h new file mode 100644 index 000000000..61b8fb670 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoDistance.h @@ -0,0 +1,54 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODISTANCE_H_ +#define MOEODISTANCE_H_ + +#include + +/** + * The base class for distance computation. + */ +template < class MOEOT , class Type > +class moeoDistance : public eoBF < const MOEOT &, const MOEOT &, const Type > +{ +public: + + /** + * Nothing to do + * @param _pop the population + */ + virtual void setup(const eoPop < MOEOT > & _pop) + {} + + + /** + * Nothing to do + * @param _min lower bound + * @param _max upper bound + * @param _obj the objective index + */ + virtual void setup(double _min, double _max, unsigned int _obj) + {} + + + /** + * Nothing to do + * @param _realInterval the eoRealInterval object + * @param _obj the objective index + */ + virtual void setup(eoRealInterval _realInterval, unsigned int _obj) + {} + +}; + +#endif /*MOEODISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoDistanceMatrix.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoDistanceMatrix.h new file mode 100644 index 000000000..b9a9e924e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoDistanceMatrix.h @@ -0,0 +1,76 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDistanceMatrix.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODISTANCEMATRIX_H_ +#define MOEODISTANCEMATRIX_H_ + +#include +#include +#include + +/** + * A matrix to compute distances between every pair of individuals contained in a population. + */ +template < class MOEOT , class Type > +class moeoDistanceMatrix : public eoUF < const eoPop < MOEOT > &, void > , public std::vector< std::vector < Type > > +{ +public: + + using std::vector< std::vector < Type > > :: size; + using std::vector< std::vector < Type > > :: operator[]; + + + /** + * Ctor + * @param _size size for every dimension of the matrix + * @param _distance the distance to use + */ + moeoDistanceMatrix (unsigned int _size, moeoDistance < MOEOT , Type > & _distance) : distance(_distance) + { + this->resize(_size); + for (unsigned int i=0; i<_size; i++) + { + this->operator[](i).resize(_size); + } + } + + + /** + * Sets the distance between every pair of individuals contained in the population _pop + * @param _pop the population + */ + void operator()(const eoPop < MOEOT > & _pop) + { + // 1 - setup the bounds (if necessary) + distance.setup(_pop); + // 2 - compute distances + this->operator[](0).operator[](0) = Type(); + for (unsigned int i=0; ioperator[](i).operator[](i) = Type(); + for (unsigned int j=0; joperator[](i).operator[](j) = distance(_pop[i], _pop[j]); + this->operator[](j).operator[](i) = this->operator[](i).operator[](j); + } + } + } + + +private: + + /** the distance to use */ + moeoDistance < MOEOT , Type > & distance; + +}; + +#endif /*MOEODISTANCEMATRIX_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoEuclideanDistance.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoEuclideanDistance.h new file mode 100644 index 000000000..2d8d8ec49 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoEuclideanDistance.h @@ -0,0 +1,58 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEuclideanDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEUCLIDEANDISTANCE_H_ +#define MOEOEUCLIDEANDISTANCE_H_ + +#include +#include + +/** + * A class allowing to compute an euclidian distance between two solutions in the objective space with normalized objective values (i.e. between 0 and 1). + * A distance value then lies between 0 and sqrt(nObjectives). + */ +template < class MOEOT > +class moeoEuclideanDistance : public moeoNormalizedDistance < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Returns the euclidian distance between _moeo1 and _moeo2 in the objective space + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + double result = 0.0; + double tmp1, tmp2; + for (unsigned int i=0; i :: bounds; + +}; + +#endif /*MOEOEUCLIDEANDISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoManhattanDistance.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoManhattanDistance.h new file mode 100644 index 000000000..f4c145fe7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoManhattanDistance.h @@ -0,0 +1,58 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoManhattanDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOMANHATTANDISTANCE_H_ +#define MOEOMANHATTANDISTANCE_H_ + +#include +#include + +/** + * A class allowing to compute the Manhattan distance between two solutions in the objective space normalized objective values (i.e. between 0 and 1). + * A distance value then lies between 0 and nObjectives. + */ +template < class MOEOT > +class moeoManhattanDistance : public moeoNormalizedDistance < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Returns the Manhattan distance between _moeo1 and _moeo2 in the objective space + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const double operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + double result = 0.0; + double tmp1, tmp2; + for (unsigned int i=0; i :: bounds; + +}; + +#endif /*MOEOMANHATTANDISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoNormalizedDistance.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoNormalizedDistance.h new file mode 100644 index 000000000..ee1a2caa8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/distance/moeoNormalizedDistance.h @@ -0,0 +1,112 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNormalizedDistance.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONORMALIZEDDISTANCE_H_ +#define MOEONORMALIZEDDISTANCE_H_ + +#include +#include +#include + +/** + * The base class for double distance computation with normalized objective values (i.e. between 0 and 1). + */ +template < class MOEOT , class Type = double > +class moeoNormalizedDistance : public moeoDistance < MOEOT , Type > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctr + */ + moeoNormalizedDistance() + { + bounds.resize(ObjectiveVector::Traits::nObjectives()); + // initialize bounds in case someone does not want to use them + for (unsigned int i=0; i & _pop) + { + double min, max; + for (unsigned int i=0; i bounds; + +}; + +#endif /*MOEONORMALIZEDDISTANCE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h new file mode 100644 index 000000000..ff45ac0c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoCrowdingDiversityAssignment.h @@ -0,0 +1,122 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoCrowdingDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCROWDINGDIVERSITYASSIGNMENT_H_ +#define MOEOCROWDINGDIVERSITYASSIGNMENT_H_ + +#include +#include +#include + +/** + * Diversity assignment sheme based on crowding proposed in: + * K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + */ +template < class MOEOT > +class moeoCrowdingDiversityAssignment : public moeoDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Returns a big value (regarded as infinite) + */ + double inf() const + { + return std::numeric_limits::max(); + } + + + /** + * Returns a very small value that can be used to avoid extreme cases (where the min bound == the max bound) + */ + double tiny() const + { + return 1e-6; + } + + + /** + * Computes diversity values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + if (_pop.size() <= 2) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].diversity(inf()); + } + } + else + { + setDistances(_pop); + } + } + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoCrowdingDiversityAssignment" << std::endl; + } + + +protected: + + /** + * Sets the distance values + * @param _pop the population + */ + virtual void setDistances (eoPop < MOEOT > & _pop) + { + double min, max, distance; + unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives(); + // set diversity to 0 + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].diversity(0); + } + // for each objective + for (unsigned int obj=0; obj objComp(obj); + // sort + std::sort(_pop.begin(), _pop.end(), objComp); + // min & max + min = _pop[0].objectiveVector()[obj]; + max = _pop[_pop.size()-1].objectiveVector()[obj]; + // set the diversity value to infiny for min and max + _pop[0].diversity(inf()); + _pop[_pop.size()-1].diversity(inf()); + for (unsigned int i=1; i<_pop.size()-1; i++) + { + distance = (_pop[i+1].objectiveVector()[obj] - _pop[i-1].objectiveVector()[obj]) / (max-min); + _pop[i].diversity(_pop[i].diversity() + distance); + } + } + } + +}; + +#endif /*MOEOCROWDINGDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h new file mode 100644 index 000000000..05151be7a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoDiversityAssignment.h @@ -0,0 +1,51 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODIVERSITYASSIGNMENT_H_ +#define MOEODIVERSITYASSIGNMENT_H_ + +#include +#include + +/** + * Functor that sets the diversity values of a whole population. + */ +template < class MOEOT > +class moeoDiversityAssignment : public eoUF < eoPop < MOEOT > &, void > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0; + + + /** + * Updates the diversity values of the whole population _pop by taking the deletion of the individual _moeo into account. + * @param _pop the population + * @param _moeo the individual + */ + void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo) + { + updateByDeleting(_pop, _moeo.objectiveVector()); + } + +}; + +#endif /*MOEODIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h new file mode 100644 index 000000000..b7305801c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoDummyDiversityAssignment.h @@ -0,0 +1,59 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDummyDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODUMMYDIVERSITYASSIGNMENT_H_ +#define MOEODUMMYDIVERSITYASSIGNMENT_H_ + +#include + +/** + * moeoDummyDiversityAssignment is a moeoDiversityAssignment that gives the value '0' as the individual's diversity for a whole population if it is invalid. + */ +template < class MOEOT > +class moeoDummyDiversityAssignment : public moeoDiversityAssignment < MOEOT > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Sets the diversity to '0' for every individuals of the population _pop if it is invalid + * @param _pop the population + */ + void operator () (eoPop < MOEOT > & _pop) + { + for (unsigned int idx = 0; idx<_pop.size (); idx++) + { + if (_pop[idx].invalidDiversity()) + { + // set the diversity to 0 + _pop[idx].diversity(0.0); + } + } + } + + + /** + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do... ;-) + } + +}; + +#endif /*MOEODUMMYDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h new file mode 100644 index 000000000..9b2d37a2c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoFrontByFrontCrowdingDiversityAssignment.h @@ -0,0 +1,133 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoFrontByFrontCrowdingDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_ +#define MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_ + +#include +#include + +/** + * Diversity assignment sheme based on crowding proposed in: + * K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + * Tis strategy assigns diversity values FRONT BY FRONT. It is, for instance, used in NSGA-II. + */ +template < class MOEOT > +class moeoFrontByFrontCrowdingDiversityAssignment : public moeoCrowdingDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoFrontByFrontCrowdingDistanceDiversityAssignment" << std::endl; + } + + +private: + + using moeoCrowdingDiversityAssignment < MOEOT >::inf; + using moeoCrowdingDiversityAssignment < MOEOT >::tiny; + + /** + * Sets the distance values + * @param _pop the population + */ + void setDistances (eoPop < MOEOT > & _pop) + { + unsigned int a,b; + double min, max, distance; + unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives(); + // set diversity to 0 for every individual + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].diversity(0.0); + } + // sort the whole pop according to fitness values + moeoFitnessThenDiversityComparator < MOEOT > fitnessComparator; + std::sort(_pop.begin(), _pop.end(), fitnessComparator); + // compute the crowding distance values for every individual "front" by "front" (front : from a to b) + a = 0; // the front starts at a + while (a < _pop.size()) + { + b = lastIndex(_pop,a); // the front ends at b + // if there is less than 2 individuals in the front... + if ((b-a) < 2) + { + for (unsigned int i=a; i<=b; i++) + { + _pop[i].diversity(inf()); + } + } + // else... + else + { + // for each objective + for (unsigned int obj=0; obj objComp(obj); + std::sort(_pop.begin()+a, _pop.begin()+b+1, objComp); + // min & max + min = _pop[b].objectiveVector()[obj]; + max = _pop[a].objectiveVector()[obj]; + // avoid extreme case + if (min == max) + { + min -= tiny(); + max += tiny(); + } + // set the diversity value to infiny for min and max + _pop[a].diversity(inf()); + _pop[b].diversity(inf()); + // set the diversity values for the other individuals + for (unsigned int i=a+1; i & _pop, unsigned int _start) + { + unsigned int i=_start; + while ( (i<_pop.size()-1) && (_pop[i].fitness()==_pop[i+1].fitness()) ) + { + i++; + } + return i; + } + +}; + +#endif /*MOEOFRONTBYFRONTCROWDINGDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h new file mode 100644 index 000000000..dea3b342d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/diversity/moeoFrontByFrontSharingDiversityAssignment.h @@ -0,0 +1,106 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoFrontByFrontSharingDiversityAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_ +#define MOEOFRONTBYFRONTSHARINGDIVERSITYASSIGNMENT_H_ + +#include + +/** + * Sharing assignment scheme on the way it is used in NSGA. + */ +template < class MOEOT > +class moeoFrontByFrontSharingDiversityAssignment : public moeoSharingDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor + * @param _distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoFrontByFrontSharingDiversityAssignment(moeoDistance & _distance, double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_distance, _nicheSize, _alpha) + {} + + + /** + * Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoFrontByFrontSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 2.0) : moeoSharingDiversityAssignment < MOEOT >(_nicheSize, _alpha) + {} + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl; + } + + +private: + + using moeoSharingDiversityAssignment < MOEOT >::distance; + using moeoSharingDiversityAssignment < MOEOT >::nicheSize; + using moeoSharingDiversityAssignment < MOEOT >::sh; + using moeoSharingDiversityAssignment < MOEOT >::operator(); + + + /** + * Sets similarities FRONT BY FRONT for every solution contained in the population _pop + * @param _pop the population + */ + void setSimilarities(eoPop < MOEOT > & _pop) + { + // compute distances between every individuals + moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance); + dMatrix(_pop); + // sets the distance to bigger than the niche size for every couple of solutions that do not belong to the same front + for (unsigned int i=0; i<_pop.size(); i++) + { + for (unsigned int j=0; j +#include +#include +#include +#include +#include + +/** + * Sharing assignment scheme originally porposed by: + * D. E. Goldberg, "Genetic Algorithms in Search, Optimization and Machine Learning", Addision-Wesley, MA, USA (1989). + */ +template < class MOEOT > +class moeoSharingDiversityAssignment : public moeoDiversityAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor + * @param _distance the distance used to compute the neighborhood of solutions (can be related to the decision space or the objective space) + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoSharingDiversityAssignment(moeoDistance & _distance, double _nicheSize = 0.5, double _alpha = 1.0) : distance(_distance), nicheSize(_nicheSize), alpha(_alpha) + {} + + + /** + * Ctor with an euclidean distance (with normalized objective values) in the objective space is used as default + * @param _nicheSize neighborhood size in terms of radius distance (closely related to the way the distances are computed) + * @param _alpha parameter used to regulate the shape of the sharing function + */ + moeoSharingDiversityAssignment(double _nicheSize = 0.5, double _alpha = 1.0) : distance(defaultDistance), nicheSize(_nicheSize), alpha(_alpha) + {} + + + /** + * Sets diversity values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // 1 - set simuilarities + setSimilarities(_pop); + // 2 - a higher diversity is better, so the values need to be inverted + moeoDiversityThenFitnessComparator < MOEOT > divComparator; + double max = std::max_element(_pop.begin(), _pop.end(), divComparator)->diversity(); + for (unsigned int i=0 ; i<_pop.size() ; i++) + { + _pop[i].diversity(max - _pop[i].diversity()); + } + } + + + /** + * @warning NOT IMPLEMENTED, DO NOTHING ! + * Updates the diversity values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + * @warning NOT IMPLEMENTED, DO NOTHING ! + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::cout << "WARNING : updateByDeleting not implemented in moeoSharingDiversityAssignment" << std::endl; + } + + +protected: + + /** the distance used to compute the neighborhood of solutions */ + moeoDistance < MOEOT , double > & distance; + /** euclidean distancein the objective space (can be used as default) */ + moeoEuclideanDistance < MOEOT > defaultDistance; + /** neighborhood size in terms of radius distance */ + double nicheSize; + /** parameter used to regulate the shape of the sharing function */ + double alpha; + + + /** + * Sets similarities for every solution contained in the population _pop + * @param _pop the population + */ + virtual void setSimilarities(eoPop < MOEOT > & _pop) + { + // compute distances between every individuals + moeoDistanceMatrix < MOEOT , double > dMatrix (_pop.size(), distance); + dMatrix(_pop); + // compute similarities + double sum; + for (unsigned int i=0; i<_pop.size(); i++) + { + sum = 0.0; + for (unsigned int j=0; j<_pop.size(); j++) + { + sum += sh(dMatrix[i][j]); + } + _pop[i].diversity(sum); + } + } + + + /** + * Sharing function + * @param _dist the distance value + */ + double sh(double _dist) + { + double result; + if (_dist < nicheSize) + { + result = 1.0 - pow(_dist / nicheSize, alpha); + } + else + { + result = 0.0; + } + return result; + } + +}; + + +#endif /*MOEOSHARINGDIVERSITYASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_checkpoint_moeo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_checkpoint_moeo.h new file mode 100755 index 000000000..14ea4a336 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_checkpoint_moeo.h @@ -0,0 +1,176 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_checkpoint_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_CHECKPOINT_MOEO_H_ +#define MAKE_CHECKPOINT_MOEO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +bool testDirRes(std::string _dirName, bool _erase); + +/** + * This functions allows to build an eoCheckPoint for multi-objective optimization from the parser (partly taken from make_checkpoint_pareto.h) + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + * @param _continue the stopping crietria + * @param _pop the population + * @param _archive the archive of non-dominated solutions + */ +template < class MOEOT > +eoCheckPoint < MOEOT > & do_make_checkpoint_moeo (eoParser & _parser, eoState & _state, eoEvalFuncCounter < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoPop < MOEOT > & _pop, moeoArchive < MOEOT > & _archive) +{ + eoCheckPoint < MOEOT > & checkpoint = _state.storeFunctor(new eoCheckPoint < MOEOT > (_continue)); + /* the objective vector type */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + /////////////////// + // Counters + ////////////////// + // is nb Eval to be used as counter? + //bool useEval = _parser.getORcreateParam(true, "useEval", "Use nb of eval. as counter (vs nb of gen.)", '\0', "Output").value(); + // Create anyway a generation-counter parameter + eoValueParam *generationCounter = new eoValueParam(0, "Gen."); + // Create an incrementor (sub-class of eoUpdater). + eoIncrementor & increment = _state.storeFunctor( new eoIncrementor(generationCounter->value()) ); + // Add it to the checkpoint + checkpoint.add(increment); + // dir for DISK output + std::string & dirName = _parser.getORcreateParam(std::string("Res"), "resDir", "Directory to store DISK outputs", '\0', "Output").value(); + // shoudl we empty it if exists + eoValueParam& eraseParam = _parser.getORcreateParam(true, "eraseDir", "erase files in dirName if any", '\0', "Output"); + bool dirOK = false; // not tested yet + + // Dump of the whole population + //----------------------------- + bool printPop = _parser.getORcreateParam(false, "printPop", "Print sorted pop. every gen.", '\0', "Output").value(); + eoSortedPopStat * popStat; + if ( printPop ) // we do want pop dump + { + popStat = & _state.storeFunctor(new eoSortedPopStat); + checkpoint.add(*popStat); + } + + ////////////////////////////////// + // State savers + ////////////////////////////// + // feed the state to state savers + // save state every N generation + eoValueParam& saveFrequencyParam = _parser.createParam((unsigned int)(0), "saveFrequency", "Save every F generation (0 = only final state, absent = never)", '\0', "Persistence" ); + if (_parser.isItThere(saveFrequencyParam)) + { + // first make sure dirName is OK + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE + unsigned int freq = (saveFrequencyParam.value()>0 ? saveFrequencyParam.value() : UINT_MAX ); +#ifdef _MSVC + std::string stmp = dirName + "\generations"; +#else + std::string stmp = dirName + "/generations"; +#endif + eoCountedStateSaver *stateSaver1 = new eoCountedStateSaver(freq, _state, stmp); + _state.storeFunctor(stateSaver1); + checkpoint.add(*stateSaver1); + } + // save state every T seconds + eoValueParam& saveTimeIntervalParam = _parser.getORcreateParam((unsigned int)(0), "saveTimeInterval", "Save every T seconds (0 or absent = never)", '\0',"Persistence" ); + if (_parser.isItThere(saveTimeIntervalParam) && saveTimeIntervalParam.value()>0) + { + // first make sure dirName is OK + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\time"; +#else + std::string stmp = dirName + "/time"; +#endif + eoTimedStateSaver *stateSaver2 = new eoTimedStateSaver(saveTimeIntervalParam.value(), _state, stmp); + _state.storeFunctor(stateSaver2); + checkpoint.add(*stateSaver2); + } + + /////////////////// + // Archive + ////////////////// + // update the archive every generation + bool updateArch = _parser.getORcreateParam(true, "updateArch", "Update the archive at each gen.", '\0', "Evolution Engine").value(); + if (updateArch) + { + moeoArchiveUpdater < MOEOT > * updater = new moeoArchiveUpdater < MOEOT > (_archive, _pop); + _state.storeFunctor(updater); + checkpoint.add(*updater); + } + // store the objective vectors contained in the archive every generation + bool storeArch = _parser.getORcreateParam(false, "storeArch", "Store the archive's objective vectors at each gen.", '\0', "Output").value(); + if (storeArch) + { + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\arch"; +#else + std::string stmp = dirName + "/arch"; +#endif + moeoArchiveObjectiveVectorSavingUpdater < MOEOT > * save_updater = new moeoArchiveObjectiveVectorSavingUpdater < MOEOT > (_archive, stmp); + _state.storeFunctor(save_updater); + checkpoint.add(*save_updater); + } + // store the contribution of the non-dominated solutions + bool cont = _parser.getORcreateParam(false, "contribution", "Store the contribution of the archive at each gen.", '\0', "Output").value(); + if (cont) + { + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\contribution"; +#else + std::string stmp = dirName + "/contribution"; +#endif + moeoContributionMetric < ObjectiveVector > * contribution = new moeoContributionMetric < ObjectiveVector >; + moeoBinaryMetricSavingUpdater < MOEOT > * contribution_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*contribution, _archive, stmp); + _state.storeFunctor(contribution_updater); + checkpoint.add(*contribution_updater); + } + // store the entropy of the non-dominated solutions + bool ent = _parser.getORcreateParam(false, "entropy", "Store the entropy of the archive at each gen.", '\0', "Output").value(); + if (ent) + { + if (! dirOK ) + dirOK = testDirRes(dirName, eraseParam.value()); // TRUE +#ifdef _MSVC + std::string stmp = dirName + "\entropy"; +#else + std::string stmp = dirName + "/entropy"; +#endif + moeoEntropyMetric < ObjectiveVector > * entropy = new moeoEntropyMetric < ObjectiveVector >; + moeoBinaryMetricSavingUpdater < MOEOT > * entropy_updater = new moeoBinaryMetricSavingUpdater < MOEOT > (*entropy, _archive, stmp); + _state.storeFunctor(entropy_updater); + checkpoint.add(*entropy_updater); + } + + // and that's it for the (control and) output + return checkpoint; +} + +#endif /*MAKE_CHECKPOINT_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_continue_moeo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_continue_moeo.h new file mode 100755 index 000000000..66ebf0501 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_continue_moeo.h @@ -0,0 +1,106 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_continue_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_CONTINUE_MOEO_H_ +#define MAKE_CONTINUE_MOEO_H_ + +#include +#include +#include +#include +#include +#ifndef _MSC_VER +#include +#endif +#include +#include + + +/** + * Helper function + * @param _combined the eoCombinedContinue object + * @param _cont the eoContinue to add + */ +template +eoCombinedContinue * make_combinedContinue(eoCombinedContinue *_combined, eoContinue *_cont) +{ + if (_combined) // already exists + _combined->add(*_cont); + else + _combined = new eoCombinedContinue(*_cont); + return _combined; +} + + +/** + * This functions allows to build a eoContinue for multi-objective optimization from the parser (partly taken from make_continue_pareto.h) + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + */ +template +eoContinue & do_make_continue_moeo(eoParser& _parser, eoState& _state, eoEvalFuncCounter & _eval) +{ + // the combined continue - to be filled + eoCombinedContinue *continuator = NULL; + // First the eoGenContinue - need a default value so you can run blind + // but we also need to be able to avoid it <--> 0 + eoValueParam& maxGenParam = _parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations (0 = none)",'G',"Stopping criterion"); + if (maxGenParam.value()) // positive: -> define and store + { + eoGenContinue *genCont = new eoGenContinue(maxGenParam.value()); + _state.storeFunctor(genCont); + // and "add" to combined + continuator = make_combinedContinue(continuator, genCont); + } + // maxEval + eoValueParam& maxEvalParam = _parser.getORcreateParam((unsigned long)(0), "maxEval", "Maximum number of evaluations (0 = none)", 'E', "Stopping criterion"); + if (maxEvalParam.value()) + { + eoEvalContinue *evalCont = new eoEvalContinue(_eval, maxEvalParam.value()); + _state.storeFunctor(evalCont); + // and "add" to combined + continuator = make_combinedContinue(continuator, evalCont); + } + // maxTime + eoValueParam& maxTimeParam = _parser.getORcreateParam((unsigned long)(0), "maxTime", "Maximum running time in seconds (0 = none)", 'T', "Stopping criterion"); + if (maxTimeParam.value()) // positive: -> define and store + { + eoTimeContinue *timeCont = new eoTimeContinue(maxTimeParam.value()); + _state.storeFunctor(timeCont); + // and "add" to combined + continuator = make_combinedContinue(continuator, timeCont); + } + // CtrlC +#ifndef _MSC_VER + // the CtrlC interception (Linux only I'm afraid) + eoCtrlCContinue *ctrlCCont; + eoValueParam& ctrlCParam = _parser.createParam(true, "CtrlC", "Terminate current generation upon Ctrl C",'C', "Stopping criterion"); + if (_parser.isItThere(ctrlCParam)) + { + ctrlCCont = new eoCtrlCContinue; + // store + _state.storeFunctor(ctrlCCont); + // add to combinedContinue + continuator = make_combinedContinue(continuator, ctrlCCont); + } +#endif + // now check that there is at least one! + if (!continuator) + throw std::runtime_error("You MUST provide a stopping criterion"); + // OK, it's there: store in the eoState + _state.storeFunctor(continuator); + // and return + return *continuator; +} + +#endif /*MAKE_CONTINUE_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_ea_moeo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_ea_moeo.h new file mode 100755 index 000000000..e7e48ce7c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/do/make_ea_moeo.h @@ -0,0 +1,272 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_ea_moeo.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MAKE_EA_MOEO_H_ +#define MAKE_EA_MOEO_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/** + * This functions allows to build a moeoEA from the parser + * @param _parser the parser + * @param _state to store allocated objects + * @param _eval the funtions evaluator + * @param _continue the stopping crietria + * @param _op the variation operators + * @param _archive the archive of non-dominated solutions + */ +template < class MOEOT > +moeoEA < MOEOT > & do_make_ea_moeo(eoParser & _parser, eoState & _state, eoEvalFunc < MOEOT > & _eval, eoContinue < MOEOT > & _continue, eoGenOp < MOEOT > & _op, moeoArchive < MOEOT > & _archive) +{ + + /* the objective vector type */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /* the fitness assignment strategy */ + std::string & fitnessParam = _parser.createParam(std::string("FastNonDominatedSorting"), "fitness", + "Fitness assignment scheme: Dummy, FastNonDominatedSorting or IndicatorBased", 'F', + "Evolution Engine").value(); + std::string & indicatorParam = _parser.createParam(std::string("Epsilon"), "indicator", + "Binary indicator for IndicatorBased: Epsilon, Hypervolume", 'i', + "Evolution Engine").value(); + double rho = _parser.createParam(1.1, "rho", "reference point for the hypervolume indicator", 'r', + "Evolution Engine").value(); + double kappa = _parser.createParam(0.05, "kappa", "Scaling factor kappa for IndicatorBased", 'k', + "Evolution Engine").value(); + moeoFitnessAssignment < MOEOT > * fitnessAssignment; + if (fitnessParam == std::string("Dummy")) + { + fitnessAssignment = new moeoDummyFitnessAssignment < MOEOT> (); + } + else if (fitnessParam == std::string("FastNonDominatedSorting")) + { + fitnessAssignment = new moeoFastNonDominatedSortingFitnessAssignment < MOEOT> (); + } + else if (fitnessParam == std::string("IndicatorBased")) + { + // metric + moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > *metric; + if (indicatorParam == std::string("Epsilon")) + { + metric = new moeoAdditiveEpsilonBinaryMetric < ObjectiveVector >; + } + else if (indicatorParam == std::string("Hypervolume")) + { + metric = new moeoHypervolumeBinaryMetric < ObjectiveVector > (rho); + } + else + { + std::string stmp = std::string("Invalid binary quality indicator: ") + indicatorParam; + throw std::runtime_error(stmp.c_str()); + } + fitnessAssignment = new moeoExpBinaryIndicatorBasedFitnessAssignment < MOEOT > (*metric, kappa); + } + else + { + std::string stmp = std::string("Invalid fitness assignment strategy: ") + fitnessParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(fitnessAssignment); + + + /* the diversity assignment strategy */ + eoValueParam & diversityParam = _parser.createParam(eoParamParamType("Dummy"), "diversity", + "Diversity assignment scheme: Dummy, Sharing(nicheSize) or Crowding", 'D', "Evolution Engine"); + eoParamParamType & diversityParamValue = diversityParam.value(); + moeoDiversityAssignment < MOEOT > * diversityAssignment; + if (diversityParamValue.first == std::string("Dummy")) + { + diversityAssignment = new moeoDummyDiversityAssignment < MOEOT> (); + } + else if (diversityParamValue.first == std::string("Sharing")) + { + double nicheSize; + if (!diversityParamValue.second.size()) // no parameter added + { + std::cerr << "WARNING, no niche size given for Sharing, using 0.5" << std::endl; + nicheSize = 0.5; + diversityParamValue.second.push_back(std::string("0.5")); + } + else + { + nicheSize = atoi(diversityParamValue.second[0].c_str()); + } + diversityAssignment = new moeoFrontByFrontSharingDiversityAssignment < MOEOT> (nicheSize); + } + else if (diversityParamValue.first == std::string("Crowding")) + { + diversityAssignment = new moeoFrontByFrontCrowdingDiversityAssignment < MOEOT> (); + } + else + { + std::string stmp = std::string("Invalid diversity assignment strategy: ") + diversityParamValue.first; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(diversityAssignment); + + + /* the comparator strategy */ + std::string & comparatorParam = _parser.createParam(std::string("FitnessThenDiversity"), "comparator", + "Comparator scheme: FitnessThenDiversity, DiversityThenFitness or Aggregative", 'C', "Evolution Engine").value(); + moeoComparator < MOEOT > * comparator; + if (comparatorParam == std::string("FitnessThenDiversity")) + { + comparator = new moeoFitnessThenDiversityComparator < MOEOT> (); + } + else if (comparatorParam == std::string("DiversityThenFitness")) + { + comparator = new moeoDiversityThenFitnessComparator < MOEOT> (); + } + else if (comparatorParam == std::string("Aggregative")) + { + comparator = new moeoAggregativeComparator < MOEOT> (); + } + else + { + std::string stmp = std::string("Invalid comparator strategy: ") + comparatorParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(comparator); + + + /* the selection strategy */ + eoValueParam < eoParamParamType > & selectionParam = _parser.createParam(eoParamParamType("DetTour(2)"), "selection", + "Selection scheme: DetTour(T), StochTour(t) or Random", 'S', "Evolution Engine"); + eoParamParamType & ppSelect = selectionParam.value(); + moeoSelectOne < MOEOT > * select; + if (ppSelect.first == std::string("DetTour")) + { + unsigned int tSize; + if (!ppSelect.second.size()) // no parameter added + { + std::cerr << "WARNING, no parameter passed to DetTour, using 2" << std::endl; + tSize = 2; + // put back 2 in parameter for consistency (and status file) + ppSelect.second.push_back(std::string("2")); + } + else // parameter passed by user as DetTour(T) + { + tSize = atoi(ppSelect.second[0].c_str()); + } + select = new moeoDetTournamentSelect < MOEOT > (*comparator, tSize); + } + else if (ppSelect.first == std::string("StochTour")) + { + double tRate; + if (!ppSelect.second.size()) // no parameter added + { + std::cerr << "WARNING, no parameter passed to StochTour, using 1" << std::endl; + tRate = 1; + // put back 1 in parameter for consistency (and status file) + ppSelect.second.push_back(std::string("1")); + } + else // parameter passed by user as StochTour(T) + { + tRate = atof(ppSelect.second[0].c_str()); + } + select = new moeoStochTournamentSelect < MOEOT > (*comparator, tRate); + } + /* + else if (ppSelect.first == string("Roulette")) + { + // TO DO ! + // ... + } + */ + else if (ppSelect.first == std::string("Random")) + { + select = new moeoRandomSelect (); + } + else + { + std::string stmp = std::string("Invalid selection strategy: ") + ppSelect.first; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(select); + + + /* the replacement strategy */ + std::string & replacementParam = _parser.createParam(std::string("Elitist"), "replacement", + "Replacement scheme: Elitist, Environmental or Generational", 'R', "Evolution Engine").value(); + moeoReplacement < MOEOT > * replace; + if (replacementParam == std::string("Elitist")) + { + replace = new moeoElitistReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator); + } + else if (replacementParam == std::string("Environmental")) + { + replace = new moeoEnvironmentalReplacement < MOEOT> (*fitnessAssignment, *diversityAssignment, *comparator); + } + else if (replacementParam == std::string("Generational")) + { + replace = new moeoGenerationalReplacement < MOEOT> (); + } + else + { + std::string stmp = std::string("Invalid replacement strategy: ") + replacementParam; + throw std::runtime_error(stmp.c_str()); + } + _state.storeFunctor(replace); + + + /* the number of offspring */ + eoValueParam < eoHowMany > & offspringRateParam = _parser.createParam(eoHowMany(1.0), "nbOffspring", + "Number of offspring (percentage or absolute)", 'O', "Evolution Engine"); + + + // the general breeder + eoGeneralBreeder < MOEOT > * breed = new eoGeneralBreeder < MOEOT > (*select, _op, offspringRateParam.value()); + _state.storeFunctor(breed); + // the eoEasyEA + moeoEA < MOEOT > * algo = new moeoEasyEA < MOEOT > (_continue, _eval, *breed, *replace, *fitnessAssignment, *diversityAssignment); + _state.storeFunctor(algo); + return *algo; + +} + +#endif /*MAKE_EA_MOEO_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h new file mode 100644 index 000000000..7cd5c4bba --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoAchievementFitnessAssignment.h @@ -0,0 +1,145 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAchievementFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOACHIEVEMENTFITNESSASSIGNMENT_H_ +#define MOEOACHIEVEMENTFITNESSASSIGNMENT_H_ + +#include +#include +#include + +/** + * Fitness assignment sheme based on the achievement scalarizing function propozed by Wiersbicki (1980). + */ +template < class MOEOT > +class moeoAchievementFitnessAssignment : public moeoScalarFitnessAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctor + * @param _reference reference point vector + * @param _lambdas weighted coefficients vector + * @param _spn arbitrary small positive number (0 < _spn << 1) + */ + moeoAchievementFitnessAssignment(ObjectiveVector & _reference, std::vector < double > & _lambdas, double _spn=0.0001) : reference(_reference), lambdas(_lambdas), spn(_spn) + { + // consistency check + if ((spn < 0.0) || (spn > 1.0)) + { + std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n"; + spn = 0.0001; + } + } + + + /** + * Ctor with default values for lambdas (1/nObjectives) + * @param _reference reference point vector + * @param _spn arbitrary small positive number (0 < _spn << 1) + */ + moeoAchievementFitnessAssignment(ObjectiveVector & _reference, double _spn=0.0001) : reference(_reference), spn(_spn) + { + // compute the default values for lambdas + lambdas = std::vector < double > (ObjectiveVector::nObjectives()); + for (unsigned int i=0 ; i 1.0)) + { + std::cout << "Warning, the arbitrary small positive number should be > 0 and <<1, adjusted to 0.0001\n"; + spn = 0.0001; + } + } + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + virtual void operator()(eoPop < MOEOT > & _pop) + { + for (unsigned int i=0; i<_pop.size() ; i++) + { + compute(_pop[i]); + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account (nothing to do). + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do ;-) + } + + + /** + * Sets the reference point + * @param _reference the new reference point + */ + void setReference(const ObjectiveVector & _reference) + { + reference = _reference; + } + + +private: + + /** the reference point */ + ObjectiveVector reference; + /** the weighted coefficients vector */ + std::vector < double > lambdas; + /** an arbitrary small positive number (0 < _spn << 1) */ + double spn; + + + /** + * Returns a big value (regarded as infinite) + */ + double inf() const + { + return std::numeric_limits::max(); + } + + + /** + * Computes the fitness value for a solution + * @param _moeo the solution + */ + void compute(MOEOT & _moeo) + { + unsigned int nobj = MOEOT::ObjectiveVector::nObjectives(); + double temp; + double min = inf(); + double sum = 0; + for (unsigned int obj=0; obj + +/** + * moeoIndicatorBasedFitnessAssignment for binary indicators. + */ +template < class MOEOT > +class moeoBinaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {}; + +#endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h new file mode 100644 index 000000000..0b3131e54 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoCriterionBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoCriterionBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_ +#define MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoCriterionBasedFitnessAssignment is a moeoFitnessAssignment for criterion-based strategies. + */ +template < class MOEOT > +class moeoCriterionBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOCRITERIONBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h new file mode 100644 index 000000000..e82436b4b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoDummyFitnessAssignment.h @@ -0,0 +1,59 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDummyFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODUMMYFITNESSASSIGNMENT_H_ +#define MOEODUMMYFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoDummyFitnessAssignment is a moeoFitnessAssignment that gives the value '0' as the individual's fitness for a whole population if it is invalid. + */ +template < class MOEOT > +class moeoDummyFitnessAssignment : public moeoFitnessAssignment < MOEOT > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Sets the fitness to '0' for every individuals of the population _pop if it is invalid + * @param _pop the population + */ + void operator () (eoPop < MOEOT > & _pop) + { + for (unsigned int idx = 0; idx<_pop.size (); idx++) + { + if (_pop[idx].invalidFitness()) + { + // set the diversity to 0 + _pop[idx].fitness(0.0); + } + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + // nothing to do... ;-) + } + +}; + +#endif /*MOEODUMMYFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h new file mode 100644 index 000000000..9c8f8bbd2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoExpBinaryIndicatorBasedFitnessAssignment.h @@ -0,0 +1,202 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOEXPBINARYINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include +#include +#include +#include +#include +#include + +/** + * Fitness assignment sheme based on an indicator proposed in: + * E. Zitzler, S. Künzli, "Indicator-Based Selection in Multiobjective Search", Proc. 8th International Conference on Parallel Problem Solving from Nature (PPSN VIII), pp. 832-842, Birmingham, UK (2004). + * This strategy is, for instance, used in IBEA. + */ +template < class MOEOT > +class moeoExpBinaryIndicatorBasedFitnessAssignment : public moeoBinaryIndicatorBasedFitnessAssignment < MOEOT > +{ +public: + + /** The type of objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor. + * @param _metric the quality indicator + * @param _kappa the scaling factor + */ + moeoExpBinaryIndicatorBasedFitnessAssignment(moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > & _metric, const double _kappa = 0.05) : metric(_metric), kappa(_kappa) + {} + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // 1 - setting of the bounds + setup(_pop); + // 2 - computing every indicator values + computeValues(_pop); + // 3 - setting fitnesses + setFitnesses(_pop); + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::vector < double > v; + v.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + v[i] = metric(_objVec, _pop[i].objectiveVector()); + } + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness( _pop[i].fitness() + exp(-v[i]/kappa) ); + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the adding of the objective vector _objVec into account + * and returns the fitness value of _objVec. + * @param _pop the population + * @param _objVec the objective vector + */ + double updateByAdding(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + std::vector < double > v; + // update every fitness values to take the new individual into account + v.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + v[i] = metric(_objVec, _pop[i].objectiveVector()); + } + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness( _pop[i].fitness() - exp(-v[i]/kappa) ); + } + // compute the fitness of the new individual + v.clear(); + v.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + v[i] = metric(_pop[i].objectiveVector(), _objVec); + } + double result = 0; + for (unsigned int i=0; i & metric; + /** the scaling factor */ + double kappa; + /** the computed indicator values */ + std::vector < std::vector > values; + + + /** + * Sets the bounds for every objective using the min and the max value for every objective vector of _pop + * @param _pop the population + */ + void setup(const eoPop < MOEOT > & _pop) + { + double min, max; + for (unsigned int i=0; i & _pop) + { + values.clear(); + values.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + values[i].resize(_pop.size()); + for (unsigned int j=0; j<_pop.size(); j++) + { + if (i != j) + { + values[i][j] = metric(_pop[i].objectiveVector(), _pop[j].objectiveVector()); + } + } + } + } + + + /** + * Sets the fitness value of the whple population + * @param _pop the population + */ + void setFitnesses(eoPop < MOEOT > & _pop) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + _pop[i].fitness(computeFitness(i)); + } + } + + + /** + * Returns the fitness value of the _idx th individual of the population + * @param _idx the index + */ + double computeFitness(const unsigned int _idx) + { + double result = 0; + for (unsigned int i=0; i +#include +#include +#include +#include +#include + + +/** + * Fitness assignment sheme based on Pareto-dominance count proposed in: + * N. Srinivas, K. Deb, "Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms", Evolutionary Computation vol. 2, no. 3, pp. 221-248 (1994) + * and in: + * K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, "A Fast and Elitist Multi-Objective Genetic Algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, vol. 6, no. 2 (2002). + * This strategy is, for instance, used in NSGA and NSGA-II. + */ +template < class MOEOT > +class moeoFastNonDominatedSortingFitnessAssignment : public moeoParetoBasedFitnessAssignment < MOEOT > +{ +public: + + /** the objective vector type of the solutions */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Default ctor + */ + moeoFastNonDominatedSortingFitnessAssignment() : comparator(paretoComparator) + {} + + + /** + * Ctor where you can choose your own way to compare objective vectors + * @param _comparator the functor used to compare objective vectors + */ + moeoFastNonDominatedSortingFitnessAssignment(moeoObjectiveVectorComparator < ObjectiveVector > & _comparator) : comparator(_comparator) + {} + + + /** + * Sets the fitness values for every solution contained in the population _pop + * @param _pop the population + */ + void operator()(eoPop < MOEOT > & _pop) + { + // number of objectives for the problem under consideration + unsigned int nObjectives = MOEOT::ObjectiveVector::nObjectives(); + if (nObjectives == 1) + { + // one objective + oneObjective(_pop); + } + else if (nObjectives == 2) + { + // two objectives (the two objectives function is still to implement) + mObjectives(_pop); + } + else if (nObjectives > 2) + { + // more than two objectives + mObjectives(_pop); + } + else + { + // problem with the number of objectives + throw std::runtime_error("Problem with the number of objectives in moeoNonDominatedSortingFitnessAssignment"); + } + // a higher fitness is better, so the values need to be inverted + double max = _pop[0].fitness(); + for (unsigned int i=1 ; i<_pop.size() ; i++) + { + max = std::max(max, _pop[i].fitness()); + } + for (unsigned int i=0 ; i<_pop.size() ; i++) + { + _pop[i].fitness(max - _pop[i].fitness()); + } + } + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) + { + for (unsigned int i=0; i<_pop.size(); i++) + { + // if _pop[i] is dominated by _objVec + if ( comparator(_pop[i].objectiveVector(), _objVec) ) + { + _pop[i].fitness(_pop[i].fitness()+1); + } + } + } + + +private: + + /** Functor to compare two objective vectors */ + moeoObjectiveVectorComparator < ObjectiveVector > & comparator; + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + /** Functor allowing to compare two solutions according to their first objective value, then their second, and so on. */ + class ObjectiveComparator : public moeoComparator < MOEOT > + { + public: + /** + * Returns true if _moeo1 < _moeo2 on the first objective, then on the second, and so on + * @param _moeo1 the first solution + * @param _moeo2 the second solution + */ + const bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return cmp(_moeo1.objectiveVector(), _moeo2.objectiveVector()); + } + private: + /** the corresponding comparator for objective vectors */ + moeoObjectiveObjectiveVectorComparator < ObjectiveVector > cmp; + } objComparator; + + + /** + * Sets the fitness values for mono-objective problems + * @param _pop the population + */ + void oneObjective (eoPop < MOEOT > & _pop) + { + // sorts the population in the ascending order + std::sort(_pop.begin(), _pop.end(), objComparator); + // assign fitness values + unsigned int rank = 1; + _pop[_pop.size()-1].fitness(rank); + for (unsigned int i=_pop.size()-2; i>=0; i--) + { + if (_pop[i].objectiveVector() != _pop[i+1].objectiveVector()) + { + rank++; + } + _pop[i].fitness(rank); + } + } + + + /** + * Sets the fitness values for bi-objective problems with a complexity of O(n log n), where n stands for the population size + * @param _pop the population + */ + void twoObjectives (eoPop < MOEOT > & _pop) + { + //... TO DO ! + } + + + /** + * Sets the fitness values for problems with more than two objectives with a complexity of O(n² log n), where n stands for the population size + * @param _pop the population + */ + void mObjectives (eoPop < MOEOT > & _pop) + { + // S[i] = indexes of the individuals dominated by _pop[i] + std::vector < std::vector > S(_pop.size()); + // n[i] = number of individuals that dominate the individual _pop[i] + std::vector < unsigned int > n(_pop.size(), 0); + // fronts: F[i] = indexes of the individuals contained in the ith front + std::vector < std::vector > F(_pop.size()+2); + // used to store the number of the first front + F[1].reserve(_pop.size()); + for (unsigned int p=0; p<_pop.size(); p++) + { + for (unsigned int q=0; q<_pop.size(); q++) + { + // if q is dominated by p + if ( comparator(_pop[q].objectiveVector(), _pop[p].objectiveVector()) ) + { + // add q to the set of solutions dominated by p + S[p].push_back(q); + } + // if p is dominated by q + else if ( comparator(_pop[p].objectiveVector(), _pop[q].objectiveVector()) ) + { + // increment the domination counter of p + n[p]++; + } + } + // if no individual dominates p + if (n[p] == 0) + { + // p belongs to the first front + _pop[p].fitness(1); + F[1].push_back(p); + } + } + // front counter + unsigned int counter=1; + unsigned int p,q; + while (! F[counter].empty()) + { + // used to store the number of the next front + F[counter+1].reserve(_pop.size()); + for (unsigned int i=0; i +#include + +/** + * Functor that sets the fitness values of a whole population. + */ +template < class MOEOT > +class moeoFitnessAssignment : public eoUF < eoPop < MOEOT > &, void > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the objective vector _objVec into account. + * @param _pop the population + * @param _objVec the objective vector + */ + virtual void updateByDeleting(eoPop < MOEOT > & _pop, ObjectiveVector & _objVec) = 0; + + + /** + * Updates the fitness values of the whole population _pop by taking the deletion of the individual _moeo into account. + * @param _pop the population + * @param _moeo the individual + */ + void updateByDeleting(eoPop < MOEOT > & _pop, MOEOT & _moeo) + { + updateByDeleting(_pop, _moeo.objectiveVector()); + } + +}; + +#endif /*MOEOFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h new file mode 100644 index 000000000..0539c179a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoIndicatorBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoIndicatorBasedFitnessAssignment is a moeoFitnessAssignment for Indicator-based strategies. + */ +template < class MOEOT > +class moeoIndicatorBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h new file mode 100644 index 000000000..9ffc64d3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoParetoBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoParetoBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOPARETOBASEDFITNESSASSIGNMENT_H_ +#define MOEOPARETOBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoParetoBasedFitnessAssignment is a moeoFitnessAssignment for Pareto-based strategies. + */ +template < class MOEOT > +class moeoParetoBasedFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOPARETOBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h new file mode 100644 index 000000000..d2e8508f3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoScalarFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoScalarFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSCALARFITNESSASSIGNMENT_H_ +#define MOEOSCALARFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoScalarFitnessAssignment is a moeoFitnessAssignment for scalar strategies. + */ +template < class MOEOT > +class moeoScalarFitnessAssignment : public moeoFitnessAssignment < MOEOT > {}; + +#endif /*MOEOSCALARFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h new file mode 100644 index 000000000..47508effb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/fitness/moeoUnaryIndicatorBasedFitnessAssignment.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoUnaryIndicatorBasedFitnessAssignment.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_ +#define MOEOUNARYINDICATORBASEDFITNESSASSIGNMENT_H_ + +#include + +/** + * moeoIndicatorBasedFitnessAssignment for unary indicators. + */ +template < class MOEOT > +class moeoUnaryIndicatorBasedFitnessAssignment : public moeoIndicatorBasedFitnessAssignment < MOEOT > {}; + +#endif /*MOEOINDICATORBASEDFITNESSASSIGNMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h new file mode 100644 index 000000000..95304becb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoAdditiveEpsilonBinaryMetric.h @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoAdditiveEpsilonBinaryMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOADDITIVEEPSILONBINARYMETRIC_H_ +#define MOEOADDITIVEEPSILONBINARYMETRIC_H_ + +#include + +/** + * Additive epsilon binary metric allowing to compare two objective vectors as proposed in + * Zitzler E., Thiele L., Laumanns M., Fonseca C. M., Grunert da Fonseca V.: + * Performance Assessment of Multiobjective Optimizers: An Analysis and Review. IEEE Transactions on Evolutionary Computation 7(2), pp.117–132 (2003). + */ +template < class ObjectiveVector > +class moeoAdditiveEpsilonBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Returns the minimal distance by which the objective vector _o1 must be translated in all objectives + * so that it weakly dominates the objective vector _o2 + * @warning don't forget to set the bounds for every objective before the call of this function + * @param _o1 the first objective vector + * @param _o2 the second objective vector + */ + double operator()(const ObjectiveVector & _o1, const ObjectiveVector & _o2) + { + // computation of the epsilon value for the first objective + double result = epsilon(_o1, _o2, 0); + // computation of the epsilon value for the other objectives + double tmp; + for (unsigned int i=1; i :: bounds; + + + /** + * Returns the epsilon value by which the objective vector _o1 must be translated in the objective _obj + * so that it dominates the objective vector _o2 + * @param _o1 the first objective vector + * @param _o2 the second objective vector + * @param _obj the index of the objective + */ + double epsilon(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj) + { + double result; + // if the objective _obj have to be minimized + if (ObjectiveVector::Traits::minimizing(_obj)) + { + // _o1[_obj] - _o2[_obj] + result = ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ); + } + // if the objective _obj have to be maximized + else + { + // _o2[_obj] - _o1[_obj] + result = ( (_o2[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ) - ( (_o1[_obj] - bounds[_obj].minimum()) / bounds[_obj].range() ); + } + return result; + } + +}; + +#endif /*MOEOADDITIVEEPSILONBINARYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoContributionMetric.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoContributionMetric.h new file mode 100644 index 000000000..28736427c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoContributionMetric.h @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoContributionMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOCONTRIBUTIONMETRIC_H_ +#define MOEOCONTRIBUTIONMETRIC_H_ + +#include +#include + +/** + * The contribution metric evaluates the proportion of non-dominated solutions given by a Pareto set relatively to another Pareto set + * (Meunier, Talbi, Reininger: 'A multiobjective genetic algorithm for radio network optimization', in Proc. of the 2000 Congress on Evolutionary Computation, IEEE Press, pp. 317-324) + */ +template < class ObjectiveVector > +class moeoContributionMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Returns the contribution of the Pareto set '_set1' relatively to the Pareto set '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int c = card_C(_set1, _set2); + unsigned int w1 = card_W(_set1, _set2); + unsigned int n1 = card_N(_set1, _set2); + unsigned int w2 = card_W(_set2, _set1); + unsigned int n2 = card_N(_set2, _set1); + return (double) (c / 2.0 + w1 + n1) / (c + w1 + n1 + w2 + n2); + } + + +private: + + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Returns the number of solutions both in '_set1' and '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + unsigned int card_C (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int c=0; + for (unsigned int i=0; i<_set1.size(); i++) + for (unsigned int j=0; j<_set2.size(); j++) + if (_set1[i] == _set2[j]) { + c++; + break; + } + return c; + } + + + /** + * Returns the number of solutions in '_set1' dominating at least one solution of '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + unsigned int card_W (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int w=0; + for (unsigned int i=0; i<_set1.size(); i++) + for (unsigned int j=0; j<_set2.size(); j++) + if (paretoComparator(_set2[j], _set1[i])) + { + w++; + break; + } + return w; + } + + + /** + * Returns the number of solutions in '_set1' having no relation of dominance with those from '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + unsigned int card_N (const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + unsigned int n=0; + for (unsigned int i=0; i<_set1.size(); i++) { + bool domin_rel = false; + for (unsigned int j=0; j<_set2.size(); j++) + if ( (paretoComparator(_set2[j], _set1[i])) || (paretoComparator(_set1[i], _set2[j])) ) + { + domin_rel = true; + break; + } + if (! domin_rel) + n++; + } + return n; + } + +}; + +#endif /*MOEOCONTRIBUTIONMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoEntropyMetric.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoEntropyMetric.h new file mode 100644 index 000000000..a19e029f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoEntropyMetric.h @@ -0,0 +1,182 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEntropyMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOENTROPYMETRIC_H_ +#define MOEOENTROPYMETRIC_H_ + +#include +#include +#include + +/** + * The entropy gives an idea of the diversity of a Pareto set relatively to another + * (Basseur, Seynhaeve, Talbi: 'Design of Multi-objective Evolutionary Algorithms: Application to the Flow-shop Scheduling Problem', in Proc. of the 2002 Congress on Evolutionary Computation, IEEE Press, pp. 1155-1156) + */ +template < class ObjectiveVector > +class moeoEntropyMetric : public moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Returns the entropy of the Pareto set '_set1' relatively to the Pareto set '_set2' + * @param _set1 the first Pareto set + * @param _set2 the second Pareto set + */ + double operator()(const std::vector < ObjectiveVector > & _set1, const std::vector < ObjectiveVector > & _set2) { + // normalization + std::vector< ObjectiveVector > set1 = _set1; + std::vector< ObjectiveVector > set2= _set2; + removeDominated (set1); + removeDominated (set2); + prenormalize (set1); + normalize (set1); + normalize (set2); + + // making of PO* + std::vector< ObjectiveVector > star; // rotf :-) + computeUnion (set1, set2, star); + removeDominated (star); + + // making of PO1 U PO* + std::vector< ObjectiveVector > union_set1_star; // rotf again ... + computeUnion (set1, star, union_set1_star); + + unsigned int C = union_set1_star.size(); + float omega=0; + float entropy=0; + + for (unsigned int i=0 ; i 0) { + omega += 1.0 / N_i; + entropy += (float) n_i / (N_i * C) * log (((float) n_i / C) / log (2.0)); + } + } + entropy /= - log (omega); + entropy *= log (2.0); + return entropy; + } + + +private: + + /** vector of min values */ + std::vector vect_min_val; + /** vector of max values */ + std::vector vect_max_val; + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Removes the dominated individuals contained in _f + * @param _f a Pareto set + */ + void removeDominated(std::vector < ObjectiveVector > & _f) { + for (unsigned int i=0 ; i<_f.size(); i++) { + bool dom = false; + for (unsigned int j=0; j<_f.size(); j++) + if (i != j && paretoComparator(_f[i],_f[j])) + { + dom = true; + break; + } + if (dom) { + _f[i] = _f.back(); + _f.pop_back(); + i--; + } + } + } + + + /** + * Prenormalization + * @param _f a Pareto set + */ + void prenormalize (const std::vector< ObjectiveVector > & _f) { + vect_min_val.clear(); + vect_max_val.clear(); + + for (unsigned int i=0 ; imax_val) + max_val = _f[j][i]; + } + vect_min_val.push_back(min_val); + vect_max_val.push_back (max_val); + } + } + + + /** + * Normalization + * @param _f a Pareto set + */ + void normalize (std::vector< ObjectiveVector > & _f) { + for (unsigned int i=0 ; i & _f1, const std::vector< ObjectiveVector > & _f2, std::vector< ObjectiveVector > & _f) { + _f = _f1 ; + for (unsigned int i=0; i<_f2.size(); i++) { + bool b = false; + for (unsigned int j=0; j<_f1.size(); j ++) + if (_f1[j] == _f2[i]) { + b = true; + break; + } + if (! b) + _f.push_back(_f2[i]); + } + } + + + /** + * How many in niche + */ + unsigned int howManyInNicheOf (const std::vector< ObjectiveVector > & _f, const ObjectiveVector & _s, unsigned int _size) { + unsigned int n=0; + for (unsigned int i=0 ; i<_f.size(); i++) { + if (euclidianDistance(_f[i], _s) < (_s.size() / (double) _size)) + n++; + } + return n; + } + + + /** + * Euclidian distance + */ + double euclidianDistance (const ObjectiveVector & _set1, const ObjectiveVector & _to, unsigned int _deg = 2) { + double dist=0; + for (unsigned int i=0; i<_set1.size(); i++) + dist += pow(fabs(_set1[i] - _to[i]), (int)_deg); + return pow(dist, 1.0 / _deg); + } + +}; + +#endif /*MOEOENTROPYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h new file mode 100644 index 000000000..39c51ec63 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoHypervolumeBinaryMetric.h @@ -0,0 +1,141 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoHypervolumeBinaryMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOHYPERVOLUMEBINARYMETRIC_H_ +#define MOEOHYPERVOLUMEBINARYMETRIC_H_ + +#include +#include +#include + +/** + * Hypervolume binary metric allowing to compare two objective vectors as proposed in + * Zitzler E., Künzli S.: Indicator-Based Selection in Multiobjective Search. In Parallel Problem Solving from Nature (PPSN VIII). + * Lecture Notes in Computer Science 3242, Springer, Birmingham, UK pp.832–842 (2004). + * This indicator is based on the hypervolume concept introduced in + * Zitzler, E., Thiele, L.: Multiobjective Optimization Using Evolutionary Algorithms - A Comparative Case Study. + * Parallel Problem Solving from Nature (PPSN-V), pp.292-301 (1998). + */ +template < class ObjectiveVector > +class moeoHypervolumeBinaryMetric : public moeoNormalizedSolutionVsSolutionBinaryMetric < ObjectiveVector, double > +{ +public: + + /** + * Ctor + * @param _rho value used to compute the reference point from the worst values for each objective (default : 1.1) + */ + moeoHypervolumeBinaryMetric(double _rho = 1.1) : rho(_rho) + { + // not-a-maximization problem check + for (unsigned int i=0; i :: bounds; + /** Functor to compare two objective vectors according to Pareto dominance relation */ + moeoParetoObjectiveVectorComparator < ObjectiveVector > paretoComparator; + + + /** + * Returns the volume of the space that is dominated by _o2 but not by _o1 with respect to a reference point computed using rho for the objective _obj. + * @param _o1 the first objective vector + * @param _o2 the second objective vector + * @param _obj the objective index + * @param _flag used for iteration, if _flag=true _o2 is not talen into account (default : false) + */ + double hypervolume(const ObjectiveVector & _o1, const ObjectiveVector & _o2, const unsigned int _obj, const bool _flag = false) + { + double result; + double range = rho * bounds[_obj].range(); + double max = bounds[_obj].minimum() + range; + // value of _1 for the objective _obj + double v1 = _o1[_obj]; + // value of _2 for the objective _obj (if _flag=true, v2=max) + double v2; + if (_flag) + { + v2 = max; + } + else + { + v2 = _o2[_obj]; + } + // computation of the volume + if (_obj == 0) + { + if (v1 < v2) + { + result = (v2 - v1) / range; + } + else + { + result = 0; + } + } + else + { + if (v1 < v2) + { + result = ( hypervolume(_o1, _o2, _obj-1, true) * (v2 - v1) / range ) + ( hypervolume(_o1, _o2, _obj-1) * (max - v2) / range ); + } + else + { + result = hypervolume(_o1, _o2, _obj-1) * (max - v2) / range; + } + } + return result; + } + +}; + +#endif /*MOEOHYPERVOLUMEBINARYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoMetric.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoMetric.h new file mode 100644 index 000000000..6678e9a1d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoMetric.h @@ -0,0 +1,67 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOMETRIC_H_ +#define MOEOMETRIC_H_ + +#include +#include + +/** + * Base class for performance metrics (also known as quality indicators). + */ +class moeoMetric : public eoFunctorBase {}; + + +/** + * Base class for unary metrics. + */ +template < class A, class R > +class moeoUnaryMetric : public eoUF < A, R >, public moeoMetric {}; + + +/** + * Base class for binary metrics. + */ +template < class A1, class A2, class R > +class moeoBinaryMetric : public eoBF < A1, A2, R >, public moeoMetric {}; + + +/** + * Base class for unary metrics dedicated to the performance evaluation of a single solution's objective vector. + */ +template < class ObjectiveVector, class R > +class moeoSolutionUnaryMetric : public moeoUnaryMetric < const ObjectiveVector &, R > {}; + + +/** + * Base class for unary metrics dedicated to the performance evaluation of a Pareto set (a vector of objective vectors) + */ +template < class ObjectiveVector, class R > +class moeoVectorUnaryMetric : public moeoUnaryMetric < const std::vector < ObjectiveVector > &, R > {}; + + +/** + * Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors. + */ +template < class ObjectiveVector, class R > +class moeoSolutionVsSolutionBinaryMetric : public moeoBinaryMetric < const ObjectiveVector &, const ObjectiveVector &, R > {}; + + +/** + * Base class for binary metrics dedicated to the performance comparison between two Pareto sets (two vectors of objective vectors) + */ +template < class ObjectiveVector, class R > +class moeoVectorVsVectorBinaryMetric : public moeoBinaryMetric < const std::vector < ObjectiveVector > &, const std::vector < ObjectiveVector > &, R > {}; + + +#endif /*MOEOMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h new file mode 100644 index 000000000..e3e390a7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/metric/moeoNormalizedSolutionVsSolutionBinaryMetric.h @@ -0,0 +1,88 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoNormalizedSolutionVsSolutionBinaryMetric.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_ +#define MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_ + +#include +#include +#include + +/** + * Base class for binary metrics dedicated to the performance comparison between two solutions's objective vectors using normalized values. + * Then, indicator values lie in the interval [-1,1]. + * Note that you have to set the bounds for every objective before using the operator(). + */ +template < class ObjectiveVector, class R > +class moeoNormalizedSolutionVsSolutionBinaryMetric : public moeoSolutionVsSolutionBinaryMetric < ObjectiveVector, R > +{ +public: + + /** + * Default ctr for any moeoNormalizedSolutionVsSolutionBinaryMetric object + */ + moeoNormalizedSolutionVsSolutionBinaryMetric() + { + bounds.resize(ObjectiveVector::Traits::nObjectives()); + // initialize bounds in case someone does not want to use them + for (unsigned int i=0; i bounds; + +}; + +#endif /*MOEONORMALIZEDSOLUTIONVSSOLUTIONBINARYMETRIC_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/moeo b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/moeo new file mode 100644 index 000000000..c2d722a58 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/moeo @@ -0,0 +1,101 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeo +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEO_ +#define MOEO_ + + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + + +#endif /*MOEO_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoElitistReplacement.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoElitistReplacement.h new file mode 100644 index 000000000..b6bb9807d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoElitistReplacement.h @@ -0,0 +1,130 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoElitistReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOELITISTREPLACEMENT_H_ +#define MOEOELITISTREPLACEMENT_H_ + +#include +#include +#include +#include +#include +#include + +/** + * Elitist replacement strategy that consists in keeping the N best individuals. + */ +template < class MOEOT > class moeoElitistReplacement:public moeoReplacement < MOEOT > +{ +public: + + /** + * Full constructor. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator) + {} + + + /** + * Constructor without comparator. A moeoFitThenDivComparator is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator) + {} + + + /** + * Constructor without moeoDiversityAssignement. A dummy diversity is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator) + {} + + + /** + * Constructor without moeoDiversityAssignement nor moeoComparator. + * A moeoFitThenDivComparator and a dummy diversity are used as default. + * @param _fitnessAssignment the fitness assignment strategy + */ + moeoElitistReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator) + {} + + + /** + * Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. + * @param _parents the population composed of the parents (the population you want to replace) + * @param _offspring the offspring population + */ + void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring) + { + unsigned int sz = _parents.size (); + // merges offspring and parents into a global population + _parents.reserve (_parents.size () + _offspring.size ()); + std::copy (_offspring.begin (), _offspring.end (), back_inserter (_parents)); + // evaluates the fitness and the diversity of this global population + fitnessAssignment (_parents); + diversityAssignment (_parents); + // sorts the whole population according to the comparator + std::sort(_parents.begin(), _parents.end(), comparator); + // finally, resize this global population + _parents.resize (sz); + // and clear the offspring population + _offspring.clear (); + } + + +protected: + + /** the fitness assignment strategy */ + moeoFitnessAssignment < MOEOT > & fitnessAssignment; + /** the diversity assignment strategy */ + moeoDiversityAssignment < MOEOT > & diversityAssignment; + /** a dummy diversity assignment can be used as default */ + moeoDummyDiversityAssignment < MOEOT > defaultDiversity; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** this object is used to compare solutions in order to sort the population */ + class Cmp + { + public: + /** + * Ctor. + * @param _comp the comparator + */ + Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp) + {} + /** + * Returns true if _moeo1 is greater than _moeo2 according to the comparator + * _moeo1 the first individual + * _moeo2 the first individual + */ + bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return comp(_moeo2,_moeo1); + } + private: + /** the comparator */ + moeoComparator < MOEOT > & comp; + } comparator; + +}; + +#endif /*MOEOELITISTREPLACEMENT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h new file mode 100755 index 000000000..68bc032c1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoEnvironmentalReplacement.h @@ -0,0 +1,146 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoEnvironmentalReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOENVIRONMENTALREPLACEMENT_H_ +#define MOEOENVIRONMENTALREPLACEMENT_H_ + +#include +#include +#include +#include +#include + +/** + * Environmental replacement strategy that consists in keeping the N best individuals by deleting individuals 1 by 1 + * and by updating the fitness and diversity values after each deletion. + */ +template < class MOEOT > class moeoEnvironmentalReplacement:public moeoReplacement < MOEOT > +{ +public: + + /** The type for objective vector */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Full constructor. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (_comparator) + {} + + + /** + * Constructor without comparator. A moeoFitThenDivComparator is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _diversityAssignment the diversity assignment strategy + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoDiversityAssignment < MOEOT > & _diversityAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (_diversityAssignment), comparator (defaultComparator) + {} + + + /** + * Constructor without moeoDiversityAssignement. A dummy diversity is used as default. + * @param _fitnessAssignment the fitness assignment strategy + * @param _comparator the comparator (used to compare 2 individuals) + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment, moeoComparator < MOEOT > & _comparator) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (_comparator) + {} + + + /** + * Constructor without moeoDiversityAssignement nor moeoComparator. + * A moeoFitThenDivComparator and a dummy diversity are used as default. + * @param _fitnessAssignment the fitness assignment strategy + */ + moeoEnvironmentalReplacement (moeoFitnessAssignment < MOEOT > & _fitnessAssignment) : + fitnessAssignment (_fitnessAssignment), diversityAssignment (defaultDiversity), comparator (defaultComparator) + {} + + + /** + * Replaces the first population by adding the individuals of the second one, sorting with a moeoComparator and resizing the whole population obtained. + * @param _parents the population composed of the parents (the population you want to replace) + * @param _offspring the offspring population + */ + void operator () (eoPop < MOEOT > &_parents, eoPop < MOEOT > &_offspring) + { + unsigned int sz = _parents.size(); + // merges offspring and parents into a global population + _parents.reserve (_parents.size() + _offspring.size()); + std::copy (_offspring.begin(), _offspring.end(), back_inserter(_parents)); + // evaluates the fitness and the diversity of this global population + fitnessAssignment (_parents); + diversityAssignment (_parents); + // remove individuals 1 by 1 and update the fitness values + unsigned int worstIdx; + ObjectiveVector worstObjVec; + while (_parents.size() > sz) + { + // the individual to delete + worstIdx = std::min_element(_parents.begin(), _parents.end(), comparator) - _parents.begin(); + worstObjVec = _parents[worstIdx].objectiveVector(); + // remove the woorst individual + _parents[worstIdx] = _parents.back(); + _parents.pop_back(); + // update of the fitness and diversity values + fitnessAssignment.updateByDeleting(_parents, worstObjVec); + diversityAssignment.updateByDeleting(_parents, worstObjVec); + + } + // clear the offspring population + _offspring.clear (); + } + + +protected: + + /** the fitness assignment strategy */ + moeoFitnessAssignment < MOEOT > & fitnessAssignment; + /** the diversity assignment strategy */ + moeoDiversityAssignment < MOEOT > & diversityAssignment; + /** a dummy diversity assignment can be used as default */ + moeoDummyDiversityAssignment < MOEOT > defaultDiversity; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** this object is used to compare solutions in order to sort the population */ + class Cmp + { + public: + /** + * Ctor. + * @param _comp the comparator + */ + Cmp(moeoComparator < MOEOT > & _comp) : comp(_comp) + {} + /** + * Returns true if _moeo1 is greater than _moeo2 according to the comparator + * _moeo1 the first individual + * _moeo2 the first individual + */ + bool operator()(const MOEOT & _moeo1, const MOEOT & _moeo2) + { + return comp(_moeo1,_moeo2); + } + private: + /** the comparator */ + moeoComparator < MOEOT > & comp; + } comparator; + +}; + +#endif /*MOEOENVIRONMENTALREPLACEMENT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h new file mode 100644 index 000000000..e3d1f6235 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoGenerationalReplacement.h @@ -0,0 +1,39 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoGenerationalReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOGENERATIONALREPLACEMENT_H_ +#define MOEOGENERATIONALREPLACEMENT_H_ + +#include +#include + +/** + * Generational replacement: only the new individuals are preserved. + */ +template < class MOEOT > +class moeoGenerationalReplacement : public moeoReplacement < MOEOT >, public eoGenerationalReplacement < MOEOT > +{ +public: + + /** + * Swaps _parents and _offspring + * @param _parents the parents population + * @param _offspring the offspring population + */ + void operator()(eoPop < MOEOT > & _parents, eoPop < MOEOT > & _offspring) + { + eoGenerationalReplacement < MOEOT >::operator ()(_parents, _offspring); + } + +}; + +#endif /*MOEOGENERATIONALREPLACEMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoReplacement.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoReplacement.h new file mode 100644 index 000000000..aa0631754 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/replacement/moeoReplacement.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoReplacement.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOREPLACEMENT_H_ +#define MOEOREPLACEMENT_H_ + +#include + +/** + * Replacement strategy for multi-objective optimization. + */ +template < class MOEOT > +class moeoReplacement : public eoReplacement < MOEOT > {}; + +#endif /*MOEOREPLACEMENT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h new file mode 100644 index 000000000..e60709c5b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoDetTournamentSelect.h @@ -0,0 +1,83 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoDetTournamentSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEODETTOURNAMENTSELECT_H_ +#define MOEODETTOURNAMENTSELECT_H_ + +#include +#include +#include +#include + +/** + * Selection strategy that selects ONE individual by deterministic tournament. + */ +template < class MOEOT > class moeoDetTournamentSelect:public moeoSelectOne < MOEOT > +{ +public: + + /** + * Full Ctor. + * @param _comparator the comparator (used to compare 2 individuals) + * @param _tSize the number of individuals in the tournament (default: 2) + */ + moeoDetTournamentSelect (moeoComparator < MOEOT > & _comparator, unsigned int _tSize = 2) : comparator (_comparator), tSize (_tSize) + { + // consistency check + if (tSize < 2) + { + std:: + cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n"; + tSize = 2; + } + } + + + /** + * Ctor without comparator. A moeoFitnessThenDiversityComparator is used as default. + * @param _tSize the number of individuals in the tournament (default: 2) + */ + moeoDetTournamentSelect (unsigned int _tSize = 2) : comparator (defaultComparator), tSize (_tSize) + { + // consistency check + if (tSize < 2) + { + std:: + cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n"; + tSize = 2; + } + } + + + /** + * Apply the tournament to the given population + * @param _pop the population + */ + const MOEOT & operator() (const eoPop < MOEOT > &_pop) + { + // use the selector + return mo_deterministic_tournament (_pop, tSize, comparator); + } + + +protected: + + /** the comparator (used to compare 2 individuals) */ + moeoComparator < MOEOT > & comparator; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** the number of individuals in the tournament */ + unsigned int tSize; + +}; + +#endif /*MOEODETTOURNAMENTSELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoRandomSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoRandomSelect.h new file mode 100644 index 000000000..2b5bbd088 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoRandomSelect.h @@ -0,0 +1,43 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRandomSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEORANDOMSELECT_H_ +#define MOEORANDOMSELECT_H_ + +#include +#include + + +/** + * Selection strategy that selects only one element randomly from a whole population. + */ +template < class MOEOT > class moeoRandomSelect:public moeoSelectOne < MOEOT >, public eoRandomSelect +{ +public: + + /** + * Ctor. + */ + moeoRandomSelect(){} + + + /** + * Return one individual at random by using an eoRandomSelect. + */ + const MOEOT & operator () (const eoPop < MOEOT > &_pop) + { + return eoRandomSelect < MOEOT >::operator ()(_pop); + } + +}; + +#endif /*MOEORANDOMSELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoRouletteSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoRouletteSelect.h new file mode 100644 index 000000000..e53b82cfc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoRouletteSelect.h @@ -0,0 +1,62 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoRouletteSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOROULETTESELECT_H_ +#define MOEOROULETTESELECT_H_ + +#include +#include + +/** + * Selection strategy that selects ONE individual by using roulette wheel process. + * @WARNING This selection only uses fitness values (and not diversity values). + */ +template < class MOEOT > +class moeoRouletteSelect:public moeoSelectOne < MOEOT > +{ +public: + + /** + * Ctor. + * @param _tSize the number of individuals in the tournament (default: 2) + */ + moeoRouletteSelect (unsigned int _tSize = 2) : tSize (_tSize) + { + // consistency check + if (tSize < 2) + { + std:: + cout << "Warning, Tournament size should be >= 2\nAdjusted to 2\n"; + tSize = 2; + } + } + + + /** + * Apply the tournament to the given population + * @param _pop the population + */ + const MOEOT & operator () (const eoPop < MOEOT > & _pop) + { + // use the selector + return mo_roulette_wheel(_pop,tSize); + } + + +protected: + + /** size */ + double & tSize; + +}; + +#endif /*MOEOROULETTESELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h new file mode 100644 index 000000000..078a51c19 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectFromPopAndArch.h @@ -0,0 +1,92 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoSelectFormPopAndArch.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSELECTONEFROMPOPANDARCH_H_ +#define MOEOSELECTONEFROMPOPANDARCH_H_ + +#include +#include +#include +#include +#include + +/** + * Elitist selection process that consists in choosing individuals in the archive as well as in the current population. + */ +template < class MOEOT > +class moeoSelectFromPopAndArch : public moeoSelectOne < MOEOT > +{ +public: + + /** + * Ctor + * @param _popSelectOne the population's selection operator + * @param _archSelectOne the archive's selection operator + * @param _arch the archive + * @param _ratioFromPop the ratio of selected individuals from the population + */ + moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoSelectOne < MOEOT > _archSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5) + : popSelectOne(_popSelectOne), archSelectOne(_archSelectOne), arch(_arch), ratioFromPop(_ratioFromPop) + {} + + + /** + * Defaulr ctor - the archive's selection operator is a random selector + * @param _popSelectOne the population's selection operator + * @param _arch the archive + * @param _ratioFromPop the ratio of selected individuals from the population + */ + moeoSelectFromPopAndArch (moeoSelectOne < MOEOT > & _popSelectOne, moeoArchive < MOEOT > & _arch, double _ratioFromPop=0.5) + : popSelectOne(_popSelectOne), archSelectOne(randomSelectOne), arch(_arch), ratioFromPop(_ratioFromPop) + {} + + + /** + * The selection process + */ + virtual const MOEOT & operator () (const eoPop < MOEOT > & pop) + { + if (arch.size() > 0) + if (rng.flip(ratioFromPop)) + return popSelectOne(pop); + else + return archSelectOne(arch); + else + return popSelectOne(pop); + } + + + /** + * Setups some population stats + */ + virtual void setup (const eoPop < MOEOT > & _pop) + { + popSelectOne.setup(_pop); + } + + +private: + + /** The population's selection operator */ + moeoSelectOne < MOEOT > & popSelectOne; + /** The archive's selection operator */ + moeoSelectOne < MOEOT > & archSelectOne; + /** The archive */ + moeoArchive < MOEOT > & arch; + /** The ratio of selected individuals from the population*/ + double ratioFromPop; + /** A random selection operator (used as default for archSelectOne) */ + moeoRandomSelect < MOEOT > randomSelectOne; + +}; + +#endif /*MOEOSELECTONEFROMPOPANDARCH_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectOne.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectOne.h new file mode 100644 index 000000000..7f4129b99 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectOne.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoSelectOne.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSELECTONE_H_ +#define MOEOSELECTONE_H_ + +#include + +/** + * Selection strategy for multi-objective optimization that selects only one element from a whole population. + */ +template < class MOEOT > +class moeoSelectOne : public eoSelectOne < MOEOT > {}; + +#endif /*MOEOSELECTONE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectors.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectors.h new file mode 100644 index 000000000..35f913ae4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoSelectors.h @@ -0,0 +1,158 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoSelectors.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSELECTORS_H_ +#define MOEOSELECTORS_H_ + +#include + + +template +It mo_deterministic_tournament(It _begin, It _end, unsigned int _t_size,moeoComparator& _comparator ,eoRng& _gen = rng) +{ + It best = _begin + _gen.random(_end - _begin); + + for (unsigned int i = 0; i < _t_size - 1; ++i) + { + It competitor = _begin + _gen.random(_end - _begin); + // compare the two individuals by using the comparator + if (_comparator(*best, *competitor)) + // best "better" than competitor + best=competitor; + } + return best; +} + + +template +const MOEOT& mo_deterministic_tournament(const eoPop& _pop, unsigned int _t_size,moeoComparator& _comparator, eoRng& _gen = rng) +{ + return *mo_deterministic_tournament(_pop.begin(), _pop.end(),_t_size,_comparator, _gen); +} + + +template +MOEOT& mo_deterministic_tournament(eoPop& _pop, unsigned int _t_size,moeoComparator& _comparator,eoRng& _gen = rng) +{ + return *mo_deterministic_tournament(_pop.begin(), _pop.end(), _t_size,_comparator, _gen); +} + + +template +It mo_stochastic_tournament(It _begin, It _end, double _t_rate,moeoComparator& _comparator ,eoRng& _gen = rng) +{ + It i1 = _begin + _gen.random(_end - _begin); + It i2 = _begin + _gen.random(_end - _begin); + + bool return_better = _gen.flip(_t_rate); + + if (_comparator(*i1, *i2)) + { + if (return_better) return i2; + // else + + return i1; + } + else + { + if (return_better) return i1; + // else + } + // else + + return i2; +} + + +template +const MOEOT& mo_stochastic_tournament(const eoPop& _pop, double _t_rate,moeoComparator& _comparator, eoRng& _gen = rng) +{ + return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate,_comparator, _gen); +} + + +template +MOEOT& mo_stochastic_tournament(eoPop& _pop, double _t_rate, eoRng& _gen = rng) +{ + return *mo_stochastic_tournament(_pop.begin(), _pop.end(), _t_rate, _gen); +} + + +template +It mo_roulette_wheel(It _begin, It _end, double total, eoRng& _gen = rng) +{ + + float roulette = _gen.uniform(total); + + if (roulette == 0.0) // covers the case where total==0.0 + return _begin + _gen.random(_end - _begin); // uniform choice + + It i = _begin; + + while (roulette > 0.0) + { + roulette -= static_cast(*(i++)); + } + + return --i; +} + + +template +const MOEOT& mo_roulette_wheel(const eoPop& _pop, double total, eoRng& _gen = rng) +{ + float roulette = _gen.uniform(total); + + if (roulette == 0.0) // covers the case where total==0.0 + return _pop[_gen.random(_pop.size())]; // uniform choice + + typename eoPop::const_iterator i = _pop.begin(); + + while (roulette > 0.0) + { + roulette -= static_cast((i++)->fitness()); + } + + return *--i; +} + + +template +MOEOT& mo_roulette_wheel(eoPop& _pop, double total, eoRng& _gen = rng) +{ + float roulette = _gen.uniform(total); + + if (roulette == 0.0) // covers the case where total==0.0 + return _pop[_gen.random(_pop.size())]; // uniform choice + + typename eoPop::iterator i = _pop.begin(); + + while (roulette > 0.0) + { + // fitness only + roulette -= static_cast((i++)->fitness()); + } + + return *--i; +} + + +#endif /*MOEOSELECTORS_H_*/ + + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h new file mode 100644 index 000000000..61365c038 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/selection/moeoStochTournamentSelect.h @@ -0,0 +1,91 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoStochTournamentSelect.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOSTOCHTOURNAMENTSELECT_H_ +#define MOEOSTOCHTOURNAMENTSELECT_H_ + +#include +#include +#include +#include + +/** + * Selection strategy that selects ONE individual by stochastic tournament. + */ +template < class MOEOT > class moeoStochTournamentSelect:public moeoSelectOne +{ +public: + + /** + * Full Ctor + * @param _comparator the comparator (used to compare 2 individuals) + * @param _tRate the tournament rate + */ + moeoStochTournamentSelect (moeoComparator < MOEOT > & _comparator, double _tRate = 1.0) : comparator (_comparator), tRate (_tRate) + { + // consistency checks + if (tRate < 0.5) + { + std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n"; + tRate = 0.55; + } + if (tRate > 1) + { + std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n"; + tRate = 1; + } + } + + + /** + * Ctor without comparator. A moeoFitnessThenDiversityComparator is used as default. + * @param _tRate the tournament rate + */ + moeoStochTournamentSelect (double _tRate = 1.0) : comparator (defaultComparator), tRate (_tRate) + { + // consistency checks + if (tRate < 0.5) + { + std::cerr << "Warning, Tournament rate should be > 0.5\nAdjusted to 0.55\n"; + tRate = 0.55; + } + if (tRate > 1) + { + std::cerr << "Warning, Tournament rate should be < 1\nAdjusted to 1\n"; + tRate = 1; + } + } + + + /** + * Apply the tournament to the given population + * @param _pop the population + */ + const MOEOT & operator() (const eoPop < MOEOT > &_pop) + { + // use the selector + return mo_stochastic_tournament(_pop,tRate,comparator); + } + + +protected: + + /** the comparator (used to compare 2 individuals) */ + moeoComparator < MOEOT > & comparator; + /** a fitness then diversity comparator can be used as default */ + moeoFitnessThenDiversityComparator < MOEOT > defaultComparator; + /** the tournament rate */ + double tRate; + +}; + +#endif /*MOEOSTOCHTOURNAMENTSELECT_H_ */ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h new file mode 100644 index 000000000..3c6035e16 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoArchiveObjectiveVectorSavingUpdater.h @@ -0,0 +1,94 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoArchiveObjectiveVectorSavingUpdater.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_ +#define MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_ + +#include +#include +#include +#include +#include + +#define MAX_BUFFER_SIZE 1000 + +/** + * This class allows to save the objective vectors of the solutions contained in an archive into a file at each generation. + */ +template < class MOEOT > +class moeoArchiveObjectiveVectorSavingUpdater : public eoUpdater +{ +public: + + /** + * Ctor + * @param _arch local archive + * @param _filename target filename + * @param _count put this variable to true if you want a new file to be created each time () is called and to false if you only want the file to be updated + * @param _id own ID + */ + moeoArchiveObjectiveVectorSavingUpdater (moeoArchive & _arch, const std::string & _filename, bool _count = false, int _id = -1) : + arch(_arch), filename(_filename), count(_count), counter(0), id(_id) + {} + + + /** + * Saves the fitness of the archive's members into the file + */ + void operator()() { + char buff[MAX_BUFFER_SIZE]; + if (count) + { + if (id == -1) + { + sprintf (buff, "%s.%u", filename.c_str(), counter ++); + } + else + { + sprintf (buff, "%s.%u.%u", filename.c_str(), id, counter ++); + } + } + else + { + if (id == -1) + { + sprintf (buff, "%s", filename.c_str()); + } + else + { + sprintf (buff, "%s.%u", filename.c_str(), id); + } + counter ++; + } + std::ofstream f(buff); + for (unsigned int i = 0; i < arch.size (); i++) + f << arch[i].objectiveVector() << std::endl; + f.close (); + } + + +private: + + /** local archive */ + moeoArchive & arch; + /** target filename */ + std::string filename; + /** this variable is set to true if a new file have to be created each time () is called and to false if the file only HAVE to be updated */ + bool count; + /** counter */ + unsigned int counter; + /** own ID */ + int id; + +}; + +#endif /*MOEOARCHIVEOBJECTIVEVECTORSAVINGUPDATER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoArchiveUpdater.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoArchiveUpdater.h new file mode 100644 index 000000000..6596940c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoArchiveUpdater.h @@ -0,0 +1,54 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoArchiveUpdater.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOARCHIVEUPDATER_H_ +#define MOEOARCHIVEUPDATER_H_ + +#include +#include +#include + +/** + * This class allows to update the archive at each generation with newly found non-dominated solutions. + */ +template < class MOEOT > +class moeoArchiveUpdater : public eoUpdater +{ +public: + + /** + * Ctor + * @param _arch an archive of non-dominated solutions + * @param _pop the main population + */ + moeoArchiveUpdater(moeoArchive < MOEOT > & _arch, const eoPop < MOEOT > & _pop) : arch(_arch), pop(_pop) + {} + + + /** + * Updates the archive with newly found non-dominated solutions contained in the main population + */ + void operator()() { + arch.update(pop); + } + + +private: + + /** the archive of non-dominated solutions */ + moeoArchive < MOEOT > & arch; + /** the main population */ + const eoPop < MOEOT > & pop; + +}; + +#endif /*MOEOARCHIVEUPDATER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h new file mode 100644 index 000000000..237ea4909 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoBinaryMetricSavingUpdater.h @@ -0,0 +1,90 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoBinaryMetricSavingUpdater.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOBINARYMETRICSAVINGUPDATER_H_ +#define MOEOBINARYMETRICSAVINGUPDATER_H_ + +#include +#include +#include +#include +#include +#include + +/** + * This class allows to save the progression of a binary metric comparing the objective vectors of the current population (or archive) + * with the objective vectors of the population (or archive) of the generation (n-1) into a file + */ +template < class MOEOT > +class moeoBinaryMetricSavingUpdater : public eoUpdater +{ +public: + + /** The objective vector type of a solution */ + typedef typename MOEOT::ObjectiveVector ObjectiveVector; + + + /** + * Ctor + * @param _metric the binary metric comparing two Pareto sets + * @param _pop the main population + * @param _filename the target filename + */ + moeoBinaryMetricSavingUpdater (moeoVectorVsVectorBinaryMetric < ObjectiveVector, double > & _metric, const eoPop < MOEOT > & _pop, std::string _filename) : + metric(_metric), pop(_pop), filename(_filename), counter(1) + {} + + + /** + * Saves the metric's value for the current generation + */ + void operator()() { + if (pop.size()) { + if (firstGen) { + firstGen = false; + } + else { + // creation of the two Pareto sets + std::vector < ObjectiveVector > from; + std::vector < ObjectiveVector > to; + for (unsigned int i=0; i & metric; + /** main population */ + const eoPop < MOEOT > & pop; + /** (n-1) population */ + eoPop< MOEOT > oldPop; + /** target filename */ + std::string filename; + /** is it the first generation ? */ + bool firstGen; + /** counter */ + unsigned int counter; + +}; + +#endif /*MOEOBINARYMETRICSAVINGUPDATER_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h new file mode 100644 index 000000000..ca25cd7a5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/src/utils/moeoConvertPopToObjectiveVectors.h @@ -0,0 +1,44 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// moeoConvertPopToObjectiveVectors.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef MOEOPOPTOOBJECTIVEVECTORS_H_ +#define MOEOPOPTOOBJECTIVEVECTORS_H_ + +#include +#include + +/** + * Functor allowing to get a vector of objective vectors from a population + */ +template < class MOEOT, class ObjectiveVector = typename MOEOT::ObjectiveVector > +class moeoConvertPopToObjectiveVectors : public eoUF < const eoPop < MOEOT >, const std::vector < ObjectiveVector > > +{ +public: + + /** + * Returns a vector of the objective vectors from the population _pop + * @param _pop the population + */ + const std::vector < ObjectiveVector > operator()(const eoPop < MOEOT > _pop) + { + std::vector < ObjectiveVector > result; + result.resize(_pop.size()); + for (unsigned int i=0; i<_pop.size(); i++) + { + result.push_back(_pop[i].objectiveVector()); + } + return result; + } + +}; + +#endif /*MOEOPOPTOOBJECTIVEVECTORS_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/CMakeLists.txt new file mode 100644 index 000000000..d9c7a70dc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/CMakeLists.txt @@ -0,0 +1,18 @@ + +###################################################################################### +### 1) Definitions +###################################################################################### + +SET(FLOWSHOP_SRC_DIR ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/examples/flowshop) +SET(FLOWSHOP_BINARY_DIR ${ParadisEO-MOEO_BINARY_DIR}/tutorial/examples/flowshop) + +###################################################################################### + + +###################################################################################### +### 2) Where must cmake go now ? +###################################################################################### + +SUBDIRS(examples Lesson1 Lesson2) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt new file mode 100644 index 000000000..e7e1b7259 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/CMakeLists.txt @@ -0,0 +1,140 @@ + +###################################################################################### +### 0) Copy the FlowShop.param file in the build path for an easy use. +###################################################################################### + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/Lesson1/FlowShopEA.param) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-MOEO_SOURCE_DIR}/tutorial/Lesson1/FlowShopEA.param + ${ParadisEO-MOEO_BINARY_DIR}/tutorial/Lesson1) +###################################################################################### + + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}) + +###################################################################################### + + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib ${FLOWSHOP_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${FLOWSHOP_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${FLOWSHOP_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(FlowShopEA FlowShopEA.cpp) + +ADD_DEPENDENCIES(FlowShopEA moeo) +ADD_DEPENDENCIES(FlowShopEA flowshop) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(FLOWSHOPEA_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(FlowShopEA PROPERTIES VERSION "${FLOWSHOPEA_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(FlowShopEA moeo) + TARGET_LINK_LIBRARIES(FlowShopEA flowshop) + TARGET_LINK_LIBRARIES(FlowShopEA eo) + TARGET_LINK_LIBRARIES(FlowShopEA eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(FlowShopEA moeo) + TARGET_LINK_LIBRARIES(FlowShopEA flowshop) + TARGET_LINK_LIBRARIES(FlowShopEA eod) + TARGET_LINK_LIBRARIES(FlowShopEA eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(FlowShopEA moeo) + TARGET_LINK_LIBRARIES(FlowShopEA flowshop) + TARGET_LINK_LIBRARIES(FlowShopEA eo) + TARGET_LINK_LIBRARIES(FlowShopEA eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp new file mode 100644 index 000000000..7e01baabc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.cpp @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopEA.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + + +// moeo general 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 +// the stopping criterion +#include +// outputs (stats, population dumps, ...) +#include +// evolution engine (selection and replacement) +#include +// simple call to the algo +#include +// checks for help demand, and writes the status file and make_help; in libutils +void make_help(eoParser & _parser); +// definition of the representation +#include + + +using namespace std; + + +int main(int argc, char* argv[]) +{ + try + { + + eoParser parser(argc, argv); // for user-parameter reading + eoState state; // to keep all things allocated + + + /*** the representation-dependent things ***/ + + // The fitness evaluation + eoEvalFuncCounter& eval = do_make_eval(parser, state); + // the genotype (through a genotype initializer) + eoInit& init = do_make_genotype(parser, state); + // the variation operators + eoGenOp& op = do_make_op(parser, state); + + + /*** the representation-independent things ***/ + + // initialization of the population + eoPop& pop = do_make_pop(parser, state, init); + // definition of the archive + moeoArchive arch; + // stopping criteria + eoContinue& term = do_make_continue_moeo(parser, state, eval); + // output + eoCheckPoint& checkpoint = do_make_checkpoint_moeo(parser, state, eval, term, pop, arch); + // algorithm + eoAlgo& algo = do_make_ea_moeo(parser, state, eval, checkpoint, op, arch); + + + /*** Go ! ***/ + + // help ? + make_help(parser); + + // first evalution + apply(eval, pop); + + // printing of the initial population + cout << "Initial Population\n"; + pop.sortedPrintOn(cout); + cout << endl; + + // run the algo + do_run(algo, pop); + + // printing of the final population + cout << "Final Population\n"; + pop.sortedPrintOn(cout); + cout << endl; + + // printing of the final archive + cout << "Final Archive\n"; + arch.sortedPrintOn(cout); + cout << endl; + + + } + catch (exception& e) + { + cout << e.what() << endl; + } + return EXIT_SUCCESS; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param new file mode 100644 index 000000000..f1a2f9218 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/FlowShopEA.param @@ -0,0 +1,49 @@ + +###### General ###### +--help=0 # -h : Prints this message +--stopOnUnknownParam=1 # Stop if unkown param entered +# --seed=1183379758 # -S : Random number seed + +###### Evolution Engine ###### +--popSize=20 # -P : Population Size +--updateArch=1 # Update the archive at each gen. +--fitness=FastNonDominatedSorting # -F : Fitness assignment scheme: Dummy, FastNonDominatedSorting or IndicatorBased +--indicator=Epsilon # -i : Binary indicator for IndicatorBased: Epsilon, Hypervolume +--rho=1.1 # -r : reference point for the hypervolume indicator +--kappa=0.05 # -k : Scaling factor kappa for IndicatorBased +--diversity=Crowding # -D : Diversity assignment scheme: Dummy, Sharing(nicheSize) or Crowding +--comparator=FitnessThenDiversity # -C : Comparator scheme: FitnessThenDiversity, DiversityThenFitness or Aggregative +--selection=DetTour(2) # -S : Selection scheme: DetTour(T), StochTour(t) or Random +--replacement=Elitist # -R : Replacement scheme: Elitist, Environmental or Generational +--nbOffspring=100% # -O : Number of offspring (percentage or absolute) + +###### Output ###### +--resDir=Res # Directory to store DISK outputs +--eraseDir=1 # erase files in dirName if any +--printPop=0 # Print sorted pop. every gen. +--storeArch=0 # Store the archive's objective vectors at each gen. +--contribution=0 # Store the contribution of the archive at each gen. +--entropy=0 # Store the entropy of the archive at each gen. + +###### Persistence ###### +--Load= # -L : A save file to restart from +--recomputeFitness=0 # -r : Recompute the fitness after re-loading the pop.? +--saveFrequency=0 # Save every F generation (0 = only final state, absent = never) +--saveTimeInterval=0 # Save every T seconds (0 or absent = never) +--status=./FlowShopEA.status # Status file + +###### Representation ###### +--BenchmarkFile=../examples/flowshop/benchs/020_10_01.txt # -B : Benchmark file name REQUIRED + +###### Stopping criterion ###### +--maxGen=100 # -G : Maximum number of generations (0 = none) +--maxEval=0 # -E : Maximum number of evaluations (0 = none) +--maxTime=0 # -T : Maximum running time in seconds (0 = none) +--CtrlC=1 # -C : Terminate current generation upon Ctrl C + +###### Variation Operators ###### +--crossRate=1 # Relative rate for the only crossover +--shiftMutRate=0.5 # Relative rate for shift mutation +--exchangeMutRate=0.5 # Relative rate for exchange mutation +--pCross=0.25 # -c : Probability of Crossover +--pMut=0.35 # -m : Probability of Mutation diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/Lesson1.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/Lesson1.pdf new file mode 100755 index 000000000..b2a20b134 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson1/Lesson1.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt new file mode 100644 index 000000000..188903ae5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/CMakeLists.txt @@ -0,0 +1,116 @@ + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${EO_SRC_DIR}/utils) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) +###################################################################################### + + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(sch1 Sch1.cpp) + +ADD_DEPENDENCIES(sch1 moeo) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(SCH1_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(sch1 PROPERTIES VERSION "${SCH1_VERSION}") +###################################################################################### + + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(sch1 moeo) + TARGET_LINK_LIBRARIES(sch1 eo) + TARGET_LINK_LIBRARIES(sch1 eoutils) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(sch1 moeo) + TARGET_LINK_LIBRARIES(sch1 eod) + TARGET_LINK_LIBRARIES(sch1 eoutilsd) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(sch1 moeo) + TARGET_LINK_LIBRARIES(sch1 eo) + TARGET_LINK_LIBRARIES(sch1 eoutils) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/Lesson2.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/Lesson2.pdf new file mode 100755 index 000000000..2a7261e06 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/Lesson2.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp new file mode 100644 index 000000000..718039921 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/Lesson2/Sch1.cpp @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// Sch1.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include +#include +#include +#include + +using namespace std; + +// the moeoObjectiveVectorTraits : minimizing 2 objectives +class Sch1ObjectiveVectorTraits : public moeoObjectiveVectorTraits +{ +public: + static bool minimizing (int i) + { + return true; + } + static bool maximizing (int i) + { + return false; + } + static unsigned int nObjectives () + { + return 2; + } +}; + + +// objective vector of real values +typedef moeoRealObjectiveVector < Sch1ObjectiveVectorTraits > Sch1ObjectiveVector; + + +// multi-objective evolving object for the Sch1 problem +class Sch1 : public moeoRealVector < Sch1ObjectiveVector, double, double > +{ +public: + Sch1() : moeoRealVector < Sch1ObjectiveVector, double, double > (1) {} +}; + + +// evaluation of objective functions +class Sch1Eval : public moeoEvalFunc < Sch1 > +{ +public: + void operator () (Sch1 & _sch1) + { + if (_sch1.invalidObjectiveVector()) + { + Sch1ObjectiveVector objVec; + double x = _sch1[0]; + objVec[0] = x * x; + objVec[1] = (x - 2.0) * (x - 2.0); + _sch1.objectiveVector(objVec); + } + } +}; + + +// main +int main (int argc, char *argv[]) +{ + // parameters + unsigned int POP_SIZE = 20; + unsigned int MAX_GEN = 100; + double M_EPSILON = 0.01; + double P_CROSS = 0.25; + double P_MUT = 0.35; + + // objective functions evaluation + Sch1Eval eval; + + // crossover and mutation + eoQuadCloneOp < Sch1 > xover; + eoUniformMutation < Sch1 > mutation (M_EPSILON); + + // generate initial population + eoRealVectorBounds bounds (1, 0.0, 2.0); // [0, 2] + eoRealInitBounded < Sch1 > init (bounds); + eoPop < Sch1 > pop (POP_SIZE, init); + + // build NSGA-II + moeoNSGAII < Sch1 > nsgaII (MAX_GEN, eval, xover, P_CROSS, mutation, P_MUT); + + // run the algo + nsgaII (pop); + + // extract first front of the final population using an moeoArchive (this is the output of nsgaII) + moeoArchive < Sch1 > arch; + arch.update (pop); + + // printing of the final archive + cout << "Final Archive" << endl; + arch.sortedPrintOn (cout); + cout << endl; + + return EXIT_SUCCESS; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/CMakeLists.txt new file mode 100644 index 000000000..eae35f629 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/CMakeLists.txt @@ -0,0 +1,9 @@ + + +###################################################################################### +### 1) Where must cmake go now ? +###################################################################################### + +SUBDIRS(flowshop) + +###################################################################################### \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt new file mode 100644 index 000000000..78af616e8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/CMakeLists.txt @@ -0,0 +1,150 @@ + +###################################################################################### +### 0) Copy the "benchs" directory in the build directory to easily run the lessons +###################################################################################### + +ADD_CUSTOM_TARGET(install DEPENDS ${FLOWSHOP_SRC_DIR}/benchs) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory + ${FLOWSHOP_SRC_DIR}/benchs + ${FLOWSHOP_BINARY_DIR}/benchs) + +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MOEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${FLOWSHOP_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +# --> UNIX +IF(UNIX) + LINK_DIRECTORIES(${EO_SRC_DIR} ${EO_SRC_DIR}/utils ${ParadisEO-MOEO_BINARY_DIR}/lib) + +# --> WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\debug) + LINK_DIRECTORIES(${EO_LIB_DIR}\\debug) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + LINK_DIRECTORIES(${ParadisEO-MOEO_BINARY_DIR}\\lib\\release) + LINK_DIRECTORIES(${EO_LIB_DIR}\\release) + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) + +###################################################################################### + + + +###################################################################################### +### 3) Define your target(s): just the flowshop lib here +###################################################################################### + +SET(FLOWSHOP_LIB_OUTPUT_PATH ${FLOWSHOP_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${FLOWSHOP_LIB_OUTPUT_PATH}) + +SET (FLOWSHOP_SOURCES FlowShopBenchmarkParser.cpp + FlowShopEval.cpp + FlowShopInit.cpp + FlowShopObjectiveVectorTraits.cpp + FlowShopOpCrossoverQuad.cpp + FlowShopOpMutationExchange.cpp + FlowShopOpMutationShift.cpp + FlowShop.cpp) + +# --> UNIX +IF(UNIX) + ADD_LIBRARY(flowshop STATIC ${FLOWSHOP_SOURCES}) + +# --> WIN +ELSEIF(WIN32) + ADD_LIBRARY(flowshop STATIC ${FLOWSHOP_SOURCES}) + + +ADD_DEPENDENCIES(flowshop moeo) + +ENDIF(UNIX) +###################################################################################### + + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(FLOWSHOP_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(flowshop PROPERTIES VERSION "${FLOWSHOP_VERSION}") +###################################################################################### + + +###################################################################################### +### 5) Link the librairies for your target(s) +###################################################################################### + +# --> UNIX +IF(UNIX) + TARGET_LINK_LIBRARIES(flowshop moeo) + TARGET_LINK_LIBRARIES(flowshop eo) + +# --> APPLE AND WIN +ELSEIF(WIN32) + # "CMAKE_BUILD_TYPE" supposed to be given on the command line, default=Debug + IF (NOT DEFINED CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE Debug) + ENDIF (NOT DEFINED CMAKE_BUILD_TYPE) + + IF (CMAKE_BUILD_TYPE STREQUAL Debug) + TARGET_LINK_LIBRARIES(flowshop moeo) + TARGET_LINK_LIBRARIES(flowshop eod) + ELSEIF(CMAKE_BUILD_TYPE STREQUAL Release) + TARGET_LINK_LIBRARIES(flowshop moeo) + TARGET_LINK_LIBRARIES(flowshop eo) + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug) + MESSAGE(FATAL_ERROR " Cmake build type can only be \"Debug\" or \"Release\" ") + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug) + +ENDIF(UNIX) +###################################################################################### + + +###################################################################################### +### 6) Windows advanced config - especially for Microsoft Visual Studio 8 +###################################################################################### + + IF(CMAKE_CXX_COMPILER MATCHES cl) + IF(NOT WITH_SHARED_LIBS) + IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005") + SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy") + SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od") + SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2") + 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") + ENDIF(NOT WITH_SHARED_LIBS) + ENDIF(CMAKE_CXX_COMPILER MATCHES cl) +###################################################################################### + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp new file mode 100644 index 000000000..1ee6b9d0d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.cpp @@ -0,0 +1,18 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShop.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + +std::string FlowShop::className() const +{ + return "FlowShop"; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h new file mode 100644 index 000000000..232ff8b64 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShop.h @@ -0,0 +1,33 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp new file mode 100644 index 000000000..0ca8c857e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopBenchmarkParser.cpp @@ -0,0 +1,101 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopBenchmarkParser.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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 +#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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp new file mode 100644 index 000000000..579d0bfc8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopEval.cpp @@ -0,0 +1,64 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopEval.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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 +#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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp new file mode 100644 index 000000000..d3877fb64 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopInit.cpp @@ -0,0 +1,39 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopInit.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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 +#include + +/** + * Initialization of a random genotype built by the default constructor of the FlowShop class + */ +class FlowShopInit : public eoInit +{ +public: + + /** + * Ctor + * @param _N the number of jobs to schedule + */ + FlowShopInit(unsigned int _N); + + + /** + * builds a random genotype + * @param _flowshop a genotype that has been default-constructed + */ + void operator()(FlowShop & _flowshop); + + +private: + + /** the number of jobs (size of a scheduling vector) */ + unsigned int N; + +}; + +#endif /*FLOWSHOPINIT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h new file mode 100644 index 000000000..05a8f5eb7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVector.h @@ -0,0 +1,24 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopObjectiveVector.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp new file mode 100644 index 000000000..7296fdf0b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.cpp @@ -0,0 +1,32 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopObjectiveVectorTraits.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h new file mode 100644 index 000000000..994304e3f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopObjectiveVectorTraits.h @@ -0,0 +1,46 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopObjectiveVectorTraits.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp new file mode 100644 index 000000000..d1aee2351 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpCrossoverQuad.cpp @@ -0,0 +1,84 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpCrossoverQuad.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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 +#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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp new file mode 100644 index 000000000..b99535c53 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.cpp @@ -0,0 +1,50 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpCrossoverQuad.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +std::string FlowShopOpMutationExchange::className() const +{ + return "FlowShopOpMutationExchange"; +} + + +bool FlowShopOpMutationExchange::operator()(FlowShop & _flowshop) +{ + bool isModified; + FlowShop result = _flowshop; + // computation of the 2 random points + unsigned int point1, point2; + do + { + point1 = rng.random(result.size()); + point2 = rng.random(result.size()); + } while (point1 == point2); + // swap + std::swap (result[point1], result[point2]); + // 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; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h new file mode 100644 index 000000000..e63a3884b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationExchange.h @@ -0,0 +1,40 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpCrossoverQuad.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOPOPMUTATIONEXCHANGE_H_ +#define FLOWSHOPOPMUTATIONEXCHANGE_H_ + +#include +#include + +/** + * Exchange mutation operator for the flow-shop + */ +class FlowShopOpMutationExchange : public eoMonOp +{ +public: + + /** + * the class name (used to display statistics) + */ + std::string className() const; + + + /** + * modifies the parent with an exchange mutation + * @param _flowshop the parent genotype (will be modified) + */ + bool operator()(FlowShop & _flowshop); + +}; + +#endif /*FLOWSHOPOPMUTATIONEXCHANGE_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp new file mode 100644 index 000000000..4da8d0b09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.cpp @@ -0,0 +1,60 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpMutationShift.cpp +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#include + + +std::string FlowShopOpMutationShift::className() const +{ + return "FlowShopOpMutationShift"; +} + + +bool FlowShopOpMutationShift::operator()(FlowShop & _flowshop) +{ + bool isModified; + int direction; + unsigned int tmp; + FlowShop result = _flowshop; + // computation of the 2 random points + unsigned int point1, point2; + do + { + point1 = rng.random(result.size()); + point2 = rng.random(result.size()); + } while (point1 == point2); + // direction + if (point1 < point2) + direction = 1; + else + direction = -1; + // mutation + tmp = result[point1]; + for (unsigned int i=point1 ; i!=point2 ; i+=direction) + result[i] = result[i+direction]; + result[point2] = 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; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h new file mode 100644 index 000000000..cc6ecdeee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/FlowShopOpMutationShift.h @@ -0,0 +1,40 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// FlowShopOpMutationShift.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.gforge.inria.fr + */ +//----------------------------------------------------------------------------- + +#ifndef FLOWSHOPOPMUTATIONSHIFT_H_ +#define FLOWSHOPOPMUTATIONSHIFT_H_ + +#include +#include + +/** + * Shift mutation operator for flow-shop + */ +class FlowShopOpMutationShift : public eoMonOp < FlowShop > +{ +public: + + /** + * the class name (used to display statistics) + */ + std::string className() const; + + + /** + * modifies the parent with a shift mutation + * @param _flowshop the parent genotype (will be modified) + */ + bool operator()(FlowShop & _flowshop); + +}; + +#endif /*FLOWSHOPOPMUTATIONSHIFT_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt new file mode 100644 index 000000000..2c2f78d86 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_01.txt @@ -0,0 +1,63 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt new file mode 100644 index 000000000..c82c2d033 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_05_02.txt @@ -0,0 +1,63 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt new file mode 100644 index 000000000..96bca095d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_01.txt @@ -0,0 +1,63 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt new file mode 100644 index 000000000..bf23361f5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_10_02.txt @@ -0,0 +1,63 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt new file mode 100644 index 000000000..2ef8f0bee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/020_20_01.txt @@ -0,0 +1,63 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt new file mode 100644 index 000000000..5f4b46f37 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_05_01.txt @@ -0,0 +1,153 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt new file mode 100644 index 000000000..17f3cb117 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_10_01.txt @@ -0,0 +1,153 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt new file mode 100644 index 000000000..23ccddab3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/050_20_01.txt @@ -0,0 +1,153 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt new file mode 100644 index 000000000..f0d8d9b38 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_05_01.txt @@ -0,0 +1,303 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt new file mode 100644 index 000000000..480d6be62 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_10_01.txt @@ -0,0 +1,303 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt new file mode 100644 index 000000000..f063c0f7c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/100_20_01.txt @@ -0,0 +1,303 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt new file mode 100644 index 000000000..d1bccf9b0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/200_10_01.txt @@ -0,0 +1,603 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/README b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/README new file mode 100644 index 000000000..7f3c69274 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/benchs/README @@ -0,0 +1 @@ +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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h new file mode 100644 index 000000000..3ab516109 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_eval_FlowShop.h @@ -0,0 +1,55 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_eval_FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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(), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks)", 'B',"Representation", true).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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h new file mode 100644 index 000000000..e59cb2206 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_genotype_FlowShop.h @@ -0,0 +1,48 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_genotype_FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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(), "BenchmarkFile", "Benchmark file name (benchmarks are available at www.lifl.fr/~liefooga/benchmarks/)", 'B',"Representation", true).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/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h new file mode 100644 index 000000000..7abadd9e4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-moeo/tutorial/examples/flowshop/make_op_FlowShop.h @@ -0,0 +1,107 @@ +// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*- + +//----------------------------------------------------------------------------- +// make_op_FlowShop.h +// (c) OPAC Team (LIFL), Dolphin Project (INRIA), 2007 +/* + This library... + + Contact: paradiseo-help@lists.gforge.inria.fr, http://paradiseo.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/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/AUTHORS b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/AUTHORS new file mode 100644 index 000000000..42976e9ee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/AUTHORS @@ -0,0 +1,2 @@ +Sébastien Cahon +Alexandru-Adrian Tantar diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/CMakeLists.txt new file mode 100644 index 000000000..86eee5ea0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/CMakeLists.txt @@ -0,0 +1,150 @@ + +###################################################################################### +### 0) Preliminary checking: no WIN and libxml2 +###################################################################################### + +IF(WIN32) + MESSAGE (FATAL_ERROR "ParadisEO-PEO can not be generated on Windows systems") +ENDIF(WIN32) + +# check libxml2 +FIND_PROGRAM(XML2_CONFIG_PROGRAM NAMES xml2-config PATHS /usr/local/bin /usr/bin DOC "The libxml2 (www.xmlsoft.org) configuration tool") + +IF(NOT XML2_CONFIG_PROGRAM) + MESSAGE(FATAL_ERROR "Libxml2 cannot be found on your system. Libxml2 is required for ParadisEO-PEO install") +ENDIF(NOT XML2_CONFIG_PROGRAM) + +# set libxml2 cflags in XML2_CFLAGS +EXECUTE_PROCESS(COMMAND ${XML2_CONFIG_PROGRAM} --cflags OUTPUT_VARIABLE XML2_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) +SET(XML2_CFLAGS_WITH_WHITESPACE " ${XML2_CFLAGS}") + +# set libxml2 libs in XML2_LIBS +EXECUTE_PROCESS(COMMAND ${XML2_CONFIG_PROGRAM} --libs OUTPUT_VARIABLE XML2_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE) +###################################################################################### + + +###################################################################################### +### 1) If you want to set your variables in moeo-conf.cmake and avoid the cmd line +###################################################################################### + +INCLUDE(peo-conf.cmake OPTIONAL) + +###################################################################################### + + +###################################################################################### +### 2) Main project config +###################################################################################### + +# set the project name +PROJECT(ParadisEO-PEO) + +# check cmake version compatibility +CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR) + +# regular expression checking +INCLUDE_REGULAR_EXPRESSION("^.*$" "^$") + +# set a language for the entire project. +ENABLE_LANGUAGE(CXX) +ENABLE_LANGUAGE(C) + +##################################################################################### + + +##################################################################################### +### 3) Include required modules +##################################################################################### +INCLUDE(CMakeBackwardCompatibilityCXX) + +INCLUDE(FindDoxygen) + +INCLUDE(FindGnuplot) + +# check for some functions +INCLUDE(CheckLibraryExists) + +###################################################################################### + + +###################################################################################### +### 4) SET main paths (can be defined in peo-conf.cmake) +###################################################################################### + +IF(NOT DEFINED PEO_DIR) + SET(PEO_DIR ${ParadisEO-PEO_SOURCE_DIR} CACHE PATH "ParadisEO-PEO main directory") +ENDIF(NOT DEFINED PEO_DIR) + +# Need main EO directory path +IF(NOT DEFINED EO_DIR OR NOT EO_DIR) + SET(EO_DIR ${EOdir} CACHE PATH "ParadisEO-EO main directory" FORCE) # given on the command line +ELSE(NOT DEFINED EO_DIR OR NOT EO_DIR) + MESSAGE(STATUS "EOdir already defined as ${EO_DIR}") +ENDIF(NOT DEFINED EO_DIR OR NOT EO_DIR) + +# Set the main paths for EO +IF(NOT DEFINED EO_SRC_DIR) + SET(EO_SRC_DIR "${EO_DIR}/src") +ENDIF(NOT DEFINED EO_SRC_DIR) + +# Need main MO directory path +IF(NOT DEFINED MO_DIR OR NOT MO_DIR) + SET(MO_DIR ${MOdir} CACHE PATH "ParadisMO-MO main directory" FORCE) # given on the command line +ELSE(NOT DEFINED MO_DIR OR NOT MO_DIR) + MESSAGE(STATUS "MOdir already defined as ${MO_DIR}") +ENDIF(NOT DEFINED MO_DIR OR NOT MO_DIR) + +# Set the main paths for MO +IF(NOT DEFINED MO_SRC_DIR) + SET(MO_SRC_DIR "${MO_DIR}/src") +ENDIF(NOT DEFINED MO_SRC_DIR) + +IF(NOT DEFINED PEO_SRC_DIR) + SET(PEO_SRC_DIR ${PEO_DIR}/src) +ENDIF(NOT DEFINED PEO_SRC_DIR) + +IF(NOT DEFINED PEO_DOC_DIR) + SET(PEO_DOC_DIR ${PEO_DIR}/doc) +ENDIF(NOT DEFINED PEO_DOC_DIR) +###################################################################################### + + +###################################################################################### +### 5) Paths checking +###################################################################################### +IF(EXISTS ${EO_DIR}) + MESSAGE (STATUS "Using ParadisEO-EO path: ${EO_DIR}") +ELSE(EXISTS ${EO_DIR}) + MESSAGE (FATAL_ERROR "Could not find the ParadisEO-EO path: ${EO_DIR}. You should use : cmake . -DEOdir= -DMOdir=") +ENDIF(EXISTS ${EO_DIR}) + +# Is it an absolute path ? +SET (ABSOLUTE_PATH_REGEX "^/") +IF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + MESSAGE (FATAL_ERROR "${EO_DIR} MUST BE an absolute path") +ENDIF(NOT ${EO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + +SET(EO_LIB_DIR "${EO_DIR}/src") + + +IF(EXISTS ${MO_DIR}) + MESSAGE (STATUS "Using ParadisMO-MO path: ${MO_DIR}") +ELSE(EXISTS ${MO_DIR}) + MESSAGE (FATAL_ERROR "Could not find the ParadisMO-MO path: ${MO_DIR}. You should use : cmake . -DEOdir= -DMOdir=") +ENDIF(EXISTS ${MO_DIR}) + +# Is it an absolute path ? +SET (ABSOLUTE_PATH_REGEX "^/") +IF(NOT ${MO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") + MESSAGE (FATAL_ERROR "${MO_DIR} MUST BE an absolute path") +ENDIF(NOT ${MO_DIR} MATCHES "${ABSOLUTE_PATH_REGEX}") +###################################################################################### + + +###################################################################################### +### 6) Where must cmake go now ? +###################################################################################### + +SUBDIRS(doc src tutorial) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/README b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/README new file mode 100755 index 000000000..5ff232eba --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/README @@ -0,0 +1,81 @@ + PARADISEO-PEO README FILE +======================================================================= + check latest news at http://paradiseo.gforge.inria.fr/ +======================================================================= + +Welcome to ParadisEO-PEO, the Parallel Evolving Objects library. +The latest news about ParadisEO-PEO can be found on the gforge repository at +http://paradiseo.gforge.inria.fr/ +In case of any problem, please e-mail us at +paradiseo-help@lists.gforge.inria.fr + + +======================================================================= + BUILDING PARADISEO-PEO +======================================================================= +The basic installation procedure goes the following. + +To compile paradiseo-peo in the default directory, +go to paradiseo-peo/build/ and run: + > cmake ../ -DEOdir=$(EO_SRC) -DMOdir=$(MO_SRC) + > make + // for an easy-use of the provided lessons + > make install + // optional (if the documentation is not already available) + > make doc + +To compile paradiseo-peo anywhere else, simply run: + > cmake $(PEO) -DEOdir=$(EO_SRC) -DMOdir=$(MO_SRC) + > make + // for an easy-use of the provided lessons + > make install + // optional (if the documentation is not already available) + > make doc + +where $(EO_SRC) is the top-level source directory of PARADISEO-EO, +and $(MO) is the top-level directory of PARADISEO-MO. + +To clean everything, simply run + > make clean + + +=================================================================== + DIRECTORY STRUCTURE +=================================================================== +After unpacking the archive file, you should end up with the following +structure: + +.../ The main PARADISEO-PEO directory, created when unpacking. + | + +-- build BUILD directory that contains libraries and executable files. + | + +-- src SOURCE directory Contains most PARADISEO-PEO .h files. + | + +-- doc DOCUMENTATION directory (generated by Doxygen). + | | + | +- html HTML files - start at index.html. + | | + | +- latex latex files - use to generate Postcript doc. + | | + | +- man Unix man format documentation. + | + | + +-- tutorial APPLICATIONS - one directory per separate application. + | + +-- examples Examples repository including source code shared by all or most of the included lessons. + | | + | +- tsp A Traveling Salesman Problem (TSP) example with benchmarks, the main operators, definitions, etc. + | + +-- Lesson1 A simple ParadisEO-PEO evolutionary algorithm example using the peoEA class. + | + +-- Lesson2 Example of an EA featuring a parallel evaluation of the population/parallel fitness function evaluation. + | + +-- Lesson3 Example of an asynchronous insular model including two evolutionary algorithms. + | + +-- Walkthrough Walkthrough ParadisEO-PEO features - EA+LS hybridization, parallelization, insular model. + +=================================================================== + NOTES +=================================================================== + +Mailing list : paradiseo-help@lists.gforge.inria.fr diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/CMakeLists.txt new file mode 100644 index 000000000..6a72254d3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/CMakeLists.txt @@ -0,0 +1,38 @@ + +### ParadisEO-PEO Doc generation using Doxygen ### + +# Find the Doxygen package - will set all the variables required to use Doxygen +FIND_PACKAGE(Doxygen) + +IF (DOXYGEN_FOUND) + +SET(PEO_DOC_COMMENT "ParadisEO-PEO framework documentation") +SET(DOXYGEN_INPUT "paradiseo-peo.doxyfile") +SET(DOXYGEN_OUTPUT "ParadisEO-PEO documentation") + +ADD_CUSTOM_COMMAND( + OUTPUT ${DOXYGEN_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from ${PEO_DOC_DIR} ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo "Done." + WORKING_DIRECTORY ${PEO_DOC_DIR} + COMMENT ${PEO_DOC_COMMENT} + DEPENDS ${DOXYGEN_INPUT} + ) + +# The main target launched with "make doc" +ADD_CUSTOM_TARGET(doc DEPENDS ${DOXYGEN_OUTPUT}) + +# A forced additionnal target that generate the documentation in the current directory +ADD_CUSTOM_TARGET(doc_forced + COMMAND ${CMAKE_COMMAND} -E echo_append "Building documentation from current directory ..." + COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INPUT} + COMMAND ${CMAKE_COMMAND} -E echo " Done." + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + +ELSE (DOXYGEN_FOUND) + MESSAGE(STATUS "Unable to generate the document, Doxygen package not found") +ENDIF (DOXYGEN_FOUND) + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/annotated.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/annotated.html new file mode 100644 index 000000000..e51f0fa90 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/annotated.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: Class List + + + + +
+
+ +

ParadisEO-PEO Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + +
Communicable
Communicator
Cooperative
peoAggEvalFunc< EOT >The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided
peoAsyncIslandMig< EOT >The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e
peoEA< EOT >The peoEA class offers an elementary evolutionary algorithm implementation
peoNoAggEvalFunc< EOT >The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual
peoParaPopEval< EOT >The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor
peoParaSGATransform< EOT >
peoPopEval< EOT >The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors
peoSeqPopEval< EOT >The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor
peoSeqTransform< EOT >The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms
peoSyncIslandMig< EOT >The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e
peoSyncMultiStart< EOT >The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population
peoTransform< EOT >The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes
ReactiveThread
RingTopology
Runner
SEND_REQUEST
Service
Thread
Topology
Worker
+
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable-members.html new file mode 100644 index 000000000..d9acf5532 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable-members.html @@ -0,0 +1,48 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Communicable Member List

This is the complete list of members for Communicable, including all inherited members.

+ + + + + + + + + + + +
Communicable()Communicable
getKey()Communicable
keyCommunicable [protected]
lock()Communicable
num_commCommunicable [protected, static]
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
stop()Communicable
unlock()Communicable
~Communicable()Communicable [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable.html new file mode 100644 index 000000000..541d9bc60 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable.html @@ -0,0 +1,100 @@ + + +ParadisEO-PEO: Communicable Class Reference + + + + +
+
+ +

Communicable Class Reference

Inheritance diagram for Communicable: +

+ +Cooperative +Runner +Service +Worker +peoAsyncIslandMig< EOT > +peoSyncIslandMig< EOT > +peoEA< EOT > +peoPopEval< EOT > +peoSyncMultiStart< EOT > +peoTransform< EOT > +peoParaPopEval< EOT > +peoSeqPopEval< EOT > +peoParaSGATransform< EOT > +peoSeqTransform< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

Communicable ()
+virtual ~Communicable ()
+COMM_ID getKey ()
+void lock ()
+void unlock ()
+void stop ()
+void resume ()

Protected Attributes

+COMM_ID key
+sem_t sem_lock
+sem_t sem_stop

Static Protected Attributes

+static unsigned num_comm = 0
+

Detailed Description

+ +

+ +

+Definition at line 16 of file communicable.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable.png new file mode 100644 index 000000000..a229e7068 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicable.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator-members.html new file mode 100644 index 000000000..997ea5e08 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator-members.html @@ -0,0 +1,46 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Communicator Member List

This is the complete list of members for Communicator, including all inherited members.

+ + + + + + + + + +
Communicator(int *__argc, char ***__argv)Communicator
ReactiveThread()ReactiveThread
setActive()Thread
setPassive()Thread
sleep()ReactiveThread
start()Communicator [virtual]
Thread()Thread
wakeUp()ReactiveThread
~Thread()Thread [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator.html new file mode 100644 index 000000000..2a223b44c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator.html @@ -0,0 +1,59 @@ + + +ParadisEO-PEO: Communicator Class Reference + + + + +
+
+ +

Communicator Class Reference

Inheritance diagram for Communicator: +

+ +ReactiveThread +Thread + +List of all members. + + + + + + +

Public Member Functions

Communicator (int *__argc, char ***__argv)
+void start ()
+

Detailed Description

+ +

+ +

+Definition at line 15 of file comm.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator.png new file mode 100644 index 000000000..0f0ce225b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCommunicator.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative-members.html new file mode 100644 index 000000000..37d0a7b7b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative-members.html @@ -0,0 +1,53 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Cooperative Member List

This is the complete list of members for Cooperative, including all inherited members.

+ + + + + + + + + + + + + + + + +
Communicable()Communicable
getKey()Communicable
getOwner()Cooperative
keyCommunicable [protected]
lock()Communicable
notifySending()Cooperative [virtual]
num_commCommunicable [protected, static]
ownerCooperative [private]
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
send(Cooperative *__coop)Cooperative
setOwner(Runner &__runner)Cooperative
stop()Communicable
unlock()Communicable
~Communicable()Communicable [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative.html new file mode 100644 index 000000000..a52bd0cd9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO: Cooperative Class Reference + + + + +
+
+ +

Cooperative Class Reference

Inheritance diagram for Cooperative: +

+ +Communicable +peoAsyncIslandMig< EOT > +peoSyncIslandMig< EOT > + +List of all members. + + + + + + + + + + + + + +

Public Member Functions

+RunnergetOwner ()
+void setOwner (Runner &__runner)
+void send (Cooperative *__coop)
+virtual void notifySending ()

Private Attributes

+Runnerowner
+

Detailed Description

+ +

+ +

+Definition at line 17 of file cooperative.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative.png new file mode 100644 index 000000000..826cbc31b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classCooperative.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread-members.html new file mode 100644 index 000000000..579cb4bdf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread-members.html @@ -0,0 +1,45 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

ReactiveThread Member List

This is the complete list of members for ReactiveThread, including all inherited members.

+ + + + + + + + +
ReactiveThread()ReactiveThread
semReactiveThread [private]
setActive()Thread
setPassive()Thread
sleep()ReactiveThread
Thread()Thread
wakeUp()ReactiveThread
~Thread()Thread [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread.html new file mode 100644 index 000000000..ce0530bc2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: ReactiveThread Class Reference + + + + +
+
+ +

ReactiveThread Class Reference

Inheritance diagram for ReactiveThread: +

+ +Thread +Communicator +Worker + +List of all members. + + + + + + + + + + + +

Public Member Functions

ReactiveThread ()
+void sleep ()
+void wakeUp ()

Private Attributes

+sem_t sem
+

Detailed Description

+ +

+ +

+Definition at line 16 of file reac_thread.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread.png new file mode 100644 index 000000000..46b2d6d40 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classReactiveThread.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology-members.html new file mode 100644 index 000000000..68b897f4d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

RingTopology Member List

This is the complete list of members for RingTopology, including all inherited members.

+ + + + +
add(Cooperative &__mig)Topology
migTopology [protected]
setNeighbors(Cooperative *__mig, std::vector< Cooperative * > &__from, std::vector< Cooperative * > &__to)RingTopology [virtual]
~Topology()Topology [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology.html new file mode 100644 index 000000000..e64fb0cbf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology.html @@ -0,0 +1,55 @@ + + +ParadisEO-PEO: RingTopology Class Reference + + + + +
+
+ +

RingTopology Class Reference

Inheritance diagram for RingTopology: +

+ +Topology + +List of all members. + + + + +

Public Member Functions

+void setNeighbors (Cooperative *__mig, std::vector< Cooperative * > &__from, std::vector< Cooperative * > &__to)
+

Detailed Description

+ +

+ +

+Definition at line 14 of file ring_topo.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology.png new file mode 100644 index 000000000..79e86b847 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRingTopology.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner-members.html new file mode 100644 index 000000000..71f0e4ccc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner-members.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Runner Member List

This is the complete list of members for Runner, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
getID()Runner
getKey()Communicable
idRunner [private]
isLocal()Runner
keyCommunicable [protected]
lock()Communicable
notifySendingTermination()Runner
num_commCommunicable [protected, static]
packTermination()Runner
resume()Communicable
Runner()Runner
sem_lockCommunicable [protected]
sem_startRunner [private]
sem_stopCommunicable [protected]
setActive()Thread
setPassive()Thread
start()Runner [virtual]
stop()Communicable
terminate()Runner
Thread()Thread
unlock()Communicable
waitStarting()Runner
~Communicable()Communicable [virtual]
~Thread()Thread [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner.html new file mode 100644 index 000000000..46cb557a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner.html @@ -0,0 +1,85 @@ + + +ParadisEO-PEO: Runner Class Reference + + + + +
+
+ +

Runner Class Reference

Inheritance diagram for Runner: +

+ +Communicable +Thread +peoEA< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

Runner ()
+void start ()
+void waitStarting ()
+bool isLocal ()
+void terminate ()
+RUNNER_ID getID ()
+void packTermination ()
+void notifySendingTermination ()

Private Attributes

+sem_t sem_start
+unsigned id
+

Detailed Description

+ +

+ +

+Definition at line 19 of file runner.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner.png new file mode 100644 index 000000000..bd6d66557 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classRunner.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService-members.html new file mode 100644 index 000000000..ae20922e5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService-members.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Service Member List

This is the complete list of members for Service, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()Service [virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_sent_rrService [private]
ownerService [private]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService.html new file mode 100644 index 000000000..74c382af0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService.html @@ -0,0 +1,102 @@ + + +ParadisEO-PEO: Service Class Reference + + + + +
+
+ +

Service Class Reference

Inheritance diagram for Service: +

+ +Communicable +peoPopEval< EOT > +peoSyncMultiStart< EOT > +peoTransform< EOT > +peoParaPopEval< EOT > +peoSeqPopEval< EOT > +peoParaSGATransform< EOT > +peoSeqTransform< EOT > + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

+void setOwner (Thread &__owner)
+ThreadgetOwner ()
+void requestResourceRequest (unsigned __how_many=1)
+void packResourceRequest ()
+virtual void packData ()
+virtual void unpackData ()
+virtual void execute ()
+virtual void packResult ()
+virtual void unpackResult ()
+virtual void notifySendingData ()
+virtual void notifySendingResourceRequest ()
+virtual void notifySendingAllResourceRequests ()

Private Attributes

+Threadowner
+unsigned num_sent_rr
+

Detailed Description

+ +

+ +

+Definition at line 17 of file service.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService.png new file mode 100644 index 000000000..cf6f68a54 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classService.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread-members.html new file mode 100644 index 000000000..100b8b4eb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Thread Member List

This is the complete list of members for Thread, including all inherited members.

+ + + + + +
actThread [private]
setActive()Thread
setPassive()Thread
Thread()Thread
~Thread()Thread [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread.html new file mode 100644 index 000000000..36c1b3551 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread.html @@ -0,0 +1,72 @@ + + +ParadisEO-PEO: Thread Class Reference + + + + +
+
+ +

Thread Class Reference

Inheritance diagram for Thread: +

+ +ReactiveThread +Runner +Communicator +Worker +peoEA< EOT > + +List of all members. + + + + + + + + + + + + + +

Public Member Functions

Thread ()
+virtual ~Thread ()
+void setActive ()
+void setPassive ()

Private Attributes

+bool act
+

Detailed Description

+ +

+ +

+Definition at line 16 of file thread.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread.png new file mode 100644 index 000000000..bac19c424 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classThread.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology-members.html new file mode 100644 index 000000000..9385356fd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Topology Member List

This is the complete list of members for Topology, including all inherited members.

+ + + +
add(Cooperative &__mig)Topology
migTopology [protected]
~Topology()Topology [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology.html new file mode 100644 index 000000000..6f65f2c0a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Topology Class Reference + + + + +
+
+ +

Topology Class Reference

Inheritance diagram for Topology: +

+ +RingTopology + +List of all members. + + + + + + + + + +

Public Member Functions

+virtual ~Topology ()
+void add (Cooperative &__mig)

Protected Attributes

+std::vector< Cooperative * > mig
+

Detailed Description

+ +

+ +

+Definition at line 16 of file topology.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology.png new file mode 100644 index 000000000..bc09751e5 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classTopology.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker-members.html new file mode 100644 index 000000000..8595ad3b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker-members.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Worker Member List

This is the complete list of members for Worker, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
getKey()Communicable
idWorker [private]
keyCommunicable [protected]
lock()Communicable
notifySendingResult()Worker
notifySendingTaskDone()Worker
num_commCommunicable [protected, static]
packResult()Worker
packTaskDone()Worker
ReactiveThread()ReactiveThread
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
servWorker [private]
serv_idWorker [private]
setActive()Thread
setPassive()Thread
setSource(int __rank)Worker
sleep()ReactiveThread
srcWorker [private]
start()Worker [virtual]
stop()Communicable
Thread()Thread
totoWorker [private]
unlock()Communicable
unpackData()Worker
wakeUp()ReactiveThread
Worker()Worker
~Communicable()Communicable [virtual]
~Thread()Thread [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker.html new file mode 100644 index 000000000..36d82e7b4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker.html @@ -0,0 +1,94 @@ + + +ParadisEO-PEO: Worker Class Reference + + + + +
+
+ +

Worker Class Reference

Inheritance diagram for Worker: +

+ +Communicable +ReactiveThread +Thread + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

Worker ()
+void start ()
+void packResult ()
+void unpackData ()
+void packTaskDone ()
+void notifySendingResult ()
+void notifySendingTaskDone ()
+void setSource (int __rank)

Private Attributes

+WORKER_ID id
+SERVICE_ID serv_id
+Serviceserv
+int src
+bool toto
+

Detailed Description

+ +

+ +

+Definition at line 18 of file worker.h.


The documentation for this class was generated from the following files: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker.png new file mode 100644 index 000000000..0ea239005 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classWorker.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classes.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classes.html new file mode 100644 index 000000000..8a7a8dec4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classes.html @@ -0,0 +1,48 @@ + + +ParadisEO-PEO: Alphabetical List + + + + +
+
+ +

ParadisEO-PEO Class Index

A | C | E | N | P | R | S | T | W

+ +
  A  
+
  P  
+
peoSeqTransform   
peoAggEvalFunc   peoParaPopEval   Service   
peoAsyncIslandMig   peoParaSGATransform   peoSyncIslandMig   
  C  
+
peoPopEval   peoSyncMultiStart   
Communicable   
  R  
+
  T  
+
Communicator   ReactiveThread   Thread   
Cooperative   RingTopology   Topology   
  E  
+
Runner   peoTransform   
peoEA   
  S  
+
  W  
+
  N  
+
SEND_REQUEST   Worker   
peoNoAggEvalFunc   peoSeqPopEval   

A | C | E | N | P | R | S | T | W

+


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc-members.html new file mode 100644 index 000000000..f9b5240e0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc-members.html @@ -0,0 +1,41 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoAggEvalFunc< EOT > Member List

This is the complete list of members for peoAggEvalFunc< EOT >, including all inherited members.

+ + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc.html new file mode 100644 index 000000000..950a9ba26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO: peoAggEvalFunc< EOT > Class Template Reference + + + + +
+
+ +

peoAggEvalFunc< EOT > Class Template Reference

The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. +More... +

+#include <peoAggEvalFunc.h> +

+

Inheritance diagram for peoAggEvalFunc< EOT >: +

+ +eoBF< A1, A2, R > +eoFunctorBase +peoNoAggEvalFunc< EOT > + +List of all members. + +
+

Detailed Description

+

template<class EOT>
+ class peoAggEvalFunc< EOT >

+ +The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. +

+The class inherits public eoBF< EOT&, const typename EOT :: Fitness&, void > thus requiring, for the derived classes, the creation of a function having the following signature:

+ + + +
void operator()( EOT& __eot, const typename EOT :: Fitness& __partial_fittness );    
+

+The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. +

+ +

+Definition at line 25 of file peoAggEvalFunc.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc.png new file mode 100644 index 000000000..02c34fb8a Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAggEvalFunc.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html new file mode 100644 index 000000000..34ae9a952 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html @@ -0,0 +1,73 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoAsyncIslandMig< EOT > Member List

This is the complete list of members for peoAsyncIslandMig< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
className(void) const eoUpdater [virtual]
Communicable()Communicable
contpeoAsyncIslandMig< EOT > [private]
coop_empeoAsyncIslandMig< EOT > [private]
destinationpeoAsyncIslandMig< EOT > [private]
empeoAsyncIslandMig< EOT > [private]
emigrate()peoAsyncIslandMig< EOT > [private]
functor_category()eoF< void > [static]
getKey()Communicable
getOwner()Cooperative
immpeoAsyncIslandMig< EOT > [private]
immigrate()peoAsyncIslandMig< EOT > [private]
keyCommunicable [protected]
lastCall()eoUpdater [virtual]
lock()Communicable
notifySending()Cooperative [virtual]
num_commCommunicable [protected, static]
operator()()peoAsyncIslandMig< EOT > [virtual]
pack()peoAsyncIslandMig< EOT > [virtual]
peoAsyncIslandMig(eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)peoAsyncIslandMig< EOT >
replacepeoAsyncIslandMig< EOT > [private]
result_type typedefeoF< void >
resume()Communicable
selectpeoAsyncIslandMig< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
send(Cooperative *__coop)Cooperative
setOwner(Runner &__runner)Cooperative
sourcepeoAsyncIslandMig< EOT > [private]
stop()Communicable
topologypeoAsyncIslandMig< EOT > [private]
unlock()Communicable
unpack()peoAsyncIslandMig< EOT > [virtual]
~Communicable()Communicable [virtual]
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html new file mode 100644 index 000000000..ff017e9d1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html @@ -0,0 +1,305 @@ + + +ParadisEO-PEO: peoAsyncIslandMig< EOT > Class Template Reference + + + + +
+
+ +

peoAsyncIslandMig< EOT > Class Template Reference

The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +More... +

+#include <peoAsyncIslandMig.h> +

+

Inheritance diagram for peoAsyncIslandMig< EOT >: +

+ +Cooperative +eoUpdater +Communicable +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoAsyncIslandMig (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)
 Constructor for the peoAsyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
void operator() ()
 Function operator to be called as checkpoint for performing the migration step.
+void pack ()
 Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function.
+void unpack ()
 Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function.

Private Member Functions

+void emigrate ()
+void immigrate ()

Private Attributes

+eoContinue< EOT > & cont
+eoSelect< EOT > & select
+eoReplacement< EOT > & replace
+Topologytopology
+eoPop< EOT > & source
+eoPop< EOT > & destination
+std::queue< eoPop< EOT > > imm
+std::queue< eoPop< EOT > > em
+std::queue< Cooperative * > coop_em
+

Detailed Description

+

template<class EOT>
+ class peoAsyncIslandMig< EOT >

+ +The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +

+continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase.

+The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:

+ + + + + + + + + + + + + +
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offsprings
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population, including the migration operator, if any specified
+

+Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the Runner class (for example a peoEA object represents a possible owner). A simple example is offered bellow:

+

    +
  1. +topological model to be followed when performing migrations:
    +
    + + + +
    RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
    +

    +

  2. +
  3. +the continuation criterion, selection and replacement strategy etc. are defined:
    +
    + + + + + + + + + + + + + + + + + +
    eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
       
    eoPeriodicContinue< EOT > migCont( MIG_FREQ );   // migrations occur periodically at MIG_FREQ iterations
    eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
    eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
    eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
       
    peoAsyncIslandMig< EOT > asyncMigration(
    +          migCont, migSelect, migReplace, migTopology,
    +          population, population
    + );  
    // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
    +

    +

  4. +
  5. +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
    +
    + + + + + + + + + + + + + +
    ...    
    eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
    ...    
    eaCheckpointContinue.add( asyncMigration );   // adding the migration operator as checkpoint element
    ...    
    +

    +

  6. +
  7. +definition of an owner evolutionary algorithm (an object inheriting the Runner class):
    +
    + + + + + + + +
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
    asyncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
    eaAlg( population );   // applying the evolutionary algorithm on a given population
    +
  8. +
+

+The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.

+The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +

+ +

+Definition at line 112 of file peoAsyncIslandMig.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoAsyncIslandMig< EOT >::peoAsyncIslandMig (eoContinue< EOT > &  __cont,
eoSelect< EOT > &  __select,
eoReplacement< EOT > &  __replace,
Topology __topology,
eoPop< EOT > &  __source,
eoPop< EOT > &  __destination 
)
+
+
+ +

+Constructor for the peoAsyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. +

+

Parameters:
+ + + + + + + +
eoContinue< EOT >& __cont - continuation criterion specifying whether the migration is performed or not;
eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population;
eoReplacement< EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population;
Topology& __topology - topological model to be followed when performing migrations;
eoPop< EOT >& __source - source population from which the emigrant individuals are selected;
eoPop< EOT >& __destination - destination population in which the immigrant population are integrated.
+
+ +

+Definition at line 171 of file peoAsyncIslandMig.h. +

+References Topology::add(). +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
void peoAsyncIslandMig< EOT >::operator() (  )  [virtual]
+
+
+ +

+Function operator to be called as checkpoint for performing the migration step. +

+The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +

+Implements eoF< void >. +

+Definition at line 248 of file peoAsyncIslandMig.h. +

+References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png new file mode 100644 index 000000000..3a59d02e1 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA-members.html new file mode 100644 index 000000000..52c476878 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA-members.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoEA< EOT > Member List

This is the complete list of members for peoEA< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
contpeoEA< EOT > [private]
getID()Runner
getKey()Communicable
isLocal()Runner
keyCommunicable [protected]
lock()Communicable
notifySendingTermination()Runner
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)peoEA< EOT >
packTermination()Runner
peoEA(eoContinue< EOT > &__cont, peoPopEval< EOT > &__pop_eval, eoSelect< EOT > &__select, peoTransform< EOT > &__trans, eoReplacement< EOT > &__replace)peoEA< EOT >
poppeoEA< EOT > [private]
pop_evalpeoEA< EOT > [private]
replacepeoEA< EOT > [private]
resume()Communicable
run()peoEA< EOT > [virtual]
Runner()Runner
selectpeoEA< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setActive()Thread
setPassive()Thread
start()Runner [virtual]
stop()Communicable
terminate()Runner
Thread()Thread
transpeoEA< EOT > [private]
unlock()Communicable
waitStarting()Runner
~Communicable()Communicable [virtual]
~Thread()Thread [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA.html new file mode 100644 index 000000000..416cb49db --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA.html @@ -0,0 +1,236 @@ + + +ParadisEO-PEO: peoEA< EOT > Class Template Reference + + + + +
+
+ +

peoEA< EOT > Class Template Reference

The peoEA class offers an elementary evolutionary algorithm implementation. +More... +

+#include <peoEA.h> +

+

Inheritance diagram for peoEA< EOT >: +

+ +Runner +Communicable +Thread + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoEA (eoContinue< EOT > &__cont, peoPopEval< EOT > &__pop_eval, eoSelect< EOT > &__select, peoTransform< EOT > &__trans, eoReplacement< EOT > &__replace)
 Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism.
+void run ()
 Evolutionary algorithm function - a side effect of the fact that the class is derived from the Runner class, thus requiring the existence of a run function, the algorithm being executed on a distinct thread.
void operator() (eoPop< EOT > &__pop)
 Function operator for specifying the population to be associated with the algorithm.

Private Attributes

+eoContinue< EOT > & cont
+peoPopEval< EOT > & pop_eval
+eoSelect< EOT > & select
+peoTransform< EOT > & trans
+eoReplacement< EOT > & replace
+eoPop< EOT > * pop
+

Detailed Description

+

template<class EOT>
+ class peoEA< EOT >

+ +The peoEA class offers an elementary evolutionary algorithm implementation. +

+In addition, as compared with the algorithms provided by the EO framework, the peoEA class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a peoEA object:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
...    
eoPop< EOT > population( POP_SIZE, popInitializer );   // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual
   
eoGenContinue< EOT > eaCont( NUM_GEN );   // number of generations for the evolutionary algorithm
eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects
   
peoSeqPopEval< EOT > eaPopEval( evalFunction );   // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor
   
eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE );   // the number of individuals to be selected for creating the offspring population
eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
   
eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE );   // transformation operator - crossover and mutation operators with their associated probabilities
peoSeqTransform< EOT > eaTransform( transform );   // ParadisEO specific sequential operator - a parallel version may be specified in the same manner
   
eoPlusReplacement< EOT > eaReplace;   // replacement strategy - for integrating the offspring resulting individuals in the initial population
   
peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );   // ParadisEO evolutionary algorithm integrating the above defined objects
eaAlg( population );   // specifying the initial population for the algorithm
...    
+ +

+ +

+Definition at line 54 of file peoEA.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoEA< EOT >::peoEA (eoContinue< EOT > &  __cont,
peoPopEval< EOT > &  __pop_eval,
eoSelect< EOT > &  __select,
peoTransform< EOT > &  __trans,
eoReplacement< EOT > &  __replace 
)
+
+
+ +

+Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. +

+Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes.

+

Parameters:
+ + + + + + +
eoContinue< EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not;
peoPopEval< EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.;
eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals;
peoTransform< EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform;
eoReplacement< EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population;
+
+ +

+Definition at line 98 of file peoEA.h. +

+References peoEA< EOT >::pop_eval, and peoEA< EOT >::trans. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoEA< EOT >::operator() (eoPop< EOT > &  __pop  ) 
+
+
+ +

+Function operator for specifying the population to be associated with the algorithm. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - initial population of the algorithm, to be iteratively evolved;
+
+ +

+Definition at line 114 of file peoEA.h. +

+References peoEA< EOT >::pop. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA.png new file mode 100644 index 000000000..e3384cb44 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoEA.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html new file mode 100644 index 000000000..4551ff4c1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoNoAggEvalFunc< EOT > Member List

This is the complete list of members for peoNoAggEvalFunc< EOT >, including all inherited members.

+ + + + + +
functor_category()eoBF< A1, A2, R > [static]
operator()(EOT &__sol, const typename EOT::Fitness &__fit)peoNoAggEvalFunc< EOT >
peoAggEvalFunc::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
~eoBF()eoBF< A1, A2, R > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html new file mode 100644 index 000000000..8aebd17ac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: peoNoAggEvalFunc< EOT > Class Template Reference + + + + +
+
+ +

peoNoAggEvalFunc< EOT > Class Template Reference

The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual. +More... +

+#include <peoNoAggEvalFunc.h> +

+

Inheritance diagram for peoNoAggEvalFunc< EOT >: +

+ +peoAggEvalFunc< EOT > +eoBF< A1, A2, R > +eoFunctorBase + +List of all members. + + + + + +

Public Member Functions

+void operator() (EOT &__sol, const typename EOT::Fitness &__fit)
 Operator which sets as fitness the __fit value for the __sol individual.
+

Detailed Description

+

template<class EOT>
+ class peoNoAggEvalFunc< EOT >

+ +The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual. +

+The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. +

+ +

+Definition at line 19 of file peoNoAggEvalFunc.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.png new file mode 100644 index 000000000..2feda5514 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval-members.html new file mode 100644 index 000000000..6d756ebc8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval-members.html @@ -0,0 +1,73 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoParaPopEval< EOT > Member List

This is the complete list of members for peoParaPopEval< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ad_solpeoParaPopEval< EOT > [private]
Communicable()Communicable
execute()peoParaPopEval< EOT > [virtual]
funcspeoParaPopEval< EOT > [private]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
merge_evalpeoParaPopEval< EOT > [private]
no_merge_evalpeoParaPopEval< EOT > [private]
notifySendingAllResourceRequests()peoParaPopEval< EOT > [virtual]
notifySendingData()peoParaPopEval< EOT > [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_funcpeoParaPopEval< EOT > [private]
one_funcpeoParaPopEval< EOT > [private]
operator()(eoPop< EOT > &__pop)peoParaPopEval< EOT > [virtual]
packData()peoParaPopEval< EOT > [virtual]
packResourceRequest()Service
packResult()peoParaPopEval< EOT > [virtual]
peoParaPopEval(eoEvalFunc< EOT > &__eval_func)peoParaPopEval< EOT >
peoParaPopEval(const std::vector< eoEvalFunc< EOT > * > &__funcs, peoAggEvalFunc< EOT > &__merge_eval)peoParaPopEval< EOT >
progressionpeoParaPopEval< EOT > [private]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
solpeoParaPopEval< EOT > [private]
stop()Communicable
taskspeoParaPopEval< EOT > [private]
totalpeoParaPopEval< EOT > [private]
unlock()Communicable
unpackData()peoParaPopEval< EOT > [virtual]
unpackResult()peoParaPopEval< EOT > [virtual]
~Communicable()Communicable [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval.html new file mode 100644 index 000000000..6955adb88 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval.html @@ -0,0 +1,411 @@ + + +ParadisEO-PEO: peoParaPopEval< EOT > Class Template Reference + + + + +
+
+ +

peoParaPopEval< EOT > Class Template Reference

The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. +More... +

+#include <peoParaPopEval.h> +

+

Inheritance diagram for peoParaPopEval< EOT >: +

+ +peoPopEval< EOT > +Service +Communicable + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoParaPopEval (eoEvalFunc< EOT > &__eval_func)
 Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor.
 peoParaPopEval (const std::vector< eoEvalFunc< EOT > * > &__funcs, peoAggEvalFunc< EOT > &__merge_eval)
 Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function.
void operator() (eoPop< EOT > &__pop)
 Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population.
void packData ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
void unpackData ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
+void execute ()
 Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function.
void packResult ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
void unpackResult ()
 Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
void notifySendingData ()
 Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.
void notifySendingAllResourceRequests ()
 Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.

Private Attributes

+const std::vector< eoEvalFunc<
+ EOT > * > & 
funcs
+std::vector< eoEvalFunc< EOT > * > one_func
+peoAggEvalFunc< EOT > & merge_eval
+peoNoAggEvalFunc< EOT > no_merge_eval
+std::queue< EOT * > tasks
+std::map< EOT *, std::pair<
+ unsigned, unsigned > > 
progression
+unsigned num_func
+EOT sol
+EOT * ad_sol
+unsigned total
+

Detailed Description

+

template<class EOT>
+ class peoParaPopEval< EOT >

+ +The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. +

+The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions. +

+ +

+Definition at line 26 of file peoParaPopEval.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
peoParaPopEval< EOT >::peoParaPopEval (eoEvalFunc< EOT > &  __eval_func  ) 
+
+
+ +

+Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. +

+

Parameters:
+ + +
eoEvalFunc< EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population
+
+ +

+Definition at line 102 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::one_func. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + +
peoParaPopEval< EOT >::peoParaPopEval (const std::vector< eoEvalFunc< EOT > * > &  __funcs,
peoAggEvalFunc< EOT > &  __merge_eval 
)
+
+
+ +

+Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. +

+

Parameters:
+ + + +
const std :: vector< eoEvalFunc < EOT >* >& __funcs - vector of EO-derived partial evaluation functors;
peoAggEvalFunc< EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values.
+
+ +

+Definition at line 111 of file peoParaPopEval.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoParaPopEval< EOT >::operator() (eoPop< EOT > &  __pop  )  [virtual]
+
+
+ +

+Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor.
+
+ +

+Implements peoPopEval< EOT >. +

+Definition at line 122 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::funcs, peoParaPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoParaPopEval< EOT >::tasks, and peoParaPopEval< EOT >::total. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::packData (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 143 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::progression, and peoParaPopEval< EOT >::tasks. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::unpackData (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 157 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::ad_sol, peoParaPopEval< EOT >::num_func, and peoParaPopEval< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::packResult (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 174 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::ad_sol, and peoParaPopEval< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::unpackResult (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 183 of file peoParaPopEval.h. +

+References peoParaPopEval< EOT >::ad_sol, Service::getOwner(), peoParaPopEval< EOT >::merge_eval, peoParaPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoParaPopEval< EOT >::total. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::notifySendingData (  )  [virtual]
+
+
+ +

+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 214 of file peoParaPopEval.h. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoParaPopEval< EOT >::notifySendingAllResourceRequests (  )  [virtual]
+
+
+ +

+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 219 of file peoParaPopEval.h. +

+References Service::getOwner(), and Thread::setPassive(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval.png new file mode 100644 index 000000000..3ddb39223 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaPopEval.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform-members.html new file mode 100644 index 000000000..a1dff0885 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform-members.html @@ -0,0 +1,75 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoParaSGATransform< EOT > Member List

This is the complete list of members for peoParaSGATransform< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
crosspeoParaSGATransform< EOT > [private]
cross_ratepeoParaSGATransform< EOT > [private]
execute()peoParaSGATransform< EOT > [virtual]
fatherpeoParaSGATransform< EOT > [private]
functor_category()eoUF< A1, R > [static]
getKey()Communicable
getOwner()Service
idxpeoParaSGATransform< EOT > [private]
keyCommunicable [protected]
lock()Communicable
motherpeoParaSGATransform< EOT > [private]
mutpeoParaSGATransform< EOT > [private]
mut_ratepeoParaSGATransform< EOT > [private]
notifySendingAllResourceRequests()peoParaSGATransform< EOT > [virtual]
notifySendingData()peoParaSGATransform< EOT > [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_termpeoParaSGATransform< EOT > [private]
operator()(eoPop< EOT > &__pop)peoParaSGATransform< EOT >
peoTransform::operator()(A1)=0eoUF< A1, R > [pure virtual]
packData()peoParaSGATransform< EOT > [virtual]
packResourceRequest()Service
packResult()peoParaSGATransform< EOT > [virtual]
peoParaSGATransform(eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate)peoParaSGATransform< EOT >
poppeoParaSGATransform< EOT > [private]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()peoParaSGATransform< EOT > [virtual]
unpackResult()peoParaSGATransform< EOT > [virtual]
~Communicable()Communicable [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform.html new file mode 100644 index 000000000..690784db0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform.html @@ -0,0 +1,115 @@ + + +ParadisEO-PEO: peoParaSGATransform< EOT > Class Template Reference + + + + +
+
+ +

peoParaSGATransform< EOT > Class Template Reference

Inheritance diagram for peoParaSGATransform< EOT >: +

+ +peoTransform< EOT > +Service +eoTransform< EOT > +Communicable +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

peoParaSGATransform (eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate)
+void operator() (eoPop< EOT > &__pop)
+void packData ()
+void unpackData ()
+void execute ()
+void packResult ()
+void unpackResult ()
+void notifySendingData ()
+void notifySendingAllResourceRequests ()

Private Attributes

+eoQuadOp< EOT > & cross
+double cross_rate
+eoMonOp< EOT > & mut
+double mut_rate
+unsigned idx
+eoPop< EOT > * pop
+EOT father
+EOT mother
+unsigned num_term
+

Detailed Description

+

template<class EOT>
+ class peoParaSGATransform< EOT >

+ + +

+ +

+Definition at line 21 of file peoParaSGATransform.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform.png new file mode 100644 index 000000000..ed966aad7 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoParaSGATransform.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval-members.html new file mode 100644 index 000000000..34e68d3c5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval-members.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoPopEval< EOT > Member List

This is the complete list of members for peoPopEval< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()Service [virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)=0peoPopEval< EOT > [pure virtual]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval.html new file mode 100644 index 000000000..d702ee706 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval.html @@ -0,0 +1,69 @@ + + +ParadisEO-PEO: peoPopEval< EOT > Class Template Reference + + + + +
+
+ +

peoPopEval< EOT > Class Template Reference

The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +More... +

+#include <peoPopEval.h> +

+

Inheritance diagram for peoPopEval< EOT >: +

+ +Service +Communicable +peoParaPopEval< EOT > +peoSeqPopEval< EOT > + +List of all members. + + + + + +

Public Member Functions

+virtual void operator() (eoPop< EOT > &__pop)=0
 Interface function providing the signature for constructing an evaluation functor.
+

Detailed Description

+

template<class EOT>
+ class peoPopEval< EOT >

+ +The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +

+The derived classes may be used as wrappers for EO-derived evaluation functors. In order to have an example, please refer to the implementation of the peoSeqPopEval and peoParaPopEval classes. +

+ +

+Definition at line 19 of file peoPopEval.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval.png new file mode 100644 index 000000000..100bbb770 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoPopEval.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval-members.html new file mode 100644 index 000000000..91af4cd6b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval-members.html @@ -0,0 +1,63 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSeqPopEval< EOT > Member List

This is the complete list of members for peoSeqPopEval< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
evalpeoSeqPopEval< EOT > [private]
execute()Service [virtual]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)peoSeqPopEval< EOT > [virtual]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
peoSeqPopEval(eoEvalFunc< EOT > &__eval)peoSeqPopEval< EOT >
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval.html new file mode 100644 index 000000000..d202b349e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval.html @@ -0,0 +1,142 @@ + + +ParadisEO-PEO: peoSeqPopEval< EOT > Class Template Reference + + + + +
+
+ +

peoSeqPopEval< EOT > Class Template Reference

The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor. +More... +

+#include <peoSeqPopEval.h> +

+

Inheritance diagram for peoSeqPopEval< EOT >: +

+ +peoPopEval< EOT > +Service +Communicable + +List of all members. + + + + + + + + + + + +

Public Member Functions

 peoSeqPopEval (eoEvalFunc< EOT > &__eval)
 Constructor function - it only sets an internal reference to point to the specified evaluation object.
void operator() (eoPop< EOT > &__pop)
 Operator for evaluating all the individuals of a given population - in a sequential iterative manner.

Private Attributes

+eoEvalFunc< EOT > & eval
+

Detailed Description

+

template<class EOT>
+ class peoSeqPopEval< EOT >

+ +The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor. +

+The specified EO evaluation object is applyied in an iterative manner to each individual of a specified population. +

+ +

+Definition at line 21 of file peoSeqPopEval.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
peoSeqPopEval< EOT >::peoSeqPopEval (eoEvalFunc< EOT > &  __eval  ) 
+
+
+ +

+Constructor function - it only sets an internal reference to point to the specified evaluation object. +

+

Parameters:
+ + +
eoEvalFunc< EOT >& __eval - evaluation object to be applied for each individual of a specified population
+
+ +

+Definition at line 41 of file peoSeqPopEval.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoSeqPopEval< EOT >::operator() (eoPop< EOT > &  __pop  )  [virtual]
+
+
+ +

+Operator for evaluating all the individuals of a given population - in a sequential iterative manner. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - population to be evaluated.
+
+ +

+Implements peoPopEval< EOT >. +

+Definition at line 46 of file peoSeqPopEval.h. +

+References peoSeqPopEval< EOT >::eval. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval.png new file mode 100644 index 000000000..df2001515 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqPopEval.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform-members.html new file mode 100644 index 000000000..4b9ecd570 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform-members.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSeqTransform< EOT > Member List

This is the complete list of members for peoSeqTransform< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()peoSeqTransform< EOT > [inline, virtual]
functor_category()eoUF< A1, R > [static]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(eoPop< EOT > &__pop)peoSeqTransform< EOT >
peoTransform::operator()(A1)=0eoUF< A1, R > [pure virtual]
packData()peoSeqTransform< EOT > [inline, virtual]
packResourceRequest()Service
packResult()peoSeqTransform< EOT > [inline, virtual]
peoSeqTransform(eoTransform< EOT > &__trans)peoSeqTransform< EOT >
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
transpeoSeqTransform< EOT > [private]
unlock()Communicable
unpackData()peoSeqTransform< EOT > [inline, virtual]
unpackResult()peoSeqTransform< EOT > [inline, virtual]
~Communicable()Communicable [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform.html new file mode 100644 index 000000000..0eaed61a7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform.html @@ -0,0 +1,163 @@ + + +ParadisEO-PEO: peoSeqTransform< EOT > Class Template Reference + + + + +
+
+ +

peoSeqTransform< EOT > Class Template Reference

The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms. +More... +

+#include <peoSeqTransform.h> +

+

Inheritance diagram for peoSeqTransform< EOT >: +

+ +peoTransform< EOT > +Service +eoTransform< EOT > +Communicable +eoUF< A1, R > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoSeqTransform (eoTransform< EOT > &__trans)
 Constructor function - sets an internal reference towards the specified EO-derived transform object.
void operator() (eoPop< EOT > &__pop)
 Operator for applying the specified transform operators on each individual of the given population.
+virtual void packData ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void unpackData ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void execute ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void packResult ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.
+virtual void unpackResult ()
 Interface function for providing a link with the parallel architecture of the ParadisEO framework.

Private Attributes

+eoTransform< EOT > & trans
+

Detailed Description

+

template<class EOT>
+ class peoSeqTransform< EOT >

+ +The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms. +

+A minimal set of interface functions is also provided for creating the link with the parallel architecture of the ParadisEO framework. +

+ +

+Definition at line 20 of file peoSeqTransform.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
peoSeqTransform< EOT >::peoSeqTransform (eoTransform< EOT > &  __trans  ) 
+
+
+ +

+Constructor function - sets an internal reference towards the specified EO-derived transform object. +

+

Parameters:
+ + +
eoTransform< EOT >& __trans - EO-derived transform object including crossover and mutation operators.
+
+ +

+Definition at line 55 of file peoSeqTransform.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + +
void peoSeqTransform< EOT >::operator() (eoPop< EOT > &  __pop  ) 
+
+
+ +

+Operator for applying the specified transform operators on each individual of the given population. +

+

Parameters:
+ + +
eoPop< EOT >& __pop - population to be transformed by applying the crossover and mutation operators.
+
+ +

+Definition at line 60 of file peoSeqTransform.h. +

+References peoSeqTransform< EOT >::trans. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform.png new file mode 100644 index 000000000..48c554a94 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSeqTransform.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html new file mode 100644 index 000000000..e372442a3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html @@ -0,0 +1,74 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSyncIslandMig< EOT > Member List

This is the complete list of members for peoSyncIslandMig< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
className(void) const eoUpdater [virtual]
Communicable()Communicable
contpeoSyncIslandMig< EOT > [private]
coop_empeoSyncIslandMig< EOT > [private]
destinationpeoSyncIslandMig< EOT > [private]
empeoSyncIslandMig< EOT > [private]
emigrate()peoSyncIslandMig< EOT > [private]
functor_category()eoF< void > [static]
getKey()Communicable
getOwner()Cooperative
immpeoSyncIslandMig< EOT > [private]
immigrate()peoSyncIslandMig< EOT > [private]
keyCommunicable [protected]
lastCall()eoUpdater [virtual]
lock()Communicable
notifySending()peoSyncIslandMig< EOT > [virtual]
num_commCommunicable [protected, static]
operator()()peoSyncIslandMig< EOT > [virtual]
pack()peoSyncIslandMig< EOT > [virtual]
peoSyncIslandMig(unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)peoSyncIslandMig< EOT >
replacepeoSyncIslandMig< EOT > [private]
result_type typedefeoF< void >
resume()Communicable
selectpeoSyncIslandMig< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
send(Cooperative *__coop)Cooperative
setOwner(Runner &__runner)Cooperative
sourcepeoSyncIslandMig< EOT > [private]
stop()Communicable
syncpeoSyncIslandMig< EOT > [private]
topologypeoSyncIslandMig< EOT > [private]
unlock()Communicable
unpack()peoSyncIslandMig< EOT > [virtual]
~Communicable()Communicable [virtual]
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig.html new file mode 100644 index 000000000..6e8c45e2e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig.html @@ -0,0 +1,310 @@ + + +ParadisEO-PEO: peoSyncIslandMig< EOT > Class Template Reference + + + + +
+
+ +

peoSyncIslandMig< EOT > Class Template Reference

The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +More... +

+#include <peoSyncIslandMig.h> +

+

Inheritance diagram for peoSyncIslandMig< EOT >: +

+ +Cooperative +eoUpdater +Communicable +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoSyncIslandMig (unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)
 Constructor for the peoSyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
void operator() ()
 Function operator to be called as checkpoint for performing the migration step.
+void pack ()
 Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function.
+void unpack ()
 Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function.
+void notifySending ()
 Auxiliary function dealing with migration notifications. There is no need to explicitly call the function.

Private Member Functions

+void emigrate ()
+void immigrate ()

Private Attributes

+eoPeriodicContinue< EOT > cont
+eoSelect< EOT > & select
+eoReplacement< EOT > & replace
+Topologytopology
+eoPop< EOT > & source
+eoPop< EOT > & destination
+std::queue< eoPop< EOT > > imm
+std::queue< eoPop< EOT > > em
+std::queue< Cooperative * > coop_em
+sem_t sync
+

Detailed Description

+

template<class EOT>
+ class peoSyncIslandMig< EOT >

+ +The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +

+frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals.

+The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:

+ + + + + + + + + + + + + +
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offspring
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population, including the migration operator, if any specified
+

+Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the Runner class (for example a peoEA object represents a possible owner). A simple example is offered bellow:

+

    +
  1. +topological model to be followed when performing migrations:
    +
    + + + +
    RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
    +

    +

  2. +
  3. +the continuation criterion, selection and replacement strategy etc. are defined:
    +
    + + + + + + + + + + + + + + + +
    eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
       
    eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
    eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
    eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
       
    peoSyncIslandMig< EOT > syncMigration(
    +          MIG_FREQ, migSelect, migReplace, migTopology,
    +          population, population
    + );  
    // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
    +

    +

  4. +
  5. +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
    +
    + + + + + + + + + + + + + +
    ...    
    eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
    ...    
    eaCheckpointContinue.add( syncMigration );   // adding the migration operator as checkpoint element
    ...    
    +

    +

  6. +
  7. +definition of an owner evolutionary algorithm (an object inheriting the Runner class):
    +
    + + + + + + + +
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
    syncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
    eaAlg( population );   // applying the evolutionary algorithm on a given population
    +
  8. +
+

+The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.

+The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +

+ +

+Definition at line 114 of file peoSyncIslandMig.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoSyncIslandMig< EOT >::peoSyncIslandMig (unsigned  __frequency,
eoSelect< EOT > &  __select,
eoReplacement< EOT > &  __replace,
Topology __topology,
eoPop< EOT > &  __source,
eoPop< EOT > &  __destination 
)
+
+
+ +

+Constructor for the peoSyncIslandMig class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. +

+

Parameters:
+ + + + + + + +
unsigned __frequency - frequency of the migrations - the migrations occur periodically;
eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population;
eoReplacement< EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population;
Topology& __topology - topological model to be followed when performing migrations;
eoPop< EOT >& __source - source population from which the emigrant individuals are selected;
eoPop< EOT >& __destination - destination population in which the immigrant population are integrated.
+
+ +

+Definition at line 178 of file peoSyncIslandMig.h. +

+References Topology::add(), and peoSyncIslandMig< EOT >::sync. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncIslandMig< EOT >::operator() (  )  [virtual]
+
+
+ +

+Function operator to be called as checkpoint for performing the migration step. +

+The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +

+Implements eoF< void >. +

+Definition at line 252 of file peoSyncIslandMig.h. +

+References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync. +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig.png new file mode 100644 index 000000000..6a1b7c227 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncIslandMig.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart-members.html new file mode 100644 index 000000000..151209557 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart-members.html @@ -0,0 +1,78 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoSyncMultiStart< EOT > Member List

This is the complete list of members for peoSyncMultiStart< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
className(void) const eoUpdater [virtual]
Communicable()Communicable
contpeoSyncMultiStart< EOT > [private]
execute()peoSyncMultiStart< EOT > [virtual]
functor_category()eoF< void > [static]
getKey()Communicable
getOwner()Service
idxpeoSyncMultiStart< EOT > [private]
impr_selpeoSyncMultiStart< EOT > [private]
keyCommunicable [protected]
lastCall()eoUpdater [virtual]
lock()Communicable
lspeoSyncMultiStart< EOT > [private]
notifySendingAllResourceRequests()peoSyncMultiStart< EOT > [virtual]
notifySendingData()peoSyncMultiStart< EOT > [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
num_termpeoSyncMultiStart< EOT > [private]
operator()()peoSyncMultiStart< EOT > [virtual]
packData()peoSyncMultiStart< EOT > [virtual]
packResourceRequest()Service
packResult()peoSyncMultiStart< EOT > [virtual]
peoSyncMultiStart(eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, moAlgo< EOT > &__ls, eoPop< EOT > &__pop)peoSyncMultiStart< EOT >
poppeoSyncMultiStart< EOT > [private]
replacepeoSyncMultiStart< EOT > [private]
requestResourceRequest(unsigned __how_many=1)Service
result_type typedefeoF< void >
resume()Communicable
selpeoSyncMultiStart< EOT > [private]
selectpeoSyncMultiStart< EOT > [private]
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
solpeoSyncMultiStart< EOT > [private]
stop()Communicable
unlock()Communicable
unpackData()peoSyncMultiStart< EOT > [virtual]
unpackResult()peoSyncMultiStart< EOT > [virtual]
~Communicable()Communicable [virtual]
~eoF()eoF< void > [virtual]
~eoFunctorBase()eoFunctorBase [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart.html new file mode 100644 index 000000000..3a3e37955 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart.html @@ -0,0 +1,418 @@ + + +ParadisEO-PEO: peoSyncMultiStart< EOT > Class Template Reference + + + + +
+
+ +

peoSyncMultiStart< EOT > Class Template Reference

The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. +More... +

+#include <peoSyncMultiStart.h> +

+

Inheritance diagram for peoSyncMultiStart< EOT >: +

+ +Service +eoUpdater +Communicable +eoF< void > +eoFunctorBase + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 peoSyncMultiStart (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, moAlgo< EOT > &__ls, eoPop< EOT > &__pop)
 Constructor function - several simple parameters are required for defining the characteristics of the multi-start model.
void operator() ()
 Operator which synchronously executes the specified algorithm on the individuals selected from the initial population.
void packData ()
 Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
void unpackData ()
 Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
void execute ()
 Auxiliary function for actually executing the specified algorithm on one assigned individual.
void packResult ()
 Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
void unpackResult ()
 Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
void notifySendingData ()
 Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase.
void notifySendingAllResourceRequests ()
 Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase.

Private Attributes

+eoContinue< EOT > & cont
+eoSelect< EOT > & select
+eoReplacement< EOT > & replace
+moAlgo< EOT > & ls
+eoPop< EOT > & pop
+eoPop< EOT > sel
+eoPop< EOT > impr_sel
+EOT sol
+unsigned idx
+unsigned num_term
+

Detailed Description

+

template<class EOT>
+ class peoSyncMultiStart< EOT >

+ +The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. +

+As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A peoSyncMultiStart object can be specified as checkpoint object for a classic ParadisEO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation. +

+ +

+Definition at line 36 of file peoSyncMultiStart.h.


Constructor & Destructor Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
peoSyncMultiStart< EOT >::peoSyncMultiStart (eoContinue< EOT > &  __cont,
eoSelect< EOT > &  __select,
eoReplacement< EOT > &  __replace,
moAlgo< EOT > &  __ls,
eoPop< EOT > &  __pop 
)
+
+
+ +

+Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. +

+

Parameters:
+ + + + + + +
eoContinue< EOT >& __cont - defined for including further functionality - no semantics associated at this time;
eoSelect< EOT >& __select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm;
eoReplacement< EOT >& __replace - replacement strategy for integrating the resulting individuals in the initial population;
moAlgo< EOT >& __ls - algorithm to be applied on each of the selected individuals - a moAlgo< EOT >-derived object must be specified;
eoPop< EOT >& __pop - the initial population from which the individuals are selected for applying the specified algorithm.
+
+ +

+Definition at line 106 of file peoSyncMultiStart.h. +

+

+


Member Function Documentation

+ +
+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::operator() (  )  [virtual]
+
+
+ +

+Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. +

+There is no need to explicitly call the operator - automatically called as checkpoint operator. +

+Implements eoF< void >. +

+Definition at line 161 of file peoSyncMultiStart.h. +

+References peoSyncMultiStart< EOT >::idx, peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, Service::requestResourceRequest(), peoSyncMultiStart< EOT >::sel, peoSyncMultiStart< EOT >::select, and Communicable::stop(). +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::packData (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 120 of file peoSyncMultiStart.h. +

+References peoSyncMultiStart< EOT >::idx, and peoSyncMultiStart< EOT >::sel. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::unpackData (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 126 of file peoSyncMultiStart.h. +

+References peoSyncMultiStart< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::execute (  )  [virtual]
+
+
+ +

+Auxiliary function for actually executing the specified algorithm on one assigned individual. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 132 of file peoSyncMultiStart.h. +

+References peoSyncMultiStart< EOT >::ls, and peoSyncMultiStart< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::packResult (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 138 of file peoSyncMultiStart.h. +

+References peoSyncMultiStart< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::unpackResult (  )  [virtual]
+
+
+ +

+Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 144 of file peoSyncMultiStart.h. +

+References Service::getOwner(), peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, peoSyncMultiStart< EOT >::replace, Communicable::resume(), peoSyncMultiStart< EOT >::sel, Thread::setActive(), and peoSyncMultiStart< EOT >::sol. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::notifySendingData (  )  [virtual]
+
+
+ +

+Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 172 of file peoSyncMultiStart.h. +

+

+ +

+
+
+template<class EOT>
+ + + + + + + + +
void peoSyncMultiStart< EOT >::notifySendingAllResourceRequests (  )  [virtual]
+
+
+ +

+Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +

+There is no need to explicitly call the function. +

+Reimplemented from Service. +

+Definition at line 177 of file peoSyncMultiStart.h. +

+References Service::getOwner(), and Thread::setPassive(). +

+

+


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart.png new file mode 100644 index 000000000..2ab8fb990 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoSyncMultiStart.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform-members.html new file mode 100644 index 000000000..19a5c57b4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform-members.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

peoTransform< EOT > Member List

This is the complete list of members for peoTransform< EOT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Communicable()Communicable
execute()Service [virtual]
functor_category()eoUF< A1, R > [static]
getKey()Communicable
getOwner()Service
keyCommunicable [protected]
lock()Communicable
notifySendingAllResourceRequests()Service [virtual]
notifySendingData()Service [virtual]
notifySendingResourceRequest()Service [virtual]
num_commCommunicable [protected, static]
operator()(A1)=0eoUF< A1, R > [pure virtual]
packData()Service [virtual]
packResourceRequest()Service
packResult()Service [virtual]
requestResourceRequest(unsigned __how_many=1)Service
resume()Communicable
sem_lockCommunicable [protected]
sem_stopCommunicable [protected]
setOwner(Thread &__owner)Service
stop()Communicable
unlock()Communicable
unpackData()Service [virtual]
unpackResult()Service [virtual]
~Communicable()Communicable [virtual]
~eoFunctorBase()eoFunctorBase [virtual]
~eoUF()eoUF< A1, R > [virtual]


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform.html new file mode 100644 index 000000000..7d416dc79 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO: peoTransform< EOT > Class Template Reference + + + + +
+
+ +

peoTransform< EOT > Class Template Reference

The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes. +More... +

+#include <peoTransform.h> +

+

Inheritance diagram for peoTransform< EOT >: +

+ +Service +eoTransform< EOT > +Communicable +eoUF< A1, R > +eoFunctorBase +peoParaSGATransform< EOT > +peoSeqTransform< EOT > + +List of all members. + +
+

Detailed Description

+

template<class EOT>
+ class peoTransform< EOT >

+ +The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes. +

+ +

+Definition at line 20 of file peoTransform.h.


The documentation for this class was generated from the following file: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform.png new file mode 100644 index 000000000..d762a43a5 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/classpeoTransform.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/comm_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/comm_8cpp-source.html new file mode 100644 index 000000000..ad844aea2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/comm_8cpp-source.html @@ -0,0 +1,96 @@ + + +ParadisEO-PEO: comm.cpp Source File + + + + +
+
+

comm.cpp

00001 // "comm.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 
+00010 #include <mpi.h>
+00011 
+00012 #include "comm.h"
+00013 #include "mess.h"
+00014 #include "node.h"
+00015 #include "param.h"
+00016 #include "../../core/peo_debug.h"
+00017 #include "../../core/runner.h"
+00018 #include "send.h"
+00019 #include "recv.h"
+00020 #include "scheduler.h"
+00021 
+00022 static sem_t sem_comm_init;
+00023 
+00024 static Communicator * the_thread;
+00025 
+00026 Communicator :: Communicator (int * __argc, char * * * __argv) {
+00027 
+00028   the_thread = this;  
+00029   initNode  (__argc, __argv);
+00030   loadRMCParameters (* __argc, * __argv);  
+00031   sem_post (& sem_comm_init);
+00032 }
+00033 
+00034 void Communicator :: start () {
+00035 
+00036   while (true) {
+00037     
+00038     /* Zzz Zzz Zzz :-))) */
+00039     sleep ();
+00040     sendMessages ();
+00041 
+00042     if (! atLeastOneActiveRunner ())     
+00043       break;
+00044     receiveMessages ();    
+00045   }
+00046   waitBuffers ();  
+00047   printDebugMessage ("finalizing");
+00048   MPI_Finalize ();  
+00049 }
+00050 
+00051 void initCommunication () {
+00052 
+00053   sem_init (& sem_comm_init, 0, 0);
+00054 }
+00055 
+00056 void waitNodeInitialization () {
+00057 
+00058   sem_wait (& sem_comm_init);
+00059 }
+00060 
+00061 void wakeUpCommunicator () {
+00062 
+00063   the_thread -> wakeUp ();
+00064 }
+00065 
+00066 
+00067 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/comm_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/comm_8h-source.html new file mode 100644 index 000000000..0596c24f1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/comm_8h-source.html @@ -0,0 +1,60 @@ + + +ParadisEO-PEO: comm.h Source File + + + + +
+
+

comm.h

00001 // "comm.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __comm_mpi_h
+00010 #define __comm_mpi_h
+00011 
+00012 #include "../../core/communicable.h"
+00013 #include "../../core/reac_thread.h"
+00014 
+00015 class Communicator : public ReactiveThread {
+00016 
+00017 public :
+00018   
+00019   /* Ctor */
+00020   Communicator (int * __argc, char * * * __argv);
+00021 
+00022   void start ();
+00023 };
+00024 
+00025 extern void initCommunication ();
+00026 
+00027 extern void waitNodeInitialization ();
+00028 
+00029 extern void wakeUpCommunicator ();
+00030 
+00031 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/communicable_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/communicable_8cpp-source.html new file mode 100644 index 000000000..133b8367d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/communicable_8cpp-source.html @@ -0,0 +1,99 @@ + + +ParadisEO-PEO: communicable.cpp Source File + + + + +
+
+

communicable.cpp

00001 // "comm.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <vector>
+00010 #include <map>
+00011 #include <cassert>
+00012 
+00013 #include "communicable.h"
+00014 
+00015 static std :: vector <Communicable *> key_to_comm (1); /* Vector of registered cooperators */
+00016 
+00017 static std :: map <const Communicable *, unsigned> comm_to_key; /* Map of registered cooperators */
+00018 
+00019 unsigned Communicable :: num_comm = 0;
+00020 
+00021 Communicable :: Communicable () {
+00022 
+00023   comm_to_key [this] = key = ++ num_comm;
+00024   key_to_comm.push_back (this);
+00025   sem_init (& sem_lock, 0, 1);
+00026   sem_init (& sem_stop, 0, 0);
+00027 }
+00028 
+00029 Communicable :: ~ Communicable () {
+00030 
+00031 }
+00032 
+00033 COMM_ID Communicable :: getKey () {
+00034 
+00035   return key;
+00036 }
+00037 
+00038 Communicable * getCommunicable (COMM_ID __key) {
+00039 
+00040   assert (__key < key_to_comm.size ());
+00041   return key_to_comm [__key];  
+00042 }
+00043 
+00044 COMM_ID getKey (const Communicable * __comm) {
+00045   
+00046   return comm_to_key [__comm];
+00047 }
+00048 
+00049 void Communicable :: lock () {
+00050 
+00051   sem_wait (& sem_lock);
+00052 }
+00053 
+00054 void Communicable :: unlock () {
+00055 
+00056   sem_post (& sem_lock);
+00057 }
+00058 
+00059 void Communicable :: stop () {
+00060 
+00061   sem_wait (& sem_stop);
+00062 }
+00063 
+00064 void Communicable :: resume () {
+00065 
+00066   sem_post (& sem_stop);
+00067 }
+00068 
+00069 
+00070 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/communicable_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/communicable_8h-source.html new file mode 100644 index 000000000..5fb98576c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/communicable_8h-source.html @@ -0,0 +1,76 @@ + + +ParadisEO-PEO: communicable.h Source File + + + + +
+
+

communicable.h

00001 // "communicable.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __communicable_h
+00010 #define __communicable_h
+00011 
+00012 #include <semaphore.h>
+00013 
+00014 typedef unsigned COMM_ID;
+00015 
+00016 class Communicable {
+00017 
+00018 public :
+00019 
+00020   Communicable ();
+00021   
+00022   virtual ~ Communicable ();
+00023 
+00024   COMM_ID getKey ();  
+00025 
+00026   void lock (); /* It suspends the current process if the semaphore is locked */
+00027   void unlock (); /* It unlocks the shared semaphore */
+00028 
+00029   void stop (); /* It suspends the current process */
+00030   void resume (); /* It resumes ___________ */
+00031   
+00032 protected :
+00033 
+00034   COMM_ID key;
+00035 
+00036   sem_t sem_lock;
+00037   
+00038   sem_t sem_stop;
+00039 
+00040   static unsigned num_comm;
+00041 };
+00042 
+00043 extern Communicable * getCommunicable (COMM_ID __key); 
+00044 
+00045 //extern COMM_ID getKey (const Communicable * __comm);
+00046 
+00047 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/coop_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/coop_8cpp-source.html new file mode 100644 index 000000000..4e9b4a9af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/coop_8cpp-source.html @@ -0,0 +1,71 @@ + + +ParadisEO-PEO: coop.cpp Source File + + + + +
+
+

coop.cpp

00001 // "coop.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "../../core/cooperative.h"
+00010 #include "send.h"
+00011 #include "tags.h"
+00012 #include "schema.h"
+00013 #include "mess.h"
+00014 #include "../../core/peo_debug.h"
+00015 
+00016 Runner * Cooperative :: getOwner () {
+00017 
+00018   return owner;
+00019 }
+00020 
+00021 void Cooperative :: setOwner (Runner & __runner) {
+00022 
+00023   owner = & __runner;
+00024 }
+00025 
+00026 void Cooperative :: send (Cooperative * __coop) {
+00027 
+00028   :: send (this, getRankOfRunner (__coop -> getOwner () -> getID ()), COOP_TAG);   
+00029   //  stop ();
+00030 }
+00031 
+00032 Cooperative * getCooperative (COOP_ID __key) {
+00033 
+00034   return dynamic_cast <Cooperative *> (getCommunicable (__key));
+00035 }
+00036 
+00037 void Cooperative :: notifySending () {
+00038 
+00039   //getOwner -> setPassive ();
+00040   //  resume ();
+00041   //  printDebugMessage (b);
+00042 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/cooperative_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/cooperative_8h-source.html new file mode 100644 index 000000000..0b89e4f74 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/cooperative_8h-source.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO: cooperative.h Source File + + + + +
+
+

cooperative.h

00001 // "cooperative.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __cooperative_h
+00010 #define __cooperative_h
+00011 
+00012 #include "communicable.h"
+00013 #include "runner.h"
+00014 
+00015 typedef unsigned COOP_ID;
+00016 
+00017 class Cooperative : public Communicable {
+00018 
+00019 public :
+00020 
+00021   Runner * getOwner ();
+00022 
+00023   void setOwner (Runner & __runner);
+00024 
+00025   virtual void pack () = 0;
+00026   
+00027   virtual void unpack () = 0;
+00028 
+00029   void send (Cooperative * __coop); 
+00030 
+00031   virtual void notifySending ();
+00032 
+00033 private :
+00034 
+00035   Runner * owner;
+00036 
+00037 };
+00038 
+00039 extern Cooperative * getCooperative (COOP_ID __key); 
+00040 
+00041 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/core_2runner_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/core_2runner_8cpp-source.html new file mode 100644 index 000000000..4a87691af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/core_2runner_8cpp-source.html @@ -0,0 +1,133 @@ + + +ParadisEO-PEO: runner.cpp Source File + + + + +
+
+

runner.cpp

00001 // "runner.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <vector>
+00010 
+00011 #include "runner.h"
+00012 #include "reac_thread.h"
+00013 #include "peo_debug.h"
+00014 #include "messaging.h"
+00015 
+00016 static unsigned num_act = 0; /* Number of active runners */
+00017 
+00018 static std :: vector <pthread_t *> ll_threads; /* Low-level runner threads */ 
+00019 
+00020 static std :: vector <Runner *> the_runners;
+00021 
+00022 static unsigned num_runners = 0;
+00023 
+00024 Runner :: Runner () {
+00025 
+00026   id = ++ num_runners;
+00027   the_runners.push_back (this);
+00028   sem_init (& sem_start, 0, 0);
+00029   num_act ++;  
+00030 }
+00031 
+00032 extern int getNodeRank ();
+00033 
+00034 extern int getNumberOfNodes ();
+00035 
+00036 void unpackTerminationOfRunner () {
+00037   
+00038   RUNNER_ID id;
+00039   unpack (id);    
+00040   num_act --;
+00041   printDebugMessage ("I'm noticed of the termination of a runner");
+00042   if (! num_act) {
+00043     printDebugMessage ("all the runners have terminated. Now stopping the reactive threads.");
+00044     stopReactiveThreads ();
+00045   }
+00046 }
+00047 
+00048 bool atLeastOneActiveRunner () {
+00049 
+00050   return num_act;
+00051 }
+00052 
+00053 RUNNER_ID Runner :: getID () {
+00054 
+00055   return id;
+00056 }
+00057 
+00058 void Runner :: start () {
+00059 
+00060   setActive ();
+00061   sem_post (& sem_start);
+00062   run ();
+00063   terminate ();
+00064 }
+00065 
+00066 void Runner :: notifySendingTermination () {
+00067 
+00068   /*
+00069   char b [1000];
+00070   sprintf (b, "Il reste encore %d !!!!!!!!!!!!", n);
+00071   printDebugMessage (b);
+00072   */
+00073   printDebugMessage ("je suis informe que tout le monde a recu ma terminaison");
+00074   setPassive ();
+00075   
+00076 }
+00077 
+00078 void Runner :: waitStarting () {
+00079 
+00080   sem_wait (& sem_start);
+00081 }
+00082 
+00083 Runner * getRunner (RUNNER_ID __key) {
+00084 
+00085   return dynamic_cast <Runner *> (getCommunicable (__key));
+00086 }
+00087 
+00088 void startRunners () {
+00089   
+00090   /* Runners */
+00091   for (unsigned i = 0; i < the_runners.size (); i ++)
+00092     if (the_runners [i] -> isLocal ()) {
+00093       addThread (the_runners [i], ll_threads);
+00094       the_runners [i] -> waitStarting ();
+00095     }
+00096   printDebugMessage ("launched the parallel runners");
+00097 }
+00098 
+00099 
+00100 void joinRunners () {
+00101 
+00102 
+00103   joinThreads (ll_threads);
+00104 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/core_2service_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/core_2service_8cpp-source.html new file mode 100644 index 000000000..5a0cff6c4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/core_2service_8cpp-source.html @@ -0,0 +1,87 @@ + + +ParadisEO-PEO: service.cpp Source File + + + + +
+
+

service.cpp

00001 // "service.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "service.h"
+00010 
+00011 void Service :: setOwner (Thread & __owner) {
+00012 
+00013   owner = & __owner;
+00014 }
+00015   
+00016 Thread * Service :: getOwner () {
+00017 
+00018   return owner;
+00019 }
+00020 
+00021 Service * getService (SERVICE_ID __key) {
+00022 
+00023   return dynamic_cast <Service *> (getCommunicable (__key));
+00024 }
+00025 
+00026 void Service :: notifySendingData () {
+00027 
+00028 }
+00029 void Service :: notifySendingResourceRequest () {
+00030 
+00031   num_sent_rr --;
+00032   if (! num_sent_rr)
+00033     notifySendingAllResourceRequests ();
+00034 }
+00035 
+00036 void Service :: notifySendingAllResourceRequests () {
+00037 
+00038 }
+00039 
+00040 void Service :: packData () {
+00041 
+00042 }
+00043 
+00044 void Service :: unpackData () {
+00045 
+00046 }
+00047 
+00048 void Service :: execute () {
+00049 
+00050 }
+00051   
+00052 void Service :: packResult () {
+00053 
+00054 }
+00055 
+00056 void Service :: unpackResult () {
+00057 
+00058 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/doxygen.css b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/doxygen.css new file mode 100644 index 000000000..5d583694e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/doxygen.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/doxygen.png new file mode 100644 index 000000000..f0a274bba Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/doxygen.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/eoPop__comm_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/eoPop__comm_8h-source.html new file mode 100644 index 000000000..196d1cd23 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/eoPop__comm_8h-source.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: eoPop_comm.h Source File + + + + +
+
+

eoPop_comm.h

00001 // "eoPop_comm.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __eoPop_comm_h
+00010 #define __eoPop_comm_h
+00011 
+00012 #include <eoPop.h>
+00013 
+00014 #include "messaging.h"
+00015 
+00016 template <class EOT> void pack (const eoPop <EOT> & __pop) {
+00017 
+00018   pack ((unsigned) __pop.size ());
+00019   for (unsigned i = 0; i < __pop.size (); i ++)
+00020     pack (__pop [i]);
+00021 }
+00022 
+00023 template <class EOT> void unpack (eoPop <EOT> & __pop) {
+00024 
+00025   unsigned n;
+00026   
+00027   unpack (n);
+00028   __pop.resize (n);
+00029   for (unsigned i = 0; i < n; i ++)
+00030     unpack (__pop [i]);
+00031 }
+00032 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/eoVector__comm_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/eoVector__comm_8h-source.html new file mode 100644 index 000000000..00aedb035 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/eoVector__comm_8h-source.html @@ -0,0 +1,67 @@ + + +ParadisEO-PEO: eoVector_comm.h Source File + + + + +
+
+

eoVector_comm.h

00001 // "eoVector_comm.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __eoVector_comm_h
+00010 #define __eoVector_comm_h
+00011 
+00012 #include <eoVector.h>
+00013 
+00014 #include "messaging.h"
+00015 
+00016 template <class F, class T> void pack (const eoVector <F, T> & __v) {
+00017 
+00018   pack (__v.fitness ()) ;
+00019   unsigned len = __v.size ();
+00020   pack (len);
+00021   for (unsigned i = 0 ; i < len; i ++)
+00022     pack (__v [i]);  
+00023 }
+00024 
+00025 template <class F, class T> void unpack (eoVector <F, T> & __v) {
+00026 
+00027   F fit; 
+00028   unpack (fit);
+00029   __v.fitness (fit);
+00030 
+00031   unsigned len;
+00032   unpack (len);
+00033   __v.resize (len);
+00034   for (unsigned i = 0 ; i < len; i ++)
+00035     unpack (__v [i]);
+00036 }
+00037 
+00038 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/files.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/files.html new file mode 100644 index 000000000..043f498b3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/files.html @@ -0,0 +1,98 @@ + + +ParadisEO-PEO: File Index + + + + +
+
+

ParadisEO-PEO File List

Here is a list of all documented files with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
comm.cpp [code]
comm.h [code]
communicable.cpp [code]
communicable.h [code]
coop.cpp [code]
cooperative.h [code]
eoPop_comm.h [code]
eoVector_comm.h [code]
mess.cpp [code]
mess.h [code]
messaging.h [code]
node.cpp [code]
node.h [code]
paradiseo.h [code]
param.cpp [code]
param.h [code]
peo_debug.cpp [code]
peo_debug.h [code]
peo_fin.cpp [code]
peo_fin.h [code]
peo_init.cpp [code]
peo_init.h [code]
peo_param.cpp [code]
peo_param.h [code]
peo_run.cpp [code]
peo_run.h [code]
peoAggEvalFunc.h [code]
peoAsyncIslandMig.h [code]
peoEA.h [code]
peoNoAggEvalFunc.h [code]
peoParaPopEval.h [code]
peoParaSGATransform.h [code]
peoPopEval.h [code]
peoSeqPopEval.h [code]
peoSeqTransform.h [code]
peoSyncIslandMig.h [code]
peoSyncMultiStart.h [code]
peoTransform.h [code]
reac_thread.cpp [code]
reac_thread.h [code]
recv.cpp [code]
recv.h [code]
ring_topo.cpp [code]
ring_topo.h [code]
rmc.cpp [code]
rmc.h [code]
core/runner.cpp [code]
rmc/mpi/runner.cpp [code]
runner.h [code]
scheduler.cpp [code]
scheduler.h [code]
schema.cpp [code]
schema.h [code]
send.cpp [code]
send.h [code]
core/service.cpp [code]
rmc/mpi/service.cpp [code]
service.h [code]
tags.h [code]
thread.cpp [code]
thread.h [code]
topology.cpp [code]
topology.h [code]
worker.cpp [code]
worker.h [code]
xml_parser.cpp [code]
xml_parser.h [code]
+
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2blank.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2blank.png new file mode 100644 index 000000000..493c3c0b6 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2blank.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2doc.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2doc.png new file mode 100644 index 000000000..f72999f92 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2doc.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2folderclosed.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2folderclosed.png new file mode 100644 index 000000000..d6d063440 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2folderclosed.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2folderopen.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2folderopen.png new file mode 100644 index 000000000..bbe2c913c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2folderopen.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2lastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2lastnode.png new file mode 100644 index 000000000..e7b9ba90c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2lastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2link.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2link.png new file mode 100644 index 000000000..14f3fed00 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2link.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2mlastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2mlastnode.png new file mode 100644 index 000000000..09ceb6adb Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2mlastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2mnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2mnode.png new file mode 100644 index 000000000..3254c0511 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2mnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2node.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2node.png new file mode 100644 index 000000000..c9f06a57f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2node.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2plastnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2plastnode.png new file mode 100644 index 000000000..0b07e0091 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2plastnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2pnode.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2pnode.png new file mode 100644 index 000000000..2001b797b Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2pnode.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2vertline.png b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2vertline.png new file mode 100644 index 000000000..b330f3a33 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ftv2vertline.png differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions.html new file mode 100644 index 000000000..24a2160f9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions.html @@ -0,0 +1,220 @@ + + +ParadisEO-PEO: Class Members + + + + +
+
+ +
+ +
+
+ +
+ +

+Here is a list of all documented class members with links to the class documentation for each member: +

+

- a -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- w -

+

- ~ -

+
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions_func.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions_func.html new file mode 100644 index 000000000..8a8d8f228 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions_func.html @@ -0,0 +1,155 @@ + + +ParadisEO-PEO: Class Members - Functions + + + + +
+
+ +
+ +
+
+ +
+ +

+  +

+

- a -

+

- c -

+

- e -

+

- g -

+

- i -

+

- l -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- w -

+

- ~ -

+
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions_vars.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions_vars.html new file mode 100644 index 000000000..bb6e20426 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/functions_vars.html @@ -0,0 +1,149 @@ + + +ParadisEO-PEO: Class Members - Variables + + + + +
+
+ +
+ +
+
+ +
+ +

+  +

+

- a -

+

- c -

+

- d -

+

- e -

+

- f -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/hierarchy.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/hierarchy.html new file mode 100644 index 000000000..a6a9172ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/hierarchy.html @@ -0,0 +1,105 @@ + + +ParadisEO-PEO: Hierarchical Index + + + + +
+
+ +

ParadisEO-PEO Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: +
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/index.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/index.html new file mode 100644 index 000000000..1d73e16b0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/index.html @@ -0,0 +1,8 @@ + + +ParadisEO-PEO + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/installdox b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/installdox new file mode 100755 index 000000000..294677f26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( "eo.doxytag", "", "mo.doxytag", ""); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/main.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/main.html new file mode 100644 index 000000000..d1252fcef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/main.html @@ -0,0 +1,106 @@ + + +ParadisEO-PEO: The ParadisEO-PEO Framework + + + + +
+
+

The ParadisEO-PEO Framework

+

+

0.1

+Introduction

+ParadisEO is a white-box object-oriented framework dedicated to the reusable design of parallel and distributed metaheuristics (PDM). ParadisEO provides a broad range of features including evolutionary algorithms (EA), local searches (LS), the most common parallel and distributed models and hybridization mechanisms, etc. This high content and utility encourages its use at European level. ParadisEO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse. Furthermore, the fine-grained nature of the classes provided by the framework allow a higher flexibility compared to other frameworks. ParadisEO is one of the rare frameworks that provide the most common parallel and distributed models. Their implementation is portable on distributed-memory machines as well as on shared-memory multiprocessors, as it uses standard libraries such as MPI, PVM and PThreads. The models can be exploited in a transparent way, one has just to instantiate their associated provided classes. Their experimentation on the radio network design real-world application demonstrate their efficiency.

+In practice, combinatorial optimization problems are often NP-hard, CPU time-consuming, and evolve over time. Unlike exact methods, metaheuristics allow to tackle large-size problems instances by delivering satisfactory solutions in a reasonable time. Metaheuristics are general-purpose heuristics that split in two categories: evolutionary algorithms (EA) and local search methods (LS). These two families have complementary characteristics: EA allow a better exploration of the search space, while LS have the power to intensify the search in promising regions. Their hybridization allows to deliver robust and better solutions

+Although serial metaheuristics have a polynomial temporal complexity, they remain unsatisfactory for industrial problems. Parallel and distributed computing is a powerful way to deal with the performance issue of these problems. Numerous parallel and distributed metaheuristics (PDM) and their implementations have been proposed, and are available on theWeb. They can be reused and adapted to his/her own problems. However, the user has to deeply examine the code and rewrite its problem-specific sections. The task is tedious, errorprone, takes along time and makes harder the produced code maintenance. A better way to reuse the code of existing PDM is the reuse through libraries. These are often more reliable as they are more tested and documented. They allow a better maintainability and efficiency. However, libraries do not allow the reuse of design.

+Parallel and distributed metaheuristics

+

+Parallel distributed evolutionary algorithms

+Evolutionary Algorithms (EA) are based on the iterative improvement of a population of solutions. At each step, individuals are selected, paired and recombined in order to generate new solutions that replace other ones, and so on. As the algorithm converges, the population is mainly composed of individuals well adapted to the "environment", for instance the problem. The main features that characterize EA are the way the population is initialized, the selection strategy (deterministic/stochastic) by fostering "good" solutions, the replacement strategy that discards individuals, and the continuation/stopping criterion to decide whether the evolution should go on or not.

+Basically, three major parallel and distributed models for EA can been distinguished: the island (a)synchronous cooperative model, the parallel evaluation of the population, and the distributed evaluation of a single solution.

    +
  • +Island (a)synchronous cooperative model. Different EA are simultaneously deployed to cooperate for computing better and robust solutions. They exchange in an asynchronous way genetic stuff to diversify the search. The objective is to allow to delay the global convergence, especially when theEAare heterogeneous regarding the variation operators. The migration of individuals follows a policy defined by few parameters: the migration decision criterion, the exchange topology, the number of emigrants, the emigrants selection policy, and the replacement/integration policy.

    +

  • +
  • +Parallel evaluation of the population. It is required as it is in general the most timeconsuming. The parallel evaluation follows the centralized model. The farmer applies the following operations: selection, transformation and replacement as they require a global management of the population. At each generation, it distributes the set of new solutions between differentworkers. These evaluate and return back the solutions and their quality values. An efficient execution is often obtained particularly when the evaluation of each solution is costly. The two main advantages of an asynchronous model over the synchronous model are: (1) the fault tolerance of the asynchronous model; (2) the robustness in case the fitness computation can take very different computation times (e.g. for nonlinear numerical optimization). Whereas some time-out detection can be used to address the former issue, the latter one can be partially overcome if the grain is set to very small values, as individuals will be sent out for evaluations upon request of the workers.

    +

  • +
  • +Distributed evaluation of a single solution. The quality of each solution is evaluated in a parallel centralized way. That model is particularly interesting when the evaluation function can be itself parallelized as it is CPU time-consuming and/or IO intensive. In that case, the function can be viewed as an aggregation of a certain number of partial functions. The partial functions could also be identical if for example the problem to deal with is a data mining one. The evaluation is thus data parallel and the accesses to data base are performed in parallel. Furthermore, a reduction operation is performed on the results returned by the partial functions. As a summary, for this model the user has to indicate a set of partial functions and an aggregation operator of these.
  • +
+

+Parallel distributed local searches

+

+Local searches

+All metaheuristics dedicated to the improvement of a single solution are based on the concept of neighborhood. They start from a solution randomly generated or obtained from another optimization algorithm, and update it, step by step, by replacing the current solution by one of its neighboring candidates. Some criterion have been identified to differentiate such searches: the heuristic internal memory, the choice of the initial solution, the candidate solutions generator, and the selection strategy of candidate moves. Three main algorithms of local search stand out: Hill Climbing (HC), Simulated Annealing (SA) and Tabu Search (TS).

+Parallel local searches

+Two parallel distributed models are commonly used in the literature: the parallel distributed exploration of neighboring candidate solutions model, and the multi-start model.
    +
  • +Parallel exploration of neighboring candidates. It is a low-level Farmer-Worker model that does not alter the behavior of the heuristic. A sequential search computes the same results slower.At the beginning of each iteration, the farmer duplicates the current solution between distributed nodes. Each one manages some candidates and the results are returned to the farmer. The model is efficient if the evaluation of a each solution is time-consuming and/or there are a great deal of candidate neighbors to evaluate. This is obviously not applicable to SA since only one candidate is evaluated at each iteration. Likewise, the efficiency of the model for HC is not always guaranteed as the number of neighboring solutions to process before finding one that improves the current objective function may be highly variable.

    +

  • +
  • +Multi-start model. It consists in simultaneously launching several local searches. They may be heterogeneous, but no information is exchanged between them. The resultswould be identical as if the algorithms were sequentially run.Very often deterministic algorithms differ by the supplied initial solution and/or some other parameters. This trivial model is convenient for low-speed networks of workstations.
  • +
+

+Hybridization

+Recently, hybrid metaheuristics have gained a considerable interest. For many practical or academic optimization problems, the best found solutions are obtained by hybrid algorithms. Combinations of different metaheuristics have provided very powerful search methods. Two levels and two modes of hybridization have been distinguished: Low and High levels, and Relay and Cooperative modes. The low-level hybridization addresses the functional composition of a single optimization method. A function of a given metaheuristic is replaced by another metaheuristic. On the contrary, for high-level hybrid algorithms the different metaheuristics are self-containing, meaning no direct relationship to their internal working is considered. On the other hand, relay hybridization means a set of metaheuristics is applied in a pipeline way. The output of a metaheuristic (except the last) is the input of the following one (except the first). Conversely, co-evolutionist hybridization is a cooperative optimization model. Each metaheuristic performs a search in a solution space, and exchange solutions with others.

+Paradiseo goals and architecture

+The "EO" part of ParadisEO means Evolving Objects. EO is a C++ LGPL open source framework and includes a paradigm-free Evolutionary Computation library (EOlib) dedicated to the flexible design of EA through evolving objects superseding the most common dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and Genetic Programming). Furthermore, EO integrates several services including visualization facilities, on-line definition of parameters, application check-pointing, etc. ParadisEO is an extended version of the EO framework. The extensions include local search methods, hybridization mechanisms, parallelism and distribution mechanisms, and other features that are not addressed in this paper such as multi-objective optimization and grid computing. In the next sections, we present the motivations and goals of ParadisEO, its architecture and some of its main implementation details and issues.

+Motivations and goals

+A framework is normally intended to be exploited by as many users as possible. Therefore, its exploitation could be successful only if some important user criteria are satisfied. The following criteria are the major of them and constitute the main objectives of the ParadisEO framework:

+

    +
  • +Maximum design and code reuse. The framework must provide for the user a whole architecture design of his/her solution method. Moreover, the programmer may redo as little code as possible. This objective requires a clear and maximal conceptual separation between the solution methods and the problems to be solved, and thus a deep domain analysis. The user might therefore develop only the minimal problem-specific code.

    +

  • +
  • +Flexibility and adaptability. It must be possible for the user to easily add new features/ metaheuristics or change existing ones without implicating other components. Furthermore, as in practice existing problems evolve and new others arise these have to be tackled by specializing/adapting the framework components.

    +

  • +
  • +Utility. The framework must allow the user to cover a broad range of metaheuristics, problems, parallel distributed models, hybridization mechanisms, etc.

    +

  • +
  • +Transparent and easy access to performance and robustness. As the optimization applications are often time-consuming the performance issue is crucial. Parallelism and distribution are two important ways to achieve high performance execution. In order to facilitate its use it is implemented so that the user can deploy his/her parallel algorithms in a transparent manner. Moreover, the execution of the algorithms must be robust to guarantee the reliability and the quality of the results. The hybridization mechanism allows to obtain robust and better solutions.

    +

  • +
  • +Portability. In order to satisfy a large number of users the framework must support different material architectures and their associated operating systems.
  • +
+

+ParadisEO architecture

+The architecture of ParadisEO is multi-layer and modular allowing to achieve the objectives quoted above. This allows particularly a high flexibility and adaptability, an easier hybridization, and more code and design reuse. The architecture has three layers identifying three major categories of classes: Solvers, Runners and Helpers.
    +
  • +Helpers. Helpers are low-level classes that perform specific actions related to the evolution or search process. They are split in two categories: Evolutionary helpers (EH) and Local search helpers (LSH). EH include mainly the transformation, selection and replacement operations, the evaluation function and the stopping criterion. LSH can be generic such as the neighborhood explorer class, or specific to the local search metaheuristic like the tabu list manager class in the Tabu Search solution method. On the other hand, there are some special helpers dedicated to the management of parallel and distributed models 2 and 3, such as the communicators that embody the communication services.

    +Helpers cooperate between them and interact with the components of the upper layer i.e. the runners. The runners invoke the helpers through function parameters. Indeed, helpers have not their own data, but they work on the internal data of the runners.

    +

  • +
  • +Runners. The Runners layer contains a set of classes that implement the metaheuristics themselves. They perform the run of the metaheuristics from the initial state or population to the final one. One can distinguish the Evolutionary runners (ER) such as genetic algorithms, evolution strategies, etc., and Local search runners (LSR) like tabu search, simulated annealing and hill climbing. Runners invoke the helpers to perform specific actions on their data. For instance, an ER may ask the fitness function evaluation helper to evaluate its population. An LSR asks the movement helper to perform a given movement on the current state. Furthermore, runners can be serial or parallel distributed.

    +

  • +
  • +Solvers. Solvers are devoted to control the evolution process and/or the search. They generate the initial state (solution or population) and define the strategy for combining and sequencing different metaheuristics. Two types of solvers can be distinguished. Single metaheuristic solvers (SMS) and Multiple metaheuristics solvers (MMS). SMSs are dedicated to the execution of only one metaheuristic.MMS are more complex as they control and sequence several metaheuristics that can be heterogeneous. Solvers interact with the user by getting the input data and delivering the output (best solution, statistics, etc).
  • +
+

+According to the generality of their embedded features, the classes of the architecture split in two major categories: Provided classes and Required classes. Provided classes embody the factored out part of the metaheuristics. They are generic, implemented in the framework, and ensure the control at run time. Required classes are those that must be supplied by the user. They encapsulate the problem-specific aspects of the application. These classes are fixed but not implemented in ParadisEO. The programmer has the burden to develop them using the OO specialization mechanism.

+ParadisEO-PEO Tutorials

+The basisc of the ParadisEO framework philosophy are exposed in a few simple tutorials: +All the presented examples have as case study the traveling salesman problem (TSP). Different operators and auxiliary objects were designed, standing as a common shared source code base. While not being part of the ParadisEO-PEO framework, it may represent a startpoint for a better understanding of the presented tutorials.
Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/mess_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/mess_8cpp-source.html new file mode 100644 index 000000000..d7fa3e9ea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/mess_8cpp-source.html @@ -0,0 +1,266 @@ + + +ParadisEO-PEO: mess.cpp Source File + + + + +
+
+

mess.cpp

00001 // "mess.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <mpi.h>
+00010 #include <vector>
+00011 
+00012 #include "mess.h"
+00013 #include "../../core/peo_debug.h"
+00014 #include "node.h"
+00015 
+00016 #define MPI_BUF_SIZE 1024*64
+00017         
+00018 static char mpi_buf [MPI_BUF_SIZE];
+00019         
+00020 static int pos_buf ;
+00021 
+00022 static std :: vector <char *> act_buf; /* Active buffers */
+00023 
+00024 static std :: vector <MPI_Request *> act_req; /* Active requests */
+00025 
+00026 void cleanBuffers () {
+00027 
+00028   for (unsigned i = 0; i < act_req.size ();) {
+00029        
+00030     MPI_Status stat ;
+00031     int flag ;
+00032     MPI_Test (act_req [i], & flag, & stat) ;
+00033     if (flag) {
+00034       
+00035       delete act_buf [i] ;
+00036       delete act_req [i] ;
+00037         
+00038       act_buf [i] = act_buf.back () ;
+00039       act_buf.pop_back () ;
+00040       
+00041       act_req [i] = act_req.back () ;
+00042       act_req.pop_back () ;
+00043     }
+00044     else
+00045       i ++;
+00046   } 
+00047 }
+00048 
+00049 void waitBuffers () {
+00050 
+00051   printDebugMessage ("waiting the termination of the asynchronous operations to complete");
+00052 
+00053   for (unsigned i = 0; i < act_req.size (); i ++) {
+00054        
+00055     MPI_Status stat ;
+00056 
+00057     MPI_Wait (act_req [i], & stat) ;
+00058       
+00059     delete act_buf [i] ;
+00060     delete act_req [i] ;
+00061   } 
+00062 }
+00063 
+00064 bool probeMessage (int & __src, int & __tag) {
+00065 
+00066   int flag;
+00067 
+00068   MPI_Status stat;
+00069 
+00070   MPI_Iprobe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & flag, & stat);
+00071 
+00072   __src = stat.MPI_SOURCE;
+00073   __tag = stat.MPI_TAG;
+00074 
+00075   return flag;
+00076 }
+00077 
+00078 void waitMessage () {
+00079 
+00080   MPI_Status stat;  
+00081 
+00082   MPI_Probe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & stat);
+00083 }
+00084 
+00085 void initMessage () {
+00086   
+00087   pos_buf = 0;
+00088 }
+00089 
+00090 void sendMessage (int __to, int __tag) {
+00091 
+00092   cleanBuffers ();  
+00093   act_buf.push_back (new char [pos_buf]);
+00094   act_req.push_back (new MPI_Request);  
+00095   memcpy (act_buf.back (), mpi_buf, pos_buf);  
+00096   MPI_Isend (act_buf.back (), pos_buf, MPI_PACKED, __to, __tag, MPI_COMM_WORLD, act_req.back ()); 
+00097 }
+00098 
+00099 void sendMessageToAll (int __tag) {
+00100 
+00101   for (int i = 0; i < getNumberOfNodes (); i ++)
+00102     sendMessage (i, __tag);
+00103 }
+00104 
+00105 void receiveMessage (int __from, int __tag) {
+00106   
+00107   MPI_Status stat;  
+00108   MPI_Request req;
+00109 
+00110   MPI_Irecv (mpi_buf, MPI_BUF_SIZE, MPI_PACKED, __from, __tag, MPI_COMM_WORLD, & req) ;
+00111   MPI_Wait (& req, & stat) ;
+00112 }
+00113 
+00114 /* Char */
+00115 void pack (const char & __c) {
+00116 
+00117   MPI_Pack ((void *) & __c, 1, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00118 }
+00119 
+00120 /* Float */
+00121 void pack (const float & __f, int __nitem) {
+00122 
+00123   MPI_Pack ((void *) & __f, __nitem, MPI_FLOAT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00124 }
+00125 
+00126 /* Double */
+00127 void pack (const double & __d, int __nitem) {
+00128 
+00129   MPI_Pack ((void *) & __d, __nitem, MPI_DOUBLE, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00130 }
+00131 
+00132 /* Integer */
+00133 void pack (const int & __i, int __nitem) {
+00134 
+00135   MPI_Pack ((void *) & __i, __nitem, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00136 }
+00137 
+00138 /* Unsigned int. */
+00139 void pack (const unsigned int & __ui, int __nitem) {
+00140 
+00141   MPI_Pack ((void *) & __ui, __nitem, MPI_UNSIGNED, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00142 }
+00143 
+00144 /* Short int. */
+00145 void pack (const short & __sh, int __nitem) {
+00146 
+00147   MPI_Pack ((void *) & __sh, __nitem, MPI_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00148 }
+00149 
+00150 /* Unsigned short */
+00151 void pack (const unsigned short & __ush, int __nitem) {
+00152 
+00153   MPI_Pack ((void *) & __ush, __nitem, MPI_UNSIGNED_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00154 }
+00155 
+00156 /* Long */
+00157 void pack (const long & __l, int __nitem) {
+00158 
+00159   MPI_Pack ((void *) & __l, __nitem, MPI_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00160 }
+00161 
+00162 /* Unsigned long */
+00163 void pack (const unsigned long & __ul, int __nitem) {
+00164 
+00165   MPI_Pack ((void *) & __ul, __nitem, MPI_UNSIGNED_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00166 }
+00167 
+00168 /* String */
+00169 void pack (const char * __str) {
+00170   
+00171   int len = strlen (__str) + 1;
+00172   MPI_Pack (& len, 1, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00173   MPI_Pack ((void *) __str, len, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD);
+00174 }
+00175 
+00176 /* Char */
+00177 void unpack (char & __c) {
+00178 
+00179   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __c, 1, MPI_CHAR, MPI_COMM_WORLD);
+00180 }
+00181 
+00182 /* Float */
+00183 void unpack (float & __f, int __nitem) {
+00184 
+00185   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __f, __nitem, MPI_FLOAT, MPI_COMM_WORLD);
+00186 }
+00187 
+00188 /* Double */
+00189 void unpack (double & __d, int __nitem) {
+00190 
+00191   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __d, __nitem, MPI_DOUBLE, MPI_COMM_WORLD);
+00192 }
+00193 
+00194 /* Integer */
+00195 void unpack (int & __i, int __nitem) {
+00196 
+00197   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __i, __nitem, MPI_INT, MPI_COMM_WORLD);
+00198 }
+00199 
+00200 /* Unsigned int. */
+00201 void unpack (unsigned int & __ui, int __nitem) {
+00202 
+00203   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ui, __nitem, MPI_UNSIGNED, MPI_COMM_WORLD);
+00204 }
+00205 
+00206 /* Short int. */
+00207 void unpack (short & __sh, int __nitem) {
+00208 
+00209   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __sh, __nitem, MPI_SHORT, MPI_COMM_WORLD);
+00210 }
+00211 
+00212 /* Unsigned short */
+00213 void unpack (unsigned short & __ush, int __nitem) {
+00214 
+00215   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ush, __nitem, MPI_UNSIGNED_SHORT, MPI_COMM_WORLD);
+00216 }
+00217 
+00218 /* Long */
+00219 void unpack (long & __l, int __nitem) {
+00220 
+00221   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __l, __nitem, MPI_LONG, MPI_COMM_WORLD);
+00222 }
+00223 
+00224 /* Unsigned long */
+00225 void unpack (unsigned long & __ul, int __nitem) {
+00226 
+00227   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ul, __nitem, MPI_UNSIGNED_LONG, MPI_COMM_WORLD);
+00228 }
+00229 
+00230 /* String */
+00231 void unpack (char * __str) {
+00232 
+00233   int len;
+00234   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & len, 1, MPI_INT, MPI_COMM_WORLD);
+00235   MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, __str, len, MPI_CHAR, MPI_COMM_WORLD);    
+00236 }
+00237 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/mess_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/mess_8h-source.html new file mode 100644 index 000000000..5ea857a68 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/mess_8h-source.html @@ -0,0 +1,60 @@ + + +ParadisEO-PEO: mess.h Source File + + + + +
+
+

mess.h

00001 // "mess.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __mess_rmc_h
+00010 #define __mess_rmc_h
+00011 
+00012 #include "../../core/messaging.h"
+00013 
+00014 extern void initMessage ();
+00015 
+00016 extern void sendMessage (int __to, int __tag);
+00017 
+00018 extern void sendMessageToAll (int __tag);
+00019 
+00020 extern void receiveMessage (int __from, int __tag);
+00021 
+00022 extern void cleanBuffers ();
+00023 
+00024 extern void waitBuffers ();
+00025 
+00026 extern bool probeMessage (int & __src, int & __tag);
+00027 
+00028 extern void waitMessage ();
+00029 
+00030 #endif
+00031 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/messaging_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/messaging_8h-source.html new file mode 100644 index 000000000..7ddd053fc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/messaging_8h-source.html @@ -0,0 +1,133 @@ + + +ParadisEO-PEO: messaging.h Source File + + + + +
+
+

messaging.h

00001 // "messaging.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __mess_h
+00010 #define __mess_h
+00011 
+00012 #include <utility>
+00013 
+00014 /* Char */
+00015 extern void pack (const char & __c); 
+00016 
+00017 /* Float */
+00018 extern void pack (const float & __f, int __nitem = 1); 
+00019 
+00020 /* Double */
+00021 extern void pack (const double & __d, int __nitem = 1); 
+00022 
+00023 /* Integer */
+00024 extern void pack (const int & __i, int __nitem = 1); 
+00025 
+00026 /* Unsigned int. */
+00027 extern void pack (const unsigned int & __ui, int __nitem = 1); 
+00028 
+00029 /* Short int. */
+00030 extern void pack (const short & __sh, int __nitem = 1); 
+00031 
+00032 /* Unsigned short */
+00033 extern void pack (const unsigned short & __ush, int __nitem = 1);
+00034 
+00035 /* Long */
+00036 extern void pack (const long & __l, int __nitem = 1); 
+00037 
+00038 /* Unsigned long */
+00039 extern void pack (const unsigned long & __ul, int __nitem = 1); 
+00040 
+00041 /* String */
+00042 extern void pack (const char * __str); 
+00043 
+00044 /* Pointer */
+00045 template <class T> void pack (const T * __ptr) {
+00046   
+00047   pack ((unsigned long) __ptr); 
+00048 }
+00049 
+00050 /* Pair */
+00051 template <class U, class V> void pack (const std :: pair <U, V> & __pair) {
+00052   
+00053   pack (__pair.first);
+00054   pack (__pair.second);
+00055 }
+00056 
+00057 //
+00058 
+00059 /* Float */
+00060 extern void unpack (char & __c); 
+00061 
+00062 /* Float */
+00063 extern void unpack (float & __f, int __nitem = 1); 
+00064 
+00065 /* Double */
+00066 extern void unpack (double & __d, int __nitem = 1); 
+00067 
+00068 /* Integer */
+00069 extern void unpack (int & __i, int __nitem = 1); 
+00070 
+00071 /* Unsigned int. */
+00072 extern void unpack (unsigned int & __ui, int __nitem = 1); 
+00073 
+00074 /* Short int. */
+00075 extern void unpack (short & __sh, int __nitem = 1); 
+00076 
+00077 /* Unsigned short */
+00078 extern void unpack (unsigned short & __ush, int __nitem = 1);
+00079 
+00080 /* Long */
+00081 extern void unpack (long & __l, int __nitem = 1); 
+00082 
+00083 /* Unsigned long */
+00084 extern void unpack (unsigned long & __ul, int __nitem = 1); 
+00085 
+00086 /* String */
+00087 extern void unpack (char * __str); 
+00088 
+00089 /* Pointer */
+00090 template <class T> void unpack (T * & __ptr) {
+00091   
+00092   unsigned long p;
+00093   unpack (p);
+00094   __ptr = (T *) p;
+00095 }
+00096 
+00097 /* Pair */
+00098 template <class U, class V> void unpack (std :: pair <U, V> & __pair) {
+00099   
+00100   unpack (__pair.first);
+00101   unpack (__pair.second);
+00102 }
+00103 
+00104 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers.html new file mode 100644 index 000000000..109c93d9e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO: Class Members + + + + +
+
+ +
+ +
+Here is a list of all documented namespace members with links to the namespaces they belong to: +

+

+
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers_func.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers_func.html new file mode 100644 index 000000000..0d0d5cb4a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers_func.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO: Class Members + + + + +
+
+ +
+ +
+  +

+

    +
  • finalize() +: peo
  • init() +: peo
  • loadParameters() +: peo
  • run() +: peo
+
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers_vars.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers_vars.html new file mode 100644 index 000000000..07a05bdb4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacemembers_vars.html @@ -0,0 +1,47 @@ + + +ParadisEO-PEO: Class Members + + + + +
+
+ +
+ +
+  +

+

+
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacepeo.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacepeo.html new file mode 100644 index 000000000..6d21f01fe --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespacepeo.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO: peo Namespace Reference + + + + +
+
+ +

peo Namespace Reference

+

+ + + + + + + + + + + + + + + + + + + + +

Functions

+void finalize ()
+void init (int &__argc, char **&__argv)
+void loadParameters (int &__argc, char **&__argv)
+void run ()

Variables

+int * argc
+char *** argv
+int * argc
+char *** argv
+


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespaces.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespaces.html new file mode 100644 index 000000000..4bc5709b7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/namespaces.html @@ -0,0 +1,37 @@ + + +ParadisEO-PEO: Namespace Index + + + + +
+
+ +

ParadisEO-PEO Namespace List

Here is a list of all documented namespaces with brief descriptions: + +
peo
+
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/node_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/node_8cpp-source.html new file mode 100644 index 000000000..e67d771dc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/node_8cpp-source.html @@ -0,0 +1,87 @@ + + +ParadisEO-PEO: node.cpp Source File + + + + +
+
+

node.cpp

00001 // "node.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <mpi.h>
+00010 #include <vector>
+00011 #include <map>
+00012 #include <string>
+00013 #include <cassert>
+00014 
+00015 static int rk, sz; /* Rank & size */
+00016 
+00017 static std :: map <std :: string, int> name_to_rk;
+00018 
+00019 static std :: vector <std :: string> rk_to_name;
+00020 
+00021 int getNodeRank () {
+00022 
+00023   return rk;
+00024 }
+00025 
+00026 int getNumberOfNodes () {
+00027 
+00028   return sz;
+00029 }
+00030 
+00031 int getRankFromName (const std :: string & __name) {
+00032   
+00033   return atoi (__name.c_str ());  
+00034 }
+00035 
+00036 void initNode (int * __argc, char * * * __argv) {
+00037   
+00038   int provided;
+00039   MPI_Init_thread (__argc,  __argv, MPI_THREAD_FUNNELED, & provided);  
+00040   assert (provided == MPI_THREAD_FUNNELED); /* The MPI implementation must be multi-threaded.
+00041                                                Yet, only one thread performs the comm.
+00042                                                operations */
+00043   MPI_Comm_rank (MPI_COMM_WORLD, & rk);   /* Who ? */
+00044   MPI_Comm_size (MPI_COMM_WORLD, & sz);    /* How many ? */
+00045 
+00046   char names [sz] [MPI_MAX_PROCESSOR_NAME];
+00047   int len;
+00048 
+00049   /* Processor names */ 
+00050   MPI_Get_processor_name (names [0], & len);   /* Me */  
+00051   MPI_Allgather (names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, MPI_COMM_WORLD); /* Broadcast */
+00052   
+00053   for (int i = 0; i < sz; i ++) {
+00054     rk_to_name.push_back (names [i]);
+00055     name_to_rk [names [i]] = i;
+00056   }
+00057 }
+00058 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/node_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/node_8h-source.html new file mode 100644 index 000000000..457f6e4aa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/node_8h-source.html @@ -0,0 +1,53 @@ + + +ParadisEO-PEO: node.h Source File + + + + +
+
+

node.h

00001 // "node.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __node_h
+00010 #define __node_h
+00011 
+00012 #include <string>
+00013 #include <cassert>
+00014 
+00015 extern int getNodeRank (); /* It gives the rank of the calling process */
+00016 
+00017 extern int getNumberOfNodes (); /* It gives the size of the environment (Total number of nodes) */
+00018 
+00019 extern int getRankFromName (const std :: string & __name); /* It gives the rank of the process
+00020                                                               expressed by its name */
+00021 
+00022 extern void initNode (int * __argc, char * * * __argv);
+00023 
+00024 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/paradiseo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/paradiseo_8h-source.html new file mode 100644 index 000000000..fb84c6c22 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/paradiseo_8h-source.html @@ -0,0 +1,70 @@ + + +ParadisEO-PEO: paradiseo.h Source File + + + + +
+
+

paradiseo.h

00001 // "paradiseo.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __paradiseo_h_
+00010 #define __paradiseo_h_
+00011 
+00012 #include <eo>
+00013 #include <mo>
+00014 
+00015 
+00260 
+00261 
+00262 
+00263 #include "core/peo_init.h"
+00264 #include "core/peo_run.h"
+00265 #include "core/peo_fin.h"
+00266 
+00267 #include "core/eoVector_comm.h"
+00268 
+00269 #include "peoEA.h"
+00270 
+00271 /* Parallel steps of the E.A. */
+00272 #include "peoSeqTransform.h"
+00273 #include "peoParaSGATransform.h"
+00274 #include "peoSeqPopEval.h"
+00275 #include "peoParaPopEval.h"
+00276 
+00277 /* Cooperative island model */
+00278 #include "core/ring_topo.h"
+00279 #include "peoAsyncIslandMig.h"
+00280 #include "peoSyncIslandMig.h"
+00281 
+00282 /* Synchronous multi-start model */
+00283 #include "peoSyncMultiStart.h"
+00284 
+00285 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/param_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/param_8cpp-source.html new file mode 100644 index 000000000..819d3aaab --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/param_8cpp-source.html @@ -0,0 +1,50 @@ + + +ParadisEO-PEO: param.cpp Source File + + + + +
+
+

param.cpp

00001 // "param.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <utils/eoParser.h>
+00010 
+00011 #include "schema.h"
+00012 
+00013 void loadRMCParameters (int & __argc, char * * & __argv) {
+00014 
+00015   eoParser parser (__argc, __argv);
+00016 
+00017   /* Schema */
+00018   eoValueParam <std :: string> schema_param ("schema.xml", "schema", "?");
+00019   parser.processParam (schema_param);
+00020   loadSchema (schema_param.value ().c_str ());
+00021 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/param_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/param_8h-source.html new file mode 100644 index 000000000..39df99494 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/param_8h-source.html @@ -0,0 +1,43 @@ + + +ParadisEO-PEO: param.h Source File + + + + +
+
+

param.h

00001 // "param.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __rmc_param_h
+00010 #define __rmc_param_h
+00011 
+00012 extern void loadRMCParameters (int & __argc, char * * & __argv);
+00013 
+00014 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html new file mode 100644 index 000000000..4f975e5c3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO: peoAggEvalFunc.h Source File + + + + +
+
+

peoAggEvalFunc.h

00001 // "peoAggEvalFunc.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoAggEvalFunc_h
+00010 #define __peoAggEvalFunc_h
+00011 
+00012 #include <eoFunctor.h>
+00013 
+00015 
+00025 template< class EOT > class peoAggEvalFunc : public eoBF< EOT&, const typename EOT :: Fitness&, void > {
+00026 
+00027 };
+00028 
+00029 
+00030 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html new file mode 100644 index 000000000..5fd95a748 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html @@ -0,0 +1,189 @@ + + +ParadisEO-PEO: peoAsyncIslandMig.h Source File + + + + +
+
+

peoAsyncIslandMig.h

00001 // "peoAsyncIslandMig.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoAsyncIslandMig_h
+00010 #define __peoAsyncIslandMig_h
+00011 
+00012 
+00013 #include <queue>
+00014 
+00015 #include <utils/eoUpdater.h>
+00016 
+00017 #include <eoContinue.h>
+00018 #include <eoSelect.h>
+00019 #include <eoReplacement.h>
+00020 #include <eoPop.h>
+00021 
+00022 #include "core/topology.h"
+00023 #include "core/cooperative.h"
+00024 #include "core/eoPop_comm.h"
+00025 #include "core/peo_debug.h"
+00026 
+00027 
+00029 
+00112 template< class EOT > class peoAsyncIslandMig : public Cooperative, public eoUpdater {
+00113 
+00114 public:
+00115 
+00125         peoAsyncIslandMig( 
+00126                                 eoContinue< EOT >& __cont,
+00127                                 eoSelect< EOT >& __select,
+00128                                 eoReplacement< EOT >& __replace,
+00129                                 Topology& __topology,
+00130                                 eoPop< EOT >& __source,
+00131                                 eoPop< EOT >& __destination 
+00132         );
+00133 
+00138         void operator()();
+00139         
+00141         void pack();
+00143         void unpack();
+00144 
+00145 
+00146 private:
+00147 
+00148         void emigrate();
+00149         void immigrate();
+00150 
+00151 
+00152 private:
+00153 
+00154         eoContinue< EOT >& cont;        // continuator
+00155         eoSelect< EOT >& select;        // the selection strategy
+00156         eoReplacement< EOT >& replace;  // the replacement strategy
+00157         Topology& topology;             // the neighboring topology
+00158         
+00159         // source and destination populations
+00160         eoPop< EOT >& source;
+00161         eoPop< EOT >& destination;
+00162         
+00163         // immigrants & emigrants in the queue
+00164         std :: queue< eoPop< EOT > > imm;
+00165         std :: queue< eoPop< EOT > > em;
+00166         
+00167         std :: queue< Cooperative* > coop_em;
+00168 };
+00169 
+00170 
+00171 template< class EOT > peoAsyncIslandMig< EOT > :: peoAsyncIslandMig(
+00172 
+00173                 eoContinue< EOT >& __cont,
+00174                 eoSelect< EOT >& __select,
+00175                 eoReplacement< EOT >& __replace,
+00176                 Topology& __topology,
+00177                 eoPop< EOT >& __source,
+00178                 eoPop< EOT >& __destination
+00179 
+00180         ) : cont( __cont ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination )
+00181 {
+00182 
+00183         __topology.add( *this );
+00184 }
+00185 
+00186 
+00187 template< class EOT > void peoAsyncIslandMig< EOT > :: pack()
+00188 {
+00189 
+00190         lock(); {
+00191 
+00192 		 :: pack( coop_em.front()->getKey() );
+00193 		 :: pack( em.front() );
+00194                 coop_em.pop();
+00195                 em.pop();
+00196         }
+00197         unlock();
+00198 }
+00199 
+00200 
+00201 template< class EOT > void peoAsyncIslandMig< EOT > :: unpack()
+00202 {
+00203 
+00204         lock(); {
+00205 
+00206                 eoPop< EOT > mig;
+00207 		 :: unpack( mig );
+00208                 imm.push( mig );
+00209         }
+00210         unlock();
+00211 }
+00212 
+00213 
+00214 template< class EOT > void peoAsyncIslandMig< EOT > :: emigrate()
+00215 {
+00216 
+00217         std :: vector< Cooperative* >in, out;
+00218         topology.setNeighbors( this, in, out );
+00219 
+00220         for ( unsigned i = 0; i < out.size(); i++ ) {
+00221         
+00222                 eoPop< EOT > mig;
+00223                 select( source, mig );
+00224                 em.push( mig );
+00225                 coop_em.push( out[i] );
+00226                 send( out[i] );
+00227                 printDebugMessage( "sending some emigrants." );
+00228         }
+00229 }
+00230 
+00231 
+00232 template< class EOT > void peoAsyncIslandMig< EOT > :: immigrate()
+00233 {
+00234 
+00235         lock(); {
+00236 
+00237                 while ( !imm.empty() ) {
+00238 
+00239                         replace( destination, imm.front() );
+00240                         imm.pop();
+00241                         printDebugMessage( "receiving some immigrants." );
+00242                 }
+00243         }
+00244         unlock();
+00245 }
+00246 
+00247 
+00248 template< class EOT > void peoAsyncIslandMig< EOT > :: operator()() {
+00249 
+00250         if ( !cont( source ) ) {
+00251 
+00252                 emigrate();     // sending emigrants
+00253                 immigrate();    // receiving immigrants
+00254         }
+00255 }
+00256 
+00257 
+00258 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoEA_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoEA_8h-source.html new file mode 100644 index 000000000..3b64581a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoEA_8h-source.html @@ -0,0 +1,128 @@ + + +ParadisEO-PEO: peoEA.h Source File + + + + +
+
+

peoEA.h

00001 // "peoEA.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoEA_h
+00010 #define __peoEA_h
+00011 
+00012 #include <eoContinue.h>
+00013 #include <eoEvalFunc.h>
+00014 #include <eoSelect.h>
+00015 #include <eoPopEvalFunc.h>
+00016 #include <eoReplacement.h>
+00017 
+00018 #include "peoPopEval.h"
+00019 #include "peoTransform.h"
+00020 #include "core/runner.h"
+00021 #include "core/peo_debug.h"
+00022 
+00024 
+00054 template < class EOT > class peoEA : public Runner {
+00055 
+00056 public:
+00057 
+00069         peoEA( 
+00070                 eoContinue< EOT >& __cont,
+00071                 peoPopEval< EOT >& __pop_eval,
+00072                 eoSelect< EOT >& __select,
+00073                 peoTransform< EOT >& __trans,
+00074                 eoReplacement< EOT >& __replace 
+00075         );
+00076 
+00079         void run();
+00080         
+00084         void operator()( eoPop< EOT >& __pop );
+00085 
+00086 private:
+00087 
+00088 
+00089         eoContinue< EOT >& cont;
+00090         peoPopEval< EOT >& pop_eval;
+00091         eoSelect< EOT >& select;
+00092         peoTransform< EOT >& trans;
+00093         eoReplacement< EOT >& replace;
+00094         eoPop< EOT >* pop;
+00095 };
+00096 
+00097 
+00098 template < class EOT > peoEA< EOT > :: peoEA( 
+00099 
+00100                                 eoContinue< EOT >& __cont, 
+00101                                 peoPopEval< EOT >& __pop_eval, 
+00102                                 eoSelect< EOT >& __select, 
+00103                                 peoTransform< EOT >& __trans, 
+00104                                 eoReplacement< EOT >& __replace
+00105 
+00106                 ) : cont( __cont ), pop_eval( __pop_eval ), select( __select ), trans( __trans ), replace( __replace )
+00107 {
+00108 
+00109         trans.setOwner( *this );
+00110         pop_eval.setOwner( *this );
+00111 }
+00112 
+00113 
+00114 template< class EOT > void peoEA< EOT > :: operator ()( eoPop< EOT >& __pop ) {
+00115 
+00116         pop = &__pop;
+00117 }
+00118 
+00119 
+00120 template< class EOT > void peoEA< EOT > :: run() {
+00121 
+00122         printDebugMessage( "performing the first evaluation of the population." );
+00123         pop_eval( *pop );
+00124         
+00125         do {
+00126 
+00127                 eoPop< EOT > off;
+00128 
+00129                 printDebugMessage( "performing the selection step." );
+00130                 select( *pop, off );
+00131                 trans( off );
+00132 
+00133                 printDebugMessage( "performing the evaluation of the population." );
+00134                 pop_eval( off );
+00135 
+00136                 printDebugMessage( "performing the replacement of the population." );
+00137                 replace( *pop, off );
+00138 
+00139                 printDebugMessage( "deciding of the continuation." );
+00140         
+00141         } while ( cont( *pop ) );
+00142 }
+00143 
+00144 
+00145 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html new file mode 100644 index 000000000..fb31231eb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html @@ -0,0 +1,58 @@ + + +ParadisEO-PEO: peoNoAggEvalFunc.h Source File + + + + +
+
+

peoNoAggEvalFunc.h

00001 // "peoNoAggEvalFunc.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoNoAggEvalFunc_h
+00010 #define __peoNoAggEvalFunc_h
+00011 
+00012 #include "peoAggEvalFunc.h"
+00013 
+00015 
+00019 template< class EOT > class peoNoAggEvalFunc : public peoAggEvalFunc< EOT > {
+00020 
+00021 public :
+00022 
+00024         void operator()( EOT& __sol, const typename EOT :: Fitness& __fit );
+00025 };
+00026 
+00027 
+00028 template< class EOT > void peoNoAggEvalFunc< EOT > :: operator()( EOT& __sol, const typename EOT :: Fitness& __fit ) {
+00029 
+00030         __sol.fitness( __fit );
+00031 }
+00032 
+00033 
+00034 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoParaPopEval_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoParaPopEval_8h-source.html new file mode 100644 index 000000000..ea7e7852a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoParaPopEval_8h-source.html @@ -0,0 +1,226 @@ + + +ParadisEO-PEO: peoParaPopEval.h Source File + + + + +
+
+

peoParaPopEval.h

00001 // "peoParaPopEval.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoParaPopEval_h
+00010 #define __peoParaPopEval_h
+00011 
+00012 #include <queue>
+00013 #include <eoEvalFunc.h>
+00014 
+00015 #include "core/messaging.h"
+00016 #include "core/peo_debug.h"
+00017 #include "peoAggEvalFunc.h"
+00018 #include "peoNoAggEvalFunc.h"
+00019 
+00020 
+00022 
+00026 template< class EOT > class peoParaPopEval : public peoPopEval< EOT > {
+00027 
+00028 public:
+00029 
+00030         using peoPopEval< EOT > :: requestResourceRequest;
+00031         using peoPopEval< EOT > :: resume;
+00032         using peoPopEval< EOT > :: stop;
+00033         using peoPopEval< EOT > :: getOwner;
+00034         
+00039         peoParaPopEval( eoEvalFunc< EOT >& __eval_func );
+00040 
+00045         peoParaPopEval( const std :: vector< eoEvalFunc < EOT >* >& __funcs, peoAggEvalFunc< EOT >& __merge_eval );
+00046 
+00050         void operator()( eoPop< EOT >& __pop );
+00051 
+00054         void packData();
+00055         
+00058         void unpackData();
+00059 
+00061         void execute();
+00062         
+00065         void packResult();
+00066         
+00069         void unpackResult();
+00070         
+00073         void notifySendingData();
+00074 
+00077         void notifySendingAllResourceRequests();
+00078 
+00079 private:
+00080 
+00081 
+00082         const std :: vector< eoEvalFunc < EOT >* >& funcs;
+00083         std :: vector< eoEvalFunc < EOT >* > one_func;
+00084         
+00085         peoAggEvalFunc< EOT >& merge_eval;
+00086         peoNoAggEvalFunc< EOT > no_merge_eval;
+00087         
+00088         std :: queue< EOT* >tasks;
+00089         
+00090         std :: map< EOT*, std :: pair< unsigned, unsigned > > progression;
+00091         
+00092         unsigned num_func;
+00093         
+00094         EOT sol;
+00095         
+00096         EOT *ad_sol;
+00097         
+00098         unsigned total;
+00099 };
+00100 
+00101 
+00102 template< class EOT > peoParaPopEval< EOT > :: peoParaPopEval( eoEvalFunc< EOT >& __eval_func ) : 
+00103 
+00104                 funcs( one_func ), merge_eval( no_merge_eval )
+00105 {
+00106 
+00107         one_func.push_back( &__eval_func );
+00108 }
+00109 
+00110 
+00111 template< class EOT > peoParaPopEval< EOT > :: peoParaPopEval( 
+00112 
+00113                                 const std :: vector< eoEvalFunc< EOT >* >& __funcs,
+00114                                 peoAggEvalFunc< EOT >& __merge_eval 
+00115 
+00116                 ) : funcs( __funcs ), merge_eval( __merge_eval )
+00117 {
+00118 
+00119 }
+00120 
+00121 
+00122 template< class EOT > void peoParaPopEval< EOT >::operator()( eoPop< EOT >& __pop ) {
+00123 
+00124         for ( unsigned i = 0; i < __pop.size(); i++ ) {
+00125 
+00126                 __pop[ i ].fitness( typename EOT :: Fitness() );
+00127 
+00128                 progression[ &__pop[ i ] ].first = funcs.size() - 1;
+00129                 progression[ &__pop[ i ] ].second = funcs.size();
+00130                 
+00131                 for ( unsigned j = 0; j < funcs.size(); j++ ) {
+00132                         /* Queuing the 'invalid' solution and its associated owner */
+00133                         tasks.push( &__pop[ i ] );
+00134                 }
+00135         }
+00136         
+00137         total = funcs.size() * __pop.size();
+00138         requestResourceRequest( funcs.size() * __pop.size() );
+00139         stop();
+00140 }
+00141 
+00142 
+00143 template< class EOT > void peoParaPopEval< EOT > :: packData() {
+00144 
+00145         //  printDebugMessage ("debut pakc data");
+00146         pack( progression[ tasks.front() ].first-- );
+00147         
+00148         /* Packing the contents :-) of the solution */
+00149         pack( *tasks.front() );
+00150         
+00151         /* Packing the addresses of both the solution and the owner */
+00152         pack( tasks.front() );
+00153         tasks.pop(  );
+00154 }
+00155 
+00156 
+00157 template< class EOT > void peoParaPopEval< EOT > :: unpackData() {
+00158 
+00159         unpack( num_func );
+00160         /* Unpacking the solution */
+00161         unpack( sol );
+00162         /* Unpacking the @ of that one */
+00163         unpack( ad_sol );
+00164 }
+00165 
+00166 
+00167 template< class EOT > void peoParaPopEval< EOT > :: execute() {
+00168 
+00169         /* Computing the fitness of the solution */
+00170         funcs[ num_func ]->operator()( sol );
+00171 }
+00172 
+00173 
+00174 template< class EOT > void peoParaPopEval< EOT > :: packResult() {
+00175 
+00176         /* Packing the fitness of the solution */
+00177         pack( sol.fitness() );
+00178         /* Packing the @ of the individual */
+00179         pack( ad_sol );
+00180 }
+00181 
+00182 
+00183 template< class EOT > void peoParaPopEval< EOT > :: unpackResult() {
+00184 
+00185         typename EOT :: Fitness fit;
+00186         
+00187         /* Unpacking the computed fitness */
+00188         unpack( fit );
+00189                 
+00190         /* Unpacking the @ of the associated individual */
+00191         unpack( ad_sol );
+00192         
+00193         
+00194         /* Associating the fitness the local solution */
+00195         merge_eval( *ad_sol, fit );
+00196 
+00197         progression[ ad_sol ].second--;
+00198 
+00199         /* Notifying the container of the termination of the evaluation */
+00200         if ( !progression[ ad_sol ].second ) {
+00201 
+00202                 progression.erase( ad_sol );
+00203         }
+00204         
+00205         total--;
+00206         if ( !total ) {
+00207 
+00208                 getOwner()->setActive();
+00209                 resume();
+00210         }
+00211 }
+00212 
+00213 
+00214 template< class EOT > void peoParaPopEval< EOT > :: notifySendingData() {
+00215 
+00216 }
+00217 
+00218 
+00219 template< class EOT > void peoParaPopEval< EOT > :: notifySendingAllResourceRequests() {
+00220 
+00221         getOwner()->setPassive();
+00222 }
+00223 
+00224 
+00225 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoParaSGATransform_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoParaSGATransform_8h-source.html new file mode 100644 index 000000000..bad15f80b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoParaSGATransform_8h-source.html @@ -0,0 +1,184 @@ + + +ParadisEO-PEO: peoParaSGATransform.h Source File + + + + +
+
+

peoParaSGATransform.h

00001 // "peoParaSGATransform.h"
+00002 
+00003 //(c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoParaSGATransform_h
+00010 #define __peoParaSGATransform_h
+00011 
+00012 #include "peoTransform.h"
+00013 #include "core/thread.h"
+00014 #include "core/messaging.h"
+00015 #include "core/peo_debug.h"
+00016 
+00017 
+00018 extern int getNodeRank();
+00019 
+00020 
+00021 template< class EOT > class peoParaSGATransform : public peoTransform< EOT > {
+00022 
+00023 public:
+00024 
+00025         using peoTransform< EOT > :: requestResourceRequest;
+00026         using peoTransform< EOT > :: resume;
+00027         using peoTransform< EOT > :: stop;
+00028         using peoTransform< EOT > :: getOwner;
+00029 
+00030         peoParaSGATransform( 
+00031 
+00032                                 eoQuadOp< EOT >& __cross,
+00033                                 double __cross_rate,
+00034                                 eoMonOp< EOT >& __mut, 
+00035                                 double __mut_rate 
+00036         );
+00037 
+00038         void operator()( eoPop< EOT >& __pop );
+00039         
+00040         void packData();
+00041         
+00042         void unpackData();
+00043         
+00044         void execute();
+00045         
+00046         void packResult();
+00047         
+00048         void unpackResult();
+00049         
+00050         void notifySendingData();
+00051         void notifySendingAllResourceRequests();
+00052 
+00053 private:
+00054 
+00055     eoQuadOp< EOT >& cross;
+00056     double cross_rate;
+00057 
+00058     eoMonOp< EOT >& mut;
+00059     double mut_rate;
+00060 
+00061     unsigned idx;
+00062 
+00063     eoPop< EOT >* pop;
+00064 
+00065     EOT father, mother;
+00066 
+00067     unsigned num_term;
+00068 };
+00069 
+00070 template< class EOT > peoParaSGATransform< EOT > :: peoParaSGATransform( 
+00071 
+00072                                 eoQuadOp< EOT >& __cross,
+00073                                 double __cross_rate,
+00074                                 eoMonOp < EOT >& __mut,
+00075                                 double __mut_rate 
+00076 
+00077                 ) : cross( __cross ), cross_rate( __cross_rate ), mut( __mut ), mut_rate( __mut_rate )
+00078 {
+00079 
+00080 }
+00081 
+00082 
+00083 template< class EOT > void peoParaSGATransform< EOT > :: packData() {
+00084 
+00085         pack( idx );
+00086          :: pack( pop->operator[]( idx++ ) );
+00087          :: pack( pop->operator[]( idx++ ) );
+00088 }
+00089 
+00090 
+00091 template< class EOT > void peoParaSGATransform< EOT > :: unpackData() {
+00092 
+00093         unpack( idx );
+00094          :: unpack( father );
+00095          :: unpack( mother );
+00096 }
+00097 
+00098 
+00099 template< class EOT > void peoParaSGATransform< EOT > :: execute() {
+00100 
+00101         if( rng.uniform() < cross_rate ) cross( mother, father );
+00102 
+00103         if( rng.uniform() < mut_rate ) mut( mother );
+00104         if( rng.uniform() < mut_rate ) mut( father );
+00105 }
+00106 
+00107 
+00108 template< class EOT > void peoParaSGATransform< EOT > :: packResult() {
+00109 
+00110         pack( idx );
+00111          :: pack( father );
+00112          :: pack( mother );
+00113 }
+00114 
+00115 
+00116 template< class EOT > void peoParaSGATransform< EOT > :: unpackResult() {
+00117 
+00118         unsigned sidx;
+00119         
+00120         unpack( sidx );
+00121          :: unpack( pop->operator[]( sidx++ ) );
+00122          :: unpack( pop->operator[]( sidx ) );
+00123         num_term += 2;
+00124         
+00125         if( num_term == pop->size() ) {
+00126 
+00127                 getOwner()->setActive();
+00128                 resume();
+00129         }
+00130 }
+00131 
+00132 
+00133 template< class EOT > void peoParaSGATransform< EOT > :: operator()( eoPop < EOT >& __pop ) {
+00134 
+00135         printDebugMessage( "performing the parallel transformation step." );
+00136         pop = &__pop;
+00137         idx = 0;
+00138         num_term = 0;
+00139         requestResourceRequest( __pop.size() / 2 );
+00140         stop();
+00141 }
+00142 
+00143 
+00144 template< class EOT > void peoParaSGATransform< EOT > :: notifySendingData() {
+00145 
+00146 }
+00147 
+00148 
+00149 template< class EOT > void peoParaSGATransform< EOT > :: notifySendingAllResourceRequests() {
+00150 
+00151         getOwner()->setPassive();
+00152 }
+00153 
+00154 
+00155 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoPopEval_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoPopEval_8h-source.html new file mode 100644 index 000000000..18da7a60b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoPopEval_8h-source.html @@ -0,0 +1,52 @@ + + +ParadisEO-PEO: peoPopEval.h Source File + + + + +
+
+

peoPopEval.h

00001 // "peoPopEval.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoPopEval_h
+00010 #define __peoPopEval_h
+00011 
+00012 #include "core/service.h"
+00013 
+00015 
+00019 template< class EOT > class peoPopEval : public Service {
+00020 
+00021 public:
+00022 
+00024         virtual void operator()( eoPop< EOT >& __pop ) = 0;
+00025 };
+00026 
+00027 
+00028 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSeqPopEval_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSeqPopEval_8h-source.html new file mode 100644 index 000000000..3d6718a68 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSeqPopEval_8h-source.html @@ -0,0 +1,72 @@ + + +ParadisEO-PEO: peoSeqPopEval.h Source File + + + + +
+
+

peoSeqPopEval.h

00001 // "peoSeqPopEval.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoSeqPopEval_h
+00010 #define __peoSeqPopEval_h
+00011 
+00012 #include <eoEvalFunc.h>
+00013 
+00014 #include "peoPopEval.h"
+00015 
+00017 
+00021 template< class EOT > class peoSeqPopEval : public peoPopEval< EOT > {
+00022 
+00023 public:
+00024 
+00028         peoSeqPopEval( eoEvalFunc< EOT >& __eval );
+00029 
+00033         void operator()( eoPop< EOT >& __pop );
+00034 
+00035 private:
+00036 
+00037         eoEvalFunc< EOT >& eval;
+00038 };
+00039 
+00040 
+00041 template< class EOT > peoSeqPopEval< EOT > :: peoSeqPopEval( eoEvalFunc< EOT >& __eval ) : eval( __eval ) {
+00042 
+00043 }
+00044 
+00045 
+00046 template< class EOT > void peoSeqPopEval< EOT > :: operator()( eoPop< EOT >& __pop ) {
+00047 
+00048         for ( unsigned i = 0; i < __pop.size(); i++ )
+00049                 eval( __pop[i] );
+00050 }
+00051 
+00052 
+00053 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSeqTransform_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSeqTransform_8h-source.html new file mode 100644 index 000000000..6685ac360 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSeqTransform_8h-source.html @@ -0,0 +1,80 @@ + + +ParadisEO-PEO: peoSeqTransform.h Source File + + + + +
+
+

peoSeqTransform.h

00001 // "peoSeqTransform.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoSeqTransform_h
+00010 #define __peoSeqTransform_h
+00011 
+00012 #include "peoTransform.h"
+00013 
+00014 
+00016 
+00020 template< class EOT > class peoSeqTransform : public peoTransform< EOT > {
+00021 
+00022 public:
+00023 
+00027         peoSeqTransform( eoTransform< EOT >& __trans );
+00028         
+00032         void operator()( eoPop< EOT >& __pop );
+00033         
+00035         virtual void packData() { }
+00036 
+00038         virtual void unpackData() { }
+00039         
+00041         virtual void execute() { }
+00042         
+00044         virtual void packResult() { }
+00045 
+00047         virtual void unpackResult() { }
+00048 
+00049 private:
+00050 
+00051         eoTransform< EOT >& trans;
+00052 };
+00053 
+00054 
+00055 template< class EOT > peoSeqTransform< EOT > :: peoSeqTransform( eoTransform< EOT >& __trans ) : trans( __trans ) {
+00056 
+00057 }
+00058 
+00059 
+00060 template< class EOT > void peoSeqTransform< EOT > :: operator()( eoPop< EOT >& __pop ) {
+00061 
+00062         trans( __pop );
+00063 }
+00064 
+00065 
+00066 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html new file mode 100644 index 000000000..595287f9e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html @@ -0,0 +1,217 @@ + + +ParadisEO-PEO: peoSyncIslandMig.h Source File + + + + +
+
+

peoSyncIslandMig.h

00001 // "peoSyncIslandMig.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoSyncIslandMig_h
+00010 #define __peoSyncIslandMig_h
+00011 
+00012 
+00013 #include <queue>
+00014 #include <cassert>
+00015 
+00016 #include <eoPeriodicContinue.h>
+00017 
+00018 #include <utils/eoUpdater.h>
+00019 
+00020 #include <eoContinue.h>
+00021 #include <eoSelect.h>
+00022 #include <eoReplacement.h>
+00023 #include <eoPop.h>
+00024 
+00025 #include "core/topology.h"
+00026 #include "core/thread.h"
+00027 #include "core/eoPop_comm.h"
+00028 #include "core/peo_debug.h"
+00029 
+00030 
+00032 
+00114 template< class EOT > class peoSyncIslandMig : public Cooperative, public eoUpdater {
+00115 
+00116 public:
+00117 
+00127         peoSyncIslandMig(
+00128                                 unsigned __frequency,
+00129                                 eoSelect< EOT >& __select,
+00130                                 eoReplacement< EOT >& __replace,
+00131                                 Topology& __topology,
+00132                                 eoPop< EOT >& __source,
+00133                                 eoPop< EOT >& __destination
+00134         );
+00135 
+00140         void operator()();
+00141 
+00143         void pack();
+00145         void unpack();
+00146 
+00148         void notifySending();
+00149 
+00150 
+00151 private:
+00152 
+00153         void emigrate();
+00154         void immigrate();
+00155 
+00156 
+00157 private:
+00158 
+00159         eoPeriodicContinue< EOT > cont;
+00160         eoSelect< EOT >& select;        // selection strategy
+00161         eoReplacement< EOT >& replace;  // replacement strategy
+00162         Topology& topology;             // neighboring topology
+00163 
+00164         // source and target populations
+00165         eoPop< EOT >& source;
+00166         eoPop< EOT >& destination;
+00167 
+00168         // immigrants & emigrants in the queue
+00169         std :: queue< eoPop< EOT > > imm;
+00170         std :: queue< eoPop< EOT > > em;
+00171 
+00172         std :: queue< Cooperative* > coop_em;
+00173 
+00174         sem_t sync;
+00175 };
+00176 
+00177 
+00178 template< class EOT > peoSyncIslandMig< EOT > :: peoSyncIslandMig(
+00179 
+00180                 unsigned __frequency,
+00181                 eoSelect< EOT >& __select,
+00182                 eoReplacement< EOT >& __replace,
+00183                 Topology& __topology,
+00184                 eoPop< EOT >& __source,
+00185                 eoPop< EOT >& __destination
+00186 
+00187         ) : cont( __frequency ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination ) 
+00188 {
+00189 
+00190         __topology.add( *this );
+00191         sem_init( &sync, 0, 0 );
+00192 }
+00193 
+00194 
+00195 template< class EOT > void peoSyncIslandMig< EOT > :: pack() {
+00196 
+00197         lock(); {
+00198 
+00199 		 :: pack( coop_em.front()->getKey() );
+00200 		 :: pack( em.front() );
+00201                 coop_em.pop();
+00202                 em.pop();
+00203         }
+00204         unlock();
+00205 }
+00206 
+00207 
+00208 template< class EOT > void peoSyncIslandMig< EOT > :: unpack() {
+00209 
+00210         lock(); {
+00211 
+00212                 eoPop< EOT > mig;
+00213 		 :: unpack( mig );
+00214                 imm.push( mig );
+00215         }
+00216         unlock();
+00217 
+00218         sem_post( &sync );
+00219 }
+00220 
+00221 
+00222 template< class EOT > void peoSyncIslandMig< EOT > :: emigrate() {
+00223 
+00224         std :: vector< Cooperative* > in, out;
+00225         topology.setNeighbors( this, in, out );
+00226         
+00227         for ( unsigned i = 0; i < out.size(); i ++ ) {
+00228 
+00229                 eoPop< EOT > mig;
+00230                 select( source, mig );
+00231                 em.push( mig );
+00232                 coop_em.push( out[ i ] );
+00233                 send( out[ i ] );
+00234                 printDebugMessage( "sending some emigrants." );
+00235         }
+00236 }
+00237 
+00238 
+00239 template< class EOT > void peoSyncIslandMig< EOT > :: immigrate() {
+00240 
+00241         lock(); {
+00242 
+00243                 assert( imm.size() );
+00244                 replace( destination, imm.front() ) ;
+00245                 imm.pop();
+00246                 printDebugMessage( "receiving some immigrants." );
+00247         }
+00248         unlock();
+00249 }
+00250 
+00251 
+00252 template< class EOT > void peoSyncIslandMig< EOT > :: operator()() {
+00253 
+00254         if ( !cont( source ) ) {
+00255         
+00256                 // sending emigrants
+00257                 emigrate();
+00258                 stop();
+00259 
+00260                 // synchronizing
+00261                 sem_wait( &sync );
+00262                 getOwner()->setActive();
+00263 
+00264                 // receiving immigrants
+00265                 immigrate();
+00266         }
+00267 }
+00268 
+00269 
+00270 template< class EOT > void peoSyncIslandMig< EOT > :: notifySending() {
+00271 
+00272         lock(); {
+00273 
+00274                 if ( imm.empty() ) {
+00275 
+00276                         printDebugMessage( "entering pasive mode\n" );
+00277                         getOwner()->setPassive();
+00278                 }
+00279         }
+00280         unlock();
+00281 
+00282         resume();
+00283 }
+00284 
+00285 
+00286 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSyncMultiStart_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSyncMultiStart_8h-source.html new file mode 100644 index 000000000..50744549d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoSyncMultiStart_8h-source.html @@ -0,0 +1,181 @@ + + +ParadisEO-PEO: peoSyncMultiStart.h Source File + + + + +
+
+

peoSyncMultiStart.h

00001 // "peoSyncMultiStart.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoSyncMultiStart_h
+00010 #define __peoSyncMultiStart_h
+00011 
+00012 #include <utils/eoUpdater.h>
+00013 #include <moAlgo.h>
+00014 
+00015 #include <eoSelect.h>
+00016 #include <eoReplacement.h>
+00017 #include <eoContinue.h>
+00018 
+00019 #include "core/service.h"
+00020 #include "core/messaging.h"
+00021 #include "core/peo_debug.h"
+00022 
+00023 
+00024 extern int getNodeRank();
+00025 
+00026 
+00028 
+00036 template< class EOT > class peoSyncMultiStart : public Service, public eoUpdater {
+00037 
+00038 public:
+00039 
+00047         peoSyncMultiStart( 
+00048 
+00049                                 eoContinue< EOT >& __cont,
+00050                                 eoSelect< EOT >& __select,
+00051                                 eoReplacement< EOT >& __replace,
+00052                                 moAlgo< EOT >& __ls, 
+00053                                 eoPop< EOT >& __pop 
+00054                 );
+00055 
+00058         void operator()();
+00059 
+00062         void packData();
+00063 
+00066         void unpackData();
+00067 
+00070         void execute();
+00071 
+00074         void packResult();
+00075 
+00078         void unpackResult();
+00079 
+00082         void notifySendingData();
+00083 
+00086         void notifySendingAllResourceRequests();
+00087 
+00088 private:
+00089 
+00090         eoContinue< EOT >& cont;
+00091         eoSelect< EOT >& select;
+00092         eoReplacement< EOT >& replace;
+00093 
+00094         moAlgo< EOT >& ls;
+00095 
+00096         eoPop< EOT >& pop;
+00097         eoPop< EOT > sel;
+00098         eoPop< EOT > impr_sel;
+00099 
+00100         EOT sol;
+00101         unsigned idx;
+00102         unsigned num_term;
+00103 };
+00104 
+00105 
+00106 template< class EOT > peoSyncMultiStart< EOT > :: peoSyncMultiStart( 
+00107 
+00108                                 eoContinue < EOT >& __cont, 
+00109                                 eoSelect< EOT >& __select,
+00110                                 eoReplacement< EOT >& __replace, 
+00111                                 moAlgo < EOT >& __ls,
+00112                                 eoPop< EOT >& __pop 
+00113 
+00114                 ) : cont( __cont ), select( __select ), replace( __replace ), ls( __ls ), pop( __pop )
+00115 {
+00116 
+00117 }
+00118 
+00119 
+00120 template< class EOT > void peoSyncMultiStart< EOT > :: packData() {
+00121 
+00122          :: pack( sel[ idx++ ] );
+00123 }
+00124 
+00125 
+00126 template< class EOT > void peoSyncMultiStart< EOT > :: unpackData() {
+00127 
+00128         unpack( sol );
+00129 }
+00130 
+00131 
+00132 template< class EOT > void peoSyncMultiStart< EOT > :: execute() {
+00133 
+00134         ls( sol );
+00135 }
+00136 
+00137 
+00138 template< class EOT > void peoSyncMultiStart< EOT > :: packResult() {
+00139 
+00140         pack( sol );
+00141 }
+00142 
+00143 
+00144 template< class EOT > void peoSyncMultiStart< EOT > :: unpackResult() {
+00145 
+00146         unpack( sol );
+00147         impr_sel.push_back( sol );
+00148         num_term++;
+00149 
+00150         if ( num_term == sel.size() ) {
+00151 
+00152                 getOwner()->setActive();
+00153                 replace( pop, impr_sel );
+00154 
+00155                 printDebugMessage( "replacing the improved individuals in the population." );
+00156                 resume();
+00157         }
+00158 }
+00159 
+00160 
+00161 template< class EOT > void peoSyncMultiStart< EOT > :: operator()() {
+00162 
+00163         printDebugMessage( "performing the parallel multi-start hybridization." );
+00164         select( pop, sel );
+00165         impr_sel.clear();
+00166         idx = num_term = 0;
+00167         requestResourceRequest( sel.size() );
+00168         stop();
+00169 }
+00170 
+00171 
+00172 template< class EOT > void peoSyncMultiStart< EOT > :: notifySendingData() {
+00173 
+00174 }
+00175 
+00176 
+00177 template< class EOT > void peoSyncMultiStart< EOT > :: notifySendingAllResourceRequests() {
+00178 
+00179         getOwner()->setPassive();
+00180 }
+00181 
+00182 
+00183 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoTransform_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoTransform_8h-source.html new file mode 100644 index 000000000..47a0554b9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peoTransform_8h-source.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO: peoTransform.h Source File + + + + +
+
+

peoTransform.h

00001 // "peoTransform.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peoTransform_h
+00010 #define __peoTransform_h
+00011 
+00012 #include <eoTransform.h>
+00013 
+00014 #include "core/service.h"
+00015 
+00017 
+00020 template< class EOT > class peoTransform : public Service, public eoTransform< EOT > {
+00021 
+00022 };
+00023 
+00024 
+00025 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__debug_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__debug_8cpp-source.html new file mode 100644 index 000000000..8777a83fd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__debug_8cpp-source.html @@ -0,0 +1,106 @@ + + +ParadisEO-PEO: peo_debug.cpp Source File + + + + +
+
+

peo_debug.cpp

00001 // "peo_debug.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "peo_debug.h"
+00010 
+00011 #include <stdio.h>
+00012 #include <time.h>
+00013 #include <unistd.h>
+00014 #include <string.h>
+00015 #include <sys/types.h>
+00016 #include <sys/stat.h>
+00017 #include <vector>
+00018 
+00019 #include "peo_debug.h"
+00020 
+00021 #define MAX_BUFF_SIZE 1000
+00022 
+00023 #define DEBUG_PATH "./log/"
+00024 
+00025 static bool debug = true;
+00026 
+00027 static char host [MAX_BUFF_SIZE];
+00028 
+00029 std :: vector <FILE *> files;
+00030 
+00031 void setDebugMode (bool __dbg) {
+00032 
+00033   debug = __dbg;
+00034   gethostname (host, MAX_BUFF_SIZE);
+00035 }
+00036 
+00037 extern int getNodeRank ();
+00038 
+00039 void initDebugging () {
+00040   
+00041   mkdir (DEBUG_PATH, S_IRWXU);
+00042   //  files.push_back (stdout);
+00043   char buff [MAX_BUFF_SIZE];
+00044   sprintf (buff, "%s/%d", DEBUG_PATH, getNodeRank ());
+00045   files.push_back (fopen (buff, "w"));
+00046 }
+00047 
+00048 void endDebugging () {
+00049 
+00050   for (unsigned i = 0; i < files.size (); i ++)
+00051     if (files [i] != stdout)
+00052       fclose (files [i]);
+00053 }
+00054 
+00055 void printDebugMessage (const char * __mess) {
+00056 
+00057   if (debug) {
+00058 
+00059     char buff [MAX_BUFF_SIZE];
+00060     time_t t = time (0);
+00061 
+00062     /* Date */
+00063     sprintf (buff, "[%s][%s: ", host, ctime (& t));
+00064     * strchr (buff, '\n') = ']';
+00065     for (unsigned i = 0; i < files.size (); i ++)
+00066       fprintf (files [i], buff);
+00067 
+00068     /* Message */
+00069     sprintf (buff, "%s", __mess);
+00070     
+00071     for (unsigned i = 0; i < files.size (); i ++) {
+00072       fputs (buff, files [i]);
+00073       fputs ("\n", files [i]);
+00074       fflush (files [i]);
+00075     }
+00076   }
+00077 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__debug_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__debug_8h-source.html new file mode 100644 index 000000000..b3959e910 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__debug_8h-source.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO: peo_debug.h Source File + + + + +
+
+

peo_debug.h

00001 // "peo_debug.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peo_debug_h
+00010 #define __peo_debug_h
+00011 
+00012 extern void initDebugging ();
+00013 
+00014 extern void endDebugging ();
+00015 
+00016 extern void setDebugMode (bool __dbg = true); /* (Des)activating the Debugging mode */
+00017 
+00018 extern void printDebugMessage (const char * __mess); /* Print a new message both on the
+00019                                                         standard output and a target
+00020                                                         text-file in a subdirectory) */
+00021 
+00022 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__fin_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__fin_8cpp-source.html new file mode 100644 index 000000000..c7cdd1385 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__fin_8cpp-source.html @@ -0,0 +1,53 @@ + + +ParadisEO-PEO: peo_fin.cpp Source File + + + + +
+
+

peo_fin.cpp

00001 // "peo_finalize.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "peo_fin.h"
+00010 #include "peo_debug.h"
+00011 #include "runner.h"
+00012 #include "rmc.h"
+00013 
+00014 void peo :: finalize () {
+00015 
+00016   printDebugMessage ("waiting for the termination of all threads");
+00017 
+00018   joinRunners ();
+00019 
+00020   finalizeRMC ();
+00021 
+00022   printDebugMessage ("this is the end");
+00023   endDebugging ();
+00024 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__fin_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__fin_8h-source.html new file mode 100644 index 000000000..8d5165b91 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__fin_8h-source.html @@ -0,0 +1,46 @@ + + +ParadisEO-PEO: peo_fin.h Source File + + + + +
+
+

peo_fin.h

00001 // "peo_finalize.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peo_finalize_h
+00010 #define __peo_finalize_h
+00011 
+00012 namespace peo {
+00013   
+00014   extern void finalize ();
+00015 }
+00016 
+00017 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__init_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__init_8cpp-source.html new file mode 100644 index 000000000..bf790cf1e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__init_8cpp-source.html @@ -0,0 +1,66 @@ + + +ParadisEO-PEO: peo_init.cpp Source File + + + + +
+
+

peo_init.cpp

00001 // "peo_init.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <stdio.h>
+00010 
+00011 #include "peo_init.h"
+00012 #include "peo_param.h"
+00013 #include "peo_debug.h"
+00014 #include "rmc.h"
+00015 
+00016 namespace peo {
+00017 
+00018   int * argc;
+00019   
+00020   char * * * argv;
+00021 
+00022   void init (int & __argc, char * * & __argv) {
+00023 
+00024     argc = & __argc;
+00025     
+00026     argv = & __argv;
+00027     
+00028     /* Initializing the the Resource Management and Communication */
+00029     initRMC (__argc, __argv);
+00030 
+00031     /* Loading the common parameters */ 
+00032     loadParameters (__argc, __argv);
+00033     
+00034     /* */
+00035     initDebugging ();
+00036   }
+00037 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__init_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__init_8h-source.html new file mode 100644 index 000000000..1464fd89f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__init_8h-source.html @@ -0,0 +1,50 @@ + + +ParadisEO-PEO: peo_init.h Source File + + + + +
+
+

peo_init.h

00001 // "peo_init.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peo_init_h
+00010 #define __peo_init_h
+00011 
+00012 namespace peo {
+00013 
+00014   extern int * argc;
+00015   
+00016   extern char * * * argv;
+00017   
+00018   extern void init (int & __argc, char * * & __argv);
+00019 }
+00020 
+00021 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__param_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__param_8cpp-source.html new file mode 100644 index 000000000..25b3bd139 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__param_8cpp-source.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO: peo_param.cpp Source File + + + + +
+
+

peo_param.cpp

00001 // "peo_param.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <utils/eoParser.h>
+00010 
+00011 #include "peo_param.h"
+00012 #include "peo_debug.h"
+00013 
+00014 
+00015 
+00016 void peo :: loadParameters (int & __argc, char * * & __argv) {
+00017 
+00018   eoParser parser (__argc, __argv);
+00019 
+00020   /* Debug */
+00021   eoValueParam <std :: string> debug_param ("false", "debug", "?");
+00022   parser.processParam (debug_param);
+00023   if (debug_param.value () == "true")
+00024     setDebugMode ();
+00025 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__param_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__param_8h-source.html new file mode 100644 index 000000000..01a4bec6c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__param_8h-source.html @@ -0,0 +1,46 @@ + + +ParadisEO-PEO: peo_param.h Source File + + + + +
+
+

peo_param.h

00001 // "peo_param.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peo_param_h
+00010 #define __peo_param_h
+00011 
+00012 namespace peo {
+00013   
+00014   extern void loadParameters (int & __argc, char * * & __argv);
+00015 }
+00016 
+00017 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__run_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__run_8cpp-source.html new file mode 100644 index 000000000..9a559e91a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__run_8cpp-source.html @@ -0,0 +1,48 @@ + + +ParadisEO-PEO: peo_run.cpp Source File + + + + +
+
+

peo_run.cpp

00001 // "peo_run.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "peo_init.h"
+00010 #include "peo_run.h"
+00011 #include "rmc.h"
+00012 #include "runner.h"
+00013 
+00014 void peo :: run () {
+00015   
+00016   startRunners ();
+00017 
+00018   runRMC ();
+00019 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__run_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__run_8h-source.html new file mode 100644 index 000000000..b9aa59574 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/peo__run_8h-source.html @@ -0,0 +1,46 @@ + + +ParadisEO-PEO: peo_run.h Source File + + + + +
+
+

peo_run.h

00001 // "peo_run.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __peo_run_h
+00010 #define __peo_run_h
+00011 
+00012 namespace peo {
+00013   
+00014   extern void run ();
+00015 }
+00016 
+00017 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/reac__thread_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/reac__thread_8cpp-source.html new file mode 100644 index 000000000..cf6c88d99 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/reac__thread_8cpp-source.html @@ -0,0 +1,65 @@ + + +ParadisEO-PEO: reac_thread.cpp Source File + + + + +
+
+

reac_thread.cpp

00001 // "reac_thread.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "reac_thread.h"
+00010 
+00011 static bool the_end = false;
+00012 
+00013 static std :: vector <ReactiveThread *> reac_threads;
+00014 
+00015 ReactiveThread :: ReactiveThread () {
+00016 
+00017   reac_threads.push_back (this);
+00018   sem_init (& sem, 0, 0);
+00019 }
+00020 
+00021 void ReactiveThread :: sleep () {
+00022 
+00023   sem_wait (& sem);     
+00024 }
+00025 
+00026 void ReactiveThread :: wakeUp () {
+00027 
+00028   sem_post (& sem);     
+00029 }
+00030 
+00031 void stopReactiveThreads () {
+00032 
+00033   the_end = true;
+00034   for (unsigned i = 0; i < reac_threads.size (); i ++)
+00035     reac_threads [i] -> wakeUp  ();     
+00036 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/reac__thread_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/reac__thread_8h-source.html new file mode 100644 index 000000000..d751daec9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/reac__thread_8h-source.html @@ -0,0 +1,64 @@ + + +ParadisEO-PEO: reac_thread.h Source File + + + + +
+
+

reac_thread.h

00001 // "reac_thread.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef REAC_THREAD_H_
+00010 #define REAC_THREAD_H_
+00011 
+00012 #include <semaphore.h>
+00013 
+00014 #include "thread.h"
+00015 
+00016 class ReactiveThread : public Thread {
+00017         
+00018 public:
+00019 
+00020   /* Ctor */
+00021   ReactiveThread ();
+00022 
+00023   void sleep ();
+00024   
+00025   void wakeUp ();
+00026     
+00027 private:
+00028 
+00029   sem_t sem;
+00030    
+00031 };
+00032 
+00033 extern void stopReactiveThreads ();
+00034 
+00035 #endif /*THREAD_H_*/
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/recv_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/recv_8cpp-source.html new file mode 100644 index 000000000..344a0fc41 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/recv_8cpp-source.html @@ -0,0 +1,141 @@ + + +ParadisEO-PEO: recv.cpp Source File + + + + +
+
+

recv.cpp

00001 // "recv.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "comm.h"
+00010 #include "tags.h"
+00011 #include "worker.h"
+00012 #include "scheduler.h"
+00013 #include "mess.h"
+00014 #include "node.h"
+00015 #include "../../core/runner.h"
+00016 #include "../../core/cooperative.h"
+00017 #include "../../core/peo_debug.h"
+00018 
+00019 void receiveMessages () {
+00020 
+00021   cleanBuffers ();
+00022     
+00023   do {
+00024 
+00025     if (! atLeastOneActiveThread ()) {
+00026       //      printDebugMessage ("debut wait");
+00027       waitMessage ();
+00028       //printDebugMessage ("fin wait");
+00029     }
+00030     
+00031     int src, tag;
+00032 
+00033     while (probeMessage (src, tag)) {
+00034       
+00035       receiveMessage (src, tag);
+00036       initMessage ();
+00037       /*
+00038       char b [1000];
+00039       sprintf (b, "traitement recv %d\n", tag);
+00040       printDebugMessage (b);
+00041       */
+00042       
+00043       switch (tag) {
+00044         
+00045       case RUNNER_STOP_TAG:     
+00046         unpackTerminationOfRunner ();   
+00047         wakeUpCommunicator ();
+00048         break;
+00049       
+00050       case COOP_TAG:
+00051         //      printDebugMessage ("reception de message de cooperation");
+00052         COOP_ID coop_id;
+00053         unpack (coop_id);
+00054         getCooperative (coop_id) -> unpack ();
+00055         break;
+00056 
+00057       case SCHED_REQUEST_TAG:   
+00058         unpackResourceRequest ();
+00059         break;
+00060         
+00061       case SCHED_RESULT_TAG:
+00062         {         
+00063           /* Unpacking the resource */
+00064           SERVICE_ID serv_id;
+00065           unpack (serv_id);
+00066           Service * serv = getService (serv_id);
+00067           int dest;
+00068           unpack (dest);
+00069           WORKER_ID worker_id;
+00070           unpack (worker_id);
+00071 
+00072           /* Going back ... */
+00073           initMessage ();
+00074           pack (worker_id);
+00075           pack (serv_id); 
+00076           serv -> packData ();
+00077           serv -> notifySendingData ();
+00078           sendMessage (dest, TASK_DATA_TAG);
+00079           break;
+00080         }
+00081 
+00082       case TASK_DATA_TAG:
+00083       {
+00084         WORKER_ID worker_id;
+00085         unpack (worker_id);             
+00086         Worker * worker = getWorker (worker_id);
+00087         worker -> setSource (src);
+00088         worker -> unpackData ();
+00089         worker -> wakeUp ();
+00090         break; 
+00091       }
+00092       
+00093       case TASK_RESULT_TAG:
+00094         {
+00095           SERVICE_ID serv_id;
+00096           unpack (serv_id);
+00097           Service * serv = getService (serv_id);
+00098           serv -> unpackResult ();
+00099           break;
+00100         }
+00101 
+00102       case TASK_DONE_TAG:
+00103         unpackTaskDone ();
+00104         break;
+00105 
+00106       default:
+00107         ;
+00108       };
+00109     }
+00110         
+00111   } while (! atLeastOneActiveThread () && atLeastOneActiveRunner () /*&& ! allResourcesFree ()*/);
+00112 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/recv_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/recv_8h-source.html new file mode 100644 index 000000000..223cc9eb3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/recv_8h-source.html @@ -0,0 +1,43 @@ + + +ParadisEO-PEO: recv.h Source File + + + + +
+
+

recv.h

00001 // "recv.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __recv_h
+00010 #define __recv_h
+00011 
+00012 extern void receiveMessages ();
+00013 
+00014 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ring__topo_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ring__topo_8cpp-source.html new file mode 100644 index 000000000..d08dc44e8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ring__topo_8cpp-source.html @@ -0,0 +1,54 @@ + + +ParadisEO-PEO: ring_topo.cpp Source File + + + + +
+
+

ring_topo.cpp

00001 // "ring_topo.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, September 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "ring_topo.h"
+00010 
+00011 void RingTopology :: setNeighbors (Cooperative * __mig,
+00012                                    std :: vector <Cooperative *> & __from,
+00013                                    std :: vector <Cooperative *> & __to) {
+00014   __from.clear () ;
+00015   __to.clear () ;
+00016 
+00017     int len = mig.size () ;
+00018     
+00019     for (int i = 0 ; i < len ; i ++)      
+00020       if (mig [i] == __mig) {   
+00021         __from.push_back (mig [(i - 1 + len) % len]) ;
+00022         __to.push_back (mig [(i + 1) % len]) ;  
+00023         break;
+00024       }
+00025 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ring__topo_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ring__topo_8h-source.html new file mode 100644 index 000000000..e0e119d00 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/ring__topo_8h-source.html @@ -0,0 +1,53 @@ + + +ParadisEO-PEO: ring_topo.h Source File + + + + +
+
+

ring_topo.h

00001 // "ring_topo.h"
+00002 
+00003 // (c) OPAC Team, LIFL, September 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __ring_topo_h
+00010 #define __ring_topo_h
+00011 
+00012 #include "topology.h"
+00013 
+00014 class RingTopology : public Topology {
+00015   
+00016 public :
+00017    
+00018   void setNeighbors (Cooperative * __mig,
+00019                      std :: vector <Cooperative *> & __from,
+00020                      std :: vector <Cooperative *> & __to);
+00021   
+00022 };
+00023 
+00024 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html new file mode 100644 index 000000000..c9cd7213f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: runner.cpp Source File + + + + +
+
+

runner.cpp

00001 // "runner.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "../../core/messaging.h"
+00010 #include "../../core/runner.h"
+00011 #include "node.h"
+00012 #include "send.h"
+00013 #include "tags.h"
+00014 #include "schema.h"
+00015 
+00016 bool Runner :: isLocal () {
+00017 
+00018   for (unsigned i = 0; i < my_node -> id_run.size (); i ++)
+00019     if (my_node -> id_run [i] == id)
+00020       return true;
+00021   return false;
+00022 }
+00023 
+00024 void Runner :: packTermination () {
+00025 
+00026   pack (id);
+00027 }
+00028 
+00029 void Runner :: terminate () {
+00030 
+00031   sendToAll (this, RUNNER_STOP_TAG);     
+00032 }
+00033 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html new file mode 100644 index 000000000..4b69a6a50 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html @@ -0,0 +1,59 @@ + + +ParadisEO-PEO: service.cpp Source File + + + + +
+
+

service.cpp

00001 // "service.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "../../core/service.h"
+00010 #include "../../core/messaging.h"
+00011 #include "node.h"
+00012 #include "tags.h"
+00013 #include "send.h"
+00014 #include "scheduler.h"
+00015 
+00016 void Service :: requestResourceRequest (unsigned __how_many) {
+00017 
+00018   num_sent_rr = __how_many;
+00019   for (unsigned i = 0; i < __how_many; i ++)
+00020     send (this, my_node -> rk_sched, SCHED_REQUEST_TAG);
+00021 }
+00022 
+00023 void Service :: packResourceRequest () {
+00024 
+00025   SCHED_REQUEST req;
+00026   req.first = getNodeRank ();
+00027   req.second = getKey ();
+00028   //  printf ("demande de ressource pour %d\n", req.second);
+00029   :: pack (req);
+00030 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_8cpp-source.html new file mode 100644 index 000000000..0b3a67ef1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_8cpp-source.html @@ -0,0 +1,75 @@ + + +ParadisEO-PEO: rmc.cpp Source File + + + + +
+
+

rmc.cpp

00001 // "rmc.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "send.h"
+00010 #include "worker.h"
+00011 #include "schema.h"
+00012 #include "comm.h"
+00013 #include "scheduler.h"
+00014 #include "../../core/peo_debug.h"
+00015 
+00016 static std :: vector <pthread_t *> ll_threads; /* Low level threads */
+00017 
+00018 void runRMC () {
+00019 
+00020   /* Worker(s) ? */
+00021   for (unsigned i = 0; i < my_node -> num_workers; i ++) 
+00022     addThread (new Worker, ll_threads);
+00023 
+00024   wakeUpCommunicator ();
+00025 }
+00026 
+00027 void initRMC (int & __argc, char * * & __argv) {
+00028 
+00029   /* Communication */
+00030   initCommunication ();
+00031   addThread (new Communicator (& __argc, & __argv), ll_threads);
+00032   waitNodeInitialization ();
+00033   initSending ();
+00034 
+00035   /* Scheduler */
+00036   if (isScheduleNode ())
+00037     initScheduler ();
+00038 
+00040 }
+00041 
+00042 void finalizeRMC () {
+00043 
+00044   printDebugMessage ("before join threads RMC");
+00045   joinThreads (ll_threads);
+00046   printDebugMessage ("after join threads RMC");
+00047 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_8h-source.html new file mode 100644 index 000000000..d2e2e20c5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/rmc_8h-source.html @@ -0,0 +1,47 @@ + + +ParadisEO-PEO: rmc.h Source File + + + + +
+
+

rmc.h

00001 // "rmc.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __rmc_h
+00010 #define __rmc_h
+00011 
+00012 extern void initRMC (int & __argc, char * * & __argv);
+00013 
+00014 extern void runRMC (); /* Resource Management and Communication */ 
+00015 
+00016 extern void finalizeRMC ();
+00017 
+00018 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/runner_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/runner_8h-source.html new file mode 100644 index 000000000..51d47a794 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/runner_8h-source.html @@ -0,0 +1,87 @@ + + +ParadisEO-PEO: runner.h Source File + + + + +
+
+

runner.h

00001 // "runner.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __runner_h
+00010 #define __runner_h
+00011 
+00012 #include <eoFunctor.h>
+00013 
+00014 #include "communicable.h"
+00015 #include "thread.h"
+00016 
+00017 typedef unsigned RUNNER_ID;
+00018 
+00019 class Runner : public Communicable, public Thread {
+00020 
+00021 public :
+00022 
+00023   Runner ();
+00024 
+00025   void start ();
+00026 
+00027   void waitStarting ();
+00028 
+00029   bool isLocal ();
+00030 
+00031   void terminate ();
+00032 
+00033   virtual void run () = 0;
+00034   
+00035   RUNNER_ID getID (); 
+00036 
+00037   void packTermination ();
+00038 
+00039   void notifySendingTermination ();
+00040 
+00041 private :
+00042 
+00043   sem_t sem_start;
+00044 
+00045   unsigned id;
+00046 };
+00047 
+00048 extern bool atLeastOneActiveRunner ();
+00049 
+00050 extern void unpackTerminationOfRunner ();
+00051 
+00052 extern Runner * getRunner (RUNNER_ID __key); 
+00053 
+00054 extern void startRunners ();
+00055 
+00056 extern void joinRunners ();
+00057 
+00058 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/scheduler_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/scheduler_8cpp-source.html new file mode 100644 index 000000000..9302698fe --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/scheduler_8cpp-source.html @@ -0,0 +1,107 @@ + + +ParadisEO-PEO: scheduler.cpp Source File + + + + +
+
+

scheduler.cpp

00001 // "sched_thread.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <queue>
+00010 
+00011 #include "scheduler.h"
+00012 #include "tags.h"
+00013 #include "mess.h"
+00014 #include "../../core/peo_debug.h"
+00015 
+00016 static std :: queue <SCHED_RESOURCE> resources; /* Free resources */
+00017 
+00018 static std :: queue <SCHED_REQUEST> requests; /* Requests */
+00019 
+00020 static unsigned initNumberOfRes = 0;
+00021 
+00022 void initScheduler () {
+00023   
+00024   for (unsigned i = 0; i < the_schema.size (); i ++) {
+00025     
+00026     const Node & node = the_schema [i];
+00027     
+00028     if (node.rk_sched == my_node -> rk)      
+00029       for (unsigned j = 0; j < node.num_workers; j ++)
+00030         resources.push (std :: pair <RANK_ID, WORKER_ID> (i, j + 1));    
+00031   }  
+00032   initNumberOfRes = resources.size ();
+00033 }
+00034 
+00035 bool allResourcesFree () {
+00036 
+00037   return resources.size () == initNumberOfRes;
+00038 }
+00039 
+00040 static void update () {
+00041 
+00042   unsigned num_alloc = std :: min (resources.size (), requests.size ());
+00043   
+00044   for (unsigned i = 0; i < num_alloc; i ++) {
+00045     
+00046     SCHED_REQUEST req = requests.front ();
+00047     requests.pop ();
+00048     
+00049     SCHED_RESOURCE res = resources.front ();
+00050     resources.pop ();
+00051 
+00052     printDebugMessage ("allocating a resource.");    
+00053     initMessage ();
+00054     pack (req.second);
+00055     pack (res);
+00056     sendMessage (req.first, SCHED_RESULT_TAG);
+00057   }  
+00058 }
+00059 
+00060 void unpackResourceRequest () {
+00061 
+00062   printDebugMessage ("queuing a resource request.");
+00063   SCHED_REQUEST req;
+00064   unpack (req);
+00065   requests.push (req);
+00066   update ();
+00067 }
+00068 
+00069 void unpackTaskDone () {
+00070 
+00071   printDebugMessage ("I'm notified a worker is now idle.");
+00072   SCHED_RESOURCE res;
+00073   unpack (res);
+00074   resources.push (res);
+00075   if (resources.size () == initNumberOfRes)
+00076     printDebugMessage ("all the resources are now free.");
+00077   update ();
+00078 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/scheduler_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/scheduler_8h-source.html new file mode 100644 index 000000000..8ce0b5d1e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/scheduler_8h-source.html @@ -0,0 +1,61 @@ + + +ParadisEO-PEO: scheduler.h Source File + + + + +
+
+

scheduler.h

00001 // "scheduler.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __scheduler_h
+00010 #define __scheduler_h
+00011 
+00012 #include <utility>
+00013 
+00014 #include "schema.h"
+00015 #include "worker.h"
+00016 
+00017 typedef std :: pair <RANK_ID, WORKER_ID> SCHED_RESOURCE;
+00018 
+00019 typedef std :: pair <RANK_ID, SERVICE_ID> SCHED_REQUEST;
+00020 
+00021 /* Initializing the list of available workers */
+00022 extern void initScheduler ();
+00023 
+00024 /* Processing a resource request from a service */
+00025 extern void unpackResourceRequest ();
+00026 
+00027 /* Being known a worker is now idle :-) */
+00028 extern void unpackTaskDone (); 
+00029 
+00030 extern bool allResourcesFree ();
+00031 
+00032 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/schema_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/schema_8cpp-source.html new file mode 100644 index 000000000..47bfefa74 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/schema_8cpp-source.html @@ -0,0 +1,164 @@ + + +ParadisEO-PEO: schema.cpp Source File + + + + +
+
+

schema.cpp

00001 // "schema.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <iostream>
+00010 #include <assert.h>
+00011 
+00012 #include "schema.h"
+00013 #include "xml_parser.h"
+00014 #include "comm.h"
+00015 #include "node.h"
+00016 #include "../../core/peo_debug.h"
+00017 
+00018 std :: vector <Node> the_schema;
+00019 
+00020 Node * my_node;
+00021 
+00022 RANK_ID getRankOfRunner (RUNNER_ID __key) {
+00023 
+00024   for (unsigned i = 0; i < the_schema.size (); i ++)
+00025     for (unsigned j = 0; j < the_schema [i].id_run.size (); j ++)
+00026       if (the_schema [i].id_run [j] == __key)
+00027         return the_schema [i].rk;
+00028   assert (false);
+00029   return 0; 
+00030 }
+00031 
+00032 static void loadNode (int __rk_sched) {
+00033 
+00034   Node node;
+00035   
+00036   node.rk_sched = __rk_sched;
+00037 
+00038   /* ATT: name*/
+00039   node.rk = getRankFromName (getAttributeValue ("name"));
+00040   /* ATT: num_workers */
+00041   node.num_workers = atoi (getAttributeValue ("num_workers").c_str ());
+00042 
+00043   while (true) {
+00044     
+00045     /* TAG: <runner> | </node> */
+00046     std :: string name = getNextNode ();
+00047     assert (name == "runner" || name == "node");    
+00048     if (name == "runner") {
+00049       /* TAG: </node> */
+00050       node.id_run.push_back (atoi (getNextNode ().c_str ()));
+00051       /* TAG: </runner> */
+00052       assert (getNextNode () == "runner");
+00053     }
+00054     else {      
+00055       /* TAG: </node> */
+00056       the_schema.push_back (node); 
+00057       break;
+00058     }
+00059   }
+00060 }
+00061 
+00062 static void loadGroup () {
+00063 
+00064   std :: string name;
+00065   
+00066   /* ATT: scheduler*/
+00067   int rk_sched = getRankFromName (getAttributeValue ("scheduler"));
+00068   
+00069   while (true) {
+00070 
+00071     /* TAG: <node> | </group> */
+00072     name = getNextNode ();
+00073     assert (name == "node" || name == "group");    
+00074     if (name == "node")
+00075       /* TAG: <node> */
+00076       loadNode (rk_sched);
+00077     else
+00078       /* TAG: </group> */
+00079       break;
+00080   }
+00081 }
+00082 
+00083 bool isScheduleNode () {
+00084   
+00085   return my_node -> rk == my_node -> rk_sched;
+00086 }
+00087 
+00088 void loadSchema (const char * __filename) {
+00089   
+00090   openXMLDocument (__filename);
+00091   
+00092   std :: string name;
+00093   
+00094   /* TAG: <schema> */
+00095   name = getNextNode ();
+00096   assert (name == "schema");
+00097     
+00098   while (true) {
+00099 
+00100     /* TAG: <group> | </schema> */
+00101     name = getNextNode ();
+00102     assert (name == "group" || name == "schema");    
+00103     if (name == "group")
+00104       /* TAG: <group> */
+00105       loadGroup ();
+00106     else
+00107       /* TAG: </schema> */
+00108       break;    
+00109   }
+00110 
+00111   /* Looking for my node */
+00112   for (unsigned i = 0; i < the_schema.size (); i ++)
+00113     if (the_schema [i].rk == getNodeRank ())
+00114       my_node = & (the_schema [i]);
+00115   
+00116   /* About me */
+00117   char mess [1000];
+00118   
+00119   sprintf (mess, "my rank is %d", my_node -> rk);
+00120   printDebugMessage (mess);
+00121   if (isScheduleNode ())
+00122     printDebugMessage ("I'am a scheduler");  
+00123   for (unsigned i = 0; i < my_node -> id_run.size (); i ++) {
+00124     sprintf (mess, "I manage the runner %d", my_node -> id_run [i]);
+00125     printDebugMessage (mess);
+00126   }
+00127   if (my_node -> num_workers) {
+00128     
+00129     sprintf (mess, "I manage %d worker(s)", my_node -> num_workers);
+00130     printDebugMessage (mess);
+00131   }
+00132           
+00133   closeXMLDocument ();
+00134 }
+00135 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/schema_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/schema_8h-source.html new file mode 100644 index 000000000..f6c05c6a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/schema_8h-source.html @@ -0,0 +1,68 @@ + + +ParadisEO-PEO: schema.h Source File + + + + +
+
+

schema.h

00001 // "schema.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __schema_h
+00010 #define __schema_h
+00011 
+00012 #include <string>
+00013 #include <vector>
+00014 #include <cassert>
+00015 
+00016 #include "../../core/runner.h"
+00017 
+00018 typedef int RANK_ID;
+00019 
+00020 struct Node {
+00021   
+00022   RANK_ID rk; /* Rank */
+00023   std :: string name; /* Host name */
+00024   unsigned num_workers; /* Number of parallel workers */
+00025   int rk_sched; /* rank of the scheduler */
+00026   std :: vector <RUNNER_ID> id_run; /* List of runners */
+00027 };
+00028 
+00029 extern std :: vector <Node> the_schema;
+00030 
+00031 extern Node * my_node;
+00032 
+00033 extern void loadSchema (const char * __filename);
+00034 
+00035 extern RANK_ID getRankOfRunner (RUNNER_ID __key);
+00036 
+00037 extern bool isScheduleNode ();
+00038 
+00039 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/search.idx b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/search.idx new file mode 100644 index 000000000..8a68e80f7 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/search.idx differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/search.php b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/search.php new file mode 100644 index 000000000..90be7458b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/search.php @@ -0,0 +1,382 @@ + + +Search + + + + +
+
    +
  • Main Page
  • +
  • Namespaces
  • +
  • Classes
  • +
  • Files
  • +
  • +
    + + + + +1 document matching your query."; + } + else // $num>1 + { + return "Found $num documents matching your query. Showing best matches first."; + } +} + +function report_matches() +{ + return "Matches: "; +} +function end_form($value) +{ + echo " \n \n
    \n
    \n
  • \n
\n
\n"; +} + +function readInt($file) +{ + $b1 = ord(fgetc($file)); $b2 = ord(fgetc($file)); + $b3 = ord(fgetc($file)); $b4 = ord(fgetc($file)); + return ($b1<<24)|($b2<<16)|($b3<<8)|$b4; +} + +function readString($file) +{ + $result=""; + while (ord($c=fgetc($file))) $result.=$c; + return $result; +} + +function readHeader($file) +{ + $header =fgetc($file); $header.=fgetc($file); + $header.=fgetc($file); $header.=fgetc($file); + return $header; +} + +function computeIndex($word) +{ + // Fast string hashing + //$lword = strtolower($word); + //$l = strlen($lword); + //for ($i=0;$i<$l;$i++) + //{ + // $c = ord($lword{$i}); + // $v = (($v & 0xfc00) ^ ($v << 6) ^ $c) & 0xffff; + //} + //return $v; + + // Simple hashing that allows for substring search + if (strlen($word)<2) return -1; + // high char of the index + $hi = ord($word{0}); + if ($hi==0) return -1; + // low char of the index + $lo = ord($word{1}); + if ($lo==0) return -1; + // return index + return $hi*256+$lo; +} + +function search($file,$word,&$statsList) +{ + $index = computeIndex($word); + if ($index!=-1) // found a valid index + { + fseek($file,$index*4+4); // 4 bytes per entry, skip header + $index = readInt($file); + if ($index) // found words matching the hash key + { + $start=sizeof($statsList); + $count=$start; + fseek($file,$index); + $w = readString($file); + while ($w) + { + $statIdx = readInt($file); + if ($word==substr($w,0,strlen($word))) + { // found word that matches (as substring) + $statsList[$count++]=array( + "word"=>$word, + "match"=>$w, + "index"=>$statIdx, + "full"=>strlen($w)==strlen($word), + "docs"=>array() + ); + } + $w = readString($file); + } + $totalHi=0; + $totalFreqHi=0; + $totalFreqLo=0; + for ($count=$start;$count $idx, + "freq" => $freq>>1, + "rank" => 0.0, + "hi" => $freq&1 + ); + if ($freq&1) // word occurs in high priority doc + { + $totalHi++; + $totalFreqHi+=$freq*$multiplier; + } + else // word occurs in low priority doc + { + $totalFreqLo+=$freq*$multiplier; + } + } + // read name and url info for the doc + for ($i=0;$i<$numDocs;$i++) + { + fseek($file,$docInfo[$i]["idx"]); + $docInfo[$i]["name"]=readString($file); + $docInfo[$i]["url"]=readString($file); + } + $statInfo["docs"]=$docInfo; + } + $totalFreq=($totalHi+1)*$totalFreqLo + $totalFreqHi; + for ($count=$start;$count$key, + "name"=>$di["name"], + "rank"=>$rank + ); + } + $docs[$key]["words"][] = array( + "word"=>$wordInfo["word"], + "match"=>$wordInfo["match"], + "freq"=>$di["freq"] + ); + } + } + return $docs; +} + +function filter_results($docs,&$requiredWords,&$forbiddenWords) +{ + $filteredDocs=array(); + while (list ($key, $val) = each ($docs)) + { + $words = &$docs[$key]["words"]; + $copy=1; // copy entry by default + if (sizeof($requiredWords)>0) + { + foreach ($requiredWords as $reqWord) + { + $found=0; + foreach ($words as $wordInfo) + { + $found = $wordInfo["word"]==$reqWord; + if ($found) break; + } + if (!$found) + { + $copy=0; // document contains none of the required words + break; + } + } + } + if (sizeof($forbiddenWords)>0) + { + foreach ($words as $wordInfo) + { + if (in_array($wordInfo["word"],$forbiddenWords)) + { + $copy=0; // document contains a forbidden word + break; + } + } + } + if ($copy) $filteredDocs[$key]=$docs[$key]; + } + return $filteredDocs; +} + +function compare_rank($a,$b) +{ + if ($a["rank"] == $b["rank"]) + { + return 0; + } + return ($a["rank"]>$b["rank"]) ? -1 : 1; +} + +function sort_results($docs,&$sorted) +{ + $sorted = $docs; + usort($sorted,"compare_rank"); + return $sorted; +} + +function report_results(&$docs) +{ + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $numDocs = sizeof($docs); + if ($numDocs==0) + { + echo " \n"; + echo " \n"; + echo " \n"; + } + else + { + echo " \n"; + echo " \n"; + echo " \n"; + $num=1; + foreach ($docs as $doc) + { + echo " \n"; + echo " "; + echo "\n"; + echo " \n"; + echo " \n"; + echo " \n"; + $num++; + } + } + echo "

".search_results()."

".matches_text(0)."
".matches_text($numDocs); + echo "\n"; + echo "
$num.".$doc["name"]."
".report_matches()." "; + foreach ($doc["words"] as $wordInfo) + { + $word = $wordInfo["word"]; + $matchRight = substr($wordInfo["match"],strlen($word)); + echo "$word$matchRight(".$wordInfo["freq"].") "; + } + echo "
\n"; +} + +function main() +{ + if(strcmp('4.1.0', phpversion()) > 0) + { + die("Error: PHP version 4.1.0 or above required!"); + } + if (!($file=fopen("search.idx","rb"))) + { + die("Error: Search index file could NOT be opened!"); + } + if (readHeader($file)!="DOXS") + { + die("Error: Header of index file is invalid!"); + } + $query=""; + if (array_key_exists("query", $_GET)) + { + $query=$_GET["query"]; + } + end_form($query); + echo " \n
\n"; + $results = array(); + $requiredWords = array(); + $forbiddenWords = array(); + $foundWords = array(); + $word=strtok($query," "); + while ($word) // for each word in the search query + { + if (($word{0}=='+')) { $word=substr($word,1); $requiredWords[]=$word; } + if (($word{0}=='-')) { $word=substr($word,1); $forbiddenWords[]=$word; } + if (!in_array($word,$foundWords)) + { + $foundWords[]=$word; + search($file,strtolower($word),$results); + } + $word=strtok(" "); + } + $docs = array(); + combine_results($results,$docs); + // filter out documents with forbidden word or that do not contain + // required words + $filteredDocs = filter_results($docs,$requiredWords,$forbiddenWords); + // sort the results based on rank + $sorted = array(); + sort_results($filteredDocs,$sorted); + // report results to the user + report_results($sorted); + echo "
\n"; + fclose($file); +} + +main(); + + +?> +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/send_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/send_8cpp-source.html new file mode 100644 index 000000000..8340a438d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/send_8cpp-source.html @@ -0,0 +1,145 @@ + + +ParadisEO-PEO: send.cpp Source File + + + + +
+
+

send.cpp

00001 // "send.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <mpi.h>
+00010 #include <semaphore.h>
+00011 #include <queue>
+00012 
+00013 #include "tags.h"
+00014 #include "comm.h"
+00015 #include "worker.h"
+00016 #include "scheduler.h"
+00017 #include "mess.h"
+00018 #include "node.h"
+00019 #include "../../core/cooperative.h"
+00020 #include "../../core/peo_debug.h"
+00021 
+00022 #define TO_ALL -1
+00023 
+00024 typedef struct {
+00025 
+00026   Communicable * comm;
+00027   int to;
+00028   int tag;
+00029 
+00030 } SEND_REQUEST;
+00031         
+00032 static std :: queue <SEND_REQUEST> mess;
+00033 
+00034 static sem_t sem_send;
+00035 
+00036 void initSending () {
+00037 
+00038   sem_init (& sem_send, 0, 1);
+00039 }
+00040 
+00041 void send (Communicable * __comm, int __to, int __tag) {
+00042 
+00043   SEND_REQUEST req;  
+00044   req.comm = __comm;
+00045   req.to = __to;
+00046   req.tag = __tag;
+00047 
+00048   sem_wait (& sem_send);
+00049   mess.push (req);
+00050   sem_post (& sem_send);
+00051   wakeUpCommunicator ();
+00052 }
+00053 
+00054 void sendToAll (Communicable * __comm, int __tag) {
+00055   
+00056   send (__comm, TO_ALL, __tag);
+00057 }
+00058 
+00059 void sendMessages () {
+00060 
+00061   sem_wait (& sem_send);
+00062 
+00063   while (! mess.empty ()) {
+00064     
+00065     SEND_REQUEST req = mess.front ();
+00066     /*
+00067     char b [1000];
+00068     sprintf (b, "traitement send %d\n", req.tag);
+00069     printDebugMessage (b);
+00070     */
+00071     
+00072     Communicable * comm = req.comm;
+00073 
+00074     initMessage ();
+00075 
+00076     switch (req.tag) {
+00077 
+00078     case RUNNER_STOP_TAG:
+00079       dynamic_cast <Runner *> (comm) -> packTermination ();            
+00080       dynamic_cast <Runner *> (comm) -> notifySendingTermination ();            
+00081       break;
+00082 
+00083     case COOP_TAG:
+00084       dynamic_cast <Cooperative *> (comm) -> pack ();      
+00085       dynamic_cast <Cooperative *> (comm) -> notifySending ();      
+00086       break;
+00087           
+00088     case SCHED_REQUEST_TAG:
+00089       dynamic_cast <Service *> (comm) -> packResourceRequest ();
+00090       dynamic_cast <Service *> (comm) -> notifySendingResourceRequest ();            
+00091       break;
+00092 
+00093     case TASK_RESULT_TAG:
+00094       dynamic_cast <Worker *> (comm) -> packResult ();
+00095       dynamic_cast <Worker *> (comm) -> notifySendingResult ();
+00096       break;
+00097 
+00098     case TASK_DONE_TAG:
+00099       dynamic_cast <Worker *> (comm) -> packTaskDone ();
+00100       dynamic_cast <Worker *> (comm) -> notifySendingTaskDone ();
+00101       break;
+00102       
+00103     default :
+00104       break;
+00105 
+00106     };
+00107     
+00108     if (req.to == TO_ALL)
+00109       sendMessageToAll (req.tag);
+00110     else
+00111       sendMessage (req.to, req.tag);
+00112     mess.pop ();
+00113   }
+00114 
+00115   sem_post (& sem_send);  
+00116 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/send_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/send_8h-source.html new file mode 100644 index 000000000..7fe9eaec4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/send_8h-source.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO: send.h Source File + + + + +
+
+

send.h

00001 // "send.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __send_h
+00010 #define __send_h
+00011 
+00012 #include "../../core/communicable.h"
+00013 
+00014 extern void initSending ();
+00015 
+00016 extern void send (Communicable * __comm, int __to, int __tag);
+00017 
+00018 extern void sendToAll (Communicable * __comm, int __tag);
+00019 
+00020 extern void sendMessages ();
+00021 
+00022 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/service_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/service_8h-source.html new file mode 100644 index 000000000..915c38b4a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/service_8h-source.html @@ -0,0 +1,79 @@ + + +ParadisEO-PEO: service.h Source File + + + + +
+
+

service.h

00001 // "service.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __service_h
+00010 #define __service_h
+00011 
+00012 #include "communicable.h"
+00013 #include "thread.h"
+00014 
+00015 typedef unsigned SERVICE_ID;
+00016 
+00017 class Service : public Communicable {
+00018 
+00019 public :
+00020 
+00021   void setOwner (Thread & __owner);
+00022   
+00023   Thread * getOwner (); 
+00024 
+00025   void requestResourceRequest (unsigned __how_many = 1);
+00026   void packResourceRequest ();
+00027 
+00028   virtual void packData ();
+00029   virtual void unpackData ();
+00030 
+00031   virtual void execute ();
+00032   
+00033   virtual void packResult ();
+00034   virtual void unpackResult ();
+00035 
+00036   virtual void notifySendingData ();
+00037   virtual void notifySendingResourceRequest ();
+00038   virtual void notifySendingAllResourceRequests ();
+00039 
+00040 private :
+00041 
+00042   Thread * owner; /* Owner thread (i.e. 'uses' that service) */ 
+00043 
+00044   unsigned num_sent_rr; /* Number of RR not really sent (i.e. still in the sending queue)*/
+00045 
+00046 };
+00047 
+00048 extern Service * getService (SERVICE_ID __key); 
+00049 
+00050 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structNode-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structNode-members.html new file mode 100644 index 000000000..607b10646 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structNode-members.html @@ -0,0 +1,42 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

Node Member List

This is the complete list of members for Node, including all inherited members.

+ + + + + +
id_runNode
nameNode
num_workersNode
rkNode
rk_schedNode


Generated on Thu Jul 5 13:40:47 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structNode.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structNode.html new file mode 100644 index 000000000..feca8d02e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structNode.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: Node Struct Reference + + + + +
+
+ +

Node Struct Reference

List of all members. + + + + + + + + + + + + +

Public Attributes

+RANK_ID rk
+std::string name
+unsigned num_workers
+int rk_sched
+std::vector< RUNNER_ID > id_run
+

Detailed Description

+ +

+ +

+Definition at line 20 of file schema.h.


The documentation for this struct was generated from the following file: +
Generated on Thu Jul 5 13:40:47 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structSEND__REQUEST-members.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structSEND__REQUEST-members.html new file mode 100644 index 000000000..f46bc26fc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structSEND__REQUEST-members.html @@ -0,0 +1,40 @@ + + +ParadisEO-PEO: Member List + + + + +
+
+ +

SEND_REQUEST Member List

This is the complete list of members for SEND_REQUEST, including all inherited members.

+ + + +
commSEND_REQUEST
tagSEND_REQUEST
toSEND_REQUEST


Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structSEND__REQUEST.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structSEND__REQUEST.html new file mode 100644 index 000000000..acdd127c2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/structSEND__REQUEST.html @@ -0,0 +1,56 @@ + + +ParadisEO-PEO: SEND_REQUEST Struct Reference + + + + +
+
+ +

SEND_REQUEST Struct Reference

List of all members. + + + + + + + + +

Public Attributes

+Communicablecomm
+int to
+int tag
+

Detailed Description

+ +

+ +

+Definition at line 24 of file send.cpp.


The documentation for this struct was generated from the following file: +
Generated on Thu Jul 5 13:43:31 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_b.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_b.gif new file mode 100644 index 000000000..0d623483f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_b.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_l.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_l.gif new file mode 100644 index 000000000..9b1e6337c Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_l.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_r.gif b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_r.gif new file mode 100644 index 000000000..ce9dd9f53 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tab_r.gif differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tabs.css b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tabs.css new file mode 100644 index 000000000..a61552a67 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tags_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tags_8h-source.html new file mode 100644 index 000000000..cdc71054d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tags_8h-source.html @@ -0,0 +1,53 @@ + + +ParadisEO-PEO: tags.h Source File + + + + +
+
+

tags.h

00001 // "tags.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __tags_h
+00010 #define __tags_h
+00011 
+00012 #define RUNNER_STOP_TAG 13
+00013 
+00014 #define COOP_TAG 14
+00015 
+00016 #define SCHED_REQUEST_TAG 16
+00017 
+00018 #define SCHED_RESULT_TAG 17
+00019 #define TASK_DATA_TAG 18
+00020 
+00021 #define TASK_RESULT_TAG 19
+00022 #define TASK_DONE_TAG 20
+00023 
+00024 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/thread_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/thread_8cpp-source.html new file mode 100644 index 000000000..1454980b0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/thread_8cpp-source.html @@ -0,0 +1,110 @@ + + +ParadisEO-PEO: thread.cpp Source File + + + + +
+
+

thread.cpp

00001 // "thread.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <map>
+00010 
+00011 #include "thread.h"
+00012 
+00013 static std :: vector <Thread *> threads;
+00014 
+00015 unsigned num_act = 0;
+00016 
+00017 Thread :: Thread () {
+00018         
+00019   threads.push_back (this);
+00020   act = false;
+00021 }
+00022 
+00023 Thread :: ~ Thread () {
+00024 
+00025   /* Nothing ! */
+00026 }
+00027 
+00028 extern int getNodeRank ();
+00029 
+00030 void Thread :: setActive () {
+00031 
+00032   if (! act ) {
+00033 
+00034     act = true;
+00035     num_act ++;
+00036     //    if (getNodeRank () == 1)      
+00037     //   printf ("On passe a %d\n", num_act);
+00038   }
+00039 }
+00040 
+00041 void Thread :: setPassive () {
+00042 
+00043   if (act) {
+00044 
+00045    act = false;
+00046     num_act --;
+00047     //    if (getNodeRank () == 1)      
+00048     //  printf ("On passe a %d\n", num_act);
+00049 
+00050   } 
+00051 }
+00052 
+00053 bool atLeastOneActiveThread () {
+00054 
+00055   return num_act;
+00056 }
+00057 
+00058 unsigned numberOfActiveThreads () {
+00059 
+00060   return num_act;
+00061 }
+00062 
+00063 static void * launch (void * __arg) {
+00064 
+00065   Thread * thr = (Thread *) __arg;  
+00066   thr -> start ();
+00067   return 0;
+00068 }
+00069 
+00070 void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads) {
+00071 
+00072   pthread_t * ll_thr = new pthread_t;
+00073   __ll_threads.push_back (ll_thr);
+00074   pthread_create (ll_thr, 0, launch, __hl_thread); 
+00075 }
+00076 
+00077 void joinThreads (std :: vector <pthread_t *> & __threads) {
+00078 
+00079   for (unsigned i = 0; i < __threads.size (); i ++)    
+00080     pthread_join (* __threads [i], 0);  
+00081 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/thread_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/thread_8h-source.html new file mode 100644 index 000000000..a21693389 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/thread_8h-source.html @@ -0,0 +1,77 @@ + + +ParadisEO-PEO: thread.h Source File + + + + +
+
+

thread.h

00001 // "thread.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef THREAD_H_
+00010 #define THREAD_H_
+00011 
+00012 #include <vector>
+00013 
+00014 /* A high-level thread */
+00015 
+00016 class Thread {
+00017         
+00018 public:
+00019 
+00020   /* Ctor */
+00021   Thread ();
+00022 
+00023   /* Dtor */
+00024   virtual ~ Thread ();
+00025   
+00026   /* Go ! */
+00027   virtual void start () = 0;
+00028 
+00029   void setActive ();/* It means the current process is going to send messages soon */
+00030   void setPassive ();/* The current process is not going to perform send operations
+00031                         (but it may receive messages) */
+00032 
+00033 private :
+00034   
+00035   bool act;
+00036 };
+00037 
+00038 extern void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads);
+00039 
+00040 extern void joinThreads (std :: vector <pthread_t *> & __ll_threads);
+00041 
+00042 extern bool atLeastOneActiveThread (); /* It returns 'true' iff at least one process is going
+00043                                       to send messages */
+00044   
+00045 extern unsigned numberOfActiveThreads ();
+00046 
+00047 
+00048 #endif /*THREAD_H_*/
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/topology_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/topology_8cpp-source.html new file mode 100644 index 000000000..678227cac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/topology_8cpp-source.html @@ -0,0 +1,49 @@ + + +ParadisEO-PEO: topology.cpp Source File + + + + +
+
+

topology.cpp

00001 // "topo.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, September 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include "topology.h"
+00010 
+00011 Topology :: ~ Topology () {
+00012   
+00013   /* Nothing ! */
+00014 }
+00015 
+00016 void Topology :: add (Cooperative & __mig) {
+00017   
+00018   mig.push_back (& __mig) ;
+00019 } 
+00020 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/topology_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/topology_8h-source.html new file mode 100644 index 000000000..37c5b021d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/topology_8h-source.html @@ -0,0 +1,62 @@ + + +ParadisEO-PEO: topology.h Source File + + + + +
+
+

topology.h

00001 // "topology.h"
+00002 
+00003 // (c) OPAC Team, LIFL, September 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __topology_h
+00010 #define __topology_h
+00011 
+00012 #include <vector>
+00013 
+00014 #include "cooperative.h"
+00015 
+00016 class Topology {
+00017 
+00018 public:
+00019 
+00020         virtual ~Topology ();
+00021 
+00022         void add (Cooperative & __mig); 
+00023 
+00024         virtual void setNeighbors (Cooperative * __mig,
+00025                                 std :: vector <Cooperative *> & __from,
+00026                                 std :: vector <Cooperative *> & __to) = 0;
+00027 
+00028 protected:
+00029 
+00030         std :: vector <Cooperative *> mig ;  
+00031 };
+00032 
+00033 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tree.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tree.html new file mode 100644 index 000000000..8e7d5e828 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/tree.html @@ -0,0 +1,242 @@ + + + + + + + TreeView + + + + +
+

ParadisEO-PEO

+
+

o*The ParadisEO-PEO Framework

+

o+Class List

+ +

o+Class Hierarchy

+ +

o*Class Members

+

o+Namespace List

+
+

|\*peo

+
+

o*Namespace Members

+

\+File List

+
+

 o*comm.cpp

+

 o*comm.h

+

 o*communicable.cpp

+

 o*communicable.h

+

 o*coop.cpp

+

 o*cooperative.h

+

 o*eoPop_comm.h

+

 o*eoVector_comm.h

+

 o*mess.cpp

+

 o*mess.h

+

 o*messaging.h

+

 o*node.cpp

+

 o*node.h

+

 o*paradiseo.h

+

 o*param.cpp

+

 o*param.h

+

 o*peo_debug.cpp

+

 o*peo_debug.h

+

 o*peo_fin.cpp

+

 o*peo_fin.h

+

 o*peo_init.cpp

+

 o*peo_init.h

+

 o*peo_param.cpp

+

 o*peo_param.h

+

 o*peo_run.cpp

+

 o*peo_run.h

+

 o*peoAggEvalFunc.h

+

 o*peoAsyncIslandMig.h

+

 o*peoEA.h

+

 o*peoNoAggEvalFunc.h

+

 o*peoParaPopEval.h

+

 o*peoParaSGATransform.h

+

 o*peoPopEval.h

+

 o*peoSeqPopEval.h

+

 o*peoSeqTransform.h

+

 o*peoSyncIslandMig.h

+

 o*peoSyncMultiStart.h

+

 o*peoTransform.h

+

 o*reac_thread.cpp

+

 o*reac_thread.h

+

 o*recv.cpp

+

 o*recv.h

+

 o*ring_topo.cpp

+

 o*ring_topo.h

+

 o*rmc.cpp

+

 o*rmc.h

+

 o*core/runner.cpp

+

 o*rmc/mpi/runner.cpp

+

 o*runner.h

+

 o*scheduler.cpp

+

 o*scheduler.h

+

 o*schema.cpp

+

 o*schema.h

+

 o*send.cpp

+

 o*send.h

+

 o*core/service.cpp

+

 o*rmc/mpi/service.cpp

+

 o*service.h

+

 o*tags.h

+

 o*thread.cpp

+

 o*thread.h

+

 o*topology.cpp

+

 o*topology.h

+

 o*worker.cpp

+

 o*worker.h

+

 o*xml_parser.cpp

+

 \*xml_parser.h

+
+
+
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/worker_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/worker_8cpp-source.html new file mode 100644 index 000000000..d148530b7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/worker_8cpp-source.html @@ -0,0 +1,122 @@ + + +ParadisEO-PEO: worker.cpp Source File + + + + +
+
+

worker.cpp

00001 // "worker.cpp"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <vector>
+00010 
+00011 #include "tags.h"
+00012 #include "send.h"
+00013 #include "node.h"
+00014 #include "schema.h"
+00015 #include "worker.h"
+00016 #include "mess.h"
+00017 #include "../../core/peo_debug.h"
+00018 
+00019 static std :: vector <Worker *> key_to_worker (1); /* Vector of registered workers */
+00020 
+00021 Worker * getWorker (WORKER_ID __key) {
+00022 
+00023   return key_to_worker [__key];  
+00024 }
+00025 
+00026 Worker :: Worker () {
+00027   
+00028   toto = false;
+00029   id = key_to_worker.size ();
+00030   key_to_worker.push_back (this);
+00031 }
+00032 
+00033 void Worker :: packResult () {
+00034   
+00035   pack (serv_id);
+00036   serv -> packResult ();    
+00037 }
+00038 
+00039 void Worker :: unpackData () {
+00040 
+00041   printDebugMessage ("unpacking the ID. of the service.");
+00042   unpack (serv_id);
+00043   serv = getService (serv_id); 
+00044   printDebugMessage ("found the service.");
+00045   serv -> unpackData (); 
+00046   printDebugMessage ("unpacking the data.");
+00047   setActive ();
+00048 }
+00049 
+00050 void Worker :: packTaskDone () {
+00051 
+00052   pack (getNodeRank ());
+00053   pack (id);
+00054 }
+00055 
+00056 void Worker :: notifySendingResult () {
+00057 
+00058   /* Notifying the scheduler of the termination */
+00059   toto = true;
+00060   wakeUp ();
+00061 }
+00062 
+00063 void Worker :: notifySendingTaskDone () {
+00064 
+00065   setPassive ();
+00066 }
+00067   
+00068 void Worker :: setSource (int __rank) {
+00069 
+00070   src = __rank;
+00071 }
+00072 
+00073 void Worker :: start () {
+00074 
+00075   while (true) {
+00076     
+00077     sleep (); 
+00078 
+00079     if (! atLeastOneActiveRunner ())
+00080       break;
+00081     
+00082     if (toto) {
+00083       send (this, my_node -> rk_sched, TASK_DONE_TAG);  
+00084       toto = false;
+00085     }
+00086     else {
+00087 
+00088       printDebugMessage ("executing the task.");
+00089       serv -> execute ();   
+00090       send (this, src, TASK_RESULT_TAG);    
+00091     }
+00092   }
+00093 }
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/worker_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/worker_8h-source.html new file mode 100644 index 000000000..de64d53ea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/worker_8h-source.html @@ -0,0 +1,79 @@ + + +ParadisEO-PEO: worker.h Source File + + + + +
+
+

worker.h

00001 // "worker.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __worker_h
+00010 #define __worker_h
+00011 
+00012 #include "../../core/communicable.h"
+00013 #include "../../core/reac_thread.h"
+00014 #include "../../core/service.h"
+00015 
+00016 typedef unsigned WORKER_ID; 
+00017 
+00018 class Worker : public Communicable, public ReactiveThread {
+00019 
+00020 public : 
+00021 
+00022   Worker ();
+00023 
+00024   void start ();
+00025 
+00026   void packResult ();
+00027 
+00028   void unpackData ();
+00029 
+00030   void packTaskDone (); 
+00031 
+00032   void notifySendingResult ();
+00033 
+00034   void notifySendingTaskDone ();
+00035   
+00036   void setSource (int __rank);
+00037   
+00038 private :
+00039 
+00040   WORKER_ID id;
+00041   SERVICE_ID serv_id;
+00042   Service * serv;
+00043   int src;
+00044 
+00045   bool toto;
+00046 };
+00047 
+00048 extern Worker * getWorker (WORKER_ID __key);
+00049 
+00050 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/xml__parser_8cpp-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/xml__parser_8cpp-source.html new file mode 100644 index 000000000..8cf975cee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/xml__parser_8cpp-source.html @@ -0,0 +1,104 @@ + + +ParadisEO-PEO: xml_parser.cpp Source File + + + + +
+
+

xml_parser.cpp

00001 // "xml_parser.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #include <libxml/xmlreader.h>
+00010 
+00011 #include "xml_parser.h"
+00012 
+00013 static xmlTextReaderPtr reader;
+00014 
+00015 void openXMLDocument (const char * __filename) {
+00016   
+00017   reader = xmlNewTextReaderFilename (__filename);
+00018   
+00019   if (! reader) {
+00020     
+00021     fprintf (stderr, "unable to open '%s'.\n", __filename);
+00022     exit (1);
+00023   }
+00024 }
+00025 
+00026 void closeXMLDocument () {
+00027 
+00028   xmlFreeTextReader (reader);
+00029 }
+00030 
+00031 std :: string getAttributeValue (const std :: string & __attr) {
+00032   
+00033   xmlChar * value = xmlTextReaderGetAttribute (reader, (const xmlChar *) __attr.c_str ());
+00034   
+00035   std :: string str ((const char *) value);
+00036   
+00037   xmlFree (value);
+00038   
+00039   return str;
+00040 }
+00041 
+00042 static bool isSep (const xmlChar * __text) {
+00043   
+00044   for (unsigned i = 0; i < strlen ((char *) __text); i ++)
+00045     if (__text [i] != ' ' && __text [i] != '\t' && __text [i] != '\n')
+00046       return false;
+00047   return true;
+00048 }
+00049 
+00050 std :: string getNextNode () {
+00051   
+00052   xmlChar * name, * value;
+00053 
+00054   do {
+00055     xmlTextReaderRead (reader);
+00056     name = xmlTextReaderName (reader);
+00057     value = xmlTextReaderValue (reader);
+00058     //    printf ("value = %s\n", value);
+00059   } while (! strcmp ((char *) name, "#text") && isSep (value));
+00060 
+00061   std :: string str;
+00062 
+00063   if (strcmp ((char *) name, "#text"))
+00064     str.assign ((char *) name);
+00065   else
+00066     str.assign ((char *) value);
+00067   
+00068   if (name)
+00069     xmlFree (name);
+00070   if (value)
+00071     xmlFree (value);
+00072     
+00073   return str;
+00074 }
+00075 
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/xml__parser_8h-source.html b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/xml__parser_8h-source.html new file mode 100644 index 000000000..cdaf4e109 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/html/xml__parser_8h-source.html @@ -0,0 +1,51 @@ + + +ParadisEO-PEO: xml_parser.h Source File + + + + +
+
+

xml_parser.h

00001 // "xml_parser.h"
+00002 
+00003 // (c) OPAC Team, LIFL, August 2005
+00004 
+00005 /* 
+00006    Contact: paradiseo-help@lists.gforge.inria.fr
+00007 */
+00008 
+00009 #ifndef __xml_parser_h
+00010 #define __xml_parser_h
+00011 
+00012 #include <string>
+00013 
+00014 extern void openXMLDocument (const char * __filename);
+00015 
+00016 extern void closeXMLDocument ();
+00017 
+00018 extern std :: string getAttributeValue (const std :: string & __attr);
+00019 
+00020 extern std :: string getNextNode ();
+00021 
+00022 #endif
+

Generated on Thu Jul 5 13:43:30 2007 for ParadisEO-PEO by  + +doxygen 1.4.7
+ + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/FreeSans.ttf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/FreeSans.ttf new file mode 100644 index 000000000..b550b90ba Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/FreeSans.ttf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/Makefile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/Makefile new file mode 100644 index 000000000..a67f1b7f6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/Makefile @@ -0,0 +1,17 @@ +all: clean refman.pdf + +refman.pdf: refman.tex + pdflatex refman.tex + makeindex refman.idx + pdflatex refman.tex + latex_count=5 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/annotated.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/annotated.tex new file mode 100644 index 000000000..765489ef1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/annotated.tex @@ -0,0 +1,26 @@ +\section{Paradis\-EO-PEO Class List} +Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\hyperlink{classCommunicable}{Communicable} }{\pageref{classCommunicable}}{} +\item\contentsline{section}{\hyperlink{classCommunicator}{Communicator} }{\pageref{classCommunicator}}{} +\item\contentsline{section}{\hyperlink{classCooperative}{Cooperative} }{\pageref{classCooperative}}{} +\item\contentsline{section}{\hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func$<$ EOT $>$} (The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided )}{\pageref{classpeoAggEvalFunc}}{} +\item\contentsline{section}{\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig$<$ EOT $>$} (The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e )}{\pageref{classpeoAsyncIslandMig}}{} +\item\contentsline{section}{\hyperlink{classpeoEA}{peo\-EA$<$ EOT $>$} (The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation )}{\pageref{classpeoEA}}{} +\item\contentsline{section}{\hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$} (The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual )}{\pageref{classpeoNoAggEvalFunc}}{} +\item\contentsline{section}{\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval$<$ EOT $>$} (The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor )}{\pageref{classpeoParaPopEval}}{} +\item\contentsline{section}{\hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform$<$ EOT $>$} }{\pageref{classpeoParaSGATransform}}{} +\item\contentsline{section}{\hyperlink{classpeoPopEval}{peo\-Pop\-Eval$<$ EOT $>$} (The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors )}{\pageref{classpeoPopEval}}{} +\item\contentsline{section}{\hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval$<$ EOT $>$} (The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor )}{\pageref{classpeoSeqPopEval}}{} +\item\contentsline{section}{\hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform$<$ EOT $>$} (The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using \doxyref{EO} derived transform operators along with the Paradis\-EO evolutionary algorithms )}{\pageref{classpeoSeqTransform}}{} +\item\contentsline{section}{\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig$<$ EOT $>$} (The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e )}{\pageref{classpeoSyncIslandMig}}{} +\item\contentsline{section}{\hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start$<$ EOT $>$} (The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population )}{\pageref{classpeoSyncMultiStart}}{} +\item\contentsline{section}{\hyperlink{classpeoTransform}{peo\-Transform$<$ EOT $>$} (The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes )}{\pageref{classpeoTransform}}{} +\item\contentsline{section}{\hyperlink{classReactiveThread}{Reactive\-Thread} }{\pageref{classReactiveThread}}{} +\item\contentsline{section}{\hyperlink{classRingTopology}{Ring\-Topology} }{\pageref{classRingTopology}}{} +\item\contentsline{section}{\hyperlink{classRunner}{Runner} }{\pageref{classRunner}}{} +\item\contentsline{section}{\hyperlink{structSEND__REQUEST}{SEND\_\-REQUEST} }{\pageref{structSEND__REQUEST}}{} +\item\contentsline{section}{\hyperlink{classService}{Service} }{\pageref{classService}}{} +\item\contentsline{section}{\hyperlink{classThread}{Thread} }{\pageref{classThread}}{} +\item\contentsline{section}{\hyperlink{classTopology}{Topology} }{\pageref{classTopology}}{} +\item\contentsline{section}{\hyperlink{classWorker}{Worker} }{\pageref{classWorker}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicable.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicable.eps new file mode 100644 index 000000000..a4f4be521 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicable.eps @@ -0,0 +1,269 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 57.1429 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 8.75 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 7 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Communicable) cw +(Cooperative) cw +(Runner) cw +(Service) cw +(Worker) cw +(peoAsyncIslandMig< EOT >) cw +(peoSyncIslandMig< EOT >) cw +(peoEA< EOT >) cw +(peoPopEval< EOT >) cw +(peoSyncMultiStart< EOT >) cw +(peoTransform< EOT >) cw +(peoParaPopEval< EOT >) cw +(peoSeqPopEval< EOT >) cw +(peoParaSGATransform< EOT >) cw +(peoSeqTransform< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Communicable) 3 3 box + (Cooperative) 0.5 2 box + (Runner) 2 2 box + (Service) 4 2 box + (Worker) 5 2 box + (peoAsyncIslandMig< EOT >) 0 1 box + (peoSyncIslandMig< EOT >) 1 1 box + (peoEA< EOT >) 2 1 box + (peoPopEval< EOT >) 3 1 box + (peoSyncMultiStart< EOT >) 4 1 box + (peoTransform< EOT >) 5 1 box + (peoParaPopEval< EOT >) 2.5 0 box + (peoSeqPopEval< EOT >) 3.5 0 box + (peoParaSGATransform< EOT >) 4.5 0 box + (peoSeqTransform< EOT >) 5.5 0 box + +% ----- relations ----- + +solid +1 3 2.25 out +solid +0.5 5 3 conn +solid +0 0.5 2.75 in +solid +1 0.5 1.25 out +solid +0 1 2 conn +solid +0 2 2.75 in +solid +1 2 1.25 out +solid +0 4 2.75 in +solid +1 4 1.25 out +solid +3 5 2 conn +solid +0 5 2.75 in +solid +0 0 1.75 in +solid +0 1 1.75 in +solid +0 2 1.75 in +solid +0 3 1.75 in +solid +1 3 0.25 out +solid +2.5 3.5 1 conn +solid +0 4 1.75 in +solid +0 5 1.75 in +solid +1 5 0.25 out +solid +4.5 5.5 1 conn +solid +0 2.5 0.75 in +solid +0 3.5 0.75 in +solid +0 4.5 0.75 in +solid +0 5.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicable.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicable.tex new file mode 100644 index 000000000..3d4ee6164 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicable.tex @@ -0,0 +1,87 @@ +\hypertarget{classCommunicable}{ +\section{Communicable Class Reference} +\label{classCommunicable}\index{Communicable@{Communicable}} +} +Inheritance diagram for Communicable::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=1.6cm]{classCommunicable} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCommunicable_8ae1827ecf7569b3db1ed386c7d8ad78}{ +\hyperlink{classCommunicable_8ae1827ecf7569b3db1ed386c7d8ad78}{Communicable} ()} +\label{classCommunicable_8ae1827ecf7569b3db1ed386c7d8ad78} + +\item +\hypertarget{classCommunicable_2280b0dfa0d3a515fccf62c2a9fd5f41}{ +virtual \hyperlink{classCommunicable_2280b0dfa0d3a515fccf62c2a9fd5f41}{$\sim$Communicable} ()} +\label{classCommunicable_2280b0dfa0d3a515fccf62c2a9fd5f41} + +\item +\hypertarget{classCommunicable_db4307b69b9ccacff55fdbf84b8f50e4}{ +COMM\_\-ID \hyperlink{classCommunicable_db4307b69b9ccacff55fdbf84b8f50e4}{get\-Key} ()} +\label{classCommunicable_db4307b69b9ccacff55fdbf84b8f50e4} + +\item +\hypertarget{classCommunicable_e1f8bd1ee810fd73d44315c95998d19d}{ +void \hyperlink{classCommunicable_e1f8bd1ee810fd73d44315c95998d19d}{lock} ()} +\label{classCommunicable_e1f8bd1ee810fd73d44315c95998d19d} + +\item +\hypertarget{classCommunicable_caa814847192e71f434fbf9479ede862}{ +void \hyperlink{classCommunicable_caa814847192e71f434fbf9479ede862}{unlock} ()} +\label{classCommunicable_caa814847192e71f434fbf9479ede862} + +\item +\hypertarget{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b}{ +void \hyperlink{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b}{stop} ()} +\label{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b} + +\item +\hypertarget{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a}{ +void \hyperlink{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a}{resume} ()} +\label{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a} + +\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\hypertarget{classCommunicable_605b0efeffe81326f216c9903f5bbf4c}{ +COMM\_\-ID \hyperlink{classCommunicable_605b0efeffe81326f216c9903f5bbf4c}{key}} +\label{classCommunicable_605b0efeffe81326f216c9903f5bbf4c} + +\item +\hypertarget{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d}{ +sem\_\-t \hyperlink{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d}{sem\_\-lock}} +\label{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d} + +\item +\hypertarget{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1}{ +sem\_\-t \hyperlink{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1}{sem\_\-stop}} +\label{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1} + +\end{CompactItemize} +\subsection*{Static Protected Attributes} +\begin{CompactItemize} +\item +\hypertarget{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{ +static unsigned \hyperlink{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{num\_\-comm} = 0} +\label{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 16 of file communicable.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +communicable.h\item +communicable.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicator.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicator.eps new file mode 100644 index 000000000..3d7cc0668 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicator.eps @@ -0,0 +1,203 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 550.459 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 0.908333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Communicator) cw +(ReactiveThread) cw +(Thread) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Communicator) 0 0 box + (ReactiveThread) 0 1 box + (Thread) 0 2 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicator.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicator.tex new file mode 100644 index 000000000..a8d08b499 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCommunicator.tex @@ -0,0 +1,36 @@ +\hypertarget{classCommunicator}{ +\section{Communicator Class Reference} +\label{classCommunicator}\index{Communicator@{Communicator}} +} +Inheritance diagram for Communicator::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classCommunicator} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCommunicator_7c9dce4ea92bd04d01d53f80c0ef08ee}{ +\hyperlink{classCommunicator_7c9dce4ea92bd04d01d53f80c0ef08ee}{Communicator} (int $\ast$\_\-\_\-argc, char $\ast$$\ast$$\ast$\_\-\_\-argv)} +\label{classCommunicator_7c9dce4ea92bd04d01d53f80c0ef08ee} + +\item +\hypertarget{classCommunicator_142fae13b16b166519315f248a513c62}{ +void \hyperlink{classCommunicator_142fae13b16b166519315f248a513c62}{start} ()} +\label{classCommunicator_142fae13b16b166519315f248a513c62} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 15 of file comm.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +comm.h\item +comm.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCooperative.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCooperative.eps new file mode 100644 index 000000000..60c6b6b94 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCooperative.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 166.667 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 3 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Cooperative) cw +(Communicable) cw +(peoAsyncIslandMig< EOT >) cw +(peoSyncIslandMig< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Cooperative) 0.5 1 box + (Communicable) 0.5 2 box + (peoAsyncIslandMig< EOT >) 0 0 box + (peoSyncIslandMig< EOT >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCooperative.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCooperative.tex new file mode 100644 index 000000000..43224f537 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classCooperative.tex @@ -0,0 +1,54 @@ +\hypertarget{classCooperative}{ +\section{Cooperative Class Reference} +\label{classCooperative}\index{Cooperative@{Cooperative}} +} +Inheritance diagram for Cooperative::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classCooperative} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classCooperative_4012b4e8329e87d26ee266491e1a883e}{ +\hyperlink{classRunner}{Runner} $\ast$ \hyperlink{classCooperative_4012b4e8329e87d26ee266491e1a883e}{get\-Owner} ()} +\label{classCooperative_4012b4e8329e87d26ee266491e1a883e} + +\item +\hypertarget{classCooperative_fe7b022567174c8305bc78d8c5749b12}{ +void \hyperlink{classCooperative_fe7b022567174c8305bc78d8c5749b12}{set\-Owner} (\hyperlink{classRunner}{Runner} \&\_\-\_\-runner)} +\label{classCooperative_fe7b022567174c8305bc78d8c5749b12} + +\item +\hypertarget{classCooperative_c609f2a1200da7d1ac96005602515fc6}{ +void \hyperlink{classCooperative_c609f2a1200da7d1ac96005602515fc6}{send} (\hyperlink{classCooperative}{Cooperative} $\ast$\_\-\_\-coop)} +\label{classCooperative_c609f2a1200da7d1ac96005602515fc6} + +\item +\hypertarget{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{ +virtual void \hyperlink{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{notify\-Sending} ()} +\label{classCooperative_4439ddeaa1246a2e44c003bfb781739b} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classCooperative_7604f094479d08154ede4996a45bf79e}{ +\hyperlink{classRunner}{Runner} $\ast$ \hyperlink{classCooperative_7604f094479d08154ede4996a45bf79e}{owner}} +\label{classCooperative_7604f094479d08154ede4996a45bf79e} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 17 of file cooperative.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +cooperative.h\item +coop.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classReactiveThread.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classReactiveThread.eps new file mode 100644 index 000000000..9c8a085ba --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classReactiveThread.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 275.229 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.81667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(ReactiveThread) cw +(Thread) cw +(Communicator) cw +(Worker) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (ReactiveThread) 0.5 1 box + (Thread) 0.5 2 box + (Communicator) 0 0 box + (Worker) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classReactiveThread.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classReactiveThread.tex new file mode 100644 index 000000000..c350c6eef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classReactiveThread.tex @@ -0,0 +1,49 @@ +\hypertarget{classReactiveThread}{ +\section{Reactive\-Thread Class Reference} +\label{classReactiveThread}\index{ReactiveThread@{ReactiveThread}} +} +Inheritance diagram for Reactive\-Thread::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classReactiveThread} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classReactiveThread_77381649429941c99a3e3d568113d6cf}{ +\hyperlink{classReactiveThread_77381649429941c99a3e3d568113d6cf}{Reactive\-Thread} ()} +\label{classReactiveThread_77381649429941c99a3e3d568113d6cf} + +\item +\hypertarget{classReactiveThread_8263c2a32d8c99a49a05f1a7717d4262}{ +void \hyperlink{classReactiveThread_8263c2a32d8c99a49a05f1a7717d4262}{sleep} ()} +\label{classReactiveThread_8263c2a32d8c99a49a05f1a7717d4262} + +\item +\hypertarget{classReactiveThread_a724a54575de10f09cc03ab7aa4e59ce}{ +void \hyperlink{classReactiveThread_a724a54575de10f09cc03ab7aa4e59ce}{wake\-Up} ()} +\label{classReactiveThread_a724a54575de10f09cc03ab7aa4e59ce} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classReactiveThread_915e5a42dc8cb1bcf6738d5fe883a4e7}{ +sem\_\-t \hyperlink{classReactiveThread_915e5a42dc8cb1bcf6738d5fe883a4e7}{sem}} +\label{classReactiveThread_915e5a42dc8cb1bcf6738d5fe883a4e7} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 16 of file reac\_\-thread.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +reac\_\-thread.h\item +reac\_\-thread.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRingTopology.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRingTopology.eps new file mode 100644 index 000000000..04c98c56e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRingTopology.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 412.371 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.2125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(RingTopology) cw +(Topology) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (RingTopology) 0 0 box + (Topology) 0 1 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRingTopology.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRingTopology.tex new file mode 100644 index 000000000..379dd1961 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRingTopology.tex @@ -0,0 +1,31 @@ +\hypertarget{classRingTopology}{ +\section{Ring\-Topology Class Reference} +\label{classRingTopology}\index{RingTopology@{RingTopology}} +} +Inheritance diagram for Ring\-Topology::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classRingTopology} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classRingTopology_292a7746993788f96042f2f628cfcbc5}{ +void \hyperlink{classRingTopology_292a7746993788f96042f2f628cfcbc5}{set\-Neighbors} (\hyperlink{classCooperative}{Cooperative} $\ast$\_\-\_\-mig, std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \&\_\-\_\-from, std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \&\_\-\_\-to)} +\label{classRingTopology_292a7746993788f96042f2f628cfcbc5} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 14 of file ring\_\-topo.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +ring\_\-topo.h\item +ring\_\-topo.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRunner.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRunner.eps new file mode 100644 index 000000000..6e1d6846c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRunner.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 280.374 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Runner) cw +(Communicable) cw +(Thread) cw +(peoEA< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Runner) 0.5 1 box + (Communicable) 0 2 box + (Thread) 1 2 box + (peoEA< EOT >) 0.5 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in +solid +1 0.5 0.25 out +solid +0 0.5 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRunner.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRunner.tex new file mode 100644 index 000000000..5fc2e5e12 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classRunner.tex @@ -0,0 +1,80 @@ +\hypertarget{classRunner}{ +\section{Runner Class Reference} +\label{classRunner}\index{Runner@{Runner}} +} +Inheritance diagram for Runner::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classRunner} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classRunner_7acb8258c21da9daa62f9a177a2e5acd}{ +\hyperlink{classRunner_7acb8258c21da9daa62f9a177a2e5acd}{Runner} ()} +\label{classRunner_7acb8258c21da9daa62f9a177a2e5acd} + +\item +\hypertarget{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{ +void \hyperlink{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{start} ()} +\label{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d} + +\item +\hypertarget{classRunner_5bc239db2be753b77369fa9a038769fd}{ +void \hyperlink{classRunner_5bc239db2be753b77369fa9a038769fd}{wait\-Starting} ()} +\label{classRunner_5bc239db2be753b77369fa9a038769fd} + +\item +\hypertarget{classRunner_40adbfb7d6944189b4fff60b02e669ca}{ +bool \hyperlink{classRunner_40adbfb7d6944189b4fff60b02e669ca}{is\-Local} ()} +\label{classRunner_40adbfb7d6944189b4fff60b02e669ca} + +\item +\hypertarget{classRunner_0f133e75c28fb8264549814f80608e68}{ +void \hyperlink{classRunner_0f133e75c28fb8264549814f80608e68}{terminate} ()} +\label{classRunner_0f133e75c28fb8264549814f80608e68} + +\item +\hypertarget{classRunner_5026c74eec184e3a15cb3c0ec4200a57}{ +RUNNER\_\-ID \hyperlink{classRunner_5026c74eec184e3a15cb3c0ec4200a57}{get\-ID} ()} +\label{classRunner_5026c74eec184e3a15cb3c0ec4200a57} + +\item +\hypertarget{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{ +void \hyperlink{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{pack\-Termination} ()} +\label{classRunner_2ad6d199d684d6f34347fc202ffe2fa3} + +\item +\hypertarget{classRunner_3591be473e0fcee1105fb57319b529aa}{ +void \hyperlink{classRunner_3591be473e0fcee1105fb57319b529aa}{notify\-Sending\-Termination} ()} +\label{classRunner_3591be473e0fcee1105fb57319b529aa} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classRunner_4b0827d5df2df632db4ab71dd55e81b2}{ +sem\_\-t \hyperlink{classRunner_4b0827d5df2df632db4ab71dd55e81b2}{sem\_\-start}} +\label{classRunner_4b0827d5df2df632db4ab71dd55e81b2} + +\item +\hypertarget{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{ +unsigned \hyperlink{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{id}} +\label{classRunner_1989c1f8e0b0b54ad2e60a341007e59d} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 19 of file runner.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +runner.h\item +core/runner.cpp\item +rmc/mpi/runner.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classService.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classService.eps new file mode 100644 index 000000000..77ffc2408 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classService.eps @@ -0,0 +1,237 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 100 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 5 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 4 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Service) cw +(Communicable) cw +(peoPopEval< EOT >) cw +(peoSyncMultiStart< EOT >) cw +(peoTransform< EOT >) cw +(peoParaPopEval< EOT >) cw +(peoSeqPopEval< EOT >) cw +(peoParaSGATransform< EOT >) cw +(peoSeqTransform< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Service) 1.5 2 box + (Communicable) 1.5 3 box + (peoPopEval< EOT >) 0.5 1 box + (peoSyncMultiStart< EOT >) 1.5 1 box + (peoTransform< EOT >) 2.5 1 box + (peoParaPopEval< EOT >) 0 0 box + (peoSeqPopEval< EOT >) 1 0 box + (peoParaSGATransform< EOT >) 2 0 box + (peoSeqTransform< EOT >) 3 0 box + +% ----- relations ----- + +solid +0 1.5 2 out +solid +1 1.5 3 in +solid +1 1.5 1.25 out +solid +0.5 2.5 2 conn +solid +0 0.5 1.75 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 1.5 1.75 in +solid +0 2.5 1.75 in +solid +1 2.5 0.25 out +solid +2 3 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in +solid +0 3 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classService.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classService.tex new file mode 100644 index 000000000..7d0ea5f92 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classService.tex @@ -0,0 +1,100 @@ +\hypertarget{classService}{ +\section{Service Class Reference} +\label{classService}\index{Service@{Service}} +} +Inheritance diagram for Service::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2.8cm]{classService} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classService_33b149b98498c0e7e401b0f0839d7f0d}{ +void \hyperlink{classService_33b149b98498c0e7e401b0f0839d7f0d}{set\-Owner} (\hyperlink{classThread}{Thread} \&\_\-\_\-owner)} +\label{classService_33b149b98498c0e7e401b0f0839d7f0d} + +\item +\hypertarget{classService_0dae00309c51a7b7069788142aed799f}{ +\hyperlink{classThread}{Thread} $\ast$ \hyperlink{classService_0dae00309c51a7b7069788142aed799f}{get\-Owner} ()} +\label{classService_0dae00309c51a7b7069788142aed799f} + +\item +\hypertarget{classService_7e2ae35a9070a05dcd46488df649896d}{ +void \hyperlink{classService_7e2ae35a9070a05dcd46488df649896d}{request\-Resource\-Request} (unsigned \_\-\_\-how\_\-many=1)} +\label{classService_7e2ae35a9070a05dcd46488df649896d} + +\item +\hypertarget{classService_c4289f98d1cd9ed53e850efbb6a947bd}{ +void \hyperlink{classService_c4289f98d1cd9ed53e850efbb6a947bd}{pack\-Resource\-Request} ()} +\label{classService_c4289f98d1cd9ed53e850efbb6a947bd} + +\item +\hypertarget{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{ +virtual void \hyperlink{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{pack\-Data} ()} +\label{classService_aea4b8f7f8fb88e83862ee4bfd9ab207} + +\item +\hypertarget{classService_3bd87b444710813d30fd754d4d0b4df3}{ +virtual void \hyperlink{classService_3bd87b444710813d30fd754d4d0b4df3}{unpack\-Data} ()} +\label{classService_3bd87b444710813d30fd754d4d0b4df3} + +\item +\hypertarget{classService_e4f2894e6121e60f38d41cfbd7447ae4}{ +virtual void \hyperlink{classService_e4f2894e6121e60f38d41cfbd7447ae4}{execute} ()} +\label{classService_e4f2894e6121e60f38d41cfbd7447ae4} + +\item +\hypertarget{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{ +virtual void \hyperlink{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{pack\-Result} ()} +\label{classService_e5e4f90b2315e15c2a2913bd370f4cf5} + +\item +\hypertarget{classService_45c06344edbfa482b91f68e2035a6099}{ +virtual void \hyperlink{classService_45c06344edbfa482b91f68e2035a6099}{unpack\-Result} ()} +\label{classService_45c06344edbfa482b91f68e2035a6099} + +\item +\hypertarget{classService_81ad4d6ebb50045b8977e2ab74826f30}{ +virtual void \hyperlink{classService_81ad4d6ebb50045b8977e2ab74826f30}{notify\-Sending\-Data} ()} +\label{classService_81ad4d6ebb50045b8977e2ab74826f30} + +\item +\hypertarget{classService_94e2012e76aaae3aa8199250f558d503}{ +virtual void \hyperlink{classService_94e2012e76aaae3aa8199250f558d503}{notify\-Sending\-Resource\-Request} ()} +\label{classService_94e2012e76aaae3aa8199250f558d503} + +\item +\hypertarget{classService_f94cc8a5c2665d4574041737e61e9ffc}{ +virtual void \hyperlink{classService_f94cc8a5c2665d4574041737e61e9ffc}{notify\-Sending\-All\-Resource\-Requests} ()} +\label{classService_f94cc8a5c2665d4574041737e61e9ffc} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classService_8b615c65c876f342fe8209eb7e36d7b2}{ +\hyperlink{classThread}{Thread} $\ast$ \hyperlink{classService_8b615c65c876f342fe8209eb7e36d7b2}{owner}} +\label{classService_8b615c65c876f342fe8209eb7e36d7b2} + +\item +\hypertarget{classService_a5b2ad9520bb3710b54348b99acebd58}{ +unsigned \hyperlink{classService_a5b2ad9520bb3710b54348b99acebd58}{num\_\-sent\_\-rr}} +\label{classService_a5b2ad9520bb3710b54348b99acebd58} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 17 of file service.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +service.h\item +core/service.cpp\item +rmc/mpi/service.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classThread.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classThread.eps new file mode 100644 index 000000000..e02a5f5fe --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classThread.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 183.486 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.725 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 3 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Thread) cw +(ReactiveThread) cw +(Runner) cw +(Communicator) cw +(Worker) cw +(peoEA< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Thread) 1.25 2 box + (ReactiveThread) 0.5 1 box + (Runner) 2 1 box + (Communicator) 0 0 box + (Worker) 1 0 box + (peoEA< EOT >) 2 0 box + +% ----- relations ----- + +solid +1 1.25 1.25 out +solid +0.5 2 2 conn +solid +0 0.5 1.75 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 2 1.75 in +solid +1 2 0.25 out +solid +0 0 0.75 in +solid +0 1 0.75 in +solid +0 2 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classThread.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classThread.tex new file mode 100644 index 000000000..46d9b9d3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classThread.tex @@ -0,0 +1,54 @@ +\hypertarget{classThread}{ +\section{Thread Class Reference} +\label{classThread}\index{Thread@{Thread}} +} +Inheritance diagram for Thread::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classThread} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classThread_95c703fb8f2f27cb64f475a8c940864a}{ +\hyperlink{classThread_95c703fb8f2f27cb64f475a8c940864a}{Thread} ()} +\label{classThread_95c703fb8f2f27cb64f475a8c940864a} + +\item +\hypertarget{classThread_37d9edd3a1a776cbc27dedff949c9726}{ +virtual \hyperlink{classThread_37d9edd3a1a776cbc27dedff949c9726}{$\sim$Thread} ()} +\label{classThread_37d9edd3a1a776cbc27dedff949c9726} + +\item +\hypertarget{classThread_e197c46f8f62ecce6d2a7fe95bdc5b38}{ +void \hyperlink{classThread_e197c46f8f62ecce6d2a7fe95bdc5b38}{set\-Active} ()} +\label{classThread_e197c46f8f62ecce6d2a7fe95bdc5b38} + +\item +\hypertarget{classThread_20632ffe9ddfa2a478afb0c84dc1096b}{ +void \hyperlink{classThread_20632ffe9ddfa2a478afb0c84dc1096b}{set\-Passive} ()} +\label{classThread_20632ffe9ddfa2a478afb0c84dc1096b} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classThread_1b155d63bca3096ac4a1d039aea83c7c}{ +bool \hyperlink{classThread_1b155d63bca3096ac4a1d039aea83c7c}{act}} +\label{classThread_1b155d63bca3096ac4a1d039aea83c7c} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 16 of file thread.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +thread.h\item +thread.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classTopology.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classTopology.eps new file mode 100644 index 000000000..45dacefa6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classTopology.eps @@ -0,0 +1,197 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 412.371 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.2125 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 2 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Topology) cw +(RingTopology) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Topology) 0 1 box + (RingTopology) 0 0 box + +% ----- relations ----- + +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classTopology.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classTopology.tex new file mode 100644 index 000000000..3bdb11a3e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classTopology.tex @@ -0,0 +1,44 @@ +\hypertarget{classTopology}{ +\section{Topology Class Reference} +\label{classTopology}\index{Topology@{Topology}} +} +Inheritance diagram for Topology::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=2cm]{classTopology} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classTopology_3e447669757c8311c7f6f8edc705abf2}{ +virtual \hyperlink{classTopology_3e447669757c8311c7f6f8edc705abf2}{$\sim$Topology} ()} +\label{classTopology_3e447669757c8311c7f6f8edc705abf2} + +\item +\hypertarget{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded}{ +void \hyperlink{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded}{add} (\hyperlink{classCooperative}{Cooperative} \&\_\-\_\-mig)} +\label{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded} + +\end{CompactItemize} +\subsection*{Protected Attributes} +\begin{CompactItemize} +\item +\hypertarget{classTopology_247a2faa8568b678f0b7b11e62c7812c}{ +std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classTopology_247a2faa8568b678f0b7b11e62c7812c}{mig}} +\label{classTopology_247a2faa8568b678f0b7b11e62c7812c} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 16 of file topology.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +topology.h\item +topology.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classWorker.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classWorker.eps new file mode 100644 index 000000000..5972d40a6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classWorker.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 275.229 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.81667 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(Worker) cw +(Communicable) cw +(ReactiveThread) cw +(Thread) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (Worker) 0.5 0 box + (Communicable) 0 1 box + (ReactiveThread) 1 1 box + (Thread) 1 2 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +1 1 1 in +solid +0 1 1 out +solid +1 1 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classWorker.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classWorker.tex new file mode 100644 index 000000000..fe55f2a2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classWorker.tex @@ -0,0 +1,94 @@ +\hypertarget{classWorker}{ +\section{Worker Class Reference} +\label{classWorker}\index{Worker@{Worker}} +} +Inheritance diagram for Worker::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classWorker} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classWorker_3754817df06ffe220f7f0d903c78ccac}{ +\hyperlink{classWorker_3754817df06ffe220f7f0d903c78ccac}{Worker} ()} +\label{classWorker_3754817df06ffe220f7f0d903c78ccac} + +\item +\hypertarget{classWorker_abcbbace05c6113f1959c494b3577291}{ +void \hyperlink{classWorker_abcbbace05c6113f1959c494b3577291}{start} ()} +\label{classWorker_abcbbace05c6113f1959c494b3577291} + +\item +\hypertarget{classWorker_83780920118e6c2b67d9477bdf8be248}{ +void \hyperlink{classWorker_83780920118e6c2b67d9477bdf8be248}{pack\-Result} ()} +\label{classWorker_83780920118e6c2b67d9477bdf8be248} + +\item +\hypertarget{classWorker_bff2bdcd64fe5400156cc78704c64953}{ +void \hyperlink{classWorker_bff2bdcd64fe5400156cc78704c64953}{unpack\-Data} ()} +\label{classWorker_bff2bdcd64fe5400156cc78704c64953} + +\item +\hypertarget{classWorker_60d2e8eba85b9ef403d94be54c391640}{ +void \hyperlink{classWorker_60d2e8eba85b9ef403d94be54c391640}{pack\-Task\-Done} ()} +\label{classWorker_60d2e8eba85b9ef403d94be54c391640} + +\item +\hypertarget{classWorker_e2f487014766a73c5788bdcfd58ad863}{ +void \hyperlink{classWorker_e2f487014766a73c5788bdcfd58ad863}{notify\-Sending\-Result} ()} +\label{classWorker_e2f487014766a73c5788bdcfd58ad863} + +\item +\hypertarget{classWorker_13efd6a8e275745329a4a8e23a0eb0bb}{ +void \hyperlink{classWorker_13efd6a8e275745329a4a8e23a0eb0bb}{notify\-Sending\-Task\-Done} ()} +\label{classWorker_13efd6a8e275745329a4a8e23a0eb0bb} + +\item +\hypertarget{classWorker_5dab4ea663546b5a49d9398d7a624d27}{ +void \hyperlink{classWorker_5dab4ea663546b5a49d9398d7a624d27}{set\-Source} (int \_\-\_\-rank)} +\label{classWorker_5dab4ea663546b5a49d9398d7a624d27} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classWorker_b5ffcb995e12fa71b9551e91729d6972}{ +WORKER\_\-ID \hyperlink{classWorker_b5ffcb995e12fa71b9551e91729d6972}{id}} +\label{classWorker_b5ffcb995e12fa71b9551e91729d6972} + +\item +\hypertarget{classWorker_d7dc76e301fd2bcf5d3a2088a59f1378}{ +SERVICE\_\-ID \hyperlink{classWorker_d7dc76e301fd2bcf5d3a2088a59f1378}{serv\_\-id}} +\label{classWorker_d7dc76e301fd2bcf5d3a2088a59f1378} + +\item +\hypertarget{classWorker_454e1764ed165af733cc44a73e395692}{ +\hyperlink{classService}{Service} $\ast$ \hyperlink{classWorker_454e1764ed165af733cc44a73e395692}{serv}} +\label{classWorker_454e1764ed165af733cc44a73e395692} + +\item +\hypertarget{classWorker_895c3ebc198018ea3391c09bc802d2f6}{ +int \hyperlink{classWorker_895c3ebc198018ea3391c09bc802d2f6}{src}} +\label{classWorker_895c3ebc198018ea3391c09bc802d2f6} + +\item +\hypertarget{classWorker_7ba5a18b2918cf9e704536b763be37f7}{ +bool \hyperlink{classWorker_7ba5a18b2918cf9e704536b763be37f7}{toto}} +\label{classWorker_7ba5a18b2918cf9e704536b763be37f7} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 18 of file worker.h. + +The documentation for this class was generated from the following files:\begin{CompactItemize} +\item +worker.h\item +worker.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps new file mode 100644 index 000000000..b8d4453ed --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 437.158 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.14375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoAggEvalFunc< EOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +(peoNoAggEvalFunc< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoAggEvalFunc< EOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + (peoNoAggEvalFunc< EOT >) 0 0 box + +% ----- relations ----- + +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in +solid +1 0 0.25 out +solid +0 0 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex new file mode 100644 index 000000000..ac91f551f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex @@ -0,0 +1,39 @@ +\hypertarget{classpeoAggEvalFunc}{ +\section{peo\-Agg\-Eval\-Func$<$ EOT $>$ Class Template Reference} +\label{classpeoAggEvalFunc}\index{peoAggEvalFunc@{peoAggEvalFunc}} +} +The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + + +{\tt \#include $<$peo\-Agg\-Eval\-Func.h$>$} + +Inheritance diagram for peo\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoAggEvalFunc} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Agg\-Eval\-Func$<$ EOT $>$} + +The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + +The class inherits {\bf public eo\-BF$<$ EOT\&, const typename EOT :: Fitness\&, void $>$} thus requiring, for the derived classes, the creation of a function having the following signature: + +\begin{TabularC}{2} +\hline +void operator()( EOT\& \_\-\_\-eot, const typename EOT :: Fitness\& \_\-\_\-partial\_\-fittness ); ~ &~ \\\hline +\end{TabularC} + + +The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. + + + +Definition at line 25 of file peo\-Agg\-Eval\-Func.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Agg\-Eval\-Func.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps new file mode 100644 index 000000000..292b6cce7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 222.222 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.25 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoAsyncIslandMig< EOT >) cw +(Cooperative) cw +(eoUpdater) cw +(Communicable) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoAsyncIslandMig< EOT >) 0.5 0 box + (Cooperative) 0 1 box + (eoUpdater) 1 1 box + (Communicable) 0 2 box + (eoF< void >) 1 2 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex new file mode 100644 index 000000000..3970c8539 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex @@ -0,0 +1,218 @@ +\hypertarget{classpeoAsyncIslandMig}{ +\section{peo\-Async\-Island\-Mig$<$ EOT $>$ Class Template Reference} +\label{classpeoAsyncIslandMig}\index{peoAsyncIslandMig@{peoAsyncIslandMig}} +} +The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + + +{\tt \#include $<$peo\-Async\-Island\-Mig.h$>$} + +Inheritance diagram for peo\-Async\-Island\-Mig$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoAsyncIslandMig} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}{peo\-Async\-Island\-Mig} (\bf{eo\-Continue}$<$ EOT $>$ \&\_\-\_\-cont, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-source, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-destination) +\begin{CompactList}\small\item\em Constructor for the \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters. \item\end{CompactList}\item +void \hyperlink{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}{operator()} () +\begin{CompactList}\small\item\em \doxyref{Function} operator to be called as checkpoint for performing the migration step. \item\end{CompactList}\item +\hypertarget{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}{ +void \hyperlink{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}{pack} ()} +\label{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16} + +\begin{CompactList}\small\item\em Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item +\hypertarget{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}{ +void \hyperlink{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}{unpack} ()} +\label{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369} + +\begin{CompactList}\small\item\em Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}{ +void \hyperlink{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}{emigrate} ()} +\label{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82} + +\item +\hypertarget{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}{ +void \hyperlink{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}{immigrate} ()} +\label{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}{ +\bf{eo\-Continue}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}{cont}} +\label{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83} + +\item +\hypertarget{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}{ +\bf{eo\-Select}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}{select}} +\label{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2} + +\item +\hypertarget{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}{ +\bf{eo\-Replacement}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}{replace}} +\label{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48} + +\item +\hypertarget{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}{ +\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}{topology}} +\label{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679} + +\item +\hypertarget{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}{ +\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}{source}} +\label{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee} + +\item +\hypertarget{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}{ +\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}{destination}} +\label{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43} + +\item +\hypertarget{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}{ +std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}{imm}} +\label{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a} + +\item +\hypertarget{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}{ +std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}{em}} +\label{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89} + +\item +\hypertarget{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}{ +std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}{coop\_\-em}} +\label{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Async\-Island\-Mig$<$ EOT $>$} + +The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + +continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase. + +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: + +\begin{TabularC}{2} +\hline +{\bf do} \{ ~ &~ \\\hline +~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline +~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline +~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offsprings \\\hline +~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline +\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population, including the migration operator, if any specified \\\hline +\end{TabularC} + + +Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the {\bf \hyperlink{classRunner}{Runner}} class (for example a \hyperlink{classpeoEA}{peo\-EA} object represents a possible owner). A simple example is offered bellow: + +\begin{enumerate} +\item topological model to be followed when performing migrations: \par + \par + \begin{TabularC}{2} +\hline +\hyperlink{classRingTopology}{Ring\-Topology} mig\-Topology; ~ &// a simple ring topological model - each island communicates with two other islands \\\hline +\end{TabularC} + + +\item the continuation criterion, selection and replacement strategy etc. are defined: \par + \par + \begin{TabularC}{2} +\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// population of individuals to be used for the evolutionary algorithm \\\hline +~ &~ \\\hline +eo\-Periodic\-Continue$<$ EOT $>$ mig\-Cont( MIG\_\-FREQ ); ~ &// migrations occur periodically at MIG\_\-FREQ iterations \\\hline +eo\-Random\-Select$<$ EOT $>$ mig\-Select\-Strategy; ~ &// selection strategy - in this case a random selection is applied \\\hline +eo\-Select\-Number$<$ EOT $>$ mig\-Select( mig\-Select\-Strategy, MIG\_\-SIZE ); ~ &// number of individuals to be selected using the specified strategy \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ mig\-Replace; ~ &// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals \\\hline +~ &~ \\\hline +peo\-Async\-Island\-Mig$<$ EOT $>$ async\-Migration( \par + ~~~~~~~~ mig\-Cont, mig\-Select, mig\-Replace, mig\-Topology, \par + ~~~~~~~~ population, population \par + ); ~ &// asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated \\\hline +\end{TabularC} + + +\item creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): \par + \par + \begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// the evolutionary algorithm will stop after NUM\_\-GEN generations \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// number of individuals to be selected using the specified strategy \\\hline +... ~ &~ \\\hline +ea\-Checkpoint\-Continue.add( async\-Migration ); ~ &// adding the migration operator as checkpoint element \\\hline +... ~ &~ \\\hline +\end{TabularC} + + +\item definition of an owner evolutionary algorithm (an object inheriting the {\bf \hyperlink{classRunner}{Runner}} class): \par + \par + \begin{TabularC}{2} +\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace); ~ &// evolutionary algorithm having as checkpoint the ea\-Checkpoint\-Continue object defined above \\\hline +async\-Migration.set\-Owner( ea\-Alg ); ~ &// setting the evolutionary algorithm as owner of the migration object \\\hline +ea\-Alg( population ); ~ &// applying the evolutionary algorithm on a given population \\\hline +\end{TabularC} +\end{enumerate} + + +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. + +The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ mig\-Topology object has to be passed as parameter for all the migration objects, in order to interconnect them). + + + +Definition at line 112 of file peo\-Async\-Island\-Mig.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}{ +\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!peoAsyncIslandMig@{peoAsyncIslandMig}} +\index{peoAsyncIslandMig@{peoAsyncIslandMig}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}} +\subsubsection[peoAsyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ EOT $>$::\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} (\bf{eo\-Continue}$<$ EOT $>$ \& {\em \_\-\_\-cont}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-source}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-destination})}} +\label{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf} + + +Constructor for the \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - continuation criterion specifying whether the migration is performed or not; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy used for integrating the immigrant individuals in the destination population; \item[{\em Topology\&}]\_\-\_\-topology - topological model to be followed when performing migrations; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-source - source population from which the emigrant individuals are selected; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-destination - destination population in which the immigrant population are integrated. \end{description} +\end{Desc} + + +Definition at line 171 of file peo\-Async\-Island\-Mig.h. + +References Topology::add(). + +\subsection{Member Function Documentation} +\hypertarget{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}{ +\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!operator()@{operator()}} +\index{operator()@{operator()}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ EOT $>$::operator() ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5} + + +\doxyref{Function} operator to be called as checkpoint for performing the migration step. + +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. + +Implements \bf{eo\-F$<$ void $>$}. + +Definition at line 248 of file peo\-Async\-Island\-Mig.h. + +References peo\-Async\-Island\-Mig$<$ EOT $>$::cont, peo\-Async\-Island\-Mig$<$ EOT $>$::emigrate(), peo\-Async\-Island\-Mig$<$ EOT $>$::immigrate(), and peo\-Async\-Island\-Mig$<$ EOT $>$::source. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Async\-Island\-Mig.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoEA.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoEA.eps new file mode 100644 index 000000000..e4aabc826 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoEA.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 280.374 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.78333 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 3 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoEA< EOT >) cw +(Runner) cw +(Communicable) cw +(Thread) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoEA< EOT >) 0.5 0 box + (Runner) 0.5 1 box + (Communicable) 0 2 box + (Thread) 1 2 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +1 1 2 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoEA.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoEA.tex new file mode 100644 index 000000000..4d7a535ad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoEA.tex @@ -0,0 +1,145 @@ +\hypertarget{classpeoEA}{ +\section{peo\-EA$<$ EOT $>$ Class Template Reference} +\label{classpeoEA}\index{peoEA@{peoEA}} +} +The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation. + + +{\tt \#include $<$peo\-EA.h$>$} + +Inheritance diagram for peo\-EA$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=3cm]{classpeoEA} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoEA_dbfc4f8907bef234602149229f132371}{peo\-EA} (\bf{eo\-Continue}$<$ EOT $>$ \&\_\-\_\-cont, \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$ \&\_\-\_\-pop\_\-eval, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$ \&\_\-\_\-trans, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace) +\begin{CompactList}\small\item\em Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. \item\end{CompactList}\item +\hypertarget{classpeoEA_6ab8c321d29350634143a2a01cf2ad24}{ +void \hyperlink{classpeoEA_6ab8c321d29350634143a2a01cf2ad24}{run} ()} +\label{classpeoEA_6ab8c321d29350634143a2a01cf2ad24} + +\begin{CompactList}\small\item\em Evolutionary algorithm function - a side effect of the fact that the class is derived from the {\bf \hyperlink{classRunner}{Runner}} class, thus requiring the existence of a {\em run\/} function, the algorithm being executed on a distinct thread. \item\end{CompactList}\item +void \hyperlink{classpeoEA_3c709e3b2491147d26fee36138644613}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em \doxyref{Function} operator for specifying the population to be associated with the algorithm. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoEA_5f015eebf42f176b9fe322488c446c2a}{ +\bf{eo\-Continue}$<$ EOT $>$ \& \hyperlink{classpeoEA_5f015eebf42f176b9fe322488c446c2a}{cont}} +\label{classpeoEA_5f015eebf42f176b9fe322488c446c2a} + +\item +\hypertarget{classpeoEA_9140259f50c9186edcb062b023624c96}{ +\hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$ \& \hyperlink{classpeoEA_9140259f50c9186edcb062b023624c96}{pop\_\-eval}} +\label{classpeoEA_9140259f50c9186edcb062b023624c96} + +\item +\hypertarget{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19}{ +\bf{eo\-Select}$<$ EOT $>$ \& \hyperlink{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19}{select}} +\label{classpeoEA_2d8428d69fdd6aefefbaf543fdd46d19} + +\item +\hypertarget{classpeoEA_713c77935eb8aafebfb9488cfaa4a363}{ +\hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$ \& \hyperlink{classpeoEA_713c77935eb8aafebfb9488cfaa4a363}{trans}} +\label{classpeoEA_713c77935eb8aafebfb9488cfaa4a363} + +\item +\hypertarget{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a}{ +\bf{eo\-Replacement}$<$ EOT $>$ \& \hyperlink{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a}{replace}} +\label{classpeoEA_9bd2d4356cf7e69e3141dc269213aa8a} + +\item +\hypertarget{classpeoEA_c0b110e410bc16283e8339f24b733772}{ +\bf{eo\-Pop}$<$ EOT $>$ $\ast$ \hyperlink{classpeoEA_c0b110e410bc16283e8339f24b733772}{pop}} +\label{classpeoEA_c0b110e410bc16283e8339f24b733772} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-EA$<$ EOT $>$} + +The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation. + +In addition, as compared with the algorithms provided by the \doxyref{EO} framework, the \hyperlink{classpeoEA}{peo\-EA} class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the \doxyref{EO} framework, the drawback resides in the fact that the \doxyref{EO} implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a \hyperlink{classpeoEA}{peo\-EA} object: + +\begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// creation of a population with POP\_\-SIZE individuals - the pop\-Initializer is a functor to be called for each individual \\\hline +~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// number of generations for the evolutionary algorithm \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects \\\hline +~ &~ \\\hline +peo\-Seq\-Pop\-Eval$<$ EOT $>$ ea\-Pop\-Eval( eval\-Function ); ~ &// sequential evaluation functor wrapper - eval\-Function represents the actual evaluation functor \\\hline +~ &~ \\\hline +eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline +eo\-Select\-Number$<$ EOT $>$ ea\-Select( selection\-Strategy, POP\_\-SIZE ); ~ &// the number of individuals to be selected for creating the offspring population \\\hline +eo\-Ranking\-Select$<$ EOT $>$ selection\-Strategy; ~ &// selection strategy for creating the offspring population - a simple ranking selection in this case \\\hline +~ &~ \\\hline +eo\-SGATransform$<$ EOT $>$ transform( crossover, CROSS\_\-RATE, mutation, MUT\_\-RATE ); ~ &// transformation operator - crossover and mutation operators with their associated probabilities \\\hline +peo\-Seq\-Transform$<$ EOT $>$ ea\-Transform( transform ); ~ &// Paradis\-EO specific sequential operator - a parallel version may be specified in the same manner \\\hline +~ &~ \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ ea\-Replace; ~ &// replacement strategy - for integrating the offspring resulting individuals in the initial population \\\hline +~ &~ \\\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace ); ~ &// Paradis\-EO evolutionary algorithm integrating the above defined objects \\\hline +ea\-Alg( population ); ~ &// specifying the initial population for the algorithm \\\hline +... ~ &~ \\\hline +\end{TabularC} + + + + +Definition at line 54 of file peo\-EA.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoEA_dbfc4f8907bef234602149229f132371}{ +\index{peoEA@{peo\-EA}!peoEA@{peoEA}} +\index{peoEA@{peoEA}!peoEA@{peo\-EA}} +\subsubsection[peoEA]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoEA}{peo\-EA}$<$ EOT $>$::\hyperlink{classpeoEA}{peo\-EA} (\bf{eo\-Continue}$<$ EOT $>$ \& {\em \_\-\_\-cont}, \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$ \& {\em \_\-\_\-pop\_\-eval}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$ \& {\em \_\-\_\-trans}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace})}} +\label{classpeoEA_dbfc4f8907bef234602149229f132371} + + +Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. + +Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the \doxyref{EO} package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - continuation criterion specifying whether the algorithm should continue or not; \item[{\em peo\-Pop\-Eval$<$}]EOT $>$\& \_\-\_\-pop\_\-eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of offspring individuals; \item[{\em peo\-Transform$<$}]EOT $>$\& \_\-\_\-trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy for integrating the offspring individuals in the initial population; \end{description} +\end{Desc} + + +Definition at line 98 of file peo\-EA.h. + +References peo\-EA$<$ EOT $>$::pop\_\-eval, and peo\-EA$<$ EOT $>$::trans. + +\subsection{Member Function Documentation} +\hypertarget{classpeoEA_3c709e3b2491147d26fee36138644613}{ +\index{peoEA@{peo\-EA}!operator()@{operator()}} +\index{operator()@{operator()}!peoEA@{peo\-EA}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoEA}{peo\-EA}$<$ EOT $>$::operator() (\bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoEA_3c709e3b2491147d26fee36138644613} + + +\doxyref{Function} operator for specifying the population to be associated with the algorithm. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - initial population of the algorithm, to be iteratively evolved; \end{description} +\end{Desc} + + +Definition at line 114 of file peo\-EA.h. + +References peo\-EA$<$ EOT $>$::pop. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-EA.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps new file mode 100644 index 000000000..b9f8ee753 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 437.158 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.14375 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoNoAggEvalFunc< EOT >) cw +(peoAggEvalFunc< EOT >) cw +(eoBF< A1, A2, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoNoAggEvalFunc< EOT >) 0 0 box + (peoAggEvalFunc< EOT >) 0 1 box + (eoBF< A1, A2, R >) 0 2 box + (eoFunctorBase) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex new file mode 100644 index 000000000..5604e3840 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex @@ -0,0 +1,39 @@ +\hypertarget{classpeoNoAggEvalFunc}{ +\section{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$ Class Template Reference} +\label{classpeoNoAggEvalFunc}\index{peoNoAggEvalFunc@{peoNoAggEvalFunc}} +} +The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual. + + +{\tt \#include $<$peo\-No\-Agg\-Eval\-Func.h$>$} + +Inheritance diagram for peo\-No\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoNoAggEvalFunc} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{ +void \hyperlink{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{operator()} (EOT \&\_\-\_\-sol, const typename EOT::Fitness \&\_\-\_\-fit)} +\label{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5} + +\begin{CompactList}\small\item\em Operator which sets as fitness the {\bf \_\-\_\-fit} value for the {\bf \_\-\_\-sol} individual. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-No\-Agg\-Eval\-Func$<$ EOT $>$} + +The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual. + +The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. + + + +Definition at line 19 of file peo\-No\-Agg\-Eval\-Func.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-No\-Agg\-Eval\-Func.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaPopEval.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaPopEval.eps new file mode 100644 index 000000000..25c8b8af1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaPopEval.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 487.805 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.025 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoParaPopEval< EOT >) cw +(peoPopEval< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoParaPopEval< EOT >) 0 0 box + (peoPopEval< EOT >) 0 1 box + (Service) 0 2 box + (Communicable) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaPopEval.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaPopEval.tex new file mode 100644 index 000000000..1d94eb62c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaPopEval.tex @@ -0,0 +1,258 @@ +\hypertarget{classpeoParaPopEval}{ +\section{peo\-Para\-Pop\-Eval$<$ EOT $>$ Class Template Reference} +\label{classpeoParaPopEval}\index{peoParaPopEval@{peoParaPopEval}} +} +The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + + +{\tt \#include $<$peo\-Para\-Pop\-Eval.h$>$} + +Inheritance diagram for peo\-Para\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoParaPopEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoParaPopEval_bcb540510a7038520bec41a7af332daf}{peo\-Para\-Pop\-Eval} (\bf{eo\-Eval\-Func}$<$ EOT $>$ \&\_\-\_\-eval\_\-func) +\begin{CompactList}\small\item\em Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \item\end{CompactList}\item +\hyperlink{classpeoParaPopEval_1cc13a1ec366f95d219d682eccb455bc}{peo\-Para\-Pop\-Eval} (const std::vector$<$ \bf{eo\-Eval\-Func}$<$ EOT $>$ $\ast$ $>$ \&\_\-\_\-funcs, \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \&\_\-\_\-merge\_\-eval) +\begin{CompactList}\small\item\em Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_aeaa4fca4f8650e453e308838b4a2cb5}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_fea632bd645ab11182782fd3c038d6d8}{pack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_410bf4c173e2f36df82251cb16ce1b05}{unpack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +\hypertarget{classpeoParaPopEval_3af76378611eac5a36da9a0a00aeeb6c}{ +void \hyperlink{classpeoParaPopEval_3af76378611eac5a36da9a0a00aeeb6c}{execute} ()} +\label{classpeoParaPopEval_3af76378611eac5a36da9a0a00aeeb6c} + +\begin{CompactList}\small\item\em Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_24bb4ae84b0b9f64e7170e3d2b0e1223}{pack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_fd7f0afe9cba30be39269d16097e190e}{unpack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_1f78c3cec2940af08a059cc1aa96a9c8}{notify\-Sending\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \item\end{CompactList}\item +void \hyperlink{classpeoParaPopEval_b77031fc4807921ffaf7cf6b669a7665}{notify\-Sending\-All\-Resource\-Requests} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoParaPopEval_6d69b8f73c0b5d72baf75d6e53f025b7}{ +const std::vector$<$ \bf{eo\-Eval\-Func}$<$ EOT $>$ $\ast$ $>$ \& \hyperlink{classpeoParaPopEval_6d69b8f73c0b5d72baf75d6e53f025b7}{funcs}} +\label{classpeoParaPopEval_6d69b8f73c0b5d72baf75d6e53f025b7} + +\item +\hypertarget{classpeoParaPopEval_f0e8af3ee442d2b6baf0bd122226be3c}{ +std::vector$<$ \bf{eo\-Eval\-Func}$<$ EOT $>$ $\ast$ $>$ \hyperlink{classpeoParaPopEval_f0e8af3ee442d2b6baf0bd122226be3c}{one\_\-func}} +\label{classpeoParaPopEval_f0e8af3ee442d2b6baf0bd122226be3c} + +\item +\hypertarget{classpeoParaPopEval_b48bcd4e9f92f364118304535c089456}{ +\hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \& \hyperlink{classpeoParaPopEval_b48bcd4e9f92f364118304535c089456}{merge\_\-eval}} +\label{classpeoParaPopEval_b48bcd4e9f92f364118304535c089456} + +\item +\hypertarget{classpeoParaPopEval_bf255dd5861e27108c2abae7309d7690}{ +\hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func}$<$ EOT $>$ \hyperlink{classpeoParaPopEval_bf255dd5861e27108c2abae7309d7690}{no\_\-merge\_\-eval}} +\label{classpeoParaPopEval_bf255dd5861e27108c2abae7309d7690} + +\item +\hypertarget{classpeoParaPopEval_af76cd18368a0f6185878f37f0b5f272}{ +std::queue$<$ EOT $\ast$ $>$ \hyperlink{classpeoParaPopEval_af76cd18368a0f6185878f37f0b5f272}{tasks}} +\label{classpeoParaPopEval_af76cd18368a0f6185878f37f0b5f272} + +\item +\hypertarget{classpeoParaPopEval_80e7e34bb1bb2d12f1f2eed3feac6ecf}{ +std::map$<$ EOT $\ast$, std::pair$<$ unsigned, unsigned $>$ $>$ \hyperlink{classpeoParaPopEval_80e7e34bb1bb2d12f1f2eed3feac6ecf}{progression}} +\label{classpeoParaPopEval_80e7e34bb1bb2d12f1f2eed3feac6ecf} + +\item +\hypertarget{classpeoParaPopEval_87abb090c0de39f0ccc36af1f07cca0c}{ +unsigned \hyperlink{classpeoParaPopEval_87abb090c0de39f0ccc36af1f07cca0c}{num\_\-func}} +\label{classpeoParaPopEval_87abb090c0de39f0ccc36af1f07cca0c} + +\item +\hypertarget{classpeoParaPopEval_fb6941e0455515a908eb82342b995163}{ +EOT \hyperlink{classpeoParaPopEval_fb6941e0455515a908eb82342b995163}{sol}} +\label{classpeoParaPopEval_fb6941e0455515a908eb82342b995163} + +\item +\hypertarget{classpeoParaPopEval_60cafeab376262af675fdff43434c8d8}{ +EOT $\ast$ \hyperlink{classpeoParaPopEval_60cafeab376262af675fdff43434c8d8}{ad\_\-sol}} +\label{classpeoParaPopEval_60cafeab376262af675fdff43434c8d8} + +\item +\hypertarget{classpeoParaPopEval_b528ad9dd9006c3dd57f149a3843e57d}{ +unsigned \hyperlink{classpeoParaPopEval_b528ad9dd9006c3dd57f149a3843e57d}{total}} +\label{classpeoParaPopEval_b528ad9dd9006c3dd57f149a3843e57d} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Para\-Pop\-Eval$<$ EOT $>$} + +The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + +The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions. + + + +Definition at line 26 of file peo\-Para\-Pop\-Eval.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoParaPopEval_bcb540510a7038520bec41a7af332daf}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!peoParaPopEval@{peoParaPopEval}} +\index{peoParaPopEval@{peoParaPopEval}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[peoParaPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} (\bf{eo\-Eval\-Func}$<$ EOT $>$ \& {\em \_\-\_\-eval\_\-func})}} +\label{classpeoParaPopEval_bcb540510a7038520bec41a7af332daf} + + +Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-eval\_\-func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population \end{description} +\end{Desc} + + +Definition at line 102 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::one\_\-func.\hypertarget{classpeoParaPopEval_1cc13a1ec366f95d219d682eccb455bc}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!peoParaPopEval@{peoParaPopEval}} +\index{peoParaPopEval@{peoParaPopEval}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[peoParaPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} (const std::vector$<$ \bf{eo\-Eval\-Func}$<$ EOT $>$ $\ast$ $>$ \& {\em \_\-\_\-funcs}, \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \& {\em \_\-\_\-merge\_\-eval})}} +\label{classpeoParaPopEval_1cc13a1ec366f95d219d682eccb455bc} + + +Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em const}]std :: vector$<$ \doxyref{eo\-Eval\-Func} $<$ EOT $>$$\ast$ $>$\& \_\-\_\-funcs - vector of EO-derived partial evaluation functors; \item[{\em peo\-Agg\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-merge\_\-eval - aggregation functor for creating a fitness value out of the partial fitness values. \end{description} +\end{Desc} + + +Definition at line 111 of file peo\-Para\-Pop\-Eval.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoParaPopEval_aeaa4fca4f8650e453e308838b4a2cb5}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!operator()@{operator()}} +\index{operator()@{operator()}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::operator() (\bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_aeaa4fca4f8650e453e308838b4a2cb5} + + +Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be evaluated by applying the evaluation functor specified in the constructor. \end{description} +\end{Desc} + + +Implements \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{peo\-Pop\-Eval$<$ EOT $>$}. + +Definition at line 122 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::funcs, peo\-Para\-Pop\-Eval$<$ EOT $>$::progression, Service::request\-Resource\-Request(), Communicable::stop(), peo\-Para\-Pop\-Eval$<$ EOT $>$::tasks, and peo\-Para\-Pop\-Eval$<$ EOT $>$::total.\hypertarget{classpeoParaPopEval_fea632bd645ab11182782fd3c038d6d8}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!packData@{packData}} +\index{packData@{packData}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[packData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::pack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_fea632bd645ab11182782fd3c038d6d8} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{Service}. + +Definition at line 143 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::progression, and peo\-Para\-Pop\-Eval$<$ EOT $>$::tasks.\hypertarget{classpeoParaPopEval_410bf4c173e2f36df82251cb16ce1b05}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!unpackData@{unpackData}} +\index{unpackData@{unpackData}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[unpackData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::unpack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_410bf4c173e2f36df82251cb16ce1b05} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_3bd87b444710813d30fd754d4d0b4df3}{Service}. + +Definition at line 157 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, peo\-Para\-Pop\-Eval$<$ EOT $>$::num\_\-func, and peo\-Para\-Pop\-Eval$<$ EOT $>$::sol.\hypertarget{classpeoParaPopEval_24bb4ae84b0b9f64e7170e3d2b0e1223}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!packResult@{packResult}} +\index{packResult@{packResult}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[packResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::pack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_24bb4ae84b0b9f64e7170e3d2b0e1223} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{Service}. + +Definition at line 174 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, and peo\-Para\-Pop\-Eval$<$ EOT $>$::sol.\hypertarget{classpeoParaPopEval_fd7f0afe9cba30be39269d16097e190e}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!unpackResult@{unpackResult}} +\index{unpackResult@{unpackResult}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[unpackResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::unpack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_fd7f0afe9cba30be39269d16097e190e} + + +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_45c06344edbfa482b91f68e2035a6099}{Service}. + +Definition at line 183 of file peo\-Para\-Pop\-Eval.h. + +References peo\-Para\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, Service::get\-Owner(), peo\-Para\-Pop\-Eval$<$ EOT $>$::merge\_\-eval, peo\-Para\-Pop\-Eval$<$ EOT $>$::progression, Communicable::resume(), Thread::set\-Active(), and peo\-Para\-Pop\-Eval$<$ EOT $>$::total.\hypertarget{classpeoParaPopEval_1f78c3cec2940af08a059cc1aa96a9c8}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!notifySendingData@{notifySendingData}} +\index{notifySendingData@{notifySendingData}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[notifySendingData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::notify\-Sending\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_1f78c3cec2940af08a059cc1aa96a9c8} + + +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_81ad4d6ebb50045b8977e2ab74826f30}{Service}. + +Definition at line 214 of file peo\-Para\-Pop\-Eval.h.\hypertarget{classpeoParaPopEval_b77031fc4807921ffaf7cf6b669a7665}{ +\index{peoParaPopEval@{peo\-Para\-Pop\-Eval}!notifySendingAllResourceRequests@{notifySendingAllResourceRequests}} +\index{notifySendingAllResourceRequests@{notifySendingAllResourceRequests}!peoParaPopEval@{peo\-Para\-Pop\-Eval}} +\subsubsection[notifySendingAllResourceRequests]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}$<$ EOT $>$::notify\-Sending\-All\-Resource\-Requests ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoParaPopEval_b77031fc4807921ffaf7cf6b669a7665} + + +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_f94cc8a5c2665d4574041737e61e9ffc}{Service}. + +Definition at line 219 of file peo\-Para\-Pop\-Eval.h. + +References Service::get\-Owner(), and Thread::set\-Passive(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Para\-Pop\-Eval.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaSGATransform.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaSGATransform.eps new file mode 100644 index 000000000..7b2968db4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaSGATransform.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 250 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoParaSGATransform< EOT >) cw +(peoTransform< EOT >) cw +(Service) cw +(eoTransform< EOT >) cw +(Communicable) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoParaSGATransform< EOT >) 0.5 0 box + (peoTransform< EOT >) 0.5 1 box + (Service) 0 2 box + (eoTransform< EOT >) 1 2 box + (Communicable) 0 3 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaSGATransform.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaSGATransform.tex new file mode 100644 index 000000000..805baa496 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoParaSGATransform.tex @@ -0,0 +1,120 @@ +\hypertarget{classpeoParaSGATransform}{ +\section{peo\-Para\-SGATransform$<$ EOT $>$ Class Template Reference} +\label{classpeoParaSGATransform}\index{peoParaSGATransform@{peoParaSGATransform}} +} +Inheritance diagram for peo\-Para\-SGATransform$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classpeoParaSGATransform} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoParaSGATransform_2052bca82fbbfe5455bf6f69246d4dbf}{ +\hyperlink{classpeoParaSGATransform_2052bca82fbbfe5455bf6f69246d4dbf}{peo\-Para\-SGATransform} (\bf{eo\-Quad\-Op}$<$ EOT $>$ \&\_\-\_\-cross, double \_\-\_\-cross\_\-rate, \bf{eo\-Mon\-Op}$<$ EOT $>$ \&\_\-\_\-mut, double \_\-\_\-mut\_\-rate)} +\label{classpeoParaSGATransform_2052bca82fbbfe5455bf6f69246d4dbf} + +\item +\hypertarget{classpeoParaSGATransform_669de7f7c6316fa745a15b909efb6527}{ +void \hyperlink{classpeoParaSGATransform_669de7f7c6316fa745a15b909efb6527}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop)} +\label{classpeoParaSGATransform_669de7f7c6316fa745a15b909efb6527} + +\item +\hypertarget{classpeoParaSGATransform_fd278bcde58d29c9a343d5cbead81a1e}{ +void \hyperlink{classpeoParaSGATransform_fd278bcde58d29c9a343d5cbead81a1e}{pack\-Data} ()} +\label{classpeoParaSGATransform_fd278bcde58d29c9a343d5cbead81a1e} + +\item +\hypertarget{classpeoParaSGATransform_a43a487a6e81791c8bbf6ce30f4336ab}{ +void \hyperlink{classpeoParaSGATransform_a43a487a6e81791c8bbf6ce30f4336ab}{unpack\-Data} ()} +\label{classpeoParaSGATransform_a43a487a6e81791c8bbf6ce30f4336ab} + +\item +\hypertarget{classpeoParaSGATransform_c9de2100fb897177a401c634002f6dd9}{ +void \hyperlink{classpeoParaSGATransform_c9de2100fb897177a401c634002f6dd9}{execute} ()} +\label{classpeoParaSGATransform_c9de2100fb897177a401c634002f6dd9} + +\item +\hypertarget{classpeoParaSGATransform_ba08e224ceaa4149e8e1a88694a2ccf2}{ +void \hyperlink{classpeoParaSGATransform_ba08e224ceaa4149e8e1a88694a2ccf2}{pack\-Result} ()} +\label{classpeoParaSGATransform_ba08e224ceaa4149e8e1a88694a2ccf2} + +\item +\hypertarget{classpeoParaSGATransform_257663dcdc6cc95b6183d472ffba1b2f}{ +void \hyperlink{classpeoParaSGATransform_257663dcdc6cc95b6183d472ffba1b2f}{unpack\-Result} ()} +\label{classpeoParaSGATransform_257663dcdc6cc95b6183d472ffba1b2f} + +\item +\hypertarget{classpeoParaSGATransform_4e19dfc22b6f69fa8b93537226551866}{ +void \hyperlink{classpeoParaSGATransform_4e19dfc22b6f69fa8b93537226551866}{notify\-Sending\-Data} ()} +\label{classpeoParaSGATransform_4e19dfc22b6f69fa8b93537226551866} + +\item +\hypertarget{classpeoParaSGATransform_8a0316e33897c395a81787f59ea7a1c8}{ +void \hyperlink{classpeoParaSGATransform_8a0316e33897c395a81787f59ea7a1c8}{notify\-Sending\-All\-Resource\-Requests} ()} +\label{classpeoParaSGATransform_8a0316e33897c395a81787f59ea7a1c8} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoParaSGATransform_c6f97deabe7502c84f5b6c479013f6dc}{ +\bf{eo\-Quad\-Op}$<$ EOT $>$ \& \hyperlink{classpeoParaSGATransform_c6f97deabe7502c84f5b6c479013f6dc}{cross}} +\label{classpeoParaSGATransform_c6f97deabe7502c84f5b6c479013f6dc} + +\item +\hypertarget{classpeoParaSGATransform_dfcf216e2df05016db4d57a5ffb0b0e2}{ +double \hyperlink{classpeoParaSGATransform_dfcf216e2df05016db4d57a5ffb0b0e2}{cross\_\-rate}} +\label{classpeoParaSGATransform_dfcf216e2df05016db4d57a5ffb0b0e2} + +\item +\hypertarget{classpeoParaSGATransform_34ff5f9d285ca4879cf8865fb425a311}{ +\bf{eo\-Mon\-Op}$<$ EOT $>$ \& \hyperlink{classpeoParaSGATransform_34ff5f9d285ca4879cf8865fb425a311}{mut}} +\label{classpeoParaSGATransform_34ff5f9d285ca4879cf8865fb425a311} + +\item +\hypertarget{classpeoParaSGATransform_b9d3a2094737d0bbd034aac942cc53e3}{ +double \hyperlink{classpeoParaSGATransform_b9d3a2094737d0bbd034aac942cc53e3}{mut\_\-rate}} +\label{classpeoParaSGATransform_b9d3a2094737d0bbd034aac942cc53e3} + +\item +\hypertarget{classpeoParaSGATransform_03972feadc86626e58fe60bd4061b57e}{ +unsigned \hyperlink{classpeoParaSGATransform_03972feadc86626e58fe60bd4061b57e}{idx}} +\label{classpeoParaSGATransform_03972feadc86626e58fe60bd4061b57e} + +\item +\hypertarget{classpeoParaSGATransform_94e10a1285e128aba6e71517c941f961}{ +\bf{eo\-Pop}$<$ EOT $>$ $\ast$ \hyperlink{classpeoParaSGATransform_94e10a1285e128aba6e71517c941f961}{pop}} +\label{classpeoParaSGATransform_94e10a1285e128aba6e71517c941f961} + +\item +\hypertarget{classpeoParaSGATransform_9ef60190e2e3bd5961a93d1b52cb275d}{ +EOT \hyperlink{classpeoParaSGATransform_9ef60190e2e3bd5961a93d1b52cb275d}{father}} +\label{classpeoParaSGATransform_9ef60190e2e3bd5961a93d1b52cb275d} + +\item +\hypertarget{classpeoParaSGATransform_e991ad2af6d116afd855de2db46e1d27}{ +EOT \hyperlink{classpeoParaSGATransform_e991ad2af6d116afd855de2db46e1d27}{mother}} +\label{classpeoParaSGATransform_e991ad2af6d116afd855de2db46e1d27} + +\item +\hypertarget{classpeoParaSGATransform_589ea7cd72d522ae51a07de4d8ffbf11}{ +unsigned \hyperlink{classpeoParaSGATransform_589ea7cd72d522ae51a07de4d8ffbf11}{num\_\-term}} +\label{classpeoParaSGATransform_589ea7cd72d522ae51a07de4d8ffbf11} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Para\-SGATransform$<$ EOT $>$} + + + + + +Definition at line 21 of file peo\-Para\-SGATransform.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Para\-SGATransform.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoPopEval.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoPopEval.eps new file mode 100644 index 000000000..b486aceee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoPopEval.eps @@ -0,0 +1,215 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 243.902 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.05 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoPopEval< EOT >) cw +(Service) cw +(Communicable) cw +(peoParaPopEval< EOT >) cw +(peoSeqPopEval< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoPopEval< EOT >) 0.5 1 box + (Service) 0.5 2 box + (Communicable) 0.5 3 box + (peoParaPopEval< EOT >) 0 0 box + (peoSeqPopEval< EOT >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +1 0.5 2 in +solid +0 0.5 2 out +solid +1 0.5 3 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoPopEval.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoPopEval.tex new file mode 100644 index 000000000..f727c5fdc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoPopEval.tex @@ -0,0 +1,39 @@ +\hypertarget{classpeoPopEval}{ +\section{peo\-Pop\-Eval$<$ EOT $>$ Class Template Reference} +\label{classpeoPopEval}\index{peoPopEval@{peoPopEval}} +} +The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors. + + +{\tt \#include $<$peo\-Pop\-Eval.h$>$} + +Inheritance diagram for peo\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoPopEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{ +virtual void \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop)=0} +\label{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f} + +\begin{CompactList}\small\item\em Interface function providing the signature for constructing an evaluation functor. \item\end{CompactList}\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Pop\-Eval$<$ EOT $>$} + +The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors. + +The derived classes may be used as wrappers for {\bf \doxyref{EO}}-derived evaluation functors. In order to have an example, please refer to the implementation of the {\bf \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}} and {\bf \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}} classes. + + + +Definition at line 19 of file peo\-Pop\-Eval.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Pop\-Eval.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqPopEval.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqPopEval.eps new file mode 100644 index 000000000..e8cf5fd7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqPopEval.eps @@ -0,0 +1,209 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 506.329 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 0.9875 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 1 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSeqPopEval< EOT >) cw +(peoPopEval< EOT >) cw +(Service) cw +(Communicable) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSeqPopEval< EOT >) 0 0 box + (peoPopEval< EOT >) 0 1 box + (Service) 0 2 box + (Communicable) 0 3 box + +% ----- relations ----- + +solid +0 0 0 out +solid +1 0 1 in +solid +0 0 1 out +solid +1 0 2 in +solid +0 0 2 out +solid +1 0 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqPopEval.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqPopEval.tex new file mode 100644 index 000000000..2cc8ba91f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqPopEval.tex @@ -0,0 +1,88 @@ +\hypertarget{classpeoSeqPopEval}{ +\section{peo\-Seq\-Pop\-Eval$<$ EOT $>$ Class Template Reference} +\label{classpeoSeqPopEval}\index{peoSeqPopEval@{peoSeqPopEval}} +} +The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor. + + +{\tt \#include $<$peo\-Seq\-Pop\-Eval.h$>$} + +Inheritance diagram for peo\-Seq\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoSeqPopEval} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSeqPopEval_a41f91ab4b2aeb325ff75feb66d4e003}{peo\-Seq\-Pop\-Eval} (\bf{eo\-Eval\-Func}$<$ EOT $>$ \&\_\-\_\-eval) +\begin{CompactList}\small\item\em Constructor function - it only sets an internal reference to point to the specified evaluation object. \item\end{CompactList}\item +void \hyperlink{classpeoSeqPopEval_b2c88b9a3ad9091949acf741844eb02f}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator for evaluating all the individuals of a given population - in a sequential iterative manner. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSeqPopEval_5465f31386c6b96bc8f7fb9393a28a2f}{ +\bf{eo\-Eval\-Func}$<$ EOT $>$ \& \hyperlink{classpeoSeqPopEval_5465f31386c6b96bc8f7fb9393a28a2f}{eval}} +\label{classpeoSeqPopEval_5465f31386c6b96bc8f7fb9393a28a2f} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Seq\-Pop\-Eval$<$ EOT $>$} + +The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor. + +The specified \doxyref{EO} evaluation object is applyied in an iterative manner to each individual of a specified population. + + + +Definition at line 21 of file peo\-Seq\-Pop\-Eval.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSeqPopEval_a41f91ab4b2aeb325ff75feb66d4e003}{ +\index{peoSeqPopEval@{peo\-Seq\-Pop\-Eval}!peoSeqPopEval@{peoSeqPopEval}} +\index{peoSeqPopEval@{peoSeqPopEval}!peoSeqPopEval@{peo\-Seq\-Pop\-Eval}} +\subsubsection[peoSeqPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} (\bf{eo\-Eval\-Func}$<$ EOT $>$ \& {\em \_\-\_\-eval})}} +\label{classpeoSeqPopEval_a41f91ab4b2aeb325ff75feb66d4e003} + + +Constructor function - it only sets an internal reference to point to the specified evaluation object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-eval - evaluation object to be applied for each individual of a specified population \end{description} +\end{Desc} + + +Definition at line 41 of file peo\-Seq\-Pop\-Eval.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSeqPopEval_b2c88b9a3ad9091949acf741844eb02f}{ +\index{peoSeqPopEval@{peo\-Seq\-Pop\-Eval}!operator()@{operator()}} +\index{operator()@{operator()}!peoSeqPopEval@{peo\-Seq\-Pop\-Eval}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}$<$ EOT $>$::operator() (\bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSeqPopEval_b2c88b9a3ad9091949acf741844eb02f} + + +Operator for evaluating all the individuals of a given population - in a sequential iterative manner. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be evaluated. \end{description} +\end{Desc} + + +Implements \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{peo\-Pop\-Eval$<$ EOT $>$}. + +Definition at line 46 of file peo\-Seq\-Pop\-Eval.h. + +References peo\-Seq\-Pop\-Eval$<$ EOT $>$::eval. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Seq\-Pop\-Eval.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqTransform.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqTransform.eps new file mode 100644 index 000000000..200358ca0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqTransform.eps @@ -0,0 +1,227 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 297.619 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 1.68 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSeqTransform< EOT >) cw +(peoTransform< EOT >) cw +(Service) cw +(eoTransform< EOT >) cw +(Communicable) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSeqTransform< EOT >) 0.5 0 box + (peoTransform< EOT >) 0.5 1 box + (Service) 0 2 box + (eoTransform< EOT >) 1 2 box + (Communicable) 0 3 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +1 0.5 1 in +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqTransform.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqTransform.tex new file mode 100644 index 000000000..363cb8141 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSeqTransform.tex @@ -0,0 +1,111 @@ +\hypertarget{classpeoSeqTransform}{ +\section{peo\-Seq\-Transform$<$ EOT $>$ Class Template Reference} +\label{classpeoSeqTransform}\index{peoSeqTransform@{peoSeqTransform}} +} +The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using \doxyref{EO} derived transform operators along with the Paradis\-EO evolutionary algorithms. + + +{\tt \#include $<$peo\-Seq\-Transform.h$>$} + +Inheritance diagram for peo\-Seq\-Transform$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classpeoSeqTransform} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSeqTransform_3b8e4ed19d9458938eb669d83a53c626}{peo\-Seq\-Transform} (\bf{eo\-Transform}$<$ EOT $>$ \&\_\-\_\-trans) +\begin{CompactList}\small\item\em Constructor function - sets an internal reference towards the specified EO-derived transform object. \item\end{CompactList}\item +void \hyperlink{classpeoSeqTransform_1ba63536abb6c4e1c369e0b7e066872e}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator for applying the specified transform operators on each individual of the given population. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_c4bf2724e9f6055f12bd169fad893be3}{ +virtual void \hyperlink{classpeoSeqTransform_c4bf2724e9f6055f12bd169fad893be3}{pack\-Data} ()} +\label{classpeoSeqTransform_c4bf2724e9f6055f12bd169fad893be3} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_24e6cf15ef230ed538031b522ddd4ae6}{ +virtual void \hyperlink{classpeoSeqTransform_24e6cf15ef230ed538031b522ddd4ae6}{unpack\-Data} ()} +\label{classpeoSeqTransform_24e6cf15ef230ed538031b522ddd4ae6} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_0294a2f9d6b44ec74d22eaceccdffc2b}{ +virtual void \hyperlink{classpeoSeqTransform_0294a2f9d6b44ec74d22eaceccdffc2b}{execute} ()} +\label{classpeoSeqTransform_0294a2f9d6b44ec74d22eaceccdffc2b} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_4861c61f9e46d83964ea8a156a9a3ee0}{ +virtual void \hyperlink{classpeoSeqTransform_4861c61f9e46d83964ea8a156a9a3ee0}{pack\-Result} ()} +\label{classpeoSeqTransform_4861c61f9e46d83964ea8a156a9a3ee0} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\item +\hypertarget{classpeoSeqTransform_5dd029fc011eb2a810ca1140025129b1}{ +virtual void \hyperlink{classpeoSeqTransform_5dd029fc011eb2a810ca1140025129b1}{unpack\-Result} ()} +\label{classpeoSeqTransform_5dd029fc011eb2a810ca1140025129b1} + +\begin{CompactList}\small\item\em Interface function for providing a link with the parallel architecture of the Paradis\-EO framework. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSeqTransform_ad3e16c59dd6c46dfc1baf7b88af30cf}{ +\bf{eo\-Transform}$<$ EOT $>$ \& \hyperlink{classpeoSeqTransform_ad3e16c59dd6c46dfc1baf7b88af30cf}{trans}} +\label{classpeoSeqTransform_ad3e16c59dd6c46dfc1baf7b88af30cf} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Seq\-Transform$<$ EOT $>$} + +The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using \doxyref{EO} derived transform operators along with the Paradis\-EO evolutionary algorithms. + +A minimal set of interface functions is also provided for creating the link with the parallel architecture of the Paradis\-EO framework. + + + +Definition at line 20 of file peo\-Seq\-Transform.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSeqTransform_3b8e4ed19d9458938eb669d83a53c626}{ +\index{peoSeqTransform@{peo\-Seq\-Transform}!peoSeqTransform@{peoSeqTransform}} +\index{peoSeqTransform@{peoSeqTransform}!peoSeqTransform@{peo\-Seq\-Transform}} +\subsubsection[peoSeqTransform]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}$<$ EOT $>$::\hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} (\bf{eo\-Transform}$<$ EOT $>$ \& {\em \_\-\_\-trans})}} +\label{classpeoSeqTransform_3b8e4ed19d9458938eb669d83a53c626} + + +Constructor function - sets an internal reference towards the specified EO-derived transform object. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Transform$<$}]EOT $>$\& \_\-\_\-trans - EO-derived transform object including crossover and mutation operators. \end{description} +\end{Desc} + + +Definition at line 55 of file peo\-Seq\-Transform.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSeqTransform_1ba63536abb6c4e1c369e0b7e066872e}{ +\index{peoSeqTransform@{peo\-Seq\-Transform}!operator()@{operator()}} +\index{operator()@{operator()}!peoSeqTransform@{peo\-Seq\-Transform}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}$<$ EOT $>$::operator() (\bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoSeqTransform_1ba63536abb6c4e1c369e0b7e066872e} + + +Operator for applying the specified transform operators on each individual of the given population. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be transformed by applying the crossover and mutation operators. \end{description} +\end{Desc} + + +Definition at line 60 of file peo\-Seq\-Transform.h. + +References peo\-Seq\-Transform$<$ EOT $>$::trans. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Seq\-Transform.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps new file mode 100644 index 000000000..6f0fb127a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 231.214 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.1625 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSyncIslandMig< EOT >) cw +(Cooperative) cw +(eoUpdater) cw +(Communicable) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSyncIslandMig< EOT >) 0.5 0 box + (Cooperative) 0 1 box + (eoUpdater) 1 1 box + (Communicable) 0 2 box + (eoF< void >) 1 2 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex new file mode 100644 index 000000000..c49a5ec31 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex @@ -0,0 +1,227 @@ +\hypertarget{classpeoSyncIslandMig}{ +\section{peo\-Sync\-Island\-Mig$<$ EOT $>$ Class Template Reference} +\label{classpeoSyncIslandMig}\index{peoSyncIslandMig@{peoSyncIslandMig}} +} +The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + + +{\tt \#include $<$peo\-Sync\-Island\-Mig.h$>$} + +Inheritance diagram for peo\-Sync\-Island\-Mig$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoSyncIslandMig} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}{peo\-Sync\-Island\-Mig} (unsigned \_\-\_\-frequency, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-source, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-destination) +\begin{CompactList}\small\item\em Constructor for the \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters. \item\end{CompactList}\item +void \hyperlink{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}{operator()} () +\begin{CompactList}\small\item\em \doxyref{Function} operator to be called as checkpoint for performing the migration step. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}{ +void \hyperlink{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}{pack} ()} +\label{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad} + +\begin{CompactList}\small\item\em Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}{ +void \hyperlink{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}{unpack} ()} +\label{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1} + +\begin{CompactList}\small\item\em Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}{ +void \hyperlink{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}{notify\-Sending} ()} +\label{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008} + +\begin{CompactList}\small\item\em Auxiliary function dealing with migration notifications. There is no need to explicitly call the function. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Member Functions} +\begin{CompactItemize} +\item +\hypertarget{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}{ +void \hyperlink{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}{emigrate} ()} +\label{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063} + +\item +\hypertarget{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}{ +void \hyperlink{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}{immigrate} ()} +\label{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7} + +\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}{ +\bf{eo\-Periodic\-Continue}$<$ EOT $>$ \hyperlink{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}{cont}} +\label{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2} + +\item +\hypertarget{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}{ +\bf{eo\-Select}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}{select}} +\label{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d} + +\item +\hypertarget{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}{ +\bf{eo\-Replacement}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}{replace}} +\label{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891} + +\item +\hypertarget{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}{ +\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}{topology}} +\label{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace} + +\item +\hypertarget{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}{ +\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}{source}} +\label{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6} + +\item +\hypertarget{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}{ +\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}{destination}} +\label{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6} + +\item +\hypertarget{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}{ +std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}{imm}} +\label{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3} + +\item +\hypertarget{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}{ +std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}{em}} +\label{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322} + +\item +\hypertarget{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}{ +std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}{coop\_\-em}} +\label{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d} + +\item +\hypertarget{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}{ +sem\_\-t \hyperlink{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}{sync}} +\label{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Sync\-Island\-Mig$<$ EOT $>$} + +The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + +frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals. + +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: + +\begin{TabularC}{2} +\hline +{\bf do} \{ ~ &~ \\\hline +~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline +~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline +~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offspring \\\hline +~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline +\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population, including the migration operator, if any specified \\\hline +\end{TabularC} + + +Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the {\bf \hyperlink{classRunner}{Runner}} class (for example a \hyperlink{classpeoEA}{peo\-EA} object represents a possible owner). A simple example is offered bellow: + +\begin{enumerate} +\item topological model to be followed when performing migrations: \par + \par + \begin{TabularC}{2} +\hline +\hyperlink{classRingTopology}{Ring\-Topology} mig\-Topology; ~ &// a simple ring topological model - each island communicates with two other islands \\\hline +\end{TabularC} + + +\item the continuation criterion, selection and replacement strategy etc. are defined: \par + \par + \begin{TabularC}{2} +\hline +eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// population of individuals to be used for the evolutionary algorithm \\\hline +~ &~ \\\hline +eo\-Random\-Select$<$ EOT $>$ mig\-Select\-Strategy; ~ &// selection strategy - in this case a random selection is applied \\\hline +eo\-Select\-Number$<$ EOT $>$ mig\-Select( mig\-Select\-Strategy, MIG\_\-SIZE ); ~ &// number of individuals to be selected using the specified strategy \\\hline +eo\-Plus\-Replacement$<$ EOT $>$ mig\-Replace; ~ &// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals \\\hline +~ &~ \\\hline +peo\-Sync\-Island\-Mig$<$ EOT $>$ sync\-Migration( \par + ~~~~~~~~ MIG\_\-FREQ, mig\-Select, mig\-Replace, mig\-Topology, \par + ~~~~~~~~ population, population \par + ); ~ &// synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated \\\hline +\end{TabularC} + + +\item creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): \par + \par + \begin{TabularC}{2} +\hline +... ~ &~ \\\hline +eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// the evolutionary algorithm will stop after NUM\_\-GEN generations \\\hline +eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// number of individuals to be selected using the specified strategy \\\hline +... ~ &~ \\\hline +ea\-Checkpoint\-Continue.add( sync\-Migration ); ~ &// adding the migration operator as checkpoint element \\\hline +... ~ &~ \\\hline +\end{TabularC} + + +\item definition of an owner evolutionary algorithm (an object inheriting the {\bf \hyperlink{classRunner}{Runner}} class): \par + \par + \begin{TabularC}{2} +\hline +peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace); ~ &// evolutionary algorithm having as checkpoint the ea\-Checkpoint\-Continue object defined above \\\hline +sync\-Migration.set\-Owner( ea\-Alg ); ~ &// setting the evolutionary algorithm as owner of the migration object \\\hline +ea\-Alg( population ); ~ &// applying the evolutionary algorithm on a given population \\\hline +\end{TabularC} +\end{enumerate} + + +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. + +The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ mig\-Topology object has to be passed as parameter for all the migration objects, in order to interconnect them). + + + +Definition at line 114 of file peo\-Sync\-Island\-Mig.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}{ +\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!peoSyncIslandMig@{peoSyncIslandMig}} +\index{peoSyncIslandMig@{peoSyncIslandMig}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}} +\subsubsection[peoSyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ EOT $>$::\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} (unsigned {\em \_\-\_\-frequency}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-source}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-destination})}} +\label{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c} + + +Constructor for the \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em unsigned}]\_\-\_\-frequency - frequency of the migrations - the migrations occur periodically; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy used for integrating the immigrant individuals in the destination population; \item[{\em Topology\&}]\_\-\_\-topology - topological model to be followed when performing migrations; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-source - source population from which the emigrant individuals are selected; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-destination - destination population in which the immigrant population are integrated. \end{description} +\end{Desc} + + +Definition at line 178 of file peo\-Sync\-Island\-Mig.h. + +References Topology::add(), and peo\-Sync\-Island\-Mig$<$ EOT $>$::sync. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}{ +\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!operator()@{operator()}} +\index{operator()@{operator()}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ EOT $>$::operator() ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36} + + +\doxyref{Function} operator to be called as checkpoint for performing the migration step. + +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. + +Implements \bf{eo\-F$<$ void $>$}. + +Definition at line 252 of file peo\-Sync\-Island\-Mig.h. + +References peo\-Sync\-Island\-Mig$<$ EOT $>$::cont, peo\-Sync\-Island\-Mig$<$ EOT $>$::emigrate(), Cooperative::get\-Owner(), peo\-Sync\-Island\-Mig$<$ EOT $>$::immigrate(), Thread::set\-Active(), peo\-Sync\-Island\-Mig$<$ EOT $>$::source, Communicable::stop(), and peo\-Sync\-Island\-Mig$<$ EOT $>$::sync. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Sync\-Island\-Mig.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncMultiStart.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncMultiStart.eps new file mode 100644 index 000000000..6a97a65f8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncMultiStart.eps @@ -0,0 +1,221 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 232.558 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2.15 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 4 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoSyncMultiStart< EOT >) cw +(Service) cw +(eoUpdater) cw +(Communicable) cw +(eoF< void >) cw +(eoFunctorBase) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoSyncMultiStart< EOT >) 0.5 0 box + (Service) 0 1 box + (eoUpdater) 1 1 box + (Communicable) 0 2 box + (eoF< void >) 1 2 box + (eoFunctorBase) 1 3 box + +% ----- relations ----- + +solid +0 0.5 0 out +solid +0 1 1 conn +solid +1 0 1 in +solid +0 0 1 out +solid +1 1 1 in +solid +0 1 1 out +solid +1 0 2 in +solid +1 1 2 in +solid +0 1 2 out +solid +1 1 3 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncMultiStart.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncMultiStart.tex new file mode 100644 index 000000000..0d9edadaa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoSyncMultiStart.tex @@ -0,0 +1,245 @@ +\hypertarget{classpeoSyncMultiStart}{ +\section{peo\-Sync\-Multi\-Start$<$ EOT $>$ Class Template Reference} +\label{classpeoSyncMultiStart}\index{peoSyncMultiStart@{peoSyncMultiStart}} +} +The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + + +{\tt \#include $<$peo\-Sync\-Multi\-Start.h$>$} + +Inheritance diagram for peo\-Sync\-Multi\-Start$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=4cm]{classpeoSyncMultiStart} +\end{center} +\end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoSyncMultiStart_d29f94aad3c1f443bfffc8b6aee0704c}{peo\-Sync\-Multi\-Start} (\bf{eo\-Continue}$<$ EOT $>$ \&\_\-\_\-cont, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace, \bf{mo\-Algo}$<$ EOT $>$ \&\_\-\_\-ls, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_76385b33fe514f91cb83f0fbecbeb3c2}{operator()} () +\begin{CompactList}\small\item\em Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_8becfab1922b64708dca5a53e2932a5a}{pack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_2903a441b77cded266b5fb651e17a5b5}{unpack\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_a4d1c2943c290de540800087b54dc49b}{execute} () +\begin{CompactList}\small\item\em Auxiliary function for actually executing the specified algorithm on one assigned individual. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_6c48eb0dae741cff7203b65e226f9616}{pack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_c3cbd1f10a89d1915c5ccf82a2c34a1d}{unpack\-Result} () +\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_32ec0d01d3fd8a9932abd68f4781fc94}{notify\-Sending\-Data} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \item\end{CompactList}\item +void \hyperlink{classpeoSyncMultiStart_fc90282cc4e93cdea8f82fd52dd78fb0}{notify\-Sending\-All\-Resource\-Requests} () +\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\hypertarget{classpeoSyncMultiStart_43f4fa9b125baef6fc8b968dfd16f437}{ +\bf{eo\-Continue}$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_43f4fa9b125baef6fc8b968dfd16f437}{cont}} +\label{classpeoSyncMultiStart_43f4fa9b125baef6fc8b968dfd16f437} + +\item +\hypertarget{classpeoSyncMultiStart_8fc9a3d046023ddd077defec3c23ab3b}{ +\bf{eo\-Select}$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_8fc9a3d046023ddd077defec3c23ab3b}{select}} +\label{classpeoSyncMultiStart_8fc9a3d046023ddd077defec3c23ab3b} + +\item +\hypertarget{classpeoSyncMultiStart_a375ccea98e9bf2a0854dac27df4522f}{ +\bf{eo\-Replacement}$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_a375ccea98e9bf2a0854dac27df4522f}{replace}} +\label{classpeoSyncMultiStart_a375ccea98e9bf2a0854dac27df4522f} + +\item +\hypertarget{classpeoSyncMultiStart_4d317966de767dcc87eee0286ea7f95d}{ +\bf{mo\-Algo}$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_4d317966de767dcc87eee0286ea7f95d}{ls}} +\label{classpeoSyncMultiStart_4d317966de767dcc87eee0286ea7f95d} + +\item +\hypertarget{classpeoSyncMultiStart_391178bd6b8a97a08ab4e345f070e967}{ +\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoSyncMultiStart_391178bd6b8a97a08ab4e345f070e967}{pop}} +\label{classpeoSyncMultiStart_391178bd6b8a97a08ab4e345f070e967} + +\item +\hypertarget{classpeoSyncMultiStart_dbcc1a069ec72ecd8d40c392640d84b3}{ +\bf{eo\-Pop}$<$ EOT $>$ \hyperlink{classpeoSyncMultiStart_dbcc1a069ec72ecd8d40c392640d84b3}{sel}} +\label{classpeoSyncMultiStart_dbcc1a069ec72ecd8d40c392640d84b3} + +\item +\hypertarget{classpeoSyncMultiStart_ca10f6d258105e3c4f0d1660db5b7679}{ +\bf{eo\-Pop}$<$ EOT $>$ \hyperlink{classpeoSyncMultiStart_ca10f6d258105e3c4f0d1660db5b7679}{impr\_\-sel}} +\label{classpeoSyncMultiStart_ca10f6d258105e3c4f0d1660db5b7679} + +\item +\hypertarget{classpeoSyncMultiStart_2c2ebe46470d1425f0409897deab435b}{ +EOT \hyperlink{classpeoSyncMultiStart_2c2ebe46470d1425f0409897deab435b}{sol}} +\label{classpeoSyncMultiStart_2c2ebe46470d1425f0409897deab435b} + +\item +\hypertarget{classpeoSyncMultiStart_64191ef79b7b589964ac9c3e23ae6718}{ +unsigned \hyperlink{classpeoSyncMultiStart_64191ef79b7b589964ac9c3e23ae6718}{idx}} +\label{classpeoSyncMultiStart_64191ef79b7b589964ac9c3e23ae6718} + +\item +\hypertarget{classpeoSyncMultiStart_773eb9097550d9444f25ca8f48997a30}{ +unsigned \hyperlink{classpeoSyncMultiStart_773eb9097550d9444f25ca8f48997a30}{num\_\-term}} +\label{classpeoSyncMultiStart_773eb9097550d9444f25ca8f48997a30} + +\end{CompactItemize} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Sync\-Multi\-Start$<$ EOT $>$} + +The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + +As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} object can be specified as checkpoint object for a classic Paradis\-EO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation. + + + +Definition at line 36 of file peo\-Sync\-Multi\-Start.h. + +\subsection{Constructor \& Destructor Documentation} +\hypertarget{classpeoSyncMultiStart_d29f94aad3c1f443bfffc8b6aee0704c}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!peoSyncMultiStart@{peoSyncMultiStart}} +\index{peoSyncMultiStart@{peoSyncMultiStart}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[peoSyncMultiStart]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::\hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} (\bf{eo\-Continue}$<$ EOT $>$ \& {\em \_\-\_\-cont}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace}, \bf{mo\-Algo}$<$ EOT $>$ \& {\em \_\-\_\-ls}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoSyncMultiStart_d29f94aad3c1f443bfffc8b6aee0704c} + + +Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. + +\begin{Desc} +\item[Parameters:] +\begin{description} +\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - defined for including further functionality - no semantics associated at this time; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy for integrating the resulting individuals in the initial population; \item[{\em mo\-Algo$<$}]EOT $>$\& \_\-\_\-ls - algorithm to be applied on each of the selected individuals - a {\bf mo\-Algo$<$ EOT $>$}-derived object must be specified; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - the initial population from which the individuals are selected for applying the specified algorithm. \end{description} +\end{Desc} + + +Definition at line 106 of file peo\-Sync\-Multi\-Start.h. + +\subsection{Member Function Documentation} +\hypertarget{classpeoSyncMultiStart_76385b33fe514f91cb83f0fbecbeb3c2}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!operator()@{operator()}} +\index{operator()@{operator()}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::operator() ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_76385b33fe514f91cb83f0fbecbeb3c2} + + +Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. + +There is no need to explicitly call the operator - automatically called as checkpoint operator. + +Implements \bf{eo\-F$<$ void $>$}. + +Definition at line 161 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::idx, peo\-Sync\-Multi\-Start$<$ EOT $>$::impr\_\-sel, peo\-Sync\-Multi\-Start$<$ EOT $>$::num\_\-term, peo\-Sync\-Multi\-Start$<$ EOT $>$::pop, Service::request\-Resource\-Request(), peo\-Sync\-Multi\-Start$<$ EOT $>$::sel, peo\-Sync\-Multi\-Start$<$ EOT $>$::select, and Communicable::stop().\hypertarget{classpeoSyncMultiStart_8becfab1922b64708dca5a53e2932a5a}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!packData@{packData}} +\index{packData@{packData}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[packData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::pack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_8becfab1922b64708dca5a53e2932a5a} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{Service}. + +Definition at line 120 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::idx, and peo\-Sync\-Multi\-Start$<$ EOT $>$::sel.\hypertarget{classpeoSyncMultiStart_2903a441b77cded266b5fb651e17a5b5}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!unpackData@{unpackData}} +\index{unpackData@{unpackData}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[unpackData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::unpack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_2903a441b77cded266b5fb651e17a5b5} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_3bd87b444710813d30fd754d4d0b4df3}{Service}. + +Definition at line 126 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_a4d1c2943c290de540800087b54dc49b}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!execute@{execute}} +\index{execute@{execute}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[execute]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::execute ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_a4d1c2943c290de540800087b54dc49b} + + +Auxiliary function for actually executing the specified algorithm on one assigned individual. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_e4f2894e6121e60f38d41cfbd7447ae4}{Service}. + +Definition at line 132 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::ls, and peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_6c48eb0dae741cff7203b65e226f9616}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!packResult@{packResult}} +\index{packResult@{packResult}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[packResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::pack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_6c48eb0dae741cff7203b65e226f9616} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{Service}. + +Definition at line 138 of file peo\-Sync\-Multi\-Start.h. + +References peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_c3cbd1f10a89d1915c5ccf82a2c34a1d}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!unpackResult@{unpackResult}} +\index{unpackResult@{unpackResult}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[unpackResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::unpack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_c3cbd1f10a89d1915c5ccf82a2c34a1d} + + +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_45c06344edbfa482b91f68e2035a6099}{Service}. + +Definition at line 144 of file peo\-Sync\-Multi\-Start.h. + +References Service::get\-Owner(), peo\-Sync\-Multi\-Start$<$ EOT $>$::impr\_\-sel, peo\-Sync\-Multi\-Start$<$ EOT $>$::num\_\-term, peo\-Sync\-Multi\-Start$<$ EOT $>$::pop, peo\-Sync\-Multi\-Start$<$ EOT $>$::replace, Communicable::resume(), peo\-Sync\-Multi\-Start$<$ EOT $>$::sel, Thread::set\-Active(), and peo\-Sync\-Multi\-Start$<$ EOT $>$::sol.\hypertarget{classpeoSyncMultiStart_32ec0d01d3fd8a9932abd68f4781fc94}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!notifySendingData@{notifySendingData}} +\index{notifySendingData@{notifySendingData}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[notifySendingData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::notify\-Sending\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_32ec0d01d3fd8a9932abd68f4781fc94} + + +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_81ad4d6ebb50045b8977e2ab74826f30}{Service}. + +Definition at line 172 of file peo\-Sync\-Multi\-Start.h.\hypertarget{classpeoSyncMultiStart_fc90282cc4e93cdea8f82fd52dd78fb0}{ +\index{peoSyncMultiStart@{peo\-Sync\-Multi\-Start}!notifySendingAllResourceRequests@{notifySendingAllResourceRequests}} +\index{notifySendingAllResourceRequests@{notifySendingAllResourceRequests}!peoSyncMultiStart@{peo\-Sync\-Multi\-Start}} +\subsubsection[notifySendingAllResourceRequests]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start}$<$ EOT $>$::notify\-Sending\-All\-Resource\-Requests ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}} +\label{classpeoSyncMultiStart_fc90282cc4e93cdea8f82fd52dd78fb0} + + +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. + +There is no need to explicitly call the function. + +Reimplemented from \hyperlink{classService_f94cc8a5c2665d4574041737e61e9ffc}{Service}. + +Definition at line 177 of file peo\-Sync\-Multi\-Start.h. + +References Service::get\-Owner(), and Thread::set\-Passive(). + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Sync\-Multi\-Start.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoTransform.eps b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoTransform.eps new file mode 100644 index 000000000..685b4bc71 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoTransform.eps @@ -0,0 +1,233 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: ClassName +%%Creator: Doxygen +%%CreationDate: Time +%%For: +%Magnification: 1.00 +%%Orientation: Portrait +%%BoundingBox: 0 0 500 250 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%EndComments + +% ----- variables ----- + +/boxwidth 0 def +/boxheight 40 def +/fontheight 24 def +/marginwidth 10 def +/distx 20 def +/disty 40 def +/boundaspect 2 def % aspect ratio of the BoundingBox (width/height) +/boundx 500 def +/boundy boundx boundaspect div def +/xspacing 0 def +/yspacing 0 def +/rows 5 def +/cols 2 def +/scalefactor 0 def +/boxfont /Times-Roman findfont fontheight scalefont def + +% ----- procedures ----- + +/dotted { [1 4] 0 setdash } def +/dashed { [5] 0 setdash } def +/solid { [] 0 setdash } def + +/max % result = MAX(arg1,arg2) +{ + /a exch def + /b exch def + a b gt {a} {b} ifelse +} def + +/xoffset % result = MAX(0,(scalefactor-(boxwidth*cols+distx*(cols-1)))/2) +{ + 0 scalefactor boxwidth cols mul distx cols 1 sub mul add sub 2 div max +} def + +/cw % boxwidth = MAX(boxwidth, stringwidth(arg1)) +{ + /str exch def + /boxwidth boxwidth str stringwidth pop max def +} def + +/box % draws a box with text `arg1' at grid pos (arg2,arg3) +{ gsave + 2 setlinewidth + newpath + exch xspacing mul xoffset add + exch yspacing mul + moveto + boxwidth 0 rlineto + 0 boxheight rlineto + boxwidth neg 0 rlineto + 0 boxheight neg rlineto + closepath + dup stringwidth pop neg boxwidth add 2 div + boxheight fontheight 2 div sub 2 div + rmoveto show stroke + grestore +} def + +/mark +{ newpath + exch xspacing mul xoffset add boxwidth add + exch yspacing mul + moveto + 0 boxheight 4 div rlineto + boxheight neg 4 div boxheight neg 4 div rlineto + closepath + eofill + stroke +} def + +/arrow +{ newpath + moveto + 3 -8 rlineto + -6 0 rlineto + 3 8 rlineto + closepath + eofill + stroke +} def + +/out % draws an output connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight add + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/in % draws an input connector for the block at (arg1,arg2) +{ + newpath + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul disty 2 div sub + /y exch def + /x exch def + x y moveto + 0 disty 2 div rlineto + stroke + 1 eq { x y disty 2 div add arrow } if +} def + +/hedge +{ + exch xspacing mul xoffset add boxwidth 2 div add + exch yspacing mul boxheight 2 div sub + /y exch def + /x exch def + newpath + x y moveto + boxwidth 2 div distx add 0 rlineto + stroke + 1 eq + { newpath x boxwidth 2 div distx add add y moveto + -8 3 rlineto + 0 -6 rlineto + 8 3 rlineto + closepath + eofill + stroke + } if +} def + +/vedge +{ + /ye exch def + /ys exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add dup + ys yspacing mul boxheight 2 div sub + moveto + ye yspacing mul boxheight 2 div sub + lineto + stroke +} def + +/conn % connections the blocks from col `arg1' to `arg2' of row `arg3' +{ + /ys exch def + /xe exch def + /xs exch def + newpath + xs xspacing mul xoffset add boxwidth 2 div add + ys yspacing mul disty 2 div sub + moveto + xspacing xe xs sub mul 0 + rlineto + stroke +} def + +% ----- main ------ + +boxfont setfont +1 boundaspect scale +(peoTransform< EOT >) cw +(Service) cw +(eoTransform< EOT >) cw +(Communicable) cw +(eoUF< A1, R >) cw +(eoFunctorBase) cw +(peoParaSGATransform< EOT >) cw +(peoSeqTransform< EOT >) cw +/boxwidth boxwidth marginwidth 2 mul add def +/xspacing boxwidth distx add def +/yspacing boxheight disty add def +/scalefactor + boxwidth cols mul distx cols 1 sub mul add + boxheight rows mul disty rows 1 sub mul add boundaspect mul + max def +boundx scalefactor div boundy scalefactor div scale + +% ----- classes ----- + + (peoTransform< EOT >) 0.5 1 box + (Service) 0 2 box + (eoTransform< EOT >) 1 2 box + (Communicable) 0 3 box + (eoUF< A1, R >) 1 3 box + (eoFunctorBase) 1 4 box + (peoParaSGATransform< EOT >) 0 0 box + (peoSeqTransform< EOT >) 1 0 box + +% ----- relations ----- + +solid +0 0.5 1 out +solid +0 1 2 conn +solid +1 0 2 in +solid +0 0 2 out +solid +1 1 2 in +solid +0 1 2 out +solid +1 0 3 in +solid +1 1 3 in +solid +0 1 3 out +solid +1 1 4 in +solid +1 0.5 0.25 out +solid +0 1 1 conn +solid +0 0 0.75 in +solid +0 1 0.75 in diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoTransform.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoTransform.tex new file mode 100644 index 000000000..218909383 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/classpeoTransform.tex @@ -0,0 +1,29 @@ +\hypertarget{classpeoTransform}{ +\section{peo\-Transform$<$ EOT $>$ Class Template Reference} +\label{classpeoTransform}\index{peoTransform@{peoTransform}} +} +The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes. + + +{\tt \#include $<$peo\-Transform.h$>$} + +Inheritance diagram for peo\-Transform$<$ EOT $>$::\begin{figure}[H] +\begin{center} +\leavevmode +\includegraphics[height=5cm]{classpeoTransform} +\end{center} +\end{figure} + + +\subsection{Detailed Description} +\subsubsection*{template$<$class EOT$>$ class peo\-Transform$<$ EOT $>$} + +The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes. + + + +Definition at line 20 of file peo\-Transform.h. + +The documentation for this class was generated from the following file:\begin{CompactItemize} +\item +peo\-Transform.h\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/doxygen.sty b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/doxygen.sty new file mode 100644 index 000000000..dc3bf5e7e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/doxygen.sty @@ -0,0 +1,78 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} +\RequirePackage{calc} +\RequirePackage{array} +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} +\renewcommand{\chaptermark}[1]{\markboth{#1}{}} +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +\lhead[\fancyplain{}{\bfseries\thepage}] + {\fancyplain{}{\bfseries\rightmark}} +\rhead[\fancyplain{}{\bfseries\leftmark}] + {\fancyplain{}{\bfseries\thepage}} +\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Thu Jul 5 13:43:30 2007 for Paradis\-EO-PEO by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Thu Jul 5 13:43:30 2007 for Paradis\-EO-PEO by Doxygen }} +\cfoot{} +\newenvironment{Code} +{\footnotesize} +{\normalsize} +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DocInclude} +{\footnotesize} +{\normalsize} +\newenvironment{VerbInclude} +{\footnotesize} +{\normalsize} +\newenvironment{Image} +{\begin{figure}[H]} +{\end{figure}} +\newenvironment{ImageNoCaption}{}{} +\newenvironment{CompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{CompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{tabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{tabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{1} +\sloppy +\usepackage[T1]{fontenc} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/hierarchy.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/hierarchy.tex new file mode 100644 index 000000000..9bc0e8623 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/hierarchy.tex @@ -0,0 +1,64 @@ +\section{Paradis\-EO-PEO Class Hierarchy} +This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList} +\item \contentsline{section}{Communicable}{\pageref{classCommunicable}}{} +\begin{CompactList} +\item \contentsline{section}{Cooperative}{\pageref{classCooperative}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoAsyncIslandMig}}{} +\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoSyncIslandMig}}{} +\end{CompactList} +\item \contentsline{section}{Runner}{\pageref{classRunner}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-EA$<$ EOT $>$}{\pageref{classpeoEA}}{} +\end{CompactList} +\item \contentsline{section}{Service}{\pageref{classService}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoPopEval}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Para\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoParaPopEval}}{} +\item \contentsline{section}{peo\-Seq\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoSeqPopEval}}{} +\end{CompactList} +\item \contentsline{section}{peo\-Sync\-Multi\-Start$<$ EOT $>$}{\pageref{classpeoSyncMultiStart}}{} +\item \contentsline{section}{peo\-Transform$<$ EOT $>$}{\pageref{classpeoTransform}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-Para\-SGATransform$<$ EOT $>$}{\pageref{classpeoParaSGATransform}}{} +\item \contentsline{section}{peo\-Seq\-Transform$<$ EOT $>$}{\pageref{classpeoSeqTransform}}{} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{Worker}{\pageref{classWorker}}{} +\end{CompactList} +\item eo\-Functor\-Base{\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-BF$<$ A1, A2, R $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{peo\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoAggEvalFunc}}{} +\begin{CompactList} +\item \contentsline{section}{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoNoAggEvalFunc}}{} +\end{CompactList} +\end{CompactList} +\item eo\-F$<$ void $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Updater{\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoAsyncIslandMig}}{} +\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoSyncIslandMig}}{} +\item \contentsline{section}{peo\-Sync\-Multi\-Start$<$ EOT $>$}{\pageref{classpeoSyncMultiStart}}{} +\end{CompactList} +\end{CompactList} +\item eo\-UF$<$ A1, R $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Transform$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{peo\-Transform$<$ EOT $>$}{\pageref{classpeoTransform}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item \contentsline{section}{SEND\_\-REQUEST}{\pageref{structSEND__REQUEST}}{} +\item \contentsline{section}{Thread}{\pageref{classThread}}{} +\begin{CompactList} +\item \contentsline{section}{Reactive\-Thread}{\pageref{classReactiveThread}}{} +\begin{CompactList} +\item \contentsline{section}{Communicator}{\pageref{classCommunicator}}{} +\item \contentsline{section}{Worker}{\pageref{classWorker}}{} +\end{CompactList} +\item \contentsline{section}{Runner}{\pageref{classRunner}}{} +\end{CompactList} +\item \contentsline{section}{Topology}{\pageref{classTopology}}{} +\begin{CompactList} +\item \contentsline{section}{Ring\-Topology}{\pageref{classRingTopology}}{} +\end{CompactList} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/main.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/main.tex new file mode 100644 index 000000000..dca7752e8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/main.tex @@ -0,0 +1,52 @@ +\hypertarget{main_intro}{}\section{intro}\label{main_intro} +Paradis\-EO is a white-box object-oriented framework dedicated to the reusable design of parallel and distributed metaheuristics (PDM). Paradis\-EO provides a broad range of features including evolutionary algorithms (EA), local searches (LS), the most common parallel and distributed models and hybridization mechanisms, etc. This high content and utility encourages its use at European level. Paradis\-EO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse. Furthermore, the fine-grained nature of the classes provided by the framework allow a higher flexibility compared to other frameworks. Paradis\-EO is one of the rare frameworks that provide the most common parallel and distributed models. Their implementation is portable on distributed-memory machines as well as on shared-memory multiprocessors, as it uses standard libraries such as MPI, PVM and PThreads. The models can be exploited in a transparent way, one has just to instantiate their associated provided classes. Their experimentation on the radio network design real-world application demonstrate their efficiency. + +In practice, combinatorial optimization problems are often NP-hard, CPU time-consuming, and evolve over time. Unlike exact methods, metaheuristics allow to tackle large-size problems instances by delivering satisfactory solutions in a reasonable time. Metaheuristics are general-purpose heuristics that split in two categories: evolutionary algorithms (EA) and local search methods (LS). These two families have complementary characteristics: EA allow a better exploration of the search space, while LS have the power to intensify the search in promising regions. Their hybridization allows to deliver robust and better solutions + +Although serial metaheuristics have a polynomial temporal complexity, they remain unsatisfactory for industrial problems. Parallel and distributed computing is a powerful way to deal with the performance issue of these problems. Numerous parallel and distributed metaheuristics (PDM) and their implementations have been proposed, and are available on the\-Web. They can be reused and adapted to his/her own problems. However, the user has to deeply examine the code and rewrite its problem-specific sections. The task is tedious, errorprone, takes along time and makes harder the produced code maintenance. A better way to reuse the code of existing PDM is the reuse through libraries. These are often more reliable as they are more tested and documented. They allow a better maintainability and efficiency. However, libraries do not allow the reuse of design.\hypertarget{main_parallel_metaheuristics}{}\section{Parallel and distributed metaheuristics}\label{main_parallel_metaheuristics} +\hypertarget{main_parallel_distributed}{}\subsection{Parallel distributed evolutionary algorithms}\label{main_parallel_distributed} +Evolutionary Algorithms (EA) are based on the iterative improvement of a population of solutions. At each step, individuals are selected, paired and recombined in order to generate new solutions that replace other ones, and so on. As the algorithm converges, the population is mainly composed of individuals well adapted to the \char`\"{}environment\char`\"{}, for instance the problem. The main features that characterize EA are the way the population is initialized, the selection strategy (deterministic/stochastic) by fostering \char`\"{}good\char`\"{} solutions, the replacement strategy that discards individuals, and the continuation/stopping criterion to decide whether the evolution should go on or not. + +Basically, three major parallel and distributed models for EA can been distinguished: the island (a)synchronous cooperative model, the parallel evaluation of the population, and the distributed evaluation of a single solution. \begin{itemize} +\item {\em Island (a)synchronous cooperative model\/}. Different EA are simultaneously deployed to cooperate for computing better and robust solutions. They exchange in an asynchronous way genetic stuff to diversify the search. The objective is to allow to delay the global convergence, especially when the\-EAare heterogeneous regarding the variation operators. The migration of individuals follows a policy defined by few parameters: the migration decision criterion, the exchange topology, the number of emigrants, the emigrants selection policy, and the replacement/integration policy. + +\item {\em Parallel evaluation of the population\/}. It is required as it is in general the most timeconsuming. The parallel evaluation follows the centralized model. The farmer applies the following operations: selection, transformation and replacement as they require a global management of the population. At each generation, it distributes the set of new solutions between differentworkers. These evaluate and return back the solutions and their quality values. An efficient execution is often obtained particularly when the evaluation of each solution is costly. The two main advantages of an asynchronous model over the synchronous model are: (1) the fault tolerance of the asynchronous model; (2) the robustness in case the fitness computation can take very different computation times (e.g. for nonlinear numerical optimization). Whereas some time-out detection can be used to address the former issue, the latter one can be partially overcome if the grain is set to very small values, as individuals will be sent out for evaluations upon request of the workers. + +\item {\em Distributed evaluation of a single solution\/}. The quality of each solution is evaluated in a parallel centralized way. That model is particularly interesting when the evaluation function can be itself parallelized as it is CPU time-consuming and/or IO intensive. In that case, the function can be viewed as an aggregation of a certain number of partial functions. The partial functions could also be identical if for example the problem to deal with is a data mining one. The evaluation is thus data parallel and the accesses to data base are performed in parallel. Furthermore, a reduction operation is performed on the results returned by the partial functions. As a summary, for this model the user has to indicate a set of partial functions and an aggregation operator of these. \end{itemize} +\hypertarget{main_parallel_ls}{}\subsection{Parallel distributed local searches}\label{main_parallel_ls} +\hypertarget{main_local_searches}{}\subsubsection{Local searches}\label{main_local_searches} +All metaheuristics dedicated to the improvement of a single solution are based on the concept of neighborhood. They start from a solution randomly generated or obtained from another optimization algorithm, and update it, step by step, by replacing the current solution by one of its neighboring candidates. Some criterion have been identified to differentiate such searches: the heuristic internal memory, the choice of the initial solution, the candidate solutions generator, and the selection strategy of candidate moves. Three main algorithms of local search stand out: Hill Climbing (HC), Simulated Annealing (SA) and Tabu Search (TS).\hypertarget{main_parallel_local_searches}{}\subsubsection{Parallel local searches}\label{main_parallel_local_searches} +Two parallel distributed models are commonly used in the literature: the parallel distributed exploration of neighboring candidate solutions model, and the multi-start model. \begin{itemize} +\item {\em Parallel exploration of neighboring candidates\/}. It is a low-level Farmer-Worker model that does not alter the behavior of the heuristic. A sequential search computes the same results slower.At the beginning of each iteration, the farmer duplicates the current solution between distributed nodes. Each one manages some candidates and the results are returned to the farmer. The model is efficient if the evaluation of a each solution is time-consuming and/or there are a great deal of candidate neighbors to evaluate. This is obviously not applicable to SA since only one candidate is evaluated at each iteration. Likewise, the efficiency of the model for HC is not always guaranteed as the number of neighboring solutions to process before finding one that improves the current objective function may be highly variable. + +\item {\em Multi-start model\/}. It consists in simultaneously launching several local searches. They may be heterogeneous, but no information is exchanged between them. The resultswould be identical as if the algorithms were sequentially run.Very often deterministic algorithms differ by the supplied initial solution and/or some other parameters. This trivial model is convenient for low-speed networks of workstations. \end{itemize} +\hypertarget{main_hybridization}{}\section{Hybridization}\label{main_hybridization} +Recently, hybrid metaheuristics have gained a considerable interest. For many practical or academic optimization problems, the best found solutions are obtained by hybrid algorithms. Combinations of different metaheuristics have provided very powerful search methods. Two levels and two modes of hybridization have been distinguished: Low and High levels, and Relay and \hyperlink{classCooperative}{Cooperative} modes. The low-level hybridization addresses the functional composition of a single optimization method. A function of a given metaheuristic is replaced by another metaheuristic. On the contrary, for high-level hybrid algorithms the different metaheuristics are self-containing, meaning no direct relationship to their internal working is considered. On the other hand, relay hybridization means a set of metaheuristics is applied in a pipeline way. The output of a metaheuristic (except the last) is the input of the following one (except the first). Conversely, co-evolutionist hybridization is a cooperative optimization model. Each metaheuristic performs a search in a solution space, and exchange solutions with others.\hypertarget{main_paradiseo_goals}{}\section{Paradiseo goals and architecture}\label{main_paradiseo_goals} +The \char`\"{}EO\char`\"{} part of Paradis\-EO means Evolving Objects. \doxyref{EO} is a C++ LGPL open source framework and includes a paradigm-free Evolutionary Computation library (EOlib) dedicated to the flexible design of EA through evolving objects superseding the most common dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and Genetic Programming). Furthermore, \doxyref{EO} integrates several services including visualization facilities, on-line definition of parameters, application check-pointing, etc. Paradis\-EO is an extended version of the \doxyref{EO} framework. The extensions include local search methods, hybridization mechanisms, parallelism and distribution mechanisms, and other features that are not addressed in this paper such as multi-objective optimization and grid computing. In the next sections, we present the motivations and goals of Paradis\-EO, its architecture and some of its main implementation details and issues.\hypertarget{main_motivation}{}\subsection{Motivations and goals}\label{main_motivation} +A framework is normally intended to be exploited by as many users as possible. Therefore, its exploitation could be successful only if some important user criteria are satisfied. The following criteria are the major of them and constitute the main objectives of the Paradis\-EO framework: + +\begin{itemize} +\item {\em Maximum design and code reuse\/}. The framework must provide for the user a whole architecture design of his/her solution method. Moreover, the programmer may redo as little code as possible. This objective requires a clear and maximal conceptual separation between the solution methods and the problems to be solved, and thus a deep domain analysis. The user might therefore develop only the minimal problem-specific code. + +\item {\em Flexibility and adaptability\/}. It must be possible for the user to easily add new features/ metaheuristics or change existing ones without implicating other components. Furthermore, as in practice existing problems evolve and new others arise these have to be tackled by specializing/adapting the framework components. + +\item {\em Utility\/}. The framework must allow the user to cover a broad range of metaheuristics, problems, parallel distributed models, hybridization mechanisms, etc. + +\item {\em Transparent and easy access to performance and robustness\/}. As the optimization applications are often time-consuming the performance issue is crucial. Parallelism and distribution are two important ways to achieve high performance execution. In order to facilitate its use it is implemented so that the user can deploy his/her parallel algorithms in a transparent manner. Moreover, the execution of the algorithms must be robust to guarantee the reliability and the quality of the results. The hybridization mechanism allows to obtain robust and better solutions. + +\item {\em Portability\/}. In order to satisfy a large number of users the framework must support different material architectures and their associated operating systems. \end{itemize} +\hypertarget{main_architecture}{}\subsection{Paradis\-EO architecture}\label{main_architecture} +The architecture of Paradis\-EO is multi-layer and modular allowing to achieve the objectives quoted above. This allows particularly a high flexibility and adaptability, an easier hybridization, and more code and design reuse. The architecture has three layers identifying three major categories of classes: {\em Solvers\/}, {\em Runners\/} and {\em Helpers\/}. \begin{itemize} +\item {\em Helpers\/}. Helpers are low-level classes that perform specific actions related to the evolution or search process. They are split in two categories: {\em Evolutionary helpers (EH)\/} and {\em Local search helpers (LSH)\/}. EH include mainly the transformation, selection and replacement operations, the evaluation function and the stopping criterion. LSH can be generic such as the neighborhood explorer class, or specific to the local search metaheuristic like the tabu list manager class in the Tabu Search solution method. On the other hand, there are some special helpers dedicated to the management of parallel and distributed models 2 and 3, such as the communicators that embody the communication services. + +Helpers cooperate between them and interact with the components of the upper layer i.e. the runners. The runners invoke the helpers through function parameters. Indeed, helpers have not their own data, but they work on the internal data of the runners. + +\item {\em Runners\/}. The Runners layer contains a set of classes that implement the metaheuristics themselves. They perform the run of the metaheuristics from the initial state or population to the final one. One can distinguish the {\em Evolutionary runners (ER)\/} such as genetic algorithms, evolution strategies, etc., and {\em Local search runners (LSR)\/} like tabu search, simulated annealing and hill climbing. Runners invoke the helpers to perform specific actions on their data. For instance, an ER may ask the fitness function evaluation helper to evaluate its population. An LSR asks the movement helper to perform a given movement on the current state. Furthermore, runners can be serial or parallel distributed. + +\item {\em Solvers\/}. Solvers are devoted to control the evolution process and/or the search. They generate the initial state (solution or population) and define the strategy for combining and sequencing different metaheuristics. Two types of solvers can be distinguished. {\em Single metaheuristic solvers (SMS)\/} and {\em Multiple metaheuristics solvers (MMS)\/}. SMSs are dedicated to the execution of only one metaheuristic.MMS are more complex as they control and sequence several metaheuristics that can be heterogeneous. Solvers interact with the user by getting the input data and delivering the output (best solution, statistics, etc). \end{itemize} + + +According to the generality of their embedded features, the classes of the architecture split in two major categories: {\em Provided classes\/} and {\em Required classes\/}. Provided classes embody the factored out part of the metaheuristics. They are generic, implemented in the framework, and ensure the control at run time. Required classes are those that must be supplied by the user. They encapsulate the problem-specific aspects of the application. These classes are fixed but not implemented in Paradis\-EO. The programmer has the burden to develop them using the OO specialization mechanism.\hypertarget{main_tutorials}{}\section{Paradis\-EO-PEO Tutorials}\label{main_tutorials} +The basisc of the Paradis\-EO framework philosophy are exposed in a few simple tutorials: \begin{itemize} +\item \href{lesson1/html/main.html}{\tt creating a simple Paradis\-EO evolutionary algorithm}; \end{itemize} +All the presented examples have as case study the traveling salesman problem (TSP). Different operators and auxiliary objects were designed, standing as a \href{lsnshared/html/index.html}{\tt common shared source code base}. While not being part of the Paradis\-EO-PEO framework, it may represent a startpoint for a better understanding of the presented tutorials. \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/namespacepeo.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/namespacepeo.tex new file mode 100644 index 000000000..ee1f78ba8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/namespacepeo.tex @@ -0,0 +1,52 @@ +\hypertarget{namespacepeo}{ +\section{peo Namespace Reference} +\label{namespacepeo}\index{peo@{peo}} +} + + +\subsection*{Functions} +\begin{CompactItemize} +\item +\hypertarget{namespacepeo_f90478489cc92d1e6abb222179163a30}{ +void \hyperlink{namespacepeo_f90478489cc92d1e6abb222179163a30}{finalize} ()} +\label{namespacepeo_f90478489cc92d1e6abb222179163a30} + +\item +\hypertarget{namespacepeo_8184c3b1f7eecc68f69bb8e8b872a7d3}{ +void \hyperlink{namespacepeo_8184c3b1f7eecc68f69bb8e8b872a7d3}{init} (int \&\_\-\_\-argc, char $\ast$$\ast$\&\_\-\_\-argv)} +\label{namespacepeo_8184c3b1f7eecc68f69bb8e8b872a7d3} + +\item +\hypertarget{namespacepeo_2b496ee9b81d9ae322ae6edb9a93dc71}{ +void \hyperlink{namespacepeo_2b496ee9b81d9ae322ae6edb9a93dc71}{load\-Parameters} (int \&\_\-\_\-argc, char $\ast$$\ast$\&\_\-\_\-argv)} +\label{namespacepeo_2b496ee9b81d9ae322ae6edb9a93dc71} + +\item +\hypertarget{namespacepeo_10819b2d60b37477c6a89b60c595c67c}{ +void \hyperlink{namespacepeo_10819b2d60b37477c6a89b60c595c67c}{run} ()} +\label{namespacepeo_10819b2d60b37477c6a89b60c595c67c} + +\end{CompactItemize} +\subsection*{Variables} +\begin{CompactItemize} +\item +\hypertarget{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{ +int $\ast$ \hyperlink{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{argc}} +\label{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2} + +\item +\hypertarget{namespacepeo_d07043237d4d923125e38860ba9bbe20}{ +char $\ast$$\ast$$\ast$ \hyperlink{namespacepeo_d07043237d4d923125e38860ba9bbe20}{argv}} +\label{namespacepeo_d07043237d4d923125e38860ba9bbe20} + +\item +\hypertarget{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{ +int $\ast$ \hyperlink{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2}{argc}} +\label{namespacepeo_18a3998ce8b39c4e1143914fdd07b3d2} + +\item +\hypertarget{namespacepeo_d07043237d4d923125e38860ba9bbe20}{ +char $\ast$$\ast$$\ast$ \hyperlink{namespacepeo_d07043237d4d923125e38860ba9bbe20}{argv}} +\label{namespacepeo_d07043237d4d923125e38860ba9bbe20} + +\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/namespaces.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/namespaces.tex new file mode 100644 index 000000000..b05536ba2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/namespaces.tex @@ -0,0 +1,4 @@ +\section{Paradis\-EO-PEO Namespace List} +Here is a list of all documented namespaces with brief descriptions:\begin{CompactList} +\item\contentsline{section}{\hyperlink{namespacepeo}{peo} }{\pageref{namespacepeo}}{} +\end{CompactList} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/refman.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/refman.tex new file mode 100644 index 000000000..d5b5327a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/refman.tex @@ -0,0 +1,81 @@ +\documentclass[a4paper]{book} +\usepackage{a4wide} +\usepackage{makeidx} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{times} +\usepackage{ifpdf} +\ifpdf +\usepackage[pdftex, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\else +\usepackage[ps2pdf, + pagebackref=true, + colorlinks=true, + linkcolor=blue + ]{hyperref} +\usepackage{pspicture} +\fi +\usepackage{doxygen} +\makeindex +\setcounter{tocdepth}{1} +\renewcommand{\footrulewidth}{0.4pt} +\begin{document} +\begin{titlepage} +\vspace*{7cm} +\begin{center} +{\Large Paradis\-EO-PEO Reference Manual\\[1ex]\large 0.1 }\\ +\vspace*{1cm} +{\large Generated by Doxygen 1.4.7}\\ +\vspace*{0.5cm} +{\small Thu Jul 5 13:43:30 2007}\\ +\end{center} +\end{titlepage} +\clearemptydoublepage +\pagenumbering{roman} +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\chapter{The Paradis\-EO-PEO Framework } +\label{index}\hypertarget{index}{}\input{main} +\chapter{Paradis\-EO-PEO Namespace Index} +\input{namespaces} +\chapter{Paradis\-EO-PEO Hierarchical Index} +\input{hierarchy} +\chapter{Paradis\-EO-PEO Class Index} +\input{annotated} +\chapter{Paradis\-EO-PEO Namespace Documentation} +\input{namespacepeo} +\chapter{Paradis\-EO-PEO Class Documentation} +\input{classCommunicable} +\include{classCommunicator} +\include{classCooperative} +\include{classpeoAggEvalFunc} +\include{classpeoAsyncIslandMig} +\include{classpeoEA} +\include{classpeoNoAggEvalFunc} +\include{classpeoParaPopEval} +\include{classpeoParaSGATransform} +\include{classpeoPopEval} +\include{classpeoSeqPopEval} +\include{classpeoSeqTransform} +\include{classpeoSyncIslandMig} +\include{classpeoSyncMultiStart} +\include{classpeoTransform} +\include{classReactiveThread} +\include{classRingTopology} +\include{classRunner} +\include{structSEND__REQUEST} +\include{classService} +\include{classThread} +\include{classTopology} +\include{classWorker} +\printindex +\end{document} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/structSEND__REQUEST.tex b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/structSEND__REQUEST.tex new file mode 100644 index 000000000..6678d8e30 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/latex/structSEND__REQUEST.tex @@ -0,0 +1,34 @@ +\hypertarget{structSEND__REQUEST}{ +\section{SEND\_\-REQUEST Struct Reference} +\label{structSEND__REQUEST}\index{SEND_REQUEST@{SEND\_\-REQUEST}} +} +\subsection*{Public Attributes} +\begin{CompactItemize} +\item +\hypertarget{structSEND__REQUEST_1ad8f7233fa3ff13262e783a9153920f}{ +\hyperlink{classCommunicable}{Communicable} $\ast$ \hyperlink{structSEND__REQUEST_1ad8f7233fa3ff13262e783a9153920f}{comm}} +\label{structSEND__REQUEST_1ad8f7233fa3ff13262e783a9153920f} + +\item +\hypertarget{structSEND__REQUEST_93e2a6a71d2a91aa2b7bdd050ee59b4d}{ +int \hyperlink{structSEND__REQUEST_93e2a6a71d2a91aa2b7bdd050ee59b4d}{to}} +\label{structSEND__REQUEST_93e2a6a71d2a91aa2b7bdd050ee59b4d} + +\item +\hypertarget{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f}{ +int \hyperlink{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f}{tag}} +\label{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f} + +\end{CompactItemize} + + +\subsection{Detailed Description} + + + + +Definition at line 24 of file send.cpp. + +The documentation for this struct was generated from the following file:\begin{CompactItemize} +\item +send.cpp\end{CompactItemize} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Communicable.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Communicable.3 new file mode 100644 index 000000000..b79685283 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Communicable.3 @@ -0,0 +1,62 @@ +.TH "Communicable" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Communicable \- +.SH SYNOPSIS +.br +.PP +Inherited by \fBCooperative\fP, \fBRunner\fP, \fBService\fP, and \fBWorker\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCommunicable\fP ()" +.br +.ti -1c +.RI "virtual \fB~Communicable\fP ()" +.br +.ti -1c +.RI "COMM_ID \fBgetKey\fP ()" +.br +.ti -1c +.RI "void \fBlock\fP ()" +.br +.ti -1c +.RI "void \fBunlock\fP ()" +.br +.ti -1c +.RI "void \fBstop\fP ()" +.br +.ti -1c +.RI "void \fBresume\fP ()" +.br +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "COMM_ID \fBkey\fP" +.br +.ti -1c +.RI "sem_t \fBsem_lock\fP" +.br +.ti -1c +.RI "sem_t \fBsem_stop\fP" +.br +.in -1c +.SS "Static Protected Attributes" + +.in +1c +.ti -1c +.RI "static unsigned \fBnum_comm\fP = 0" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 16 of file communicable.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Communicator.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Communicator.3 new file mode 100644 index 000000000..dd8a76269 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Communicator.3 @@ -0,0 +1,27 @@ +.TH "Communicator" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Communicator \- +.SH SYNOPSIS +.br +.PP +Inherits \fBReactiveThread\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBCommunicator\fP (int *__argc, char ***__argv)" +.br +.ti -1c +.RI "void \fBstart\fP ()" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 15 of file comm.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Cooperative.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Cooperative.3 new file mode 100644 index 000000000..07f0daf1b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Cooperative.3 @@ -0,0 +1,42 @@ +.TH "Cooperative" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Cooperative \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP. +.PP +Inherited by \fBpeoAsyncIslandMig< EOT >\fP, and \fBpeoSyncIslandMig< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBRunner\fP * \fBgetOwner\fP ()" +.br +.ti -1c +.RI "void \fBsetOwner\fP (\fBRunner\fP &__runner)" +.br +.ti -1c +.RI "void \fBsend\fP (\fBCooperative\fP *__coop)" +.br +.ti -1c +.RI "virtual void \fBnotifySending\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBRunner\fP * \fBowner\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 17 of file cooperative.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/ReactiveThread.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/ReactiveThread.3 new file mode 100644 index 000000000..b7b6eebbd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/ReactiveThread.3 @@ -0,0 +1,39 @@ +.TH "ReactiveThread" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +ReactiveThread \- +.SH SYNOPSIS +.br +.PP +Inherits \fBThread\fP. +.PP +Inherited by \fBCommunicator\fP, and \fBWorker\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBReactiveThread\fP ()" +.br +.ti -1c +.RI "void \fBsleep\fP ()" +.br +.ti -1c +.RI "void \fBwakeUp\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "sem_t \fBsem\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 16 of file reac_thread.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/RingTopology.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/RingTopology.3 new file mode 100644 index 000000000..943200c5f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/RingTopology.3 @@ -0,0 +1,24 @@ +.TH "RingTopology" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +RingTopology \- +.SH SYNOPSIS +.br +.PP +Inherits \fBTopology\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetNeighbors\fP (\fBCooperative\fP *__mig, std::vector< \fBCooperative\fP * > &__from, std::vector< \fBCooperative\fP * > &__to)" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 14 of file ring_topo.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Runner.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Runner.3 new file mode 100644 index 000000000..55d84fc33 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Runner.3 @@ -0,0 +1,57 @@ +.TH "Runner" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Runner \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP, and \fBThread\fP. +.PP +Inherited by \fBpeoEA< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBRunner\fP ()" +.br +.ti -1c +.RI "void \fBstart\fP ()" +.br +.ti -1c +.RI "void \fBwaitStarting\fP ()" +.br +.ti -1c +.RI "bool \fBisLocal\fP ()" +.br +.ti -1c +.RI "void \fBterminate\fP ()" +.br +.ti -1c +.RI "RUNNER_ID \fBgetID\fP ()" +.br +.ti -1c +.RI "void \fBpackTermination\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingTermination\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "sem_t \fBsem_start\fP" +.br +.ti -1c +.RI "unsigned \fBid\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 19 of file runner.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 new file mode 100644 index 000000000..f0ec40d76 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 @@ -0,0 +1,28 @@ +.TH "SEND_REQUEST" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +SEND_REQUEST \- +.SH SYNOPSIS +.br +.PP +.SS "Public Attributes" + +.in +1c +.ti -1c +.RI "\fBCommunicable\fP * \fBcomm\fP" +.br +.ti -1c +.RI "int \fBto\fP" +.br +.ti -1c +.RI "int \fBtag\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 24 of file send.cpp. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Service.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Service.3 new file mode 100644 index 000000000..d502272ac --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Service.3 @@ -0,0 +1,69 @@ +.TH "Service" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Service \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP. +.PP +Inherited by \fBpeoPopEval< EOT >\fP, \fBpeoSyncMultiStart< EOT >\fP, and \fBpeoTransform< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBsetOwner\fP (\fBThread\fP &__owner)" +.br +.ti -1c +.RI "\fBThread\fP * \fBgetOwner\fP ()" +.br +.ti -1c +.RI "void \fBrequestResourceRequest\fP (unsigned __how_many=1)" +.br +.ti -1c +.RI "void \fBpackResourceRequest\fP ()" +.br +.ti -1c +.RI "virtual void \fBpackData\fP ()" +.br +.ti -1c +.RI "virtual void \fBunpackData\fP ()" +.br +.ti -1c +.RI "virtual void \fBexecute\fP ()" +.br +.ti -1c +.RI "virtual void \fBpackResult\fP ()" +.br +.ti -1c +.RI "virtual void \fBunpackResult\fP ()" +.br +.ti -1c +.RI "virtual void \fBnotifySendingData\fP ()" +.br +.ti -1c +.RI "virtual void \fBnotifySendingResourceRequest\fP ()" +.br +.ti -1c +.RI "virtual void \fBnotifySendingAllResourceRequests\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBThread\fP * \fBowner\fP" +.br +.ti -1c +.RI "unsigned \fBnum_sent_rr\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 17 of file service.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Thread.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Thread.3 new file mode 100644 index 000000000..002aa208f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Thread.3 @@ -0,0 +1,40 @@ +.TH "Thread" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Thread \- +.SH SYNOPSIS +.br +.PP +Inherited by \fBReactiveThread\fP, and \fBRunner\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBThread\fP ()" +.br +.ti -1c +.RI "virtual \fB~Thread\fP ()" +.br +.ti -1c +.RI "void \fBsetActive\fP ()" +.br +.ti -1c +.RI "void \fBsetPassive\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "bool \fBact\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 16 of file thread.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Topology.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Topology.3 new file mode 100644 index 000000000..f5494be2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Topology.3 @@ -0,0 +1,34 @@ +.TH "Topology" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Topology \- +.SH SYNOPSIS +.br +.PP +Inherited by \fBRingTopology\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual \fB~Topology\fP ()" +.br +.ti -1c +.RI "void \fBadd\fP (\fBCooperative\fP &__mig)" +.br +.in -1c +.SS "Protected Attributes" + +.in +1c +.ti -1c +.RI "std::vector< \fBCooperative\fP * > \fBmig\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 16 of file topology.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Worker.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Worker.3 new file mode 100644 index 000000000..3ebab6c09 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/Worker.3 @@ -0,0 +1,64 @@ +.TH "Worker" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +Worker \- +.SH SYNOPSIS +.br +.PP +Inherits \fBCommunicable\fP, and \fBReactiveThread\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBWorker\fP ()" +.br +.ti -1c +.RI "void \fBstart\fP ()" +.br +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.ti -1c +.RI "void \fBpackTaskDone\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingResult\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingTaskDone\fP ()" +.br +.ti -1c +.RI "void \fBsetSource\fP (int __rank)" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "WORKER_ID \fBid\fP" +.br +.ti -1c +.RI "SERVICE_ID \fBserv_id\fP" +.br +.ti -1c +.RI "\fBService\fP * \fBserv\fP" +.br +.ti -1c +.RI "int \fBsrc\fP" +.br +.ti -1c +.RI "bool \fBtoto\fP" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 18 of file worker.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peo.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peo.3 new file mode 100644 index 000000000..a337a3b4b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peo.3 @@ -0,0 +1,43 @@ +.TH "peo" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peo \- +.SH SYNOPSIS +.br +.PP +.SS "Functions" + +.in +1c +.ti -1c +.RI "void \fBfinalize\fP ()" +.br +.ti -1c +.RI "void \fBinit\fP (int &__argc, char **&__argv)" +.br +.ti -1c +.RI "void \fBloadParameters\fP (int &__argc, char **&__argv)" +.br +.ti -1c +.RI "void \fBrun\fP ()" +.br +.in -1c +.SS "Variables" + +.in +1c +.ti -1c +.RI "int * \fBargc\fP" +.br +.ti -1c +.RI "char *** \fBargv\fP" +.br +.ti -1c +.RI "int * \fBargc\fP" +.br +.ti -1c +.RI "char *** \fBargv\fP" +.br +.in -1c +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 new file mode 100644 index 000000000..66fb766eb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 @@ -0,0 +1,33 @@ +.TH "peoAggEvalFunc" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoAggEvalFunc \- The \fBpeoAggEvalFunc\fP class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBeoBF< A1, A2, R >< const EOT &, EOT::Fitness &, void >\fP. +.PP +Inherited by \fBpeoNoAggEvalFunc< EOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class peoAggEvalFunc< EOT >" +The \fBpeoAggEvalFunc\fP class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided. + +The class inherits \fBpublic eoBF< EOT&, const typename EOT :: Fitness&, void >\fP thus requiring, for the derived classes, the creation of a function having the following signature: +.PP +void operator()( EOT& __eot, const typename EOT :: Fitness& __partial_fittness ); +.PP +The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. +.PP +Definition at line 25 of file peoAggEvalFunc.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 new file mode 100644 index 000000000..bc54b3aef --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 @@ -0,0 +1,176 @@ +.TH "peoAsyncIslandMig" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoAsyncIslandMig \- The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBCooperative\fP, and \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoAsyncIslandMig\fP (\fBeoContinue\fP< EOT > &__cont, \fBeoSelect\fP< EOT > &__select, \fBeoReplacement\fP< EOT > &__replace, \fBTopology\fP &__topology, \fBeoPop\fP< EOT > &__source, \fBeoPop\fP< EOT > &__destination)" +.br +.RI "\fIConstructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fI\fBFunction\fP operator to be called as checkpoint for performing the migration step. \fP" +.ti -1c +.RI "void \fBpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBunpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBemigrate\fP ()" +.br +.ti -1c +.RI "void \fBimmigrate\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< EOT > & \fBcont\fP" +.br +.ti -1c +.RI "\fBeoSelect\fP< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "\fBeoReplacement\fP< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBTopology\fP & \fBtopology\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > & \fBsource\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > & \fBdestination\fP" +.br +.ti -1c +.RI "std::queue< \fBeoPop\fP< EOT > > \fBimm\fP" +.br +.ti -1c +.RI "std::queue< \fBeoPop\fP< EOT > > \fBem\fP" +.br +.ti -1c +.RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoAsyncIslandMig< EOT >" +The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. + +continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase. +.PP +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: +.PP +\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offsprings replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified +.PP +Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow: +.PP +.PD 0 +.IP "1." 4 +topological model to be followed when performing migrations: +.br + +.br + \fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands +.PP + +.IP "2." 4 +the continuation criterion, selection and replacement strategy etc. are defined: +.br + +.br + eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoPeriodicContinue< EOT > migCont( MIG_FREQ ); // migrations occur periodically at MIG_FREQ iterations eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoAsyncIslandMig< EOT > asyncMigration( +.br + migCont, migSelect, migReplace, migTopology, +.br + population, population +.br + ); // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated +.PP + +.IP "3." 4 +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): +.br + +.br + ... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( asyncMigration ); // adding the migration operator as checkpoint element ... +.PP + +.IP "4." 4 +definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class): +.br + +.br + peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above asyncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population +.PP +.PP +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. +.PP +The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +.PP +Definition at line 112 of file peoAsyncIslandMig.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoAsyncIslandMig\fP< EOT >::\fBpeoAsyncIslandMig\fP (\fBeoContinue\fP< EOT > & __cont, \fBeoSelect\fP< EOT > & __select, \fBeoReplacement\fP< EOT > & __replace, \fBTopology\fP & __topology, \fBeoPop\fP< EOT > & __source, \fBeoPop\fP< EOT > & __destination)" +.PP +Constructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. +.PP +\fBParameters:\fP +.RS 4 +\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the migration is performed or not; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; +.br +\fITopology&\fP __topology - topological model to be followed when performing migrations; +.br +\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected; +.br +\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated. +.RE +.PP + +.PP +Definition at line 171 of file peoAsyncIslandMig.h. +.PP +References Topology::add(). +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoAsyncIslandMig\fP< EOT >::operator() ()\fC [virtual]\fP" +.PP +\fBFunction\fP operator to be called as checkpoint for performing the migration step. +.PP +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +.PP +Implements \fBeoF< void >\fP. +.PP +Definition at line 248 of file peoAsyncIslandMig.h. +.PP +References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoEA.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoEA.3 new file mode 100644 index 000000000..4f6ae6da4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoEA.3 @@ -0,0 +1,109 @@ +.TH "peoEA" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoEA \- The \fBpeoEA\fP class offers an elementary evolutionary algorithm implementation. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBRunner\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoEA\fP (\fBeoContinue\fP< EOT > &__cont, \fBpeoPopEval\fP< EOT > &__pop_eval, \fBeoSelect\fP< EOT > &__select, \fBpeoTransform\fP< EOT > &__trans, \fBeoReplacement\fP< EOT > &__replace)" +.br +.RI "\fIConstructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. \fP" +.ti -1c +.RI "void \fBrun\fP ()" +.br +.RI "\fIEvolutionary algorithm function - a side effect of the fact that the class is derived from the \fB\fBRunner\fP\fP class, thus requiring the existence of a \fIrun\fP function, the algorithm being executed on a distinct thread. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fI\fBFunction\fP operator for specifying the population to be associated with the algorithm. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< EOT > & \fBcont\fP" +.br +.ti -1c +.RI "\fBpeoPopEval\fP< EOT > & \fBpop_eval\fP" +.br +.ti -1c +.RI "\fBeoSelect\fP< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "\fBpeoTransform\fP< EOT > & \fBtrans\fP" +.br +.ti -1c +.RI "\fBeoReplacement\fP< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > * \fBpop\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoEA< EOT >" +The \fBpeoEA\fP class offers an elementary evolutionary algorithm implementation. + +In addition, as compared with the algorithms provided by the \fBEO\fP framework, the \fBpeoEA\fP class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the \fBEO\fP framework, the drawback resides in the fact that the \fBEO\fP implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a \fBpeoEA\fP object: +.PP +... eoPop< EOT > population( POP_SIZE, popInitializer ); // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual eoGenContinue< EOT > eaCont( NUM_GEN ); // number of generations for the evolutionary algorithm eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects peoSeqPopEval< EOT > eaPopEval( evalFunction ); // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor eoRankingSelect< EOT > selectionStrategy; // selection strategy for creating the offspring population - a simple ranking selection in this case eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE ); // the number of individuals to be selected for creating the offspring population eoRankingSelect< EOT > selectionStrategy; // selection strategy for creating the offspring population - a simple ranking selection in this case eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); // transformation operator - crossover and mutation operators with their associated probabilities peoSeqTransform< EOT > eaTransform( transform ); // ParadisEO specific sequential operator - a parallel version may be specified in the same manner eoPlusReplacement< EOT > eaReplace; // replacement strategy - for integrating the offspring resulting individuals in the initial population peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); // ParadisEO evolutionary algorithm integrating the above defined objects eaAlg( population ); // specifying the initial population for the algorithm ... +.PP +Definition at line 54 of file peoEA.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoEA\fP< EOT >::\fBpeoEA\fP (\fBeoContinue\fP< EOT > & __cont, \fBpeoPopEval\fP< EOT > & __pop_eval, \fBeoSelect\fP< EOT > & __select, \fBpeoTransform\fP< EOT > & __trans, \fBeoReplacement\fP< EOT > & __replace)" +.PP +Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. +.PP +Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the \fBEO\fP package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes. +.PP +\fBParameters:\fP +.RS 4 +\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not; +.br +\fIpeoPopEval<\fP EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals; +.br +\fIpeoTransform<\fP EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population; +.RE +.PP + +.PP +Definition at line 98 of file peoEA.h. +.PP +References peoEA< EOT >::pop_eval, and peoEA< EOT >::trans. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoEA\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __pop)" +.PP +\fBFunction\fP operator for specifying the population to be associated with the algorithm. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - initial population of the algorithm, to be iteratively evolved; +.RE +.PP + +.PP +Definition at line 114 of file peoEA.h. +.PP +References peoEA< EOT >::pop. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 new file mode 100644 index 000000000..c2df6a16e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 @@ -0,0 +1,35 @@ +.TH "peoNoAggEvalFunc" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoNoAggEvalFunc \- The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a fitness value and a specified individual. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoAggEvalFunc< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "void \fBoperator()\fP (EOT &__sol, const typename EOT::Fitness &__fit)" +.br +.RI "\fIOperator which sets as fitness the \fB__fit\fP value for the \fB__sol\fP individual. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoNoAggEvalFunc< EOT >" +The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a fitness value and a specified individual. + +The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. +.PP +Definition at line 19 of file peoNoAggEvalFunc.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoParaPopEval.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoParaPopEval.3 new file mode 100644 index 000000000..b0f85ca26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoParaPopEval.3 @@ -0,0 +1,217 @@ +.TH "peoParaPopEval" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoParaPopEval \- The \fBpeoParaPopEval\fP represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoPopEval< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoParaPopEval\fP (\fBeoEvalFunc\fP< EOT > &__eval_func)" +.br +.RI "\fIConstructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \fP" +.ti -1c +.RI "\fBpeoParaPopEval\fP (const std::vector< \fBeoEvalFunc\fP< EOT > * > &__funcs, \fBpeoAggEvalFunc\fP< EOT > &__merge_eval)" +.br +.RI "\fIConstructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIOperator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \fP" +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.RI "\fIAuxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "const std::vector< \fBeoEvalFunc\fP< EOT > * > & \fBfuncs\fP" +.br +.ti -1c +.RI "std::vector< \fBeoEvalFunc\fP< EOT > * > \fBone_func\fP" +.br +.ti -1c +.RI "\fBpeoAggEvalFunc\fP< EOT > & \fBmerge_eval\fP" +.br +.ti -1c +.RI "\fBpeoNoAggEvalFunc\fP< EOT > \fBno_merge_eval\fP" +.br +.ti -1c +.RI "std::queue< EOT * > \fBtasks\fP" +.br +.ti -1c +.RI "std::map< EOT *, std::pair< unsigned, unsigned > > \fBprogression\fP" +.br +.ti -1c +.RI "unsigned \fBnum_func\fP" +.br +.ti -1c +.RI "EOT \fBsol\fP" +.br +.ti -1c +.RI "EOT * \fBad_sol\fP" +.br +.ti -1c +.RI "unsigned \fBtotal\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoParaPopEval< EOT >" +The \fBpeoParaPopEval\fP represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor. + +The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions. +.PP +Definition at line 26 of file peoParaPopEval.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoParaPopEval\fP< EOT >::\fBpeoParaPopEval\fP (\fBeoEvalFunc\fP< EOT > & __eval_func)" +.PP +Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. +.PP +\fBParameters:\fP +.RS 4 +\fIeoEvalFunc<\fP EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population +.RE +.PP + +.PP +Definition at line 102 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::one_func. +.SS "template \fBpeoParaPopEval\fP< EOT >::\fBpeoParaPopEval\fP (const std::vector< \fBeoEvalFunc\fP< EOT > * > & __funcs, \fBpeoAggEvalFunc\fP< EOT > & __merge_eval)" +.PP +Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. +.PP +\fBParameters:\fP +.RS 4 +\fIconst\fP std :: vector< \fBeoEvalFunc\fP < EOT >* >& __funcs - vector of EO-derived partial evaluation functors; +.br +\fIpeoAggEvalFunc<\fP EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values. +.RE +.PP + +.PP +Definition at line 111 of file peoParaPopEval.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoParaPopEval\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __pop)\fC [virtual]\fP" +.PP +Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor. +.RE +.PP + +.PP +Implements \fBpeoPopEval< EOT >\fP. +.PP +Definition at line 122 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::funcs, peoParaPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoParaPopEval< EOT >::tasks, and peoParaPopEval< EOT >::total. +.SS "template void \fBpeoParaPopEval\fP< EOT >::packData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 143 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::progression, and peoParaPopEval< EOT >::tasks. +.SS "template void \fBpeoParaPopEval\fP< EOT >::unpackData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 157 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::ad_sol, peoParaPopEval< EOT >::num_func, and peoParaPopEval< EOT >::sol. +.SS "template void \fBpeoParaPopEval\fP< EOT >::packResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 174 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::ad_sol, and peoParaPopEval< EOT >::sol. +.SS "template void \fBpeoParaPopEval\fP< EOT >::unpackResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 183 of file peoParaPopEval.h. +.PP +References peoParaPopEval< EOT >::ad_sol, Service::getOwner(), peoParaPopEval< EOT >::merge_eval, peoParaPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoParaPopEval< EOT >::total. +.SS "template void \fBpeoParaPopEval\fP< EOT >::notifySendingData ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 214 of file peoParaPopEval.h. +.SS "template void \fBpeoParaPopEval\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 219 of file peoParaPopEval.h. +.PP +References Service::getOwner(), and Thread::setPassive(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoParaSGATransform.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoParaSGATransform.3 new file mode 100644 index 000000000..749a44b21 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoParaSGATransform.3 @@ -0,0 +1,83 @@ +.TH "peoParaSGATransform" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoParaSGATransform \- +.SH SYNOPSIS +.br +.PP +Inherits \fBpeoTransform< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoParaSGATransform\fP (\fBeoQuadOp\fP< EOT > &__cross, double __cross_rate, \fBeoMonOp\fP< EOT > &__mut, double __mut_rate)" +.br +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoQuadOp\fP< EOT > & \fBcross\fP" +.br +.ti -1c +.RI "double \fBcross_rate\fP" +.br +.ti -1c +.RI "\fBeoMonOp\fP< EOT > & \fBmut\fP" +.br +.ti -1c +.RI "double \fBmut_rate\fP" +.br +.ti -1c +.RI "unsigned \fBidx\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > * \fBpop\fP" +.br +.ti -1c +.RI "EOT \fBfather\fP" +.br +.ti -1c +.RI "EOT \fBmother\fP" +.br +.ti -1c +.RI "unsigned \fBnum_term\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoParaSGATransform< EOT >" + +.PP +Definition at line 21 of file peoParaSGATransform.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoPopEval.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoPopEval.3 new file mode 100644 index 000000000..74da17ed3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoPopEval.3 @@ -0,0 +1,37 @@ +.TH "peoPopEval" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoPopEval \- The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBService\fP. +.PP +Inherited by \fBpeoParaPopEval< EOT >\fP, and \fBpeoSeqPopEval< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)=0" +.br +.RI "\fIInterface function providing the signature for constructing an evaluation functor. \fP" +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoPopEval< EOT >" +The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors. + +The derived classes may be used as wrappers for \fB\fBEO\fP\fP-derived evaluation functors. In order to have an example, please refer to the implementation of the \fB\fBpeoSeqPopEval\fP\fP and \fB\fBpeoParaPopEval\fP\fP classes. +.PP +Definition at line 19 of file peoPopEval.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSeqPopEval.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSeqPopEval.3 new file mode 100644 index 000000000..dad8e7f30 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSeqPopEval.3 @@ -0,0 +1,78 @@ +.TH "peoSeqPopEval" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSeqPopEval \- The \fBpeoSeqPopEval\fP class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an \fBeoEvalFunc< EOT >\fP-derived class as evaluation functor. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoPopEval< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSeqPopEval\fP (\fBeoEvalFunc\fP< EOT > &__eval)" +.br +.RI "\fIConstructor function - it only sets an internal reference to point to the specified evaluation object. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIOperator for evaluating all the individuals of a given population - in a sequential iterative manner. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoEvalFunc\fP< EOT > & \fBeval\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSeqPopEval< EOT >" +The \fBpeoSeqPopEval\fP class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an \fBeoEvalFunc< EOT >\fP-derived class as evaluation functor. + +The specified \fBEO\fP evaluation object is applyied in an iterative manner to each individual of a specified population. +.PP +Definition at line 21 of file peoSeqPopEval.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSeqPopEval\fP< EOT >::\fBpeoSeqPopEval\fP (\fBeoEvalFunc\fP< EOT > & __eval)" +.PP +Constructor function - it only sets an internal reference to point to the specified evaluation object. +.PP +\fBParameters:\fP +.RS 4 +\fIeoEvalFunc<\fP EOT >& __eval - evaluation object to be applied for each individual of a specified population +.RE +.PP + +.PP +Definition at line 41 of file peoSeqPopEval.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSeqPopEval\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __pop)\fC [virtual]\fP" +.PP +Operator for evaluating all the individuals of a given population - in a sequential iterative manner. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be evaluated. +.RE +.PP + +.PP +Implements \fBpeoPopEval< EOT >\fP. +.PP +Definition at line 46 of file peoSeqPopEval.h. +.PP +References peoSeqPopEval< EOT >::eval. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSeqTransform.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSeqTransform.3 new file mode 100644 index 000000000..ab92b53cd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSeqTransform.3 @@ -0,0 +1,96 @@ +.TH "peoSeqTransform" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSeqTransform \- The \fBpeoSeqTransform\fP represent a wrapper for offering the possibility of using \fBEO\fP derived transform operators along with the ParadisEO evolutionary algorithms. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBpeoTransform< EOT >< EOT >\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSeqTransform\fP (\fBeoTransform\fP< EOT > &__trans)" +.br +.RI "\fIConstructor function - sets an internal reference towards the specified EO-derived transform object. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIOperator for applying the specified transform operators on each individual of the given population. \fP" +.ti -1c +.RI "virtual void \fBpackData\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBunpackData\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBexecute\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBpackResult\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.ti -1c +.RI "virtual void \fBunpackResult\fP ()" +.br +.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoTransform\fP< EOT > & \fBtrans\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSeqTransform< EOT >" +The \fBpeoSeqTransform\fP represent a wrapper for offering the possibility of using \fBEO\fP derived transform operators along with the ParadisEO evolutionary algorithms. + +A minimal set of interface functions is also provided for creating the link with the parallel architecture of the ParadisEO framework. +.PP +Definition at line 20 of file peoSeqTransform.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSeqTransform\fP< EOT >::\fBpeoSeqTransform\fP (\fBeoTransform\fP< EOT > & __trans)" +.PP +Constructor function - sets an internal reference towards the specified EO-derived transform object. +.PP +\fBParameters:\fP +.RS 4 +\fIeoTransform<\fP EOT >& __trans - EO-derived transform object including crossover and mutation operators. +.RE +.PP + +.PP +Definition at line 55 of file peoSeqTransform.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSeqTransform\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __pop)" +.PP +Operator for applying the specified transform operators on each individual of the given population. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be transformed by applying the crossover and mutation operators. +.RE +.PP + +.PP +Definition at line 60 of file peoSeqTransform.h. +.PP +References peoSeqTransform< EOT >::trans. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 new file mode 100644 index 000000000..57918dbbd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 @@ -0,0 +1,183 @@ +.TH "peoSyncIslandMig" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSyncIslandMig \- The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBCooperative\fP, and \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSyncIslandMig\fP (unsigned __frequency, \fBeoSelect\fP< EOT > &__select, \fBeoReplacement\fP< EOT > &__replace, \fBTopology\fP &__topology, \fBeoPop\fP< EOT > &__source, \fBeoPop\fP< EOT > &__destination)" +.br +.RI "\fIConstructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fI\fBFunction\fP operator to be called as checkpoint for performing the migration step. \fP" +.ti -1c +.RI "void \fBpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBunpack\fP ()" +.br +.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBnotifySending\fP ()" +.br +.RI "\fIAuxiliary function dealing with migration notifications. There is no need to explicitly call the function. \fP" +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "void \fBemigrate\fP ()" +.br +.ti -1c +.RI "void \fBimmigrate\fP ()" +.br +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoPeriodicContinue\fP< EOT > \fBcont\fP" +.br +.ti -1c +.RI "\fBeoSelect\fP< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "\fBeoReplacement\fP< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBTopology\fP & \fBtopology\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > & \fBsource\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > & \fBdestination\fP" +.br +.ti -1c +.RI "std::queue< \fBeoPop\fP< EOT > > \fBimm\fP" +.br +.ti -1c +.RI "std::queue< \fBeoPop\fP< EOT > > \fBem\fP" +.br +.ti -1c +.RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP" +.br +.ti -1c +.RI "sem_t \fBsync\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSyncIslandMig< EOT >" +The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. + +frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals. +.PP +The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: +.PP +\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offspring replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified +.PP +Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow: +.PP +.PD 0 +.IP "1." 4 +topological model to be followed when performing migrations: +.br + +.br + \fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands +.PP + +.IP "2." 4 +the continuation criterion, selection and replacement strategy etc. are defined: +.br + +.br + eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoSyncIslandMig< EOT > syncMigration( +.br + MIG_FREQ, migSelect, migReplace, migTopology, +.br + population, population +.br + ); // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated +.PP + +.IP "3." 4 +creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): +.br + +.br + ... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( syncMigration ); // adding the migration operator as checkpoint element ... +.PP + +.IP "4." 4 +definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class): +.br + +.br + peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above syncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population +.PP +.PP +The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. +.PP +The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +.PP +Definition at line 114 of file peoSyncIslandMig.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSyncIslandMig\fP< EOT >::\fBpeoSyncIslandMig\fP (unsigned __frequency, \fBeoSelect\fP< EOT > & __select, \fBeoReplacement\fP< EOT > & __replace, \fBTopology\fP & __topology, \fBeoPop\fP< EOT > & __source, \fBeoPop\fP< EOT > & __destination)" +.PP +Constructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. +.PP +\fBParameters:\fP +.RS 4 +\fIunsigned\fP __frequency - frequency of the migrations - the migrations occur periodically; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; +.br +\fITopology&\fP __topology - topological model to be followed when performing migrations; +.br +\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected; +.br +\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated. +.RE +.PP + +.PP +Definition at line 178 of file peoSyncIslandMig.h. +.PP +References Topology::add(), and peoSyncIslandMig< EOT >::sync. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSyncIslandMig\fP< EOT >::operator() ()\fC [virtual]\fP" +.PP +\fBFunction\fP operator to be called as checkpoint for performing the migration step. +.PP +The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +.PP +Implements \fBeoF< void >\fP. +.PP +Definition at line 252 of file peoSyncIslandMig.h. +.PP +References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSyncMultiStart.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSyncMultiStart.3 new file mode 100644 index 000000000..4bca1683b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoSyncMultiStart.3 @@ -0,0 +1,211 @@ +.TH "peoSyncMultiStart" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoSyncMultiStart \- The \fBpeoSyncMultiStart\fP class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBService\fP, and \fBeoUpdater\fP. +.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoSyncMultiStart\fP (\fBeoContinue\fP< EOT > &__cont, \fBeoSelect\fP< EOT > &__select, \fBeoReplacement\fP< EOT > &__replace, \fBmoAlgo\fP< EOT > &__ls, \fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIConstructor function - several simple parameters are required for defining the characteristics of the multi-start model. \fP" +.ti -1c +.RI "void \fBoperator()\fP ()" +.br +.RI "\fIOperator which synchronously executes the specified algorithm on the individuals selected from the initial population. \fP" +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.RI "\fIAuxiliary function for actually executing the specified algorithm on one assigned individual. \fP" +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP" +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \fP" +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoContinue\fP< EOT > & \fBcont\fP" +.br +.ti -1c +.RI "\fBeoSelect\fP< EOT > & \fBselect\fP" +.br +.ti -1c +.RI "\fBeoReplacement\fP< EOT > & \fBreplace\fP" +.br +.ti -1c +.RI "\fBmoAlgo\fP< EOT > & \fBls\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > & \fBpop\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > \fBsel\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > \fBimpr_sel\fP" +.br +.ti -1c +.RI "EOT \fBsol\fP" +.br +.ti -1c +.RI "unsigned \fBidx\fP" +.br +.ti -1c +.RI "unsigned \fBnum_term\fP" +.br +.in -1c +.SH "Detailed Description" +.PP + +.SS "template class peoSyncMultiStart< EOT >" +The \fBpeoSyncMultiStart\fP class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population. + +As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A \fBpeoSyncMultiStart\fP object can be specified as checkpoint object for a classic ParadisEO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation. +.PP +Definition at line 36 of file peoSyncMultiStart.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoSyncMultiStart\fP< EOT >::\fBpeoSyncMultiStart\fP (\fBeoContinue\fP< EOT > & __cont, \fBeoSelect\fP< EOT > & __select, \fBeoReplacement\fP< EOT > & __replace, \fBmoAlgo\fP< EOT > & __ls, \fBeoPop\fP< EOT > & __pop)" +.PP +Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. +.PP +\fBParameters:\fP +.RS 4 +\fIeoContinue<\fP EOT >& __cont - defined for including further functionality - no semantics associated at this time; +.br +\fIeoSelect<\fP EOT >& __select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm; +.br +\fIeoReplacement<\fP EOT >& __replace - replacement strategy for integrating the resulting individuals in the initial population; +.br +\fImoAlgo<\fP EOT >& __ls - algorithm to be applied on each of the selected individuals - a \fBmoAlgo< EOT >\fP-derived object must be specified; +.br +\fIeoPop<\fP EOT >& __pop - the initial population from which the individuals are selected for applying the specified algorithm. +.RE +.PP + +.PP +Definition at line 106 of file peoSyncMultiStart.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::operator() ()\fC [virtual]\fP" +.PP +Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. +.PP +There is no need to explicitly call the operator - automatically called as checkpoint operator. +.PP +Implements \fBeoF< void >\fP. +.PP +Definition at line 161 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::idx, peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, Service::requestResourceRequest(), peoSyncMultiStart< EOT >::sel, peoSyncMultiStart< EOT >::select, and Communicable::stop(). +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::packData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 120 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::idx, and peoSyncMultiStart< EOT >::sel. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::unpackData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 126 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::execute ()\fC [virtual]\fP" +.PP +Auxiliary function for actually executing the specified algorithm on one assigned individual. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 132 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::ls, and peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::packResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 138 of file peoSyncMultiStart.h. +.PP +References peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::unpackResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 144 of file peoSyncMultiStart.h. +.PP +References Service::getOwner(), peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, peoSyncMultiStart< EOT >::replace, Communicable::resume(), peoSyncMultiStart< EOT >::sel, Thread::setActive(), and peoSyncMultiStart< EOT >::sol. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::notifySendingData ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 172 of file peoSyncMultiStart.h. +.SS "template void \fBpeoSyncMultiStart\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 177 of file peoSyncMultiStart.h. +.PP +References Service::getOwner(), and Thread::setPassive(). + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoTransform.3 b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoTransform.3 new file mode 100644 index 000000000..488597bae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/man/man3/peoTransform.3 @@ -0,0 +1,27 @@ +.TH "peoTransform" 3 "5 Jul 2007" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*- +.ad l +.nh +.SH NAME +peoTransform \- The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes. + +.PP +.SH SYNOPSIS +.br +.PP +\fC#include \fP +.PP +Inherits \fBService\fP, and \fBeoTransform< EOT >< EOT >\fP. +.PP +Inherited by \fBpeoParaSGATransform< EOT >\fP, and \fBpeoSeqTransform< EOT >\fP. +.PP +.SH "Detailed Description" +.PP + +.SS "template class peoTransform< EOT >" +The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes. +.PP +Definition at line 20 of file peoTransform.h. + +.SH "Author" +.PP +Generated automatically by Doxygen for ParadisEO-PEO from the source code. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/paradiseo-peo.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/paradiseo-peo.doxyfile new file mode 100644 index 000000000..03407d91a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/doc/paradiseo-peo.doxyfile @@ -0,0 +1,239 @@ +# Doxyfile 1.4.7 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = ParadisEO-PEO +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = . +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../src +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS \ + README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = peo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../paradiseo-eo/doc/eo.doxytag=http://eodev.sourceforge.net/eo/doc/html \ + ../../paradiseo-mo/doc/mo.doxytag=../../../paradiseo-mo/doc/html +GENERATE_TAGFILE = paradiseo-peo.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/peo-conf.cmake b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/peo-conf.cmake new file mode 100644 index 000000000..8fa260baa --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/peo-conf.cmake @@ -0,0 +1,33 @@ + +###################################################################################### +###################################################################################### +### In this file, you can specify many CMake variables used to build paradisEO-PEO. +### For example, if you don't want ot give the EO path each time on the command line, +### uncomment the line the "SET(EO_DIR...)" and set your path. +### The section numbers are the same as those used in the CMakeLists.txt file. +###################################################################################### +###################################################################################### + + +###################################################################################### +### 3) OPTIONNAL - Overwrite default paths +###################################################################################### + +# SET(MO_DIR "" CACHE PATH "ParadisEO-PEO main directory") +# SET(EO_DIR "" CACHE PATH "ParadisEO-EO main directory") + +# SET(EO_SRC_DIR "") +# SET(MO_SRC_DIR "") +# SET(MO_DOC_DIR "") + +###################################################################################### + + +##################################################################################### +### 5) OPTIONNAL - Overwrite subdirs +###################################################################################### + +# SUBDIRS(doc src tutorial) + +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/CMakeLists.txt new file mode 100644 index 000000000..67c2c2478 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/CMakeLists.txt @@ -0,0 +1,8 @@ + +###################################################################################### +### 1) Where must cmake go now ? +###################################################################################### + +SUBDIRS(core rmc) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/CMakeLists.txt new file mode 100644 index 000000000..61adba4f6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/CMakeLists.txt @@ -0,0 +1,49 @@ + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Define your target(s): just the peo library here +###################################################################################### + +SET(CORE_LIB_OUTPUT_PATH ${ParadisEO-PEO_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${CORE_LIB_OUTPUT_PATH}) + +SET (CORE_SOURCES peo_init.cpp + peo_fin.cpp + peo_run.cpp + peo_param.cpp + peo_debug.cpp + thread.cpp + reac_thread.cpp + service.cpp + runner.cpp + communicable.cpp + topology.cpp + ring_topo.cpp) + + + +ADD_LIBRARY(peo STATIC ${CORE_SOURCES}) + +###################################################################################### + + + +###################################################################################### +### 3) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(CORE_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(peo PROPERTIES VERSION "${CORE_VERSION}") +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/communicable.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/communicable.cpp new file mode 100644 index 000000000..36f04eaa0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/communicable.cpp @@ -0,0 +1,70 @@ +// "comm.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include "communicable.h" + +static std :: vector key_to_comm (1); /* Vector of registered cooperators */ + +static std :: map comm_to_key; /* Map of registered cooperators */ + +unsigned Communicable :: num_comm = 0; + +Communicable :: Communicable () { + + comm_to_key [this] = key = ++ num_comm; + key_to_comm.push_back (this); + sem_init (& sem_lock, 0, 1); + sem_init (& sem_stop, 0, 0); +} + +Communicable :: ~ Communicable () { + +} + +COMM_ID Communicable :: getKey () { + + return key; +} + +Communicable * getCommunicable (COMM_ID __key) { + + assert (__key < key_to_comm.size ()); + return key_to_comm [__key]; +} + +COMM_ID getKey (const Communicable * __comm) { + + return comm_to_key [__comm]; +} + +void Communicable :: lock () { + + sem_wait (& sem_lock); +} + +void Communicable :: unlock () { + + sem_post (& sem_lock); +} + +void Communicable :: stop () { + + sem_wait (& sem_stop); +} + +void Communicable :: resume () { + + sem_post (& sem_stop); +} + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/communicable.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/communicable.h new file mode 100644 index 000000000..cdd5c0c1d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/communicable.h @@ -0,0 +1,47 @@ +// "communicable.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __communicable_h +#define __communicable_h + +#include + +typedef unsigned COMM_ID; + +class Communicable { + +public : + + Communicable (); + + virtual ~ Communicable (); + + COMM_ID getKey (); + + void lock (); /* It suspends the current process if the semaphore is locked */ + void unlock (); /* It unlocks the shared semaphore */ + + void stop (); /* It suspends the current process */ + void resume (); /* It resumes ___________ */ + +protected : + + COMM_ID key; + + sem_t sem_lock; + + sem_t sem_stop; + + static unsigned num_comm; +}; + +extern Communicable * getCommunicable (COMM_ID __key); + +//extern COMM_ID getKey (const Communicable * __comm); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/cooperative.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/cooperative.h new file mode 100644 index 000000000..e05997b9c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/cooperative.h @@ -0,0 +1,41 @@ +// "cooperative.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __cooperative_h +#define __cooperative_h + +#include "communicable.h" +#include "runner.h" + +typedef unsigned COOP_ID; + +class Cooperative : public Communicable { + +public : + + Runner * getOwner (); + + void setOwner (Runner & __runner); + + virtual void pack () = 0; + + virtual void unpack () = 0; + + void send (Cooperative * __coop); + + virtual void notifySending (); + +private : + + Runner * owner; + +}; + +extern Cooperative * getCooperative (COOP_ID __key); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/eoPop_comm.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/eoPop_comm.h new file mode 100644 index 000000000..c9366c22e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/eoPop_comm.h @@ -0,0 +1,32 @@ +// "eoPop_comm.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __eoPop_comm_h +#define __eoPop_comm_h + +#include + +#include "messaging.h" + +template void pack (const eoPop & __pop) { + + pack ((unsigned) __pop.size ()); + for (unsigned i = 0; i < __pop.size (); i ++) + pack (__pop [i]); +} + +template void unpack (eoPop & __pop) { + + unsigned n; + + unpack (n); + __pop.resize (n); + for (unsigned i = 0; i < n; i ++) + unpack (__pop [i]); +} +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/eoVector_comm.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/eoVector_comm.h new file mode 100644 index 000000000..27cb3fbee --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/eoVector_comm.h @@ -0,0 +1,38 @@ +// "eoVector_comm.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __eoVector_comm_h +#define __eoVector_comm_h + +#include + +#include "messaging.h" + +template void pack (const eoVector & __v) { + + pack (__v.fitness ()) ; + unsigned len = __v.size (); + pack (len); + for (unsigned i = 0 ; i < len; i ++) + pack (__v [i]); +} + +template void unpack (eoVector & __v) { + + F fit; + unpack (fit); + __v.fitness (fit); + + unsigned len; + unpack (len); + __v.resize (len); + for (unsigned i = 0 ; i < len; i ++) + unpack (__v [i]); +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/messaging.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/messaging.h new file mode 100644 index 000000000..573375020 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/messaging.h @@ -0,0 +1,104 @@ +// "messaging.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __mess_h +#define __mess_h + +#include + +/* Char */ +extern void pack (const char & __c); + +/* Float */ +extern void pack (const float & __f, int __nitem = 1); + +/* Double */ +extern void pack (const double & __d, int __nitem = 1); + +/* Integer */ +extern void pack (const int & __i, int __nitem = 1); + +/* Unsigned int. */ +extern void pack (const unsigned int & __ui, int __nitem = 1); + +/* Short int. */ +extern void pack (const short & __sh, int __nitem = 1); + +/* Unsigned short */ +extern void pack (const unsigned short & __ush, int __nitem = 1); + +/* Long */ +extern void pack (const long & __l, int __nitem = 1); + +/* Unsigned long */ +extern void pack (const unsigned long & __ul, int __nitem = 1); + +/* String */ +extern void pack (const char * __str); + +/* Pointer */ +template void pack (const T * __ptr) { + + pack ((unsigned long) __ptr); +} + +/* Pair */ +template void pack (const std :: pair & __pair) { + + pack (__pair.first); + pack (__pair.second); +} + +// + +/* Float */ +extern void unpack (char & __c); + +/* Float */ +extern void unpack (float & __f, int __nitem = 1); + +/* Double */ +extern void unpack (double & __d, int __nitem = 1); + +/* Integer */ +extern void unpack (int & __i, int __nitem = 1); + +/* Unsigned int. */ +extern void unpack (unsigned int & __ui, int __nitem = 1); + +/* Short int. */ +extern void unpack (short & __sh, int __nitem = 1); + +/* Unsigned short */ +extern void unpack (unsigned short & __ush, int __nitem = 1); + +/* Long */ +extern void unpack (long & __l, int __nitem = 1); + +/* Unsigned long */ +extern void unpack (unsigned long & __ul, int __nitem = 1); + +/* String */ +extern void unpack (char * __str); + +/* Pointer */ +template void unpack (T * & __ptr) { + + unsigned long p; + unpack (p); + __ptr = (T *) p; +} + +/* Pair */ +template void unpack (std :: pair & __pair) { + + unpack (__pair.first); + unpack (__pair.second); +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_debug.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_debug.cpp new file mode 100644 index 000000000..998a5fb25 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_debug.cpp @@ -0,0 +1,77 @@ +// "peo_debug.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "peo_debug.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "peo_debug.h" + +#define MAX_BUFF_SIZE 1000 + +#define DEBUG_PATH "./log/" + +static bool debug = true; + +static char host [MAX_BUFF_SIZE]; + +std :: vector files; + +void setDebugMode (bool __dbg) { + + debug = __dbg; + gethostname (host, MAX_BUFF_SIZE); +} + +extern int getNodeRank (); + +void initDebugging () { + + mkdir (DEBUG_PATH, S_IRWXU); + // files.push_back (stdout); + char buff [MAX_BUFF_SIZE]; + sprintf (buff, "%s/%d", DEBUG_PATH, getNodeRank ()); + files.push_back (fopen (buff, "w")); +} + +void endDebugging () { + + for (unsigned i = 0; i < files.size (); i ++) + if (files [i] != stdout) + fclose (files [i]); +} + +void printDebugMessage (const char * __mess) { + + if (debug) { + + char buff [MAX_BUFF_SIZE]; + time_t t = time (0); + + /* Date */ + sprintf (buff, "[%s][%s: ", host, ctime (& t)); + * strchr (buff, '\n') = ']'; + for (unsigned i = 0; i < files.size (); i ++) + fprintf (files [i], buff); + + /* Message */ + sprintf (buff, "%s", __mess); + + for (unsigned i = 0; i < files.size (); i ++) { + fputs (buff, files [i]); + fputs ("\n", files [i]); + fflush (files [i]); + } + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_debug.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_debug.h new file mode 100644 index 000000000..90e830717 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_debug.h @@ -0,0 +1,22 @@ +// "peo_debug.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peo_debug_h +#define __peo_debug_h + +extern void initDebugging (); + +extern void endDebugging (); + +extern void setDebugMode (bool __dbg = true); /* (Des)activating the Debugging mode */ + +extern void printDebugMessage (const char * __mess); /* Print a new message both on the + standard output and a target + text-file in a subdirectory) */ + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_fin.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_fin.cpp new file mode 100644 index 000000000..c5d0971ec --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_fin.cpp @@ -0,0 +1,24 @@ +// "peo_finalize.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "peo_fin.h" +#include "peo_debug.h" +#include "runner.h" +#include "rmc.h" + +void peo :: finalize () { + + printDebugMessage ("waiting for the termination of all threads"); + + joinRunners (); + + finalizeRMC (); + + printDebugMessage ("this is the end"); + endDebugging (); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_fin.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_fin.h new file mode 100644 index 000000000..22521fa90 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_fin.h @@ -0,0 +1,17 @@ +// "peo_finalize.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peo_finalize_h +#define __peo_finalize_h + +namespace peo { + + extern void finalize (); +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_init.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_init.cpp new file mode 100644 index 000000000..f182bfe4f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_init.cpp @@ -0,0 +1,37 @@ +// "peo_init.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "peo_init.h" +#include "peo_param.h" +#include "peo_debug.h" +#include "rmc.h" + +namespace peo { + + int * argc; + + char * * * argv; + + void init (int & __argc, char * * & __argv) { + + argc = & __argc; + + argv = & __argv; + + /* Initializing the the Resource Management and Communication */ + initRMC (__argc, __argv); + + /* Loading the common parameters */ + loadParameters (__argc, __argv); + + /* */ + initDebugging (); + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_init.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_init.h new file mode 100644 index 000000000..f4d8527d1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_init.h @@ -0,0 +1,21 @@ +// "peo_init.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peo_init_h +#define __peo_init_h + +namespace peo { + + extern int * argc; + + extern char * * * argv; + + extern void init (int & __argc, char * * & __argv); +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_param.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_param.cpp new file mode 100644 index 000000000..235f89701 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_param.cpp @@ -0,0 +1,25 @@ +// "peo_param.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "peo_param.h" +#include "peo_debug.h" + + + +void peo :: loadParameters (int & __argc, char * * & __argv) { + + eoParser parser (__argc, __argv); + + /* Debug */ + eoValueParam debug_param ("false", "debug", "?"); + parser.processParam (debug_param); + if (debug_param.value () == "true") + setDebugMode (); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_param.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_param.h new file mode 100644 index 000000000..1f3c55c59 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_param.h @@ -0,0 +1,17 @@ +// "peo_param.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peo_param_h +#define __peo_param_h + +namespace peo { + + extern void loadParameters (int & __argc, char * * & __argv); +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_run.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_run.cpp new file mode 100644 index 000000000..7dc523b55 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_run.cpp @@ -0,0 +1,19 @@ +// "peo_run.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "peo_init.h" +#include "peo_run.h" +#include "rmc.h" +#include "runner.h" + +void peo :: run () { + + startRunners (); + + runRMC (); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_run.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_run.h new file mode 100644 index 000000000..0c4734078 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/peo_run.h @@ -0,0 +1,17 @@ +// "peo_run.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peo_run_h +#define __peo_run_h + +namespace peo { + + extern void run (); +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/reac_thread.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/reac_thread.cpp new file mode 100644 index 000000000..e6f02e9cb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/reac_thread.cpp @@ -0,0 +1,36 @@ +// "reac_thread.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "reac_thread.h" + +static bool the_end = false; + +static std :: vector reac_threads; + +ReactiveThread :: ReactiveThread () { + + reac_threads.push_back (this); + sem_init (& sem, 0, 0); +} + +void ReactiveThread :: sleep () { + + sem_wait (& sem); +} + +void ReactiveThread :: wakeUp () { + + sem_post (& sem); +} + +void stopReactiveThreads () { + + the_end = true; + for (unsigned i = 0; i < reac_threads.size (); i ++) + reac_threads [i] -> wakeUp (); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/reac_thread.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/reac_thread.h new file mode 100644 index 000000000..ac9fc79d0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/reac_thread.h @@ -0,0 +1,35 @@ +// "reac_thread.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef REAC_THREAD_H_ +#define REAC_THREAD_H_ + +#include + +#include "thread.h" + +class ReactiveThread : public Thread { + +public: + + /* Ctor */ + ReactiveThread (); + + void sleep (); + + void wakeUp (); + +private: + + sem_t sem; + +}; + +extern void stopReactiveThreads (); + +#endif /*THREAD_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/ring_topo.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/ring_topo.cpp new file mode 100644 index 000000000..1fa1351d4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/ring_topo.cpp @@ -0,0 +1,25 @@ +// "ring_topo.cpp" + +// (c) OPAC Team, LIFL, September 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "ring_topo.h" + +void RingTopology :: setNeighbors (Cooperative * __mig, + std :: vector & __from, + std :: vector & __to) { + __from.clear () ; + __to.clear () ; + + int len = mig.size () ; + + for (int i = 0 ; i < len ; i ++) + if (mig [i] == __mig) { + __from.push_back (mig [(i - 1 + len) % len]) ; + __to.push_back (mig [(i + 1) % len]) ; + break; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/ring_topo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/ring_topo.h new file mode 100644 index 000000000..d473d300a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/ring_topo.h @@ -0,0 +1,24 @@ +// "ring_topo.h" + +// (c) OPAC Team, LIFL, September 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __ring_topo_h +#define __ring_topo_h + +#include "topology.h" + +class RingTopology : public Topology { + +public : + + void setNeighbors (Cooperative * __mig, + std :: vector & __from, + std :: vector & __to); + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/rmc.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/rmc.h new file mode 100644 index 000000000..cf32292e7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/rmc.h @@ -0,0 +1,18 @@ +// "rmc.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __rmc_h +#define __rmc_h + +extern void initRMC (int & __argc, char * * & __argv); + +extern void runRMC (); /* Resource Management and Communication */ + +extern void finalizeRMC (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/runner.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/runner.cpp new file mode 100644 index 000000000..6f8fee9de --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/runner.cpp @@ -0,0 +1,104 @@ +// "runner.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "runner.h" +#include "reac_thread.h" +#include "peo_debug.h" +#include "messaging.h" + +static unsigned num_act = 0; /* Number of active runners */ + +static std :: vector ll_threads; /* Low-level runner threads */ + +static std :: vector the_runners; + +static unsigned num_runners = 0; + +Runner :: Runner () { + + id = ++ num_runners; + the_runners.push_back (this); + sem_init (& sem_start, 0, 0); + num_act ++; +} + +extern int getNodeRank (); + +extern int getNumberOfNodes (); + +void unpackTerminationOfRunner () { + + RUNNER_ID id; + unpack (id); + num_act --; + printDebugMessage ("I'm noticed of the termination of a runner"); + if (! num_act) { + printDebugMessage ("all the runners have terminated. Now stopping the reactive threads."); + stopReactiveThreads (); + } +} + +bool atLeastOneActiveRunner () { + + return num_act; +} + +RUNNER_ID Runner :: getID () { + + return id; +} + +void Runner :: start () { + + setActive (); + sem_post (& sem_start); + run (); + terminate (); +} + +void Runner :: notifySendingTermination () { + + /* + char b [1000]; + sprintf (b, "Il reste encore %d !!!!!!!!!!!!", n); + printDebugMessage (b); + */ + printDebugMessage ("je suis informe que tout le monde a recu ma terminaison"); + setPassive (); + +} + +void Runner :: waitStarting () { + + sem_wait (& sem_start); +} + +Runner * getRunner (RUNNER_ID __key) { + + return dynamic_cast (getCommunicable (__key)); +} + +void startRunners () { + + /* Runners */ + for (unsigned i = 0; i < the_runners.size (); i ++) + if (the_runners [i] -> isLocal ()) { + addThread (the_runners [i], ll_threads); + the_runners [i] -> waitStarting (); + } + printDebugMessage ("launched the parallel runners"); +} + + +void joinRunners () { + + + joinThreads (ll_threads); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/runner.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/runner.h new file mode 100644 index 000000000..3c7864449 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/runner.h @@ -0,0 +1,58 @@ +// "runner.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __runner_h +#define __runner_h + +#include + +#include "communicable.h" +#include "thread.h" + +typedef unsigned RUNNER_ID; + +class Runner : public Communicable, public Thread { + +public : + + Runner (); + + void start (); + + void waitStarting (); + + bool isLocal (); + + void terminate (); + + virtual void run () = 0; + + RUNNER_ID getID (); + + void packTermination (); + + void notifySendingTermination (); + +private : + + sem_t sem_start; + + unsigned id; +}; + +extern bool atLeastOneActiveRunner (); + +extern void unpackTerminationOfRunner (); + +extern Runner * getRunner (RUNNER_ID __key); + +extern void startRunners (); + +extern void joinRunners (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/service.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/service.cpp new file mode 100644 index 000000000..4496e0274 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/service.cpp @@ -0,0 +1,58 @@ +// "service.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "service.h" + +void Service :: setOwner (Thread & __owner) { + + owner = & __owner; +} + +Thread * Service :: getOwner () { + + return owner; +} + +Service * getService (SERVICE_ID __key) { + + return dynamic_cast (getCommunicable (__key)); +} + +void Service :: notifySendingData () { + +} +void Service :: notifySendingResourceRequest () { + + num_sent_rr --; + if (! num_sent_rr) + notifySendingAllResourceRequests (); +} + +void Service :: notifySendingAllResourceRequests () { + +} + +void Service :: packData () { + +} + +void Service :: unpackData () { + +} + +void Service :: execute () { + +} + +void Service :: packResult () { + +} + +void Service :: unpackResult () { + +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/service.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/service.h new file mode 100644 index 000000000..16f75d830 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/service.h @@ -0,0 +1,50 @@ +// "service.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __service_h +#define __service_h + +#include "communicable.h" +#include "thread.h" + +typedef unsigned SERVICE_ID; + +class Service : public Communicable { + +public : + + void setOwner (Thread & __owner); + + Thread * getOwner (); + + void requestResourceRequest (unsigned __how_many = 1); + void packResourceRequest (); + + virtual void packData (); + virtual void unpackData (); + + virtual void execute (); + + virtual void packResult (); + virtual void unpackResult (); + + virtual void notifySendingData (); + virtual void notifySendingResourceRequest (); + virtual void notifySendingAllResourceRequests (); + +private : + + Thread * owner; /* Owner thread (i.e. 'uses' that service) */ + + unsigned num_sent_rr; /* Number of RR not really sent (i.e. still in the sending queue)*/ + +}; + +extern Service * getService (SERVICE_ID __key); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/thread.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/thread.cpp new file mode 100644 index 000000000..5445fe58e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/thread.cpp @@ -0,0 +1,81 @@ +// "thread.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "thread.h" + +static std :: vector threads; + +unsigned num_act = 0; + +Thread :: Thread () { + + threads.push_back (this); + act = false; +} + +Thread :: ~ Thread () { + + /* Nothing ! */ +} + +extern int getNodeRank (); + +void Thread :: setActive () { + + if (! act ) { + + act = true; + num_act ++; + // if (getNodeRank () == 1) + // printf ("On passe a %d\n", num_act); + } +} + +void Thread :: setPassive () { + + if (act) { + + act = false; + num_act --; + // if (getNodeRank () == 1) + // printf ("On passe a %d\n", num_act); + + } +} + +bool atLeastOneActiveThread () { + + return num_act; +} + +unsigned numberOfActiveThreads () { + + return num_act; +} + +static void * launch (void * __arg) { + + Thread * thr = (Thread *) __arg; + thr -> start (); + return 0; +} + +void addThread (Thread * __hl_thread, std :: vector & __ll_threads) { + + pthread_t * ll_thr = new pthread_t; + __ll_threads.push_back (ll_thr); + pthread_create (ll_thr, 0, launch, __hl_thread); +} + +void joinThreads (std :: vector & __threads) { + + for (unsigned i = 0; i < __threads.size (); i ++) + pthread_join (* __threads [i], 0); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/thread.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/thread.h new file mode 100644 index 000000000..db6caa26a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/thread.h @@ -0,0 +1,48 @@ +// "thread.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef THREAD_H_ +#define THREAD_H_ + +#include + +/* A high-level thread */ + +class Thread { + +public: + + /* Ctor */ + Thread (); + + /* Dtor */ + virtual ~ Thread (); + + /* Go ! */ + virtual void start () = 0; + + void setActive ();/* It means the current process is going to send messages soon */ + void setPassive ();/* The current process is not going to perform send operations + (but it may receive messages) */ + +private : + + bool act; +}; + +extern void addThread (Thread * __hl_thread, std :: vector & __ll_threads); + +extern void joinThreads (std :: vector & __ll_threads); + +extern bool atLeastOneActiveThread (); /* It returns 'true' iff at least one process is going + to send messages */ + +extern unsigned numberOfActiveThreads (); + + +#endif /*THREAD_H_*/ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/topology.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/topology.cpp new file mode 100644 index 000000000..46df4c3bc --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/topology.cpp @@ -0,0 +1,20 @@ +// "topo.cpp" + +// (c) OPAC Team, LIFL, September 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "topology.h" + +Topology :: ~ Topology () { + + /* Nothing ! */ +} + +void Topology :: add (Cooperative & __mig) { + + mig.push_back (& __mig) ; +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/topology.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/topology.h new file mode 100644 index 000000000..602e899dd --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/core/topology.h @@ -0,0 +1,33 @@ +// "topology.h" + +// (c) OPAC Team, LIFL, September 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __topology_h +#define __topology_h + +#include + +#include "cooperative.h" + +class Topology { + +public: + + virtual ~Topology (); + + void add (Cooperative & __mig); + + virtual void setNeighbors (Cooperative * __mig, + std :: vector & __from, + std :: vector & __to) = 0; + +protected: + + std :: vector mig ; +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/paradiseo b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/paradiseo new file mode 100644 index 000000000..960f721a1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/paradiseo @@ -0,0 +1,14 @@ +// "paradiseo" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __paradiseo_ +#define __paradiseo_ + +#include "paradiseo.h" + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/paradiseo.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/paradiseo.h new file mode 100644 index 000000000..17f28765a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/paradiseo.h @@ -0,0 +1,285 @@ +// "paradiseo.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __paradiseo_h_ +#define __paradiseo_h_ + +#include +#include + + +//! \mainpage The ParadisEO-PEO Framework +//! +//! \section intro Introduction +//! +//! ParadisEO is a white-box object-oriented framework dedicated to the reusable design +//! of parallel and distributed metaheuristics (PDM). ParadisEO provides a broad range of features including evolutionary +//! algorithms (EA), local searches (LS), the most common parallel and distributed models and hybridization +//! mechanisms, etc. This high content and utility encourages its use at European level. ParadisEO is based on a +//! clear conceptual separation of the solution methods from the problems they are intended to solve. This separation +//! confers to the user a maximum code and design reuse. Furthermore, the fine-grained nature of the classes +//! provided by the framework allow a higher flexibility compared to other frameworks. ParadisEO is one of the rare +//! frameworks that provide the most common parallel and distributed models. Their implementation is portable on +//! distributed-memory machines as well as on shared-memory multiprocessors, as it uses standard libraries such as +//! MPI, PVM and PThreads. The models can be exploited in a transparent way, one has just to instantiate their associated +//! provided classes. Their experimentation on the radio network design real-world application demonstrate their +//! efficiency. +//! +//! In practice, combinatorial optimization problems are often NP-hard, CPU time-consuming, +//! and evolve over time. Unlike exact methods, metaheuristics allow to tackle large-size problems +//! instances by delivering satisfactory solutions in a reasonable time. Metaheuristics are +//! general-purpose heuristics that split in two categories: evolutionary algorithms (EA) and local +//! search methods (LS). These two families have complementary characteristics: EA allow +//! a better exploration of the search space, while LS have the power to intensify the search in +//! promising regions. Their hybridization allows to deliver robust and better solutions +//! +//! Although serial metaheuristics have a polynomial temporal complexity, they remain +//! unsatisfactory for industrial problems. Parallel and distributed computing is a powerful way +//! to deal with the performance issue of these problems. Numerous parallel and distributed +//! metaheuristics (PDM) and their implementations have been proposed, and are available on +//! theWeb. They can be reused and adapted to his/her own problems. However, the user has to +//! deeply examine the code and rewrite its problem-specific sections. The task is tedious, errorprone, +//! takes along time and makes harder the produced code maintenance. A better way to +//! reuse the code of existing PDM is the reuse through libraries. These are often +//! more reliable as they are more tested and documented. They allow a better maintainability +//! and efficiency. However, libraries do not allow the reuse of design. +//! +//! \section parallel_metaheuristics Parallel and distributed metaheuristics +//! +//! \subsection parallel_distributed Parallel distributed evolutionary algorithms +//! +//! Evolutionary Algorithms (EA) are based on the iterative improvement of a +//! population of solutions. At each step, individuals are selected, paired and recombined in order +//! to generate new solutions that replace other ones, and so on. As the algorithm converges, +//! the population is mainly composed of individuals well adapted to the "environment", for +//! instance the problem. The main features that characterize EA are the way the population is +//! initialized, the selection strategy (deterministic/stochastic) by fostering "good" solutions, +//! the replacement strategy that discards individuals, and the continuation/stopping criterion +//! to decide whether the evolution should go on or not. +//! +//! Basically, three major parallel and distributed models for EA can been distinguished: +//! the island (a)synchronous cooperative model, the parallel evaluation of the +//! population, and the distributed evaluation of a single solution. +//!
    +//!
  • Island (a)synchronous cooperative model. Different EA are simultaneously deployed to +//! cooperate for computing better and robust solutions. They exchange in an asynchronous +//! way genetic stuff to diversify the search. The objective is to allow to delay the global +//! convergence, especially when theEAare heterogeneous regarding the variation operators. +//! The migration of individuals follows a policy defined by few parameters: the migration +//! decision criterion, the exchange topology, the number of emigrants, the emigrants selection +//! policy, and the replacement/integration policy.
  • +//! +//!
  • Parallel evaluation of the population. It is required as it is in general the most timeconsuming. +//! The parallel evaluation follows the centralized model. The farmer applies +//! the following operations: selection, transformation and replacement as they require a +//! global management of the population. At each generation, it distributes the set of new +//! solutions between differentworkers. These evaluate and return back the solutions and their +//! quality values. An efficient execution is often obtained particularly when the evaluation +//! of each solution is costly. The two main advantages of an asynchronous model over +//! the synchronous model are: (1) the fault tolerance of the asynchronous model; (2) the +//! robustness in case the fitness computation can take very different computation times (e.g. +//! for nonlinear numerical optimization). Whereas some time-out detection can be used to +//! address the former issue, the latter one can be partially overcome if the grain is set to very +//! small values, as individuals will be sent out for evaluations upon request of the workers.
  • +//! +//!
  • Distributed evaluation of a single solution. The quality of each solution is evaluated in +//! a parallel centralized way. That model is particularly interesting when the evaluation +//! function can be itself parallelized as it is CPU time-consuming and/or IO intensive. In +//! that case, the function can be viewed as an aggregation of a certain number of partial +//! functions. The partial functions could also be identical if for example the problem to deal +//! with is a data mining one. The evaluation is thus data parallel and the accesses to data +//! base are performed in parallel. Furthermore, a reduction operation is performed on the +//! results returned by the partial functions. As a summary, for this model the user has to +//! indicate a set of partial functions and an aggregation operator of these.
  • +//!
+//! +//! \subsection parallel_ls Parallel distributed local searches +//! +//! \subsubsection local_searches Local searches +//! +//! All metaheuristics dedicated to the improvement of a single solution +//! are based on the concept of neighborhood. They start from a solution randomly generated or +//! obtained from another optimization algorithm, and update it, step by step, by replacing the +//! current solution by one of its neighboring candidates. Some criterion have been identified to +//! differentiate such searches: the heuristic internal memory, the choice of the initial solution, +//! the candidate solutions generator, and the selection strategy of candidate moves. Three main +//! algorithms of local search stand out: Hill Climbing (HC), Simulated +//! Annealing (SA) and Tabu Search (TS). +//! +//! \subsubsection parallel_local_searches Parallel local searches +//! +//! Two parallel distributed models are commonly used in the literature: the parallel distributed +//! exploration of neighboring candidate solutions model, and the multi-start model. +//!
    +//!
  • Parallel exploration of neighboring candidates. It is a low-level Farmer-Worker model +//! that does not alter the behavior of the heuristic. A sequential search computes the same +//! results slower.At the beginning of each iteration, the farmer duplicates the current solution +//! between distributed nodes. Each one manages some candidates and the results are returned to the farmer. +//! The model is efficient if the evaluation of a each solution is time-consuming and/or there are a great +//! deal of candidate neighbors to evaluate. This is obviously not applicable to SA since only one candidate +//! is evaluated at each iteration. Likewise, the efficiency of the model for HC is not always guaranteed as +//! the number of neighboring solutions to process before finding one that improves the current objective function may +//! be highly variable.
  • +//! +//!
  • Multi-start model. It consists in simultaneously launching several local searches. They +//! may be heterogeneous, but no information is exchanged between them. The resultswould +//! be identical as if the algorithms were sequentially run.Very often deterministic algorithms +//! differ by the supplied initial solution and/or some other parameters. This trivial model is +//! convenient for low-speed networks of workstations.
  • +//!
+//! +//! \section hybridization Hybridization +//! +//! Recently, hybrid metaheuristics have gained a considerable interest. For many +//! practical or academic optimization problems, the best found solutions are obtained by +//! hybrid algorithms. Combinations of different metaheuristics have provided very powerful +//! search methods. Two levels and two modes +//! of hybridization have been distinguished: Low and High levels, and Relay and Cooperative modes. +//! The low-level hybridization addresses the functional composition of a single optimization +//! method. A function of a given metaheuristic is replaced by another metaheuristic. On the +//! contrary, for high-level hybrid algorithms the different metaheuristics are self-containing, +//! meaning no direct relationship to their internal working is considered. On the other hand, +//! relay hybridization means a set of metaheuristics is applied in a pipeline way. The output +//! of a metaheuristic (except the last) is the input of the following one (except the first). +//! Conversely, co-evolutionist hybridization is a cooperative optimization model. Each metaheuristic +//! performs a search in a solution space, and exchange solutions with others. +//! +//! \section paradiseo_goals Paradiseo goals and architecture +//! +//! The "EO" part of ParadisEO means Evolving Objects. EO is a C++ LGPL open source +//! framework and includes a paradigm-free Evolutionary Computation library (EOlib) +//! dedicated to the flexible design of EA through evolving objects superseding the most common +//! dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and +//! Genetic Programming). Furthermore, EO integrates several services including visualization +//! facilities, on-line definition of parameters, application check-pointing, etc. ParadisEO is an +//! extended version of the EO framework. The extensions include local search methods, hybridization +//! mechanisms, parallelism and distribution mechanisms, and other features that +//! are not addressed in this paper such as multi-objective optimization and grid computing. In +//! the next sections, we present the motivations and goals of ParadisEO, its architecture and +//! some of its main implementation details and issues. +//! +//! \subsection motivation Motivations and goals +//! +//! A framework is normally intended to be exploited by as many users as possible. Therefore, +//! its exploitation could be successful only if some important user criteria are satisfied. The +//! following criteria are the major of them and constitute the main objectives of the ParadisEO +//! framework: +//! +//!
    +//!
  • Maximum design and code reuse. The framework must provide for the user a whole +//! architecture design of his/her solution method. Moreover, the programmer may redo as +//! little code as possible. This objective requires a clear and maximal conceptual separation +//! between the solution methods and the problems to be solved, and thus a deep domain +//! analysis. The user might therefore develop only the minimal problem-specific code.
  • +//! +//!
  • Flexibility and adaptability. It must be possible for the user to easily add new features/ +//! metaheuristics or change existing ones without implicating other components. Furthermore, +//! as in practice existing problems evolve and new others arise these have to be +//! tackled by specializing/adapting the framework components.
  • +//! +//!
  • Utility. The framework must allow the user to cover a broad range of metaheuristics, +//! problems, parallel distributed models, hybridization mechanisms, etc.
  • +//! +//!
  • Transparent and easy access to performance and robustness. As the optimization applications +//! are often time-consuming the performance issue is crucial. Parallelism and +//! distribution are two important ways to achieve high performance execution. In order to +//! facilitate its use it is implemented so that the user can deploy his/her parallel algorithms in +//! a transparent manner. Moreover, the execution of the algorithms must be robust to guarantee +//! the reliability and the quality of the results. The hybridization mechanism allows +//! to obtain robust and better solutions.
  • +//! +//!
  • Portability. In order to satisfy a large number of users the framework must support +//! different material architectures and their associated operating systems.
  • +//!
+//! +//! \subsection architecture ParadisEO architecture +//! +//! The architecture of ParadisEO is multi-layer and modular allowing to achieve the objectives +//! quoted above. This allows particularly a high flexibility and adaptability, an +//! easier hybridization, and more code and design reuse. The architecture has three layers +//! identifying three major categories of classes: Solvers, Runners and Helpers. +//!
    +//!
  • Helpers. Helpers are low-level classes that perform specific actions related to the evolution +//! or search process. They are split in two categories: Evolutionary helpers (EH) +//! and Local search helpers (LSH). EH include mainly the transformation, selection and +//! replacement operations, the evaluation function and the stopping criterion. LSH can be +//! generic such as the neighborhood explorer class, or specific to the local search metaheuristic +//! like the tabu list manager class in the Tabu Search solution method. On the +//! other hand, there are some special helpers dedicated to the management of parallel and +//! distributed models 2 and 3, such as the communicators that embody the communication +//! services. +//! +//! Helpers cooperate between them and interact with the components of the upper layer +//! i.e. the runners. The runners invoke the helpers through function parameters. Indeed, +//! helpers have not their own data, but they work on the internal data of the runners.
  • +//! +//!
  • Runners. The Runners layer contains a set of classes that implement the metaheuristics +//! themselves. They perform the run of the metaheuristics from the initial state or +//! population to the final one. One can distinguish the Evolutionary runners (ER) such as +//! genetic algorithms, evolution strategies, etc., and Local search runners (LSR) like tabu +//! search, simulated annealing and hill climbing. Runners invoke the helpers to perform +//! specific actions on their data. For instance, an ER may ask the fitness function evaluation +//! helper to evaluate its population. An LSR asks the movement helper to perform +//! a given movement on the current state. Furthermore, runners can be serial or parallel +//! distributed.
  • +//! +//!
  • Solvers. Solvers are devoted to control the evolution process and/or the search. They +//! generate the initial state (solution or population) and define the strategy for combining +//! and sequencing different metaheuristics. Two types of solvers can be distinguished. +//! Single metaheuristic solvers (SMS) and Multiple metaheuristics solvers (MMS). SMSs +//! are dedicated to the execution of only one metaheuristic.MMS are more complex as they +//! control and sequence several metaheuristics that can be heterogeneous. Solvers interact with +//! the user by getting the input data and delivering the output (best solution, statistics, +//! etc).
  • +//!
+//! +//! According to the generality of their embedded features, the classes of the architecture split +//! in two major categories: Provided classes and Required classes. Provided classes embody +//! the factored out part of the metaheuristics. They are generic, implemented in the framework, +//! and ensure the control at run time. Required classes are those that must be supplied by the +//! user. They encapsulate the problem-specific aspects of the application. These classes are +//! fixed but not implemented in ParadisEO. The programmer has the burden to develop them +//! using the OO specialization mechanism. +//! +//! \section tutorials ParadisEO-PEO Tutorials +//! +//! The basisc of the ParadisEO framework philosophy are exposed in a few simple tutorials: +//! +//! All the presented examples have as case study the traveling salesman problem (TSP). Different operators and auxiliary objects were designed, +//! standing as a common shared source code base. While not being +//! part of the ParadisEO-PEO framework, it may represent a startpoint for a better understanding of the presented tutorials. + + + +#include "core/peo_init.h" +#include "core/peo_run.h" +#include "core/peo_fin.h" + +#include "core/eoVector_comm.h" + +#include "peoEA.h" + +/* Parallel steps of the E.A. */ +#include "peoSeqTransform.h" +#include "peoParaSGATransform.h" +#include "peoSeqPopEval.h" +#include "peoParaPopEval.h" + +/* Cooperative island model */ +#include "core/ring_topo.h" +#include "peoAsyncIslandMig.h" +#include "peoSyncIslandMig.h" + +/* Synchronous multi-start model */ +#include "peoSyncMultiStart.h" + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoAggEvalFunc.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoAggEvalFunc.h new file mode 100644 index 000000000..c7f492305 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoAggEvalFunc.h @@ -0,0 +1,30 @@ +// "peoAggEvalFunc.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoAggEvalFunc_h +#define __peoAggEvalFunc_h + +#include + +//! Interface class for creating an aggregate evaluation function. + +//! The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there +//! are no direct internal functions provided. The class inherits public eoBF< EOT&, const typename EOT :: Fitness&, void > +//! thus requiring, for the derived classes, the creation of a function having the following signature: +//! +//! +//! +//!
void operator()( EOT& __eot, const typename EOT :: Fitness& __partial_fittness );    
+//! +//! The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions. +template< class EOT > class peoAggEvalFunc : public eoBF< EOT&, const typename EOT :: Fitness&, void > { + +}; + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoAsyncIslandMig.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoAsyncIslandMig.h new file mode 100644 index 000000000..8c82e2f5f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoAsyncIslandMig.h @@ -0,0 +1,258 @@ +// "peoAsyncIslandMig.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoAsyncIslandMig_h +#define __peoAsyncIslandMig_h + + +#include + +#include + +#include +#include +#include +#include + +#include "core/topology.h" +#include "core/cooperative.h" +#include "core/eoPop_comm.h" +#include "core/peo_debug.h" + + +//! Class providing the basis for the asynchronous island migration model. + +//! The peoAsyncIslandMig class offers the elementary basis for implementating an +//! asynchronous island migration model - requires the specification of several basic +//! parameters, i.e. continuation criterion, selection and replacement strategies, +//! a topological model and the source and destination population for the migrating individuals. +//! As opposed to the synchronous migration model, in the asynchronous migration approach, there is +//! no synchronization step between islands after performing the emigration phase. +//! +//! The migration operator is called at the end of each generation of an evolutionary algorithms +//! as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: +//! +//! +//! +//! +//! +//! +//! +//! +//!
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offsprings
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population, including the migration operator, if any specified
+//! +//! Constructing an asynchronous island migration model requires having defined (1) a topological migration model, +//! (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, +//! and (4) an owner object must be set. The owner object must be derived from the Runner class (for example +//! a peoEA object represents a possible owner). +//! A simple example is offered bellow: +//! +//!
    +//!
  1. topological model to be followed when performing migrations:
    +//!
    +//! +//! +//!
    RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
    +//!
  2. +//! +//!
  3. the continuation criterion, selection and replacement strategy etc. are defined:
    +//!
    +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//!
    eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
       
    eoPeriodicContinue< EOT > migCont( MIG_FREQ );   // migrations occur periodically at MIG_FREQ iterations
    eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
    eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
    eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
       
    peoAsyncIslandMig< EOT > asyncMigration( +//!
             migCont, migSelect, migReplace, migTopology, +//!
             population, population +//!
    );  
    // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
    +//!
  4. +//! +//!
  5. creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
    +//!
    +//! +//! +//! +//! +//! +//! +//! +//!
    ...    
    eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
    ...    
    eaCheckpointContinue.add( asyncMigration );   // adding the migration operator as checkpoint element
    ...    
    +//!
  6. +//! +//!
  7. definition of an owner evolutionary algorithm (an object inheriting the Runner class):
    +//!
    +//! +//! +//! +//! +//!
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
    asyncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
    eaAlg( population );   // applying the evolutionary algorithm on a given population
    +//!
  8. +//!
+//! +//! The source and the destination population for the migration object were specified as being the same, in step no. 2, +//! as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique +//! population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations +//! as source and destination for the emigrant and immigrant individuals respectively. +//! +//! The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several +//! islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and +//! the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 +//! (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +template< class EOT > class peoAsyncIslandMig : public Cooperative, public eoUpdater { + +public: + + //! Constructor for the peoAsyncIslandMig class; the characteristics of the migration model are defined + //! through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. + //! + //! @param eoContinue< EOT >& __cont - continuation criterion specifying whether the migration is performed or not; + //! @param eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; + //! @param eoReplacement< EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; + //! @param Topology& __topology - topological model to be followed when performing migrations; + //! @param eoPop< EOT >& __source - source population from which the emigrant individuals are selected; + //! @param eoPop< EOT >& __destination - destination population in which the immigrant population are integrated. + peoAsyncIslandMig( + eoContinue< EOT >& __cont, + eoSelect< EOT >& __select, + eoReplacement< EOT >& __replace, + Topology& __topology, + eoPop< EOT >& __source, + eoPop< EOT >& __destination + ); + + //! Function operator to be called as checkpoint for performing the migration step. The emigrant individuals are selected + //! from the source population and sent to the next island (defined by the topology object) while the immigrant + //! individuals are integrated in the destination population. There is no need to explicitly call the function - the + //! wrapper checkpoint object (please refer to the above example) will perform the call when required. + void operator()(); + + //! Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. + void pack(); + //! Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. + void unpack(); + + +private: + + void emigrate(); + void immigrate(); + + +private: + + eoContinue< EOT >& cont; // continuator + eoSelect< EOT >& select; // the selection strategy + eoReplacement< EOT >& replace; // the replacement strategy + Topology& topology; // the neighboring topology + + // source and destination populations + eoPop< EOT >& source; + eoPop< EOT >& destination; + + // immigrants & emigrants in the queue + std :: queue< eoPop< EOT > > imm; + std :: queue< eoPop< EOT > > em; + + std :: queue< Cooperative* > coop_em; +}; + + +template< class EOT > peoAsyncIslandMig< EOT > :: peoAsyncIslandMig( + + eoContinue< EOT >& __cont, + eoSelect< EOT >& __select, + eoReplacement< EOT >& __replace, + Topology& __topology, + eoPop< EOT >& __source, + eoPop< EOT >& __destination + + ) : cont( __cont ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination ) +{ + + __topology.add( *this ); +} + + +template< class EOT > void peoAsyncIslandMig< EOT > :: pack() +{ + + lock(); { + + :: pack( coop_em.front()->getKey() ); + :: pack( em.front() ); + coop_em.pop(); + em.pop(); + } + unlock(); +} + + +template< class EOT > void peoAsyncIslandMig< EOT > :: unpack() +{ + + lock(); { + + eoPop< EOT > mig; + :: unpack( mig ); + imm.push( mig ); + } + unlock(); +} + + +template< class EOT > void peoAsyncIslandMig< EOT > :: emigrate() +{ + + std :: vector< Cooperative* >in, out; + topology.setNeighbors( this, in, out ); + + for ( unsigned i = 0; i < out.size(); i++ ) { + + eoPop< EOT > mig; + select( source, mig ); + em.push( mig ); + coop_em.push( out[i] ); + send( out[i] ); + printDebugMessage( "sending some emigrants." ); + } +} + + +template< class EOT > void peoAsyncIslandMig< EOT > :: immigrate() +{ + + lock(); { + + while ( !imm.empty() ) { + + replace( destination, imm.front() ); + imm.pop(); + printDebugMessage( "receiving some immigrants." ); + } + } + unlock(); +} + + +template< class EOT > void peoAsyncIslandMig< EOT > :: operator()() { + + if ( !cont( source ) ) { + + emigrate(); // sending emigrants + immigrate(); // receiving immigrants + } +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoEA.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoEA.h new file mode 100644 index 000000000..516b70af9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoEA.h @@ -0,0 +1,145 @@ +// "peoEA.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoEA_h +#define __peoEA_h + +#include +#include +#include +#include +#include + +#include "peoPopEval.h" +#include "peoTransform.h" +#include "core/runner.h" +#include "core/peo_debug.h" + +//! Class providing an elementary ParadisEO evolutionary algorithm. + +//! The peoEA class offers an elementary evolutionary algorithm implementation. In addition, as compared +//! with the algorithms provided by the EO framework, the peoEA class has the underlying necessary structure +//! for including, for example, parallel evaluation and parallel transformation operators, migration operators +//! etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides +//! in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. +//! A simple example for constructing a peoEA object: +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//! +//!
...    
eoPop< EOT > population( POP_SIZE, popInitializer );   // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual
   
eoGenContinue< EOT > eaCont( NUM_GEN );   // number of generations for the evolutionary algorithm
eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects
   
peoSeqPopEval< EOT > eaPopEval( evalFunction );   // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor
   
eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE );   // the number of individuals to be selected for creating the offspring population
eoRankingSelect< EOT > selectionStrategy;   // selection strategy for creating the offspring population - a simple ranking selection in this case
   
eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE );   // transformation operator - crossover and mutation operators with their associated probabilities
peoSeqTransform< EOT > eaTransform( transform );   // ParadisEO specific sequential operator - a parallel version may be specified in the same manner
   
eoPlusReplacement< EOT > eaReplace;   // replacement strategy - for integrating the offspring resulting individuals in the initial population
   
peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );   // ParadisEO evolutionary algorithm integrating the above defined objects
eaAlg( population );   // specifying the initial population for the algorithm
...    
+template < class EOT > class peoEA : public Runner { + +public: + + //! Constructor for the evolutionary algorithm object - several basic parameters have to be specified, + //! allowing for different levels of parallelism. Depending on the requirements, a sequential or a parallel + //! evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation + //! operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, + //! or custom defined ones may be specified, provided that they are derived from the correct base classes. + //! + //! @param eoContinue< EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not; + //! @param peoPopEval< EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.; + //! @param eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals; + //! @param peoTransform< EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform; + //! @param eoReplacement< EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population; + peoEA( + eoContinue< EOT >& __cont, + peoPopEval< EOT >& __pop_eval, + eoSelect< EOT >& __select, + peoTransform< EOT >& __trans, + eoReplacement< EOT >& __replace + ); + + //! Evolutionary algorithm function - a side effect of the fact that the class is derived from the Runner class, + //! thus requiring the existence of a run function, the algorithm being executed on a distinct thread. + void run(); + + //! Function operator for specifying the population to be associated with the algorithm. + //! + //! @param eoPop< EOT >& __pop - initial population of the algorithm, to be iteratively evolved; + void operator()( eoPop< EOT >& __pop ); + +private: + + + eoContinue< EOT >& cont; + peoPopEval< EOT >& pop_eval; + eoSelect< EOT >& select; + peoTransform< EOT >& trans; + eoReplacement< EOT >& replace; + eoPop< EOT >* pop; +}; + + +template < class EOT > peoEA< EOT > :: peoEA( + + eoContinue< EOT >& __cont, + peoPopEval< EOT >& __pop_eval, + eoSelect< EOT >& __select, + peoTransform< EOT >& __trans, + eoReplacement< EOT >& __replace + + ) : cont( __cont ), pop_eval( __pop_eval ), select( __select ), trans( __trans ), replace( __replace ) +{ + + trans.setOwner( *this ); + pop_eval.setOwner( *this ); +} + + +template< class EOT > void peoEA< EOT > :: operator ()( eoPop< EOT >& __pop ) { + + pop = &__pop; +} + + +template< class EOT > void peoEA< EOT > :: run() { + + printDebugMessage( "performing the first evaluation of the population." ); + pop_eval( *pop ); + + do { + + eoPop< EOT > off; + + printDebugMessage( "performing the selection step." ); + select( *pop, off ); + trans( off ); + + printDebugMessage( "performing the evaluation of the population." ); + pop_eval( off ); + + printDebugMessage( "performing the replacement of the population." ); + replace( *pop, off ); + + printDebugMessage( "deciding of the continuation." ); + + } while ( cont( *pop ) ); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoNoAggEvalFunc.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoNoAggEvalFunc.h new file mode 100644 index 000000000..d3a701123 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoNoAggEvalFunc.h @@ -0,0 +1,34 @@ +// "peoNoAggEvalFunc.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoNoAggEvalFunc_h +#define __peoNoAggEvalFunc_h + +#include "peoAggEvalFunc.h" + +//! Class providing a simple interface for associating a fitness value to a specified individual. + +//! The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual. +//! The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness +//! value is explicitly specified. +template< class EOT > class peoNoAggEvalFunc : public peoAggEvalFunc< EOT > { + +public : + + //! Operator which sets as fitness the __fit value for the __sol individual + void operator()( EOT& __sol, const typename EOT :: Fitness& __fit ); +}; + + +template< class EOT > void peoNoAggEvalFunc< EOT > :: operator()( EOT& __sol, const typename EOT :: Fitness& __fit ) { + + __sol.fitness( __fit ); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoParaPopEval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoParaPopEval.h new file mode 100644 index 000000000..8e9760d89 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoParaPopEval.h @@ -0,0 +1,225 @@ +// "peoParaPopEval.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoParaPopEval_h +#define __peoParaPopEval_h + +#include +#include + +#include "core/messaging.h" +#include "core/peo_debug.h" +#include "peoAggEvalFunc.h" +#include "peoNoAggEvalFunc.h" + + +//! Parallel evaluation functor wrapper. + +//! The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel +//! an EO-derived evaluation functor. The class offers the possibility of chosing between a single-function evaluation +//! and an aggregate evaluation function, including several sub-evalution functions. +template< class EOT > class peoParaPopEval : public peoPopEval< EOT > { + +public: + + using peoPopEval< EOT > :: requestResourceRequest; + using peoPopEval< EOT > :: resume; + using peoPopEval< EOT > :: stop; + using peoPopEval< EOT > :: getOwner; + + //! Constructor function - an EO-derived evaluation functor has to be specified; an internal reference + //! is set towards the specified evaluation functor. + //! + //! @param eoEvalFunc< EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population + peoParaPopEval( eoEvalFunc< EOT >& __eval_func ); + + //! Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. + //! + //! @param const std :: vector< eoEvalFunc < EOT >* >& __funcs - vector of EO-derived partial evaluation functors; + //! @param peoAggEvalFunc< EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values. + peoParaPopEval( const std :: vector< eoEvalFunc < EOT >* >& __funcs, peoAggEvalFunc< EOT >& __merge_eval ); + + //! Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. + //! + //! @param eoPop< EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor. + void operator()( eoPop< EOT >& __pop ); + + //! Auxiliary function for transferring data between the process requesting an evaluation operation and the process that + //! performs the actual evaluation phase. There is no need to explicitly call the function. + void packData(); + + //! Auxiliary function for transferring data between the process requesting an evaluation operation and the process that + //! performs the actual evaluation phase. There is no need to explicitly call the function. + void unpackData(); + + //! Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. + void execute(); + + //! Auxiliary function for transferring data between the process requesting an evaluation operation and the process that + //! performs the actual evaluation phase. There is no need to explicitly call the function. + void packResult(); + + //! Auxiliary function for transferring data between the process requesting an evaluation operation and the process that + //! performs the actual evaluation phase. There is no need to explicitly call the function. + void unpackResult(); + + //! Auxiliary function for notifications between the process requesting an evaluation operation and the processes that + //! performs the actual evaluation phase. There is no need to explicitly call the function. + void notifySendingData(); + + //! Auxiliary function for notifications between the process requesting an evaluation operation and the processes that + //! performs the actual evaluation phase. There is no need to explicitly call the function. + void notifySendingAllResourceRequests(); + +private: + + + const std :: vector< eoEvalFunc < EOT >* >& funcs; + std :: vector< eoEvalFunc < EOT >* > one_func; + + peoAggEvalFunc< EOT >& merge_eval; + peoNoAggEvalFunc< EOT > no_merge_eval; + + std :: queue< EOT* >tasks; + + std :: map< EOT*, std :: pair< unsigned, unsigned > > progression; + + unsigned num_func; + + EOT sol; + + EOT *ad_sol; + + unsigned total; +}; + + +template< class EOT > peoParaPopEval< EOT > :: peoParaPopEval( eoEvalFunc< EOT >& __eval_func ) : + + funcs( one_func ), merge_eval( no_merge_eval ) +{ + + one_func.push_back( &__eval_func ); +} + + +template< class EOT > peoParaPopEval< EOT > :: peoParaPopEval( + + const std :: vector< eoEvalFunc< EOT >* >& __funcs, + peoAggEvalFunc< EOT >& __merge_eval + + ) : funcs( __funcs ), merge_eval( __merge_eval ) +{ + +} + + +template< class EOT > void peoParaPopEval< EOT >::operator()( eoPop< EOT >& __pop ) { + + for ( unsigned i = 0; i < __pop.size(); i++ ) { + + __pop[ i ].fitness( typename EOT :: Fitness() ); + + progression[ &__pop[ i ] ].first = funcs.size() - 1; + progression[ &__pop[ i ] ].second = funcs.size(); + + for ( unsigned j = 0; j < funcs.size(); j++ ) { + /* Queuing the 'invalid' solution and its associated owner */ + tasks.push( &__pop[ i ] ); + } + } + + total = funcs.size() * __pop.size(); + requestResourceRequest( funcs.size() * __pop.size() ); + stop(); +} + + +template< class EOT > void peoParaPopEval< EOT > :: packData() { + + // printDebugMessage ("debut pakc data"); + pack( progression[ tasks.front() ].first-- ); + + /* Packing the contents :-) of the solution */ + pack( *tasks.front() ); + + /* Packing the addresses of both the solution and the owner */ + pack( tasks.front() ); + tasks.pop( ); +} + + +template< class EOT > void peoParaPopEval< EOT > :: unpackData() { + + unpack( num_func ); + /* Unpacking the solution */ + unpack( sol ); + /* Unpacking the @ of that one */ + unpack( ad_sol ); +} + + +template< class EOT > void peoParaPopEval< EOT > :: execute() { + + /* Computing the fitness of the solution */ + funcs[ num_func ]->operator()( sol ); +} + + +template< class EOT > void peoParaPopEval< EOT > :: packResult() { + + /* Packing the fitness of the solution */ + pack( sol.fitness() ); + /* Packing the @ of the individual */ + pack( ad_sol ); +} + + +template< class EOT > void peoParaPopEval< EOT > :: unpackResult() { + + typename EOT :: Fitness fit; + + /* Unpacking the computed fitness */ + unpack( fit ); + + /* Unpacking the @ of the associated individual */ + unpack( ad_sol ); + + + /* Associating the fitness the local solution */ + merge_eval( *ad_sol, fit ); + + progression[ ad_sol ].second--; + + /* Notifying the container of the termination of the evaluation */ + if ( !progression[ ad_sol ].second ) { + + progression.erase( ad_sol ); + } + + total--; + if ( !total ) { + + getOwner()->setActive(); + resume(); + } +} + + +template< class EOT > void peoParaPopEval< EOT > :: notifySendingData() { + +} + + +template< class EOT > void peoParaPopEval< EOT > :: notifySendingAllResourceRequests() { + + getOwner()->setPassive(); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoParaSGATransform.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoParaSGATransform.h new file mode 100644 index 000000000..6e64a25b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoParaSGATransform.h @@ -0,0 +1,155 @@ +// "peoParaSGATransform.h" + +//(c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoParaSGATransform_h +#define __peoParaSGATransform_h + +#include "peoTransform.h" +#include "core/thread.h" +#include "core/messaging.h" +#include "core/peo_debug.h" + + +extern int getNodeRank(); + + +template< class EOT > class peoParaSGATransform : public peoTransform< EOT > { + +public: + + using peoTransform< EOT > :: requestResourceRequest; + using peoTransform< EOT > :: resume; + using peoTransform< EOT > :: stop; + using peoTransform< EOT > :: getOwner; + + peoParaSGATransform( + + eoQuadOp< EOT >& __cross, + double __cross_rate, + eoMonOp< EOT >& __mut, + double __mut_rate + ); + + void operator()( eoPop< EOT >& __pop ); + + void packData(); + + void unpackData(); + + void execute(); + + void packResult(); + + void unpackResult(); + + void notifySendingData(); + void notifySendingAllResourceRequests(); + +private: + + eoQuadOp< EOT >& cross; + double cross_rate; + + eoMonOp< EOT >& mut; + double mut_rate; + + unsigned idx; + + eoPop< EOT >* pop; + + EOT father, mother; + + unsigned num_term; +}; + +template< class EOT > peoParaSGATransform< EOT > :: peoParaSGATransform( + + eoQuadOp< EOT >& __cross, + double __cross_rate, + eoMonOp < EOT >& __mut, + double __mut_rate + + ) : cross( __cross ), cross_rate( __cross_rate ), mut( __mut ), mut_rate( __mut_rate ) +{ + +} + + +template< class EOT > void peoParaSGATransform< EOT > :: packData() { + + pack( idx ); + :: pack( pop->operator[]( idx++ ) ); + :: pack( pop->operator[]( idx++ ) ); +} + + +template< class EOT > void peoParaSGATransform< EOT > :: unpackData() { + + unpack( idx ); + :: unpack( father ); + :: unpack( mother ); +} + + +template< class EOT > void peoParaSGATransform< EOT > :: execute() { + + if( rng.uniform() < cross_rate ) cross( mother, father ); + + if( rng.uniform() < mut_rate ) mut( mother ); + if( rng.uniform() < mut_rate ) mut( father ); +} + + +template< class EOT > void peoParaSGATransform< EOT > :: packResult() { + + pack( idx ); + :: pack( father ); + :: pack( mother ); +} + + +template< class EOT > void peoParaSGATransform< EOT > :: unpackResult() { + + unsigned sidx; + + unpack( sidx ); + :: unpack( pop->operator[]( sidx++ ) ); + :: unpack( pop->operator[]( sidx ) ); + num_term += 2; + + if( num_term == pop->size() ) { + + getOwner()->setActive(); + resume(); + } +} + + +template< class EOT > void peoParaSGATransform< EOT > :: operator()( eoPop < EOT >& __pop ) { + + printDebugMessage( "performing the parallel transformation step." ); + pop = &__pop; + idx = 0; + num_term = 0; + requestResourceRequest( __pop.size() / 2 ); + stop(); +} + + +template< class EOT > void peoParaSGATransform< EOT > :: notifySendingData() { + +} + + +template< class EOT > void peoParaSGATransform< EOT > :: notifySendingAllResourceRequests() { + + getOwner()->setPassive(); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoPopEval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoPopEval.h new file mode 100644 index 000000000..440d638ae --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoPopEval.h @@ -0,0 +1,28 @@ +// "peoPopEval.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoPopEval_h +#define __peoPopEval_h + +#include "core/service.h" + +//! Interface for ParadisEO specific evaluation functors. + +//! The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +//! The derived classes may be used as wrappers for EO-derived evaluation functors. In order to have an example, +//! please refer to the implementation of the peoSeqPopEval and peoParaPopEval classes. +template< class EOT > class peoPopEval : public Service { + +public: + + //! Interface function providing the signature for constructing an evaluation functor. + virtual void operator()( eoPop< EOT >& __pop ) = 0; +}; + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSeqPopEval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSeqPopEval.h new file mode 100644 index 000000000..769c4f891 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSeqPopEval.h @@ -0,0 +1,53 @@ +// "peoSeqPopEval.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoSeqPopEval_h +#define __peoSeqPopEval_h + +#include + +#include "peoPopEval.h" + +//! Sequential evaluation functor wrapper. + +//! The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating +//! an eoEvalFunc< EOT >-derived class as evaluation functor. The specified EO evaluation object is applyied in an +//! iterative manner to each individual of a specified population. +template< class EOT > class peoSeqPopEval : public peoPopEval< EOT > { + +public: + + //! Constructor function - it only sets an internal reference to point to the specified evaluation object. + //! + //! @param eoEvalFunc< EOT >& __eval - evaluation object to be applied for each individual of a specified population + peoSeqPopEval( eoEvalFunc< EOT >& __eval ); + + //! Operator for evaluating all the individuals of a given population - in a sequential iterative manner. + //! + //! @param eoPop< EOT >& __pop - population to be evaluated. + void operator()( eoPop< EOT >& __pop ); + +private: + + eoEvalFunc< EOT >& eval; +}; + + +template< class EOT > peoSeqPopEval< EOT > :: peoSeqPopEval( eoEvalFunc< EOT >& __eval ) : eval( __eval ) { + +} + + +template< class EOT > void peoSeqPopEval< EOT > :: operator()( eoPop< EOT >& __pop ) { + + for ( unsigned i = 0; i < __pop.size(); i++ ) + eval( __pop[i] ); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSeqTransform.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSeqTransform.h new file mode 100644 index 000000000..6834f550d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSeqTransform.h @@ -0,0 +1,66 @@ +// "peoSeqTransform.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoSeqTransform_h +#define __peoSeqTransform_h + +#include "peoTransform.h" + + +//! ParadisEO specific wrapper class offering the possibility of using EO derived transform operators. + +//! The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators +//! along with the ParadisEO evolutionary algorithms. A minimal set of interface functions is also provided for creating the +//! link with the parallel architecture of the ParadisEO framework. +template< class EOT > class peoSeqTransform : public peoTransform< EOT > { + +public: + + //! Constructor function - sets an internal reference towards the specified EO-derived transform object. + //! + //! @param eoTransform< EOT >& __trans - EO-derived transform object including crossover and mutation operators. + peoSeqTransform( eoTransform< EOT >& __trans ); + + //! Operator for applying the specified transform operators on each individual of the given population. + //! + //! @param eoPop< EOT >& __pop - population to be transformed by applying the crossover and mutation operators. + void operator()( eoPop< EOT >& __pop ); + + //! Interface function for providing a link with the parallel architecture of the ParadisEO framework. + virtual void packData() { } + + //! Interface function for providing a link with the parallel architecture of the ParadisEO framework. + virtual void unpackData() { } + + //! Interface function for providing a link with the parallel architecture of the ParadisEO framework. + virtual void execute() { } + + //! Interface function for providing a link with the parallel architecture of the ParadisEO framework. + virtual void packResult() { } + + //! Interface function for providing a link with the parallel architecture of the ParadisEO framework. + virtual void unpackResult() { } + +private: + + eoTransform< EOT >& trans; +}; + + +template< class EOT > peoSeqTransform< EOT > :: peoSeqTransform( eoTransform< EOT >& __trans ) : trans( __trans ) { + +} + + +template< class EOT > void peoSeqTransform< EOT > :: operator()( eoPop< EOT >& __pop ) { + + trans( __pop ); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSyncIslandMig.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSyncIslandMig.h new file mode 100644 index 000000000..a6b0b13b1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSyncIslandMig.h @@ -0,0 +1,286 @@ +// "peoSyncIslandMig.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoSyncIslandMig_h +#define __peoSyncIslandMig_h + + +#include +#include + +#include + +#include + +#include +#include +#include +#include + +#include "core/topology.h" +#include "core/thread.h" +#include "core/eoPop_comm.h" +#include "core/peo_debug.h" + + +//! Class providing the basis for the synchronous island migration model. + +//! The peoSyncIslandMig class offers the elementary basis for implementating a +//! synchronous island migration model - requires the specification of several basic +//! parameters, i.e. frequency of the migrations, selection and replacement strategies, +//! a topological model and the source and destination population for the migrating individuals. +//! The main difference as opposed to the asynchronous migration model is the synchronization step +//! performed after selecting and sending the emigrant individuals. +//! +//! The migration operator is called at the end of each generation of an evolutionary algorithms +//! as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: +//! +//! +//! +//! +//! +//! +//! +//! +//!
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offspring
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population, including the migration operator, if any specified
+//! +//! Constructing a synchronous island migration model requires having defined (1) a topological migration model, +//! (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, +//! and (4) an owner object must be set. The owner object must be derived from the Runner class (for example +//! a peoEA object represents a possible owner). +//! A simple example is offered bellow: +//! +//!
    +//!
  1. topological model to be followed when performing migrations:
    +//!
    +//! +//! +//!
    RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
    +//!
  2. +//! +//!
  3. the continuation criterion, selection and replacement strategy etc. are defined:
    +//!
    +//! +//! +//! +//! +//! +//! +//! +//! +//! +//!
    eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
       
    eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
    eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
    eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
       
    peoSyncIslandMig< EOT > syncMigration( +//!
             MIG_FREQ, migSelect, migReplace, migTopology, +//!
             population, population +//!
    );  
    // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
    +//!
  4. +//! +//!
  5. creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
    +//!
    +//! +//! +//! +//! +//! +//! +//! +//!
    ...    
    eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
    eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
    ...    
    eaCheckpointContinue.add( syncMigration );   // adding the migration operator as checkpoint element
    ...    
    +//!
  6. +//! +//!
  7. definition of an owner evolutionary algorithm (an object inheriting the Runner class):
    +//!
    +//! +//! +//! +//! +//!
    peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
    syncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
    eaAlg( population );   // applying the evolutionary algorithm on a given population
    +//!
  8. +//!
+//! +//! The source and the destination population for the migration object were specified as being the same, in step no. 2, +//! as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique +//! population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations +//! as source and destination for the emigrant and immigrant individuals respectively. +//! +//! The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several +//! islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and +//! the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 +//! (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +template< class EOT > class peoSyncIslandMig : public Cooperative, public eoUpdater { + +public: + + //! Constructor for the peoSyncIslandMig class; the characteristics of the migration model are defined + //! through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. + //! + //! @param unsigned __frequency - frequency of the migrations - the migrations occur periodically; + //! @param eoSelect< EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; + //! @param eoReplacement< EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; + //! @param Topology& __topology - topological model to be followed when performing migrations; + //! @param eoPop< EOT >& __source - source population from which the emigrant individuals are selected; + //! @param eoPop< EOT >& __destination - destination population in which the immigrant population are integrated. + peoSyncIslandMig( + unsigned __frequency, + eoSelect< EOT >& __select, + eoReplacement< EOT >& __replace, + Topology& __topology, + eoPop< EOT >& __source, + eoPop< EOT >& __destination + ); + + //! Function operator to be called as checkpoint for performing the migration step. The emigrant individuals are selected + //! from the source population and sent to the next island (defined by the topology object) while the immigrant + //! individuals are integrated in the destination population. There is no need to explicitly call the function - the + //! wrapper checkpoint object (please refer to the above example) will perform the call when required. + void operator()(); + + //! Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. + void pack(); + //! Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. + void unpack(); + + //! Auxiliary function dealing with migration notifications. There is no need to explicitly call the function. + void notifySending(); + + +private: + + void emigrate(); + void immigrate(); + + +private: + + eoPeriodicContinue< EOT > cont; + eoSelect< EOT >& select; // selection strategy + eoReplacement< EOT >& replace; // replacement strategy + Topology& topology; // neighboring topology + + // source and target populations + eoPop< EOT >& source; + eoPop< EOT >& destination; + + // immigrants & emigrants in the queue + std :: queue< eoPop< EOT > > imm; + std :: queue< eoPop< EOT > > em; + + std :: queue< Cooperative* > coop_em; + + sem_t sync; +}; + + +template< class EOT > peoSyncIslandMig< EOT > :: peoSyncIslandMig( + + unsigned __frequency, + eoSelect< EOT >& __select, + eoReplacement< EOT >& __replace, + Topology& __topology, + eoPop< EOT >& __source, + eoPop< EOT >& __destination + + ) : cont( __frequency ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination ) +{ + + __topology.add( *this ); + sem_init( &sync, 0, 0 ); +} + + +template< class EOT > void peoSyncIslandMig< EOT > :: pack() { + + lock(); { + + :: pack( coop_em.front()->getKey() ); + :: pack( em.front() ); + coop_em.pop(); + em.pop(); + } + unlock(); +} + + +template< class EOT > void peoSyncIslandMig< EOT > :: unpack() { + + lock(); { + + eoPop< EOT > mig; + :: unpack( mig ); + imm.push( mig ); + } + unlock(); + + sem_post( &sync ); +} + + +template< class EOT > void peoSyncIslandMig< EOT > :: emigrate() { + + std :: vector< Cooperative* > in, out; + topology.setNeighbors( this, in, out ); + + for ( unsigned i = 0; i < out.size(); i ++ ) { + + eoPop< EOT > mig; + select( source, mig ); + em.push( mig ); + coop_em.push( out[ i ] ); + send( out[ i ] ); + printDebugMessage( "sending some emigrants." ); + } +} + + +template< class EOT > void peoSyncIslandMig< EOT > :: immigrate() { + + lock(); { + + assert( imm.size() ); + replace( destination, imm.front() ) ; + imm.pop(); + printDebugMessage( "receiving some immigrants." ); + } + unlock(); +} + + +template< class EOT > void peoSyncIslandMig< EOT > :: operator()() { + + if ( !cont( source ) ) { + + // sending emigrants + emigrate(); + stop(); + + // synchronizing + sem_wait( &sync ); + getOwner()->setActive(); + + // receiving immigrants + immigrate(); + } +} + + +template< class EOT > void peoSyncIslandMig< EOT > :: notifySending() { + + lock(); { + + if ( imm.empty() ) { + + printDebugMessage( "entering pasive mode\n" ); + getOwner()->setPassive(); + } + } + unlock(); + + resume(); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSyncMultiStart.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSyncMultiStart.h new file mode 100644 index 000000000..bfeb5aa6e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoSyncMultiStart.h @@ -0,0 +1,183 @@ +// "peoSyncMultiStart.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoSyncMultiStart_h +#define __peoSyncMultiStart_h + +#include +#include + +#include +#include +#include + +#include "core/service.h" +#include "core/messaging.h" +#include "core/peo_debug.h" + + +extern int getNodeRank(); + + +//! Class providing the basis for the synchronous multi-start model. + +//! The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, +//! for launching several solution-based algorithms in parallel on a specified initial population. As a simple +//! example, several hill climbing algorithms may be synchronously launched on the specified population, each +//! algorithm acting upon one individual only, the final result being integrated back in the population. A +//! peoSyncMultiStart object can be specified as checkpoint object for a classic ParadisEO evolutionary algorithm +//! thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, +//! for example, executed at the end of each generation. +template< class EOT > class peoSyncMultiStart : public Service, public eoUpdater { + +public: + + //! Constructor function - several simple parameters are required for defining the characteristics of the multi-start model. + //! + //! @param eoContinue< EOT >& __cont - defined for including further functionality - no semantics associated at this time; + //! @param eoSelect< EOT >& __select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm; + //! @param eoReplacement< EOT >& __replace - replacement strategy for integrating the resulting individuals in the initial population; + //! @param moAlgo< EOT >& __ls - algorithm to be applied on each of the selected individuals - a moAlgo< EOT >-derived object must be specified; + //! @param eoPop< EOT >& __pop - the initial population from which the individuals are selected for applying the specified algorithm. + peoSyncMultiStart( + + eoContinue< EOT >& __cont, + eoSelect< EOT >& __select, + eoReplacement< EOT >& __replace, + moAlgo< EOT >& __ls, + eoPop< EOT >& __pop + ); + + //! Operator which synchronously executes the specified algorithm on the individuals selected from the initial population. + //! There is no need to explicitly call the operator - automatically called as checkpoint operator. + void operator()(); + + //! Auxiliary function for transferring data between the process requesting the synchronous execution of the specified + //! algorithm and the process which actually executes the algorithm. There is no need to explicitly call the function. + void packData(); + + //! Auxiliary function for transferring data between the process requesting the synchronous execution of the specified + //! algorithm and the process which actually executes the algorithm. There is no need to explicitly call the function. + void unpackData(); + + //! Auxiliary function for actually executing the specified algorithm on one assigned individual. There is no need to + //! explicitly call the function. + void execute(); + + //! Auxiliary function for transferring data between the process requesting the synchronous execution of the specified + //! algorithm and the process which actually executes the algorithm. There is no need to explicitly call the function. + void packResult(); + + //! Auxiliary function for transferring data between the process requesting the synchronous execution of the specified + //! algorithm and the process which actually executes the algorithm. There is no need to explicitly call the function. + void unpackResult(); + + //! Auxiliary function for notifications between the process requesting the synchronous multi-start execution + //! and the processes that performs the actual execution phase. There is no need to explicitly call the function. + void notifySendingData(); + + //! Auxiliary function for notifications between the process requesting the synchronous multi-start execution + //! and the processes that performs the actual execution phase. There is no need to explicitly call the function. + void notifySendingAllResourceRequests(); + +private: + + eoContinue< EOT >& cont; + eoSelect< EOT >& select; + eoReplacement< EOT >& replace; + + moAlgo< EOT >& ls; + + eoPop< EOT >& pop; + eoPop< EOT > sel; + eoPop< EOT > impr_sel; + + EOT sol; + unsigned idx; + unsigned num_term; +}; + + +template< class EOT > peoSyncMultiStart< EOT > :: peoSyncMultiStart( + + eoContinue < EOT >& __cont, + eoSelect< EOT >& __select, + eoReplacement< EOT >& __replace, + moAlgo < EOT >& __ls, + eoPop< EOT >& __pop + + ) : cont( __cont ), select( __select ), replace( __replace ), ls( __ls ), pop( __pop ) +{ + +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: packData() { + + :: pack( sel[ idx++ ] ); +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: unpackData() { + + unpack( sol ); +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: execute() { + + ls( sol ); +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: packResult() { + + pack( sol ); +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: unpackResult() { + + unpack( sol ); + impr_sel.push_back( sol ); + num_term++; + + if ( num_term == sel.size() ) { + + getOwner()->setActive(); + replace( pop, impr_sel ); + + printDebugMessage( "replacing the improved individuals in the population." ); + resume(); + } +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: operator()() { + + printDebugMessage( "performing the parallel multi-start hybridization." ); + select( pop, sel ); + impr_sel.clear(); + idx = num_term = 0; + requestResourceRequest( sel.size() ); + stop(); +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: notifySendingData() { + +} + + +template< class EOT > void peoSyncMultiStart< EOT > :: notifySendingAllResourceRequests() { + + getOwner()->setPassive(); +} + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoTransform.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoTransform.h new file mode 100644 index 000000000..fd07f9d3a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/peoTransform.h @@ -0,0 +1,25 @@ +// "peoTransform.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __peoTransform_h +#define __peoTransform_h + +#include + +#include "core/service.h" + +//! Interface class for constructing more complex transformation operators. + +//! The peoTransform class acts only as an interface for creating transform operators - for an example +//! please refer to the peoSeqTransform and the peoParaSGATransform classes. +template< class EOT > class peoTransform : public Service, public eoTransform< EOT > { + +}; + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/CMakeLists.txt new file mode 100644 index 000000000..cff45bfa7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/CMakeLists.txt @@ -0,0 +1,9 @@ + + +###################################################################################### +### 1) Where must cmake go now ? +###################################################################################### + +SUBDIRS(mpi) + +###################################################################################### \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/CMakeLists.txt new file mode 100644 index 000000000..b275baef1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/CMakeLists.txt @@ -0,0 +1,60 @@ + +###################################################################################### +### 0) Set the compiler +###################################################################################### + +SET (CMAKE_CXX_COMPILER mpicxx) + +###################################################################################### + + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${XML2_CFLAGS_WITH_WHITESPACE}) + +###################################################################################### + + + +###################################################################################### +### 2) Define your target(s): just the core library here +###################################################################################### + +SET(RMC_MPI_LIB_OUTPUT_PATH ${ParadisEO-PEO_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${RMC_MPI_LIB_OUTPUT_PATH}) + +SET (RMC_MPI_SOURCES node.cpp + param.cpp + comm.cpp + coop.cpp + mess.cpp + rmc.cpp + scheduler.cpp + worker.cpp + send.cpp + recv.cpp + xml_parser.cpp + schema.cpp + runner.cpp + service.cpp) + +ADD_LIBRARY(rmc_mpi STATIC ${RMC_MPI_SOURCES}) +ADD_DEPENDENCIES(rmc_mpi peo) +###################################################################################### + + + +###################################################################################### +### 3) Optionnal: define your lib version: +###################################################################################### + +SET(RMC_MPI_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(rmc_mpi PROPERTIES VERSION "${RMC_MPI_VERSION}") +###################################################################################### + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/comm.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/comm.cpp new file mode 100644 index 000000000..1352c66fb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/comm.cpp @@ -0,0 +1,67 @@ +// "comm.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + + +#include + +#include "comm.h" +#include "mess.h" +#include "node.h" +#include "param.h" +#include "../../core/peo_debug.h" +#include "../../core/runner.h" +#include "send.h" +#include "recv.h" +#include "scheduler.h" + +static sem_t sem_comm_init; + +static Communicator * the_thread; + +Communicator :: Communicator (int * __argc, char * * * __argv) { + + the_thread = this; + initNode (__argc, __argv); + loadRMCParameters (* __argc, * __argv); + sem_post (& sem_comm_init); +} + +void Communicator :: start () { + + while (true) { + + /* Zzz Zzz Zzz :-))) */ + sleep (); + sendMessages (); + + if (! atLeastOneActiveRunner ()) + break; + receiveMessages (); + } + waitBuffers (); + printDebugMessage ("finalizing"); + MPI_Finalize (); +} + +void initCommunication () { + + sem_init (& sem_comm_init, 0, 0); +} + +void waitNodeInitialization () { + + sem_wait (& sem_comm_init); +} + +void wakeUpCommunicator () { + + the_thread -> wakeUp (); +} + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/comm.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/comm.h new file mode 100644 index 000000000..1ecf4b89a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/comm.h @@ -0,0 +1,31 @@ +// "comm.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __comm_mpi_h +#define __comm_mpi_h + +#include "../../core/communicable.h" +#include "../../core/reac_thread.h" + +class Communicator : public ReactiveThread { + +public : + + /* Ctor */ + Communicator (int * __argc, char * * * __argv); + + void start (); +}; + +extern void initCommunication (); + +extern void waitNodeInitialization (); + +extern void wakeUpCommunicator (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/coop.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/coop.cpp new file mode 100644 index 000000000..f24ffea1c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/coop.cpp @@ -0,0 +1,42 @@ +// "coop.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "../../core/cooperative.h" +#include "send.h" +#include "tags.h" +#include "schema.h" +#include "mess.h" +#include "../../core/peo_debug.h" + +Runner * Cooperative :: getOwner () { + + return owner; +} + +void Cooperative :: setOwner (Runner & __runner) { + + owner = & __runner; +} + +void Cooperative :: send (Cooperative * __coop) { + + :: send (this, getRankOfRunner (__coop -> getOwner () -> getID ()), COOP_TAG); + // stop (); +} + +Cooperative * getCooperative (COOP_ID __key) { + + return dynamic_cast (getCommunicable (__key)); +} + +void Cooperative :: notifySending () { + + //getOwner -> setPassive (); + // resume (); + // printDebugMessage (b); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/mess.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/mess.cpp new file mode 100644 index 000000000..1ccedb51e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/mess.cpp @@ -0,0 +1,237 @@ +// "mess.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include "mess.h" +#include "../../core/peo_debug.h" +#include "node.h" + +#define MPI_BUF_SIZE 1024*64 + +static char mpi_buf [MPI_BUF_SIZE]; + +static int pos_buf ; + +static std :: vector act_buf; /* Active buffers */ + +static std :: vector act_req; /* Active requests */ + +void cleanBuffers () { + + for (unsigned i = 0; i < act_req.size ();) { + + MPI_Status stat ; + int flag ; + MPI_Test (act_req [i], & flag, & stat) ; + if (flag) { + + delete act_buf [i] ; + delete act_req [i] ; + + act_buf [i] = act_buf.back () ; + act_buf.pop_back () ; + + act_req [i] = act_req.back () ; + act_req.pop_back () ; + } + else + i ++; + } +} + +void waitBuffers () { + + printDebugMessage ("waiting the termination of the asynchronous operations to complete"); + + for (unsigned i = 0; i < act_req.size (); i ++) { + + MPI_Status stat ; + + MPI_Wait (act_req [i], & stat) ; + + delete act_buf [i] ; + delete act_req [i] ; + } +} + +bool probeMessage (int & __src, int & __tag) { + + int flag; + + MPI_Status stat; + + MPI_Iprobe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & flag, & stat); + + __src = stat.MPI_SOURCE; + __tag = stat.MPI_TAG; + + return flag; +} + +void waitMessage () { + + MPI_Status stat; + + MPI_Probe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & stat); +} + +void initMessage () { + + pos_buf = 0; +} + +void sendMessage (int __to, int __tag) { + + cleanBuffers (); + act_buf.push_back (new char [pos_buf]); + act_req.push_back (new MPI_Request); + memcpy (act_buf.back (), mpi_buf, pos_buf); + MPI_Isend (act_buf.back (), pos_buf, MPI_PACKED, __to, __tag, MPI_COMM_WORLD, act_req.back ()); +} + +void sendMessageToAll (int __tag) { + + for (int i = 0; i < getNumberOfNodes (); i ++) + sendMessage (i, __tag); +} + +void receiveMessage (int __from, int __tag) { + + MPI_Status stat; + MPI_Request req; + + MPI_Irecv (mpi_buf, MPI_BUF_SIZE, MPI_PACKED, __from, __tag, MPI_COMM_WORLD, & req) ; + MPI_Wait (& req, & stat) ; +} + +/* Char */ +void pack (const char & __c) { + + MPI_Pack ((void *) & __c, 1, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Float */ +void pack (const float & __f, int __nitem) { + + MPI_Pack ((void *) & __f, __nitem, MPI_FLOAT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Double */ +void pack (const double & __d, int __nitem) { + + MPI_Pack ((void *) & __d, __nitem, MPI_DOUBLE, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Integer */ +void pack (const int & __i, int __nitem) { + + MPI_Pack ((void *) & __i, __nitem, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Unsigned int. */ +void pack (const unsigned int & __ui, int __nitem) { + + MPI_Pack ((void *) & __ui, __nitem, MPI_UNSIGNED, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Short int. */ +void pack (const short & __sh, int __nitem) { + + MPI_Pack ((void *) & __sh, __nitem, MPI_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Unsigned short */ +void pack (const unsigned short & __ush, int __nitem) { + + MPI_Pack ((void *) & __ush, __nitem, MPI_UNSIGNED_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Long */ +void pack (const long & __l, int __nitem) { + + MPI_Pack ((void *) & __l, __nitem, MPI_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Unsigned long */ +void pack (const unsigned long & __ul, int __nitem) { + + MPI_Pack ((void *) & __ul, __nitem, MPI_UNSIGNED_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* String */ +void pack (const char * __str) { + + int len = strlen (__str) + 1; + MPI_Pack (& len, 1, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); + MPI_Pack ((void *) __str, len, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +} + +/* Char */ +void unpack (char & __c) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __c, 1, MPI_CHAR, MPI_COMM_WORLD); +} + +/* Float */ +void unpack (float & __f, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __f, __nitem, MPI_FLOAT, MPI_COMM_WORLD); +} + +/* Double */ +void unpack (double & __d, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __d, __nitem, MPI_DOUBLE, MPI_COMM_WORLD); +} + +/* Integer */ +void unpack (int & __i, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __i, __nitem, MPI_INT, MPI_COMM_WORLD); +} + +/* Unsigned int. */ +void unpack (unsigned int & __ui, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ui, __nitem, MPI_UNSIGNED, MPI_COMM_WORLD); +} + +/* Short int. */ +void unpack (short & __sh, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __sh, __nitem, MPI_SHORT, MPI_COMM_WORLD); +} + +/* Unsigned short */ +void unpack (unsigned short & __ush, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ush, __nitem, MPI_UNSIGNED_SHORT, MPI_COMM_WORLD); +} + +/* Long */ +void unpack (long & __l, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __l, __nitem, MPI_LONG, MPI_COMM_WORLD); +} + +/* Unsigned long */ +void unpack (unsigned long & __ul, int __nitem) { + + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ul, __nitem, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); +} + +/* String */ +void unpack (char * __str) { + + int len; + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & len, 1, MPI_INT, MPI_COMM_WORLD); + MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, __str, len, MPI_CHAR, MPI_COMM_WORLD); +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/mess.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/mess.h new file mode 100644 index 000000000..6e40a154a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/mess.h @@ -0,0 +1,31 @@ +// "mess.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __mess_rmc_h +#define __mess_rmc_h + +#include "../../core/messaging.h" + +extern void initMessage (); + +extern void sendMessage (int __to, int __tag); + +extern void sendMessageToAll (int __tag); + +extern void receiveMessage (int __from, int __tag); + +extern void cleanBuffers (); + +extern void waitBuffers (); + +extern bool probeMessage (int & __src, int & __tag); + +extern void waitMessage (); + +#endif + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/node.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/node.cpp new file mode 100644 index 000000000..b17b032bf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/node.cpp @@ -0,0 +1,58 @@ +// "node.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include +#include +#include + +static int rk, sz; /* Rank & size */ + +static std :: map name_to_rk; + +static std :: vector rk_to_name; + +int getNodeRank () { + + return rk; +} + +int getNumberOfNodes () { + + return sz; +} + +int getRankFromName (const std :: string & __name) { + + return atoi (__name.c_str ()); +} + +void initNode (int * __argc, char * * * __argv) { + + int provided; + MPI_Init_thread (__argc, __argv, MPI_THREAD_FUNNELED, & provided); + assert (provided == MPI_THREAD_FUNNELED); /* The MPI implementation must be multi-threaded. + Yet, only one thread performs the comm. + operations */ + MPI_Comm_rank (MPI_COMM_WORLD, & rk); /* Who ? */ + MPI_Comm_size (MPI_COMM_WORLD, & sz); /* How many ? */ + + char names [sz] [MPI_MAX_PROCESSOR_NAME]; + int len; + + /* Processor names */ + MPI_Get_processor_name (names [0], & len); /* Me */ + MPI_Allgather (names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, MPI_COMM_WORLD); /* Broadcast */ + + for (int i = 0; i < sz; i ++) { + rk_to_name.push_back (names [i]); + name_to_rk [names [i]] = i; + } +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/node.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/node.h new file mode 100644 index 000000000..3fc345c8d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/node.h @@ -0,0 +1,24 @@ +// "node.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __node_h +#define __node_h + +#include +#include + +extern int getNodeRank (); /* It gives the rank of the calling process */ + +extern int getNumberOfNodes (); /* It gives the size of the environment (Total number of nodes) */ + +extern int getRankFromName (const std :: string & __name); /* It gives the rank of the process + expressed by its name */ + +extern void initNode (int * __argc, char * * * __argv); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/param.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/param.cpp new file mode 100644 index 000000000..22d387ad0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/param.cpp @@ -0,0 +1,21 @@ +// "param.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "schema.h" + +void loadRMCParameters (int & __argc, char * * & __argv) { + + eoParser parser (__argc, __argv); + + /* Schema */ + eoValueParam schema_param ("schema.xml", "schema", "?"); + parser.processParam (schema_param); + loadSchema (schema_param.value ().c_str ()); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/param.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/param.h new file mode 100644 index 000000000..9fdc99e59 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/param.h @@ -0,0 +1,14 @@ +// "param.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __rmc_param_h +#define __rmc_param_h + +extern void loadRMCParameters (int & __argc, char * * & __argv); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/recv.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/recv.cpp new file mode 100644 index 000000000..a2d12795c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/recv.cpp @@ -0,0 +1,112 @@ +// "recv.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "comm.h" +#include "tags.h" +#include "worker.h" +#include "scheduler.h" +#include "mess.h" +#include "node.h" +#include "../../core/runner.h" +#include "../../core/cooperative.h" +#include "../../core/peo_debug.h" + +void receiveMessages () { + + cleanBuffers (); + + do { + + if (! atLeastOneActiveThread ()) { + // printDebugMessage ("debut wait"); + waitMessage (); + //printDebugMessage ("fin wait"); + } + + int src, tag; + + while (probeMessage (src, tag)) { + + receiveMessage (src, tag); + initMessage (); + /* + char b [1000]; + sprintf (b, "traitement recv %d\n", tag); + printDebugMessage (b); + */ + + switch (tag) { + + case RUNNER_STOP_TAG: + unpackTerminationOfRunner (); + wakeUpCommunicator (); + break; + + case COOP_TAG: + // printDebugMessage ("reception de message de cooperation"); + COOP_ID coop_id; + unpack (coop_id); + getCooperative (coop_id) -> unpack (); + break; + + case SCHED_REQUEST_TAG: + unpackResourceRequest (); + break; + + case SCHED_RESULT_TAG: + { + /* Unpacking the resource */ + SERVICE_ID serv_id; + unpack (serv_id); + Service * serv = getService (serv_id); + int dest; + unpack (dest); + WORKER_ID worker_id; + unpack (worker_id); + + /* Going back ... */ + initMessage (); + pack (worker_id); + pack (serv_id); + serv -> packData (); + serv -> notifySendingData (); + sendMessage (dest, TASK_DATA_TAG); + break; + } + + case TASK_DATA_TAG: + { + WORKER_ID worker_id; + unpack (worker_id); + Worker * worker = getWorker (worker_id); + worker -> setSource (src); + worker -> unpackData (); + worker -> wakeUp (); + break; + } + + case TASK_RESULT_TAG: + { + SERVICE_ID serv_id; + unpack (serv_id); + Service * serv = getService (serv_id); + serv -> unpackResult (); + break; + } + + case TASK_DONE_TAG: + unpackTaskDone (); + break; + + default: + ; + }; + } + + } while (! atLeastOneActiveThread () && atLeastOneActiveRunner () /*&& ! allResourcesFree ()*/); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/recv.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/recv.h new file mode 100644 index 000000000..5832a7584 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/recv.h @@ -0,0 +1,14 @@ +// "recv.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __recv_h +#define __recv_h + +extern void receiveMessages (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/rmc.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/rmc.cpp new file mode 100644 index 000000000..5730f837f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/rmc.cpp @@ -0,0 +1,47 @@ +// "rmc.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "send.h" +#include "worker.h" +#include "schema.h" +#include "comm.h" +#include "scheduler.h" +#include "../../core/peo_debug.h" + +static std :: vector ll_threads; /* Low level threads */ + +void runRMC () { + + /* Worker(s) ? */ + for (unsigned i = 0; i < my_node -> num_workers; i ++) + addThread (new Worker, ll_threads); + + wakeUpCommunicator (); +} + +void initRMC (int & __argc, char * * & __argv) { + + /* Communication */ + initCommunication (); + addThread (new Communicator (& __argc, & __argv), ll_threads); + waitNodeInitialization (); + initSending (); + + /* Scheduler */ + if (isScheduleNode ()) + initScheduler (); + + /// +} + +void finalizeRMC () { + + printDebugMessage ("before join threads RMC"); + joinThreads (ll_threads); + printDebugMessage ("after join threads RMC"); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/runner.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/runner.cpp new file mode 100644 index 000000000..7fe7673e0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/runner.cpp @@ -0,0 +1,33 @@ +// "runner.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "../../core/messaging.h" +#include "../../core/runner.h" +#include "node.h" +#include "send.h" +#include "tags.h" +#include "schema.h" + +bool Runner :: isLocal () { + + for (unsigned i = 0; i < my_node -> id_run.size (); i ++) + if (my_node -> id_run [i] == id) + return true; + return false; +} + +void Runner :: packTermination () { + + pack (id); +} + +void Runner :: terminate () { + + sendToAll (this, RUNNER_STOP_TAG); +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/scheduler.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/scheduler.cpp new file mode 100644 index 000000000..40de0e3f7 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/scheduler.cpp @@ -0,0 +1,78 @@ +// "sched_thread.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "scheduler.h" +#include "tags.h" +#include "mess.h" +#include "../../core/peo_debug.h" + +static std :: queue resources; /* Free resources */ + +static std :: queue requests; /* Requests */ + +static unsigned initNumberOfRes = 0; + +void initScheduler () { + + for (unsigned i = 0; i < the_schema.size (); i ++) { + + const Node & node = the_schema [i]; + + if (node.rk_sched == my_node -> rk) + for (unsigned j = 0; j < node.num_workers; j ++) + resources.push (std :: pair (i, j + 1)); + } + initNumberOfRes = resources.size (); +} + +bool allResourcesFree () { + + return resources.size () == initNumberOfRes; +} + +static void update () { + + unsigned num_alloc = std :: min (resources.size (), requests.size ()); + + for (unsigned i = 0; i < num_alloc; i ++) { + + SCHED_REQUEST req = requests.front (); + requests.pop (); + + SCHED_RESOURCE res = resources.front (); + resources.pop (); + + printDebugMessage ("allocating a resource."); + initMessage (); + pack (req.second); + pack (res); + sendMessage (req.first, SCHED_RESULT_TAG); + } +} + +void unpackResourceRequest () { + + printDebugMessage ("queuing a resource request."); + SCHED_REQUEST req; + unpack (req); + requests.push (req); + update (); +} + +void unpackTaskDone () { + + printDebugMessage ("I'm notified a worker is now idle."); + SCHED_RESOURCE res; + unpack (res); + resources.push (res); + if (resources.size () == initNumberOfRes) + printDebugMessage ("all the resources are now free."); + update (); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/scheduler.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/scheduler.h new file mode 100644 index 000000000..2bae123ff --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/scheduler.h @@ -0,0 +1,32 @@ +// "scheduler.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __scheduler_h +#define __scheduler_h + +#include + +#include "schema.h" +#include "worker.h" + +typedef std :: pair SCHED_RESOURCE; + +typedef std :: pair SCHED_REQUEST; + +/* Initializing the list of available workers */ +extern void initScheduler (); + +/* Processing a resource request from a service */ +extern void unpackResourceRequest (); + +/* Being known a worker is now idle :-) */ +extern void unpackTaskDone (); + +extern bool allResourcesFree (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/schema.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/schema.cpp new file mode 100644 index 000000000..fa202b462 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/schema.cpp @@ -0,0 +1,135 @@ +// "schema.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include "schema.h" +#include "xml_parser.h" +#include "comm.h" +#include "node.h" +#include "../../core/peo_debug.h" + +std :: vector the_schema; + +Node * my_node; + +RANK_ID getRankOfRunner (RUNNER_ID __key) { + + for (unsigned i = 0; i < the_schema.size (); i ++) + for (unsigned j = 0; j < the_schema [i].id_run.size (); j ++) + if (the_schema [i].id_run [j] == __key) + return the_schema [i].rk; + assert (false); + return 0; +} + +static void loadNode (int __rk_sched) { + + Node node; + + node.rk_sched = __rk_sched; + + /* ATT: name*/ + node.rk = getRankFromName (getAttributeValue ("name")); + /* ATT: num_workers */ + node.num_workers = atoi (getAttributeValue ("num_workers").c_str ()); + + while (true) { + + /* TAG: | */ + std :: string name = getNextNode (); + assert (name == "runner" || name == "node"); + if (name == "runner") { + /* TAG: */ + node.id_run.push_back (atoi (getNextNode ().c_str ())); + /* TAG:
*/ + assert (getNextNode () == "runner"); + } + else { + /* TAG: */ + the_schema.push_back (node); + break; + } + } +} + +static void loadGroup () { + + std :: string name; + + /* ATT: scheduler*/ + int rk_sched = getRankFromName (getAttributeValue ("scheduler")); + + while (true) { + + /* TAG: | */ + name = getNextNode (); + assert (name == "node" || name == "group"); + if (name == "node") + /* TAG: */ + loadNode (rk_sched); + else + /* TAG: */ + break; + } +} + +bool isScheduleNode () { + + return my_node -> rk == my_node -> rk_sched; +} + +void loadSchema (const char * __filename) { + + openXMLDocument (__filename); + + std :: string name; + + /* TAG: */ + name = getNextNode (); + assert (name == "schema"); + + while (true) { + + /* TAG: | */ + name = getNextNode (); + assert (name == "group" || name == "schema"); + if (name == "group") + /* TAG: */ + loadGroup (); + else + /* TAG: */ + break; + } + + /* Looking for my node */ + for (unsigned i = 0; i < the_schema.size (); i ++) + if (the_schema [i].rk == getNodeRank ()) + my_node = & (the_schema [i]); + + /* About me */ + char mess [1000]; + + sprintf (mess, "my rank is %d", my_node -> rk); + printDebugMessage (mess); + if (isScheduleNode ()) + printDebugMessage ("I'am a scheduler"); + for (unsigned i = 0; i < my_node -> id_run.size (); i ++) { + sprintf (mess, "I manage the runner %d", my_node -> id_run [i]); + printDebugMessage (mess); + } + if (my_node -> num_workers) { + + sprintf (mess, "I manage %d worker(s)", my_node -> num_workers); + printDebugMessage (mess); + } + + closeXMLDocument (); +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/schema.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/schema.h new file mode 100644 index 000000000..4a16ce15e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/schema.h @@ -0,0 +1,39 @@ +// "schema.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __schema_h +#define __schema_h + +#include +#include +#include + +#include "../../core/runner.h" + +typedef int RANK_ID; + +struct Node { + + RANK_ID rk; /* Rank */ + std :: string name; /* Host name */ + unsigned num_workers; /* Number of parallel workers */ + int rk_sched; /* rank of the scheduler */ + std :: vector id_run; /* List of runners */ +}; + +extern std :: vector the_schema; + +extern Node * my_node; + +extern void loadSchema (const char * __filename); + +extern RANK_ID getRankOfRunner (RUNNER_ID __key); + +extern bool isScheduleNode (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/send.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/send.cpp new file mode 100644 index 000000000..a6c7288af --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/send.cpp @@ -0,0 +1,116 @@ +// "send.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include + +#include "tags.h" +#include "comm.h" +#include "worker.h" +#include "scheduler.h" +#include "mess.h" +#include "node.h" +#include "../../core/cooperative.h" +#include "../../core/peo_debug.h" + +#define TO_ALL -1 + +typedef struct { + + Communicable * comm; + int to; + int tag; + +} SEND_REQUEST; + +static std :: queue mess; + +static sem_t sem_send; + +void initSending () { + + sem_init (& sem_send, 0, 1); +} + +void send (Communicable * __comm, int __to, int __tag) { + + SEND_REQUEST req; + req.comm = __comm; + req.to = __to; + req.tag = __tag; + + sem_wait (& sem_send); + mess.push (req); + sem_post (& sem_send); + wakeUpCommunicator (); +} + +void sendToAll (Communicable * __comm, int __tag) { + + send (__comm, TO_ALL, __tag); +} + +void sendMessages () { + + sem_wait (& sem_send); + + while (! mess.empty ()) { + + SEND_REQUEST req = mess.front (); + /* + char b [1000]; + sprintf (b, "traitement send %d\n", req.tag); + printDebugMessage (b); + */ + + Communicable * comm = req.comm; + + initMessage (); + + switch (req.tag) { + + case RUNNER_STOP_TAG: + dynamic_cast (comm) -> packTermination (); + dynamic_cast (comm) -> notifySendingTermination (); + break; + + case COOP_TAG: + dynamic_cast (comm) -> pack (); + dynamic_cast (comm) -> notifySending (); + break; + + case SCHED_REQUEST_TAG: + dynamic_cast (comm) -> packResourceRequest (); + dynamic_cast (comm) -> notifySendingResourceRequest (); + break; + + case TASK_RESULT_TAG: + dynamic_cast (comm) -> packResult (); + dynamic_cast (comm) -> notifySendingResult (); + break; + + case TASK_DONE_TAG: + dynamic_cast (comm) -> packTaskDone (); + dynamic_cast (comm) -> notifySendingTaskDone (); + break; + + default : + break; + + }; + + if (req.to == TO_ALL) + sendMessageToAll (req.tag); + else + sendMessage (req.to, req.tag); + mess.pop (); + } + + sem_post (& sem_send); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/send.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/send.h new file mode 100644 index 000000000..ddf264440 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/send.h @@ -0,0 +1,22 @@ +// "send.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __send_h +#define __send_h + +#include "../../core/communicable.h" + +extern void initSending (); + +extern void send (Communicable * __comm, int __to, int __tag); + +extern void sendToAll (Communicable * __comm, int __tag); + +extern void sendMessages (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/service.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/service.cpp new file mode 100644 index 000000000..93647f035 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/service.cpp @@ -0,0 +1,30 @@ +// "service.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "../../core/service.h" +#include "../../core/messaging.h" +#include "node.h" +#include "tags.h" +#include "send.h" +#include "scheduler.h" + +void Service :: requestResourceRequest (unsigned __how_many) { + + num_sent_rr = __how_many; + for (unsigned i = 0; i < __how_many; i ++) + send (this, my_node -> rk_sched, SCHED_REQUEST_TAG); +} + +void Service :: packResourceRequest () { + + SCHED_REQUEST req; + req.first = getNodeRank (); + req.second = getKey (); + // printf ("demande de ressource pour %d\n", req.second); + :: pack (req); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/tags.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/tags.h new file mode 100644 index 000000000..ce29a7b80 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/tags.h @@ -0,0 +1,24 @@ +// "tags.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __tags_h +#define __tags_h + +#define RUNNER_STOP_TAG 13 + +#define COOP_TAG 14 + +#define SCHED_REQUEST_TAG 16 + +#define SCHED_RESULT_TAG 17 +#define TASK_DATA_TAG 18 + +#define TASK_RESULT_TAG 19 +#define TASK_DONE_TAG 20 + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/worker.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/worker.cpp new file mode 100644 index 000000000..3fc4218e1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/worker.cpp @@ -0,0 +1,93 @@ +// "worker.cpp" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "tags.h" +#include "send.h" +#include "node.h" +#include "schema.h" +#include "worker.h" +#include "mess.h" +#include "../../core/peo_debug.h" + +static std :: vector key_to_worker (1); /* Vector of registered workers */ + +Worker * getWorker (WORKER_ID __key) { + + return key_to_worker [__key]; +} + +Worker :: Worker () { + + toto = false; + id = key_to_worker.size (); + key_to_worker.push_back (this); +} + +void Worker :: packResult () { + + pack (serv_id); + serv -> packResult (); +} + +void Worker :: unpackData () { + + printDebugMessage ("unpacking the ID. of the service."); + unpack (serv_id); + serv = getService (serv_id); + printDebugMessage ("found the service."); + serv -> unpackData (); + printDebugMessage ("unpacking the data."); + setActive (); +} + +void Worker :: packTaskDone () { + + pack (getNodeRank ()); + pack (id); +} + +void Worker :: notifySendingResult () { + + /* Notifying the scheduler of the termination */ + toto = true; + wakeUp (); +} + +void Worker :: notifySendingTaskDone () { + + setPassive (); +} + +void Worker :: setSource (int __rank) { + + src = __rank; +} + +void Worker :: start () { + + while (true) { + + sleep (); + + if (! atLeastOneActiveRunner ()) + break; + + if (toto) { + send (this, my_node -> rk_sched, TASK_DONE_TAG); + toto = false; + } + else { + + printDebugMessage ("executing the task."); + serv -> execute (); + send (this, src, TASK_RESULT_TAG); + } + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/worker.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/worker.h new file mode 100644 index 000000000..e47d5cc35 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/worker.h @@ -0,0 +1,50 @@ +// "worker.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __worker_h +#define __worker_h + +#include "../../core/communicable.h" +#include "../../core/reac_thread.h" +#include "../../core/service.h" + +typedef unsigned WORKER_ID; + +class Worker : public Communicable, public ReactiveThread { + +public : + + Worker (); + + void start (); + + void packResult (); + + void unpackData (); + + void packTaskDone (); + + void notifySendingResult (); + + void notifySendingTaskDone (); + + void setSource (int __rank); + +private : + + WORKER_ID id; + SERVICE_ID serv_id; + Service * serv; + int src; + + bool toto; +}; + +extern Worker * getWorker (WORKER_ID __key); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/xml_parser.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/xml_parser.cpp new file mode 100644 index 000000000..75436c477 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/xml_parser.cpp @@ -0,0 +1,75 @@ +// "xml_parser.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "xml_parser.h" + +static xmlTextReaderPtr reader; + +void openXMLDocument (const char * __filename) { + + reader = xmlNewTextReaderFilename (__filename); + + if (! reader) { + + fprintf (stderr, "unable to open '%s'.\n", __filename); + exit (1); + } +} + +void closeXMLDocument () { + + xmlFreeTextReader (reader); +} + +std :: string getAttributeValue (const std :: string & __attr) { + + xmlChar * value = xmlTextReaderGetAttribute (reader, (const xmlChar *) __attr.c_str ()); + + std :: string str ((const char *) value); + + xmlFree (value); + + return str; +} + +static bool isSep (const xmlChar * __text) { + + for (unsigned i = 0; i < strlen ((char *) __text); i ++) + if (__text [i] != ' ' && __text [i] != '\t' && __text [i] != '\n') + return false; + return true; +} + +std :: string getNextNode () { + + xmlChar * name, * value; + + do { + xmlTextReaderRead (reader); + name = xmlTextReaderName (reader); + value = xmlTextReaderValue (reader); + // printf ("value = %s\n", value); + } while (! strcmp ((char *) name, "#text") && isSep (value)); + + std :: string str; + + if (strcmp ((char *) name, "#text")) + str.assign ((char *) name); + else + str.assign ((char *) value); + + if (name) + xmlFree (name); + if (value) + xmlFree (value); + + return str; +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/xml_parser.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/xml_parser.h new file mode 100644 index 000000000..169bb0288 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/src/rmc/mpi/xml_parser.h @@ -0,0 +1,22 @@ +// "xml_parser.h" + +// (c) OPAC Team, LIFL, August 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __xml_parser_h +#define __xml_parser_h + +#include + +extern void openXMLDocument (const char * __filename); + +extern void closeXMLDocument (); + +extern std :: string getAttributeValue (const std :: string & __attr); + +extern std :: string getNextNode (); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/CMakeLists.txt new file mode 100644 index 000000000..00c6290e5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/CMakeLists.txt @@ -0,0 +1,16 @@ +# +##################################################################################### +### 1) Definitions (required for tsp target) +###################################################################################### + +SET(TSP_SRC_DIR ${ParadisEO-PEO_SOURCE_DIR}/tutorial/examples/tsp) +SET(TSP_BINARY_DIR ${ParadisEO-PEO_BINARY_DIR}/tutorial/examples/tsp) +###################################################################################### + +###################################################################################### +### 2) Where must cmake go now ? +###################################################################################### + +SUBDIRS(examples Lesson1 Lesson2 Lesson3 Walkthrough) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/CMakeLists.txt new file mode 100644 index 000000000..120a82625 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/CMakeLists.txt @@ -0,0 +1,89 @@ + +###################################################################################### +### 0) Set the compiler and define targets to easily run the lessons +###################################################################################### + +SET (CMAKE_CXX_COMPILER mpicxx) + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/lesson.param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/schema.xml) + +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/lesson.param + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson1) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/schema.xml + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson1) +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${PEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +LINK_DIRECTORIES( ${EO_SRC_DIR} + ${EO_SRC_DIR}/utils + ${ParadisEO-PEO_BINARY_DIR}/lib + ${TSP_BINARY_DIR}/lib) + +###################################################################################### + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(tspExample main.cpp) + +ADD_DEPENDENCIES(tspExample tsp) +ADD_DEPENDENCIES(tspExample peo) +ADD_DEPENDENCIES(tspExample rmc_mpi) +###################################################################################### + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(LESSON1_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(tspExample PROPERTIES VERSION "${LESSON1_VERSION}") +###################################################################################### + + +###################################################################################### +### 5) Link the librairies +###################################################################################### + +TARGET_LINK_LIBRARIES(tspExample ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(tspExample tsp) +TARGET_LINK_LIBRARIES(tspExample peo) +TARGET_LINK_LIBRARIES(tspExample rmc_mpi) +TARGET_LINK_LIBRARIES(tspExample eo) +TARGET_LINK_LIBRARIES(tspExample eoutils) + +###################################################################################### + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/ParadisEO-PEO_Lesson1.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/ParadisEO-PEO_Lesson1.pdf new file mode 100755 index 000000000..04f8e0174 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/ParadisEO-PEO_Lesson1.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/doclsn.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/doclsn.h new file mode 100644 index 000000000..544edc583 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/doclsn.h @@ -0,0 +1,498 @@ +//! \mainpage Creating a simple ParadisEO-PEO Evolutionary Algorithm +//! +//! \section structure Introduction +//! +//! One of the first steps in designing an evolutionary algorithm using the ParadisEO-PEO framework +//! consists in having a clear overview of the implemented algorithm. A brief pseudo-code description is offered +//! bellow - the entire source code for the ParadisEO-PEO evolutionary algorithm is defined in the peoEA.h +//! header file. The main elements to be considered when building an evolutionary algorithm are the transformation +//! operators, i.e. crossover and mutation, the evaluation function, the continuation criterion and the selection +//! and replacement strategy. +//! +//! +//! +//! +//! +//! +//! +//! +//!
do {    
         select( population, offsprings );   // select the offsprings from the current population
         transform( offsprings );   // crossover and mutation operators are applied on the selected offsprings
         evaluate( offsprings );   // evaluation step of the resulting offsprings
         replace( population, offsprings );   // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy
} while ( eaCheckpointContinue( population ) );   // checkpoint operators are applied on the current population
+//! +//! The peoEA class offers an elementary evolutionary algorithm implementation. The peoEA class has the underlying structure +//! for including parallel evaluation and parallel transformation operators, migration operators etc. Although there is +//! no restriction on using the algorithms provided by the EO framework, no parallelism is provided - the EO implementation is exclusively sequential. +//!
+//! +//! \section requirements Requirements +//! +//! You should have already installed the ParadisEO-PEO package - this requires several additional packages which should be already +//! included in the provided archive. The installation script has to be launched in order to configure and compile all the required +//! components. At the end of the installation phase you should end up having a directory tree resembling the following: +//! +//!
     ... +//!
     paradiseo-mo +//!
     paradiseo-moeo +//!
     paradiseo-peo +//!
            docs +//!
            examples +//!
                   lesson1 +//!
                   lesson2 +//!
                   ... +//!
                   shared +//!
                   ... +//!
            src +//!
            ... +//!
     ... +//!
+//!
+//! +//! The source-code for this tutorial may be found in the paradiseo-peo/examples/lesson1 directory, in the main.cpp file. +//! We strongly encourage creating a backup copy of the file if you consider modifying the source code. For a complete reference on the +//! TSP-related classes and definitions please refer to the files under the paradiseo-peo/examples/shared. After the installation +//! phase you should end up having an tspExample executable file in the paradiseo-peo/examples/lesson1 directory. +//! We will discuss testing and launching aspects later in the tutorial. +//! +//! You are supposed to be familiar with working in C/C++ (with an extensive use of templates) and you should have at least an introductory +//! background in working with the EO framework. +//! +//!
+//! NOTE: All the presented examples have as case study the Traveling Salesman Problem (TSP). All the presented tutorials rely +//! on a common shared source code defining transformation operators, +//! evaluation functions, etc. for the TSP problem. For a complete understanding of the presented tutorials please take your time for +//! consulting and for studying the additional underlying defined classes. +//!

+//! +//! \section problemDef Problem Definition and Representation +//! +//! As we are not directly concerned with the Traveling Salesman Problem, and to some extent out of scope, no in depth details are offered +//! for the TSP. The problem requires finding the shortest path connecting a given set of cities, while visiting each of +//! the specified cities only once and returning to the startpoint city. The problem is known to be NP-complete, i.e. no polynomial +//! time algorithm exists for solving the problem in exact manner. +//! +//! The construction of a ParadisEO-PEO evolutionary algorithm requires following a few simple steps - please take your time to study the signature +//! of the peoEA constructor: +//! +//! +//! +//! +//!
+//!      peoEA( +//!
            eoContinue< EOT >& __cont, +//!
            peoPopEval< EOT >& __pop_eval, +//!
            eoSelect< EOT >& __select, +//!
            peoTransform< EOT >& __trans, +//!
            eoReplacement< EOT >& __replace +//!
     ); +//!
+//! \image html peoEA.png +//!
+//! +//! A few remarks have to be made: while most of the parameters are passed as EO-specific types, the evaluation and the transformation objects have to be +//! derived from the ParadisEO-PEO peoPopEval and peoTransform classes. Derived classes like the peoParaPopEval and peoParaSGATransform classes allow +//! for parallel evaluation of the population and parallel transformation operators, respectively. Wrappers are provided thus allowing to make use +//! of the EO classes. +//! +//! In the followings, the main required elements for building an evolutionary algorithm are enumerated. For complete details regarding the +//! implementation aspects of each of the components, please refer to the common shared source code. +//! Each of the bellow referred header files may be found in the pardiseo-peo/examples/shared directory. +//! +//!
    +//!
  1. representation - the first decision to be taken concerns the representation of the individuals. You may create your +//! own representation or you may use/derive one of the predefined classes of the EO framework.
    +//! +//! For our case study, the TSP, each city is defined as a Node in the node.h header file - in fact an unsigned value defined +//! as typedef unsigned Node. Moreover, each individual (of the evolutionary algorithm) is represented as a Route object, a vector of Node objects, in +//! the route.h header file - typedef eoVector< int, Node > Route. The definition of the Route object implies two +//! elements: (1) a route is a vector of nodes, and (2) the fitness is an integer value (please refer to the eoVector +//! definition in the EO framework). +//! +//! In addition you should also take a look in the route_init.h header file which includes the RouteInit class, defined for +//! initializing in random manner Route objects. +//!
  2. +//!
  3. evaluation function - having a representation model, an evaluation object has to be defined, implementing a specific +//! fitness function. The designed class has to be derived (directly or indirectly) from the peoPopEval class - you have the choice of +//! using peoSeqPopEval or peoParaPopEval for sequential and parallel evaluation, respectively. These classes act as wrappers requiring +//! the specification of an EO evaluation object derived from the eoEvalFunc class - please refer to their respective documentation.
    +//! +//! The fitness function for our TSP case study is implemented in the route_eval.h header file. The class is derived from the eoEvalFunc +//! EO class, being defined as class RouteEval : public eoEvalFunc< Route >. +//!
  4. +//!
  5. transformation operators - in order to assure the evolution of the initial population, transformation operators have to be defined. +//! Depending on your problem, you may specify quadruple operators (two input individuals, two output resulting individuals), i.e. crossover operators, +//! binary operators (one input individual and one output resulting individual), i.e. mutation operators, or combination of both types. As for the +//! evaluation function, the signature of the peoEA constructor requires specifying a peoTransform derived object as transformation operator. +//! +//! The transform operators, crossover and mutation, for the herein presented example are defined in the order_xover.h and the city_swap.h +//! header files, respectively. +//!
  6. +//!
  7. continuation criterion - the evolutionary algorithm evolves in an iterative manner; a continuation criterion has to be specified. +//! One of the most common and simplest options considers a maximum number of generations. It is your choice whether to use +//! a predefined EO class for specifying the continuation criterion or using a custom defined class. In the later case you have to +//! make sure that your class derives the eoContinue class.
    +//!
  8. +//!
  9. selection strategy - at each iteration a set of individuals are selected for applying the transform operators, in order +//! to obtain the offspring population. As the specified parameter has to be derived from the eoSelect it is your option of whether using +//! the EO provided selection strategies or implementing your own, as long as it inherits the eoSelect class. +//! +//! For our example we chose to use the eoRankingSelect strategy, provided in the EO framework. +//!
  10. +//!
  11. replacement strategy - once the offspring population is obtained, the offsprings have to be integrated back into the initial +//! population, according to a given strategy. For custom defined strategies you have to inherit the eoReplacement EO class. We chose to +//! use an eoPlusReplacement as strategy (please review the EO documentation for details on the different strategies available). +//!
  12. +//!
+//!
+//! +//! \section example A simple example for constructing a peoEA object +//! +//! The source code for this example may be found in the main.cpp file, under the paradiseo-peo/examples/lesson1 directory. Please make sure you +//! At this point you have two options: (a) you can just follow the example without touching the main.cpp or, (b) you can start from scratch, +//! following the presented steps, in which case you are required make a backup copy of the main.cpp file and replace the original file with an +//! empty one. +//! +//!
    +//!
  1. include the necessary header files - as we will be using Route objects, we have to include the files +//! which define the Route type, the initializing functor and the evaluation functions. Furthermore, in order to make use of +//! transform operators, we require having the headers which define the crossover and the mutation operators. +//! All these files may be found in the shared directory that we mentioned in the beginning. At this point you +//! should have something like the following:
    +//! +//!
    +//!		##include "route.h"
    +//!		##include "route_init.h"
    +//!		##include "route_eval.h"
    +//!		
    +//!		##include "order_xover.h"
    +//!		##include "city_swap.h"
    +//!		
    +//! In addition we require having the paradiseo header file, in order to use the ParadisEO-PEO features, and a header specific +//! for our problem, dealing with processing command-line parameters - the param.h header file. The complete picture at this point +//! with all the required header files is as follows:
    +//! +//!
    +//!		##include "route.h"
    +//!		##include "route_init.h"
    +//!		##include "route_eval.h"
    +//!		
    +//!		##include "order_xover.h"
    +//!		##include "city_swap.h"
    +//!
    +//!		##include "param.h"
    +//!
    +//!		##include <paradiseo>
    +//!		
    +//! NOTE: the paradiseo header file is in fact a "super-header" - it includes all the esential ParadisEO-PEO header files. +//! It is at at your choice if you want use the paradiseo header file or to explicitly include different header files, +//! like the peoEA.h header file, for example. +//! +//!
  2. +//!
  3. define problem specific parameters - in our case we have to specify how many individuals we want to have in our population, the number +//! of generations for the evolutionary algorithm to iterate and the probabilities associated with the crossover and mutation operators.
    +//! +//!
    +//!		##include "route.h"
    +//!		##include "route_init.h"
    +//!		##include "route_eval.h"
    +//!		
    +//!		##include "order_xover.h"
    +//!		##include "city_swap.h"
    +//!
    +//!		##include "param.h"
    +//!
    +//!		##include <paradiseo>
    +//!
    +//!
    +//!		##define POP_SIZE 10
    +//!		##define NUM_GEN 100
    +//!		##define CROSS_RATE 1.0
    +//!		##define MUT_RATE 0.01
    +//!		
    +//!
  4. +//!
  5. construct the skeleton of a simple ParadisEO-PEO program - the main function including the code for initializing the ParadisEO-PEO +//! environment, for loading problem data and for shutting down the ParadisEO-PEO environment. From this point on we will make +//! abstraction of the previous part referring only to the main function.
    +//! +//!
    +//!		...
    +//!		
    +//!		int main( int __argc, char** __argv ) {
    +//!		
    +//!			// initializing the ParadisEO-PEO environment
    +//!			peo :: init( __argc, __argv );
    +//!		
    +//!			// processing the command line specified parameters
    +//!			loadParameters( __argc, __argv );
    +//!		
    +//!
    +//!			// EVOLUTIONARY ALGORITHM TO BE DEFINED
    +//!
    +//!		
    +//!			peo :: run( );
    +//!			peo :: finalize( );
    +//!			// shutting down the ParadisEO-PEO environment
    +//!		
    +//!			return 0;
    +//!		}
    +//!		
    +//!
  6. +//!
  7. initialization functors, evaluation function and transform operators - basically we only need to create instances for each of the +//! enumerated objects, to be passed later as parameters for higher-level components of the evolutionary algorithm.
    +//! +//!
    +//!		RouteInit route_init;	// random init object - creates random Route objects
    +//!		RouteEval full_eval;	// evaluator object - offers a fitness value for a specified Route object
    +//!
    +//!		OrderXover crossover;	// crossover operator - creates two offsprings out of two specified parents
    +//!		CitySwap mutation;	// mutation operator - randomly mutates one gene for a specified individual
    +//!		
    +//!
  8. +//!
  9. construct the components of the evolutionary algorithm - each of the components that has to be passed as parameter to the +//! peoEA constructor has to be defined along with the associated parameters. Except for the requirement to provide the +//! appropriate objects (for example, a peoPopEval derived object must be specified for the evaluation functor), there is no strict +//! path to follow. It is your option what elements to mix, depending on your problem - we aimed for simplicity in our example. +//! +//!
      +//!
    • an initial population has to be specified; the constructor accepts the specification of an initializing object. Further, +//! an evaluation object is required - the peoEA constructor requires a peoPopEval derived class. +//!
    • +//!
    +//!
    +//!		eoPop< Route > population( POP_SIZE, route_init );	// initial population for the algorithm having POP_SIZE individuals
    +//!		peoSeqPopEval< Route > eaPopEval( full_eval );		// evaluator object - to be applied at each iteration on the entire population
    +//!		
    +//!
      +//!
    • the evolutionary algorithm continues to iterate till a continuation criterion is not met. For our case we consider +//! a fixed number of generations. The continuation criterion has to be specified as a checkpoint object, thus requiring +//! the creation of an eoCheckPoint object in addition. +//!
    • +//!
    +//!
    +//!		eoGenContinue< Route > eaCont( NUM_GEN );		// continuation criterion - the algorithm will iterate for NUM_GEN generations
    +//!		eoCheckPoint< Route > eaCheckpointContinue( eaCont );	// checkpoint object - verify at each iteration if the continuation criterion is met
    +//!		
    +//!
      +//!
    • selection strategy - we are required to specify a selection strategy for extracting individuals out of the parent +//! population; in addition the number of individuals to be selected has to be specified. +//!
    • +//!
    +//!
    +//!		eoRankingSelect< Route > selectionStrategy;		// selection strategy - applied at each iteration for selecting parent individuals
    +//!		eoSelectNumber< Route > eaSelect( selectionStrategy, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration
    +//!		
    +//!
      +//!
    • transformation operators - we have to integrate the crossover and the mutation functors into an object which may be passed +//! as a parameter when creating the peoEA object. The constructor of peoEA requires a peoTransform derived +//! object. Associated probabilities have to be specified also. +//!
    • +//!
    +//!
    +//!		// transform operator - includes the crossover and the mutation operators with a specified associated rate
    +//!		eoSGATransform< Route > transform( crossover, CROSS_RATE, mutation, MUT_RATE );
    +//!		peoSeqTransform< Route > eaTransform( transform );	// ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object
    +//!		
    +//!
      +//!
    • replacement strategy - required for defining the way for integrating the resulting offsprings into the initial population. +//! At your option whether you would like to chose one of the predefined replacement strategies that come with the EO framework +//! or if you want to define your own. +//!
    • +//!
    +//!
    +//!		eoPlusReplacement< Route > eaReplace;			// replacement strategy - for replacing the initial population with offspring individuals
    +//!		
    +//!
  10. +//!
  11. evolutionary algorithm - having defined all the previous components, we are ready for instanciating an evolutionary algorithm. +//! In the end we have to associate a population with the algorithm, which will serve as the initial population, to be iteratively evolved. +//! +//!
    +//!		peoEA< Route > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );
    +//!
    +//!		eaAlg( population );	// specifying the initial population for the algorithm, to be iteratively evolved
    +//!		
    +//!
  12. +//!
+//! +//! If you have not missed any of the enumerated points, your program should be like the following: +//! +//!
+//! ##include "route.h"
+//! ##include "route_init.h"
+//! ##include "route_eval.h"
+//! 
+//! ##include "order_xover.h"
+//! ##include "city_swap.h"
+//! 
+//! ##include "param.h"
+//! 
+//! ##include 
+//! 
+//! 
+//! ##define POP_SIZE 10
+//! ##define NUM_GEN 100
+//! ##define CROSS_RATE 1.0
+//! ##define MUT_RATE 0.01
+//! 
+//! 
+//! int main( int __argc, char** __argv ) {
+//! 
+//! 	// initializing the ParadisEO-PEO environment
+//! 	peo :: init( __argc, __argv );
+//! 
+//! 
+//! 	// processing the command line specified parameters
+//! 	loadParameters( __argc, __argv );
+//! 
+//! 
+//! 	// init, eval operators, EA operators -------------------------------------------------------------------------------------------------------------
+//! 
+//! 	RouteInit route_init;	// random init object - creates random Route objects
+//! 	RouteEval full_eval;	// evaluator object - offers a fitness value for a specified Route object
+//! 
+//! 	OrderXover crossover;	// crossover operator - creates two offsprings out of two specified parents
+//! 	CitySwap mutation;	// mutation operator - randomly mutates one gene for a specified individual
+//! 	// ------------------------------------------------------------------------------------------------------------------------------------------------
+//! 
+//! 
+//! 	// evolutionary algorithm components --------------------------------------------------------------------------------------------------------------
+//! 
+//! 	eoPop< Route > population( POP_SIZE, route_init );	// initial population for the algorithm having POP_SIZE individuals
+//! 	peoSeqPopEval< Route > eaPopEval( full_eval );		// evaluator object - to be applied at each iteration on the entire population
+//! 
+//! 	eoGenContinue< Route > eaCont( NUM_GEN );		// continuation criterion - the algorithm will iterate for NUM_GEN generations
+//! 	eoCheckPoint< Route > eaCheckpointContinue( eaCont );	// checkpoint object - verify at each iteration if the continuation criterion is met
+//! 
+//! 	eoRankingSelect< Route > selectionStrategy;		// selection strategy - applied at each iteration for selecting parent individuals
+//! 	eoSelectNumber< Route > eaSelect( selectionStrategy, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration
+//! 
+//! 	// transform operator - includes the crossover and the mutation operators with a specified associated rate
+//! 	eoSGATransform< Route > transform( crossover, CROSS_RATE, mutation, MUT_RATE );
+//! 	peoSeqTransform< Route > eaTransform( transform );	// ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object
+//! 
+//! 	eoPlusReplacement< Route > eaReplace;			// replacement strategy - for replacing the initial population with offspring individuals
+//! 	// ------------------------------------------------------------------------------------------------------------------------------------------------
+//! 
+//! 
+//! 	// ParadisEO-PEO evolutionary algorithm -----------------------------------------------------------------------------------------------------------
+//! 
+//! 	peoEA< Route > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace );
+//! 	
+//! 	eaAlg( population );	// specifying the initial population for the algorithm, to be iteratively evolved
+//! 	// ------------------------------------------------------------------------------------------------------------------------------------------------
+//! 
+//! 
+//! 	peo :: run( );
+//! 	peo :: finalize( );
+//! 	// shutting down the ParadisEO-PEO environment
+//! 
+//! 	return 0;
+//! }
+//! 
+//! +//! +//! \section testing Compilation and Execution +//! +//! First, please make sure that you followed all the previous steps in defining the evolutionary algorithm. Your file should be called main.cpp - please +//! make sure you do not rename the file (we will be using a pre-built makefile, thus you are required not to change the file names). Please make sure you +//! are in the paradiseo-peo/examples/lesson1 directory - you should open a console and you should change your current directory to the one of Lesson1. +//! +//! Compilation: being in the paradiseo-peo/examples/lesson1 directory, you have to type make. As a result the main.cpp file +//! will be compiled and you should obtain an executable file called tspExample. If you have errors, please verify any of the followings: +//! +//!
    +//!
  • you are under the right directory - you can verify by typing the pwd command - you should have something like .../paradiseo-peo/examples/lesson1
  • +//!
  • you saved your modifications in a file called main.cpp, in the paradiseo-peo/examples/lesson1 directory
  • +//!
  • there are no differences between the example presented above and your file
  • +//!
+//! +//! NOTE: in order to successfully compile your program you should already have installed an MPI distribution in your system. +//! +//! Execution: the execution of a ParadisEO-PEO program requires having already created an environment for launching MPI programs. For MPICH-2, +//! for example, this requires starting a ring of daemons. The implementation that we provided as an example is sequential and includes no parallelism - we +//! will see in the end how to include also parallelism. Executing a parallel program requires specifying a mapping of resources, in order to assing different +//! algorithms to different machines, define worker machines etc. This mapping is defined by an XML file called schema.xml, which, for our case, has +//! the following structure: +//! +//!
+//!	
+//!	
+//!	
+//!		
+//!			
+//!			
+//!			
+//!			
+//!			1
+//!			
+//!			
+//!			
+//!			
+//!			
+//!			
+//!		
+//!	
+//! 
+//! +//! Not going into details, the XML file presented above describes a mapping which includes four nodes, the first one having the role of scheduler, +//! the second one being the node on which the evolutionary algorithm is actually executed and the third and the fourth ones being slave nodes. Overall +//! the mapping says that we will be launching four processes, out of which only one will be executing the evolutionary algorithm. The other node entries +//! in the XML file have no real functionality as we have no parallelism in our program - the entries were created for you convenience, in order to provide +//! a smooth transition to creating a parallel program. +//! +//! Launching the program may be different, depending on your MPI distribution - for MPICH-2, in a console, in the paradiseo-peo/examples/lesson1 +//! directory you have to type the following command: +//! +//! mpiexec -n 4 ./tspExample @lesson.param +//! +//! NOTE: the "-n 4" indicates the number of processes to be launched. The last argument, "@lesson.param", indicates a file which specifies different +//! application specific parameters (the mapping file to be used, for example, whether to use logging or not, etc). +//! +//! The result of your execution should be similar to the following: +//!
+//! 	Loading '../data/eil101.tsp'.
+//! 	NAME: eil101.
+//! 	COMMENT: 101-city problem (Christofides/Eilon).
+//! 	TYPE: TSP.
+//! 	DIMENSION: 101.
+//! 	EDGE_WEIGHT_TYPE: EUC_2D.
+//! 	Loading '../data/eil101.tsp'.
+//! 	NAME: eil101.
+//! 	COMMENT: 101-city problem (Christofides/Eilon).
+//! 	EOF.
+//! 	TYPE: TSP.
+//! 	DIMENSION: 101.
+//! 	EDGE_WEIGHT_TYPE: EUC_2D.
+//! 	EOF.
+//! 	Loading '../data/eil101.tsp'.
+//! 	NAME: eil101.
+//! 	COMMENT: 101-city problem (Christofides/Eilon).
+//! 	TYPE: TSP.
+//! 	DIMENSION: 101.
+//! 	EDGE_WEIGHT_TYPE: EUC_2D.
+//! 	EOF.
+//! 	Loading '../data/eil101.tsp'.
+//! 	NAME: eil101.
+//! 	COMMENT: 101-city problem (Christofides/Eilon).
+//! 	TYPE: TSP.
+//! 	DIMENSION: 101.
+//! 	EDGE_WEIGHT_TYPE: EUC_2D.
+//! 	EOF.
+//! 	STOP in eoGenContinue: Reached maximum number of generations [100/100]
+//!	
+//! +//! +//! \section paraIntro Introducing parallelism +//! +//! Creating parallel programs with ParadisEO-PEO represents an easy task once you have the basic structure for your program. For experimentation, +//! in the main.cpp file, replace the line +//!
+//!	peoSeqPopEval< Route > eaPopEval( full_eval );
+//! 
+//! with +//!
+//!	peoParaPopEval< Route > eaPopEval( full_eval );
+//! 
+//! The second line only tells that we would like to evaluate individuals in parallel - this is very interesting if you have a time consuming fitness +//! evaluation function. If you take another look on the schema.xml XML file you will see the last two nodes being marked as slaves (the "num_workers" +//! attribute - these nodes will be used for computing the fitness of the individuals. +//! +//! At this point you only have to recompile your program and to launch it again - as we are not using a time consuming fitness fitness function, the +//! effects might not be visible - you may increase the number of individuals to experiment. diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/lesson.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/lesson.param new file mode 100644 index 000000000..eb843c65f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/lesson.param @@ -0,0 +1,12 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=schema.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/main.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/main.cpp new file mode 100644 index 000000000..0658fa813 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/main.cpp @@ -0,0 +1,79 @@ +// "main.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "city_swap.h" + +#include "param.h" + +#include + + +#define POP_SIZE 10 +#define NUM_GEN 100 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + + +int main( int __argc, char** __argv ) { + + // initializing the ParadisEO-PEO environment + peo :: init( __argc, __argv ); + + + // processing the command line specified parameters + loadParameters( __argc, __argv ); + + + // init, eval operators, EA operators ------------------------------------------------------------------------------------------------------------- + + RouteInit route_init; // random init object - creates random Route objects + RouteEval full_eval; // evaluator object - offers a fitness value for a specified Route object + + OrderXover crossover; // crossover operator - creates two offsprings out of two specified parents + CitySwap mutation; // mutation operator - randomly mutates one gene for a specified individual + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + // evolutionary algorithm components -------------------------------------------------------------------------------------------------------------- + + eoPop< Route > population( POP_SIZE, route_init ); // initial population for the algorithm having POP_SIZE individuals + peoSeqPopEval< Route > eaPopEval( full_eval ); // evaluator object - to be applied at each iteration on the entire population + + eoGenContinue< Route > eaCont( NUM_GEN ); // continuation criterion - the algorithm will iterate for NUM_GEN generations + eoCheckPoint< Route > eaCheckpointContinue( eaCont ); // checkpoint object - verify at each iteration if the continuation criterion is met + + eoRankingSelect< Route > selectionStrategy; // selection strategy - applied at each iteration for selecting parent individuals + eoSelectNumber< Route > eaSelect( selectionStrategy, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration + + // transform operator - includes the crossover and the mutation operators with a specified associated rate + eoSGATransform< Route > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); + peoSeqTransform< Route > eaTransform( transform ); // ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object + + eoPlusReplacement< Route > eaReplace; // replacement strategy - for replacing the initial population with offspring individuals + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + // ParadisEO-PEO evolutionary algorithm ----------------------------------------------------------------------------------------------------------- + + peoEA< Route > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); + + eaAlg( population ); // specifying the initial population for the algorithm, to be iteratively evolved + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + peo :: run( ); + peo :: finalize( ); + // shutting down the ParadisEO-PEO environment + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/paradiseo-peo-lsn.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/paradiseo-peo-lsn.doxyfile new file mode 100644 index 000000000..b7ecda59e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/paradiseo-peo-lsn.doxyfile @@ -0,0 +1,241 @@ +# Doxyfile 1.4.7 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "ParadisEO-PEO Lesson1" +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = ../../../doc/html/lesson1 +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS \ + README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = ../../docs/images +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = peo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../docs/paradiseo-peo.doxytag=../../ \ + ../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html +GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/schema.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/schema.xml new file mode 100644 index 000000000..3edea1488 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson1/schema.xml @@ -0,0 +1,18 @@ + + + + + + + + + 1 + + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/CMakeLists.txt new file mode 100644 index 000000000..dacb594ce --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/CMakeLists.txt @@ -0,0 +1,90 @@ + +###################################################################################### +### 0) Set the compiler and define targets to easily run the lessons +###################################################################################### + +SET (CMAKE_CXX_COMPILER mpicxx) + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/lesson.param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/schema.xml) + +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/lesson.param + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson2) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/schema.xml + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson2) +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${PEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +LINK_DIRECTORIES( ${EO_SRC_DIR} + ${EO_SRC_DIR}/utils + ${ParadisEO-PEO_BINARY_DIR}/lib + ${TSP_BINARY_DIR}/lib) + +###################################################################################### + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(tspExample main.cpp) + +ADD_DEPENDENCIES(tspExample tsp) +ADD_DEPENDENCIES(tspExample peo) +ADD_DEPENDENCIES(tspExample rmc_mpi) + +###################################################################################### + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(LESSON2_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(tspExample PROPERTIES VERSION "${LESSON2_VERSION}") +###################################################################################### + + +###################################################################################### +### 5) Link the librairies +###################################################################################### + +TARGET_LINK_LIBRARIES(tspExample ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(tspExample tsp) +TARGET_LINK_LIBRARIES(tspExample peo) +TARGET_LINK_LIBRARIES(tspExample rmc_mpi) +TARGET_LINK_LIBRARIES(tspExample eo) +TARGET_LINK_LIBRARIES(tspExample eoutils) + +###################################################################################### + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/ParadisEO-PEO_Lesson2.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/ParadisEO-PEO_Lesson2.pdf new file mode 100755 index 000000000..d99d43f1a Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/ParadisEO-PEO_Lesson2.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/lesson.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/lesson.param new file mode 100644 index 000000000..eb843c65f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/lesson.param @@ -0,0 +1,12 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=schema.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/main.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/main.cpp new file mode 100644 index 000000000..d1a07f019 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/main.cpp @@ -0,0 +1,111 @@ +// "main.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "city_swap.h" + +#include "param.h" + +#include "merge_route_eval.h" +#include "part_route_eval.h" + + +#include + + +#define POP_SIZE 10 +#define NUM_GEN 100 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + +#define NUM_PART_EVALS 2 + + +// by default, parallel evaluation of the population is performed; +// for parallel fitness evaluation, uncomment the following line + +// #define PARALLEL_FIT_EVALUATION + + +int main( int __argc, char** __argv ) { + + // initializing the ParadisEO-PEO environment + peo :: init( __argc, __argv ); + + + // processing the command line specified parameters + loadParameters( __argc, __argv ); + + + // init, eval operators, EA operators ------------------------------------------------------------------------------------------------------------- + + RouteInit route_init; // random init object - creates random Route objects + RouteEval full_eval; // evaluator object - offers a fitness value for a specified Route object + + OrderXover crossover; // crossover operator - creates two offsprings out of two specified parents + CitySwap mutation; // mutation operator - randomly mutates one gene for a specified individual + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + // evolutionary algorithm components -------------------------------------------------------------------------------------------------------------- + + eoPop< Route > population( POP_SIZE, route_init ); // initial population for the algorithm having POP_SIZE individuals + + + #ifdef PARALLEL_FIT_EVALUATION + + MergeRouteEval merge_eval; + + std :: vector< eoEvalFunc< Route >* > part_eval; + for ( unsigned index = 1; index <= NUM_PART_EVALS; index++ ) + part_eval.push_back( new PartRouteEval( ( float )( index - 1 ) / NUM_PART_EVALS, ( float )index / NUM_PART_EVALS ) ); + + peoParaPopEval< Route > ox_pop_eval( part_eval, merge_eval ); + + #else + + peoParaPopEval< Route > ox_pop_eval( full_eval ); + + #endif + + + + peoParaPopEval< Route > eaPopEval( full_eval ); // evaluator object - to be applied at each iteration on the entire population + + eoGenContinue< Route > eaCont( NUM_GEN ); // continuation criterion - the algorithm will iterate for NUM_GEN generations + eoCheckPoint< Route > eaCheckpointContinue( eaCont ); // checkpoint object - verify at each iteration if the continuation criterion is met + + eoRankingSelect< Route > selectionStrategy; // selection strategy - applied at each iteration for selecting parent individuals + eoSelectNumber< Route > eaSelect( selectionStrategy, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration + + // transform operator - includes the crossover and the mutation operators with a specified associated rate + eoSGATransform< Route > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); + peoSeqTransform< Route > eaTransform( transform ); // ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object + + eoPlusReplacement< Route > eaReplace; // replacement strategy - for replacing the initial population with offspring individuals + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + // ParadisEO-PEO evolutionary algorithm ----------------------------------------------------------------------------------------------------------- + + peoEA< Route > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); + + eaAlg( population ); // specifying the initial population for the algorithm, to be iteratively evolved + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + peo :: run( ); + peo :: finalize( ); + // shutting down the ParadisEO-PEO environment + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/paradiseo-peo-lsn.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/paradiseo-peo-lsn.doxyfile new file mode 100644 index 000000000..318d06ba0 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/paradiseo-peo-lsn.doxyfile @@ -0,0 +1,241 @@ +# Doxyfile 1.4.7 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "ParadisEO-PEO Lesson2" +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = ../../../doc/html/lesson2 +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS \ + README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = ../../docs/images +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = peo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../docs/paradiseo-peo.doxytag=../../ \ + ../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html +GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/schema.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/schema.xml new file mode 100644 index 000000000..3edea1488 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson2/schema.xml @@ -0,0 +1,18 @@ + + + + + + + + + 1 + + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/CMakeLists.txt new file mode 100644 index 000000000..2a9da8df5 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/CMakeLists.txt @@ -0,0 +1,90 @@ + +###################################################################################### +### 0) Set the compiler and define targets to easily run the lessons +###################################################################################### +SET (CMAKE_CXX_COMPILER mpicxx) + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/lesson.param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/schema.xml) + +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/lesson.param + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson3) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/schema.xml + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson3) +###################################################################################### + + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${PEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +LINK_DIRECTORIES( ${EO_SRC_DIR} + ${EO_SRC_DIR}/utils + ${ParadisEO-PEO_BINARY_DIR}/lib + ${TSP_BINARY_DIR}/lib) + +###################################################################################### + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(tspExample main.cpp) + +ADD_DEPENDENCIES(tspExample tsp) +ADD_DEPENDENCIES(tspExample peo) +ADD_DEPENDENCIES(tspExample rmc_mpi) + +###################################################################################### + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(LESSON3_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(tspExample PROPERTIES VERSION "${LESSON3_VERSION}") +###################################################################################### + + +###################################################################################### +### 5) Link the librairies +###################################################################################### + +TARGET_LINK_LIBRARIES(tspExample ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(tspExample tsp) +TARGET_LINK_LIBRARIES(tspExample peo) +TARGET_LINK_LIBRARIES(tspExample rmc_mpi) +TARGET_LINK_LIBRARIES(tspExample eo) +TARGET_LINK_LIBRARIES(tspExample eoutils) + +###################################################################################### + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/ParadisEO-PEO_Lesson3.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/ParadisEO-PEO_Lesson3.pdf new file mode 100755 index 000000000..dda6ad44f Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/ParadisEO-PEO_Lesson3.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/lesson.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/lesson.param new file mode 100644 index 000000000..eb843c65f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/lesson.param @@ -0,0 +1,12 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=schema.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/main.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/main.cpp new file mode 100644 index 000000000..559d83f80 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/main.cpp @@ -0,0 +1,160 @@ +// "main.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "city_swap.h" + +#include "param.h" + + +#include + + +#define POP_SIZE 10 +#define NUM_GEN 100 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + +#define MIG_FREQ 10 +#define MIG_SIZE 5 + + +int main( int __argc, char** __argv ) { + + // initializing the ParadisEO-PEO environment + peo :: init( __argc, __argv ); + + + // processing the command line specified parameters + loadParameters( __argc, __argv ); + + + // init, eval operators, EA operators ------------------------------------------------------------------------------------------------------------- + + RouteInit route_init; // random init object - creates random Route objects + RouteEval full_eval; // evaluator object - offers a fitness value for a specified Route object + + OrderXover crossover; // crossover operator - creates two offsprings out of two specified parents + CitySwap mutation; // mutation operator - randomly mutates one gene for a specified individual + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + // evolutionary algorithm components -------------------------------------------------------------------------------------------------------------- + + eoPop< Route > population( POP_SIZE, route_init ); // initial population for the algorithm having POP_SIZE individuals + peoParaPopEval< Route > eaPopEval( full_eval ); // evaluator object - to be applied at each iteration on the entire population + + eoGenContinue< Route > eaCont( NUM_GEN ); // continuation criterion - the algorithm will iterate for NUM_GEN generations + eoCheckPoint< Route > eaCheckpointContinue( eaCont ); // checkpoint object - verify at each iteration if the continuation criterion is met + + eoRankingSelect< Route > selectionStrategy; // selection strategy - applied at each iteration for selecting parent individuals + eoSelectNumber< Route > eaSelect( selectionStrategy, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration + + // transform operator - includes the crossover and the mutation operators with a specified associated rate + eoSGATransform< Route > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); + peoSeqTransform< Route > eaTransform( transform ); // ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object + + eoPlusReplacement< Route > eaReplace; // replacement strategy - for replacing the initial population with offspring individuals + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + + RingTopology topology; + + // migration policy and components ---------------------------------------------------------------------------------------------------------------- + + eoPeriodicContinue< Route > mig_cont( MIG_FREQ ); // migration occurs periodically + + eoRandomSelect< Route > mig_select_one; // emigrants are randomly selected + eoSelectNumber< Route > mig_select( mig_select_one, MIG_SIZE ); + + eoPlusReplacement< Route > mig_replace; // immigrants replace the worse individuals + + peoSyncIslandMig< Route > mig( MIG_FREQ, mig_select, mig_replace, topology, population, population ); + //peoAsyncIslandMig< Route > mig( mig_cont, mig_select, mig_replace, topology, population, population ); + + eaCheckpointContinue.add( mig ); + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + + + + // ParadisEO-PEO evolutionary algorithm ----------------------------------------------------------------------------------------------------------- + + peoEA< Route > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); + + mig.setOwner( eaAlg ); + + eaAlg( population ); // specifying the initial population for the algorithm, to be iteratively evolved + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + + + // evolutionary algorithm components -------------------------------------------------------------------------------------------------------------- + + eoPop< Route > population2( POP_SIZE, route_init ); // initial population for the algorithm having POP_SIZE individuals + peoParaPopEval< Route > eaPopEval2( full_eval ); // evaluator object - to be applied at each iteration on the entire population + + eoGenContinue< Route > eaCont2( NUM_GEN ); // continuation criterion - the algorithm will iterate for NUM_GEN generations + eoCheckPoint< Route > eaCheckpointContinue2( eaCont2 ); // checkpoint object - verify at each iteration if the continuation criterion is met + + eoRankingSelect< Route > selectionStrategy2; // selection strategy - applied at each iteration for selecting parent individuals + eoSelectNumber< Route > eaSelect2( selectionStrategy2, POP_SIZE ); // selection object - POP_SIZE individuals are selected at each iteration + + // transform operator - includes the crossover and the mutation operators with a specified associated rate + eoSGATransform< Route > transform2( crossover, CROSS_RATE, mutation, MUT_RATE ); + peoSeqTransform< Route > eaTransform2( transform2 ); // ParadisEO transform operator (please remark the peo prefix) - wraps an e EO transform object + + eoPlusReplacement< Route > eaReplace2; // replacement strategy - for replacing the initial population with offspring individuals + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + + + // migration policy and components ---------------------------------------------------------------------------------------------------------------- + + eoPeriodicContinue< Route > mig_cont2( MIG_FREQ ); // migration occurs periodically + + eoRandomSelect< Route > mig_select_one2; // emigrants are randomly selected + eoSelectNumber< Route > mig_select2( mig_select_one2, MIG_SIZE ); + + eoPlusReplacement< Route > mig_replace2; // immigrants replace the worse individuals + + peoSyncIslandMig< Route > mig2( MIG_FREQ, mig_select2, mig_replace2, topology, population2, population2 ); + //peoAsyncIslandMig< Route > mig2( mig_cont2, mig_select2, mig_replace2, topology, population2, population2 ); + + eaCheckpointContinue2.add( mig2 ); + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + + + + // ParadisEO-PEO evolutionary algorithm ----------------------------------------------------------------------------------------------------------- + + peoEA< Route > eaAlg2( eaCheckpointContinue2, eaPopEval2, eaSelect2, eaTransform2, eaReplace2 ); + + mig2.setOwner( eaAlg2 ); + + eaAlg2( population2 ); // specifying the initial population for the algorithm, to be iteratively evolved + // ------------------------------------------------------------------------------------------------------------------------------------------------ + + + + peo :: run( ); + peo :: finalize( ); + // shutting down the ParadisEO-PEO environment + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/paradiseo-peo-lsn.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/paradiseo-peo-lsn.doxyfile new file mode 100644 index 000000000..1d97a8596 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/paradiseo-peo-lsn.doxyfile @@ -0,0 +1,241 @@ +# Doxyfile 1.4.7 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "ParadisEO-PEO Lesson3" +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = ../../../doc/html/lesson3 +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS \ + README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = ../../docs/images +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = peo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../docs/paradiseo-peo.doxytag=../../ \ + ../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html +GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/schema.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/schema.xml new file mode 100644 index 000000000..9b8bf316c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Lesson3/schema.xml @@ -0,0 +1,19 @@ + + + + + + + + + 1 + 2 + + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/CMakeLists.txt new file mode 100644 index 000000000..0b8409eb1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/CMakeLists.txt @@ -0,0 +1,129 @@ + +###################################################################################### +### 0) Pre-config +###################################################################################### + +SET (CMAKE_CXX_COMPILER mpicxx) + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Walkthrough/config) + +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Walkthrough/config + ${ParadisEO-PEO_BINARY_DIR}/tutorial/Walkthrough/config) +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${PEO_SRC_DIR}) +INCLUDE_DIRECTORIES(${TSP_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Specify where CMake can find the libraries (mandatory: before 3) ) +###################################################################################### + +LINK_DIRECTORIES( ${EO_SRC_DIR} + ${EO_SRC_DIR}/utils + ${PEO_DIR}/build + ${TSP_BINARY_DIR}/lib) + +###################################################################################### + + +###################################################################################### +### 3) Define your target(s): just an executable here +###################################################################################### + +# no matter what is the OS, hopefully +ADD_EXECUTABLE(exampleA exampleA.cpp) +ADD_EXECUTABLE(exampleB exampleB.cpp) +ADD_EXECUTABLE(exampleC exampleC.cpp) +ADD_EXECUTABLE(exampleD exampleD.cpp) +ADD_EXECUTABLE(exampleE exampleE.cpp) + +ADD_DEPENDENCIES(exampleA tsp) +ADD_DEPENDENCIES(exampleB tsp) +ADD_DEPENDENCIES(exampleC tsp) +ADD_DEPENDENCIES(exampleD tsp) +ADD_DEPENDENCIES(exampleE tsp) + +ADD_DEPENDENCIES(exampleA peo) +ADD_DEPENDENCIES(exampleB peo) +ADD_DEPENDENCIES(exampleC peo) +ADD_DEPENDENCIES(exampleD peo) +ADD_DEPENDENCIES(exampleE peo) + +ADD_DEPENDENCIES(exampleA rmc_mpi) +ADD_DEPENDENCIES(exampleB rmc_mpi) +ADD_DEPENDENCIES(exampleC rmc_mpi) +ADD_DEPENDENCIES(exampleD rmc_mpi) +ADD_DEPENDENCIES(exampleE rmc_mpi) + +###################################################################################### + + +###################################################################################### +### 4) Optionnal: define your target(s)'s version: no effect for windows +###################################################################################### + +SET(WALKTHROUGH_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(exampleA PROPERTIES VERSION "${WALKTHROUGH_VERSION}") +SET_TARGET_PROPERTIES(exampleB PROPERTIES VERSION "${WALKTHROUGH_VERSION}") +SET_TARGET_PROPERTIES(exampleC PROPERTIES VERSION "${WALKTHROUGH_VERSION}") +SET_TARGET_PROPERTIES(exampleD PROPERTIES VERSION "${WALKTHROUGH_VERSION}") +SET_TARGET_PROPERTIES(exampleE PROPERTIES VERSION "${WALKTHROUGH_VERSION}") +###################################################################################### + + +###################################################################################### +### 5) Link the librairies +###################################################################################### + +TARGET_LINK_LIBRARIES(exampleA ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(exampleB ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(exampleC ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(exampleD ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir +TARGET_LINK_LIBRARIES(exampleE ${XML2_LIBS}) # define in CMakeLists.txt at PEO root dir + +TARGET_LINK_LIBRARIES(exampleA tsp) +TARGET_LINK_LIBRARIES(exampleB tsp) +TARGET_LINK_LIBRARIES(exampleC tsp) +TARGET_LINK_LIBRARIES(exampleD tsp) +TARGET_LINK_LIBRARIES(exampleE tsp) + +TARGET_LINK_LIBRARIES(exampleA peo) +TARGET_LINK_LIBRARIES(exampleB peo) +TARGET_LINK_LIBRARIES(exampleC peo) +TARGET_LINK_LIBRARIES(exampleD peo) +TARGET_LINK_LIBRARIES(exampleE peo) + +TARGET_LINK_LIBRARIES(exampleA rmc_mpi) +TARGET_LINK_LIBRARIES(exampleB rmc_mpi) +TARGET_LINK_LIBRARIES(exampleC rmc_mpi) +TARGET_LINK_LIBRARIES(exampleD rmc_mpi) +TARGET_LINK_LIBRARIES(exampleE rmc_mpi) + +TARGET_LINK_LIBRARIES(exampleA eo) +TARGET_LINK_LIBRARIES(exampleB eo) +TARGET_LINK_LIBRARIES(exampleC eo) +TARGET_LINK_LIBRARIES(exampleD eo) +TARGET_LINK_LIBRARIES(exampleE eo) + +TARGET_LINK_LIBRARIES(exampleA eoutils) +TARGET_LINK_LIBRARIES(exampleB eoutils) +TARGET_LINK_LIBRARIES(exampleC eoutils) +TARGET_LINK_LIBRARIES(exampleD eoutils) +TARGET_LINK_LIBRARIES(exampleE eoutils) + +###################################################################################### diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/ParadisEO-PEO_Walkthrough.pdf b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/ParadisEO-PEO_Walkthrough.pdf new file mode 100755 index 000000000..5c4fe7841 Binary files /dev/null and b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/ParadisEO-PEO_Walkthrough.pdf differ diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonA.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonA.param new file mode 100644 index 000000000..5719b59f3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonA.param @@ -0,0 +1,11 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=config/schemaA.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonB.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonB.param new file mode 100644 index 000000000..873dffa40 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonB.param @@ -0,0 +1,11 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=config/schemaB.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonC.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonC.param new file mode 100644 index 000000000..cb47c9bf3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonC.param @@ -0,0 +1,11 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=config/schemaC.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonD.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonD.param new file mode 100644 index 000000000..8c177206b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonD.param @@ -0,0 +1,11 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=config/schemaD.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonE.param b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonE.param new file mode 100644 index 000000000..336c8fdea --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/lessonE.param @@ -0,0 +1,11 @@ +## miscallenous parameters + +--debug=false + +## deployment schema + +--schema=config/schemaE.xml + +## parameters + +--inst=../examples/tsp/benchs/eil101.tsp diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaA.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaA.xml new file mode 100644 index 000000000..47b198b4c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaA.xml @@ -0,0 +1,10 @@ + + + + + + 1 + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaB.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaB.xml new file mode 100644 index 000000000..47b198b4c --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaB.xml @@ -0,0 +1,10 @@ + + + + + + 1 + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaC.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaC.xml new file mode 100644 index 000000000..51754a346 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaC.xml @@ -0,0 +1,13 @@ + + + + + + + + 1 + 2 + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaD.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaD.xml new file mode 100644 index 000000000..b352f8b19 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaD.xml @@ -0,0 +1,16 @@ + + + + + + + + 1 + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaE.xml b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaE.xml new file mode 100644 index 000000000..b352f8b19 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/config/schemaE.xml @@ -0,0 +1,16 @@ + + + + + + + + 1 + + + + + + + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleA.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleA.cpp new file mode 100644 index 000000000..fa86c5ae6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleA.cpp @@ -0,0 +1,73 @@ +// (c) OPAC Team, LIFL, July 2007 +// +// Contact: paradiseo-help@lists.gforge.inria.fr + +#include "param.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "edge_xover.h" +#include "partial_mapped_xover.h" +#include "city_swap.h" +#include "part_route_eval.h" +#include "merge_route_eval.h" +#include "two_opt_init.h" +#include "two_opt_next.h" +#include "two_opt_incr_eval.h" + +#include + +#define POP_SIZE 10 +#define NUM_GEN 10 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + + +int main (int __argc, char * * __argv) { + + peo :: init (__argc, __argv); + + + loadParameters (__argc, __argv); /* Processing some parameters relative to the tackled + problem (TSP) */ + + RouteInit route_init; /* It builds random routes */ + RouteEval full_eval; /* Full route evaluator */ + + + OrderXover order_cross; /* Recombination */ + PartialMappedXover pm_cross; + EdgeXover edge_cross; + CitySwap city_swap_mut; /* Mutation */ + + + /** Local Search */ + TwoOptInit pmx_two_opt_init; + TwoOptNext pmx_two_opt_next; + TwoOptIncrEval pmx_two_opt_incr_eval; + moBestImprSelect pmx_two_opt_move_select; + moHC hc (pmx_two_opt_init, pmx_two_opt_next, pmx_two_opt_incr_eval, pmx_two_opt_move_select, full_eval); + + /** The EA */ + eoPop ox_pop (POP_SIZE, route_init); /* Population */ + + eoGenContinue ox_cont (NUM_GEN); /* A fixed number of iterations */ + eoCheckPoint ox_checkpoint (ox_cont); /* Checkpoint */ + peoSeqPopEval ox_pop_eval (full_eval); + eoStochTournamentSelect ox_select_one; + eoSelectNumber ox_select (ox_select_one, POP_SIZE); + eoSGATransform ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE); + peoSeqTransform ox_para_transform (ox_transform); + eoEPReplacement ox_replace (2); + + peoEA ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_para_transform, ox_replace); + + ox_ea (ox_pop); /* Application to the given population */ + + peo :: run (); + peo :: finalize (); /* Termination */ + + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleB.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleB.cpp new file mode 100644 index 000000000..0de63ab2f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleB.cpp @@ -0,0 +1,79 @@ +// (c) OPAC Team, LIFL, July 2007 +// +// Contact: paradiseo-help@lists.gforge.inria.fr + +#include "param.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "edge_xover.h" +#include "partial_mapped_xover.h" +#include "city_swap.h" +#include "part_route_eval.h" +#include "merge_route_eval.h" +#include "two_opt_init.h" +#include "two_opt_next.h" +#include "two_opt_incr_eval.h" + +#include + +#define POP_SIZE 10 +#define NUM_GEN 10 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + + +int main (int __argc, char * * __argv) { + + peo :: init (__argc, __argv); + + + loadParameters (__argc, __argv); /* Processing some parameters relative to the tackled + problem (TSP) */ + + RouteInit route_init; /* Its builds random routes */ + RouteEval full_eval; /* Full route evaluator */ + + + OrderXover order_cross; /* Recombination */ + PartialMappedXover pm_cross; + EdgeXover edge_cross; + CitySwap city_swap_mut; /* Mutation */ + + + /** Local Search */ + TwoOptInit pmx_two_opt_init; + TwoOptNext pmx_two_opt_next; + TwoOptIncrEval pmx_two_opt_incr_eval; + moBestImprSelect pmx_two_opt_move_select; + moHC hc (pmx_two_opt_init, pmx_two_opt_next, pmx_two_opt_incr_eval, pmx_two_opt_move_select, full_eval); + + /** The EA */ + eoPop ox_pop (POP_SIZE, route_init); /* Population */ + + eoGenContinue ox_cont (NUM_GEN); /* A fixed number of iterations */ + eoCheckPoint ox_checkpoint (ox_cont); /* Checkpoint */ + peoSeqPopEval ox_pop_eval (full_eval); + eoStochTournamentSelect ox_select_one; + eoSelectNumber ox_select (ox_select_one, POP_SIZE); + eoSGATransform ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE); + peoSeqTransform ox_para_transform (ox_transform); + eoEPReplacement ox_replace (2); + + peoEA ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_para_transform, ox_replace); + + ox_ea (ox_pop); /* Application to the given population */ + + + peo :: run (); + peo :: finalize (); /* Termination */ + + + std :: cout << ox_pop[ 0 ].fitness(); + hc( ox_pop[ 0 ] ); + std :: cout << " -> " << ox_pop[ 0 ].fitness() << std :: endl; + + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleC.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleC.cpp new file mode 100644 index 000000000..4944fcaa9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleC.cpp @@ -0,0 +1,131 @@ +// (c) OPAC Team, LIFL, July 2007 +// +// Contact: paradiseo-help@lists.gforge.inria.fr + +#include "param.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "edge_xover.h" +#include "partial_mapped_xover.h" +#include "city_swap.h" +#include "part_route_eval.h" +#include "merge_route_eval.h" +#include "two_opt_init.h" +#include "two_opt_next.h" +#include "two_opt_incr_eval.h" + +#include + +#define POP_SIZE 10 +#define NUM_GEN 10 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + +#define MIG_FREQ 1 +#define MIG_SIZE 5 + + +int main (int __argc, char * * __argv) { + + peo :: init (__argc, __argv); + + + loadParameters (__argc, __argv); /* Processing some parameters relative to the tackled + problem (TSP) */ + + /* Migration topology */ + RingTopology topo; + + + + // The First EA ------------------------------------------------------------------------------------- + + RouteInit route_init; /* Its builds random routes */ + RouteEval full_eval; /* Full route evaluator */ + + OrderXover order_cross; /* Recombination */ + CitySwap city_swap_mut; /* Mutation */ + + eoPop ox_pop (POP_SIZE, route_init); /* Population */ + + eoGenContinue ox_cont (NUM_GEN); /* A fixed number of iterations */ + eoCheckPoint ox_checkpoint (ox_cont); /* Checkpoint */ + peoSeqPopEval ox_pop_eval (full_eval); + eoStochTournamentSelect ox_select_one; + eoSelectNumber ox_select (ox_select_one, POP_SIZE); + eoSGATransform ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE); + peoSeqTransform ox_seq_transform (ox_transform); + eoEPReplacement ox_replace (2); + + + /* The migration policy */ + eoPeriodicContinue ox_mig_cont (MIG_FREQ); /* Migration occurs periodically */ + eoStochTournamentSelect ox_mig_select_one; /* Emigrants are randomly selected */ + eoSelectNumber ox_mig_select (ox_mig_select_one, MIG_SIZE); + eoPlusReplacement ox_mig_replace; /* Immigrants replace the worse individuals */ + + peoAsyncIslandMig ox_mig (ox_mig_cont, ox_mig_select, ox_mig_replace, topo, ox_pop, ox_pop); + ox_checkpoint.add (ox_mig); + + peoEA ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_seq_transform, ox_replace); + ox_mig.setOwner (ox_ea); + + ox_ea (ox_pop); /* Application to the given population */ + // -------------------------------------------------------------------------------------------------- + + + + // The Second EA ------------------------------------------------------------------------------------ + + RouteInit route_init2; /* Its builds random routes */ + RouteEval full_eval2; /* Full route evaluator */ + + OrderXover order_cross2; /* Recombination */ + CitySwap city_swap_mut2; /* Mutation */ + + + eoPop ox_pop2 (POP_SIZE, route_init2); /* Population */ + + + eoGenContinue ox_cont2 (NUM_GEN); /* A fixed number of iterations */ + eoCheckPoint ox_checkpoint2 (ox_cont2); /* Checkpoint */ + peoSeqPopEval ox_pop_eval2 (full_eval2); + eoStochTournamentSelect ox_select_one2; + eoSelectNumber ox_select2 (ox_select_one2, POP_SIZE); + eoSGATransform ox_transform2 (order_cross2, CROSS_RATE, city_swap_mut2, MUT_RATE); + peoSeqTransform ox_seq_transform2 (ox_transform2); + eoEPReplacement ox_replace2 (2); + + /* The migration policy */ + eoPeriodicContinue ox_mig_cont2 (MIG_FREQ); /* Migration occurs periodically */ + eoStochTournamentSelect ox_mig_select_one2; /* Emigrants are randomly selected */ + eoSelectNumber ox_mig_select2 (ox_mig_select_one2, MIG_SIZE); + eoPlusReplacement ox_mig_replace2; /* Immigrants replace the worse individuals */ + + peoAsyncIslandMig ox_mig2 (ox_mig_cont2, ox_mig_select2, ox_mig_replace2, topo, ox_pop2, ox_pop2); + ox_checkpoint2.add (ox_mig2); + + peoEA ox_ea2 (ox_checkpoint2, ox_pop_eval2, ox_select2, ox_seq_transform2, ox_replace2); + ox_mig2.setOwner (ox_ea2); + + ox_ea2 (ox_pop2); /* Application to the given population */ + // -------------------------------------------------------------------------------------------------- + + + + peo :: run (); + peo :: finalize (); /* Termination */ + + + // rank 0 is assigned to the scheduler in the XML mapping file + if ( getNodeRank() == 1 ) { + + std::cout << "EA[ 0 ] -----> " << ox_pop.best_element().fitness() << std::endl; + std::cout << "EA[ 1 ] -----> " << ox_pop2.best_element().fitness() << std::endl; + } + + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleD.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleD.cpp new file mode 100644 index 000000000..16d05cb27 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleD.cpp @@ -0,0 +1,75 @@ +// (c) OPAC Team, LIFL, July 2007 +// +// Contact: paradiseo-help@lists.gforge.inria.fr + +#include "param.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "edge_xover.h" +#include "partial_mapped_xover.h" +#include "city_swap.h" +#include "part_route_eval.h" +#include "merge_route_eval.h" +#include "two_opt_init.h" +#include "two_opt_next.h" +#include "two_opt_incr_eval.h" + +#include + +#define POP_SIZE 10 +#define NUM_GEN 10 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + + + +int main (int __argc, char * * __argv) { + + peo :: init (__argc, __argv); + + + loadParameters (__argc, __argv); /* Processing some parameters relative to the tackled + problem (TSP) */ + + RouteInit route_init; /* Its builds random routes */ + RouteEval full_eval; /* Full route evaluator */ + + + OrderXover order_cross; /* Recombination */ + CitySwap city_swap_mut; /* Mutation */ + + + /** The EA */ + eoPop ox_pop (POP_SIZE, route_init); /* Population */ + + eoGenContinue ox_cont (NUM_GEN); /* A fixed number of iterations */ + eoCheckPoint ox_checkpoint (ox_cont); /* Checkpoint */ + peoSeqPopEval ox_pop_eval (full_eval); + eoStochTournamentSelect ox_select_one; + eoSelectNumber ox_select (ox_select_one, POP_SIZE); + eoSGATransform ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE); + peoSeqTransform ox_para_transform (ox_transform); + eoEPReplacement ox_replace (2); + + + peoEA ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_para_transform, ox_replace); + + + ox_ea (ox_pop); /* Application to the given population */ + + peo :: run (); + peo :: finalize (); /* Termination */ + + + + // rank 0 is assigned to the scheduler in the XML mapping file + if ( getNodeRank() == 1 ) { + + std::cout << "EA[ 0 ] -----> " << ox_pop.best_element().fitness() << std::endl; + } + + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleE.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleE.cpp new file mode 100644 index 000000000..a5ecc3335 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/exampleE.cpp @@ -0,0 +1,83 @@ +// (c) OPAC Team, LIFL, July 2007 +// +// Contact: paradiseo-help@lists.gforge.inria.fr + +#include "param.h" +#include "route_init.h" +#include "route_eval.h" + +#include "order_xover.h" +#include "edge_xover.h" +#include "partial_mapped_xover.h" +#include "city_swap.h" +#include "part_route_eval.h" +#include "merge_route_eval.h" +#include "two_opt_init.h" +#include "two_opt_next.h" +#include "two_opt_incr_eval.h" + +#include + +#define POP_SIZE 10 +#define NUM_GEN 10 +#define CROSS_RATE 1.0 +#define MUT_RATE 0.01 + +#define NUM_PART_EVALS 2 + + +int main (int __argc, char * * __argv) { + + peo :: init (__argc, __argv); + + + loadParameters (__argc, __argv); /* Processing some parameters relative to the tackled + problem (TSP) */ + + RouteInit route_init; /* Its builds random routes */ + RouteEval full_eval; /* Full route evaluator */ + + + MergeRouteEval merge_eval; + + std :: vector *> part_eval; + for (unsigned i = 1 ; i <= NUM_PART_EVALS ; i ++) + part_eval.push_back (new PartRouteEval ((float) (i - 1) / NUM_PART_EVALS, (float) i / NUM_PART_EVALS)); + + + OrderXover order_cross; /* Recombination */ + CitySwap city_swap_mut; /* Mutation */ + + + /** The EA */ + eoPop ox_pop (POP_SIZE, route_init); /* Population */ + + eoGenContinue ox_cont (NUM_GEN); /* A fixed number of iterations */ + eoCheckPoint ox_checkpoint (ox_cont); /* Checkpoint */ + peoParaPopEval ox_pop_eval (full_eval); + eoStochTournamentSelect ox_select_one; + eoSelectNumber ox_select (ox_select_one, POP_SIZE); + eoSGATransform ox_transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE); + peoSeqTransform ox_para_transform (ox_transform); + eoEPReplacement ox_replace (2); + + + peoEA ox_ea (ox_checkpoint, ox_pop_eval, ox_select, ox_para_transform, ox_replace); + + + ox_ea (ox_pop); /* Application to the given population */ + + peo :: run (); + peo :: finalize (); /* Termination */ + + + + // rank 0 is assigned to the scheduler in the XML mapping file + if ( getNodeRank() == 1 ) { + + std::cout << "EA[ 0 ] -----> " << ox_pop.best_element().fitness() << std::endl; + } + + + return 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/paradiseo-peo-lsn.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/paradiseo-peo-lsn.doxyfile new file mode 100644 index 000000000..9f9d15d8f --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/Walkthrough/paradiseo-peo-lsn.doxyfile @@ -0,0 +1,241 @@ +# Doxyfile 1.4.7 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "ParadisEO-PEO Lesson1" +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = ../../docs/html/lesson1 +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS \ + README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = ../../docs/images +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = peo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \ + ../../docs/paradiseo-peo.doxytag=../../ \ + ../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html +GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/CMakeLists.txt new file mode 100644 index 000000000..4e14e7c71 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/CMakeLists.txt @@ -0,0 +1,9 @@ + + +###################################################################################### +### 1) Where must cmake go now ? +###################################################################################### + +SUBDIRS(tsp) + +###################################################################################### \ No newline at end of file diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/CMakeLists.txt b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/CMakeLists.txt new file mode 100644 index 000000000..7574bc4f4 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/CMakeLists.txt @@ -0,0 +1,82 @@ + +###################################################################################### +### 0) Copy the "benchs" directory in the build directory to easily run the lessons +###################################################################################### + +ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/examples/tsp/benchs) +ADD_CUSTOM_COMMAND( + TARGET install + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory + ${ParadisEO-PEO_SOURCE_DIR}/tutorial/examples/tsp/benchs + ${ParadisEO-PEO_BINARY_DIR}/tutorial/examples/tsp/benchs) + +###################################################################################### + + +###################################################################################### +### 1) Include the sources +###################################################################################### + +INCLUDE_DIRECTORIES(${EO_SRC_DIR}) +INCLUDE_DIRECTORIES(${MO_SRC_DIR}) +INCLUDE_DIRECTORIES(${PEO_SRC_DIR}) + +###################################################################################### + + +###################################################################################### +### 2) Define your target(s): just the tsp lib here +###################################################################################### + +SET(TSP_LIB_OUTPUT_PATH ${TSP_BINARY_DIR}/lib) +SET(LIBRARY_OUTPUT_PATH ${TSP_LIB_OUTPUT_PATH}) + +SET (TSP_SOURCES data.h + data.cpp + opt_route.h + opt_route.cpp + param.h + param.cpp + node.h + node.cpp + route.h + route.cpp + route_init.h + route_init.cpp + route_eval.h + route_eval.cpp + two_opt.h + two_opt.cpp + two_opt_init.h + two_opt_init.cpp + two_opt_incr_eval.h + two_opt_incr_eval.cpp + two_opt_next.h + two_opt_next.cpp + order_xover.h + order_xover.cpp + partial_mapped_xover.h + partial_mapped_xover.cpp + edge_xover.h + edge_xover.cpp + city_swap.h + city_swap.cpp + part_route_eval.h + part_route_eval.cpp + merge_route_eval.h + merge_route_eval.cpp) + +ADD_LIBRARY(tsp STATIC ${TSP_SOURCES}) +###################################################################################### + + +###################################################################################### +### 3) Optionnal: define your lib's version +###################################################################################### + +SET(TSP_VERSION "1.0.beta") +SET_TARGET_PROPERTIES(tsp PROPERTIES VERSION "${TSP_VERSION}") +###################################################################################### + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/benchs/eil101.opt.tour b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/benchs/eil101.opt.tour new file mode 100644 index 000000000..1d3fece5a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/benchs/eil101.opt.tour @@ -0,0 +1,108 @@ +NAME : eil101.opt.tour +COMMENT : Optimum tour for eil101.tsp (Length 629) +TYPE : TOUR +DIMENSION : 101 +TOUR_SECTION +1 +69 +27 +101 +53 +28 +26 +12 +80 +68 +29 +24 +54 +55 +25 +4 +39 +67 +23 +56 +75 +41 +22 +74 +72 +73 +21 +40 +58 +13 +94 +95 +97 +87 +2 +57 +15 +43 +42 +14 +44 +38 +86 +16 +61 +85 +91 +100 +98 +37 +92 +59 +93 +99 +96 +6 +89 +52 +18 +83 +60 +5 +84 +17 +45 +8 +46 +47 +36 +49 +64 +63 +90 +32 +10 +62 +11 +19 +48 +82 +7 +88 +31 +70 +30 +20 +66 +71 +65 +35 +34 +78 +81 +9 +51 +33 +79 +3 +77 +76 +50 +-1 +EOF diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/benchs/eil101.tsp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/benchs/eil101.tsp new file mode 100644 index 000000000..9672f849e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/benchs/eil101.tsp @@ -0,0 +1,108 @@ +NAME : eil101 +COMMENT : 101-city problem (Christofides/Eilon) +TYPE : TSP +DIMENSION : 101 +EDGE_WEIGHT_TYPE : EUC_2D +NODE_COORD_SECTION +1 41 49 +2 35 17 +3 55 45 +4 55 20 +5 15 30 +6 25 30 +7 20 50 +8 10 43 +9 55 60 +10 30 60 +11 20 65 +12 50 35 +13 30 25 +14 15 10 +15 30 5 +16 10 20 +17 5 30 +18 20 40 +19 15 60 +20 45 65 +21 45 20 +22 45 10 +23 55 5 +24 65 35 +25 65 20 +26 45 30 +27 35 40 +28 41 37 +29 64 42 +30 40 60 +31 31 52 +32 35 69 +33 53 52 +34 65 55 +35 63 65 +36 2 60 +37 20 20 +38 5 5 +39 60 12 +40 40 25 +41 42 7 +42 24 12 +43 23 3 +44 11 14 +45 6 38 +46 2 48 +47 8 56 +48 13 52 +49 6 68 +50 47 47 +51 49 58 +52 27 43 +53 37 31 +54 57 29 +55 63 23 +56 53 12 +57 32 12 +58 36 26 +59 21 24 +60 17 34 +61 12 24 +62 24 58 +63 27 69 +64 15 77 +65 62 77 +66 49 73 +67 67 5 +68 56 39 +69 37 47 +70 37 56 +71 57 68 +72 47 16 +73 44 17 +74 46 13 +75 49 11 +76 49 42 +77 53 43 +78 61 52 +79 57 48 +80 56 37 +81 55 54 +82 15 47 +83 14 37 +84 11 31 +85 16 22 +86 4 18 +87 28 18 +88 26 52 +89 26 35 +90 31 67 +91 15 19 +92 22 22 +93 18 24 +94 26 27 +95 25 24 +96 22 27 +97 25 21 +98 19 21 +99 20 26 +100 18 18 +101 35 35 +EOF diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/city_swap.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/city_swap.cpp new file mode 100644 index 000000000..cf5afae8a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/city_swap.cpp @@ -0,0 +1,21 @@ +// "city_swap.cpp" + +// (c) OPAC Team, LIFL, 2002 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "city_swap.h" + +bool CitySwap :: operator () (Route & __route) { + + std :: swap (__route [rng.random (__route.size ())], + __route [rng.random (__route.size ())]) ; + + __route.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/city_swap.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/city_swap.h new file mode 100644 index 000000000..cd7a6aaaf --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/city_swap.h @@ -0,0 +1,26 @@ +// "city_swap.h" + +// (c) OPAC Team, LIFL, 2002 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef city_swap_h +#define city_swap_h + +#include + +#include "route.h" + +/** Its swaps two vertices + randomly choosen */ +class CitySwap : public eoMonOp { + +public : + + bool operator () (Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/data.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/data.cpp new file mode 100644 index 000000000..415c30aa1 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/data.cpp @@ -0,0 +1,98 @@ +// "data.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include +#include +#include + +#include + +#include "data.h" +#include "node.h" + +#define MAX_TRASH_LENGTH 1000 +#define MAX_FIELD_LENGTH 1000 +#define MAX_LINE_LENGTH 1000 + +static void getNextField (FILE * __f, char * __buff) { + + char trash [MAX_TRASH_LENGTH]; + + fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ + fscanf (__f, "%[^:\n]", __buff); /* Reading the field */ + fgetc (__f); +} + +static void getLine (FILE * __f, char * __buff) { + + char trash [MAX_TRASH_LENGTH]; + + fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ + fscanf (__f, "%[^\n]", __buff); /* Reading the line */ +} + +void loadData (const char * __filename) { + + FILE * f = fopen (__filename, "r"); + + if (f) { + + printf ("Loading '%s'.\n", __filename); + + char field [MAX_FIELD_LENGTH]; + + getNextField (f, field); /* Name */ + assert (strstr (field, "NAME")); + getNextField (f, field); + printf ("NAME: %s.\n", field); + + getNextField (f, field); /* Comment */ + assert (strstr (field, "COMMENT")); + getLine (f, field); + printf ("COMMENT: %s.\n", field); + + getNextField (f, field); /* Type */ + assert (strstr (field, "TYPE")); + getNextField (f, field); + printf ("TYPE: %s.\n", field); + + getNextField (f, field); /* Dimension */ + assert (strstr (field, "DIMENSION")); + getNextField (f, field); + printf ("DIMENSION: %s.\n", field); + numNodes = atoi (field); + + getNextField (f, field); /* Edge weight type */ + assert (strstr (field, "EDGE_WEIGHT_TYPE")); + getNextField (f, field); + printf ("EDGE_WEIGHT_TYPE: %s.\n", field); + + getNextField (f, field); /* Node coord section */ + assert (strstr (field, "NODE_COORD_SECTION")); + loadNodes (f); + + getNextField (f, field); /* End of file */ + assert (strstr (field, "EOF")); + printf ("EOF.\n"); + } + else { + + fprintf (stderr, "Can't open '%s'.\n", __filename); + exit (1); + } +} + +void loadData (eoParser & __parser) { + + /* Getting the path of the instance */ + + eoValueParam param ("", "inst", "Path of the instance") ; + __parser.processParam (param) ; + loadData (param.value ().c_str ()); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/data.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/data.h new file mode 100644 index 000000000..c00c6edfb --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/data.h @@ -0,0 +1,18 @@ +// "data.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __data_h +#define __data_h + +#include + +extern void loadData (const char * __filename); + +extern void loadData (eoParser & __parser); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display.cpp new file mode 100644 index 000000000..0fbaad4b2 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display.cpp @@ -0,0 +1,117 @@ +// "display.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include + +#include "display.h" +#include "node.h" +#include "opt_route.h" + +#define BORDER 20 +#define RATIO 0.5 + +#define screen_width 1024 +#define screen_height 768 + +static const char * filename; + +/* Computed coordinates */ +static unsigned * X_new_coord, * Y_new_coord ; + +/* this variable will contain the handle to the returned graphics context. */ +static GC gc; + +/* this variable will contain the pointer to the Display structure */ +static Display* disp; + +/* this variable will store the ID of the newly created window. */ +static Window win; + +static int screen; + +/* Create a new backing pixmap of the appropriate size */ + + /* Best tour */ + /* + gdk_gc_set_line_attributes (gc, 2, GDK_LINE_ON_OFF_DASH, GDK_CAP_NOT_LAST, GDK_JOIN_MITER) ; + + gdk_gc_set_foreground (gc, & color_green) ; + + for (int i = 0 ; i < (int) numNodes ; i ++) { + + gdk_draw_line (pixmap, gc, + X_new_coord [opt_route [i]], + Y_new_coord [opt_route [i]], + X_new_coord [opt_route [(i + 1) % numNodes]], + Y_new_coord [opt_route [(i + 1) % numNodes]]); + + }*/ + +void openMainWindow (const char * __filename) { + + filename = __filename; + + /* Map */ + int map_width = (int) (X_max - X_min); + int map_height = (int) (Y_max - Y_min); + int map_side = std :: max (map_width, map_height); + + /* Calculate the window's width and height. */ + int win_width = (int) (screen_width * RATIO * map_width / map_side); + int win_height = (int) (screen_height * RATIO * map_height / map_side); + + /* Computing the coordinates */ + X_new_coord = new unsigned [numNodes]; + Y_new_coord = new unsigned [numNodes]; + + for (unsigned i = 0; i < numNodes; i ++) { + X_new_coord [i] = (unsigned) (win_width * (1.0 - (X_coord [i] - X_min) / map_width) + BORDER); + Y_new_coord [i] = (unsigned) (win_height * (1.0 - (Y_coord [i] - Y_min) / map_height) + BORDER); + } + + /* Initialisation */ + XGCValues val ; + + disp = XOpenDisplay (NULL) ; + screen = DefaultScreen (disp) ; + win = XCreateSimpleWindow (disp, RootWindow (disp, screen), 0, 0, win_width + 2 * BORDER, win_height + 2 * BORDER, 2, BlackPixel (disp, screen), WhitePixel (disp, screen)) ; + val.foreground = BlackPixel(disp, screen) ; + val.background = WhitePixel(disp, screen) ; + gc = XCreateGC (disp, win, GCForeground | GCBackground, & val) ; + + XMapWindow (disp, win) ; + XFlush (disp) ; + + while (true) { + XClearWindow (disp, win) ; + + /* Vertices as circles */ + for (unsigned i = 1 ; i < numNodes ; i ++) + XDrawArc (disp, win, gc, X_new_coord [i] - 1, Y_new_coord [i] - 1, 3, 3, 0, 364 * 64) ; + + /* New tour */ + std :: ifstream f (filename); + if (f) { + Route route; + f >> route; + f.close (); + + for (int i = 0; i < (int) numNodes; i ++) + XDrawLine (disp, win, gc, + X_new_coord [route [i]], + Y_new_coord [route [i]], + X_new_coord [route [(i + 1) % numNodes]], + Y_new_coord [route [(i + 1) % numNodes]]); + } + XFlush (disp) ; + sleep (1) ; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display.h new file mode 100644 index 000000000..f534943d6 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display.h @@ -0,0 +1,16 @@ +// "display.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __display_h +#define __display_h + +#include "route.h" + +extern void openMainWindow (const char * __filename); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display_best_route.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display_best_route.cpp new file mode 100644 index 000000000..14b1ba0a3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display_best_route.cpp @@ -0,0 +1,22 @@ +// "display_best_route.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "display_best_route.h" +#include "display.h" + +DisplayBestRoute :: DisplayBestRoute (eoPop & __pop + ) : pop (__pop) { + + +} + +void DisplayBestRoute :: operator () () { + + displayRoute (pop.best_element ()); +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display_best_route.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display_best_route.h new file mode 100644 index 000000000..5571c35be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/display_best_route.h @@ -0,0 +1,32 @@ +// "display_best_route.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __display_best_route_h +#define __display_best_route_h + +#include + +#include + +#include "route.h" + +class DisplayBestRoute : public eoUpdater { + +public : + + DisplayBestRoute (eoPop & __pop); + + void operator () (); + +private : + + eoPop & pop; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/edge_xover.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/edge_xover.cpp new file mode 100644 index 000000000..441262e26 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/edge_xover.cpp @@ -0,0 +1,118 @@ +// "edge_xover.cpp" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include + +#include "edge_xover.h" + +void EdgeXover :: build_map (const Route & __par1, const Route & __par2) { + + unsigned len = __par1.size () ; + + /* Initialization */ + _map.clear () ; + _map.resize (len) ; + + for (unsigned i = 0 ; i < len ; i ++) { + _map [__par1 [i]].insert (__par1 [(i + 1) % len]) ; + _map [__par2 [i]].insert (__par2 [(i + 1) % len]) ; + _map [__par1 [i]].insert (__par1 [(i - 1 + len) % len]) ; + _map [__par2 [i]].insert (__par2 [(i - 1 + len) % len]) ; + } + + visited.clear () ; + visited.resize (len, false) ; +} + +void EdgeXover :: remove_entry (unsigned __vertex, std :: vector > & __map) { + + std :: set & neigh = __map [__vertex] ; + + for (std :: set :: iterator it = neigh.begin () ; + it != neigh.end () ; + it ++) + __map [* it].erase (__vertex) ; + +} + +void EdgeXover :: add_vertex (unsigned __vertex, Route & __child) { + + visited [__vertex] = true ; + __child.push_back (__vertex) ; + remove_entry (__vertex, _map) ; /* Removing entries */ +} + +void EdgeXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { + + build_map (__par1, __par2) ; + + unsigned len = __par1.size () ; + + /* Go ! */ + __child.clear () ; + + unsigned cur_vertex = rng.random (len) ; + + add_vertex (cur_vertex, __child) ; + + for (unsigned i = 1 ; i < len ; i ++) { + + unsigned len_min_entry = MAXINT ; + + std :: set & neigh = _map [cur_vertex] ; + + for (std :: set :: iterator it = neigh.begin () ; + it != neigh.end () ; + it ++) { + unsigned l = _map [* it].size () ; + if (len_min_entry > l) + len_min_entry = l ; + } + + std :: vector cand ; /* Candidates */ + + for (std :: set :: iterator it = neigh.begin () ; + it != neigh.end () ; + it ++) { + unsigned l = _map [* it].size () ; + if (len_min_entry == l) + cand.push_back (* it) ; + } + + if (! cand.size ()) { + + /* Oh no ! Implicit mutation */ + for (unsigned j = 0 ; j < len ; j ++) + if (! visited [j]) + cand.push_back (j) ; + } + + cur_vertex = cand [rng.random (cand.size ())] ; + + add_vertex (cur_vertex, __child) ; + } +} + +bool EdgeXover :: operator () (Route & __route1, Route & __route2) { + + // Init. copy + Route par [2] ; + par [0] = __route1 ; + par [1] = __route2 ; + + cross (par [0], par [1], __route1) ; + cross (par [1], par [0], __route2) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/edge_xover.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/edge_xover.h new file mode 100644 index 000000000..e8bb1f063 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/edge_xover.h @@ -0,0 +1,43 @@ +// "edge_xover.h" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef edge_xover_h +#define edge_xover_h + +#include +#include + +#include + +#include "route.h" + +/** Edge Crossover */ +class EdgeXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */ + + void remove_entry (unsigned __vertex, std :: vector > & __map) ; + /* Updating the map of entries */ + + void build_map (const Route & __par1, const Route & __par2) ; + + void add_vertex (unsigned __vertex, Route & __child) ; + + std :: vector > _map ; /* The handled map */ + + std :: vector visited ; /* Vertices that are already visited */ + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/merge_route_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/merge_route_eval.cpp new file mode 100644 index 000000000..1c0d66870 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/merge_route_eval.cpp @@ -0,0 +1,17 @@ +// "merge_route_eval.cpp" + +// (c) OPAC Team, LIFL, 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "merge_route_eval.h" + +void MergeRouteEval :: operator () (Route & __route, const int & __part_fit) { + + int len = __route.fitness (); + len += __part_fit; + __route.fitness (len); +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/merge_route_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/merge_route_eval.h new file mode 100644 index 000000000..dd4a9534d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/merge_route_eval.h @@ -0,0 +1,24 @@ +// "merge_route_eval.h" + +// (c) OPAC Team, LIFL, 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __merge_route_eval_h +#define __merge_route_eval_h + +#include + +#include "route.h" + +class MergeRouteEval : public peoAggEvalFunc { + +public : + + void operator () (Route & __route, const int & __part_fit) ; + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/mix.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/mix.h new file mode 100644 index 000000000..ce5d9bf9e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/mix.h @@ -0,0 +1,25 @@ + + +/* + file: 'mix.h' + author: S. CAHON + mail: paradiseo-help@lists.gforge.inria.fr + date: dec. 2005 +*/ + +#ifndef __mix_h +#define __mix_h + +#include + +#include + +template void mix (std :: vector & __v) { + + unsigned len = __v.size () ; + + for (unsigned i = 0 ; i < len ; i ++) + std :: swap (__v [i], __v [rng.random (len)]) ; +} + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/node.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/node.cpp new file mode 100644 index 000000000..cf0c0f523 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/node.cpp @@ -0,0 +1,77 @@ +// "node.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include +#include + +#include "node.h" + +unsigned numNodes; /* Number of nodes */ + +//static unsigned * * dist; /* Square matrix of distances */ + +double * X_coord, * Y_coord; + +double X_min = MAXDOUBLE, X_max = MINDOUBLE, Y_min = MAXDOUBLE, Y_max = MINDOUBLE; + +void loadNodes (FILE * __f) { + + /* Coord */ + + X_coord = new double [numNodes]; + + Y_coord = new double [numNodes]; + + unsigned num; + + for (unsigned i = 0; i < numNodes; i ++) { + + fscanf (__f, "%u%lf%lf", & num, X_coord + i, Y_coord + i); + + if (X_coord [i] < X_min) + X_min = X_coord [i]; + if (X_coord [i] > X_max) + X_max = X_coord [i]; + if (Y_coord [i] < Y_min) + Y_min = Y_coord [i]; + if (Y_coord [i] > Y_max) + Y_max = Y_coord [i]; + } + + /* Allocation */ + /* + dist = new unsigned * [numNodes]; + + for (unsigned i = 0; i < numNodes; i ++) + dist [i] = new unsigned [numNodes]; + */ + /* Computation of the distances */ + + /* + for (unsigned i = 0; i < numNodes; i ++) { + + dist [i] [i] = 0; + + for (unsigned j = 0; j < numNodes; j ++) { + + double dx = X_coord [i] - X_coord [j], dy = Y_coord [i] - Y_coord [j]; + + dist [i] [j] = dist [j] [i] = (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ; + } + }*/ +} + +unsigned distance (Node __from, Node __to) { + + // return dist [__from] [__to]; + + double dx = X_coord [__from] - X_coord [__to], dy = Y_coord [__from] - Y_coord [__to]; + + return (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ; +} + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/node.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/node.h new file mode 100644 index 000000000..fe735361a --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/node.h @@ -0,0 +1,26 @@ +// "node.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __node_h +#define __node_h + +#include + +typedef unsigned Node; + +extern double X_min, X_max, Y_min, Y_max; + +extern double * X_coord, * Y_coord; + +extern unsigned numNodes; /* Number of nodes */ + +extern void loadNodes (FILE * __f); + +extern unsigned distance (Node __from, Node __to); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/opt_route.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/opt_route.cpp new file mode 100644 index 000000000..2ee739358 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/opt_route.cpp @@ -0,0 +1,107 @@ +// "opt_route.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "opt_route.h" + +#define MAX_TRASH_LENGTH 1000 +#define MAX_FIELD_LENGTH 1000 +#define MAX_LINE_LENGTH 1000 + +static void getNextField (FILE * __f, char * __buff) { + + char trash [MAX_TRASH_LENGTH]; + + fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ + fscanf (__f, "%[^:\n]", __buff); /* Reading the field */ + fgetc (__f); +} + +static void getLine (FILE * __f, char * __buff) { + + char trash [MAX_TRASH_LENGTH]; + + fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ + fscanf (__f, "%[^\n]", __buff); /* Reading the line */ +} + +static void loadBestRoute (FILE * __f) { + + opt_route.clear (); + + for (unsigned i = 0; i < numNodes; i ++) { + Node node; + fscanf (__f, "%u", & node); + opt_route.push_back (node - 1); + } + int d; /* -1 ! */ + fscanf (__f, "%d", & d); +} + +void loadOptimumRoute (const char * __filename) { + + FILE * f = fopen (__filename, "r"); + + if (f) { + + printf ("Loading '%s'.\n", __filename); + + char field [MAX_FIELD_LENGTH]; + + getNextField (f, field); /* Name */ + assert (strstr (field, "NAME")); + getNextField (f, field); + //printf ("NAME: %s.\n", field); + + getNextField (f, field); /* Comment */ + assert (strstr (field, "COMMENT")); + getLine (f, field); + // printf ("COMMENT: %s.\n", field); + + getNextField (f, field); /* Type */ + assert (strstr (field, "TYPE")); + getNextField (f, field); + //printf ("TYPE: %s.\n", field); + + getNextField (f, field); /* Dimension */ + assert (strstr (field, "DIMENSION")); + getNextField (f, field); + // printf ("DIMENSION: %s.\n", field); + numNodes = atoi (field); + + getNextField (f, field); /* Tour section */ + assert (strstr (field, "TOUR_SECTION")); + loadBestRoute (f); + + getNextField (f, field); /* End of file */ + assert (strstr (field, "EOF")); + //printf ("EOF.\n"); + + printf ("The length of the best route is %u.\n", length (opt_route)); + } + else { + + fprintf (stderr, "Can't open '%s'.\n", __filename); + exit (1); + } +} + +void loadOptimumRoute (eoParser & __parser) { + + /* Getting the path of the instance */ + + eoValueParam param ("", "optimumTour", "Optimum tour") ; + __parser.processParam (param) ; + if (strlen (param.value ().c_str ())) + loadOptimumRoute (param.value ().c_str ()); + else + opt_route.fitness (0); +} + +Route opt_route; /* Optimum route */ + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/opt_route.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/opt_route.h new file mode 100644 index 000000000..52df469de --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/opt_route.h @@ -0,0 +1,23 @@ +// "opt_route.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __opt_route_h +#define __opt_route_h + +#include +#include + +#include "route.h" + +extern void loadOptimumRoute (const char * __filename); + +extern void loadOptimumRoute (eoParser & __parser); + +extern Route opt_route; /* Optimum route */ + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/order_xover.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/order_xover.cpp new file mode 100644 index 000000000..5f8b3ba65 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/order_xover.cpp @@ -0,0 +1,64 @@ +// "order_xover.cpp" + +// (c) OPAC Team, LIFL, 2002 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include + +#include "order_xover.h" + +void OrderXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { + + unsigned cut2 = 1 + rng.random (numNodes) ; + unsigned cut1 = rng.random (cut2); + unsigned l = 0; + + /* To store vertices that have already been crossed */ + std :: vector v (numNodes, false); + + /* Copy of the left partial route of the first parent */ + for (unsigned i = cut1 ; i < cut2 ; i ++) { + __child [l ++] = __par1 [i] ; + v [__par1 [i]] = true ; + } + + /* Searching the vertex of the second path, that ended the previous first one */ + unsigned from = 0 ; + for (unsigned i = 0; i < numNodes; i ++) + if (__par2 [i] == __child [cut2 - 1]) { + from = i ; + break ; + } + + /* Selecting a direction (Left or Right) */ + char direct = rng.flip () ? 1 : -1 ; + + for (unsigned i = 0; i < numNodes + 1; i ++) { + unsigned bidule = (direct * i + from + numNodes) % numNodes; + if (! v [__par2 [bidule]]) { + __child [l ++] = __par2 [bidule] ; + v [__par2 [bidule]] = true ; + } + } +} + +bool OrderXover :: operator () (Route & __route1, Route & __route2) { + + // Init. copy + Route par [2] ; + par [0] = __route1 ; + par [1] = __route2 ; + + cross (par [0], par [1], __route1) ; + cross (par [1], par [0], __route2) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/order_xover.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/order_xover.h new file mode 100644 index 000000000..9fc1907d8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/order_xover.h @@ -0,0 +1,28 @@ +// "order_xover.h" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef order_xover_h +#define order_xover_h + +#include + +#include "route.h" + +/** Order Crossover */ +class OrderXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void cross (const Route & __par1, const Route & __par2, Route & __child) ; +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/paradiseo-peo-lsn-shared.doxyfile b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/paradiseo-peo-lsn-shared.doxyfile new file mode 100644 index 000000000..bd1a827a9 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/paradiseo-peo-lsn-shared.doxyfile @@ -0,0 +1,240 @@ +# Doxyfile 1.4.7 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "ParadisEO-PEO - Lessons" +PROJECT_NUMBER = 0.1 +OUTPUT_DIRECTORY = ../../docs/html/lsnshared +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +BUILTIN_STL_SUPPORT = NO +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = NO +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = NO +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.cpp \ + *.h \ + NEWS \ + README +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = peo +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../paradiseo-mo/docs/html \ + ../../../paradiseo-mo/docs/mo.doxytag=../../../../paradiseo-mo/docs/html \ + ../../docs/paradiseo-peo.doxytag=../../ +GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn-shared.doxytag +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = NO +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024 +MAX_DOT_GRAPH_HEIGHT = 1024 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = YES diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/param.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/param.cpp new file mode 100644 index 000000000..ba41c71d3 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/param.cpp @@ -0,0 +1,23 @@ +// "param.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "data.h" +#include "opt_route.h" + +void loadParameters (int __argc, char * * __argv) { + + eoParser parser (__argc, __argv); + + loadData (parser); + + loadOptimumRoute (parser); +} + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/param.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/param.h new file mode 100644 index 000000000..ee21bf4d8 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/param.h @@ -0,0 +1,14 @@ +// "param.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __param_h +#define __param_h + +extern void loadParameters (int __argc, char * * __argv); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/part_route_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/part_route_eval.cpp new file mode 100644 index 000000000..e2d362230 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/part_route_eval.cpp @@ -0,0 +1,30 @@ +// "part_route_eval.cpp" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "part_route_eval.h" +#include "node.h" + +PartRouteEval :: PartRouteEval (float __from, + float __to + ) : from (__from), + to (__to) { + +} + +void PartRouteEval :: operator () (Route & __route) { + + + unsigned len = 0 ; + + for (unsigned i = (unsigned) (__route.size () * from) ; + i < (unsigned) (__route.size () * to) ; + i ++) + len += distance (__route [i], __route [(i + 1) % numNodes]) ; + + __route.fitness (- (int) len) ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/part_route_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/part_route_eval.h new file mode 100644 index 000000000..891737760 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/part_route_eval.h @@ -0,0 +1,33 @@ +// "part_route_eval.h" + +// (c) OPAC Team, LIFL, 2005 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __part_route_eval_h +#define __part_route_eval_h + +#include + +#include "route.h" + +/** Route Evaluator */ +class PartRouteEval : public eoEvalFunc { + +public : + + /** Constructor */ + PartRouteEval (float __from, float __to) ; + + void operator () (Route & __route) ; + +private : + + float from, to ; + +} ; + + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/partial_mapped_xover.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/partial_mapped_xover.cpp new file mode 100644 index 000000000..1ad819a2d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/partial_mapped_xover.cpp @@ -0,0 +1,61 @@ +// "partial_mapped_xover.cpp" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include + +#include "partial_mapped_xover.h" +#include "mix.h" + +void PartialMappedXover :: repair (Route & __route, unsigned __cut1, unsigned __cut2) { + + unsigned v [__route.size ()] ; // Number of times a cities are visited ... + + for (unsigned i = 0 ; i < __route.size () ; i ++) + v [i] = 0 ; + + for (unsigned i = 0 ; i < __route.size () ; i ++) + v [__route [i]] ++ ; + + std :: vector vert ; + + for (unsigned i = 0 ; i < __route.size () ; i ++) + if (! v [i]) + vert.push_back (i) ; + + mix (vert) ; + + for (unsigned i = 0 ; i < __route.size () ; i ++) + if (i < __cut1 || i >= __cut2) + if (v [__route [i]] > 1) { + __route [i] = vert.back () ; + vert.pop_back () ; + } +} + +bool PartialMappedXover :: operator () (Route & __route1, Route & __route2) { + + unsigned cut1 = rng.random (__route1.size ()), cut2 = rng.random (__route2.size ()) ; + + if (cut2 < cut1) + std :: swap (cut1, cut2) ; + + // Between the cuts + for (unsigned i = cut1 ; i < cut2 ; i ++) + std :: swap (__route1 [i], __route2 [i]) ; + + // Outside the cuts + repair (__route1, cut1, cut2) ; + repair (__route2, cut1, cut2) ; + + __route1.invalidate () ; + __route2.invalidate () ; + + return true ; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/partial_mapped_xover.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/partial_mapped_xover.h new file mode 100644 index 000000000..0c08531be --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/partial_mapped_xover.h @@ -0,0 +1,28 @@ +// "partial_mapped_xover.h" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef partial_mapped_xover_h +#define partial_mapped_xover_h + +#include + +#include "route.h" + +/** Partial Mapped Crossover */ +class PartialMappedXover : public eoQuadOp { + +public : + + bool operator () (Route & __route1, Route & __route2) ; + +private : + + void repair (Route & __route, unsigned __cut1, unsigned __cut2) ; +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route.cpp new file mode 100644 index 000000000..eea64ab51 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route.cpp @@ -0,0 +1,21 @@ +// "route.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route.h" + +unsigned length (const Route & __route) { + + unsigned len = 0 ; + + for (unsigned i = 0; i < numNodes; i ++) + len += distance (__route [i], __route [(i + 1) % numNodes]) ; + + return len; +} + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route.h new file mode 100644 index 000000000..0ba026675 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route.h @@ -0,0 +1,20 @@ +// "route.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __route_h +#define __route_h + +#include + +#include "node.h" + +typedef eoVector Route; + +unsigned length (const Route & __route); + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_eval.cpp new file mode 100644 index 000000000..0fed8d481 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_eval.cpp @@ -0,0 +1,14 @@ +// "route_eval.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "route_eval.h" + +void RouteEval :: operator () (Route & __route) { + + __route.fitness (- (int) length (__route)); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_eval.h new file mode 100644 index 000000000..295f9a39b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_eval.h @@ -0,0 +1,23 @@ +// "route_eval.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __route_eval_h +#define __route_eval_h + +#include + +#include "route.h" + +class RouteEval : public eoEvalFunc { + +public : + + void operator () (Route & __route) ; +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_init.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_init.cpp new file mode 100644 index 000000000..93733f210 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_init.cpp @@ -0,0 +1,23 @@ +// "route_init.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "route_init.h" +#include "node.h" + +void RouteInit :: operator () (Route & __route) { + + __route.clear (); + + for (unsigned i = 0 ; i < numNodes ; i ++) + __route.push_back (i); + + for (unsigned i = 0 ; i < numNodes ; i ++) + std :: swap (__route [i], __route [rng.random (numNodes)]); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_init.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_init.h new file mode 100644 index 000000000..937b38265 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/route_init.h @@ -0,0 +1,23 @@ +// "route_init.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __route_init_h +#define __route_init_h + +#include + +#include "route.h" + +class RouteInit : public eoInit { + +public : + + void operator () (Route & __route); +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt.cpp new file mode 100644 index 000000000..8852ff910 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt.cpp @@ -0,0 +1,20 @@ +// "two_opt.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt.h" + +void TwoOpt :: operator () (Route & __route) { + + unsigned i = 0; + + while ((2 * i) < (second - first)) { + + std :: swap (__route [first + i], __route [second - i]); + i ++; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt.h new file mode 100644 index 000000000..0989f5e6e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt.h @@ -0,0 +1,25 @@ +// "two_opt.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __two_opt_h +#define __two_opt_h + +#include +#include + +#include "route.h" + +class TwoOpt : public moMove , public std :: pair { + +public : + + void operator () (Route & __route); + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_incr_eval.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_incr_eval.cpp new file mode 100644 index 000000000..b3985f66e --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_incr_eval.cpp @@ -0,0 +1,24 @@ +// "TwoOptIncrEval.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_incr_eval.h" +#include "node.h" + +int TwoOptIncrEval :: operator () (const TwoOpt & __move, const Route & __route) { + + /* From */ + Node v1 = __route [__move.first], v1_left = __route [(__move.first - 1 + numNodes) % numNodes]; + + /* To */ + Node v2 = __route [__move.second], v2_right = __route [(__move.second + 1) % numNodes]; + + if (v1 == v2 || v2_right == v1) + return __route.fitness (); + else + return __route.fitness () - distance (v1_left, v2) - distance (v1, v2_right) + distance (v1_left, v1) + distance (v2, v2_right); +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_incr_eval.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_incr_eval.h new file mode 100644 index 000000000..5f88496ed --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_incr_eval.h @@ -0,0 +1,23 @@ +// "TwoOptIncrEval.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __two_opt_incr_eval_h +#define __two_opt_incr_eval_h + +#include +#include "two_opt.h" + +class TwoOptIncrEval : public moMoveIncrEval { + +public : + + int operator () (const TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_init.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_init.cpp new file mode 100644 index 000000000..e19abc467 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_init.cpp @@ -0,0 +1,14 @@ +// "two_opt_init.cpp" + +// (c) OPAC Team, LIFL, 2003 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_init.h" + +void TwoOptInit :: operator () (TwoOpt & __move, const Route & __route) { + + __move.first = __move.second = 0; +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_init.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_init.h new file mode 100644 index 000000000..9b4dd0bad --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_init.h @@ -0,0 +1,24 @@ +// "two_opt_init.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __two_opt_init_h +#define __two_opt_init_h + +#include + +#include "two_opt.h" + +class TwoOptInit : public moMoveInit { + +public : + + void operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_next.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_next.cpp new file mode 100644 index 000000000..9b7f8be16 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_next.cpp @@ -0,0 +1,27 @@ +// "two_opt_next.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include "two_opt_next.h" +#include "node.h" + +bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) { + + if (__move.first == numNodes - 1 && __move.second == numNodes - 1) + return false; + + else { + + __move.second ++; + if (__move.second == numNodes) { + + __move.first ++; + __move.second = __move.first; + } + return true ; + } +} diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_next.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_next.h new file mode 100644 index 000000000..cd6605a8d --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_next.h @@ -0,0 +1,24 @@ +// "two_opt_next.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __two_opt_next_h +#define __two_opt_next_h + +#include + +#include "two_opt.h" + +class TwoOptNext : public moNextMove { + +public : + + bool operator () (TwoOpt & __move, const Route & __route); + +}; + +#endif diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_rand.cpp b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_rand.cpp new file mode 100644 index 000000000..69d64879b --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_rand.cpp @@ -0,0 +1,21 @@ +// "two_opt_rand.cpp" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#include + +#include "two_opt_rand.h" +#include "node.h" + +void TwoOptRand :: operator () (TwoOpt & __move, const Route & __route) { + + __move.second = rng.random (numNodes); + + __move.first = rng.random (__move.second); +} + + diff --git a/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_rand.h b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_rand.h new file mode 100644 index 000000000..44f602b53 --- /dev/null +++ b/tags/paradiseo-ix86-1.0-beta2/paradiseo-peo/tutorial/examples/tsp/two_opt_rand.h @@ -0,0 +1,24 @@ +// "two_opt_rand.h" + +// (c) OPAC Team, LIFL, January 2006 + +/* + Contact: paradiseo-help@lists.gforge.inria.fr +*/ + +#ifndef __two_opt_rand_h +#define __two_opt_rand_h + +#include + +#include "two_opt.h" + +class TwoOptRand : public eoMoveRand { + +public : + + void operator () (TwoOpt & __move, const Route & __route) ; + +} ; + +#endif