This project implements a neural network in C++ to simulate various electronic circuits, including XOR, NAND, MUX, DEMUX, ADDER, and FLIP FLOP. The neural network is designed from scratch and provides a foundation for simulating different electronics circuits. This README provides an overview of the project and explains how to use it.
- Introduction
- Features
- Prerequisites
- Getting Started
- Usage
- Configuration
- Saving Results
- Contributing
- License
- Contact
This project is a neural network implemented in C++ from scratch. It simulates various electronic circuits, including XOR, NAND, MUX, DEMUX, ADDER, and FLIP FLOP, using artificial neural networks. The purpose of this project is to gain a deeper understanding of neural networks and their application in simulating electronic circuits.
- Simulates electronic circuits using a custom neural network implementation.
- Supports various electronic circuit simulations, including XOR, NAND, MUX, DEMUX, ADDER, and FLIP FLOP.
- Provides the flexibility to define and test different topologies for neural networks.
- Saves simulation results to text files for analysis and evaluation.
To run this project, you need:
- A C++ compiler (e.g., g++)
- CMake (for building)
- A basic understanding of neural networks and electronic circuits
- Clone this repository to your local machine.
- Build the project using CMake.
- Run the compiled executable to simulate electronic circuits using the neural network.
You can create test files for various electronic circuits. Example Python scripts are provided for creating test files:
- XOR Test File:
XOR.txt
- Flip-Flop Test File:
FlipFlop.txt
Modify these scripts to generate test files for other electronic circuits if needed.
-
Compile and run the C++ program, providing the test file as input. For example:
./NeuralNet test/XOR.txt
-
The program will read the test file, simulate the electronic circuit using the neural network, and save the results in a text file.
-
The simulation results will include input values, output values, and error metrics.
You can configure the neural network topology, learning rate (eta), momentum (alpha), and other parameters in the C++ source code. The provided code is well-documented to guide you through the configuration process.
The program saves simulation results in text files in the "results" folder. You can change the filename and location in the C++ code to match your requirements.
If you wish to contribute to this project, feel free to fork the repository, make your changes, and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or feedback, please contact [JideOyelayo1@Gmail.com].