public class CuttingPlaneOnly extends CuttingPlaneOptimizer
CuttingPlaneOptimizer
in order to retrieve the
linear constraints and remove the local search.CuttingPlaneOptimizer.LocalSearchMethod
agentCosts, arrivalRates, callGroups, cc, constraintCount, constraintMap, cpTest, cutp, eval, numAgents, numAgentsNoRound, numGroups, numTypes, objValue, optSL, optSLPerCall, optSolution, serviceRates, serviceRatesIG, solver, solverTimeSec, staffNoRoundDf, varIndexMap, verbose
Constructor and Description |
---|
CuttingPlaneOnly(CallCenter cc,
CuttingPlaneParams cutParams,
CuttingPlaneTest cpTest,
ContactCenterEval eval)
Constructs and initializes an instance of the cutting-plane optimizer.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
addSubGradientConstraint(SubgradientInfo subgInfo)
Adds subgradient cuts to the LP/IP.
|
HashMap<Integer,LinearConstraint> |
getConstraintMap()
Returns the hash map
CuttingPlaneOptimizer.constraintMap . |
HashMap<String,Integer> |
getVarIndexMap()
Returns the hash map
CuttingPlaneOptimizer.varIndexMap . |
protected void |
setCallCenter(CallCenter cc)
Changes the call center model.
|
protected void |
setCuttingPlaneTest(CuttingPlaneTest cpTest)
Changes the
CuttingPlaneTest . |
protected StaffingSolution |
solveInstance()
Optimizes the linear problem from the cutting-plane main algorithm.
|
addConstraint, addHeuristicCut, addIntConstr, addIntMaxFlowConstr, adjustHeuristicCut, ccEval, changeConstraintRhs, createSolverInstance, equal, exportLP, freeSolver, generateSolver, getBestStaffing, getBestStaffingCost, getCuttingPlaneParams, getCuttingPlaneTest, getMapFlowIndex, getMapStaffingIndex, getOptimalSL, getOptimalSLPerCall, getPerAgentCost, getStaffingCost, localSearch, main, optimize, optimizeCP, optimizeLocalSearch, printNumAgents, printNumAgents, setDefaultSolver, setMapFlowIndex, setMapStaffingIndex, solveMaxFlow, solverSolve
public CuttingPlaneOnly(CallCenter cc, CuttingPlaneParams cutParams, CuttingPlaneTest cpTest, ContactCenterEval eval)
CuttingPlaneParams.useLocalSearch
and
CuttingPlaneParams.solveWithMaxFlowCut
are set to false
.cc
- cutParams
- cpTest
- eval
- public HashMap<Integer,LinearConstraint> getConstraintMap()
CuttingPlaneOptimizer.constraintMap
.
The variables associated to the coefficient array are given by
getVarIndexMap()
.public HashMap<String,Integer> getVarIndexMap()
CuttingPlaneOptimizer.varIndexMap
.protected boolean addSubGradientConstraint(SubgradientInfo subgInfo) throws OptimizerException
CuttingPlaneOptimizer
Here is the constraint to be added :
After rearranging the terms, it becomes :
addSubGradientConstraint
in class CuttingPlaneOptimizer
subgInfo
- the subgradient information. If SubgradientInfo.getServiceLevel()
has only one element, then it is the global service level (SL), otherwise the
subgradient has been estimated for each call type with unsatisfied SL target.true
if the cuts have been added successfully,
or false
if no cut has been addedOptimizerException
protected StaffingSolution solveInstance() throws OptimizerException
OptimizerException
protected void setCuttingPlaneTest(CuttingPlaneTest cpTest)
CuttingPlaneTest
.cpTest
- the new test simulatorprotected void setCallCenter(CallCenter cc)
cc
- the new call center model to use