Abstract
The Operations Research EXperiment Framework for Java (OREX-J) is an object-oriented software framework that helps users to design, implement and conduct computational experiments for the analysis of optimization algorithms. As it was designed in a generic way using object-oriented programming and design patterns, it is not limited to a specific class of optimization problems and algorithms. The purpose of the framework is to reduce the amount of manual labor required for conducting and evaluating computational experiments: OREX-J provides a generic, extensible data model for storing detailed data on an experimental design and its results. Those data can include algorithm parameters, test instance generator settings, the instances themselves, run-times, algorithm logs, solution properties, etc. All data are automatically saved in a relational database (MySQL, http://www.mysql.com/) by means of the object-relational mapping library Hibernate (http://www.hibernate.org/). This simplifies the task of analyzing computational results, as even complex analyses can be performed using comparatively simple Structured Query Language (SQL) queries. Also, OREX-J simplifies the comparison of algorithms developed by different researchers: Instead of integrating other researchers’ algorithms into proprietary test beds, researchers could use OREX-J as a common experiment framework. This paper describes the architecture and features of OREX-J and exemplifies its usage in a case study. OREX-J has already been used for experiments in three different areas: Algorithms and reformulations for mixed-integer programming models for dynamic lot-sizing with substitutions, a simulation-based optimization approach for a stochastic multi-location inventory control model, and an optimization model for software supplier selection and product portfolio planning.
Similar content being viewed by others
References
Bartz-Beielstein T (2003) Experimental analysis of evolution strategies—overview and comprehensive introduction. Technical report, Universität Dortmund
Birattari M (2009) Tuning metaheuristics—a machine learning perspective. In: Studies in computational intelligence, vol 197. Springer, Berlin-Heidelberg-New York
Cahon S, Melab N, Talbi E (2004) Paradis EO: a framework for the reusable design of parallel and distributed metaheuristics. J Heuristics 10(3): 357–380
Demetrescu C, Italiano G (2000) What do we learn from experimental algorithmics? In: Nielsen M, Rovan B (eds) Mathematical foundations of computer science 2000 (MFCS 2000), Bratislava, Slovakia. Lecture notes in computer science, vol 1893. Springer, Berlin-Heidelberg-New York, pp 36–51
Di Gaspero L, Schaerf A (2003) Easy Local++: an object-oriented framework for the flexible design of local-search algorithms. Softw Pract Exp 33(8): 733–765
Di Gaspero L, Roli A, Schaerf A (2007) Easy Analyzer: an object-oriented framework for the experimental analysis of stochastic local search algorithms. In: Goos G, Hartmanis J, Leeuwen J (eds) Engineering stochastic local search algorithms. Designing, implementing and analyzing effective heuristics. Lecture notes in computer science, vol 4638. Springer, Berlin-Heidelberg-New York, pp 76–90
do Carmo R, de Campos G, de Souza J (2008) Easy Meta: a framework of metaheuristics for mono-objective optimization problems. In: Anais do XL Simpòsio Brasileiro de Pesquisa Operacional (SBPO2008). João Pessoa, Brazil
Durillo J, Nebro A, Luna F, Dorronsoro B, Alba E (2006) jMetal: a Java framework for developing multi-objective optimization metaheuristics. Tech. Rep. ITI-2006-10, Departamento de Lenguajes y Ciencias de la Computación, University of Málaga
Durillo J, Nebro A, Alba E (2010) The jMetal framework for multi-objective optimization: design and architecture. In: Proceedings of the IEEE Congress on evolutionary computation (CEC) 2010, pp 4138–4325
Fink A, Voß S (2002) Hot Frame: a heuristic optimization framework. In: Optimization software class libraries. Springer, Berlin-Heidelberg-New York, pp 81–154
Fink A, Voß S, Woodruff D (1998) Building reusable software components for heuristic search. In: Kall P, Lüthi HJ (eds) Operations research proceedings 1998. Springer, Berlin-Heidelberg-New York, pp 210–219
Fourer R, Ma J, Martin K (2008) Optimization services: a framework for distributed optimization. Tech Rep, COIN-OR
Gagné C, Parizeau M (2006) Open BEAGLE: a C++ framework for your favorite evolutionary algorithm. ACM SIGEVOlution 1(1):12–15
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading
Jünger M, Thienel S (2000) The ABACUS system for branch-and-cut-and-price algorithms in integer programming and combinatorial optimization. Softw Pract Exp 30:1325–1349
Johnson D (2002) A theoretician’s guide to the experimental analysis of algorithms. Data structures, near neighbor searches, and methodology: fifth and sixth DIMACS implementation challenges, pp 215–250
Kleppe A, Warmer J, Bast W (2003) MDA explained: the model driven architecture: practice and promise. Addison-Wesley, Boston
Lang JC (2008) Multi-location transshipment and substitution problems: an application to blood banks. Tech Rep, Schriften zur Quantitativen Betriebswirtschaftslehre, Department of Law, Business Administration and Economics, Technische Universität Darmstadt, Germany
Lang JC, Domschke W (2010) Efficient reformulations for dynamic lot-sizing problems with product substitution. OR Spectrum 32(2): 263–291
Lang JC, Shen ZJM (2011) Fix-and-optimize heuristics for capacitated lot-sizing with sequence-dependent setups and substitutions. Eur J Oper Res 214(3): 595–605
Lang JC, Widjaja T, Buxmann P, Domschke W, Hess T (2008) Optimizing the supplier selection and service portfolio of a SOA service integrator. In: Proceedings of the 41st annual Hawaii international conference on system sciences, pp 89–98
Law A (2006) Simulation modeling and analysis, 4th edn. McGraw-Hill, New York
Lewis J, Neumann U (2003) Performance of Java versus C++. Tech Rep, Computer Graphics and Immersive Technology Lab, University of Southern California
Linderoth J, Ralphs T (2004) Noncommercial software for mixed-integer linear programming. In: Karlof JK (ed) Integer programming: theory and practice. CRC Press, Boca Raton pp 253–304
Lougee-Heimer R (2003) The common optimization Interface for operations research: promoting open-source software in the operations research community. IBM J Res Dev 47(1): 57–66
Moret B (2002) Towards a discipline of experimental algorithmics. In: Goldwasser MH, Johnson DS, McGeoch CC (eds) Data structures, near neighbor searches, and methodology: 5th and 6th DIMACS implementation challenges: papers related to the DIMACS challenge on dictionaries and priority queues (1995–1996) and the DIMACS challenge on near neighbor searches (1998–1999). DIMACS series in discrete mathematics and theoretical computer science, vol 59. American Mathematical Society, pp 197–213
Moret B, Shapiro H (2001) Algorithms and experiments: the new (and old) methodology. J Univers Comput Sci 7(5): 434–446
Ralphs T, Güzelsoy M (2006) The SYMPHONY callable library for mixed integer programming. The next wave in computing, optimization, and decision technologies, pp 61–76
Saltzman M (2002) COIN-OR: an open-source library for optimization. In: Nielsen SS (ed) Programming languages and systems in computational economics and finance, chap 1. Kluwer, Boston, pp 3–32
Spillner A, Linz T, Schaefer H (2007) Software testing foundations: a study guide for the certified tester exam, 3rd edn. Rocky Nook, Santa Barbara
Stolte C, Tang D, Hanrahan P (2008) Polaris: a system for query, analysis, and visualization of multidimensional databases. Commun ACM 51(11): 75–84
Stonebraker M (2010) SQL databases v. NoSQL databases. Commun ACM 53(4): 10–11
Stützle T, Birattari M, Hoos H (2009) Engineering stochastic local search algorithms—designing, implementing and analyzing effective heuristics. In: Proceedings of second international workshop, SLS 2009, Brussels, Belgium, September 3–4, 2009. Lecture notes in computer science, vol 5752. Springer, Berlin-Heidelberg-New York
Taillard E (2005) Few guidelines for analyzing methods. In: Proceedings of the 6th metaheuristics international conference (MIC 2005). Austria, Vienna
Voß S, Woodruff D (2002) Optimization software class libraries. Kluwer, Boston
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Lang, J.C., Widjaja, T. OREX-J: towards a universal software framework for the experimental analysis of optimization algorithms. OR Spectrum 35, 735–769 (2013). https://doi.org/10.1007/s00291-012-0290-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00291-012-0290-7