to promote a consistent mean to compare solutions.
Also, we managed to improve the identification of
glitches and bugs in the code, raising the reliability
of the software being developed from early stages of
the project. Moreover, we analysed the advantages of
using the Solution Dispenser and presented the com-
putational gains that can be obtained by employing
such technique and the design patterns presented.
In conclusion, the guidelines of the API design
proposed in this work can help academics and practi-
tioners to achieve improved results, both for research
or production purposes. While the API provides a
fair mechanism for researchers to develop and as-
sess their algorithms, it also provides a reliable frame-
work for practitioners to ground their solutions. Ad-
ditionally, the computational performance that can be
gained from applying the aforementioned techniques
can help researchers to develop their algorithms and
the industry to improve their solutions or reduce costs.
Finally, our reported experience, arising from a col-
laboration with an industrial partner, may be useful
for other researchers and practitioners in a similar po-
sition.
Our future work will further investigate the data
structures aiming to improve their efficiency. Also,
we will test the proposed dispenser on a real-world
environment, assessing it with optimisation algo-
rithms solving real-world problems.
REFERENCES
Bacon, D. F., Cheng, P., and Rajan, V. T. (2003). Con-
trolling fragmentation and space consumption in the
metronome, a real-time garbage collector for java.
SIGPLAN Not., 38(7):81–92.
Cahon, S., Melab, N., and Talbi, E. (2004). Paradiseo: a
framework for the reusable design of parallel and dis-
tributed metaheuristics. Journal of heuristics, 10:357–
380.
Castillo-Salazar, J. A., Landa-Silva, D., and Qu, R. (2012).
A survey on workforce scheduling and routing prob-
lems. In Proceedings of the 9th International Con-
ference on the Practice and Theory of Automated
Timetabling (PATAT 2012), pages 283–302, Son, Nor-
way.
Castillo-Salazar, J. A., Landa-Silva, D., and Qu, R. (2014).
Workforce scheduling and routing problems: litera-
ture survey and computational study. Annals of Oper-
ations Research.
Durillo, J. J. and Nebro, A. J. (2011). jMetal: A Java frame-
work for multi-objective optimization. Advances in
Engineering Software, 42:760–771.
Huang, F. (2012). A New Application Programming Inter-
face and a Fortran-like Modeling Language for Eval-
uating Functions and Specifying Optimization Prob-
lems at Runtime. International Journal of Advanced
Computer Science and Applications(IJACSA), 3(4).
Laesanklang, W., Landa-Silva, D., and Castillo-Salazar,
J. A. (2015a). Mixed integer programming with de-
composition to solve a workforce scheduling and rout-
ing problem. In ICORES 2015 - Proceedings of the
4rd International Conference on Operations Research
and Enterprise Systems, pages 283–293.
Laesanklang, W., Pinheiro, R., Algethami, H., and Landa-
Silva, D. (2015b). Extended decomposition for mixed
integer programming to solve a workforce scheduling
and routing problem. In Operations Research and En-
terprise Systems, volume 577 of Communications in
Computer and Information Science, pages 191–211.
Springer International Publishing.
Lukasiewycz, M., Glaß, M., Reimann, F., and Teich, J.
(2011). Opt4J - A Modular Framework for Meta-
heuristic Optimization. In Proceedings of the Genetic
and Evolutionary Computing Conference (GECCO
2011), pages 1723–1730, Dublin, Ireland.
Matias, J., Correia, A., Mestre, P. Graga, C., and Serodio,
C. (2010). Web-based application programming inter-
face to solve nonlinear optimization problems. In Pro-
ceedings of the World Congress on Engineering 2010,
Vol III.
Mestre, P., Matias, J., Correia, A., and S., C. (2010). Direct
search optimization application programming inter-
face with remote access. IAENG International Jour-
nal of Applied Mathematics, pages 251–261.
Nystrom, R. (2014). Game Programming Patterns. Genever
— Benning.
Pinheiro, R., Landa-Silva, D., and Atkin, J. (2016). A vari-
able neighbourhood search for the workforce schedul-
ing and routing problem. In Advances in Nature and
Biologically Inspired Computing, volume 419 of Ad-
vances in Intelligent Systems and Computing, pages
247–259. Springer International Publishing.
Pinheiro, R. L. and Landa-Silva, D. (2014). A development
and integration framework for optimisation-based en-
terprise solutions. In ICORES 2014 - Proceedings of
the 3rd International Conference on Operations Re-
search and Enterprise Systems, Angers, Loire Valley,
France, March 6-8, 2014., pages 233–240.
Siebert, F. (2000). Eliminating external fragmentation in a
non-moving garbage collector for java. In Proceed-
ings of the 2000 International Conference on Com-
pilers, Architecture, and Synthesis for Embedded Sys-
tems, CASES ’00, pages 9–17, New York, NY, USA.
ACM.
Walnes, J. (2016). Xstream. http://x-stream.github.io/.
Yener, M., Theedom, A., and Rahman, R. (2014). Profes-
sional Java EE Design Patterns. Wiley.
ICEIS 2016 - 18th International Conference on Enterprise Information Systems
98