Solving Logic Grid Puzzles with an Algorithm that Imitates Human Behavior