L'algo de l'applet de Sun repose sur le principe dit du "recuit simulé". Il permet de passer outre l'aspect NP-complet, mais par contre, il ne garantit pas qu'on trouve la solution optimale, seulement une assez bonne solution.
Le "recuit simulé", c'est quoi ? L'idée, c'est de faire cuire du verre ou du cristal dans un four : on laisse le système de refroidir progressivement. Ce faisant, l'"énergie globale" du système diminue. Puis de temps en temps, on fait rechauffer l'objet par un passage au four, ce qui augmente sa température, donc son "énergie globale", puis on le laisse refroidir à nouveau. On réitère l'opération jusqu'à avoir atteint un niveau d'"énergie" suffisamment bas/stable.
Pour revenir à l'applet de Sun, l'"énergie" correspond peu ou prou à la somme des longueurs des arcs, sauf croisement, qui augmente beaucoup l'énergie d'un des arcs croisés. A chaque itération, on perturbe légèrement le système pour globalement réduire la longueur de chaque arc, ou, localement l'augmenter un peu. La somme des longueurs diminue à chaque itération. L'énergie globale diminue. Le bouton "Shake" fait repasser le tout au four (ici très violent : tu pourrais aussi fabriquer un four qui chauffe moins que cela, ou qui chauffe le tout plus progressivement) : en déplaçant les noeuds, il augmente artificiellement la longueur des arcs, donc augmente l'"énergie globale" du système.
A quoi sert la phase de recuit : à sauter les maximum locaux, et donc à sauter de minimum local en minimum local, pour espérer tomber sur un minimum proche du minimum global.