Programm Description:
This is a Java application that demonstrates the Simulated Annealing algorithm with
an attack on the "traveling salesman" problem.
What is simulated annealing?
Simulated annealing is a technique, which was developed to help solve large
combinatorial optimization problems. It is based on probabilistic methods that avoid
being stuck at local (non-global) minima. It has proven to be a simple but
powerful method for large-scale combinatorial optimization.
For practical purposes, simulated annealing has solved the famous traveling
salesman problem: find the shortest of N! paths connecting N cities. Simulated
annealing finds a very good approximation to the shortest path out of the huge
number of all possible paths.
Annealing is nature's trick to find extrema in very complicated situations.
Simulated annealing mimics on a computer the natural process by which crystal lattices
of glass or metal relax when heated. The molecules of hot glass or metal are free
to move about. Temperature is an average of the thermal energy in each molecule
of an object. If the temperature drops quickly, these molecules solidify into a
complex structure. However, if the temperature drops slowly, they form a highly
ordered crystal. The molecules of a crystal solidify into a minimal energy state.
Some real applications simulated annealing:
Determining the sequence of observations for an automated astronomical telescope [2]
Computer Aided Geometric Design
Optimization of Econometric Statistical Functions
Games with random moves determined by the simulated annealing algorithm
Arranging connections on chips and switching devices in telephone networks
The algorithm:
In the simulated annealing algorithm, an objective function to be minimized is
defined. Here it will be the total path length through a set of points.
Related Keywords:
annealing salesman simulated traveling
|
Abecedarical Systems: other programm
|
Almanac Almanac calculates the equatorial coordinates of the sun, the moon, and the planets. From these it calculates the times of rise, set, and meridian transit for each of these celestial bodies. Additionally, it can calculate the times for twilight C++ sets class The sets class can be used to perform set operations in your programs. It represents set elements as bits in a private array of unsigned long integers. The array size is a defined constant which can be changed to suit your application. Numerical Plotter This source code enables you to plot the solutions to scientific and
engineering problems. The Visual C++ programming environment was chosen for
realization of numerical computation techniques. Spreadsheet Calculator (SCalc) for UNIX SCalc is a simple spread sheet program. The user interface applies the
UNIX curses library for control of a terminal screen in text mode. T Interpreter This is an easy to learn, user friendly, high level, computer programming language. T is more like natural English than most other computer languages and this makes a T program both easy to write and easy to understand.
|
|