protected Collection getInverseArcs(Object member) { if (member != SINK_NODE) { return getUnminimizedFA().getArcsByTarget(member); } return getUnminimizedFA().getArcs(); }
public TransducerGraph(TransducerGraph other, ArcProcessor arcProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), arcProcessor, null); }
protected Collection<Object> getInverseImages(ExactBlock<Arc> block, Object symbol) { List<Object> inverseImages = new ArrayList<>(); for (Arc member : block.getMembers()) { Collection<Arc> arcs = null; if (member != SINK_NODE) { arcs = getUnminimizedFA().getArcsByTargetAndInput(member, symbol); } else { arcs = getUnminimizedFA().getArcsByInput(symbol); if (!sparseMode) { arcs = difference(getUnminimizedFA().getArcs(), arcs); } } if (arcs == null) { continue; } for (Arc arc : arcs) { Object source = arc.getSourceNode(); inverseImages.add(source); } } return inverseImages; }
throw new RuntimeException(cnse); Set<TransducerGraph.Arc> arcs = result.getArcs(); for (TransducerGraph.Arc arc : arcs) { double sourceLambda = lambda.getCount(arc.getSourceNode());
protected Collection getInverseArcs(Object member) { if (member != SINK_NODE) { return getUnminimizedFA().getArcsByTarget(member); } return getUnminimizedFA().getArcs(); }
public TransducerGraph(TransducerGraph other, NodeProcessor nodeProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), null, nodeProcessor); }
protected Collection getInverseArcs(Object member) { if (member != SINK_NODE) { return getUnminimizedFA().getArcsByTarget(member); } return getUnminimizedFA().getArcs(); }
protected Collection getInverseArcs(Object member) { if (member != SINK_NODE) { return getUnminimizedFA().getArcsByTarget(member); } return getUnminimizedFA().getArcs(); }
public static void main(String[] args) { TransducerGraph fa = new TransducerGraph(); fa.addArc(fa.getStartNode(), "1", "a", ""); fa.addArc(fa.getStartNode(), "2", "b", ""); fa.addArc(fa.getStartNode(), "3", "c", ""); fa.addArc("1", "4", "a", ""); fa.addArc("2", "4", "a", ""); fa.addArc("3", "5", "c", ""); fa.addArc("4", "6", "c", ""); fa.addArc("5", "6", "c", ""); fa.setEndNode("6"); System.out.println(fa); ExactAutomatonMinimizer minimizer = new ExactAutomatonMinimizer(); System.out.println(minimizer.minimizeFA(fa)); System.out.println("Starting..."); Timing.startTime(); TransducerGraph randomFA = TransducerGraph.createRandomGraph(100, 10, 1.0, 10, new ArrayList()); TransducerGraph minimizedRandomFA = minimizer.minimizeFA(randomFA); System.out.println(randomFA); System.out.println(minimizedRandomFA); Timing.tick("done. ( " + randomFA.getArcs().size() + " arcs to " + minimizedRandomFA.getArcs().size() + " arcs)"); }
protected Collection getInverseArcs(Object member) { if (member != SINK_NODE) { return getUnminimizedFA().getArcsByTarget(member); } return getUnminimizedFA().getArcs(); }
for (Arc arc : graph.getArcs()) {
protected TransducerGraph buildMinimizedFA() { TransducerGraph minimizedFA = new TransducerGraph(); TransducerGraph unminimizedFA = getUnminimizedFA(); for (TransducerGraph.Arc arc : unminimizedFA.getArcs()) { Object source = projectNode(arc.getSourceNode()); Object target = projectNode(arc.getTargetNode()); try { if (minimizedFA.canAddArc(source, target, arc.getInput(), arc.getOutput())) { minimizedFA.addArc(source, target, arc.getInput(), arc.getOutput()); } } catch (Exception e) { //throw new IllegalArgumentException(); } } minimizedFA.setStartNode(projectNode(unminimizedFA.getStartNode())); for (Object o : unminimizedFA.getEndNodes()) { minimizedFA.setEndNode(projectNode(o)); } return minimizedFA; }
protected TransducerGraph buildMinimizedFA() { TransducerGraph minimizedFA = new TransducerGraph(); TransducerGraph unminimizedFA = getUnminimizedFA(); for (TransducerGraph.Arc arc : unminimizedFA.getArcs()) { Set<Arc> source = projectNode(arc.getSourceNode()); Set<Arc> target = projectNode(arc.getTargetNode()); try { if (minimizedFA.canAddArc(source, target, arc.getInput(), arc.getOutput())) { minimizedFA.addArc(source, target, arc.getInput(), arc.getOutput()); } } catch (Exception e) { //throw new IllegalArgumentException(); } } minimizedFA.setStartNode(projectNode(unminimizedFA.getStartNode())); for (Object o : unminimizedFA.getEndNodes()) { minimizedFA.setEndNode(projectNode(o)); } return minimizedFA; }
public TransducerGraph(TransducerGraph other, ArcProcessor arcProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), arcProcessor, null); }
public TransducerGraph(TransducerGraph other, NodeProcessor nodeProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), null, nodeProcessor); }
public TransducerGraph(TransducerGraph other, NodeProcessor nodeProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), null, nodeProcessor); }
public TransducerGraph(TransducerGraph other, ArcProcessor arcProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), arcProcessor, null); }
public TransducerGraph(TransducerGraph other, NodeProcessor nodeProcessor) { this(other.getArcs(), other.getStartNode(), other.getEndNodes(), null, nodeProcessor); }