1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00
This commit is contained in:
oblonski 2014-11-18 20:37:54 +01:00
parent b702c8015b
commit 020ee56366
2 changed files with 19 additions and 54 deletions

View file

@ -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<VehicleRoute> 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();
}

View file

@ -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();
}
}