Package statechum.analysis.learning.linear.GD

Examples of statechum.analysis.learning.linear.GD.ChangesRecorder


  public final void testComputeGD5_RR()
  {
    Configuration configGD5 = config.copy();configGD5.setGdFailOnDuplicateNames(false);
    LearnerGraph grA = new LearnerGraph(configGD5);grA.getInit().setAccept(false);
    LearnerGraph grB = convertToNumerical(new LearnerGraph(configGD5));grB.getInit().setAccept(false);
    ChangesRecorder recorder = new ChangesRecorder(null);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
    gd.computeGD(grA, grB, threadNumber, recorder,configGD5);
    LearnerGraph graph = new LearnerGraph(configGD5);graph.setInit(null);graph.transitionMatrix.clear();
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
    Assert.assertNull(WMethod.checkM(graph, grB));Assert.assertEquals(grB.getStateNumber(),graph.getStateNumber());
  }
View Full Code Here


  public final void testComputeGD5d_RR()
  {
    Configuration configGD5d = config.copy();configGD5d.setGdFailOnDuplicateNames(false);
    LearnerGraph grA = new LearnerGraph(configGD5d);grA.getInit().setAccept(false);
    LearnerGraph grB = convertToNumerical(buildLearnerGraph(A6,"testComputeGD5b",configGD5d,converter));
    ChangesRecorder recorder = new ChangesRecorder(null);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
    gd.computeGD(grA, grB, threadNumber, recorder,configGD5d);
    LearnerGraph graph = new LearnerGraph(configGD5d);graph.setInit(null);graph.transitionMatrix.clear();
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
    Assert.assertNull(WMethod.checkM(graph, grB));Assert.assertEquals(grB.getStateNumber(),graph.getStateNumber());
  }
View Full Code Here

  public final void testComputeGD5e_RR()
  {
    Configuration configGD5e = config.copy();
    LearnerGraph grA = buildLearnerGraph(A6,"testComputeGD5b",configGD5e,converter);
    LearnerGraph grB = convertToNumerical(new LearnerGraph(configGD5e));grB.getInit().setAccept(false);
    ChangesRecorder recorder = new ChangesRecorder(null);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
    gd.computeGD(grA, grB, threadNumber, recorder,configGD5e);
    LearnerGraph graph = buildLearnerGraph(A6,"testComputeGD5b",configGD5e,converter);
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
    Assert.assertNull(WMethod.checkM(graph, grB));Assert.assertEquals(grB.getStateNumber(),graph.getStateNumber());
  }
View Full Code Here

    grA.setIDNumbers();grB.setIDNumbers();// if a vertex uses vertex names such as P1000, it will clash with numbered vertices generated by Linear. This is why we ensure absence of clashes by updating identifier numbers.
   
    grA.pathroutines.checkConsistency(grA);grB.pathroutines.checkConsistency(grB);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
   
    ChangesRecorder recorder = new ChangesRecorder(null);
    gd.computeGD(grA, grB, threadNumber,recorder,configDup);
    LearnerGraph graph = new LearnerGraph(grA,configDup);
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
   
    DifferentFSMException ex = WMethod.checkM_and_colours(grB, graph, VERTEX_COMPARISON_KIND.DEEP);
    Assert.assertNull(ex);
  }
View Full Code Here

    grA.findVertex(VertexID.parseID("P1002")).setColour(JUConstants.BLUE);
   
    grA.pathroutines.checkConsistency(grA);grB.pathroutines.checkConsistency(grB);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
   
    ChangesRecorder recorder = new ChangesRecorder(null);
    gd.computeGD(grA, grB, threadNumber,recorder,configDup);
    LearnerGraph graph = new LearnerGraph(grA,configDup);
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
   
    DifferentFSMException ex = WMethod.checkM_and_colours(grB, graph, VERTEX_COMPARISON_KIND.DEEP);
    Assert.assertNull(ex);
  }
View Full Code Here

    grA.findVertex(VertexID.parseID("P1003")).setColour(JUConstants.BLUE);
   
    grA.pathroutines.checkConsistency(grA);grB.pathroutines.checkConsistency(grB);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
   
    ChangesRecorder recorder = new ChangesRecorder(null);
    gd.computeGD(grA, grB, threadNumber,recorder,configDup);
    LearnerGraph graph = new LearnerGraph(grA,configDup);
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
   
    DifferentFSMException ex = WMethod.checkM_and_colours(grB, graph, VERTEX_COMPARISON_KIND.DEEP);
    Assert.assertNull(ex);
  }
View Full Code Here

    LearnerGraph grB = buildLearnerGraph("B-a->B","testKeyPairLeadingToNoOutgoingTransitions_with_attribute_change_b",config,converter);
    CmpVertex F=AbstractLearnerGraph.generateNewCmpVertex(VertexID.parseID("F"), config);
    grB.transitionMatrix.put(F,grB.createNewRow());
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
    LearnerGraph outcome = new LearnerGraph(config);
    ChangesRecorder patcher = new ChangesRecorder(null);
   
    gd.init(grA, grB, 1,config);
    gd.identifyKeyPairs();
    Assert.assertFalse(gd.fallbackToInitialPair);
    CmpVertex newF = gd.origToNewB.get(F);
    CmpVertex C = gd.grCombined.findVertex(VertexID.parseID("C"));

    // add C-newF as a new initial key pair.
    gd.frontWave.add(new PairScore(C,newF,1,0));
    gd.statesInKeyPairs.add(C);gd.statesInKeyPairs.add(newF);

    gd.makeSteps();
    ChangesDisplay recorder = new ChangesDisplay(patcher);
    gd.computeDifference(recorder);
    Assert.assertEquals(
        "mapping: A - B\n"+
        "mapping: C - F\n"+
        "initial : A\n"+
        "removed: C - a -> E\n"+
        "removed: C - b -> D\n"+
        "added vertex:C\n",
        recorder.toString());
    ChangesRecorder.applyGD_WithRelabelling(graph, patcher.writeGD(TestGD.createDoc()), converter,outcome);
    Assert.assertNull(WMethod.checkM(grB,graph));
    Assert.assertEquals(grB.getStateNumber(),graph.getStateNumber());
    if (vertexToChange != null) Assert.assertEquals(JUConstants.AMBER,grA.findVertex(VertexID.parseID(vertexToChange)).getColour());
  }
View Full Code Here

      LearnerGraph grB = buildLearnerGraph(graphB,name+"B",config,converter);
 
      GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
      gd.init(grA, grB, threadNumber,config);
      gd.identifyKeyPairs();
      ChangesRecorder recorder = new ChangesRecorder(null);
      gd.makeSteps();gd.computeDifference(recorder);
      Assert.assertEquals(expectedMatchedPairs,gd.aTOb.size());
      LearnerGraph graph = buildLearnerGraph(graphA,name+"A",config,converter);
      ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
      Assert.assertNull(WMethod.checkM(graph, grB));
      Assert.assertNull(WMethod.checkM(graph, graph.findVertex(otherA), grB, grB.findVertex(otherB),WMethod.VERTEX_COMPARISON_KIND.NONE));
    }
  }
View Full Code Here

  {
    Configuration configGD5b = config.copy();configGD5b.setGdFailOnDuplicateNames(false);
    configGD5b.setGdMaxNumberOfStatesInCrossProduct(0);
    LearnerGraph grA = new LearnerGraph(configGD5b);grA.getInit().setAccept(false);
    LearnerGraph grB = convertToNumerical(new LearnerGraph(configGD5b));
    ChangesRecorder recorder = new ChangesRecorder(null);
    GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData> gd = new GD<CmpVertex,CmpVertex,LearnerGraphCachedData,LearnerGraphCachedData>();
    gd.computeGD(grA, grB, threadNumber, recorder,configGD5b);
    LearnerGraph graph = new LearnerGraph(configGD5b);graph.setInit(null);graph.transitionMatrix.clear();
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
    Assert.assertNull(WMethod.checkM(graph, grB));Assert.assertEquals(grB.getStateNumber(),graph.getStateNumber());
  }
View Full Code Here

    Configuration cloneConfig = configCheckDiffBetweenND.copy();cloneConfig.setLearnerCloneGraph(true);
    AbstractLearnerGraph<List<CmpVertex>,LearnerGraphNDCachedData> copyOfA = grA.copy(cloneConfig), copyOfB = grB.copy(cloneConfig);
    GD<List<CmpVertex>,List<CmpVertex>,LearnerGraphNDCachedData,LearnerGraphNDCachedData> gd = new GD<List<CmpVertex>,List<CmpVertex>,LearnerGraphNDCachedData,LearnerGraphNDCachedData>();
    gd.init(grA, grB, threadNumber,configCheckDiffBetweenND);gd.identifyKeyPairs();
    //TestGD.printListOfPairs(gd.currentWave, gd.newBToOrig);
    ChangesRecorder recorder = new ChangesRecorder(null);
    gd.makeSteps();gd.computeDifference(recorder);
    //Visualiser.updateFrame(gd.showGD(grA, grB, 1), null);
    //Visualiser.updateFrame(grA, grB);
    Assert.assertEquals(expectedSizeOfATOb,gd.aTOb.size());
    Assert.assertEquals(expectedSizeOfDuplicates,gd.duplicates.size());
    LearnerGraphND graph = new LearnerGraphND(cloneConfig);AbstractLearnerGraph.copyGraphs(grA, graph);
    ChangesRecorder.applyGD(graph, recorder.writeGD(TestGD.createDoc()), converter);
    Assert.assertNull(WMethod.checkM(grB, graph));
   
    // Now do the same as above, but renumber states to match grB
    AbstractLearnerGraph.copyGraphs(grA, graph);
    Configuration configMut = conf.copy();configCheckDiffBetweenND.setLearnerCloneGraph(false);
    LearnerGraphMutator<List<CmpVertex>,LearnerGraphNDCachedData> graphPatcher = new LearnerGraphMutator<List<CmpVertex>,LearnerGraphNDCachedData>(graph,configMut,null);
    ChangesRecorder.loadDiff(graphPatcher, recorder.writeGD(TestGD.createDoc()), converter);
    graphPatcher.removeDanglingStates();
    LearnerGraphND result = new LearnerGraphND(configMut);
    graphPatcher.relabel(result);
    Assert.assertNull(WMethod.checkM_and_colours(grB, result,VERTEX_COMPARISON_KIND.DEEP));
   
View Full Code Here

TOP

Related Classes of statechum.analysis.learning.linear.GD.ChangesRecorder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.