On-line: guests 0. In total there are: 0 [information..]
AuthorTopic
immortal223
administrator


Post №: 1048
Joined: 14.07.07
Rank: 25
link post  Posted: 30.08.08 20:07. Post subject: Rybka 3 Persistent Hash (Постоянный Хеш)


Введение



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

Большая часть функциональности постоянного хеша работает невидимо, не требуя от пользователя какого-то специального контроля. Однако, есть случаи, когда нужны комманды пользователя для максимального использования работы постоянного хеша. В дополнение, пользователи могут обмениваться файлами постоянного хеша, так что пользователь А может использовать анализ сделанный пользователем Б. Постоянный хеш может также быть объединён, так что пользователь А может использовать анализ сделанный отдельно пользователями А и Б. Эти разные сценарии тема этого документа.

Основные Операции



Для обычных пользователей следующие основные операции более-менее достаточны для приемлимой работы:

1) Установите параметр движка (Persistent Hash File), где Вы хотите чтобы располагался файл постоянного хеша. Он должен указывать непосредственно на сам файл (не просто директорию). По соглашению, файлы постоянного хеша имеют расширение .rph.

2) Отметьте поле (Persistent Hash Enabled).

3) Установите параметр движка (Saved Hash File), где Вы хотите чтобы сохранялось содержимое хеша. Путь должен указывать непосредственно на сам файл (не просто директорию). По соглашению, файлы сохранённого хеша имеют расширение .rsh.

4) Когда Вы произвели глубокий анализ какой-нибудь конкретной позиции и хотите, чтобы Рыбка получила доступ к этой работе позже, нажмите кнопку (Save Hash) из списка параметров движка.

5) Когда Вы хотите восстановить анализ из операции #3, убедитесь, что поле (Preserve Analysis) отмечено и нажмите кнопку (Load Hash) из списка параметров движка.

Обратите внимание, что некоторые новые оболочки, которые специализированы под Рыбку (например оболочки от ChessBase & Convekta продающиеся вместе с Rybka 3) дают специальную интерфейсную поддержку для этих операций.

Введение (Расширенное)



Остальная часть этого документа для продвинутых пользователей.

Hash Table - Хеш Таблица

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

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

Во многих случаях, однако, пользователи хотели бы чтобы движок мог использовать работу, которая была сделана некоторое время назад. Другими словами, они бы хотели чтобы старые элементы хеша лучше сохранялись (консервировались). Есть три способа в которых это поддерживается в Рыбке.

Preserve Analysis - Сохранить Анализ



Один вариант пользователю Рыбки для помощи в решении этой проблемы это параметр движка (Preserve Analysis). Когда он отмечен, Рыбка даёт более высокий приоритет высококачественным (т.е. глубоким) элементам и меньший приоритет недавним элементам. Эта схема установки приоритетов менее эффективна с точки зрения игры, где позиции появляются один раз и быстро и навсегда оставляются позади. Во время интерактивного анализа, где пользователь будет возвращаться снова и снова к тем же нескольки позициям, это более эффективно.

Сохранить анализ - это, однако, не универсальное решение.

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

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

Нисходящее и Восходящее Распространение

Перед тем, как мы подойдём к самому постоянному хешу, давайте рассмотрим вопрос о том, когда мы больше всего хотим чтобы Рыбка вспомнила её старый анализ. Вот два сценария.

Первый - это то, что я называю нисходящим распространением. В этом сценарии Рыбка проанализировала какую-нибудь корневую позицию до мелких деталей и мы хотим чтобы она вспомнила эти маленькие детали, которые она собрала вместе в течении этого анализа. Например, мы дали Рыбке анализировать какую-нибудь корневую позицию три часа, и теперь мы хотим существенно рассмотреть её анализ под этой корневой позицией, ожидая, что она быстро всё вспомнит вместо того, чтобы воссоздавать анализ. Термин "нисходящее распространение" относится к факту, что анализ должен быть не забыт в точке, которая "ниже по течению" (т.е. ниже в дереве вариантов) от точки первоначального анализа.

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

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

Использование и Операции



Hash Save & Load - Сохранение и Загрузка Хеша

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

В Рыбке эта функция поддерживается через простой механизм сохранения и загрузки хеша. Когда пользователь вызывает параметр движка (Hash Save), Рыбка сохраняет её текущее содержимое хеша в файл, установленный в (Saved Hash File). Когда пользователь вызывает параметр движка (Hash Load), Рыбка загружает содержимое хеша из того файла.

Обычная последовательность:

1) Рыбка работает долгое время над одной интересующей позицией или интересующими позициями, которые близки в дереве вариантов
или
1а) С отмеченным консервированным анализом (Preserve Analysis) пользователь интерактивно анализирует Рыбкой некоторый набор позиций, которые близки в дереве вариантов

2) Пользователь нажимает кнопку (Save Hash) для сохранения содержимого хеш таблицы

3) Позднее, пользователь нажимает кнопку (Load Hash) для восстановления содержимого хеш таблицы и продолжения работы

Вероятно, продвинутые пользователи будут создавать целые библиотеки файлов сохранённого хеша для их любимых областей исследования. Они так же вероятно будут обмениваться этими файлами друг с другом.

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

Persistent Hash - Постоянный Хеш

Восходящее распространение имеет очень приятное свойство, что заключения, которые должны быть сохранены, имеют маленький размер. Фактически, для целей восходящего распространения, два часа анализа одной корневой позиции может теоритически быть полностью представленны одним элементом, для самой корневой позиции. Это даёт нам возможность быть более амбициозными: для восходящего распространения, мы хотим сохранить всё, автоматически и навсегда, и мы хотим иметь возможность объединять это со всем, что сделали другие пользователи. Для этого и есть постоянный хеш.

Операции постоянного хеша простые:

- Пользователь должен установить в параметре движка (Persistent Hash File) путь к файлу, где хранится постоянный хеш.

- Пользователь должен убедиться, что параметр движка (Persistent Hash Enabled) отмечен.

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

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

- Чтобы оставить постоянный хеш отключённым, оставьте параметр (Persistent Hash Enabled) неотмеченным (как есть по умолчанию).

- Параметр движка (Persistent Hash Size) используется в двух случаях: 1) Когда движок загружен без файла постоянного хеша в установленном пути, создаваемый файл будет указанного размера 2) Когда нажата кнопка (Persistent Hash Resize), файл хеша будет изменён до установленного размера.

- Параметр движка (Persistent Hash Reset) очищает содержимое файла постоянного хеша.

- Чтобы объединить два файла постоянного хеша, установите параметр (Persistent Hash Merge File) ко второму файлу постоянного хеша и нажмите (Persistent Hash Do Merge). Эти два фала не обязательно должны иметь одинаковый размер. Объединённая информация будет содержаться в основном файле постоянного хеша, чей размер останется прежним.

- Параметр (Persistent Hash Write Depth) контролирует частоту записей в файл постоянного хеша во время поиска. Записи более высоких глубин ведут к более меньшей частоты записей.

- Параметр (Persistent Hash Play Depth) коммандует движку автоматически выполнить ход без дальнейшего обдумывания во время игры если позиция уже существует в файле постоянного хеша с как минимум указанной глубиной. Этот параметр вероятно должен приспосабливаться к контролю времени для лучшей работы.

Обслуживание Постоянного Хеша



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

Здесь, однако, будет высказан аргумент о ручном обслуживании постоянного хеша. Каждые несколько недель пользователь может архивировать его текущий постоянный хеш (это может быть сделано простым копированием файла) и после чего объединить его с предыдущим архивом. В некоторых случаях это улучшит производительность.

(сделать - объяснить, почему)

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

(сделать - объяснить больше)

http://www.rybkachess.com/index.php?auswahl=Persistent+hash

Перевод: Scatman, 2008

Say thanks!: 3 
Profile Reply
Replys - 29 , page: 1 2 All [new only]


Кевин
Резидент


Post №: 1001
Joined: 06.01.08
Rank: 20

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 05.02.09 23:25. Post subject: md пишет: она пожир..


md пишет:

 quote:
она пожирает все больше и больше


Такими темпами Рыбка скоро захватит власть над компьютером, затем над миром при помощи доступа к интернету, взломав сайт Пентагона и остальных, сожрёт всю информацию, особенно о ядерном оружии, без которой люди скоро погибнут, испугавшись, что у других стран есть план уничтожить их, раз нет информационной силы, и пальнут друг по другу ракетой, и оставит водная на Земле только водоплавающих, которые в скором времени погибнут тоже, и останутся от людей одни скелеты, ставшие прахом и красноречиво лежащие под снегом ядерной зимы...

По крайней мере анализом я нечасто пользуюсь, примерно раз в месяц, так что 16 мегабайт хватает. Ну а если много оперативы и места на винчстере, то вряд ли повредит, если поставить больше памяти для Рыбки и большой PH-файл.

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 114
Joined: 14.08.07
Rank: 0
link post  Posted: 06.02.09 08:10. Post subject: Память сейчас копье ..


Память сейчас копье стоит, вот и прикупил еще 4гб. Выделил рыбе 2гб памяти. На данный момент (ночь анализа) она хавает на первом ядре 925мб, на остальных по 700, что в сумме переваливает за 2 гб в полтора раза. Ктонибудь может это объяснить?

Мне кажется что это связано с пресистантом, которому я выделил 10гб на винте. Рыба долго загружается преред каждой партией, в диспечере задач видно что она набирается с винта инфой. 2-3 минуты проходит перед началом анализа.

Say thanks!: 0 
Profile Reply
Scatman



Post №: 174
Joined: 10.08.08
Rank: 3
link post  Posted: 06.02.09 11:49. Post subject: md пишет: Память се..


md пишет:

 quote:
Память сейчас копье стоит, вот и прикупил еще 4гб. Выделил рыбе 2гб памяти. На данный момент (ночь анализа) она хавает на первом ядре 925мб, на остальных по 700, что в сумме переваливает за 2 гб в полтора раза. Ктонибудь может это объяснить?


Как я уже писал, каждое ядро использует общую память - суммировать не надо.
У меня всего 4 Гб на компьютере, я могу выделить Рыбке 2 Гб:


Say thanks!: 0 
Profile Reply
Ogre



Post №: 1
Joined: 21.02.09
Rank: 0
link post  Posted: 21.02.09 10:51. Post subject: --------1) Установит..


--------1) Установите параметр движка (Persistent Hash File), где Вы хотите чтобы располагался файл постоянного хеша. Он должен указывать непосредственно на сам файл (не просто директорию). По соглашению, файлы постоянного хеша имеют расширение .rph.----------
Когда я пытаюсь задать путь к файлу у меня показывает только директорию C:\Documents and Settings\Саня\Мои документы\ChessBase\NoGames\EngineParameter\Rybka 3 32-bit и вариант только открыть файл(а в этой папке нет ни каких файлов) а сохранить нельзя. И когда я меняю позицию и снова возвращаюсь на эту позицию мой движок заново начинает анализ.Галочки стоят.Объясните пожалуйста что я не правильно делаю?

Say thanks!: 0 
Profile Reply
armx55



Post №: 1
Joined: 09.03.09
Rank: 0
link post  Posted: 10.03.09 16:23. Post subject: Rybka 3 проблемы


Здавствуйте, у меня проблемы с рыбкой 3, мои два ядра жмут на все 100%. Могу ли я както понизить потребности программы рыбка? Хеш поставлен на 64 мб и у меня 1024 мб. Прошу помочь.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1279
Joined: 15.07.07
Rank: 12

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 10.03.09 16:34. Post subject: Диспетчер задач - пр..


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

Say thanks!: 1 
Profile Reply
armx55



Post №: 2
Joined: 09.03.09
Rank: 0
link post  Posted: 10.03.09 17:53. Post subject: Rybka 3 проблемы


спасибо, попробую.

Say thanks!: 0 
Profile Reply
Nico56
VIP


Post №: 557
Joined: 14.07.07
Rank: 3
link post  Posted: 10.03.09 17:58. Post subject: bankuss пишет: Толь..


bankuss пишет:

 quote:
Только незнаю, как к этому отнесется рыбка...



Я пробовал, нормально относится.

Say thanks!: 0 
Profile Reply
Кевин
Резидент


Post №: 1426
Joined: 06.01.08
Rank: 22

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 06.08.09 04:14. Post subject: Ogre пишет: -------..


Ogre пишет:

 quote:
--------1) Установите параметр движка (Persistent Hash File), где Вы хотите чтобы располагался файл постоянного хеша. Он должен указывать непосредственно на сам файл (не просто директорию). По соглашению, файлы постоянного хеша имеют расширение .rph.----------
Когда я пытаюсь задать путь к файлу у меня показывает только директорию C:\Documents and Settings\Саня\Мои документы\ChessBase\NoGames\EngineParameter\Rybka 3 32-bit и вариант только открыть файл(а в этой папке нет ни каких файлов) а сохранить нельзя. И когда я меняю позицию и снова возвращаюсь на эту позицию мой движок заново начинает анализ.Галочки стоят.Объясните пожалуйста что я не правильно делаю?



Проблема та же, что была и у меня.
Начну по порядку: пользовался почти всё время оболочкой Fritz 10 и в ней в настройках Рыбки 3 по Persistent Hash вводил имя его файла, сохранял нужные позиции и при следующем запуске анализ начинал с предыдущего рыбьего.
Теперь запускаю Fritz 11 Portable Helga X, открываю параметры движка и далее следую по пяти пунктам из шапки:

1) Установите параметр движка (Persistent Hash File), где Вы хотите чтобы располагался файл постоянного хеша. Он должен указывать непосредственно на сам файл (не просто директорию). По соглашению, файлы постоянного хеша имеют расширение .rph.

Ну я выбираю диск F и хочу, чтобы файл был там, называю, к примеру, "rybka", но его ведь там нет, а вместо кнопки "save" есть кнопка "open", как будто я должен открыть уже существующий файл. А как тогда я его создам? Он ведь сам должен создаться. Или нет? Тогда где его взять?

2) Отметьте поле (Persistent Hash Enabled).

Отметил.

3) Установите параметр движка (Saved Hash File), где Вы хотите чтобы сохранялось содержимое хеша. Путь должен указывать непосредственно на сам файл (не просто директорию). По соглашению, файлы сохранённого хеша имеют расширение .rsh.
Опять же: где я возьму эти файлы-то? Ну называю его Rybka 3, допустим, и на тот же диск F хочу сохранить. Окей, open так open.

Ну далее сохраняю параметры всего движка, ок, ок. Анализирую позицию.

4) Когда Вы произвели глубокий анализ какой-нибудь конкретной позиции и хотите, чтобы Рыбка получила доступ к этой работе позже, нажмите кнопку (Save Hash) из списка параметров движка.

Произвёл, хочу, нажал!

5) Когда Вы хотите восстановить анализ из операции #3, убедитесь, что поле (Preserve Analysis) отмечено и нажмите кнопку (Load Hash) из списка параметров движка.

Ну вышел из проги, снова открыл, загружаю движок, параметры сохранённые загружаю и оказывается, что по умолчанию стоят пути к Saved Hash File и Persistent Hash File, то есть на несуществующие файлы в папке D:\Documents and Settings\Administrator\My Documents\ChessBase\NoGames\EngineParameter

Отмечаю поле Preserve Analisis, нажимаю "Load Hash" и, естественно, анализ начинается с нуля.


А теперь то, что нет в пяти пунктах: закрываю программу, снова её открываю, открываю опять параметры, загружаю настройки и нажимаю "Persistent Hash Do Merge", вообще даже не открывая его месторасположение, затем открываю диск F и... Файлы, которые я называл "rybka" и "rybka 3" на месте, создались-таки! Ставлю их в опциях, чтобы были, где надо в параметрах, сохраняю снова параметры движка, анализирую позицию, делаю Save Hash, выхожу из программы, снова открываю, загружаю параметры, но путь к файлам *.rph и *.rsh опять не указан. Что ж, заново его указываю, ставлю галочку "Preserve Analisis" и затем "Load Hash", открываю проанализированную ранее позицию, включаю анализ и он начинается с той же глубины и варианта, на котором рыбка остановилась в прошлый раз.

То есть я, когда хочу сохранить позицию, нажимаю "Стоп" движку, открываю его параметры, убираю галочку с "Preserve Analisis", делаю "Save Hash" и выхожу из программы. Когда снова хочу продолжить работу, то открываю программу, загружаю все настройки и пути к файлам, теперь "Preserve Analisis" отмечаю и делаю "Load Hash". Ну и продолжаю анализ с той точки, на которой остановился в прошлый раз движок.

Надеюсь, я всё сделал правильно и понятно объяснил свои действия.

Say thanks!: 0 
Profile Reply
Replys - 29 , page: 1 2 All [new only]
Тему читают:
- user online
- user offline
All times are GMT  2 Hours. Hits today: 4
You can: smiles yes, images yes, types no, poll no
avatars yes, links on, premoderation on, edit new post no