Problem solving consists of using generic or ad hoc methods in an orderly manner to find solutions to problems. Some of the problem-solving techniques developed and used in philosophy, artificial intelligence, computer science, engineering, mathematics, medicine and societies in general are related to mental problem-solving techniques studied in psychology and cognitive sciences.