I have studied many years of optimization algorithms, but also know a lot of optimization ideas, but a lot of things done, and then go back to the basic ideas of those methods, the feeling may not be the same. Recently looked at Vaziranni's "approximate algorithm", found in the preface of the algorithm design and problem characteristics of the analogy is very good, in fact, is also a principle of optimization algorithm, not much nonsense, excerpt as follows:
"The analogy with Michelangelo's part of the art research works well to illustrate our principles of algorithmic design and interpretation. Michelangelo's main job is to find the stones that attract attention in the quarry, and then stare at them for a long time to determine what form they naturally want to be. Carving works in a minimal way to complete this pattern. Again, we are willing to start with a clear, simple set of questions (perhaps a simplified form of the problem that we actually want to solve). most of the algorithm design work is actually to understand the problem and algorithm-related combinatorial structure. The algorithm minimizes the use of this structure . ”
The above description is really wonderful, but the last sentence is debatable, because based on the algorithm information theory (Nesterov), we should try to use the structure of the problem, such an algorithm is more efficient. Of course, two people are different from the starting point, Vaziranni more from the discrete optimization point of view, and Nesterov more from the continuous optimization point of view. The same way, the essence is the same, understand the problem you want to solve.
Algorithm design and problem characteristics