In this chapter, we will introduce a broad range of problem-solving tools. We will start by looking at ontologies and knowledge-based reasoning before moving on to optimization in the context of Boolean satisfiability (SAT) and combinatorial optimization, where we'll simulate the result of individual behavior and coordination in society. Finally, we'll implement Monte Carlo tree search to find the best moves in chess.
We'll be dealing with various techniques in this chapter, including logic solvers, graph embeddings, genetic algorithms (GA), particle swarm optimization (PSO), SAT solvers, simulated annealing (SA), ant colony optimization, multi-agent systems, and Monte Carlo tree search.