**Soft computing**is an approach to software design that is tolerant of imprecision, uncertainty, partial truth and approximations. This is useful for problem spaces that are complex and/or that involve significant uncertainty. The following are common types of soft computing.

## Fuzzy Logic

Fuzzy logic is a class of logic that allows for any probability as opposed to working with true and false.## Machine Learning

Software designed to learn by refining statistical models against data.## Heuristics

A class of algorithms based on fast approximations that aren't guaranteed to be precise or correct. For example, a search algorithm that uses a collection of ranking factors that can be computed quickly to guess at the best document for a search query.## Evolutionary Computation

A class of algorithms that solve problems with a process of trial and error. For example, a search algorithm that tries one heuristic but changes to another heuristic for a particular query if human's don't appear satisfied with the results.### Applications

Soft computing is useful a wide variety of applications:- fast moving situations such as a self-driving car.- complexities such as recognizing objects and people in images.- situations with no "correct" solution such as an AI that needs to make a joke.- areas that defy logic such as a natural language or emotion.- flexibility such as a virtual customer service agent who can change its mind based on a customer argument.Overview: Soft Computing | ||

Type | ||

Definition | An approach to software design that is tolerant of imprecision, uncertainty, partial truth and approximations. | |

Related Concepts |