自从我认真使用 Prolog 以来已经有很长时间了,但我无法通过谷歌搜索或在我拥有的文本中找到任何对此的参考。这可能是术语的失败,如果我屠杀了它,请道歉。
如果我有一个可以有多种解决方案的程序:
likes(mary, joe).
likes(bob, joe).
:- likes(X, joe)
是否有一种简单的内置方法让求解器以随机顺序运行匹配谓词,从而以随机顺序给出结果(或者,等效地,第一个解决方案是随机的)?
显然,您可以随心所欲地使用random一词。我正在考虑在求解器的每一步从一组有效谓词中进行一些统一的随机抽样。更复杂的东西,比如对有效解决方案进行统一随机抽样也可以。问题很笼统。
我可能可以构建一个程序来做到这一点,使用随机数生成器和元编程。但我想检查一下我是否遗漏了一些简单的东西。