public static List<List<String>> computeQS_general(final StatePair pairToMerge,
final LearnerGraph original, final LearnerGraph learnt,final QuestionConstructor qConstructor)
{
final PTASequenceEngine engine = qConstructor.constructEngine(original, learnt);
final SequenceSet identity = engine.new SequenceSet();identity.setIdentity();
for(AMEquivalenceClass eq:learnt.learnerCache.getMergedStates())
qConstructor.addQuestionsForState(eq, original, learnt, pairToMerge,
learnt.stateLearnt,new MergeData(){
public SequenceSet getPathsToBlue()
{
SequenceSet toBlue = engine.new SequenceSet();
original.paths.computePathsSBetween(original.init, pairToMerge.getQ(), identity, toBlue);
return toBlue;
}
public SequenceSet getPathsToRed()
{
SequenceSet toRed = engine.new SequenceSet();
original.paths.computePathsSBetween(original.init, pairToMerge.getR(), identity, toRed);
return toRed;
}
public SequenceSet getPathsToLearnt()
{
SequenceSet toLearnt = engine.new SequenceSet();
learnt.paths.computePathsSBetween(learnt.init, learnt.stateLearnt, identity, toLearnt);
return toLearnt;
}
});