Soft computing is a set of computational techniques based on artificial intelligence and natural selection that provide cost-effective solutions to complex real-life problems for which hard computing solutions do not exist. Soft computing is tolerant of partial truths, uncertainty, imprecision, and approximation, unlike traditional computing models. Soft computing is based on techniques such as fuzzy logic, genetic algorithms, artificial neural networks, machine learning, and expert systems. Soft computing provides an approach to problem-solving using means other than computers. Soft computing is sometimes referred to as computational intelligence. Soft computing has numerous real-world applications in domestic, commercial, and industrial situations. The term "soft computing" was coined by Lotfi A. Zadeh in 1992. Soft computing is contrasted with hard computing, which finds provably correct and optimal solutions to problems.