Abstract
We introduce a framework for interactive multiobjective optimization methods called DESDEO released under an open source license. With the framework, we want to make interactive methods easily accessible to be applied in solving real-world problems. The framework follows an object-oriented software design paradigm, where functionalities have been divided to modular, self-contained components. The framework contains implementations of some interactive methods, but also components which can be utilized to implement more interactive methods and, thus, increase the applicability of the framework. To demonstrate how the framework can be used, we consider an example problem where the pollution of a river is controlled. To solve this problem with four objectives, we apply two interactive methods called NAUTILUS and NIMBUS and show how the method can be switched during the solution process.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Agrell, P. J., Lence, B. J., & Stam, A. (1998). An interactive multicriteria decision model for multipurpose reservoir management: The Shellmouth Reservoir. Journal of Multi-Criteria Decision Analysis, 7(2), 61–86.
Bechikh, S., Ben Said, L., & Ghedira, K. (2010). Estimating nadir point in multi-objective optimization using mobile reference points. In IEEE Congress on Evolutionary Computation (CEC) (pp. 1–9).
Benayoun, R., de Montgolfier, J., Tergny, J., & Laritchev, O. (1971). Linear programming with multiple objective functions: Step method (STEM). Mathematical Programming, 1, 366–375.
Buchanan, J. T., & Corner, J. (1997). The effects of anchoring in interactive MCDM solution methods. Computers & Operations Research, 24(10), 907–918.
Chankong, V., & Haimes, Y. Y. (1983). Multiobjective decision making theory and methodology. New York: North-Holland.
Deb, K., Miettinen, K., & Chaudhuri, S. (2010). Towards an estimation of nadir objective vector using a hybrid of evolutionary and local search approaches. IEEE Transactions on Evolutionary Computation, 14(6), 821–841.
Durillo, J. J., & Nebro, A. J. (2011). Jmetal: A java framework for multi-objective optimization. Advances in Engineering Software, 42, 760–771.
Fowler, M. (2004). UML distilled: A brief guide to the standard object modeling language. Boston: Addison-Wesley Professional.
Hakanen, J., Sahlstedt, K., & Miettinen, K. (2013). Wastewater treatment plant design and operation under multiple conflicting objective functions. Environmental Modelling & Software, 46(1), 240–249.
Hwang, C. L., & Masud, A. S. M. (1979). Multiple objective decision making, methods and applications: A state-of-the-art survey. Berlin: Springer.
Kahneman, D., & Tversky, A. (1979). Prospect theory: An analysis of decision under risk. Econometrica, 47, 263–291.
Kaliszewski, I. (2004). Out of the mist–towards decision-maker-friendly multiple criteria decision making support. European Journal of Operational Research, 158(2), 293–307.
Korhonen, P., Salo, S., & Steuer, R. E. (1997). A heuristic for estimating nadir criterion values in multiple objective linear programming. Operations Research, 45(5), 751–757.
Li, L., Yevseyeva, I., Basto-Fernandes, V., Trautmann, H., Jing, N., & Emmerich, M. (2017). Building and using an ontology of preference-based multiobjective evolutionary algorithms. In H. Trautmann, G. Rudolph, K. Klamroth, O. Schütze, M. Wiecek, Y. Jin, & C. Grimme (Eds.), Proceedings of the 9th International Conference on Evolutionary Multi-Criterion Optimization (pp. 406–421). Cham: Springer.
López-Ibáñez, M., & Knowles, J. (2015). Machine decision makers as a laboratory for interactive EMO. In A. Gaspar-Cunha, C. Henggeler Antunes, & C. C. Coello (Eds.), Evolutionary multi-criterion optimization. Lecture notes in computer science (pp. 295–309). Cham: Springer.
Miettinen, K. (1999). Nonlinear multiobjective optimization. Dordrecht: Kluwer Academic Publishers.
Miettinen, K. (2006). IND-NIMBUS for demanding interactive multiobjective optimization. In T. Trzaskalik (Ed.), Multiple Criteria Decision Making ’05 (pp. 137–150). Katowice: The Karol Adamiecki University of Economics in Katowice.
Miettinen, K. (2007). Using interactive multiobjective optimization in continuous casting of steel. Materials and Manufacturing Processes, 22(5), 585–593.
Miettinen, K., Eskelinen, P., Ruiz, F., & Luque, M. (2010). NAUTILUS method: An interactive technique in multiobjective optimization based on the nadir point. European Journal of Operational Research, 206(2), 426–434.
Miettinen, K., & Hakanen, J. (2008). Why use interactive multi-objective optimization in chemical process design. In G. P. Rangaiah (Ed.), Multi-objective optimization: Techniques and applications in chemical engineering (pp. 153–188). Singapore: World Scientific.
Miettinen, K., & Mäkelä, M. M. (2000). Interactive multiobjective optimization system WWW-NIMBUS on the Internet. Computers & Operations Research, 27(7–8), 709–723.
Miettinen, K., & Mäkelä, M. M. (2002). On scalarizing functions in multiobjective optimization. OR Spectrum, 24(2), 193–213.
Miettinen, K., & Mäkelä, M. M. (2006). Synchronous approach in interactive multiobjective optimization. European Journal of Operational Research, 170(3), 909–922.
Miettinen, K., Mäkelä, M. M., & Männikkö, T. (1998). Optimal control of continuous casting by nondifferentiable multiobjective optimization. Computational Optimization and Applications, 11, 177–194.
Miettinen, K., Podkopaev, D., Ruiz, F., & Luque, M. (2015). A new preference handling technique for interactive multiobjective optimization without trading-off. Journal of Global Optimization, 63(4), 633–652.
Miettinen, K., & Ruiz, F. (2016). NAUTILUS framework: Towards trade-off-free interaction in multiobjective optimization. Journal of Business Economics, 86(1), 5–21.
Miettinen, K., Ruiz, F., & Wierzbicki, A. P. (2008). Introduction to multiobjective optimization: Interactive approaches. In J. Branke, K. Deb, K. Miettinen, & R. Slowinski (Eds.), Multiobjective optimization: Interactive and evolutionary approaches (pp. 27–57). Berlin: Springer.
Nakayama, H., Kaneshige, K., Takemoto, S., & Watada, Y. (1995). Application of a multi-objective programming technique to construction accuracy control of cable-stayed bridges. European Journal of Operational Research, 87(3), 731–738.
Nakayama, H., & Sawaragi, Y. (1984). Satisficing trade-off method for multiobjective programming. In M. Grauer, & A. P. Wierzbicki (Eds.), Interactive decision analysis (pp. 113–122). Berlin: Springer.
Narula, S., & Weistroffer, H. (1989). A flexible method for nonlinear multicriteria decision-making problems. IEEE Transactions on Systems, Man and Cybernetics, 19(4), 883–887.
Ojalehto, V., Miettinen, K., & Laukkanen, T. (2014). Implementation aspects of interactive multiobjective optimization for modeling environments: The case of GAMS-NIMBUS. Computational Optimization and Applications, 58(3), 757–779.
Ojalehto, V., Podkopaev, D., & Miettinen, K. (2016). Towards automatic testing of reference point based interactive methods. In J. Handl, E. Hart, R. P. Lewis, M. López-Ibáñez, G. Ochoa, & B. Paechter (Eds.), Proceedings of the 14th International Conference on Parallel Problem Solving from Nature (pp. 483–492). Cham: Springer.
Oliphant, T. E. (2007). SciPy: Open source scientific tools for Python. Computing in Science and Engineering, 9, 10–20.
Ravaja, N., Korhonen, P., Köksalan, M., Lipsanen, J., Salminen, M., Somervuori, O., et al. (2016). Emotional–motivational responses predicting choices: The role of asymmetrical frontal cortical activity. Journal of Economic Psychology, 52, 56–70.
Ruiz, A. B., Sindhya, K., Miettinen, K., Ruiz, F., & Luque, M. (2015). E-NAUTILUS: A decision support system for complex multiobjective optimization problems based on the NAUTILUS method. European Journal of Operational Research, 246(1), 218–231.
Slee, M., Agarwal, A., & Kwiatkowski, M. (2007). Thrift: Scalable cross-language services implementation. Facebook White Paper, 5(8).
Stam, A., Kuula, M., & Cesar, H. (1992). Transboundary air pollution in Europe: An interactive multicriteria tradeoff analysis. European Journal of Operational Research, 56(2), 263–277.
Storn, R., & Price, K. (1997). Differential evolution – a simple and efficient heuristic for global optimization over continuous spaces. Journal of Global Optimization, 11(4), 341–359.
Szczepański, M., & Wierzbicki, A. (2003). Application of multiple criteria evolutionary algorithms to vector optimisation, decision support and reference point approaches. Journal of Telecommunications and Information Technology, 3, 16–33.
Tarkkanen, S., Miettinen, K., Hakanen, J., & Isomäki, H. (2013). Incremental user-interface development for interactive multiobjective optimization. Expert Systems with Applications, 40, 3220–3232.
van Rossum, G. (1995). Python tutorial. Technical report, Centrum voor Wiskunde en Informatica (CWI).
Wierzbicki, A. (1982). A mathematical basis for satisficing decision making. Mathematical Modelling, 3, 391–405.
Wierzbicki, A. P. (1980). The use of reference objectives in multiobjective optimization. In G. Fandel & T. Gal (Eds.), Multiple criteria decision making theory and application (pp. 468–486). Berlin: Springer.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix
Appendix
In what follows, we give source listings of the river pollution problem solved in Sect. 4.2. As mentioned earlier, we consider a river that is polluted by a city and a fishery. The aim of the DM is to improve the quality of water and to minimize the costs incurred. The problem has four objectives and two variables, three of the objectives to be maximized and the fourth one to be minimized.
To understand how the problem can be solved, we provide the source code listing in the examples directory of the DESDEO framework as a file named NarulaWeistroffer.py. Note that the framework is under an active development.
Listing 1 Problem initialization
The initialization of the River Pollution problem can be seen in Listing 1. As mentioned earlier, all concrete problems must be derived from some base class. As the problem is formulated with Python, we import the PythonProblem class from the problem module, from which a RiverPollution subclass is derived. In the RiverPollution class, we first provide a description of the problem (with the relevant reference as a documentation string). We then proceed with the problem formulation.
Problem dimensions, variables and other characteristics are defined in the __init__ method of the problem class. Of those, only the number of objective functions and the box constraints of the decision variables are required, other parameters are optional. For the river pollution problem, the number of objective (nobj) is four, and it does not have other constraints (nconst) besides box constraints. As the ideal and nadir objective vectors are known they can be provided, but if they are not known, the method calculates them if needed. Even though the DESDEO framework assumes that all objective functions are to be minimized, it is possible to provide a value for the parameter maximized in order the DESDEO framework to convert objective function values whenever communicating from and to the user interface. If this value is not set, such conversions cannot be made, and they must be handled by the user interface. The value True of the parameter indicates that the objective is to be maximized and with False, it is to be minimized. It is also possible to give names to objective functions as well as a name for the problem as shown in the listing.
Finally, the problem requires decision variables provided with the add_variable method of the class with an instance of the Variable class. The Variable class is initialized with three parameters, namely box constraints giving upper and lower bound value for the decision variables, starting point to be used when solving the problem and name of the variable. Of these, only the first, box constraints, is required and the others are optional. If the starting point is not given but the single objective optimization method used requires a starting point, the lower bounds of the variables are used as the starting point. It should be noted that when the DESDEO framework is extended to handle problems with discontinuous variables, the variable handling must be changed.
Listing 2 Problem initialization
In Listing 2, we show how objective functions are given by overloading the evaluate method of the PythonProblem class. As an input parameter, the evaluate method takes a population, which is a set of decision variable vectors each representing a new objective vector to be calculated. This means that when called, the evaluate method evaluates objective function values for each decision variable vector in the population. If objective function values of a single decision vector are to be evaluated, the population should have only this single decision variable vector. As a return value, the evaluate method gives the objective vector as a list of objective function values.
Listing 3 Solving the problem with NAUTILUS
As mentioned, the DESDEO framework does not include a graphical user interface for solving problems. It does include a text-based framework for building iterative solution processes called tui. In Listing 3, we give an example on how the framework can be used with the tui module to solve a problem via a text-based interface using the first variant of the NAUTILUS method family (which was the first method used in the interactive solution process reported in Sect. 4.2).
In the first three lines of the Listing 3, we import additional classes and modules needed. That is, the tui module containing the text-based user interface, the class NAUTILUSv1 corresponding to the method and finally SciPyDE as the single objective optimization method to be used when solving the scalarized subproblems.
On the last three lines, we first initialize the method class by providing it with an instance of a multiobjective optimization problem formulated earlier and with the single objective optimization method SciPyDE to be used. The call to tui.iter_nautilus function in the line 7 starts the interactive solution process asking the DM to specify the preference information and returning the final solution obtained. On the last line, we print out the obtained solution which are converted from the minimized values to maximized using method problem.to_ui.
Listing 4 Interactive solution process with the NIMBUS method
In Listing 4, we give more details on how an interactive solution process can be implemented using the NIMBUS method as an example. The basic idea is same for all interactive methods currently implemented in the framework. As with the NAUTILUS example, we first import new classes needed when using the NIMBUS method, namely the NIMBUS class itself, and the NIMBUSClassification class to store the preference information obtained from the DM. We use the same RiverPollution and SciPyDE classes to initialize the method used on line 4. In contrast to the NAUTILUS example, here we do not use the tui module to get the DM’s preferences and to show solutions. Instead, they are given directly to show how the interactive solutions process is constructed.
On line 6, we set the previously obtained NAUTILUS_solution as the current, selected solution. On lines 8–12 new preference information is given as a NIMBUS classification and initialized as the class1 object of NIMBUSClassification. The preference information is the same as the information given be the DM in Table 2. New solutions are generated on line 13 with the nextIteration method of the NIMBUS object and printed out in line 14. This can then be continued until the final solution is found.
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Ojalehto, V., Miettinen, K. (2019). DESDEO: An Open Framework for Interactive Multiobjective Optimization. In: Huber, S., Geiger, M., de Almeida, A. (eds) Multiple Criteria Decision Making and Aiding. International Series in Operations Research & Management Science, vol 274. Springer, Cham. https://doi.org/10.1007/978-3-319-99304-1_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-99304-1_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-99303-4
Online ISBN: 978-3-319-99304-1
eBook Packages: Business and ManagementBusiness and Management (R0)