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]


Kozenkov



Post №: 6
Joined: 22.08.08
Rank: -1
link post  Posted: 02.09.08 12:48. Post subject: У меня есть вопрос п..


У меня есть вопрос по статье.

 quote:

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


Как быть, если этой кнопки нет? Оболочка Фриц 10.

Say thanks!: 0 
Profile Reply
Scatman



Post №: 25
Joined: 10.08.08
Rank: -1
link post  Posted: 02.09.08 13:53. Post subject: Установите другую об..


Установите другую оболочку. Например Фриц 11 с последним обновлением.

Say thanks!: 0 
Profile Reply
Yurie



Post №: 6
Joined: 01.04.08
Rank: 1
link post  Posted: 14.09.08 15:17. Post subject: Весьма удивлен пове..


Весьма удивлен поведением модераторов.Может они так выражают политику сайта?
Глупо отказываться от профессиональной помощи в обмен на творчество 14-летнего ребенка.
Впрочем,
сайт -ваше детище и Вы вправе делать здесь все, что Вам заблагорассудится.
Мое же мнение о данном ресурсе сильно изменилось.
И по вполне понятным причинам, я не буду публиковать здесь собственный перевод главы Persistent Cash.


Say thanks!: 0 
Profile Reply
Scatman



Post №: 58
Joined: 10.08.08
Rank: 2
link post  Posted: 14.09.08 20:22. Post subject: Для того, чтобы опуб..


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

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 236
Joined: 19.10.07
Rank: 0
link post  Posted: 03.10.08 14:30. Post subject: Кто-нибудь вообще пы..


Кто-нибудь вообще пытался читать этот перевод? Я прочитал два первых абзаца.

"точная оценка которых зависит от ранее аналированных позиций"
"Постоянный хеш делают Рыбку более эффективной в этих случаях"

А это на каком языке?

"Эти разные сценарии тема этого документа"
"для максимального использования работы постоянного хеша"

Очень похоже на то, как разговаривал Йода.

Say thanks!: 0 
Profile Reply
PozitiFF_Chess
VIP


Post №: 84
Joined: 31.05.08
Rank: 1
link post  Posted: 03.10.08 15:25. Post subject: А че - хороший перев..


А че - хороший перевод... Главное - абстрагироваться от предметной области и получать удовольствие от чтения

Say thanks!: 0 
Profile Reply
Scatman



Post №: 84
Joined: 10.08.08
Rank: 2
link post  Posted: 04.10.08 11:55. Post subject: В тексте каждый найд..


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

Say thanks!: 0 
Profile Reply
WildCat
VIP


Post №: 237
Joined: 19.10.07
Rank: 0
link post  Posted: 04.10.08 13:29. Post subject: Я о том, что текст н..


Я о том, что текст нужно проверить и исправить.

Scatman пишет:

 quote:
просто фанат Звёздных Войн


Фанатизму в переводах технической документации не место. :)

Say thanks!: 0 
Profile Reply
zapolskis



Post №: 11
Joined: 25.11.08
Rank: 0
link post  Posted: 30.11.08 14:58. Post subject: перечитал все топики..


перечитал все топики по настройкам ,но так и не понял надо менять чтонить в настроиках кэша или оставить бсё по умолчанию ?

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


Post №: 767
Joined: 06.01.08
Rank: 17

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


zapolskis , если не знаете, что значат настройки, то лучше оставить всё как есть ;)

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 108
Joined: 14.08.07
Rank: 0
link post  Posted: 04.02.09 21:04. Post subject: Люди, а сколько вы в..


Люди, а сколько вы выделяете места под персистент?

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


Post №: 987
Joined: 06.01.08
Rank: 20

Awards: За отличные редкие и эксклюзивные вещи!За Рыбку!!!! СПАСИБО!За Джуню 2010
link post  Posted: 04.02.09 23:10. Post subject: Я 16 мегабайт, а бол..


Я 16 мегабайт, а больше и не нужно: в них уместится очень много позиций.

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 109
Joined: 14.08.07
Rank: 0
link post  Posted: 04.02.09 23:32. Post subject: Хм, по умолчанию вро..


Хм, по умолчанию вроде 1024 стоит, или я ошибаюсь? Имеет ли смысл ставить большой пресистант-хеш?

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


Post №: 992
Joined: 06.01.08
Rank: 20

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


Вроде как говорили ещё в теме про Рыбку 3, что большой PH ставить не имеет смысла. Или я путаю?

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 110
Joined: 14.08.07
Rank: 0
link post  Posted: 05.02.09 08:07. Post subject: Кевин, вы пользуетес..


Кевин, вы пользуетесь вообще этой фичей или она у вас просто для галочки?

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


Post №: 996
Joined: 06.01.08
Rank: 20

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


Лично я пользуюсь, а именно: ставлю интересную позицию на анализ (например, для адванса), движок анализирует несколько часов, потом выключаю программу и в любое другое время (как удобно) заново возвращаюсь к проанализированным вариантам.
А если для галочки, то смысл? Особенно в блиц: сам Васик не рекомендует, потому что много багов, и советует дождаться Rybka 3+.

Say thanks!: 0 
Profile Reply
bankuss
Black King


Post №: 1197
Joined: 15.07.07
Rank: 11

Awards: За плодотворную работу над оптимизацией и доводкой до ума Ипполитов!!!
link post  Posted: 05.02.09 13:25. Post subject: Этот хэш - аналог фа..


Этот хэш - аналог файла обучения (у Хайркс например), но Хайркс в него довольно редко что-то пишет, файлик маленький. А вот насколько часто Рыба скидывает позиции в этот файл? Если часто, то 16 мб - это мало. Вот если на каждую позицию писать свой файл, то 16 мб может хватить (но неудобство - каждый раз переключать этот файл).
Но это все надо проверять, тестировать.

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 111
Joined: 14.08.07
Rank: 0
link post  Posted: 05.02.09 18:36. Post subject: Я выделил 10гб под п..


Я выделил 10гб под пресистант.

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

Say thanks!: 0 
Profile Reply
Scatman



Post №: 173
Joined: 10.08.08
Rank: 3
link post  Posted: 05.02.09 19:26. Post subject: md пишет: Рыба жрет..


md пишет:

 quote:
Рыба жрет память как бешеная, в диспечере задач вижу что каждое ядро по 700мб себе взяло. Хотя я ей выделил всего 1гб. Возможно это както связано с пресистант-хешем?


"всего 1гб"? Вы посчитали 2 ядра * 512 = 1024 мб? Если так, то рыбка использует не 1024 мб, а сколько и установлено - 512. Как мне объяснил WildCat, каждое ядро использует общую память.

Похоже, обслуживание 10 гб PH требует всего 80 МБ оперативки, что немного.

Say thanks!: 0 
Profile Reply
md
VIP


Post №: 113
Joined: 14.08.07
Rank: 0
link post  Posted: 05.02.09 20:21. Post subject: Нет, 4 ядра, каждое ..


Нет, 4 ядра, каждое взяло по 700. Всего выделено 1024. Кстати, уже больше 700, она пожирает все больше и больше. Не понятно.

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: 23
You can: smiles yes, images yes, types no, poll no
avatars yes, links on, premoderation on, edit new post no