Advances in Operations Research

Volume 2017 (2017), Article ID 7048042, 10 pages

https://doi.org/10.1155/2017/7048042

## Towards Merging Binary Integer Programming Techniques with Genetic Algorithms

School of Computing and Information Technology, Wollongong University, Wollongong, NSW 2522, Australia

Correspondence should be addressed to Reza Zamani

Received 10 June 2017; Revised 27 August 2017; Accepted 6 September 2017; Published 17 October 2017

Academic Editor: Demetrio Laganà

Copyright © 2017 Reza Zamani. 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

This paper presents a framework based on merging a binary integer programming technique with a genetic algorithm. The framework uses both lower and upper bounds to make the employed mathematical formulation of a problem as tight as possible. For problems whose optimal solutions cannot be obtained, precision is traded with speed through substituting the integrality constrains in a binary integer program with a penalty. In this way, instead of constraining a variable with binary restriction, is considered as real number between 0 and 1, with the penalty of , in which is a large number. Values not near to the boundary extremes of 0 and 1 make the component of large and are expected to be avoided implicitly. The nonbinary values are then converted to priorities, and a genetic algorithm can use these priorities to fill its initial pool for producing feasible solutions. The presented framework can be applied to many combinatorial optimization problems. Here, a procedure based on this framework has been applied to a scheduling problem, and the results of computational experiments have been discussed, emphasizing the knowledge generated and inefficiencies to be circumvented with this framework in future.

#### 1. Introduction

Combinatorial optimization problems are widespread. They include important instances like network design, job shop scheduling, flow shop scheduling, quadratic assignment, protein alignment, resource-constrained project scheduling, vehicle routing, and many other problems.

In general, the solution strategies used to solve these problems are mainly classified into exact and heuristic methods. Whereas the well-known examples of exact methods are binary integer programming techniques, effective instances of heuristics are genetic algorithms.

One of the endeavours in integrating binary integer programming with genetic algorithm is the one reported in [1], and another work, with respect to this integration, has been reported in [2]. Moreover, there are several other general works related to integrating integer, and not necessarily binary integer, programming with genetic algorithm including those presented in [3–8].

Emphasizing that binary integer programs are very difficult to solve, and their execution times grow exponentially, in [1], a genetic-binary combinatorial algorithm has been presented with a method called “change-zero and add-one.” In [2], the combination of a binary integer program with a genetic algorithm has been used for the monitoring, controlling, and protecting of power systems.

In this paper, we present a general framework based on the integration of a binary integer programming technique and a genetic algorithm. The framework converts a binary integer programming problem to a quadratic programming formulation and then by using a genetic algorithm revises the solution obtained by the quadratic programming technique.

The presented framework is called QGA in which Q and GA stand for quadratic programming and genetic algorithm, respectively. In the QGA, the employed genetic algorithm fine-tunes an infeasible solution produced by a quadratic programming technique, which itself solves a relaxed binary integer programming problem. In the corresponding binary integer programming problem, the integrality constrains of binary variables are relaxed, in the sense that they are allowed to be in the range between 0 and 1.

When the integrality constraint is relaxed and a binary variable is considered as a real number between 0 and 1, a penalty of , in which is a large number, is added to the minimization objective function. These penalties are aimed at preventing those values not near to 0 or 1 from being selected, as becomes large for those values of which are not near to 0 or 1. The produced nonbinary values are then fine-tuned through a genetic algorithm and is converted to a feasible solution.

The QGA is also equipped with a tree search aimed at finding a lower and upper bound for tightening the binary integer programming formulation of the problem. In the cases where the computed lower and upper bounds are equal, the optimal solution has already been obtained and no binary integer programming formulation is required to be generated.

The QGA is a general algorithm which can be applied to many combinatorial optimization problem. Because architecting effective software applications for project scheduling is of prime importance [9], upon the development of the QGA, as a general solution strategy, the Resource-Constrained Project Scheduling Problem (RCPSP) has been applied. As an NP-hard problem, the RCPSP is simply defined as minimizing the duration of a project which includes several activities each requiring a number of scarce resources. All resources are renewable and, during the execution of the project, the availability of each resource is constant.

Each activity has a set of predecessors as well as certain duration and can start only when all of its predecessors have been completed. Preemption is not allowed in the sense that when an activity starts, it should be completed without any interruption. Two starting and ending activities which require no resources and have zero duration represent the starting and ending of the project, respectively. Figure 1 shows a sample resource-constrained project and Figure 2 depicts its optimal schedule.