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

Reply via email to