gpt4 book ai didi

prolog - 什么是 clpfd 中的边界传播

转载 作者:行者123 更新时间:2023-12-01 12:28:22 25 4
gpt4 key购买 nike

我想弄清楚 中的边界传播是什么,但似乎无法在任何地方找到一个好的解释。

我正在修改 Prolog 和 clpfd 并遇到了这个问题,但查看讲义对我来说没有意义。谁能解释一下边界传播的实际含义及其用途。

这里是我所指的问题:

When the following Prolog program

:- use_module(library(clpfd)).
bounds(X, Y, Z) :-   X in 1..5,   Y in 1..2,   Z in 3..5,   X #= Y + Z.
is queried it gives the answer:

?- bounds(X, Y, Z).X in 4..5,Y in 1..2,Z in 3..4.

Explain how bounds propagation can be applied to infer this answer.

最佳答案

我给你一个开始:

发布所有约束后,一件事立即很清楚:X 至少 4。为什么?因为 Y 至少为 1,Z 至少为 3,而 X>YZ

鉴于此知识再次检查张贴的约束,看看是否可以调整任何边界。

这就是边界传播 所做的:遍历所有变量的边界并查看是否可以根据发布的约束调整其中任何一个。重复此操作,直到不再有可能的域缩减。

关于prolog - 什么是 clpfd 中的边界传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37161561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com