MABE2

Based on the answers to the project sign-ups (and some unforeseen complexities with the current software), final projects will fall into one of two categories: Logic16 or Visualization.

Logic 16

End Goal

An expanded version of the current Logic9 implementation in MABE2 which implements the tasks in Logic16 from MABE1.

Background

Logic16 asks organisms to take two inputs and perform 16 different logical operations, gaining points for each operation they correctly evaluate. They are as follows:

  • FALSE
  • A NOR B
  • !A AND B
  • !A
  • A AND !B
  • !B
  • A XOR B
  • A NAND B
  • A AND B
  • A NXOR B
  • B
  • !A OR B
  • A
  • A OR !B
  • A OR B
  • TRUE

For example, given the input (0, 1), the correct output would be the following for each.

  • FALSE: 0
  • A NOR B: 0
  • !A AND B: 1
  • !A: 1
  • A AND !B: 0
  • !B: 0
  • A XOR B: 1
  • A NAND B: 1
  • A AND B: 0
  • A NXOR B: 0
  • B:
  • !A OR B: 1
  • A: 0
  • A OR !B: 0
  • A OR B: 1
  • TRUE: 1

In MABE2, these are implemented as separate tasks, each derived from a base task, implemented in source/evaluate/callable/.

For Tuesday

Explore the logic 9 tasks and their associated settings file to try to understand the structure of Logic9, and identify which 7 tasks are missing from Logic16.

Then, try to implement at least one of these tasks, using the existing EvalTask files as a basis.

Visualization

End Goal

A Python or R script which can be quickly and automatically run on default MABE2 output data. Also, an expansion of what “default MABE2 output data” looks like.

Background

The default output format for MABE2 data is a CSV. Depending on which task you run, you will often get two files: fitness.csv and max_org.csv. The former contains summary results of the entire population, while the latter contains specific data for the maximally-performing organism at any particular stage. The columns tend to be the same across runs–but you should try a few tasks to verify this.

For Tuesday

Run one of the existing tasks (for example, NK.mabe) and visualize either fitness.csv or max_org.csv with generations as the x-axis, and your parameter(s) of choice on the y-axis.