17 Simulated annealing: Optimization beyond local minima

 

This chapter covers

  • Introducing simulated annealing
  • Using simulated annealing to improve delivery schedules
  • Presenting a primer on the traveling salesman problem
  • Using simulated annealing for minimum crossing embeddings
  • Using an algorithm based on simulated annealing to draw graphs nicely

If you have read chapters 15 and 16, you should by now be familiar with graph embeddings and optimization problems. In the previous chapter, in particular, we explained how to reformulate graph embedding as an optimization problem, and we introduced gradient descent, an optimization technique that can be used to find (near-)optimal solutions to this category of problems. In particular, we discussed two solutions to the problem, seen as crossing-number optimization and as a force-directed graph drawing; gradient descent is particularly suitable for the latter, while particularly bad for the former.

One issue we have seen with gradient descent is that it tends to get stuck in local minima, which is pretty much the last thing we would want, considering that we often have to deal with cost functions having lots of local peaks.

We have already discussed one workaround for this issue, running gradient descent several times using random-restart to choose a different starting point each time.

17.1 Simulated annealing

17.1.1 Sometimes you need to climb up to get to the bottom

17.1.2 Implementation

17.1.3 Why simulated annealing works

17.1.4 Short-range vs long-range transitions

17.1.5 Variants

17.1.6 Simulated annealing vs gradient descent: Which one should I use?

17.2 Simulated annealing + traveling salesman

17.2.1 Exact vs approximated solutions

17.2.2 Visualizing cost

17.2.3 Pruning the domain

17.2.4 State transitions

17.2.5 Adjacent vs random swaps

17.2.6 Applications of TSP

17.3 Simulated annealing and graph embedding

sitemap