Merge branch 'yaml_load_and_save' of ssh://localhost:9001/gitroot/eodev/eodev

This commit is contained in:
Caner CANDAN 2010-08-04 14:10:57 +02:00
commit 0a37f66ef0
4 changed files with 72 additions and 860 deletions

View file

@ -20,6 +20,10 @@
#include <assert.h>
#include <limits>
#ifdef HAVE_LIBYAML_CPP
#include <yaml-cpp/serializable.h>
#endif // HAVE_LIBYAML_CPP
namespace mlp
{
@ -125,6 +129,21 @@ namespace mlp
if ( probability >= 1.0 || rng.uniform() < probability)
perturb_num(bias, magnitude);
}
#ifdef HAVE_LIBYAML_CPP
YAML_SERIALIZABLE_AUTO(neuron)
void emit_yaml(YAML::Emitter&out) const {
out << YAML::BeginMap;
out << YAML::Key << "Class" << YAML::Value << "mlp::neuron";
YAML_EMIT_MEMBER(out,bias);
YAML_EMIT_MEMBER(out,weight);
out << YAML::EndMap;
}
void load_yaml(const YAML::Node& node) {
YAML_LOAD_MEMBER(node, bias);
YAML_LOAD_MEMBER(node, weight);
}
#endif
};
}
@ -140,8 +159,10 @@ namespace std {
return is >> n.bias >> n.weight;
}
}
namespace mlp {
//---------------------------------------------------------------------------
@ -190,6 +211,21 @@ namespace mlp {
for(iterator n = begin(); n != end(); ++n)
n->perturb();
}
#ifdef HAVE_LIBYAML_CPP
friend ostream& operator<<(YAML::Emitter& e, const layer &l) {
e << ((std::vector<neuron>)l);
}
friend void operator>>(const YAML::Node& n, layer &l) {
// These temporary variable shenanegins are necessary because
// the compiler gets very confused about which template operator>>
// function to use.
// The following does not work: n >> l;
// So we use a temporary variable thusly:
std::vector<mlp::neuron> *obviously_a_vector = &l;
n >> *obviously_a_vector;
}
#endif
};
@ -222,6 +258,9 @@ namespace mlp {
//---------------------------------------------------------------------------
class net: public std::vector<layer>
#ifdef HAVE_LIBYAML_CPP
, public YAML::Serializable
#endif
{
public:
net(const unsigned& num_inputs = 0,
@ -235,6 +274,18 @@ namespace mlp {
net(istream &is) {
load(is);
}
#ifdef HAVE_LIBYAML_CPP
YAML_SERIALIZABLE_AUTO(net)
void emit_members(YAML::Emitter&out) const {
const std::vector<layer>* me_as_layer_vector = this;
out << YAML::Key << "layers" << YAML::Value << *me_as_layer_vector;
}
void load_members(const YAML::Node& node) {
std::vector<layer>* me_as_layer_vector = this;
node["layers"] >> *me_as_layer_vector;
}
#endif // HAVE_LIBYAML_CPP
/** Virtual destructor */
virtual ~net() {};
@ -305,10 +356,13 @@ namespace mlp {
for(const_iterator l = begin(); l != end(); ++l)
os << l->size() << " ";
os << "\n";
os << *this;
os << "\n";
os << "< ";
for(const_iterator l = begin(); l != end(); ++l)
os << *l << " ";
os << ">\n";
}
unsigned num_inputs() const { return front().front().length() - 1; }
unsigned num_outputs() const { return back().size(); }
unsigned num_hidden_layers() const {

View file

@ -38,6 +38,22 @@ AC_TYPE_SIZE_T
dnl Checks for libraries and library functions.
AC_CHECK_LIB(m, cos)
dnl Check for C++ library yaml-cpp (AC_CHEC_LIB only supports checking for C libraries)
AC_MSG_CHECKING('libyaml-cpp available')
AC_LANG(C++)
SAVED_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -lyaml-cpp"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([#include <yaml-cpp/yaml.h>], [YAML::Emitter dummy])],
[ AC_MSG_RESULT([yes])
SAVED_LDFLAGS="$SAVED_LDFLAGS -lyaml-cpp"
AC_DEFINE(HAVE_LIBYAML_CPP,1,[Define to 1 if you have libyaml-cpp installed]) ],
[AC_MSG_RESULT([no])])
LDFLAGS=$SAVED_LDFLAGS
dnl user-switches
AC_APPLICATIONS
AC_DEBUG

View file

@ -1,659 +0,0 @@
# Makefile.in generated automatically by automake 1.4 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
###############################################################################
###############################################################################
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
DESTDIR =
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
AS = @AS@
CC = @CC@
CXX = @CXX@
DLLTOOL = @DLLTOOL@
LD = @LD@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
NM = @NM@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
VERSION = @VERSION@
DEPS = $(top_builddir)/src/libeo.a $(top_builddir)/src/obsolete/libeoobsolete.a $(top_builddir)/src/utils/libeoutils.a
###############################################################################
INCLUDES = -I$(top_builddir)/src
LDADDS = $(top_builddir)/src/libeo.a $(top_builddir)/src/obsolete/libeoobsolete.a $(top_builddir)/src/utils/libeoutils.a
###############################################################################
noinst_PROGRAMS = t-eobreeder t-eoinclusion t-eoinsertion t-eo t-eofitness t-eoproblem t-eobin t-eolottery t-eo2dVector t-eogeneration t-eoEasyEA t-eoNonUniform t-eoUniform t-eoRandom t-eoStateAndParser t-eoAtomOps t-selectOne t-eoGOpSel t-eoVector t-eoCheckpointing t-eoExternalEO t-eoESFull
###############################################################################
t_eoVector_SOURCES = t-eoVector.cpp
t_eoVector_DEPENDENCIES = $(DEPS)
t_eoVector_LDFLAGS = -lm
t_eoVector_LDADD = $(LDADDS)
###############################################################################
t_eoGOpSel_SOURCES = t-eoGOpSel.cpp
t_eoGOpSel_DEPENDENCIES = $(DEPS)
t_eoGOpSel_LDFLAGS = -lm
t_eoGOpSel_LDADD = $(LDADDS)
###############################################################################
t_selectOne_SOURCES = t-selectOne.cpp
t_selectOne_DEPENDENCIES = $(DEPS)
t_selectOne_LDFLAGS = -lm
t_selectOne_LDADD = $(LDADDS)
###############################################################################
t_eoAtomOps_SOURCES = t-eoAtomOps.cpp
t_eoAtomOps_DEPENDENCIES = $(DEPS)
t_eoAtomOps_LDFLAGS = -lm
t_eoAtomOps_LDADD = $(LDADDS)
###############################################################################
#disabled
#t_eoESOps_SOURCES = t-eoESOps.cpp
#t_eoESOps_DEPENDENCIES = $(DEPS)
#t_eoESOps_LDFLAGS = -lm
#t_eoESOps_LDADD = $(LDADDS)
###############################################################################
t_eoESFull_SOURCES = t-eoESFull.cpp real_value.h
t_eoESFull_DEPENDENCIES = $(DEPS)
t_eoESFull_LDFLAGS = -lm
t_eoESFull_LDADD = $(LDADDS)
###############################################################################
t_eoNonUniform_SOURCES = t-eoNonUniform.cpp
t_eoNonUniform_DEPENDENCIES = $(DEPS)
t_eoNonUniform_LDFLAGS = -lm
t_eoNonUniform_LDADD = $(LDADDS)
###############################################################################
t_eoUniform_SOURCES = t-eoUniform.cpp
t_eoUniform_DEPENDENCIES = $(DEPS)
t_eoUniform_LDFLAGS = -lm
t_eoUniform_LDADD = $(LDADDS)
###############################################################################
t_eoRandom_SOURCES = t-eoRandom.cpp
t_eoRandom_DEPENDENCIES = $(DEPS)
t_eoRandom_LDFLAGS = -lm
t_eoRandom_LDADD = $(LDADDS)
###############################################################################
t_eogeneration_SOURCES = t-eogeneration.cpp
t_eogeneration_DEPENDENCIES = $(DEPS)
t_eogeneration_LDFLAGS = -lm
t_eogeneration_LDADD = $(LDADDS)
###############################################################################
t_eoEasyEA_SOURCES = t-eoEasyEA.cpp binary_value.h
t_eoEasyEA_DEPENDENCIES = $(DEPS)
t_eoEasyEA_LDFLAGS = -lm
t_eoEasyEA_LDADD = $(LDADDS)
###############################################################################
t_eobreeder_SOURCES = t-eobreeder.cpp binary_value.h
t_eobreeder_DEPENDENCIES = $(DEPS)
t_eobreeder_LDFLAGS = -lm
t_eobreeder_LDADD = $(LDADDS)
###############################################################################
t_eoinclusion_SOURCES = t-eoinclusion.cpp
t_eoinclusion_DEPENDENCIES = $(DEPS)
t_eoinclusion_LDFLAGS = -lm
t_eoinclusion_LDADD = $(LDADDS)
###############################################################################
t_eoinsertion_SOURCES = t-eoinsertion.cpp
t_eoinsertion_DEPENDENCIES = $(DEPS)
t_eoinsertion_LDFLAGS = -lm
t_eoinsertion_LDADD = $(LDADDS)
###############################################################################
t_eo_SOURCES = t-eo.cpp
t_eo_DEPENDENCIES = $(DEPS)
t_eo_LDADD = $(LDADDS)
###############################################################################
t_eofitness_SOURCES = t-eofitness.cpp
t_eofitness_DEPENDENCIES = $(DEPS)
t_eofitness_LDADD = $(LDADDS)
###############################################################################
t_eoproblem_SOURCES = t-eoproblem.cpp
t_eoproblem_LDFLAGS = -lm
###############################################################################
t_eobin_SOURCES = t-eobin.cpp
t_eobin_DEPENDENCIES = $(DEPS)
t_eobin_LDADD = $(LDADDS)
###############################################################################
t_eolottery_SOURCES = t-eolottery.cpp
t_eolottery_DEPENDENCIES = $(DEPS)
t_eolottery_LDFLAGS = -lm
t_eolottery_LDADD = $(LDADDS)
###############################################################################
t_eo2dVector_SOURCES = t-eo2dVector.cc
t_eo2dVector_DEPENDENCIES = $(DEPS)
t_eo2dVector_LDFLAGS = -lm
t_eo2dVector_LDADD = $(LDADDS)
###############################################################################
t_eoStateAndParser_SOURCES = t-eoStateAndParser.cpp
t_eoStateAndParser_DEPENDENCIES = $(DEPS)
t_eoStateAndParser_LDFLAGS = -lm
t_eoStateAndParser_LDADD = $(LDADDS)
###############################################################################
t_eoCheckpointing_SOURCES = t-eoCheckpointing.cpp
t_eoCheckpointing_DEPENDENCIES = $(DEPS)
t_eoCheckpointing_LDFLAGS = -lm
t_eoCheckpointing_LDADD = $(LDADDS)
###############################################################################
t_eoExternalEO_SOURCES = t-eoExternalEO.cpp
t_eoExternalEO_DEPENDENCIES = $(DEPS)
t_eoExternalEO_LDFLAGS = -lm
t_eoExternalEO_LDADD = $(LDADDS)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
PROGRAMS = $(noinst_PROGRAMS)
DEFS = @DEFS@ -I. -I$(srcdir)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
t_eobreeder_OBJECTS = t-eobreeder.o
t_eoinclusion_OBJECTS = t-eoinclusion.o
t_eoinsertion_OBJECTS = t-eoinsertion.o
t_eo_OBJECTS = t-eo.o
t_eo_LDFLAGS =
t_eofitness_OBJECTS = t-eofitness.o
t_eofitness_LDFLAGS =
t_eoproblem_OBJECTS = t-eoproblem.o
t_eoproblem_LDADD = $(LDADD)
t_eoproblem_DEPENDENCIES =
t_eobin_OBJECTS = t-eobin.o
t_eobin_LDFLAGS =
t_eolottery_OBJECTS = t-eolottery.o
t_eo2dVector_OBJECTS = t-eo2dVector.o
t_eogeneration_OBJECTS = t-eogeneration.o
t_eoEasyEA_OBJECTS = t-eoEasyEA.o
t_eoNonUniform_OBJECTS = t-eoNonUniform.o
t_eoUniform_OBJECTS = t-eoUniform.o
t_eoRandom_OBJECTS = t-eoRandom.o
t_eoStateAndParser_OBJECTS = t-eoStateAndParser.o
t_eoAtomOps_OBJECTS = t-eoAtomOps.o
t_selectOne_OBJECTS = t-selectOne.o
t_eoGOpSel_OBJECTS = t-eoGOpSel.o
t_eoVector_OBJECTS = t-eoVector.o
t_eoCheckpointing_OBJECTS = t-eoCheckpointing.o
t_eoExternalEO_OBJECTS = t-eoExternalEO.o
t_eoESFull_OBJECTS = t-eoESFull.o
CXXFLAGS = @CXXFLAGS@
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
DEP_FILES = .deps/t-eo.P .deps/t-eo2dVector.P .deps/t-eoAtomOps.P \
.deps/t-eoCheckpointing.P .deps/t-eoESFull.P .deps/t-eoEasyEA.P \
.deps/t-eoExternalEO.P .deps/t-eoGOpSel.P .deps/t-eoNonUniform.P \
.deps/t-eoRandom.P .deps/t-eoStateAndParser.P .deps/t-eoUniform.P \
.deps/t-eoVector.P .deps/t-eobin.P .deps/t-eobreeder.P \
.deps/t-eofitness.P .deps/t-eogeneration.P .deps/t-eoinclusion.P \
.deps/t-eoinsertion.P .deps/t-eolottery.P .deps/t-eoproblem.P \
.deps/t-selectOne.P
SOURCES = $(t_eobreeder_SOURCES) $(t_eoinclusion_SOURCES) $(t_eoinsertion_SOURCES) $(t_eo_SOURCES) $(t_eofitness_SOURCES) $(t_eoproblem_SOURCES) $(t_eobin_SOURCES) $(t_eolottery_SOURCES) $(t_eo2dVector_SOURCES) $(t_eogeneration_SOURCES) $(t_eoEasyEA_SOURCES) $(t_eoNonUniform_SOURCES) $(t_eoUniform_SOURCES) $(t_eoRandom_SOURCES) $(t_eoStateAndParser_SOURCES) $(t_eoAtomOps_SOURCES) $(t_selectOne_SOURCES) $(t_eoGOpSel_SOURCES) $(t_eoVector_SOURCES) $(t_eoCheckpointing_SOURCES) $(t_eoExternalEO_SOURCES) $(t_eoESFull_SOURCES)
OBJECTS = $(t_eobreeder_OBJECTS) $(t_eoinclusion_OBJECTS) $(t_eoinsertion_OBJECTS) $(t_eo_OBJECTS) $(t_eofitness_OBJECTS) $(t_eoproblem_OBJECTS) $(t_eobin_OBJECTS) $(t_eolottery_OBJECTS) $(t_eo2dVector_OBJECTS) $(t_eogeneration_OBJECTS) $(t_eoEasyEA_OBJECTS) $(t_eoNonUniform_OBJECTS) $(t_eoUniform_OBJECTS) $(t_eoRandom_OBJECTS) $(t_eoStateAndParser_OBJECTS) $(t_eoAtomOps_OBJECTS) $(t_selectOne_OBJECTS) $(t_eoGOpSel_OBJECTS) $(t_eoVector_OBJECTS) $(t_eoCheckpointing_OBJECTS) $(t_eoExternalEO_OBJECTS) $(t_eoESFull_OBJECTS)
all: all-redirect
.SUFFIXES:
.SUFFIXES: .S .c .cc .cpp .lo .o .s
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOMAKE) --gnu test/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
mostlyclean-noinstPROGRAMS:
clean-noinstPROGRAMS:
-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
distclean-noinstPROGRAMS:
maintainer-clean-noinstPROGRAMS:
.s.o:
$(COMPILE) -c $<
.S.o:
$(COMPILE) -c $<
mostlyclean-compile:
-rm -f *.o core *.core
clean-compile:
distclean-compile:
-rm -f *.tab.c
maintainer-clean-compile:
.s.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
.S.lo:
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
maintainer-clean-libtool:
t-eobreeder: $(t_eobreeder_OBJECTS) $(t_eobreeder_DEPENDENCIES)
@rm -f t-eobreeder
$(CXXLINK) $(t_eobreeder_LDFLAGS) $(t_eobreeder_OBJECTS) $(t_eobreeder_LDADD) $(LIBS)
t-eoinclusion: $(t_eoinclusion_OBJECTS) $(t_eoinclusion_DEPENDENCIES)
@rm -f t-eoinclusion
$(CXXLINK) $(t_eoinclusion_LDFLAGS) $(t_eoinclusion_OBJECTS) $(t_eoinclusion_LDADD) $(LIBS)
t-eoinsertion: $(t_eoinsertion_OBJECTS) $(t_eoinsertion_DEPENDENCIES)
@rm -f t-eoinsertion
$(CXXLINK) $(t_eoinsertion_LDFLAGS) $(t_eoinsertion_OBJECTS) $(t_eoinsertion_LDADD) $(LIBS)
t-eo: $(t_eo_OBJECTS) $(t_eo_DEPENDENCIES)
@rm -f t-eo
$(CXXLINK) $(t_eo_LDFLAGS) $(t_eo_OBJECTS) $(t_eo_LDADD) $(LIBS)
t-eofitness: $(t_eofitness_OBJECTS) $(t_eofitness_DEPENDENCIES)
@rm -f t-eofitness
$(CXXLINK) $(t_eofitness_LDFLAGS) $(t_eofitness_OBJECTS) $(t_eofitness_LDADD) $(LIBS)
t-eoproblem: $(t_eoproblem_OBJECTS) $(t_eoproblem_DEPENDENCIES)
@rm -f t-eoproblem
$(CXXLINK) $(t_eoproblem_LDFLAGS) $(t_eoproblem_OBJECTS) $(t_eoproblem_LDADD) $(LIBS)
t-eobin: $(t_eobin_OBJECTS) $(t_eobin_DEPENDENCIES)
@rm -f t-eobin
$(CXXLINK) $(t_eobin_LDFLAGS) $(t_eobin_OBJECTS) $(t_eobin_LDADD) $(LIBS)
t-eolottery: $(t_eolottery_OBJECTS) $(t_eolottery_DEPENDENCIES)
@rm -f t-eolottery
$(CXXLINK) $(t_eolottery_LDFLAGS) $(t_eolottery_OBJECTS) $(t_eolottery_LDADD) $(LIBS)
t-eo2dVector: $(t_eo2dVector_OBJECTS) $(t_eo2dVector_DEPENDENCIES)
@rm -f t-eo2dVector
$(CXXLINK) $(t_eo2dVector_LDFLAGS) $(t_eo2dVector_OBJECTS) $(t_eo2dVector_LDADD) $(LIBS)
t-eogeneration: $(t_eogeneration_OBJECTS) $(t_eogeneration_DEPENDENCIES)
@rm -f t-eogeneration
$(CXXLINK) $(t_eogeneration_LDFLAGS) $(t_eogeneration_OBJECTS) $(t_eogeneration_LDADD) $(LIBS)
t-eoEasyEA: $(t_eoEasyEA_OBJECTS) $(t_eoEasyEA_DEPENDENCIES)
@rm -f t-eoEasyEA
$(CXXLINK) $(t_eoEasyEA_LDFLAGS) $(t_eoEasyEA_OBJECTS) $(t_eoEasyEA_LDADD) $(LIBS)
t-eoNonUniform: $(t_eoNonUniform_OBJECTS) $(t_eoNonUniform_DEPENDENCIES)
@rm -f t-eoNonUniform
$(CXXLINK) $(t_eoNonUniform_LDFLAGS) $(t_eoNonUniform_OBJECTS) $(t_eoNonUniform_LDADD) $(LIBS)
t-eoUniform: $(t_eoUniform_OBJECTS) $(t_eoUniform_DEPENDENCIES)
@rm -f t-eoUniform
$(CXXLINK) $(t_eoUniform_LDFLAGS) $(t_eoUniform_OBJECTS) $(t_eoUniform_LDADD) $(LIBS)
t-eoRandom: $(t_eoRandom_OBJECTS) $(t_eoRandom_DEPENDENCIES)
@rm -f t-eoRandom
$(CXXLINK) $(t_eoRandom_LDFLAGS) $(t_eoRandom_OBJECTS) $(t_eoRandom_LDADD) $(LIBS)
t-eoStateAndParser: $(t_eoStateAndParser_OBJECTS) $(t_eoStateAndParser_DEPENDENCIES)
@rm -f t-eoStateAndParser
$(CXXLINK) $(t_eoStateAndParser_LDFLAGS) $(t_eoStateAndParser_OBJECTS) $(t_eoStateAndParser_LDADD) $(LIBS)
t-eoAtomOps: $(t_eoAtomOps_OBJECTS) $(t_eoAtomOps_DEPENDENCIES)
@rm -f t-eoAtomOps
$(CXXLINK) $(t_eoAtomOps_LDFLAGS) $(t_eoAtomOps_OBJECTS) $(t_eoAtomOps_LDADD) $(LIBS)
t-selectOne: $(t_selectOne_OBJECTS) $(t_selectOne_DEPENDENCIES)
@rm -f t-selectOne
$(CXXLINK) $(t_selectOne_LDFLAGS) $(t_selectOne_OBJECTS) $(t_selectOne_LDADD) $(LIBS)
t-eoGOpSel: $(t_eoGOpSel_OBJECTS) $(t_eoGOpSel_DEPENDENCIES)
@rm -f t-eoGOpSel
$(CXXLINK) $(t_eoGOpSel_LDFLAGS) $(t_eoGOpSel_OBJECTS) $(t_eoGOpSel_LDADD) $(LIBS)
t-eoVector: $(t_eoVector_OBJECTS) $(t_eoVector_DEPENDENCIES)
@rm -f t-eoVector
$(CXXLINK) $(t_eoVector_LDFLAGS) $(t_eoVector_OBJECTS) $(t_eoVector_LDADD) $(LIBS)
t-eoCheckpointing: $(t_eoCheckpointing_OBJECTS) $(t_eoCheckpointing_DEPENDENCIES)
@rm -f t-eoCheckpointing
$(CXXLINK) $(t_eoCheckpointing_LDFLAGS) $(t_eoCheckpointing_OBJECTS) $(t_eoCheckpointing_LDADD) $(LIBS)
t-eoExternalEO: $(t_eoExternalEO_OBJECTS) $(t_eoExternalEO_DEPENDENCIES)
@rm -f t-eoExternalEO
$(CXXLINK) $(t_eoExternalEO_LDFLAGS) $(t_eoExternalEO_OBJECTS) $(t_eoExternalEO_LDADD) $(LIBS)
t-eoESFull: $(t_eoESFull_OBJECTS) $(t_eoESFull_DEPENDENCIES)
@rm -f t-eoESFull
$(CXXLINK) $(t_eoESFull_LDFLAGS) $(t_eoESFull_OBJECTS) $(t_eoESFull_LDADD) $(LIBS)
.cc.o:
$(CXXCOMPILE) -c $<
.cc.lo:
$(LTCXXCOMPILE) -c $<
.cpp.o:
$(CXXCOMPILE) -c $<
.cpp.lo:
$(LTCXXCOMPILE) -c $<
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
here=`pwd` && cd $(srcdir) \
&& mkid -f$$here/ID $$unique $(LISP)
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS)'; \
unique=`for i in $$list; do echo $$i; done | \
awk ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
mostlyclean-tags:
clean-tags:
distclean-tags:
-rm -f TAGS ID
maintainer-clean-tags:
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
subdir = test
distdir: $(DISTFILES)
here=`cd $(top_builddir) && pwd`; \
top_distdir=`cd $(top_distdir) && pwd`; \
distdir=`cd $(distdir) && pwd`; \
cd $(top_srcdir) \
&& $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu test/Makefile
@for file in $(DISTFILES); do \
d=$(srcdir); \
if test -d $$d/$$file; then \
cp -pr $$/$$file $(distdir)/$$file; \
else \
test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
-include $(DEP_FILES)
mostlyclean-depend:
clean-depend:
distclean-depend:
-rm -rf .deps
maintainer-clean-depend:
%.o: %.c
@echo '$(COMPILE) -c $<'; \
$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.c
@echo '$(LTCOMPILE) -c $<'; \
$(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
%.o: %.cc
@echo '$(CXXCOMPILE) -c $<'; \
$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.cc
@echo '$(LTCXXCOMPILE) -c $<'; \
$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
%.o: %.cpp
@echo '$(CXXCOMPILE) -c $<'; \
$(CXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-cp .deps/$(*F).pp .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm .deps/$(*F).pp
%.lo: %.cpp
@echo '$(LTCXXCOMPILE) -c $<'; \
$(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
@-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
< .deps/$(*F).pp > .deps/$(*F).P; \
tr ' ' '\012' < .deps/$(*F).pp \
| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
>> .deps/$(*F).P; \
rm -f .deps/$(*F).pp
info-am:
info: info-am
dvi-am:
dvi: dvi-am
check-am: all-am
check: check-am
installcheck-am:
installcheck: installcheck-am
install-exec-am:
install-exec: install-exec-am
install-data-am:
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
uninstall-am:
uninstall: uninstall-am
all-am: Makefile $(PROGRAMS)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
mostlyclean-generic:
clean-generic:
distclean-generic:
-rm -f Makefile $(CONFIG_CLEAN_FILES)
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
maintainer-clean-generic:
mostlyclean-am: mostlyclean-noinstPROGRAMS mostlyclean-compile \
mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
mostlyclean-generic
mostlyclean: mostlyclean-am
clean-am: clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
clean-depend clean-generic mostlyclean-am
clean: clean-am
distclean-am: distclean-noinstPROGRAMS distclean-compile \
distclean-libtool distclean-tags distclean-depend \
distclean-generic clean-am
-rm -f libtool
distclean: distclean-am
maintainer-clean-am: maintainer-clean-noinstPROGRAMS \
maintainer-clean-compile maintainer-clean-libtool \
maintainer-clean-tags maintainer-clean-depend \
maintainer-clean-generic distclean-am
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
maintainer-clean: maintainer-clean-am
.PHONY: mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
mostlyclean-compile distclean-compile clean-compile \
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
distclean-tags clean-tags maintainer-clean-tags distdir \
mostlyclean-depend distclean-depend clean-depend \
maintainer-clean-depend info-am info dvi-am dvi check check-am \
installcheck-am installcheck install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
###############################################################################
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View file

@ -1,199 +0,0 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.17-21mdk i686) [Netscape]">
<title>Tutorial EO</title>
</head>
<body text="#000000" link="#0000EF" vlink="#51188E" alink="#FF0000" background="beige009.jpg">
<a href="eoTopDown.html">Algorithm-Based</a> - <a href="eoBottomUp.html">Component-Based</a>
- <a href="eoProgramming.html">Programming hints</a> - <b><font face="Arial,Helvetica"><font size=+1><a href="../../doc/html/index.html">EO
documentation</a></font></font></b>
<hr WIDTH="100%">
<center><b><font color="#FF0000">Welcome to EO, the Evolving Objects library,
and to</font></b>
<b><font color="#FF0000"></font></b>&nbsp;
<h1>
<font color="#FF0000">EO Tutorial</font></h1></center>
<center><font color="#FF0000">Version 0.92 - Jan. 5 2001</font></center>
<p>The short term idea of this tutorial is to help you <font color="#FF6600">build
your own Evolutionary Algorithms</font> using EO - while the long term
idea is that you will be able to contribute to EO, and ultimately write
<font color="#FF6600">our</font>
EAs :-)
<h3>
<hr WIDTH="100%"><b><font color="#000099"><font size=+2>About this tutorial</font></font></b></h3>
This tutorial can be used in 2 different ways: algorithm-based and component-based.
<ul>
<li>
<a href="eoTopDown.html">Algorithm-Based</a> means you start from a <font color="#FF6600">very
simple, ready-to-run algorithm,</font> and gradually modify it, making
it both more powerful and more complex.</li>
<li>
<a href="eoBottomUp.html">Component-Based</a> means you start by examining
the
<font color="#FF6600">components of an EA one by one</font>, down to
the level of complexity you feel comfortable with, and then build the whole
algorithm using those components you need (or the one you are mastering).
Such approach might be viewed as going through a simplified user guide,
too.</li>
</ul>
However, it is <b><font color="#FF6600">strongly recommended</font></b>
that you take some time on the first lesson of the Algorithm-Based approach
to get familiar with the basic concepts that are used throughout EO. Anyway,
as of today, December 19, the Component-Based is only very sparsely written
:-)
<p>
<hr WIDTH="100%"><b><font color="#000099"><font size=+2>Links and Related
documents</font></font></b>
<ul>
<li>
There are of course a few (very few) <a href="eoProgramming.html">programming
hints</a> that you should know.</li>
<li>
THe <a href="../../doc/html/index.html">EO documentation </a>- automatically
generated from the comments in the code - is very helpful to get an idea
of the <b><font color="#FF6600">inheritance diagrams</font></b> of EO classes,
and to quickly reach some specific part of the code.</li>
<br>The top page of each class documentation is for instance the inheritance
diagram of the class, and you'll learn a lot by simply looking at it.
<li>
And, last but not least, we assume you know approximately that an Evolutionary
Algorithm looks like this, but otherwise you can try this <a href="eoIntroEA.html">very
brief introduction</a> (not written yet, Jan. 2001, sorry).</li>
</ul>
<p><br>
<hr WIDTH="100%"><b><font color="#000099"><font size=+2>Colors and navigation:</font></font></b>
<p>You will see this diagram in quite many places, as for instance at the
top of all examples - usually it will be clickable and will help you navigate
among the different parts of an EO program. See the <a href="eoIntroEA.html">brief
introduction to Evolutionary Computation</a> for a detailed explanation.
<center>
<p><img SRC="EA_tutorial.jpg" ></center>
<a NAME="colors"></a>
<p>But in the text itself, <b><font color="#FF6600">colors are important</font></b>,
as they will be used throughout this tutorial to clearly mark which part
of the algorithm we are discussing. So please keep in mind that, whereas
<b><font color="#FF6600">orange
is for emphasis</font></b>,
<ul>
<li>
<b><font color="#999900">Yellowish</font></b> is for <b><font color="#999900">representation</font></b>,
i.e. the choice of the <b><font color="#999900">genotype</font></b></li>
<li>
<font color="#CC33CC">Magenta</font> is for the <font color="#CC33CC">stochastic
operators</font> that are <b><font color="#999900">representation-dependent</font>,</b>
i.e. <font color="#CC33CC">initialisation</font> and variation operators
(<font color="#CC33CC">crossover</font>, <font color="#CC33CC">mutation</font>
and the like).</li>
<li>
<font color="#009900">Green</font> is for the implementation of <font color="#009900">Darwinism</font>,
i.e. the way the individuals are <font color="#009900">selected</font>
for reproduction and <font color="#009900">survive.</font></li>
<li>
<font color="#CC0000">Red</font> is for evaluation, i.e. the computation
of the <font color="#CC0000">fitness</font> of all individuals</li>
<li>
<font color="#3366FF">Blue</font> is for interactions of the user and the
program, as for instance choice of <font color="#3366FF">stopping criterion</font>,
on-line display of nice <font color="#3366FF">statistics</font> or initial
<font color="#3366FF">choice
of all program parameters</font>.</li>
<li>
<font color="#993300">Brown</font> is for everything that is NOT part of
any of the above, i.e. random number generator, or basic C++/STL syntax
.</li>
<li>
Note that <font color="#FF6666">pink</font> will be used to describe the
syntax of compile orders (i.e. at the operating system level, see e.g.
<a href="#install">below</a>).</li>
<li>
<b><font face="Arial,Helvetica"><font size=+1>Last, but not least, all
links into EO documentation will use the Helvetica typeface, like this
line you are now reading.</font></font></b></li>
</ul>
<hr WIDTH="100%"><b><font color="#000099"><font size=+1>This tutorial is
not</font></font></b>
<ul>
<li>
A course on Evolutionary Computation. You can find such things on the Internet,
maybe you can start <a href="http://www.wi.leidenuniv.nl/~gusz/Flying_Circus/">here.</a></li>
<li>
An interface that would allow you to build your Evolutionary Programs by
a few clicks; such a thing does exist, is called <a href="http://www-rocq.inria.fr/EASEA/">EASEA</a>,
and is complementary to this tutorial as it helps the user to build some
simple EO programs from simple description. But there are things that EASEA
cannot do, and you will have to do it yourself and will need to increase
your knowledge about EO for that - hence this tutorial.</li>
<li>
A coffee machine - though you might want to spend some time here when you're
tired of everything else, to improve your knowledge of EO slowly and gradually
rather than when you have something urgent to code :-)</li>
</ul>
<hr WIDTH="100%"><a NAME="install"></a><b><font color="#000099"><font size=+1>Before
you start</font></font></b>
<p>You should of course have downloaded and installed the whole <a href="http://www.sourceforge.net/projects/eodev">EO
library</a> (how did you get this file if not???).
<br>So we'll assume that you are now in the Tutorial directory, and that
your prompt looks something like
<p><b><tt><font color="#FF6666">(myname@myhost) EOdir/Tutorial %</font></tt></b>
<p>so you should now type in
<p><b><tt><font color="#FF6666">make lesson1</font></tt></b>
<p>and see something like
<p><font face="Courier New,Courier"><font color="#000000">(myname@myhost)
EOdir/Tutorial % make lesson1</font></font>
<br><b><tt><font color="#FF6666">c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\"
-I. -I../../src -Wall -g -c FirstBitGA.cpp</font></tt></b>
<br><b><tt><font color="#FF6666">c++ -Wall -g -o FirstBitGA FirstBitGA.o
../../src/libeo.a ../../src/utils/libeoutils.a</font></tt></b>
<br><b><tt><font color="#FF6666">c++ -DPACKAGE=\"eo\" -DVERSION=\"0.9.1\"
-I. -I../../src -Wall -g -c FirstRealGA.cpp</font></tt></b>
<br><b><tt><font color="#FF6666">c++ -Wall -g -o FirstRealGA FirstRealGA.o
../../src/libeo.a ../../src/utils/libeoutils.a</font></tt></b>
<p>and two now executable files should have appeared in the subdirectory
Lesson1, namely <b><tt><font color="#990000">FirstBitGA</font></tt></b>
and <b><tt><font color="#990000">FirstRealGA</font></tt></b> (see <a href="eoLesson1.html">First
lesson</a> to know more about these two ready-to-run programs). If this
doesn't work, please go back to the main EO directory and run the installation
program.
<p>You should also test that you can access the EO documentation in the
menu line below: you might not need to go there immediately, but just in
case you make rapid progress ... This menu bar should be on all pages of
this tutorial, allowing you to navigate easily.
<p>Last, but not least: EO is improving only&nbsp; from the good will of
contributors. This is also true for this tutorial: If you find anything
that you think could be improved, you are welcome to <a href="mailto:Marc.Schoenauer@polytechnique.fr">e-mail
me</a>.
<center>
<p><font color="#000099"><font size=+2>Enjoy!
<hr WIDTH="100%"></font></font><a href="eoTopDown.html">Algorithm-Based</a>
- <a href="eoBottomUp.html">Component-Based</a> - <a href="eoProgramming.html">Programming
hints</a> -<b><font size=+1> <font face="Arial,Helvetica"><a href="../../doc/html/index.html">EO
documentation</a></font></font></b></center>
<hr>
<address>
<a href="mailto:Marc.Schoenauer@polytechnique.fr">Marc Schoenauer</a></address>
<br><!-- Created: Mon Oct 30 07:27:13 CET 2000 --><!-- hhmts start -->Last
modified: Fri Nov 28 2000&nbsp;<!-- hhmts end -->
</body>
</html>