Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Code for "A Comparison of a Communication Strategies in Cooperative Learning," which won best paper at GECCO 2012
C++ Shell
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore
README.md
agent_info.h
cases.sh
combiner.sh
drawhelper.cpp
drawhelper.h
environment.cpp
environment.h
globals.cpp
globals.h
graph.sh
indiv.cpp
indiv.h
indiv_base.cpp
indiv_base.h
indiv_hybrid.cpp
indiv_hybrid.h
indiv_nn.cpp
indiv_nn.h
knockout_tests.sh
main.cpp
node.cpp
node.h
playback.cpp
playback.h
playback.ui
pop.cpp
pop.h
qthyena.cpp
qthyena.h
qthyena.pro
qthyena.ui
run.sh
subdirs.sh
sync.sh
team.cpp
team.h
trials.sh
types.h
vect.cpp
vect.h
weightset.h
widget.cpp
widget.h

README.md

Evolved Hyena Communication

Code for "A Comparison of a Communication Strategies in Cooperative Learning" from GECCO 2012.

Build Requirements

Building

After Qt is installed, type qmake to create makefiles, followed by make to build. The executable will be called qthyena.

Alternatively, load qthyena.pro into Qt Creator and build/run from there. Both methods should work on Linux/Windows/OS X.

Configuring

Parameters for the evolutionary process and input/output settings are found in globals.h. Descriptions for many settings can be found there.

To enable the GUI, set GUI = true in globals.h.

Descriptions of node types in the vector trees are in types.h.

Input

Settings are set in in globals.h. The executable takes one argument that is used to give output files unique names--for example, an identification number.

Output

Each time the program is run, it will dump several output files into the directory it is run from.

Below, ID is the single command-line argument passed to the program or 1 otherwise.

  • bestteam_ID.txt - A project-specific serialization of the best team from the last generation. This can be loaded for retesting by setting RETEST_GIVEN in globals.h to the filename to load.
  • data_ID.txt - A CSV file (using spaces instead of commas) containing data collected at the end of each generation during evolution. Descriptions of each column of data can be found in pop.cpp in the save_data function.
  • final_ID.txt - A CSV file (using spaces instead of commas) containing data collected from a set of retests of the best team from the final generation. Data in each column is similar, but not identical to, data in data_ID.txt.
  • finalvideo_ID.txt - A project-specific file filled with coordinates of agents that can be read and displayed by the Playback feature seen in the program when GUI is true. These videos are of the retests of the best team from the final generation.
  • hyena_ID.gv - A graphviz file of the first hyena in the best team of last generation's tree. This may be good for visualizing what the vector trees look like.
  • seed_ID.txt - A project-specific file containing the seed used by Randomlib. May be useful to reproduce results exactly.
  • video_ID.txt - A project-specific file filled with coordinates of agents that can be read and displayed by the Playback feature seen in the program when GUI is true. These videos are collected during evolution and display the best team at a given generation.

"Video" Playback

To playback a recorded file, first take note of the filename. It will be in the form video_ID.txt or finalvideo_ID.txt as described in Output above.

Then, set GUI = true in globals.h and recompile. Run the program. When the GUI window opens, select "Play Recorded File" on the right. Select "Browse" and choose the file to play back.

Something went wrong with that request. Please try again.