139,052 research outputs found
Survey on Combinatorial Register Allocation and Instruction Scheduling
Register allocation (mapping variables to processor registers or memory) and
instruction scheduling (reordering instructions to increase instruction-level
parallelism) are essential tasks for generating efficient assembly code in a
compiler. In the last three decades, combinatorial optimization has emerged as
an alternative to traditional, heuristic algorithms for these two tasks.
Combinatorial optimization approaches can deliver optimal solutions according
to a model, can precisely capture trade-offs between conflicting decisions, and
are more flexible at the expense of increased compilation time.
This paper provides an exhaustive literature review and a classification of
combinatorial optimization approaches to register allocation and instruction
scheduling, with a focus on the techniques that are most applied in this
context: integer programming, constraint programming, partitioned Boolean
quadratic programming, and enumeration. Researchers in compilers and
combinatorial optimization can benefit from identifying developments, trends,
and challenges in the area; compiler practitioners may discern opportunities
and grasp the potential benefit of applying combinatorial optimization
Combinatorial Assortment Optimization
Assortment optimization refers to the problem of designing a slate of
products to offer potential customers, such as stocking the shelves in a
convenience store. The price of each product is fixed in advance, and a
probabilistic choice function describes which product a customer will choose
from any given subset. We introduce the combinatorial assortment problem, where
each customer may select a bundle of products. We consider a model of consumer
choice where the relative value of different bundles is described by a
valuation function, while individual customers may differ in their absolute
willingness to pay, and study the complexity of the resulting optimization
problem. We show that any sub-polynomial approximation to the problem requires
exponentially many demand queries when the valuation function is XOS, and that
no FPTAS exists even for succinctly-representable submodular valuations. On the
positive side, we show how to obtain constant approximations under a
"well-priced" condition, where each product's price is sufficiently high. We
also provide an exact algorithm for -additive valuations, and show how to
extend our results to a learning setting where the seller must infer the
customers' preferences from their purchasing behavior
Convex Combinatorial Optimization
We introduce the convex combinatorial optimization problem, a far reaching
generalization of the standard linear combinatorial optimization problem. We
show that it is strongly polynomial time solvable over any edge-guaranteed
family, and discuss several applications
Recommended from our members
Combinatorial optimization and metaheuristics
Today, combinatorial optimization is one of the youngest and most active areas of discrete mathematics. It is a branch of optimization in applied mathematics and computer science, related to operational research, algorithm theory and computational complexity theory. It sits at the intersection of several fields, including artificial intelligence, mathematics and software engineering. Its increasing interest arises for the fact that a large number of scientific and industrial problems can be formulated as abstract combinatorial optimization problems, through graphs and/or (integer) linear programs. Some of these problems have polynomial-time (“efficient”) algorithms, while most of them are NP-hard, i.e. it is not proved that they can be solved in polynomial-time. Mainly, it means that it is not possible to guarantee that an exact solution to the problem can be found and one has to settle for an approximate solution with known performance guarantees. Indeed, the goal of approximate methods is to find “quickly” (reasonable run-times), with “high” probability, provable “good” solutions (low error from the real optimal solution). In the last 20 years, a new kind of algorithm commonly called metaheuristics have emerged in this class, which basically try to combine heuristics in high level frameworks aimed at efficiently and effectively exploring the search space. This report briefly outlines the components, concepts, advantages and disadvantages of different metaheuristic approaches from a conceptual point of view, in order to analyze their similarities and differences. The two very significant forces of intensification and diversification, that mainly determine the behavior of a metaheuristic, will be pointed out. The report concludes by exploring the importance of hybridization and integration methods
- …