An open API service indexing awesome lists of open source software.

https://github.com/tavneetsingh01/soft-computing-lab-practicals

This Repository contains the lab Programs for On-Going Soft Computing Lab (CSP 3035) Summer 2025
https://github.com/tavneetsingh01/soft-computing-lab-practicals

adaline and-gate-implementation backpropogation cartesian-product csp-3035 fuzzy-logic laws-classical-set madaline max-min-composition max-product-composition or-gate-implementaion preceptron primitive-operations-classical-set soft-computing xor-gate

Last synced: about 1 month ago
JSON representation

This Repository contains the lab Programs for On-Going Soft Computing Lab (CSP 3035) Summer 2025

Awesome Lists containing this project

README

          

# This Repository contains the lab Programs for On-Going Soft Computing Lab (CSP 3035) Spring 2025


![C Version](https://img.shields.io/badge/C-99-blue)
![CMake Version](https://img.shields.io/badge/CMake-3.29-red)
## The following are the list of programs with their `.c` code files.


Program
Code File


Q1. Design and simulate the behaviour of AND Gate using Perceptron Network in C for bipolar inputs and targets.
Single Layer Preceptron For Bipolar AND Gate


Q2. Design and simulate the behaviour of OR Gate using Adaline Network in C for bipolar inputs and targets.
Adaline Network For OR Gate For Bipolar Inputs and Targets

Q3. Design and simulate the behaviour XOR Gate using Madaline network in C language for bipolar inputs and targets.
Madaline Network For XOR Gate For Bipolar Inputs and Targets


Additional Variant of Q3: Design and simulate the behaviour of XOR Gate using Madaline network in C language for bipolar inputs and Binary targets.
Madaline Network For XOR Gate For Bipolar Inputs and Binary Targets

Q4. Design and Simulate the Behaviour of XOR Gate Using Back-Propagation Network in c for Bipolar Inputs and Targets.
Back-Propagation Network For XOR Gate For Bipolar Inputs and Targets

Q5. Write a program in C to Implement the various primitive operations of classical sets.
Different primitive operations of classical sets.

Q6. Write a program in C to implement and verify various Laws associated with Classical sets.
Different Laws Associated with classical sets.

Q7. Write a program in C to perform various primitive operations on Fuzzy Sets with Dynamic Components.
Different Primitive operations on Fuzzy Sets.

Q8. Write a program in C to verify various Laws associated with Fuzzy Sets.
Laws Associated with Fuzzy Sets.

Q9. Write a program in C to perform Cartesian product over two given Fuzzy Sets.
Cartesian Product Of Two Fuzzy Sets.

Q10. Write a program in C to perform Max-Min Composition of Two Matrices obtained from Cartesian Product.
Max-Min Composition Of Cartesian Product Matrices.

Q11. Write a program in C to perform Max-Product Composition of Two Matrices obtained from Cartesian Product.
Max Product Composition Of Cartesian Product Matrices

Additional Combined Program: This Program includes combined program for Cartesian Product, Max-Min Composition and Max-Min Composition of two fuzzy sets.
Combined Cartesian Product Max Min Composition And Max Product Composition Of Fuzzy Sets

Q12. Write a program in C to maximize F(X) = X2 using Genetic Algorithm where 0 < x < 31
Genetic Algorithm Program


Extras: Visualize common Neural Network activation functions (Step, Signum, Binary/Bipolar Sigmoid, ReLU) and generate graph data. Compile and run, then plot from the generated 'activation_functions.txt'.

gcc Activation_functions_display.c -lm -o activation && ./activation

Use gnuplot (commands are printed by the program) or Python/matplotlib to view the curves.

Activation Functions Display

## Answer Keys for Lab Exam/Quiz

Below are the available answer key PDFs for different groups. Click a link to view or download the file.


File Name
Link


(Answer_Key)_Soft_Computing_Lab_Exam_Quiz_For_Group_BX.pdf
Open


(Answer_Key)_Soft_Computing_Lab_Exam_Quiz_For_Group_BY.pdf
Open


(Answer_Key)_Soft_Computing_Lab_Exam_Quiz_For_Group_AX.pdf
Open


(Answer_Key)_Soft_Computing_Lab_Exam_Quiz_For_Group_AY.pdf
Open

## Principles of Soft Computing Book

This repository also includes the ["Principles of Soft Computing"](/Soft_Computing_Book/Principles%20of%20soft%20computing.pdf) book, which serves as a reference for understanding the theoretical concepts behind the implemented programs. The book covers topics such as:

- Fuzzy Logic and Fuzzy Systems
- Neural Networks
- Genetic Algorithms
- Hybrid Systems
- Applications of Soft Computing

The book is a valuable resource for students and professionals working on Soft Computing concepts and their practical implementations.

## Environment Setup (Setting up GCC)

### Windows (x86_64)
1. Download the latest MinGW release from [MinGW Builds](https://github.com/niXman/mingw-builds-binaries/releases).
2. Choose the `x86_64-14.2.0-release-posix-seh-ucrt-rt_v12-rev2.7z` release for modern 64-bit systems (note: the version might change in the future, but `x86_64_posix-seh-ucrt` is the main identifier).
3. Extract the contents of the downloaded file to a directory of your choice.
4. Add the `bin` directory of the extracted MinGW to your system's `PATH` environment variable:
- Open the Start Menu, search for "Environment Variables", and select "Edit the system environment variables".
- In the System Properties window, click on the "Environment Variables" button.
- In the Environment Variables window, find the `Path` variable in the "System variables" section and click "Edit".
- Click "New" and add the path to the `bin` directory of the extracted MinGW (e.g., `C:\path\to\mingw\bin`).
- Click "OK" to close all windows.
5. Verify the installation by opening a command prompt and running `gcc --version`.

### Windows (ARM AArch64)
1. Download the latest ARM GCC toolchain from [Arm Developer](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm).
2. Choose the appropriate release for your system.
3. Extract the contents of the downloaded file to a directory of your choice.
4. Add the `bin` directory of the extracted toolchain to your system's `PATH` environment variable:
- Open the Start Menu, search for "Environment Variables", and select "Edit the system environment variables".
- In the System Properties window, click on the "Environment Variables" button.
- In the Environment Variables window, find the `Path` variable in the "System variables" section and click "Edit".
- Click "New" and add the path to the `bin` directory of the extracted toolchain (e.g., `C:\path\to\arm\bin`).
- Click "OK" to close all windows.
5. Verify the installation by opening a command prompt and running `arm-none-eabi-gcc --version`.

#### You can also use WSL2 for this:
1. Follow the instructions to set up WSL2 [here](https://docs.microsoft.com/en-us/windows/wsl/install).
2. Install a Linux distribution from the Microsoft Store (e.g., Ubuntu).
3. Open the WSL2 terminal and install GCC using the package manager:
- For Debian-based distributions (e.g., Ubuntu):
```sh
sudo apt update
sudo apt install build-essential
```
4. Verify the installation by running `gcc --version` in the WSL2 terminal.

#### Linux
1. Open a terminal.
2. Install GCC using the package manager:
- For Debian-based distributions (e.g., Ubuntu):
```sh
sudo apt update
sudo apt install build-essential
```
- For Red Hat-based distributions (e.g., Fedora):
```sh
sudo dnf install gcc
```
3. Verify the installation by running `gcc --version` in the terminal.

#### macOS
1. Open a terminal.
2. Install Xcode Command Line Tools by running:
```sh
xcode-select --install
```
3. Verify the installation by running `gcc --version` in the terminal.

### Open to Contributions
Contributions are welcomed to this project! If you would like to contribute, please follow these steps:
1. Fork the repository.
2. Create a new branch for your feature or bugfix.
3. Make your changes and commit them with clear and concise messages.
4. Push your changes to your forked repository.
5. Create a pull request to the main repository.

## License
This project is licensed under the MIT License - see the [LICENSE](/LICENSE) file for details.