Highest utility first search: a control method for multi-level stochastic design

An intrinsic characteristic of stochastic optimization methods, such as simulated annealing, genetic algorithms and multi-start hill climbing, is that they can be run again and again on the same inputs, each time potentially producing a diierent answer. When such algorithms are used in a design process with multiple levels of abstraction, where the output of one stochastic optimizer becomes the problem statement for another stochastic optimizer, we get an implicit tree of alternative designs. After each optimizer run we face a control problem of which level's optimizer to run next, and which design alternative to run it on. This problem is made more diicult by the fact that we generally can get a precise evaluation of the design alternatives only at the lowest level (the nal results), and must make do at higher levels with only an estimate of how good a nal design each alternative will lead to. 1 The work presented here is part of the \Hypercomputing & Design" (HPCD) project; and it is supported (partly) by ARPA under contract DABT-63-93-C-0064. The content of the information herein does not necessarily reeect the position of the Government and oocial endorsement should not be inferred. 1 We present the Highest Utility First Search (HUFS) control algorithm for this problem. HUFS is based on an estimate we derive for the expected utility of starting the design process from any given design alternative, where utility reeects both the intrinsic value of the nal result and the cost in computing resources it will take to get that result. This estimate is comparable across levels of the hierarchy. HUFS is essentially best rst search where \best" is deened by this expected utility. We also present an empirical study applying HUFS to the problem of VLSI module placement, which demonstrates the superiority for HUFS over the common \waterfall" control method in this setting.