mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
Merge pull request #23 from bringg/pass-constraintmanager-as-parameter
pass constraintmanager as parameter
This commit is contained in:
commit
5f84caecca
2 changed files with 25 additions and 15 deletions
|
|
@ -364,11 +364,11 @@ public class VehicleRoutingAlgorithms {
|
|||
* @return {@link com.graphhopper.jsprit.core.algorithm.VehicleRoutingAlgorithm}
|
||||
*/
|
||||
public static VehicleRoutingAlgorithm createAlgorithm(final VehicleRoutingProblem vrp, final AlgorithmConfig algorithmConfig) {
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, null, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, null, null, null);
|
||||
}
|
||||
|
||||
public static VehicleRoutingAlgorithm createAlgorithm(final VehicleRoutingProblem vrp, int nThreads, final AlgorithmConfig algorithmConfig) {
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, null, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -382,14 +382,14 @@ public class VehicleRoutingAlgorithms {
|
|||
AlgorithmConfig algorithmConfig = new AlgorithmConfig();
|
||||
AlgorithmConfigXmlReader xmlReader = new AlgorithmConfigXmlReader(algorithmConfig);
|
||||
xmlReader.read(configURL);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, null, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, null, null, null);
|
||||
}
|
||||
|
||||
public static VehicleRoutingAlgorithm readAndCreateAlgorithm(final VehicleRoutingProblem vrp, int nThreads, final URL configURL) {
|
||||
AlgorithmConfig algorithmConfig = new AlgorithmConfig();
|
||||
AlgorithmConfigXmlReader xmlReader = new AlgorithmConfigXmlReader(algorithmConfig);
|
||||
xmlReader.read(configURL);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, null, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, null, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -403,28 +403,28 @@ public class VehicleRoutingAlgorithms {
|
|||
AlgorithmConfig algorithmConfig = new AlgorithmConfig();
|
||||
AlgorithmConfigXmlReader xmlReader = new AlgorithmConfigXmlReader(algorithmConfig);
|
||||
xmlReader.read(configFileName);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, null, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, null, null, null);
|
||||
}
|
||||
|
||||
public static VehicleRoutingAlgorithm readAndCreateAlgorithm(final VehicleRoutingProblem vrp, final String configFileName, StateManager stateManager) {
|
||||
AlgorithmConfig algorithmConfig = new AlgorithmConfig();
|
||||
AlgorithmConfigXmlReader xmlReader = new AlgorithmConfigXmlReader(algorithmConfig);
|
||||
xmlReader.read(configFileName);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, stateManager, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), 0, stateManager, null, null);
|
||||
}
|
||||
|
||||
public static VehicleRoutingAlgorithm readAndCreateAlgorithm(final VehicleRoutingProblem vrp, int nThreads, final String configFileName, StateManager stateManager, SolutionCostCalculator solutionCostCalculator) {
|
||||
public static VehicleRoutingAlgorithm readAndCreateAlgorithm(final VehicleRoutingProblem vrp, int nThreads, final String configFileName, StateManager stateManager, ConstraintManager constraintManager, SolutionCostCalculator solutionCostCalculator) {
|
||||
AlgorithmConfig algorithmConfig = new AlgorithmConfig();
|
||||
AlgorithmConfigXmlReader xmlReader = new AlgorithmConfigXmlReader(algorithmConfig);
|
||||
xmlReader.read(configFileName);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, stateManager, solutionCostCalculator);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, stateManager, constraintManager, solutionCostCalculator);
|
||||
}
|
||||
|
||||
public static VehicleRoutingAlgorithm readAndCreateAlgorithm(VehicleRoutingProblem vrp, int nThreads, String configFileName) {
|
||||
AlgorithmConfig algorithmConfig = new AlgorithmConfig();
|
||||
AlgorithmConfigXmlReader xmlReader = new AlgorithmConfigXmlReader(algorithmConfig);
|
||||
xmlReader.read(configFileName);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, null, null);
|
||||
return createAlgo(vrp, algorithmConfig.getXMLConfiguration(), nThreads, null, null, null);
|
||||
}
|
||||
|
||||
private static class OpenRouteStateVerifier implements StateUpdater, ReverseActivityVisitor {
|
||||
|
|
@ -459,7 +459,7 @@ public class VehicleRoutingAlgorithms {
|
|||
|
||||
}
|
||||
|
||||
private static VehicleRoutingAlgorithm createAlgo(final VehicleRoutingProblem vrp, XMLConfiguration config, int nuOfThreads, StateManager stateMan, SolutionCostCalculator solutionCostCalculator) {
|
||||
private static VehicleRoutingAlgorithm createAlgo(final VehicleRoutingProblem vrp, XMLConfiguration config, int nuOfThreads, StateManager stateMan, ConstraintManager constraintManager, SolutionCostCalculator solutionCostCalculator) {
|
||||
//create state-manager
|
||||
final StateManager stateManager;
|
||||
if (stateMan != null) {
|
||||
|
|
@ -479,7 +479,9 @@ public class VehicleRoutingAlgorithms {
|
|||
* define constraints
|
||||
*/
|
||||
//constraint manager
|
||||
ConstraintManager constraintManager = new ConstraintManager(vrp, stateManager);
|
||||
if (constraintManager == null)
|
||||
constraintManager = new ConstraintManager(vrp, stateManager);
|
||||
|
||||
constraintManager.addTimeWindowConstraint();
|
||||
constraintManager.addLoadConstraint();
|
||||
constraintManager.addSkillsConstraint();
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import com.graphhopper.jsprit.core.algorithm.selector.SelectBest;
|
|||
import com.graphhopper.jsprit.core.algorithm.selector.SolutionSelector;
|
||||
import com.graphhopper.jsprit.core.algorithm.state.StateManager;
|
||||
import com.graphhopper.jsprit.core.problem.VehicleRoutingProblem;
|
||||
import com.graphhopper.jsprit.core.problem.constraint.ConstraintManager;
|
||||
import com.graphhopper.jsprit.core.problem.job.Job;
|
||||
import com.graphhopper.jsprit.core.problem.solution.SolutionCostCalculator;
|
||||
import com.graphhopper.jsprit.core.problem.solution.VehicleRoutingProblemSolution;
|
||||
|
|
@ -51,9 +52,7 @@ import java.util.Collection;
|
|||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
|
||||
public class TestAlgorithmReader {
|
||||
|
|
@ -297,12 +296,21 @@ public class TestAlgorithmReader {
|
|||
doNothing().when(stateMan).updateTimeWindowStates();
|
||||
doNothing().when(stateMan).updateSkillStates();
|
||||
|
||||
VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, 10, getClass().getResource("algorithmConfig_withoutIterations.xml").getFile(), stateMan, solutionCostCalculator);
|
||||
ConstraintManager constraintManager = mock(ConstraintManager.class);
|
||||
doNothing().when(constraintManager).addTimeWindowConstraint();
|
||||
doNothing().when(constraintManager).addLoadConstraint();
|
||||
doNothing().when(constraintManager).addSkillsConstraint();
|
||||
|
||||
VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, 10, getClass().getResource("algorithmConfig_withoutIterations.xml").getFile(), stateMan, constraintManager, solutionCostCalculator);
|
||||
vra.getObjectiveFunction().equals(solutionCostCalculator);
|
||||
|
||||
verify(stateMan, times(2)).updateLoadStates();
|
||||
verify(stateMan, times(2)).updateTimeWindowStates();
|
||||
verify(stateMan, times(2)).updateSkillStates();
|
||||
|
||||
verify(constraintManager, times(2)).addTimeWindowConstraint();
|
||||
verify(constraintManager, times(2)).addSkillsConstraint();
|
||||
verify(constraintManager, times(2)).addLoadConstraint();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue