A fast and scalable multi-dimensional multiple-choice knapsack heuristic

H. Shojaei, T. Basten, M.C.W. Geilen, A. Davoodi

Research output: Contribution to journalArticleAcademicpeer-review

32 Citations (Scopus)
4 Downloads (Pure)

Abstract

Many combinatorial optimization problems in the embedded systems and design automation domains involve decision making in multidimensional spaces. The multidimensional multiple-choice knapsack problem (MMKP) is among the most challenging of the encountered optimization problems. MMKP problem instances appear for example in chip multiprocessor runtime resource management and in global routing of wiring in circuits. Chip multiprocessor resource management requires solving MMKP under real-time constraints, whereas global routing requires scalability of the solution approach to extremely large MMKP instances. This article presents a novel MMKP heuristic, CPH (for Compositional Pareto-algebraic Heuristic), which is a parameterized compositional heuristic based on the principles of Pareto algebra. Compositionality allows incremental computation of solutions. The parameterization allows tuning of the heuristic to the problem at hand. These aspects make CPH a very versatile heuristic. When tuning CPH for computation time, MMKP instances can be solved in real time with better results than the fastest MMKP heuristic so far. When tuning CPH for solution quality, it finds several new solutions for standard benchmarks that are not found by any existing heuristic. CPH furthermore scales to extremely large problem instances. We illustrate and evaluate the use of CPH in both chip multiprocessor resource management and in global routing.
Original languageEnglish
Article number51
Number of pages32
JournalACM Transactions on Design Automation of Electronic Systems
Volume18
Issue number4
DOIs
Publication statusPublished - 2013

Fingerprint

Dive into the research topics of 'A fast and scalable multi-dimensional multiple-choice knapsack heuristic'. Together they form a unique fingerprint.

Cite this