5

すべてのソリューションを表示したり、SICSTus プロローグにあるソリューションの数を見つけたりする方法はありますか? たとえば、次のコードを使用して、地図の色付けの問題を解決できます。

:- use_module(library(clpfd)). 
solve_AUSTRALIA(WA,NT,Q,SA,NSW,V):-
   domain([WA,NT,Q,SA,NSW,V], 1, 4),%colours represented by integers from 1 to 4
   WA #\= NT, 
   WA #\= SA, 
   NT #\= SA, 
   NT #\= Q, 
   SA #\= Q, 
   SA #\= NSW, 
   SA #\= V, 
   Q #\= NSW,
   NSW #\= V,
   labeling([],[WA,NT,Q,SA,NSW,V]).

現時点では、;Prologがノーと言うまで、さらなる解決策を見るために毎回入力しています. プロローグにすべてのソリューションを一度に表示するように指示する方法はありますか? プロローグのように、問題には 5 つの解決策があることがわかります。

4

1 に答える 1