Skip to content

Network Graph Visualization

Iaroslav Omelianenko edited this page Jan 3, 2022 · 9 revisions

With support for CytoscapeJS serialization format now it become possible for easy visualization of the produced Network graphs encoding the Phenotypes of the organisms.

XOR experiment

At each trial of the XOR experiment if winner was found the following files are saved into output directory:

  • the winner genome (xor_winner_genome_x-x)
  • the winner's phenotype serialized into CytoscapeJS format (xor_winner_genome_x-x.cyjs)
  • the winner's phenotype serialized into GraphViz DOT format (xor_winner_genome_x-x.dot)

Subsequently, the phenotype network serialized into CytoscapeJS format can be used to produce beautiful graph visualization as follows.

The XOR winner phenotype

The image above was created using Cytoscape App which can be freely downloaded and supports all major OS.

Current implementation allows you to serialize phenotype either using default goNEAT style or to provide your own style. For details, please refer to the documentation of the formats package.

The legend for the image above as following:

  • blue diamonds at the top is to represent two input nodes
  • yellow circle in the middle is to represent the bias node
  • green hexagons is to represent hidden nodes
  • magenta circle at the bottom is to represent the output node
  • the size of the node depends on number of edges connected with it

Single Pole-Balancing experiment

This experiment also saves winner's phenotype in CytoscapeJS format at each trial. Next, you can find visualization of the optimal single pole-balancer's phenotype.

The single pole-balancing winner phenotype

As you can see, the NEAT algorithm was able to find successful solver which doesn't even have any hidden node. The legend for the above image is the same as for XOR experiment. The meaning of the network nodes by identifiers can be found at single pole-balancing network graph description.

Doble Pole-Balancing experiment (Markovian)

Also, we have included visualization of the double pole-balancing experiment (Markovian version with known velocities).

The double pole-balancing winner phenotype

From the image above, you can see that phenotype of the successful double pole-balancing solver is more complex than in previous examples. You can find description of the input/output nodes at double pole-balancing experiment page. The visual presentation's legend is the same as in previous examples.