Table of Contents Author Guidelines Submit a Manuscript
Mathematical Problems in Engineering
Volume 2012, Article ID 471952, 14 pages
http://dx.doi.org/10.1155/2012/471952
Research Article

An Evolutionary Algorithm for Solving Bilevel Programming Problems Using Duality Conditions

1Department of Mathematics, Key Laboratory of Tibetan Information Processing of Ministry of Education, Qinghai Normal University, Xining 810008, China
2Academy of Mathematics and Systems Science, Chinese Academy of Sciences, Beijing 100190, China
3Business School, Nankai University, Tianjin 300071, China

Received 31 March 2012; Accepted 12 September 2012

Academic Editor: Yuping Wang

Copyright © 2012 Hecheng Li and Lei Fang. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Abstract

Bilevel programming is characterized by two optimization problems located at different levels, in which the constraint region of the upper level problem is implicitly determined by the lower level problem. This paper is focused on a class of bilevel programming with a linear lower level problem and presents a new algorithm for solving this kind of problems by combining an evolutionary algorithm with the duality principle. First, by using the prime-dual conditions of the lower level problem, the original problem is transformed into a single-level nonlinear programming problem. In addition, for the dual problem of the lower level, the feasible bases are taken as individuals in population. For each individual, the values of dual variables can be obtained by taking the dual problem into account, thus simplifying the single-level problem. Finally, the simplified problem is solved, and the objective value is taken as the fitness of the individual. Besides, when nonconvex functions are involved in the upper level, a coevolutionary scheme is incorporated to obtain global optima. In the computational experiment, 10 problems, smaller or larger-scale, are solved, and the results show that the proposed algorithm is efficient and robust.