Solution methods for NP-hard Discrete Optimization Problems

Solution methods for NP-hard
Discrete Optimization Problems
Three main directions to solve
NP-hard discrete optimization problems:
• Integer programming techniques
• Approximation algorithms
• Heuristics
On time-accuracy tradeoff schedule:
Brute force
Integer
programming
Approximation
algorithms
Heuristics
Most
accuracy
Least
accuracy
Worst time
Best time
Heuristics
• Based on common sense, intuition
• Sometimes are based on physical, biological
phenomena
(e.g., simulated annealing, genetic algorithm)
• Normally very time-efficient
• No rigorous mathematical analysis
• Don’t guarantee optimal solution
• Hopefully will produce fairly good solutions at least
some of the time
Example: The nearest neighbor algorithm for TSP
Approximation Algorithms
• Time-efficient (sometimes not as efficient as
heuristics)
• Don’t guarantee optimal solution
• Guarantee good solution within some factor of the
optimum
• Rigorous mathematical analysis to prove the
approximation guarantee
• Often use algorithms for related problems as
subroutines
Later we will consider
an approximation algorithm for TSP.
IP-based Solution Methods
• Most discrete optimization problems can be
formulated as integer programs
• Guarantee optimal solution most of the time
• Sometimes might be time-inefficient
• Is the preferred method for most companies,
especially with the advent of modern superfast
computers
We will consider IP-based solution methods in details.
Solving Integer Programs (IP) vs
solving Linear Programs (LP)
The algorithms for solving LPs are much more
time-efficient than the algorithms for IPs.
LP algorithms
– Simplex Method (considered in Math442/542)
– Interior-point methods
IP algorithms use the above-mentioned LP
algorithms as subroutines.
Thus, we will start by recalling the main
features of Simplex Method.
(see Chapter 4 of H&L)