【发布时间】:2021-12-27 19:43:51
【问题描述】:
我想在某个时限内找到一个目标的所有解决方案。我的意思是我最多要搜索时限的解决方案,并返回所有找到的解决方案,无论是否达到时限,无论解决方案列表是否完整。
我尝试了以下方法:
catch(call_with_time_limit(60, findall(S,my_goal(S),Sol)), time_limit_exceeded,false)
但是,如果到了时间限制,它不会返回找到的部分解决方案列表,并且“false”不能是依赖于 Sol 的表达式。
这个问题与Prolog: "findall" for limited number of solutions 有关,但我对最长搜索时间感兴趣,而不是最大数量的解决方案。
请问您对此有何见解?
【问题讨论】:
标签: prolog swi-prolog prolog-findall