The table to the right is an Adjacency Matrix. Click on the cells to toggle edges between nodes.
The purpose of EvoGraph is to answer the following question:
This is an NP-Complete problem. EvoGraph uses stochastic search algorithms in order to evolve a solution. Consider a graph instance to be the representation of a particular graph on a 2D plane or canvas, i.e. each node has both x and y coordinates. We measure the quality of a graph instance by calculating its fitness, a value that we seek to minimize.
Our fitness function is the sum of penalties induced by five independent criteria:
EvoGraph uses five stochastic search algorithms that you can select from. Each one has strengths and weaknesses. The first four work for all graphs:
The last algorithm is a an original approach known as the K-Graph Heuristic, and it is intended to be used with complete graphs in order to find its crossing number. This algorithm proved to be much more successful in finding optimal solutions of k-graphs than the previous four. Note: The K-Graph heuristic is not available in the web version.At any time when the algorithm is not running, you can drag and drop any node of the graph in order to try and "help" the process. The fitness of the shown graph instance will be recalculated and stored in memory. If the fitness of the graph is worse than it was before, the changes will likely be discarded after the next iteration.
The EvoGraph web demo uses HTML5 canvas tools and may not work on all browsers. Since it runs the optimization algorithms in your browser with javascript, the performance is limited by that of your machine. Therefore it may not be suitable for mobile devices and older computers.