A modified choice function hyper-heuristic with Boltzmann function

2021 ◽  
Vol 8 (4) ◽  
pp. 736-746
Author(s):  
O. Mellouli ◽  
◽  
I. Hafidi ◽  
A. Metrane ◽  
◽  
...  

Hyper-heuristics are a subclass of high-level research methods that function in a low-level heuristic research space. Their aim objective is to improve the level of generality for solving combinatorial optimization problems using two main components: a methodology for the heuristic selection and a move acceptance criterion, to ensure intensification and diversification [1]. Thus, rather than working directly on the problem's solutions and selecting one of them to proceed to the next step at each stage, hyper-heuristics operates on a low-level heuristic research space. The choice function is one of the hyper-heuristics that have proven their efficiency in solving combinatorial optimization problems [2–4]. At each iteration, the selection of heuristics is dependent on a score calculated by combining three different measures to guarantee both intensification and diversification for the heuristics choice process. The heuristic with the highest score is therefore chosen to be applied to the problem. Therefore, the key to the success of the choice function is to choose the correct weight parameters of its three measures. In this study, we make a state of the art in hyper-heuristic research and propose a new method that automatically controls these weight parameters based on the Boltzmann function. The results obtained from its application on five problem domains are compared with those of the standard, modified choice function proposed by Drake et al. [2,3].

Author(s):  
Breno A. de Melo Menezes ◽  
Nina Herrmann ◽  
Herbert Kuchen ◽  
Fernando Buarque de Lima Neto

AbstractParallel implementations of swarm intelligence algorithms such as the ant colony optimization (ACO) have been widely used to shorten the execution time when solving complex optimization problems. When aiming for a GPU environment, developing efficient parallel versions of such algorithms using CUDA can be a difficult and error-prone task even for experienced programmers. To overcome this issue, the parallel programming model of Algorithmic Skeletons simplifies parallel programs by abstracting from low-level features. This is realized by defining common programming patterns (e.g. map, fold and zip) that later on will be converted to efficient parallel code. In this paper, we show how algorithmic skeletons formulated in the domain specific language Musket can cope with the development of a parallel implementation of ACO and how that compares to a low-level implementation. Our experimental results show that Musket suits the development of ACO. Besides making it easier for the programmer to deal with the parallelization aspects, Musket generates high performance code with similar execution times when compared to low-level implementations.


Sign in / Sign up

Export Citation Format

Share Document