It may be the case that simulated annealing and genetic algorithms are relatively complicated to understand, bound and implement in this instance.
Instead, a very easy starting point would be a simple hill-climbing algorithm.
Start with an arbitrary (or better, random) initial permutation .
The set of moves is the set of permutations that you can reach by transposing two elements of the permutation.
While there is a move that decreases ,
Make the move to reach a new current permutation.
Compute the new set of moves (or rather, their profits for a move reaching ).
This will get you to a local minimum at a cost of , per move, where is the cost of calculating for a permutation of .
Extremely simple and probably not too costly as a first step. You may be able to prove some sort of worst case bound between a local optimum and a global optimum.
No comments:
Post a Comment