# Introduction to Soft Computing

In computer science, **soft computing** is the use of inexact solutions to computationally hard tasks such as the solution of NP-complete problems, for which there is no known algorithm that can compute an exact solution in polynomial time. Soft computing differs from conventional (hard) computing in that, unlike hard computing, it is tolerant of imprecision, uncertainty, partial truth, and approximation. In effect, the role model for soft computing is the human mind.

The principal constituents of Soft Computing (SC) are Fuzzy Logic (FL), Neural Computing (NC), Evolutionary Computation (EC) Machine Learning (ML) and Probabilistic Reasoning (PR), with the latter subsuming belief networks, chaos theory and parts of learning theory.

Components of soft computing include:

- Neural networks (NN)
- Perceptron

- Support Vector Machines (SVM)
- Fuzzy logic (FL)
- Evolutionary computation (EC), including:
- Evolutionary algorithms
- Genetic algorithms
- Differential evolution

- Metaheuristic and Swarm Intelligence
- Ant colony optimization
- Particle swarm optimization
- Firefly algorithm
- Cuckoo search
- Flower pollination algorithm

- Evolutionary algorithms
- Ideas about probability including:
- Bayesian network

- Chaos theory