next up previous contents
Next: Graph Coloring and Up: No Title Previous: Introduction

Combinatorial Optimization

Combinbatorial optimization (CO) problems [19,32] are the type of optimization problems with the property that the set of feasible solutions corresponds to a finite set, and the user is asked to find an optimal solution in this large, but finite set. In addition, combinatorial optimization problems are related to two optimization models: linear programming and integer (mixed) linear programming, therefore as either minimization or maximization problems consisting of a set of problem instances.

It is worth noting that many of those CO problems are mappable onto other CO problems, that are relatively easier to tackle and perhaps may have a more intuitive and clearer representation. For example, the problem of class scheduling can be mapped onto a graph coloring problem (specifically, some variant of the vertex coloring), then solving graph coloring in terms of scheduling. Here, not only graph coloring have a clearer representation than that of scheduling but also there are a number of coloring methods/algorithms that can be applied to this problem. For more on this, see the section on graph coloring and course scheduling.

Given a combinatorial optimization problem instance, our objective is to find a set of solutions with the minimal cost. These kind of problems are usually tackled using what is referred to as local search or local optimization algorithms such as SA. These approximation algorithms operate by repeatedly replacing a solution with a neighboring solution. It starts off with an initial solution constructed by some algorithm or heuristics (e.g. expert system), then the algorithm repeatedly tries to improve the current solution by replacing it with a neighbor with a lower cost. If a solution has been reached that has no neighbors with lower cost, a local minimum has been found. In summary, using the work of Johnson [34,35], the concept of local search can be stated succinctly as follows (see Figure 2):

A local search algorithm typically consists of two routines: first, an algorithm that given a problem instance P, will construct an initial solution to it. Second, an algorithm that given P and any solution S, will determine if there is a neighboring solution of lower cost, and if so will return one such solution . If no such solution exists, S is called ``locally optimal.'' Also, these two routines can either be randomized or deterministic, as we later will see when outlining the 2-Opt, 3-Opt, and Lin-Kernighan algorithms.

  
Figure 2: Local search for an optimization problem



next up previous contents
Next: Graph Coloring and Up: No Title Previous: Introduction



HPF demo web account
Mon Nov 18 19:45:42 EST 1996