Logo Data Structures and Algorithms with Object-Oriented Design Patterns in C++
next up previous contents index

Example-Balancing Scales

Consider again the scales balancing problem described in Section gif. I.e., we are given a set of n weights, tex2html_wrap_inline68483, which are to be placed on a pair of scales in the way that minimizes the difference between the total weight in each pan. Feasible solution to the problem all have the form tex2html_wrap_inline68425, where

displaymath68503

To solve this problem using simulated annealing, we need a strategy for generating random moves. The move generator should make small, random changes to the current solution and it must ensure that all possible solutions can be reached. A simple approach is to use the formula

displaymath69568

where tex2html_wrap_inline69447 is the initial solution, tex2html_wrap_inline69583 is a new solution, tex2html_wrap_inline69585 is a sequence of zeroes and ones generated randomly, and tex2html_wrap_inline62752 denotes elementwise addition modulo two.


next up previous contents index

Bruno Copyright © 1997 by Bruno R. Preiss, P.Eng. All rights reserved.