SOS on my scheduler, please help me to finish it

Filip Konvička filip.konvicka.removethisantispamtoken at logis.cz
Wed Jun 14 07:56:42 CEST 2006


> When I try to do this:
> 
> X = {Search.base.best Script DistributedSorted Earlier}
> 
> I get error:

Sure, you pass too many arguments. Check the docs.

> How do I code this?

DistributeSorted is a parameter to the script, not to the search engine. 
The search script must be the same during the whole search, but you can 
construct it dynamically when you pass it to the search engine (this is 
called "compiling" the script in the tutorials):

fun {Compile Problem DistributionFct}
...
in
   proc {$ Start}
...
      {DistributionFct TasksOnWorkCenters Start Dur}
...
   end
end

Script={Compile JobShopProblem DistributeSorted}

> Why is it that you put a function like earlier and DistributeSorted as 
> an argument to search?  Does earlier get invoked for every search or 
> only for the final solution?

"Earlier" is used to tell which solution is better (and, during 
branch-and-bound search, it is even able to constrain a computation 
branch to be "better" than the most recent result - there can be more 
than one "active" computations at a time).

DistributeSorted is a procedure used inside your script.

"Script" itself is the script that the search engine executes.

Hope this helps,
Filip




More information about the mozart-users mailing list