2
我對prolog很陌生,正在通過FD解算器工作。我正在探索SWI-Prolog和Gnu Prolog。我有一種情況,需要解決像下面這樣的約束,並且需要根據種子隨機挑選其中一種可能的解決方案。不知道Prolog中有多少可能。我們如何從Prolog給出的解決方案列表中選擇一個隨機數據集?
下面是我試圖求解方程:
?- X #< 7 , X #> -10, 4*X+2*Y #< 8, Y #< 10, Y #>0, label([X]).
X = -9,
Y in 1..9 ;
X = -8,
Y in 1..9 ;
X = -7,
Y in 1..9 ;
X = -6,
Y in 1..9 ;
X = -5,
Y in 1..9 ;
X = -4,
Y in 1..9 ;
X = -3,
Y in 1..9 ;
X = -2,
Y in 1..7 ;
X = -1,
Y in 1..5 ;
X = 0,
Y in 1..3 ;
X = Y, Y = 1.
正如你可以在上面看到,它給了我多種解決方案。對於我的應用程序,我會有興趣根據種子選擇上面的一組數據。
這是可能的序言?如果你能幫助我提供你的建議,那將是非常棒的。
感謝, Venkat