Abstract
We address the problem of finding the nadir point in a multi-objective integer programming problem. Finding the nadir point is not straightforward, especially when there are more than three objectives. The difficulty further increases for integer programming problems. We develop an exact algorithm to find the nadir point in multi-objective integer programs with integer-valued parameters. We also develop a variation that finds bounds for each component of the nadir point with a desired level of accuracy. We demonstrate on several instances of multi-objective assignment, knapsack, and shortest path problems that the algorithms work well.
Similar content being viewed by others
References
Korhonen, P., Salo, S., Steuer, R.E.: A heuristic for estimating nadir criterion values in multiple objective linear programming. Oper. Res. 45(5), 751–757 (1997)
Ehrgott, M., Tenfelde-Podehl, D.: Computation of ideal and nadir values and implications for their use in MCDM methods. Eur. J. Oper. Res. 151, 119–139 (2003)
Deb, K., Miettinen, K., Chaudhuri, S.: Toward an estimation of nadir objective vector using a hybrid of evolutionary and local search approaches. IEEE Trans. Evolut. Comput. 14(6), 821–841 (2010)
Alves, M.J., Costa, J.P.: An exact method for computing the nadir values in multiple objective linear programming. Eur. J. Oper. Res. 198, 637–646 (2009)
Jorge, J.M.: An algorithm for optimizing a linear function over an integer efficient set. Eur. J. Oper. Res. 195, 98–103 (2009)
Lokman, B., Köksalan, M.: Finding all nondominated points of multi-objective integer programs. J. Glob. Optim. 57, 347–365 (2013)
Lokman, B., Köksalan, M., Korhonen, P.J., Wallenius, J.: An interactive algorithm to find the most preferred solution of multi-objective integer programs. Ann. Oper. Res. (2014). doi:10.1007/s10479-014-1545-2
Author information
Authors and Affiliations
Corresponding author
Appendix: an example
Appendix: an example
We demonstrate the algorithm on the following four-objective knapsack problem with 10 items:
where
To find the exact nadir for criterion 1, set \(g^{*}=0,\,n = 1\). Table 5 shows the payoff table.
1.1 Iteration 0
Step 0 (Initialization) \(t=0\). From the payoff table, \(z_1^{ IP (2)} =\left( {\hbox {3}0\hbox {3, 373, 289, 287}} \right) , \, z_1^{ IP (3)} =\left( {\hbox {327, 342, 325, 317}} \right) ,\) and \(z_1^{ IP (4)} =\left( {\hbox {337, 322, 3}0\hbox {1, 37}0} \right) \). Since \(z_1^{ IP (2)} =\mathop {\min }\limits _{i\ne 1} z_1^{ IP (i)}, \, m=2\). Then, \(lz_3^1 =289+1,\,lz_4^1 =287+1\) and \(uz_1 =303\). \(lz_1 =96\) due to Corollary 1.
Step 1 Since \(\frac{\left( {uz_n -lz_n } \right) }{\left( {z_n^{ IP \left( n \right) } -lz_n } \right) }=\frac{\left( {303-96} \right) }{\left( {351-96} \right) }>g^{*}=0,\,uz_1^*=uz_1 -1=302\) and go to Step 2.
1.2 Iteration 1
Step 2 \(t= 1\). Partition \(P_{1(2)}^1 \) into two submodels using the procedure of Lokman and Köksalan [6]:
Submodel 1 | Submodel 2 |
\(\hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \(\hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) |
\(\hbox {subject}\;\hbox {to}\) | \(\hbox {subject}\;\hbox {to}\) |
\(z_3 \left( \mathbf{x} \right) \ge -M\) | \(z_3 \left( \mathbf{x} \right) \ge 290\) |
\(z_4 \left( \mathbf{x} \right) \ge 288\) | \(z_4 \left( \mathbf{x} \right) \ge -M \) |
\(z_1 \left( \mathbf{x} \right) \le 302\) | \(z_1 \left( \mathbf{x} \right) \le 302\) |
\(z_1 \left( \mathbf{x} \right) \ge 96\quad \;\) | \(z_1 \left( \mathbf{x} \right) \ge 96\quad \;\) |
\(\mathbf{x}\in \mathbf{X}\) | \(\mathbf{x}\in \mathbf{X}\) |
Optimal solution: (258,334*,239,313) | Optimal solution: (237,325,301,357) |
Step 3 Solve \(D_{1(2)}^1 \). The solution yields \(\mathbf{z}^{1}=\left( {\hbox {327, 342, 325, 317}} \right) \) that dominates \(\mathbf{dz}^{1}\). Set \(lz_3^2 =326\) and \(lz_4^2 =318\).
1.3 Iteration 2
Step 2. \(t = 2\). Partition \(P_{1(2)}^2 \) into three submodels using the procedure of Lokman and Köksalan [6]:
Submodel 1 | Submodel 2 | Submodel 3 |
\(\hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) |
\(\quad \quad +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( \quad \quad +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( \quad \quad +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) |
\(\hbox {subject}\;\hbox {to} \) | \( \hbox {subject}\;\hbox {to} \) | \( \hbox {subject}\;\hbox {to}\) |
\(z_3 \left( \mathbf{x} \right) \ge -M \) | \( z_3 \left( \mathbf{x} \right) \ge 290 \) | \( z_3 \left( \mathbf{x} \right) \ge 326\) |
\(z_4 \left( \mathbf{x} \right) \ge 318 \) | \( z_4 \left( \mathbf{x} \right) \ge 318 \) | \( z_4 \left( \mathbf{x} \right) \ge -M \) |
\(z_1 \left( \mathbf{x} \right) \le 302 \) | \( z_1 \left( \mathbf{x} \right) \le 302 \) | \( z_1 \left( \mathbf{x} \right) \le 302\) |
\(z_1 \left( \mathbf{x} \right) \ge 96\quad \; \) | \( z_1 \left( \mathbf{x} \right) \ge 96\quad \; \) | \( z_1 \left( \mathbf{x} \right) \ge 96\quad \;\) |
\(\mathbf{x}\in \mathbf{X} \) | \( \mathbf{x}\in \mathbf{X}\) | \( \mathbf{x}\in \mathbf{X}\) |
Optimal Solution: (237,325,301,357) | Optimal Solution: (237,325,301,357)* | Infeasible |
Step 3 Solve \(D_{1(2)}^2 \). The solution yields \(\mathbf{z}^{2}=\left( {237,325,301,357} \right) \). Set \(lz_3^3 =302,\,lz_4^3 =358\). \(\mathbf{z}^{2}=\mathbf{dz}^{2}\) since \(\mathbf{dz}^{2}\) is nondominated. Set \(uz_1 =237\).
Step 1. Since\(\frac{\left( {uz_n -lz_n } \right) }{\left( {z_n^{ IP \left( n \right) } -lz_n } \right) }=\frac{\left( {237-96} \right) }{\left( {351-96} \right) }>g^{*}=0\), set \(uz_1^*=uz_1 -1=236\) and go to Step 2.
1.4 Iteration 3
Step 2. \(t = 3\). Partition \(P_{1(2)}^3 \) into four submodels using the procedure of Lokman and Köksalan [6]:
Submodel 1 | Submodel 2 | Submodel 3 | Submodel 4 |
\(\hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) |
\(+\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \(+\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) |
subject to | subject to | subject to | subject to |
\(z_3 \left( \mathbf{x} \right) \ge -M\) | \( z_3 \left( \mathbf{x} \right) \ge 290 \) | \( z_3 \left( \mathbf{x} \right) \ge 302\) | \( z_3 \left( \mathbf{x} \right) \ge 326\) |
\(z_4 \left( \mathbf{x} \right) \ge 358\) | \( z_4 \left( \mathbf{x} \right) \ge 358\) | \( z_4 \left( \mathbf{x} \right) \ge 318\) | \( z_4 \left( \mathbf{x} \right) \ge -M\) |
\(z_1 \left( \mathbf{x} \right) \le 236\) | \( z_1 \left( \mathbf{x} \right) \le 236\) | \(z_1 \left( \mathbf{x} \right) \le 236\) | \( z_1 \left( \mathbf{x} \right) \le 236\) |
\(z_1 \left( \mathbf{x} \right) \ge 96\quad \;\) | \( z_1 \left( \mathbf{x} \right) \ge 96\quad \; \) | \( z_1 \left( \mathbf{x} \right) \ge 96 \) | \( z_1 \left( \mathbf{x} \right) \ge 96 \) |
\(\mathbf{x}\in \mathbf{X}\) | \(\mathbf{x}\in \mathbf{X}\) | \(\mathbf{x}\in \mathbf{X}\) | \( \mathbf{x}\in \mathbf{X}\) |
Optimal solution: (184,209,271,362) | Infeasible | Infeasible | Infeasible* |
Step 3 Solve \(D_{1(2)}^3\). The solution yields \(\mathbf{z}^{3}=\left( {\hbox {337, 322, 3}0\hbox {1, 37}0} \right) \). Set \(lz_3^4 =302\), and \(lz_4^4 =371\).
1.5 Iteration 4
Step 2. \(t = 4\). Partition \(P_{1(2)}^4 \) into five submodels using the procedure of Lokman and Köksalan [6]:
Submodel 1 | Submodel 2 | Submodel 3 | Submodel 4 | Submodel 5 |
\( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) | \( \hbox {Max}\;z_2 \left( \mathbf{x} \right) +\varepsilon _1 z_1 \left( \mathbf{x} \right) \) |
\( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) | \( +\varepsilon z_3 \left( \mathbf{x} \right) +\varepsilon z_4 \left( \mathbf{x} \right) \) |
subject to | subject to | subject to | subject to | subject to |
\( z_3 \left( \mathbf{x} \right) \ge -M\) | \( z_3 \left( \mathbf{x} \right) \ge 290\) | \( z_3 \left( \mathbf{x} \right) \ge 302\) | \( z_3 \left( \mathbf{x} \right) \ge 302 \) | \( z_3 \left( \mathbf{x} \right) \ge 326 \) |
\( z_4 \left( \mathbf{x} \right) \ge 371 \) | \( z_4 \left( \mathbf{x} \right) \ge 371\) | \( z_4 \left( \mathbf{x} \right) \ge 371\) | \( z_4 \left( \mathbf{x} \right) \ge 318\) | \( z_4 \left( \mathbf{x} \right) \ge -M\) |
\( z_1 \left( \mathbf{x} \right) \le 236\) | \( z_1 \left( \mathbf{x} \right) \le 236 \) | \( z_1 \left( \mathbf{x} \right) \le 236\) | \( z_1 \left( \mathbf{x} \right) \le 236\) | \( z_1 \left( \mathbf{x} \right) \le 236 \) |
\( z_1 \left( \mathbf{x} \right) \ge 96\quad \;\) | \( z_1 \left( \mathbf{x} \right) \ge 96\quad \;\) | \( z_1 \left( \mathbf{x} \right) \ge 96 \) | \( z_1 \left( \mathbf{x} \right) \ge 96\) | \( z_1 \left( \mathbf{x} \right) \ge 96\) |
\( \mathbf{x}\in \mathbf{X}\) | \( \mathbf{x}\in \mathbf{X}\) | \( \mathbf{x}\in \mathbf{X}\) | \( \mathbf{x}\in \mathbf{X}\) | \( \mathbf{x}\in \mathbf{X}\) |
Infeasible | Infeasible* | Infeasible* | Infeasible* | Infeasible* |
\(P_{1(2)}^4 \) is infeasible. Set \(lz_1 =uz_1^*+1=237\) and go to Step 4.
Step 4 Stop, \(lz_1 =237\le z_1^{ NP \left( 1 \right) } \le 237=uz_1 \) and therefore \(z_1^{ NP \left( 1 \right) } =237\).
Rights and permissions
About this article
Cite this article
Köksalan, M., Lokman, B. Finding nadir points in multi-objective integer programs. J Glob Optim 62, 55–77 (2015). https://doi.org/10.1007/s10898-014-0212-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10898-014-0212-0