Petrinet pn = (Petrinet) result[0];
Marking initialmarking = (Marking) result[1];
Marking finalmarking = null;

System.out.println("Number of edges:       " + pn.getEdges().size());
System.out.println("Number of places:      " + pn.getPlaces().size());
System.out.println("Number of transitions: " + pn.getTransitions().size());
System.out.println("Number of nodes:       " + (pn.getTransitions().size() + pn.getPlaces().size()));

int numNodes = pn.getTransitions().size() + pn.getPlaces().size();
int numArcs = pn.getEdges().size();
float CNC = (float)numArcs / (float)numNodes;
int CN = numArcs - numNodes - 1;
float delta = (float)numArcs / ( numNodes * (numNodes-1) );

System.out.println("CNC:                   " + CNC);
System.out.println("CN:                    " + CN);
System.out.println("Delta:                 " + delta);

bw.write(cond() + summary.getNumberOfTraces() + ", ");
bw.write(pn.getEdges().size() + ", ");
bw.write(pn.getPlaces().size() + ", ");
bw.write(pn.getTransitions().size() + ", ");
bw.write((pn.getTransitions().size() + pn.getPlaces().size()) + ", ");
bw.write(CNC + ", ");
bw.write(CN + ", ");
bw.write(delta + ", ");

List listTrans = new ArrayList(pn.getTransitions());
XEventClass DUMMY = new XEventClass("DUMMY", -1);
TransEvClassMapping map = new TransEvClassMapping( classifierList.get(0), DUMMY);

for (Transition transition : listTrans) {
	if (!transition.isInvisible()) {
		map.put(transition,  (XEventClass) eventClasses[preSelectOption(transition.getLabel().toLowerCase(), eventClasses, pattern)]);
	} else {
		map.put(transition, DUMMY);
	}
}

System.out.println("Created mapping from net transitions to log events");

IPNReplayAlgorithm selectedAlg;
if (penalizeImproperCompletion) {
	selectedAlg = new PetrinetReplayerWithoutILP();
	System.out.println("Selected PetrinetReplayerWithoutILP");
} else {
	selectedAlg = new PrefixBasedPetrinetReplayer();
	System.out.println("Selected PrefixBasedPetrinetReplayer");
}
HashSet ecCollection = new HashSet();
for (Object o : eventClasses) { ecCollection.add( (XEventClass)o ); }
CostBasedCompleteParam parameters = new CostBasedCompleteParam(ecCollection, DUMMY, listTrans, 1, 1);
parameters.setInitialMarking(initialmarking);
parameters.setCreateConn(false);
parameters.setGUIMode(false);
parameters.setMaxNumOfStates(20000);

System.out.println("Created replayer parameters");
replayresult = replay_a_log_on_petri_net_for_conformance_analysis(pn, log, map, selectedAlg, parameters);

System.out.println("Replayed log on petri net");

System.out.println("Fitness:               " + replayresult.getInfo().get(PNRepResult.TRACEFITNESS));
System.out.println("Move-Log Fitness:      " + replayresult.getInfo().get(PNRepResult.MOVELOGFITNESS));
System.out.println("Move-Model Fitness:    " + replayresult.getInfo().get(PNRepResult.MOVEMODELFITNESS));
System.out.println("Raw Fitness Cost:      " + replayresult.getInfo().get(PNRepResult.RAWFITNESSCOST));
System.out.println("Num. States:           " + replayresult.getInfo().get(PNRepResult.NUMSTATEGENERATED));
System.out.println("Queued States:         " + replayresult.getInfo().get(PNRepResult.QUEUEDSTATE));
System.out.println("Calculation Time (ms): " + replayresult.getInfo().get(PNRepResult.TIME));
bw.write(replayresult.getInfo().get(PNRepResult.TRACEFITNESS) + ", ");
bw.write(replayresult.getInfo().get(PNRepResult.MOVELOGFITNESS) + ", ");
bw.write(replayresult.getInfo().get(PNRepResult.MOVEMODELFITNESS) + ", ");
bw.write(replayresult.getInfo().get(PNRepResult.RAWFITNESSCOST) + ", ");
bw.write(replayresult.getInfo().get(PNRepResult.NUMSTATEGENERATED) + ", ");
bw.write(replayresult.getInfo().get(PNRepResult.QUEUEDSTATE) + ", ");

AlignmentPrecGen precgenobj = new AlignmentPrecGen();
System.out.println("Gotten an AlignmentPrecGen object");
AlignmentPrecGenRes precgenresult = precgenobj.measureConformanceAssumingCorrectAlignment(null, map, replayresult, pn, initialmarking, true);
System.out.println("Measured precision/generalization");

System.out.println("Precision:        " + precgenresult.getPrecision());
System.out.println("Generalizability: " + precgenresult.getGeneralization());
bw.write(precgenresult.getPrecision() + ", ");
bw.write(precgenresult.getGeneralization() + "\n");
bw.flush();
bw.close();
System.out.println("Done PromScript.");