Combining heuristic reasoning with causal reasoning in diagnostic problem solving