Implementation aspects of interactive multiobjective optimization for modeling environments: the case of GAMS-NIMBUS

Interactive multiobjective optimization methods have provided promising results in the literature but still their implementations are rare. Here we introduce a core structure of interactive methods to enable their convenient implementation. We also demonstrate how this core structure can be applied when implementing an interactive method using a modeling environment. Many modeling environments contain tools for single objective optimization but not for interactive multiobjective optimization. Furthermore, as a concrete example, we present GAMS-NIMBUS Tool which is an implementation of the classification-based NIMBUS method for the GAMS modeling environment. So far, interactive methods have not been available in the GAMS environment, but with the GAMS-NIMBUS Tool we open up the possibility of solving multiobjective optimization problems modeled in the GAMS modeling environment. Finally, we give some examples of the benefits of applying an interactive method by using the GAMS-NIMBUS Tool for solving multiobjective optimization problems modeled in the GAMS environment.


Introduction
Many real-world optimization problems contain several, conflicting objectives that should be optimized at the same time. For such problems it is usually not possible to find a single optimal solution. Instead, a multiobjective optimization problem typically has several compromise solutions with different trade-offs between objective functions. In order to select the best solution from the set of these so-called Pareto optimal solutions, some additional information is needed. This information, called preference information, is usually obtained from a decision maker (DM), who is assumed to have expertise in the domain of the optimization problem being solved.
As the role of the DM is important when solving multiobjective optimization problems, multiobjective optimization methods are often classified according to the role of the DM (see, e.g., [26]). In this paper we consider so-called interactive methods, where the solution process is iterative consisting of steps where some information is shown to the DM and the DM is asked to provide preference information. Pareto optimal solutions are generated based on this information until the DM finds satisfactory solution.
Interactive methods have provided promising solutions in various fields of application including reservoir management [1], wastewater treatment management [14,15], optimal control in steel casting [28,38], chemical engineering [31], construction of bridges [40] and analyzing air pollution [46], etc. Even though many interactive methods have been proposed in the literature during the years (see, e.g., [22,26,39] and references therein), implementations of interactive methods are scarce. Separating methodological issues from technical ones is suggested in [20] as a way to enhance method implementations. We follow this line here.
The objectives of this paper are twofold. First we present a core structure of characteristics common to interactive methods and introduce general guidelines on how these characteristics can be utilized to implement an interactive method. On the other hand, models of various phenomena have been created in different modeling environments over the years but, typically, the optimization capabilities available are limited to single objective optimization. Our second objective is to demonstrate with the help of the core structure that the optimization capabilities of modeling environments can be extended without too much effort by providing a possibility to use interactive multiobjective optimization methods. As a concrete example, we apply the core structure to implement the interactive NIMBUS method [33][34][35]37] for the GAMS environment [5], an example of widely used modeling environments. With the resulting GAMS-NIMBUS Tool, we can provide users of the GAMS environment an access to an interactive multiobjective optimization method and, on the other hand, the NIMBUS method included in the GAMS-NIMBUS Tool can take advantage of the modeling capabilities of GAMS and apply single objective GAMS solvers as a part of the solution process.
The rest of this paper is organized as follows. In Sect. 2 we introduce basic concepts of multiobjective optimization that are relevant for the rest of the paper. In Sect. 3 we briefly describe general characteristics of interactive methods as well as introduce a core structure common to many interactive methods to enable their implementation. In Sect. 4 we provide insight on how to prepare an existing model (e.g., in a modeling environment) of an optimization problem to be solved with an interactive method utilizing the core structure. Then in Sect. 5 we introduce a new GAMS-NIMBUS Tool, which is an implementation of the interactive NIMBUS method for the GAMS modeling environment. The GAMS-NIMBUS Tool implementation is based on the ideas presented in the two previous sections. In Sect. 6 we present two numerical examples to demonstrate how one can apply our findings to solve multiobjective optimization problems in an interactive way in a modeling environment and demonstrate the advantages of this approach. The paper is concluded in Sect. 7.

Some concepts of multiobjective optimization
In this section we briefly present the concepts and notation of multiobjective optimization that are relevant for the following sections. We consider multiobjective optimization problems of the form where f i : S → R are k(≥ 2) conflicting objective functions, and x = (x 1 , x 2 , . . . , x n ) T is the decision (variable) vector bounded by constraints that form the feasible set S ⊂ R n . Objective vectors f(x) = ( f 1 (x), f 2 (x), . . . , f k (x)) T consist of objective (function) values calculated at x. A decision vectorx and the corresponding objective vector f(x) are called Pareto optimal if there does not exist any other feasible x so that f j (x) ≤ f i (x) for all i = 1, ..., k and f j (x) < f j (x) for least one j = 1, ..., k. These objective vectors are called Pareto optimal solutions to problem (1), and a set of Pareto optimal solutions is called a Pareto optimal set or a Pareto frontier [26]. Therefore, instead of a single optimal solution, a multiobjective optimization problem with conflicting objectives has several different Pareto optimal solutions with different trade-offs.
Many methods have been developed for solving multiobjective optimization problems. The overall process to find a solution to be called a final solution for problem (1) is called a solution process.
As Pareto optimal solutions cannot be compared without some external preference information, the most preferred of the solutions can be selected based on the preference information expressed by a DM. As mentioned in the introduction, multiobjective optimization methods can be classified according to the role of the DM in the solution process [26]. In this research, we consider interactive methods where the preference information is obtained iteratively from the DM during the solution process. The interactive solution process aims at supporting the DM in identifying the Pareto optimal solution which best corresponds to his/her preferences. This most preferred solution is here the final solution.
Information about the ranges of the objective function values in the Pareto optimal set may be useful for the DM. It is possible to determine the best (ideal) value of each objective function by optimizing it individually (subject to the feasible set S).
The worst values of the objective functions in the Pareto optimal set can be estimated, for example, by using a so-called pay-off table [2,26] which can be formed after individual optima have been found or by using some more advanced heuristic (see, e.g., [8].) The vectors representing the best and the worst objective function values in the set of Pareto optimal solutions are called an ideal objective vector/ z ∈ R k and a nadir objective vector/ z nad ∈ R k , respectively. For computation reasons, we define also a utopian objective vector/ z , which is strictly better than z in each component.
A common way of solving a multiobjective optimization problem is to use scalarization, that is, to reformulate the problem together with the preference information available as a single objective optimization problem, to be called a (scalarized) subproblem. The objective function of the subproblem is called a scalarizing function. By selecting the scalarizing function carefully, one can guarantee that the decision vector which is optimal to the subproblem is Pareto optimal to problem (1). For further details, see, e.g., [26].
Interactive methods discussed in this research are based on scalarization of the multiobjective optimization problem. An example of such a scalarized subproblem that can be used to generate Pareto optimal decision vectors for (1) is called an achievement scalarizing function [49] minimize max i=1,...,k wherez ∈ R k is a reference point representing the DM's preferences in the form of desirable objective function values and ρ > 0 is a so-called augmentation coefficient. In this formula we assume that all object functions are to be minimized. Different interactive methods utilize different scalarized subproblems involving different types of preference information. Besides reference points, examples of other types of preference information are classification, marginal rates of substitution and selecting from a small set of Pareto optimal solutions (for further details see, e.g., [22,26,39,42]). When selecting an interactive method to be used one should check what kind of preference information the DM is willing and able to provide.
The scalarized subproblem must be solved with a single objective optimization method that is appropriate to the characteristics of the problem in question (e.g., differentiable or nondifferentiable, convex or nonconvex, etc.). By changing the preference information, e.g., values of the components of the reference point vectorz in subproblem (2), one can generate different Pareto optimal solutions and this is how the DM can direct the solution process. For further information on multiobjective optimization see, e.g., [4,7,26,47] and references therein.
Before introducing the actual core structure of interactive multiobjective optimization methods we need to define concepts model and solver that are needed in the following sections. In order to solve an optimization problem with a computer it must be expressed as computational model. This can be done, for example, using a modeling language in some modeling environment or with some simulator software. Such an expression of the optimization problem is called a model. When modeling a multiobjective optimization problem it should be noted that the preference information to be given by the DM is typically based on objective function values, so the objective functions in the model should be meaningful for the DM.
In this research we do not consider single objective optimization methods. Instead, we assume that there exists an appropriate implementation of a method that can be used to solve the subproblem in question. Such an implementation is called a solver. For example, when solving problems modeled with the GAMS modeling language, it is natural to use single objective solvers included in the GAMS environment. The same is naturally valid for other modeling environments.

Core structure of interactive multiobjective optimization methods
In this section we introduce a core structure which characterizes features common to scalarization-based interactive multiobjective optimization methods. The core structure can be used as a general guideline when building an implementation of an interactive multiobjective optimization method. The core structure is not devoted to any particular modeling environment or modeling language but because of its general nature it is suitable for any implementation environment.
As mentioned earlier, the solution process with an interactive multiobjective optimization method is iterative. On each iteration the DM is provided with Pareto optimal solutions and asked to specify new preference information to generate more satisfactory new Pareto optimal solution(s) for the next iteration. With this iterative process, the DM can influence from which part of the Pareto optimal set the final solution is being looked for. During the iterative exploration of the Pareto frontier, the DM can obtain new information and insight about the interdependencies among the objective functions. It is even possible that the new knowledge obtained affects his or her preferences, leading to solutions which were not previously considered. As mentioned in Sect. 2, when solving the multiobjective optimization problem (1), the solution process generally aims at supporting the DM in identifying a single Pareto optimal solution that he or she finds as the most preferred (see, e.g. [39]).
A core structure of an interactive multiobjective optimization method can be generally characterized to contain the following steps: 1. Initialize the process, e.g., calculate ideal and nadir objective vectors. 2. By solving a method-specific subproblem generate an initial Pareto optimal solution to be used as a current solution. 3. Ask the DM to provide preference information related to the current solution. 4. Generate new solution(s) based on the preference information by solving appropriate subproblem(s). 5. Ask the DM to select the best solution of the previously generated solutions and denote it as the current solution. 6. If the selected current solution is satisfactory, stop. Otherwise continue from step 3.
The core structure introduced is in line with the general interactive approaches presented in [22,42] as well as with methods described, e.g., in [31,39]. As can be seen, this core structure has two active participants: a) the DM, who is asked to provide preference information and to select the solution that best corresponds to his or her preferences and b) the algorithm, which provides the DM with the initial solution and new Pareto optimal solutions based on preference information given. Therefore, an implementation of an interactive method can be divided into two distinct parts: the user interface (steps 3 and 5) and the algorithm part (steps 1, 2 and 4).
The core structure is an answer to the need posed in [20] of separating methodological issues (algorithm) from technical ones (user interface) in order to enhance method implementations. Thus, in this research we focus on the algorithm side and do not consider user interface implementation (for such studies see, e.g., [32,48]). Besides, user interfaces may need application-specific elements but we want to retain on a more general algorithm level without going into application-specific details. One example of an implementation of a user interface is demonstrated in Sect. 5.
It should be noted that different methods can require different types of user input in addition to the preference information. For example, the solution process may contain parameters that the DM can change, such as the number of new Pareto optimal solutions to be obtained per each iteration. If the additional information is to be given once, it is a part of the initialization in step 1. Otherwise, it is a part of step 3.
As mentioned earlier, we consider scalarization-based interactive multiobjective optimization methods where Pareto optimal solutions are generated by solving single objective subproblems. The algorithm side of an interactive method uses the original multiobjective optimization problem and the preference information to formulate a scalarized single objective subproblem. When this subproblem is solved with an appropriate single objective solver, the Pareto optimal solution generated should correspond to the given preference information. As mentioned, each interactive method usually has a distinct fashion for the DM to express his or her preference information and different methods use different scalarizations to create the subproblem (see, e.g. [6,37,39,41,42,49]).
Steps 1 and 2 of the core structure of an interactive method presented do not depend on the DM, so these steps can be regarded as a single initialization stage at the beginning of the solution process. During the initialization, in step 1, the ideal and the nadir objective vectors can be determined to provide information of the ranges of the objective function values attainable in the Pareto optimal set as described in Sect. 2, or their estimates can be obtained from the DM. In step 2, the initial Pareto optimal solution is generated as the starting point of the solution process by solving some method-specific subproblem providing a Pareto optimal solution. Alternatively, a starting solution can be asked from the DM. In the latter case, the Pareto optimality must be checked by projecting the solution to the Pareto frontier using, e.g. subproblem (2) (by setting the objective vector of the starting solution as the reference point).
Whenever an interactive method is implemented, the algorithm part of the implementation requires various models. Creating these models means implementing method-specific subproblems in the environment in question. Actually this is all that the implementation of the algorithm part needs. Naturally, to get started we need a multiobjective problem model defining the original multiobjective optimization problem. If the initialization stage requires calculating ideal and nadir objective vectors, a model is needed for optimizing each individual objective function separately. As mentioned in Sect. 2, the ideal objective vector and an estimated nadir objective vector can then be obtained. One more model is needed in the initialization stage for step 2 to create the initial Pareto optimal solution. This typically involves implementing a method-specific subproblem which does not involve preference information (as it is not yet available at the very beginning of the solution process). Furthermore, step 4 requires implementing a scalarization model for creating Pareto optimal solution(s) according to the preference information specified. In some interactive methods step 4 uses several subproblems and in such cases we must implement several scalarization models.
The structure of a general interactive multiobjective optimization method following the core structure can be seen in Fig. 1. The results of the initialization stage are passed to the user interface, where the DM can express his or her preference information in step 3. This information is then passed to the scalarization model, implementing step 4 of the core structure. The solution obtained from the scalarization model is a new Pareto optimal solution, which is passed back to the user interface for step 5 where the DM can select the best solution from the set of generated Pareto optimal solutions. If the selected solution is not satisfactory, the solution process is continued from step 3. Otherwise, the selected solution (both decision and objective vectors) is set as the final solution.
As mentioned, steps 2 and 4 provide the DM with new Pareto optimal solutions by solving scalarized subproblems. It is possible that these steps use very similar subproblems. Therefore, it should be noted that the models involved can share some common elements, which makes the implementation even easier.
With the core structure and division of the effort and roles between a user interface and an algorithm, implementing scalarization-based interactive multiobjective optimization methods should be straightforward. An example of a multiobjective optimization method containing the six steps described in the core structure is the NIMBUS method [34,35,37] outlined in Appendix. Next we give a short description of how an existing problem model implemented in a modeling environment can be prepared to be solved using an implementation of an interactive multiobjective optimization method following the core structure.

Preparing the multiobjective problem model
We have noticed how optimization problems are often modeled as single objective optimization problems even though their real character would necessitate considering multiple conflicting objectives simultaneously. One reason for such a simplification is the lack of appropriate multiobjective optimization tools available. In particular, models of various phenomena have been created in different modeling environments over the years but, typically, the optimization capabilities available are limited to single objective optimization. In the previous section we introduced a core structure for interactive multiobjective optimization methods and we can summarize that implementing an interactive method, e.g., in a modeling environment simply involves implementing the multiobjective optimization problem and the method-specific subproblems in the modeling language in question. In this section, we give a short overview on how to prepare an existing (possibly originally single objective) optimization problem model for a modeling environment to be solved with an implementation of an interactive multiobjective optimization method.
In what follows, we present how a multiobjective problem model (as defined for the core structure in the previous section) can be created in a modeling environment based on a previously implemented model. Here this model is referred as original problem model. It should be noted that the implementation guidelines given are not specific to any modeling environment. The given information can be easily applied for most modeling environments, such as GAMS [5], AMPL [10] and AIMMS [3]. In fact, in addition to the case GAMS-NIMBUS described in this research, the guidelines given here have already been applied to implement the interactive NIMBUS method using the OPL modeling language [19] to solve multiobjective optimization problems.
Here we assume that the DM wants to solve some problem involving multiple conflicting objectives and an interactive multiobjective optimization method is desired to be applied. Furthermore, we assume that the DM already has some problem model available. The original problem model can be a single objective model, to which the DM desires to add additional objective functions, or to convert some of the constraints of the original problem model as objective functions. Alternatively, some noninteractive multiobjective optimization method may have already been applied to the problem model (i.e., the problem is already in the form (1), and the DM now wishes to solve the problem with an interactive multiobjective optimization method implemented within a modeling environment. In any case, we assume that the DM has already established which objective functions (depending on decision variables) are to be optimized, and those objective functions (and possible constraints) are expressed with some modeling language.
The process of preparing a multiobjective problem model from an existing original problem model to be solved with an interactive multiobjective optimization method implementation involves the following steps: To be more specific, the first step of preparing a multiobjective problem model is to select an original problem model and identifying which equations stand for objective functions of the multiobjective optimization problem. The objective functions can be either selected from a list of existing equations obtained from the problem model, or they can be written as new equations. The list of equations can be generated, for example, by finding scalar equations where the left or the right side of the equation contains only a single item. Additionally, if the original model has been previously used to solve the problem in question with some single objective or noninteractive multiobjective optimization methods, the related commands (e.g., GAMS solve statements if GAMS is used) should not be included in the multiobjective problem model.
Next, additional information related to the model of the multiobjective optimization problem may be needed, for example, whether the objective functions are to be maximized or minimized. This should be noted that the interactive multiobjective optimization method can take this into account when solving the problem. If objective functions are assumed to be minimized by default and an objective function is indicated to be maximized, the objective function values of the latter must be multiplied by −1 in the model. In the user interface, objective function values should be shown to the DM without this conversion.
Once the multiobjective problem model is finished, the corresponding multiobjective optimization problem can be solved using an implementation of an interactive method. In the next section, we provide a concrete example of an implementation of an interactive method and in the following section we solve two problems with the resulting tool.

GAMS-NIMBUS tool
In this section we demonstrate how an implementation of an interactive multiobjective optimization method can be prepared in a modeling environment based on the ideas presented in Sects. 3 and 4. As a concrete example of applying the core structure we implement the so-called synchronous NIMBUS method [37] (described in Appendix) in GAMS to create a new GAMS-NIMBUS Tool that can be used to solve optimization problems involving multiple objectives. As for the user interface for the GAMS-NIMBUS Tool, we use the interface previously developed for the IND-NIMBUS software framework [27]. (If a user interface was not available, it could be implemented, for example, with the ASK utility of the GAMS environment or, alternatively, simply by manually editing input files.) Some other interactive multiobjective optimization method (e.g., methods presented in [22,42]) could be easily used instead of NIMBUS by simply replacing the models of the scalarized subproblems used in NIMBUS by the models of the subproblems of the other method. (Naturally, if the preference information required from the DM is not similar to the information used in the NIMBUS method, the user interface must be adapted in an appropriate way.) 5.1 Implementing NIMBUS with the core structure for the GAMS environment As mentioned in Sect. 3, the implementation of the algorithm part of the NIMBUS method necessitates implementing various models. Firstly there is the multiobjective problem model, which models the original problem to be optimized. Secondly, there are the models utilized by the initialization stage and scalarization, which create new Pareto optimal solutions.
In the GAMS environment, the multiobjective problem model defines the problem to be solved as a GAMS model. That is, the multiobjective problem model contains GAMS expressions defining the objective functions and constraints of the problem as functions of the decision variables. In addition, the multiobjective problem model contains other information, e.g., the model should contain ideal and nadir objective vector values when available, so there is no need to calculate them for every interactive method iteration. Therefore, the multiobjective problem model is included in the models of the initialization stage as well as in the scalarization model as a submodel in order to grant those models an access to the GAMS equations and formulations defining the original optimization problem as well as other information.
In step 1 of the initialization stage, the ideal and the nadir objective vectors are calculated and estimated, respectively, as mentioned in Sects. 2 and 3. In the NIMBUS method, step 2 means solving a subproblem (2) usingz i = (z nad i + z i )/2 for i = 1, ..., k as components of the reference point to obtain a so-called neutral compromise solution [50] as a starting point for the solution process. In the GAMS-NIMBUS Tool, this subproblem, as well as the single objective optimization problems for calculating the components of the ideal objective vector are naturally implemented in the GAMS modeling language.
As mentioned earlier, the scalarization model contains the single objective subproblem used in step 4 to generate a new Pareto optimal solution based on the preference information specified (obtained from the DM via the user interface). As described in Appendix, the NIMBUS method utilizes up to four different subproblems, which can generate up to four different Pareto optimal solutions for the same preference information (as justified in [36]). Thus, we need four scalarization models in GAMS-NIMBUS, all expressed in the GAMS modelilng language. It should be noted that one of the subproblems includes additional constraints based on preference information besides the original constraints.

Description of the GAMS-NIMBUS tool
The NIMBUS method is based on the classification of the objective functions (see Appendix). In other words, the DM indicates with the help of a classification how the current Pareto optimal solution should be altered to get a more preferred solution. An example of the classification phase of the NIMBUS method in the GAMS-NIMBUS Tool software (similar to the IND-NIMBUS software) is given in Fig. 2, illustrating the solution process of Example 1 to be described later. Here each bar represents an objective function value and its ranges (i.e. components of ideal and nadir objective vectors). As can be seen, Example 1 has three objective functions. Of these, the third is to be maximized, which is indicated by placement of the colored bar on the right side. Thus, the interpretation is the same for both objective functions to be minimized and maximized: the shorter the bar, the better the value. The classification is done by clicking different parts of objective function bars, depending on how the DM desires to change the corresponding objective function values in order to get a more desirable Pareto optimal solution. If a value is desired to be decreased as much as possible, the DM clicks the arrow pointing to the left. If, instead, an increase is desired, he or she clicks the arrow pointing to the right. If the DM desires to give some bound or a level till which the objective function value should be improved, he or she can click the actual bar and the corresponding value is then shown in the edit box next to the objective function bar. The DM can then edit the value, if he or she so desires. If the current objective function value is deemed suitable, the DM clicks the arrow pointing downwards on the top of the bar.
Once the DM is satisfied with his or her classification, he or she can simply click the play button at the bottom of the application screen or on the toolbar, and the GAMS-NIMBUS Tool calculates new Pareto optimal solutions based at the given preference information. New Pareto optimal solutions are obtained by solving the constructed GAMS scalarization models.
Before choosing to calculate new Pareto optimal solutions, the DM can, if he or she so wishes, change the maximum number of new solutions to be calculated. As a default, the NIMBUS method forms four different subproblems from the same preference information and each of them can provide the DM with a different Pareto optimal solution to give more feedback of what kind of Pareto optimal solutions are attainable. It is also possible to change the single objective solver used to solve subproblems related to the classification. These selections can be made with the tool bar on the upper most part of the user interface.
It should be noted that in this kind of a user interface the DM is not asked specifically to classify the functions. Instead, the interface hides the algorithmic details from the DM and silently converts the user input to a corresponding NIMBUS classification. Therefore, this interface can be used for other methods using similar preference information, e.g., reference points.
During the solution process, the DM has access to all solutions generated during the solution process. Therefore, any solution can be selected as a starting solution for a new classification when using the NIMBUS method, or as an end point for generating intermediate solutions between any two solutions, at any time. In this way, the DM can generate representations of interesting parts of the Pareto optimal set according to his or her preferences for further study.

IND-NIMBUS software framework
As mentioned, the GAMS-NIMBUS Tool uses the user interface implemented in the IND-NIMBUS software framework. IND-NIMBUS [27] is a cross platform desktop software framework intended to provide method developers with a tool-set that can be used for implementing different interactive multiobjective optimization methods. At the moment, the IND-NIMBUS software framework has been used to implement the NIMBUS method and prototypes of the Pareto Navigator [9] and PAINT [17] methods.
In addition to different interactive multiobjective optimization methods, the IND-NIMBUS software framework contains integration modules, which can be used to connect interactive multiobjective optimization methods with various modeling and simulation tools. The computational model of the problem to be solved is assumed to be formulated with one of these tools. Examples of using such tools in various problem domains include the Matlab environment for radiotherapy treatment planning [43,44], the GPS-X TM wastewater treatment plant simulation and optimization application [14,15], the Balas process simulation software in chemical process design [11,13], the Numerrin environment in optimal shape design [18], and almost any programming language [16,23,28,38].
The IND-NIMBUS framework architecture follows the core structure and the structure described in Fig. 1, as it consists of a separate user interface and an algorithm part. In the IND-NIMBUS framework, these parts are separated so that they can be easily changed independently. For developing the GAMS-NIMBUS Tool we have replaced the algorithm part of the IND-NIMBUS framework with GAMS models, implementing steps 1, 2 and 4 of the core structure. This enables the GAMS-NIMBUS Tool to use single objective solvers of the GAMS environment to solve scalarized subproblems realized with the GAMS modeling language, while utilizing the graphical user interface developed for the IND-NIMBUS software framework.
In addition to the user interface and algorithm parts, the IND-NIMBUS framework includes an automatic testing module that is used to verify the results generated in the algorithm part. This is achieved by solving a set multiobjective optimization problems with predefined preference information and verifying that the obtained Pareto optimal solutions correspond to Pareto optimal solutions known to be obtained form these preferences. The testing module is used to verify that methods included in the IND-NIMBUS framework are implemented correctly.
In order to collate the Pareto optimal solutions generated, the DM can create different filters, for example, to show only those solutions where the first objective function has values above a certain limit. There is also a possibility to view only those solutions generated in the last classification or solution generation. The DM can also store the best solution candidates in a specific list at any time during the solution process. Furthermore, undesirable solutions can be deleted from the solution list. The IND-NIMBUS framework contains also different graphical views for visualizing the solutions for comparison [29], and the solutions can be exported to be visualized with external software, such as Microsoft Excel.

Numerical examples
To demonstrate the applicability of the GAMS-NIMBUS Tool and benefits of interactive multiobjective optimization methods in general, we solve two examples of GAMS problem models using the GAMS-NIMBUS Tool. As for the first example, we use the power generation problem [24] included in the GAMS model library. The second example is a multiobjective optimization version of the heat exchanger network synthesis problem, previously solved using a customized implementation of the NIM-BUS method for the GAMS environment [21]. This problem is also available in the GAMS model library. The solutions tabulated along the examples can be reproduced by using the demonstration version of the GAMS-NIMBUS Tool, available at http:// ind-nimbus.it.jyu.fi/ as part of the IND-NIMBUS software framework.

Example 1: Power generation problem
In the first example the task is to determine the number of power generation units in a region. This simplified linear model has three objective functions: minimize cost of production, minimize CO 2 emission and maximize use of endogenous sources. The model is constrained by the power generation unit capacity of each type of power generator unit and three constraints set by power production demands [24]. The model can be found in the GAMS Model library as model EPSCM.
The EPSCM model contains instructions of how to solve this multiobjective optimization problem using the augmented ε-constraint method AUGMECON [25]. Here we first solve the model using the AUGMECON method and then with the GAMS-NIMBUS Tool. It should be noted that the AUGMECON and the NIMBUS methods solve a multiobjective optimization problem differently, and therefore provide different results. The AUGMECON method is an a posteriori method, providing the DM with a representative set of Pareto optimal solutions, from which he or she must select the solution he or she prefers the most. With an interactive multiobjective optimization method, such as the NIMBUS method, the DM can study various Pareto optimal solutions, which are generated based on his or her preference information, until he or she is satisfied with some solution.
The AUGMECON method could also be modified to act as an interactive method. As the interactive version of AUGMECON is not included in the GAMS Model library, we do not, as such, compare results obtained with the GAMS-NIMBUS Tool to the results obtained with the AUGMECON method. Instead, the EPSCM model is used as a conveniently available example to demonstrate how the GAMS-NIMBUS Tool can be used to apply an interactive multiobjective optimization method to solve a multiobjective optimization problem in GAMS. It should be noted that interactive AUGMECON method could be implemented following the guidelines given in the Sect. 3.
A set of 18 Pareto optimal solutions generated by the AUGMECON method is given in Table 1. Each row of Table 1 represents a Pareto optimal solution (objective vector) of the EPSCM model. As can be seen, the AUGMECON method has generated more or less evenly distributed solutions from the Pareto frontier. In contrast, the GAMS-NIMBUS Tool generates solutions only from the areas that are interesting to the DM, as is shown in Table 2. Table 2 summarizes the preference information provided and the solutions generated in each iteration of the solution process.
When using the GAMS-NIMBUS Tool, the user first opens the GAMS model, in this case the epscm.gms model file from the GAMS Model Library, to be found in a sub-directory of the GAMS installation directory. When opening the epscm.gms model file, the GAMS-NIMBUS Tool is able to find a single model, named example and three suitable expressions, z('cost'), z('CO2emission') and z('endogenous'). These three expressions are selected as the objective functions. As z('endogenous') is an objective to be maximized, this is indicated by setting the type of the objective function to be maximized. The original constrains are used without modifications, so the multiobjective problem model is now completed and the GAMS-NIMBUS Tool can be used to solve Example 1.
To get started, the GAMS-NIMBUS Tool first provided the DM with information of the ranges of objective function values in the set of Pareto optimal solutions and a neutral compromise solution in the initialization stage. From this solution (objective function values given in Table 2), the DM decided that he would like to give an upper bound (denoted by I ≥= in the table) of 56000 to CO 2 emission, while  The Cost of production is allowed to change freely (denoted by I ). As can be seen in iteration 2 of the table, with this preference information two new Pareto optimal solutions were generated and in one of them the use of endogenous sources has reached the maximum, i.e., ideal objective value, while CO 2 emission stayed below the desired bound. While looking at these solutions, the DM noticed that he might be able improve (I ≤= ) the CO 2 emission until only 50000 tons of CO 2 would be emitted, while allowing deterioration till (I ≥= ) 33000 tons of endogenous sources. This preference information was given in iteration 3, specifying that three new solutions are desired. The first of the Pareto optimal solutions was then selected as the final solution (shown in Table  2). The GAMS model used to generate solutions for iteration 2 can be seen in Online Supplement.
It should be noted that each solution generated by NIMBUS is Pareto optimal [37], so even though the DM did not specify any preferences related to the first objective, cost of production, the cost is always as low as possible, in relation to the other objectives. When comparing to the solutions in Table 1, it can be seen that AUGMECON generated similar, but not the same solutions as the GAMS-NIMBUS Tool. However, with the GAMS-NIMBUS Tool the DM did not need to compare as many solutions simultaneously as with AUGMECON and he could direct the search with his preference information conveniently. Finally, much fewer solutions had to be generated when using the NIMBUS method.  In the second example we demonstrate how the GAMS-NIMBUS Tool can be used to solve an optimization problem based on a more complicated GAMS model. We use the heat exchanger network synthesis (Synheat) problem, with the multiobjective problem formulation presented in [21]. The Synheat model is available in the GAMS Model library as model number 319, named SYNHEAT. Originally, the problem has been solved in [51] using the weighting method (optimizing the weighted sum of the objective functions). It should be noted that as the problem is nonconvex, and as we use a local solver due to computational demands of the model, some of the subproblems may generate only locally Pareto optimal solutions. However, even this is much better than the weighting method which may completely miss Pareto optimal solutions of nonconvex problems no matter how the weights are set. Additionally, such a straightforward conversions can lose information about interdependencies among the objectives which might affect the validity of the results obtained (see, e.g., [26,47]). The goal in the heat exchanger network synthesis problem is to minimize the total cost by simultaneously minimizing number of heat exchanger units (Units), heat exchanger surface area (Area) cold utility consumption (CU) and hot utility consumption (HU). In addition to these four objective functions, the Synheat model has seven sets of constraints totaling to almost seven hundred individual constraints in this example.
In the previous work [21], the NIMBUS method was implemented as a part of the Synheat model, where the NIMBUS subproblems were added to the original Synheat model by hand, combining the Synheat model and the NIMBUS implementation to a single Synheat-NIMBUS model. In the Synheat-NIMBUS model, scalarizations were handled by using different if-then and loop structures. As constructing them manually  In contrast, when using the GAMS-NIMBUS Tool, the NIMBUS method implementation is contained in the algorithm part, separated from the original problem model, as described earlier. With this approach, it is possible to modify the Synheat model without modifying the subproblem models of the GAMS-NIMBUS Tool, and vice versa.
The results obtained with the Synheat-NIMBUS model [21] can be seen in Table 3 (collecting preference information specified and solutions generated in each iteration). In the first iteration, the DM was presented with the ideal and the nadir objective vector components, and a neutral compromise solution as a starting solution. Next, (iteration 2) the DM allowed the Units objective to increase up to 7. The DM also specified that objectives Area and HU should both be minimized as much as possible (I < ) and that the fourth objective was allowed to vary freely (as in all subsequent iterations, as CU and HU are directly dependent on each other). In iteration 3, the DM decided that the objective Units was satisfactory at its current level (denoted by I = ), but Area should be improved. As a trade-off, the DM was willing to increase the objective HU up to 2500. Then in iteration 4 the DM decided to see if the number of units could be lowered, by allowing the other objectives to be increased. Results obtained were almost satisfactory, and after the classification in iteration 5 the DM was finally pleased with the solution obtained.
The solutions generated using the GAMS-NIMBUS Tool are shown in Table 4. When comparing these solutions to the previously obtained solutions, it is immediately apparent that the initial solution (iteration 1) in Table 3 is not Pareto optimal, and in effect, the first two iterations of the previous research did not provide the DM with correct information of the problem. This is due to a mistake in the manually constructed subproblem model used to generate the initial solution in the Synheat-NIMBUS model. In addition, when using the GAMS-NIMBUS Tool to get results collected in Table 4, the DM decided to utilize the option of generating more than a single Pareto optimal solution for the same preference information at each iteration. Otherwise, the solutions generated with the GAMS-NIMBUS Tool are similar to the previous solutions, even when starting from a different initial solution. As the DM had previously solved this problem, he had already some insight of the trade-offs between the objective functions and he had a preset notion of which kind of solutions he could obtain a desirable value for. Interestingly, by generating several Pareto optimal solutions per iteration, he was able to obtain Area with five units in iteration 3 without implicitly specifying this as a preference. In the following iterations he refined this solution, until obtaining the final solution, which he considered to be better than the final solution obtained in the previous research [21].
When comparing these two approaches, it its evident that by generating additional solutions for each given set of preference information the DM could conveniently obtain valuable information of trade-offs between objective functions with little additional effort. Importantly, the process to manually construct subproblem models proved out to be error prone. Instead, implementing NIMBUS by utilizing the distinction of roles in the core structure was a straightforward task. The same is valid for other methods that may be implemented within problem models in modeling environments. Furthermore, with the GAMS-NIMBUS Tool one could be more confident that the subproblem model formulations are constructed correctly, as it includes the testing module of the IND-NIMBUS framework.
Overall, with the GAMS-NIMBUS Tool the DM could conveniently direct the solution process, see Pareto optimal solutions that were interesting to him and gain insight into problems and trade-offs in them. The amount of information was limited in each iteration keeping the cognitive load small. Because of the learning that takes place during the solution process, the DM could be confident on the final solution obtained.
With the examples we demonstrated the advantages of interactive multiobjective optimization. In a similar way, solving other problems can benefit from a multiobjective optimization formulation and an interactive solution method.

Conclusions
In spite of promising results reported in the literature of using interactive multiobjective optimization methods, few implementations are available. We have introduced a core structure which is valid for many scalarization-based interactive multiobjective optimization methods and identified various roles to make method implementation a more straightforward task, in particular, in modeling environments where many mathematical models already exist ready to be solved with an interactive multiobjective optimization method. The core structure should facilitate wider availability of implementations of interactive multiobjective optimization methods as the main task is simply to express subproblems of the method in question as models of the modeling environment.
We have discussed how models available in modeling environments can be prepared for multiobjective optimization. As an example of the ideas presented and as a concrete example of an implementation prepared with the help of a core structure in a modeling environment we have introduced the GAMS-NIMBUS Tool, an implementation of the interactive NIMBUS method in GAMS. With the GAMS-NIMBUS Tool, it is possible to use the NIMBUS method to consider models containing several conflicting objectives expressed with the GAMS modeling language. A demonstration version of the tool is available at http://ind-nimbus.it.jyu.fi/, including examples reported in this research.
As mentioned, as an example of modeling environments we have considered the GAMS environment providing a common platform for optimization solvers, capable of solving a wide array of optimization problems. Previously, the GAMS environment has not been widely used to solve multiobjective optimization problems; specifically using interactive multiobjective optimization methods has been nonexistent. In this research, we have demonstrated the steps needed for implementing interactive multiobjective optimization for the GAMS environment. This enables benefiting from the advantages of multiobjective optimization and interactive methods when solving optimization problems expressed as GAMS models. On the other hand, when utilizing scalarizationbased interactive methods, working in the GAMS environment gives access to many single objective solvers so that the solver best suited for the characteristics of the problem at hand can be selected among GAMS solvers. This makes many interactive methods more efficient than with standard solvers. The implementation ideas presented are valid for other modeling environments like AMPL or AIMMS as well.
The GAMS-NIMBUS Tool introduced is based on the IND-NIMBUS software framework, developed at the University of Jyväskylä. The IND-NIMBUS software framework contains tools implementing and testing interactive optimization methods, which can be utilized also by the GAMS-NIMBUS Tool. Currently, there are several new interactive methods being implementated for the IND-NIMBUS framework, such as Pareto Navigator [9], PAINT [17] and Nautilus [30], and in the future, the GAMS-NIMBUS Tool can be used to apply these methods along with the NIMBUS method.

Acknowledgments
The research was partly supported by the Academy of Finland, Grant number 128495 (on the part of Vesa Ojalehto).
The idea of the NIMBUS method is that the DM examines the values of the objective functions calculated at the current Pareto optimal decision vector x c and classifies objective functions into up to five classes. This means that the DM is asked to indicate (by means of a classification) what kind of a solution would be more satisfactory than the current one. The classes are functions f i (to be minimized) whose values should be improved (i ∈ I < ), should be improved to some aspiration levelẑ i < f i (x c ) (i ∈ I ≤ ), are satisfactory at the moment (i ∈ I = ), are allowed to impair up till some bound i > f i (x c ) (i ∈ I ≥ ), are allowed to change freely i ∈ I .
Classification must be done so that at least one objective function value should be improved, and at least one is allowed to impair. Otherwise, the method cannot generate a new Pareto optimal solution as there does not exist new Pareto optimal solution whose objective function values could be better than those of the Pareto optimal solution shown to the DM.
In the synchronous NIMBUS method [37], the preference information expressed as a classification with the corresponding aspiration levels and bounds is used to formulate from one to four different singe objective subproblems. These subproblems can then be solved with an appropriate single objective solver, producing new Pareto optimal solutions [37]. It should be noted that by using different subproblem formulations, it is possible to generate somewhat different Pareto optimal solutions from the same preference information [36] obeying the preference information in somewhat different ways giving the DM more information about what kind of Pareto optimal solutions are available.
Originally in [37], NIMBUS subproblems involved single objective min-max functions. They are nondifferentiable and must be solved by an appropriate single objective solver. To avoid introducing nondifferentiability to the problem to be solved, we modify the original nondifferentiable subproblems to their differentiable equivalents, by adding a new decision variable α to the problem, and treating the min-max functions as constraints. Avoiding nondifferentiability in this way is naturally possible only if all functions of the original problem are differentiable.
As an example, the differentiable version of one of the NIMBUS subproblems is requiring cognitive mapping between different concepts are used. For more details of the NIMBUS method, see [37].