Note: This web page is under construction.
The CCOptim library contains Java programs for the management of call centers. The main programs are developed for the agent staffing and scheduling optimization, and also call-to-agent routing optimization. Several queueing formulas, such as Erlang A (abandonment), Erlang B and C, are also available. This package uses heavily the (free) Java libraries ContactCenters and SSJ for the modeling and simulation of call centers.
CCOptim has been developed mostly during the master and doctorate degrees of Wyean Chan, under the supervision of Prof. Pierre L'Ecuyer, at the Department of Computer Science and Operations Research of Université de Montréal. This library contains original algorithms developed by the author and also implementations of methods from scientific papers written by other researchers.
Java 6 is required to run these programs. The required libraries are included in the folder 'lib'. This Java library is free to use, but the user must install his own solver library in order to run the cutting-plane optimization. In particular, many staffing optimization programs that solve linear and integer problems have been hard-coded to use Ilog Cplex.
This software is provided as is and free to use for personal, academic and non-commercial usage. This software is provided without warranty of any kind.
Last update: 2015-08-24
Download the CCOptim JAR file.
View the JAR Libraries.
Implemented Java solver interface : Ilog Cplex (tested with Cplex 8, 9 and 12), Apache.org Solver and
Later version of Cplex should be compatible.
Unfortunately, Opsresearch has been discontinued since many years and it seems to have disappeared from the web. Their jar package is made available here: or124.jar.
Go here for the old version 1.
View the Javadoc API (HTML).
Download Javadoc API (zip file).
Here are some examples of XML files that are required by the programs in CCOptim. The user can use these files to test the programs or to customize the parameters.
For example, the files batchSimParams.xml and repSimParams.xml contain parameters for the simulator. The file cp.xml contains the optimization parameters for CuttingPlaneOptimizer. To solve example ex4.xml with this program, the user can execute the following command in the terminal:
java umontreal.iro.lecuyer.ccoptim.cp.CuttingPlaneOptimizer ex4.xml batchSimParams.xml cp.xml
(Sorry, I will give a better description of the examples in the future.)
As a Java library, the methods and algorithms are accessible and can be integrated
into the user's own program.
The library also provides many executable programs (implemented as the
that can be executed in terminal or command line.
This library contains multiple packages, with each package usually designed for a particular type of problem.
Agent staffing optimization for a single period.
Agent scheduling optimization with shifts and multiple periods. This problem is a generalization of the staffing problem with many periods and a shift structure.
Call-to-agent routing policies and routing optimization.
Approximation formulas (Erlang A, B and C), and call center approximation models.
Erlang A calculator: An extension to Erlang C by adding impatient customers and abandonments to the model. The customer patience time is modeled by an exponential distribution. It is recommended to use Erlang A instead of Erlang C when there are abandonments.
Erlang B calculator: This is the well known Erlang formula without a waiting queue. A new arriving customer is systematically blocked (and rejected) if all servers are occupied.
Erlang C calculator: This is the well known Erlang formula. The customers have infinite patience time, hence no abandonments. Our program supports limited and unlimited queue capacity. If the queue has customer abandoments, we strongly suggest to use Erlang A instead.
Looking for a call center simulation software? Check out our project ContactCenters!
. . , edn., () : chap. , . .
Here is a partial list of the scientific publications that have been implemented in this library:
For questions, comments, suggestions or bug alerts, please contact:
Wyean Chan - firstname.lastname@example.org
Simulation lab at DIRO - email@example.com
Last update : 2017-04-25