修剪:什么时候停止?

发布于 2024-08-29 21:29:57 字数 97 浏览 11 评论 0原文

在深度优先搜索中,剪枝何时不再有效?我一直在研究一种有效的方法来解决 N-Queens 问题,并且我第一次考虑修剪。我已经为前两行实现了它,但是它什么时候不再有效?我应该修剪多远?

When does pruning stop being efficient in a depth-first search? I've been working on an efficient method to solve the N-Queens problem and I'm looking at pruning for the first time. I've implemented it for the first two rows, but when does it stop being efficient? How far should I prune to?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

她比我温柔 2024-09-05 21:29:57

N 皇后问题通常是递归的。在某一深度实施剪枝应该意味着在任意深度实施剪枝。

答案取决于您正在进行哪种修剪。如果您要修剪对称移动,那么当检查成本大于评估整个分支的成本乘以分支对称的概率时,就不值得修剪。对于 N 皇后问题,在前两行之后,对称可能不是一种非常有效的修剪方法。

The N-Queens problem is typically recursive. Implementing pruning at one depth should mean implementing it at any depth.

The answer would depend on what sort of pruning you're doing. If you're pruning for symmetric moves, then it's not worth pruning when the cost of checking is more than the cost of evaluating a whole branch times the probability of the branch being symmetric. For the N-Queens problem, symmetry is probably not a very fruitful pruning method after the first two rows.

栀子花开つ 2024-09-05 21:29:57

我曾经看到过这样一句话:“早修剪;经常修剪。”还有一句,“不要做任何愚蠢的事情;不要做两次事情。”

我认为你所做的修剪量应该由你的问题目标或你的 N 边界决定。

I once saw a quote regarding this, "Prune early; prune often." And another, "Don't do anything stupid; don't do anything twice."

I think that the amount of pruning that you do should be determined by your goals for the problem, or your boundaries on N.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文