0

I am currently implementing a HyperNEAT-like algorithm in C language, but I am facing two crucial aspects of the algorithm that I am not able to implement properly. I have been delving into original source code for NEAT and HyperNEAT algorithms with no success. These issues are referred related to NEAT/CPPN recurrences due to inner feedback loops.

First issue

What is the proper computation sequence in NEAT/CPPNs with feedback loops? I provide an example of recurrence in the topology in next figure:

Feedback loops in topology

At firsts computation, feedback links do not hold any result from former computations. Should I perform the first computation with empty links?

Second issue

Imagine I want to produce an image by passing pixels coordinates to NEAT as inputs. As far as I know, the NEAT model should receive one input sample per pixel. Should I keep the intermediate results of the topology from former pixels? If the NEAT is feedforward this issue has no effect, but if it presents feedback loops the results change. (The same issue applies for CPPN in HyperNEAT when indirect encoding the substrates).

I am aware of these questions are also related with graph theory, but I want to know how they are performed in NEAT algorithms.

Thanks!

Community
  • 1
  • 1
  • Why are you doing this to yourself would be my first question :_) There are great implementations of NEAT and HyperNEAT out there! Regarding your first question: I seem to remember the network starts "clean" and then information is propagated x times through. – Pablo Jun 10 '20 at 13:15
  • I was not able to find any suitable implementation of HyperNEAT in C. I need it in C and not C++, that's why I am doing it from scratch :S Thanks for your answer :D – Alberto Garcia Jun 11 '20 at 14:10
  • That sounds hard. Is it not possible to write an interface in C so that you can use the C++ version? (I personally worked with the C# version, I would probably look for a Python version today.) – Pablo Jun 11 '20 at 15:37

0 Answers0