Problem Solving in Artificial Intelligence