Combinatorial (or discrete) optimization is one of the most active fields in the interface of operations research, computer science, and applied math- ematics. Combinatorial optimization problems arise in various applications, including communications network design, VLSI design, machine vision, air- line crew scheduling, corporate planning, computer-aided design and man- ufacturing, database query design, cellular telephone frequency assignment, constraint directed reasoning, and computational biology. Furthermore, combinatorial optimization problems occur in many diverse areas such as linear and integer programming, graph theory, artificial intelligence, and number theory. All these problems, when formulated mathematically as the minimization or maximization of a certain function defined on some domain, have a commonality of discreteness. Historically, combinatorial optimization starts with linear programming. Linear programming has an entire range of important applications including production planning and distribution, personnel assignment, finance, alloca- tion of ecomic resources, circuit simulation, and control systems. Leonid Kantorovich and Tjalling Koopmans received the Nobel Prize (1975) for their work on the optimal allocation of resources. Two important discover- ies, the ellipsoid method (1979) and interior point approaches (1984) both provide polymial time algorithms for linear programming. These algo- rithms have had a profound effect in combinatorial optimization. Many polymial-time solvable combinatorial optimization problems are special cases of linear programming (e.g. matching and maximum flow). In addi- tion, linear programming relaxations are often the basis for many approxi- mation algorithms for solving NP-hard problems (e.g. dual heuristics).