Well, what is actually pretty much standard practice is to start a best search solution (in which each iteration constrains the next found solution to be strictly better) with a given time-limit. If search ends before that limit, you have a proved optimal solution; if not, you abort search and either take (the _possibly_ suboptimal) current solution or end up with no solution altogether (none was found within the limit). The possibility of no solution is important as in some cases search might take forever even to find one single solution. One variation would be to state two limits: one (more relaxed) to find the first solution and another to improve it. Stating a time limit to be obeyed _between_ improvements might also yield an impredictably long total search time in many cases. The point is: you are usually interested in computation that is guaranteed to finish, even with a failure :o)
All these schemes are somewhat easily implemented in Oz, but takes some knowledge of spaces and the workings of the standard search engines. One way I've done it was to include in the Order procedure commands to register the currently best solution so far, via some service/port. Making search really respect the time limit might also be challenging, so if you have trouble, ask me. Cheers, Jorge. Selon Tim Heath <[EMAIL PROTECTED]>: > Is it an insane idea to have a type of heuristic for finding a solution > that says something like: > > Find at least 1 solution > > Spend an hour or some amount of time looking for a better solution. If > in an hour no superior solution has been found take the first solution. > > The reason I like this idea is as the speed of computers go up the > heuristic will improve automatically. > _________________________________________________________________________________ mozart-users mailing list [email protected] http://www.mozart-oz.org/mailman/listinfo/mozart-users
