NP-complete problems, like many of those arising in industry, cannot be approached with exact tools in reasonable time, so, approximation approaches are required. Among such approaches, heuristics and metaheuristics methods are considered as very useful tools to obtain reasonably good solutions in limited time for such complex problems, but their application is far from trivial.
Key Terms in this Chapter
Optimization: Process of improving a system in certain ways to reduce the effective runtime, the bandwidth or memory requirements. Despite its name, optimization does not necessarily mean finding the optimum solution to a problem. Often this is not possible and heuristic algorithms must be used instead (Wolpert, 1997).
Heuristic: The name is originally derived from the Greek “heuriskein” (“to find”). Particular technique of directing one’s attention in learning, discovery, or problem-solving. In computer science context is an algorithm that gives up with probably good run times and with probably good or optimal solution quality (Blum, 2003; Melian et al., 2003).
Multi-Agent System: An application that deals with the interaction of groups of intelligent agents attempting to cooperate, share skills and knowledge to solve problems (Luck et al., 2003; Mas, 2005).
Agent: A computer system capable of flexible autonomous action in dynamic, unpredictable and open environment. An autonomous entity capable of executing tasks either by themselves or by collaborating with other agents (Luck et al., 2003; Mas, 2005).
Fuzzy Agents: Agents that can perform qualitative uncertainty reasoning with incomplete and fuzzy knowledge in some environments that contains linguistic variables. In brief, fuzzy agents are agents that decide his actions according to fuzzy logic rules.
Fuzzy Logic: Fuzzy logic is a superset of conventional (Boolean) logic that has been extended to handle the concept of partial truth (truth values between “completely true” and “completely false”). It was introduced by Zadeh in the 1960s as a means to model the uncertainty of natural language (Zadeh, 1965).
Soft Computing: Collection of new computational techniques in computer science, artificial intelligence, machine learning, and many applied and engineering areas whose role model is the human mind and his guiding principle is exploit the tolerance for imprecision, uncertainty, partial truth, and approximation to achieve tractability, robustness, and low solution cost (Li, 1998; Verdegay, 2005; Zadeh, 1994)
Metaheuristics: The name combines the Greek prefix “meta” (“beyond”) and “heuristic.” It is a method for solving a very general class of computational problems by combining heuristics in a hopefully efficient way (Blum, 2003; Melian et al., 2003).