0

我想找到很多时间表的最小错误数。我制定了一个时间表,记录了错误,将所有错误存储在一个列表中并获取第一个元素(MinError)。MinError >=0,所以我想知道当随机计划得到 Errors=0 并返回 MinError 时是否可以停止此过程。

setof(Errors,A^B^C^(schedule(A,B,C),schedule_errors(A,B,C,Errors)),[MinError|_]).

4

1 回答 1

1

You may use an if-then-else with a cut to stop processing further solutions when you found your minima:

setof(Errors, 
      A^B^C^(
             schedule(A,B,C),
             schedule_errors(A,B,C,Errors),
             (Errors=0 -> ! ; true)
            ), 
      [MinError|_]).
于 2020-05-07T04:05:00.027 回答