Обрезка: когда остановиться? - PullRequest
2 голосов
/ 24 апреля 2010

Когда обрезка перестает быть эффективной при поиске в глубину? Я работал над эффективным методом решения проблемы N-Queens, и я смотрю на обрезку впервые. Я реализовал это для первых двух строк, но когда он перестанет быть эффективным? Как далеко я должен подрезать?

Ответы [ 2 ]

4 голосов
/ 24 апреля 2010

Проблема N-Queens обычно рекурсивная. Реализация обрезки на одной глубине должна означать реализацию на любой глубине.

Ответ будет зависеть от того, какую обрезку вы делаете. Если вы отбрасываете для симметричных ходов, то это не стоит сокращать, когда стоимость проверки больше, чем стоимость оценки целой ветви, умноженной на вероятность симметрии ветви. Для задачи N-Квинса симметрия, вероятно, не очень плодотворный метод обрезки после первых двух строк.

1 голос
/ 24 апреля 2010

Однажды я увидел цитату по этому поводу: «Чернослив рано; часто чернослив». И другой: «Не делай глупостей; не делай ничего дважды».

Я думаю, что количество сокращений, которое вы делаете, должно определяться вашими целями проблемы или вашими границами на N.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...