我想在一定时间内找到目标的所有解决方案。我的意思是我最多要搜索时限的解决方案,并返回所有找到的解决方案,无论是否达到了时限,这与解决方案列表是否完整无关。
我尝试了以下方法:
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 有关,但我对最大搜索时间感兴趣,而不是最大数量的解决方案。
请问您对此有什么见解吗?