I used to work with 'traditional' layered neural network and I evaluated the output given certain inputs by processing layer-by-layer.
With NEAT, a neural network may assume any topology and they are no longer layered, so how to evaluate the output? I understand time-steps must be taken into account, but how?
Should I keep the inputs until all hidden neurons are processed and output is produced? Should I wait for output to stabilize?


The networks in NEAT are still implicitly layered. There are neurons that need to be evaluated before other neurons can be evaluated and so this gives us our layers.

If you don't know the structure of your network then you can use Kahn's algorithm to find an arbitrary (by arbitrary I just mean one of the possible partially ordered sets) ordering of the nodes in the network. Then you evaluate your neurons in the order given to you by Kahn's algorithm. This works because the ordering of your network (which is a directed acyclic graph) is a partially ordered set.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.