Skip to content

XEvolution GUI

Luis Guimbarda edited this page Feb 14, 2012 · 1 revision

While an XEvolution experiment is running, at the end of each epoch, the evolving population data is dumped to file (if an output directory is specified at the start of the experiment). The XEvolution GUI is run independently of the experiment, reading the population files and providing visualizations of various statistics. The GUI can also run alongside the running experiment; it will read population files as they are produced and dynamically update its visualizations.

Visualizations are presented in three tabs: Graphs, Generations, and Genealogy.

Graphs Tab

Figure: Screenshot of GUI following XOR experiment after 25 generations: Graphs tab.

The Graphs tab displays the progress of every numeric statistic attached to genomes in the population. Though all such graphs are prepared, only those for fitness are initially displayed. The graph visualizations are very simple. They are scaled to fit the data and can't be translated or zoomed, so care should be taken when comparing different statistics "by eye".

Figure: Under the "View" menu, graphs for each numeric statistic is listed, and can there be activated or deactivated.

Each graph plots the lowest, highest, and average value observed against the generation in which it was observed. By clicking on a particular generation in a particular graph, that generation is loading in the Generations tab, and the genomes are sorted by the statistic visualized by the graph (explained below).

Figure: The 19th generation has been highlighted in the fitness graph. Clicking on it will bring up that generation in the Generations tab.

Generations Tab

Figure: Screenshot of GUI following XOR experiment after 25 generations: Generations tab.

The Generations tab allows for "browsing" the populations. There are two panels of data. The population panel lets one select a generation from the read populations files. All the statistics for that population are given, such as age, size, most fit genome, etc. When a population is selected, all its genomes' data is loaded into the second panel.

Similar to the population panel, the genome panel lets one select a genome and have its statistics displayed. However, the genome panel has some additional features. First, the genomes can be sorted by any of their numeric statistics. Second a visualization of a simulation for that genome can be launched directly from this panel, assuming that the user has defined a delegate implementing the VisualizeData interface. Finally, whenever a genome is selected here, it is used to population the Genealogy tab.

Figure: Genomes listed in order by fitness.

Figure: Statistics by which genomes may be sorted.

Genealogy Tab

Figure: Screenshot of GUI following XOR experiment after 25 generations: Genealogy tab.

In the Genealogy tab, a list of a specific genome's ancestry is given, along with a visualization of the evolution progress of genomes on that line (again, if the VisualizeData delegate is implemented). The list includes the ids of the parent (or parents) of each genome, the operator used to produce it, and the generation when each genome was first encountered.

Note that the ancestry is only a list. In the cases where a genome is produced via crossover, only the first parent is included.

Clone this wiki locally