Каково состояние в компьютерном шахматном поиске дерева?

Похоже, вы пытаетесь использовать специфичный для BASH синтаксис extglob. ls|grep не будет работать в середине шара, потому что каждый шаблон должен быть разделен |, что не случится с ls|grep. Самый простой способ сделать то, что вы хотите, это использовать глобализацию оболочки, чтобы найти файлы в каталоге, который вы ищете. Убедитесь, что вы делаете следующее:

  1. Используете BASH
  2. Включили extglob: shopt -s extglob
  3. Включили globstar: shopt -s globstar [ 1113]
  4. Используйте глобализацию файла вместо ls | grep

Затем попробуйте снова:

rm -v !("R1.r"|"R2.r"|"r2.par"|**/*nario*|"sh.sh")

Примечание: globstar требует BASH версии 4 или выше.

15
задан RoadWarrior 7 February 2009 в 19:45
поделиться

8 ответов

Не уверенный, если Вы уже знаете о нем, но проверяете Шахматы, Программируя Wiki - это - большой ресурс, который покрывает примерно каждый аспект современных шахмат AI. В частности, касаясь Вашего вопроса, посмотрите разделы Поиска и Оценки (под Принципиальными Темами) на основной странице. Вы могли бы также смочь обнаружить некоторые интересные методы, используемые в некоторых программах, перечисленных здесь. Если бы на Ваши вопросы все еще не отвечают, я определенно рекомендовал бы спросить на Шахматных Форумах Программирования, где, вероятно, будет намного больше специалистов вокруг для ответа. (Не то, чтобы Вы не обязательно получите хорошие ответы здесь, просто что это скорее более вероятно на определенных для темы опытных форумах).

13
ответ дан 1 December 2019 в 03:35
поделиться

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

Иногда эта эвристика может возвратить плохое (я имею в виду не лучшее), перемещение также.

Люди, с которыми я говорил всегда, рекомендуют оптимизировать поиск альфы - беты и реализовать повторяющееся углубление в код вместо того, чтобы пытаться добавить другую эвристику.

Главная причина состоит в том, что компьютеры увеличиваются в вычислительной мощности и исследовании [цитата потребности, которую я предполагаю], показала, что программы, которые используют их целое процессорное время для грубой силы дерево альфы - беты на максимальную глубину, всегда имеют outrunned программы, которые разделяют их время между определенные уровни альфы - беты и затем некоторой эвристики.

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

Я уверен, что Вы знаете, что, чтобы альфа - бета работала точно, поскольку она предназначается для работы, у Вас должно быть перемещение, сортирующее mechanisn (повторяющееся углубление). Повторяющееся углубление может дать Вам приблизительно 10%-е повышение производительности.

Добавление Основного метода поиска изменения к альфа-бете может дать Вам дополнительное 10%-е повышение.

Попробуйте MTD (f) алгоритм также. Это может также увеличить производительность Вашего механизма.

2
ответ дан 1 December 2019 в 03:35
поделиться

MTD (f) или один из вариантов MTD является большим улучшением по стандартной альфе - бете, если у Вас нет действительно мелких деталей в Вашей функции оценки и предполагая использование уничтожающей эвристики. Эвристика истории также полезна.

Шахматная программа с самым высоким рейтингом Rybka, по-видимому, отказалась от MDT (f) в пользу PVS с окном нулевого стремления на узлах неPV.

Расширенное сокращение тщетности, которое включает и нормальное сокращение тщетности и глубокий razoring, является теоретически необоснованным, но удивительно эффективным на практике.

Повторяющееся углубление является другой полезной техникой. И я перечислил много хороших шахматных ссылок программирования здесь.

4
ответ дан 1 December 2019 в 03:35
поделиться

Одна эвристика, которая не была упомянута, является Пустым сокращением перемещения.

Кроме того, у Ed Schröder есть большая страница, объясняя много приемов, которые он использовал в своем механизме Повстанцев, и сколько улучшения каждый способствовал скорости/производительности: Внутренний Мятежник

1
ответ дан 1 December 2019 в 03:35
поделиться

Используя таблицу перемещения с хешем zobrist

Требуется очень мало кода для реализации [одного XOR на каждом перемещении или неперемещении, и, если оператор прежде, чем рекурсивно вызвать в игровом дереве], и преимущества довольно хорош, особенно если Вы уже используете повторяющееся углубление, и это довольно tweakable (используйте большую таблицу, меньшую таблицу, заменяющие стратегии, и т.д.),

1
ответ дан 1 December 2019 в 03:35
поделиться

Большая часть настольной игры алгоритмы AI основана на http://en.wikipedia.org/wiki/Minmax MinMax. Цель состоит в том, чтобы минимизировать их опции при максимизации опций. Хотя с Шахматами это - очень большая и дорогая проблема во время выполнения. Чтобы помочь уменьшить это, можно объединить минимакс с базой данных игр, в которые ранее играют. Любая игра, которая имеет подобную позицию платы и установила шаблон о том, как то расположение было выиграно для Вашего цвета, может использоваться до "анализа", куда переместиться затем.

Я немного смущен на том, что Вы подразумеваете под improvement/code_size. Вы действительно имеете в виду улучшение / анализ во время выполнения (большой O (n) по сравнению с o (n))? Если это так, говорите с IBM и командой Параллелей крупной синей, или Microsoft. В PDC я говорил с парнем (чье имя выходит из меня теперь), кто демонстрировал, что Маджонг с помощью 8 ядер на противника и они выиграли первое место на игровом конкурсе дизайнеров алгоритма (чье имя также выходит из меня).

Я не думаю, что существуют любые "консервированные" алгоритмы там, чтобы всегда выиграть шахматы и сделать это очень быстро. Способ, которым необходимо было бы сделать это, имеют КАЖДУЮ возможную игру, в которую ранее играют, индексированную в очень большой основанной на словаре базе данных, и предварительно кэшировали анализ каждой игры. Это было бы ОЧЕНЬ compex алгоритм и будет очень плохим улучшением / проблема сложности, по-моему.

0
ответ дан 1 December 2019 в 03:35
поделиться

Уничтожающие перемещения являются хорошим примером небольшого размера кода и большим улучшением упорядочивания перемещения.

0
ответ дан 1 December 2019 в 03:35
поделиться

Я мог бы быть немного вне темы, но "современные" шахматные программы используют MPI такой в качестве Темно-Синего для крупного параллельного питания.

Просто рассмотрите, чем параллельная обработка играет большую роль в современных шахматах

0
ответ дан 1 December 2019 в 03:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: