1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

improve JobDistance for RadialRuin

This commit is contained in:
Stefan Schroeder 2013-06-18 09:28:33 +02:00
parent b0de3eef86
commit 3587c7fe94
8 changed files with 233 additions and 145 deletions

View file

@ -230,43 +230,7 @@ public class TestAlgorithmReader {
for(SearchStrategy strat : algo.getSearchStrategyManager().getStrategies()){
nOfModules += strat.getSearchStrategyModules().size();
}
assertEquals(6, nOfModules);
}
@Test
public void whenCreatingAlgorithm_nOfUniqueInstancesOfInsertionModulesIsCorrect(){
VehicleRoutingAlgorithm algo = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, config);
int nOfBestInsertions = 0;
Set<SearchStrategyModule> uniqueStrategies = new HashSet<SearchStrategyModule>();
for(SearchStrategy strat : algo.getSearchStrategyManager().getStrategies()){
for(SearchStrategyModule module : strat.getSearchStrategyModules()){
if(module.getName().equals("bestInsertion")){
nOfBestInsertions++;
uniqueStrategies.add(module);
}
}
}
assertEquals(3, nOfBestInsertions);
assertEquals(2, uniqueStrategies.size());
}
@Test
public void whenCreatingAlgorithm_nOfUniqueInstancesOfRuinModulesIsCorrect(){
VehicleRoutingAlgorithm algo = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, config);
int nOfRuinModules = 0;
Set<SearchStrategyModule> uniqueStrategies = new HashSet<SearchStrategyModule>();
for(SearchStrategy strat : algo.getSearchStrategyManager().getStrategies()){
for(SearchStrategyModule module : strat.getSearchStrategyModules()){
if(module.getName().endsWith("Ruin")){
nOfRuinModules++;
uniqueStrategies.add(module);
}
}
}
assertEquals(3, nOfRuinModules);
assertEquals(2, uniqueStrategies.size());
assertEquals(3, nOfModules);
}
@Test

View file

@ -34,11 +34,12 @@
<selector name="selectBest"/>
<acceptor name="acceptNewRemoveWorst"/>
<modules>
<module name="randomRuin">
<share>0.5</share>
<module name="ruin_and_recreate">
<ruin name="randomRuin">
<share>0.5</share>
</ruin>
<insertion name="bestInsertion"/>
</module>
<module name="bestInsertion">
</module>
</modules>
<probability>0.4</probability>
</searchStrategy>
@ -47,10 +48,12 @@
<selector name="selectBest"/>
<acceptor name="acceptNewRemoveWorst"/>
<modules>
<module name="randomRuin">
<share>0.1</share>
<module name="ruin_and_recreate">
<ruin name="randomRuin">
<share>0.1</share>
</ruin>
<insertion name="bestInsertion"/>
</module>
<module name="bestInsertion"></module>
</modules>
<probability>0.4</probability>
</searchStrategy>
@ -59,11 +62,12 @@
<selector name="selectBest"/>
<acceptor name="acceptNewRemoveWorst"/>
<modules>
<module name="radialRuin">
<share>0.3</share>
<distanceMeasure>euclid</distanceMeasure>
<module name="ruin_and_recreate">
<ruin name="radialRuin">
<share>0.3</share>
</ruin>
<insertion name="bestInsertion" id="1"/>
</module>
<module name="bestInsertion" id="1"></module>
</modules>
<probability>0.2</probability>
</searchStrategy>