Many would consider the search for the optimal evolutionary computation (the collective noun for the multitude of search algorithms based on nature) algorithm by researchers the world over as evolutionary in itself. Not only do we search for new algorithms, but we also try and combine existing algorithms in new and novel ways. In this paper, to solve the knapsack problem, the authors combine the artificial bee colony algorithm (ABC) together with differential evolution and a methodology to repair infeasible solutions into valid trials.

The knapsack problem starts with a set of items. Each item has a weight and a value. The aim is to fit the most value into a knapsack that can only contain a limited weight. Although of direct practical interest to the backpacking student, the applications are much wider and include virtually any problem that involves the allocation of limited resources. One can view the problem as finding the optimal Boolean vector, where each element corresponds to an item and the value of the Boolean indicates whether that item is included.

Starting with ABC, the employed bees are each initialized with a random choice of items. During the employed bee phase, each bee selects a target solution by modifying each element based on its inclusion status among two randomly chosen neighbors. In the onlooker bee phase, a bee chooses a food source using a probability based on how close that solution is to the best fit discovered. Once selected, the bee will apply mutation and crossover operations (this is the differential evolution component) to the solution. The final scout bee phase will reinitialize a solution to a random set if no improvement has been found over some predefined number of trials. The repair operation is then applied, which unloads low-value items from overfilled knapsacks and tops up underfilled knapsacks. Simulation results show that this new approach is better than its predecessors.