我已经看到可以通过向labeling/2
添加以下选项,使用随机方法标记cplfd变量:
labeling([random_variable(N),random_value(M)],List).
我认为M
和N
应该是整数。但是,我无法在SWI-Prolog的文档页面中找到有关这些选项的任何信息。他们怎么用?
答案 0 :(得分:0)
在CLP(FD)库中有:
selection(random_variable(Seed)) :-
must_be(integer, Seed),
set_random(seed(Seed)).
% TODO: random_variable and random_value currently both set the seed,
% so exchanging the options can yield different results.
order(random_value(Seed)) :-
must_be(integer, Seed),
set_random(seed(Seed)).
select_var(random_variable(_), Vars0, Var, Vars) :-
length(Vars0, L),
I is random(L),
nth0(I, Vars0, Var),
delete_eq(Vars0, Var, Vars).
因此,选项只会为随机生成的数字设置种子,但不清楚 random_value(N)和 random_variable(具有不同的值)的目的是什么? M)即可。