problem solving in ai