private FeatureEvidence getEvidence(FeatureCover cover) { FeatureEvidence evidence; var key = cover.FeatureKey; if (!_featureEvidences.TryGetValue(key, out evidence)) { _featureEvidences[key] = evidence = new FeatureEvidence(cover, Graph); _featureIndex.Add(key); } return(evidence); }
public IEnumerable <NodeQuestion> FindDistinguishingNodeQuestions(FeatureEvidence evidence) { var substitutions = findUnknownSubstitutions(evidence); foreach (var substitution in substitutions) { //compute different answers that we might receive //notice that answers which evidence is known are not included var answerCounts = getPossibleAnswerCounts(substitution, evidence); //choose the most believed one yield return(generateDistinguishingQuestion(answerCounts, evidence)); } }
private NodeQuestion generateDistinguishingQuestion(Dictionary <NodeReference, int> answerCounts, FeatureEvidence evidence) { throw new NotImplementedException(); }
private IEnumerable <NodeReference[]> findUnknownSubstitutions(FeatureEvidence evidence) { throw new NotImplementedException(); }
private Dictionary <NodeReference, int> getPossibleAnswerCounts(NodeReference[] substitution, FeatureEvidence evidence) { throw new NotImplementedException(); }
public IEnumerable <NodeQuestion> FindEvidenceNodeQuestions(FeatureEvidence evidence) { throw new NotImplementedException(); }