problem solving technique used commonly in artificial intelligence for limiting search in AI programs