diff --git a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmEventRecorder.java b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmEventRecorder.java index 2020d949..d4387764 100644 --- a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmEventRecorder.java +++ b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmEventRecorder.java @@ -41,10 +41,12 @@ import org.graphstream.graph.implementations.MultiGraph; import org.graphstream.stream.file.FileSinkDGS; import java.io.File; +import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.zip.GZIPOutputStream; public class AlgorithmEventRecorder implements RuinListener, IterationStartsListener, InsertionStartsListener, BeforeJobInsertionListener, InsertionEndsListener, AlgorithmEndsListener { @@ -58,10 +60,6 @@ public class AlgorithmEventRecorder implements RuinListener, IterationStartsList rec.finish(); } - public static enum RecordPolicy { - RECORD_AND_WRITE - } - public static final int BEFORE_RUIN_RENDER_SOLUTION = 2; public static final int RUIN = 0; @@ -78,6 +76,10 @@ public class AlgorithmEventRecorder implements RuinListener, IterationStartsList private FileSinkDGS fileSink; + private FileOutputStream fos; + + private GZIPOutputStream gzipOs; + private int start_recording_at = 0; private int end_recording_at = Integer.MAX_VALUE; @@ -86,13 +88,19 @@ public class AlgorithmEventRecorder implements RuinListener, IterationStartsList private VehicleRoutingProblem vrp; - public AlgorithmEventRecorder(VehicleRoutingProblem vrp, File outfile) { + public AlgorithmEventRecorder(VehicleRoutingProblem vrp, File dgsFile) { this.vrp = vrp; graph = new MultiGraph("g"); try { - writer = new FileWriter(outfile); + fos = new FileOutputStream(dgsFile); fileSink = new FileSinkDGS(); - fileSink.begin(writer); + if(dgsFile.getName().endsWith("gz")){ + gzipOs = new GZIPOutputStream(fos); + fileSink.begin(gzipOs); + } + else{ + fileSink.begin(fos); + } graph.addSink(fileSink); } catch (IOException e) { e.printStackTrace(); @@ -100,9 +108,9 @@ public class AlgorithmEventRecorder implements RuinListener, IterationStartsList initialiseGraph(vrp); } - public AlgorithmEventRecorder(VehicleRoutingProblem vrp, File outfile, boolean renderShipments) { + public AlgorithmEventRecorder(VehicleRoutingProblem vrp, File dgsFile, boolean renderShipments) { this.renderShipments = renderShipments; - new AlgorithmEventRecorder(vrp,outfile); + new AlgorithmEventRecorder(vrp,dgsFile); } public void setRecordingRange(int startIteration, int endIteration){ @@ -110,23 +118,6 @@ public class AlgorithmEventRecorder implements RuinListener, IterationStartsList this.end_recording_at = endIteration; } - public AlgorithmEventRecorder(VehicleRoutingProblem vrp, VehicleRoutingProblemSolution initialSolution, File outfile) { -// this.outfile = outfile; -// this.vrp = vrp; -// graph = new MultiGraph("g"); -// try { -// writer = new FileWriter(outfile); -// writeHead(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// initialiseGraph(vrp,initialSolution); - } - - private void initialiseGraph(VehicleRoutingProblem vrp, VehicleRoutingProblemSolution initialSolution) { - - } - @Override public void ruinStarts(Collection routes) { if(!record()) return; @@ -292,7 +283,8 @@ public class AlgorithmEventRecorder implements RuinListener, IterationStartsList private void finish() { try { fileSink.end(); - writer.close(); + fos.close(); + if(gzipOs != null) gzipOs.close(); } catch (IOException e) { e.printStackTrace(); } diff --git a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AnotherGraphTest.java b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AnotherGraphTest.java deleted file mode 100644 index 5f0eb3cd..00000000 --- a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AnotherGraphTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package jsprit.analysis.toolbox; - -import jsprit.core.algorithm.VehicleRoutingAlgorithm; -import jsprit.core.algorithm.box.GreedySchrimpfFactory; -import jsprit.core.problem.VehicleRoutingProblem; -import jsprit.core.problem.io.VrpXMLReader; - -import java.io.File; - -/** - * Created by stefan on 14.11.14. - */ -public class AnotherGraphTest { - - public static void main(String[] args) { - VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); - new VrpXMLReader(vrpBuilder).read("/Users/stefan/Documents/git-repositories/jsprit/jsprit-examples/input/cordeau01.xml"); - VehicleRoutingProblem vrp = vrpBuilder.build(); - -// GraphStreamEventWriter eventWriter = new GraphStreamEventWriter(new File("output/events.txt")); - VehicleRoutingAlgorithm vra = new GreedySchrimpfFactory().createAlgorithm(vrp); -// vra.addListener(eventWriter); - - vra.searchSolutions(); - - } -}