TransducerGraph randomFA = TransducerGraph.createRandomGraph(5000, 5, 1.0, 5, pathList);
List outputs = randomFA.getPathOutputs(pathList);
TransducerGraph.GraphProcessor quasiDeterminizer = new QuasiDeterminizer();
AutomatonMinimizer minimizer = new FastExactAutomatonMinimizer();
TransducerGraph.NodeProcessor ntsp = new TransducerGraph.SetToStringNodeProcessor(new PennTreebankLanguagePack());
TransducerGraph.ArcProcessor isp = new TransducerGraph.InputSplittingProcessor();
TransducerGraph.ArcProcessor ocp = new TransducerGraph.OutputCombiningProcessor();
TransducerGraph detGraph = quasiDeterminizer.processGraph(randomFA);
TransducerGraph combGraph = new TransducerGraph(detGraph, ocp); // combine outputs into inputs