Procedural Neural Network

Objective:
The aim of this research project was to leverage the combined strengths of neural networks and genetic algorithms to develop an AI system capable of controlling a flying ship. This system is designed to sense, recognize, and avoid randomly presented obstacles by continually learning and adapting its behavior.

Technologies Used:

  • Neural Networks: Implemented using custom C++ code to process sensory inputs and make navigational decisions.

  • Genetic Algorithms: Used for optimizing the neural network's architecture through an evolutionary process.

  • Simulation Environment: Developed to test and visualize the AI system's performance in real-time.

Role and Contributions:

  • Neural Network Design: Designed a neural network with 16 input nodes (representing distance measurements from raycasts), a hidden layer to process inputs, and 2 output nodes for controlling the ship's movement in the XY plane.

  • Genetic Algorithm Implementation: Implemented genetic algorithms to evolve the neural network architecture, including selection, crossover, and mutation processes.

  • Simulation and Evaluation: Developed a simulation environment to evaluate the performance of the AI system, using fitness scores to measure the success of obstacle avoidance.

Challenges and Solutions:

  • Network Complexity: Ensured the neural network could handle complex obstacle patterns by experimenting with different numbers of hidden nodes and analyzing their impact on performance.

  • Evolutionary Process: Developed efficient selection, crossover, and mutation mechanisms to maintain genetic diversity and avoid premature convergence.

  • Real-Time Performance: Optimized the simulation to run multiple ships in parallel, accelerating the evolutionary process and providing real-time feedback.

Outcome: The project successfully demonstrated the use of procedural AI neural evolution for adaptive control in a dynamic environment. The AI system was able to learn effective obstacle avoidance strategies, continually improving its performance through successive generations. The combination of neural networks and genetic algorithms proved to be a powerful approach for creating adaptive AI systems.