6-7-фигурный эндшпильный генератор готов

Тема в разделе "Машинное отделение", создана пользователем Skipper_NORTON, 3 ноя 2008.

Статус темы:
Закрыта.
  1. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Шахматный генератор всех 3-4-5-6-7-фигурных эндшпилей. В моем формате (tb).
    Базы чуть больше по размеру, чем в формате Налимова (10-20 процентов).
    Потому, что у меня получился чуть менее совершенный встроенный архиватор,
    который сжимает базы. Некоторые типы (например KBB-KN) в моем формате даже
    меньше по размеру. Все количества позиций по статистике совпадают со
    статистикой Налимова. Работает под Windows, хороший UI, и хорошо оптимизирован
    по соотношению параметров "количество оперативной памяти - время генерации".


    http://generatorchess.qsh.ru/Default.aspx

    Тема закрыта по просьбе автора, в связи с выходом новой версии.
    Дальнейшее обсуждение здесь: http://kasparovchess.crestbook.com/viewtopic.php?id=5339
  2. Umpire Заслуженный

    • Заслуженный
    Рег.:
    14.03.2007
    Сообщения:
    439
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Спасибо! Но перед тем, как воспользоваться, вопрос неграмотного: что есть формат tb и можно ли его подключить к продуктам от ChessBase?
  3. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Цель была такая - написать 6-7-фигурный генератор, и оптимизировать его по максимуму. А то 7-фигурного сейчас вообще нигде нет, а 6-фигурный вроде есть, но для него нет хорошего интерфейса и он не под Windows. Я написал под Windows.

    Формат tb - это мой формат, пока он работает только в моем анализаторе. У меня нету форматов Налимова, Томпсона, Шреддера и т.д. Если бы я их знал, то мог бы переписать в любой формат. Т.к. я их не знаю, записываю базы в свой tb. Но у кого есть программы, с помощью которых можно анализировать базы, например, в формате Налимова, можно переписать их из моего в тот. Для этого я и создал еще кроме анализатора - свой dll. Он позволит программам вынимать оценки для позиций из базы.
  4. ProstoTak Старожил

    • Ветеран
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    5.479
    Симпатии:
    123
    Репутация:
    1
    Оффлайн
    Ну а на каком железе и за какое время можно получить все 7-ми фигурные окончания? И сколько места нужно для их хранения?
  5. Renegat23 Заслуженный

    • Заслуженный
    Рег.:
    08.02.2007
    Сообщения:
    1.823
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    6-ти фигурки весят ~1230Gb. Их генерили несколько лет на мощном компе. Последний файл был сгенерирован в начале августа 2006 года, если мне не изменяет память. 5-1 окончания никто не генерил и никто генерить не будет, если разве что не найдется смельчак, который сгенерит 7 фигурные, но это примерно 200Tb.

    Да, пока винчестеры до 1 терабайта, такие не поставишь. Но лет через 5-10, будут винчестеры, скажем по 50-200 терабайт, вполне возможно, поставив несколько винчестеров. И я уверен в этом. В 1999 году когда я купил свой первый комп, то винчестеры были по 2 гигабайта, т.е. в 500 раз меньше сегодняшних. А генерировать можно и нужно начинать прямо сейчас, и записывать на диски (они дешевле всего). Когда в будущем будут компы, при которых можно будет использовать 7-фигурки, то можно будет сразу их использовать, а не ждать пока сгенерятся лет 10. Организовать бы вот, на многих компах генерацию, и обмениваться друг с другом? Правда, генератора даже 6-фигурных нигде не найти, не говоря про 7-фигурные.

    Тут были вопросы, сколько будет генерироваться 6-фигурная база. Сильно зависит от эндшпиля, от числа ходов значит и от фигур, а также пешечный - или нет, от количества итераций которые придется сделать, но полагаю, у Налимова - судя по скорости (5-фигурных), скажем, на современном, хорошем процессоре, Athlon 64 4000, одноядерном - СРЕДНЕСТАТИСТИЧЕСКИ - 3 недели будет генерироваться (это в среднем, т.к. некоторые больше, некоторые - меньше). 7-фигурная - 2 года. Ну и что? Всего 7-фигурных - 1001 база. Значит одному компу надо 2000 лет.

    А если юзать 4-ядерный процессор, которые уже появились в продаже - то уже в 4 раза меньше по времени (спорное утверждение, так как для этого нужно чтобы генератор был оптимизирован под многопоточность, но даже при этом прирост производительности будет не кратен количеству ядер, а меньше чем в 4 раза). А если объединить усилия и генерировать на 250 компах (найти столько людей с компами), то уже - в 1000 раз меньше. Т.е. не 2000 лет.

    А всего за 2 года - можно сгенерировать АБСОЛЮТНО ВСЕ 7-фигурные базы.

    А интересного там сколько будет...

    Цитата ОТСЮДА.
  6. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Вся тема смахивает на утку. Вот сел чел. за комп. Пару -тройку пивка и создал генератор 7-фигурной базы.
    И ссылку на якобы генератор. Там никаких сведений о требованиях к железу. 6 фигур несколько лет генерили, причем на современном оборудовании. А про 200Тб на все семифигурники по мнению автора - это вот как раз не проблема. По мнению Саши из Виннипега и для 6-фигурников нужно в первую очередь много быстрой оперативной памяти. Вот с жесткими дисками ща особых проблем нет, тем более их можно распределить. А пока у компов продвинутых 4 гига RAM . А тут детский сад такой ))))
    Рад буду если ошибаюсь.
  7. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    >> Пару -тройку пивка и создал генератор 7-фигурной базы. >>

    Вот тут Вы сильно ошибаетесь. Я делал генератор больше года, потом несколько месяцев ушло на тестирование. А потом программу - графический анализатор самой игры, правда, сделал намного быстрее.
  8. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    >> Там никаких сведений о требованиях к железу >>

    Тут тоже ошибаетесь. Запустите генератор, выберите тип эндшпиля, который хотите сгенерировать, и увидите требования к железу.

    А общие требования к железу писать смысла нет, т.к. они зависят от типа генерируемого эндшпиля. На анализатор (RetroChess.exe) писать требования к железу смысла нет, т.к. он всегда ест около 30 МБ оперативной памяти.
  9. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    >> А про 200Тб на все семифигурники по мнению автора - это вот как раз не проблема. >>

    А я не спорю что там будет 200 терабайт на все 7-фигурники, и такие винчестеры доступны будет может, только через 5 лет. Я думаю, что может, у кого есть доступ к мощному серверу, и смогут начать создавать 7-фигурные прямо сейчас. Ведь на их создание уйдут долгие годы. Я всего лишь сделал высокооптимизированный генератор и анализатор к нему. А 6-фигурные я генерирую у себя дома прямо сейчас, все же выгоднее чем качать по интернету 1 терабайт. За 1 гиг траффика - 20 долларов, и выкачивать 1 терабайт за 20 тысяч долларов смысла нет.
  10. ProstoTak Старожил

    • Ветеран
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    5.479
    Симпатии:
    123
    Репутация:
    1
    Оффлайн
    Ну не знаю, не знаю.. Пока желания не возникает заняться генерацией. Тем более что железо совсем никудышное у меня :)
  11. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Вот уже конкретные цифры. 6 фигур ( без пешек!) требуют 800 мб. Спасибо.А ведь с пешками намного более проблем. Скока памяти нада? А для 7 фигур? С 6 фиг. ни у кого проблем нет. Никаких 200 тб для генератора не нужно. Ведь генерирование по частям происходит. По сочетаниям фигур. Тем более там большинство позиций типа 3 ферзя против коня и слона и не нужны никому. Практически интересные позиции все с пешками, ну в общем фантастические позиции можно не генерировать.
    Вот покажите сколько нужно памяти и примерно времени на актуальные эндшпиля типа ладейников с пешками и ферзевых. Пару десятков примеров. Для 7 фигур!
  12. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    >> покажите сколько нужно памяти и примерно времени на актуальные эндшпиля типа ладейников с пешками и ферзевых. Пару десятков примеров. Для 7 фигур

    200 ТБ - имеется в виду все 7-фигурные - будут иметь размер, когда будут построены. То, что по частям генерация, это понятно.
  13. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    По сути, программа будущего, если считать только персональные компы. А на мощных серверах 5-фигурные были сгенерированы уже в 90-е годы.
  14. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Времени нужно много на 7-фигурные. Я не знаю, какая производительность у нынешних мощных многопроцессорных компов.
  15. drowsy Учаcтник

    • Участник
    Рег.:
    08.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    Надо бы сайт получше и исходники открыть :)
    А так кота в мешке запускать...

    На форум talkchess ходили?
  16. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Да... вот до чего доводит отсутствие безлимитного инета в дальней провинции.Глядишь не будет у местных кулибиных возможность скачать Рыбку3 - так так напишут генератор шахматных программ.
    Беспешечники 7 фигур редко встречаются. Не особо интересны.
    А насчет свопа - дык не в 2 раза, а в 1000 раз замедлится скорость при недостатке быстрой памяти.Ненамного, но противно)))
    И ваще, по моему мнению, неплохо бы услышать мнение NS и прочих специалистов о перспективах 7-ми фигурников.
  17. dan77790 Учаcтник

    • Участник
    Рег.:
    06.03.2008
    Сообщения:
    3.792
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    когда же интересно 32-фигурники сгенерируют?) и скока надо оперативки на них?))) в порядке юмора
  18. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    На talkchess пока не ходил, времени не было. Надо будет зайти. Проект у меня, 50 тысяч строк кода, сложнейшие ухищрения для оптимизации по скорости генерации и уменьшения использования оперативной памяти, писал больше года. И чаще всего разобраться в чужом коде труднее чем написать с нуля свое. Доказательство правильности алгоритмов - просто запустить генератор и сгенерировать несколько десятков разнотипных окончаний, с пешками и без, и до 7 фигур. Я так и сделал. Хотя 7-фигурные полностью не удается сгенерировать, пока у меня нет мощного компа, тестировал независимые модули по частям. А 6-фигурные - и после полной генерации оказываются правильными. Все точно - значит и остальные типы будут правильными, ведь принципы те же. Алгоритмы нечувствительны к перемене фигур на доске. Я и писал независимый модуль для тестирования, и сравнивал все количества позиций с количеством в базах Налимова (это до 6 фигур включительно), все совпадает.
  19. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    В любом случае, чем раньше начнется создание таких, 7-фигурных, тем раньше и закончится. А когда закончится, лет через 10, будут и винчестеры по 200 терабайт, и мы поюзаем 7-фигурные на своем веку раньше... :)
  20. drowsy Учаcтник

    • Участник
    Рег.:
    08.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    Да ладно, вы думаете, что нет авторы предыдущих эндшпильных баз или там авторы Рыбки, Шрёддера, Крафти, не разберутся в вашей программе? Осипов поди её может прям в дизассемблере читать, как и мой препод по программированию из универа.

    Открывайте исходники :) Лучше оптимизация -> быстрее базы генерятся.
    К тому же, у вас ещё есть года два для работы для программой — до тех пор результаты хранить просто физически негде :)
  21. дуп Учаcтник

    • Участник
    Рег.:
    11.09.2007
    Сообщения:
    113
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Великий Новгород
    Оффлайн
    Ага, ему больше нечем заняться. Зачем вам исходники то? Человек написал программу, кто хочет - юзает, кто не хочет - нет, а открывать ему чего или нет - его личное дело.
  22. drowsy Учаcтник

    • Участник
    Рег.:
    08.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    Личное, но обсуждаемое.
  23. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.120
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я думаю, что когда дело дойдёт до генерации 7-8 фигурных баз, народ будет покупать storage где-нибудь у Гугла на облаке, и там же на серверах приложений запускать генератор... Всяко дешевле выйдет, с учётом обслуживания, бэкапа и т.д.
  24. drowsy Учаcтник

    • Участник
    Рег.:
    08.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    да, видимо вы правы.
  25. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    А такой вариант: анализировать отдельно взятую позицию?
  26. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Исходники в будущем можно и открыть, кому они действительно были бы полезны. Но не в публичный же доступ каждому, кому доступен интернет. Это же не алгоритмик какой-нибудь на 1000 строк кода, который за несколько дней пишется. А проект, который пишется год.
  27. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    анализировать отдельно взятую позицию - чаще всего по процессорному времени будет ненамного меньше (всего на пару порядков) чем весь данный тип эндшпиля, ВСЕ позиции, с определенными фигурами. Ну, конечно если в этой позиции не мат в 3 хода... :) Это если вы хотите получить действительно полный исчерпывающий анализ, и доказать, за сколько ходов позиция выиграна и какие ходы к каким оценкам ведут. Поэтому смысла просто нет - лучше изучить сразу все позиции в данном эндшпиле, и потом для любой позиции из многих миллиардов сможете получить лучшую игру.
  28. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    анализ конкретной позиции выполняется freezer от shredder. по сути, он достраивает базу эндшпильную :)
  29. Тяжеловес Сергей

    • Участник
    Рег.:
    07.03.2008
    Сообщения:
    76
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Питер
    Оффлайн
    freezer нужны 6-фигурники или 5 достаточно?
  30. vitamix Модератор

    • Команда форума
    Рег.:
    13.12.2007
    Сообщения:
    644
    Симпатии:
    22
    Репутация:
    0
    Адрес:
    Москва
    Оффлайн
    freezer по идее вообще ничего не нужно :) Главное грамотно выставить ограничения на позицию, и вперед - генерировать базу.
  31. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    Более интересная только шахматным фанатам, а погода интересна (и нужна, в отличие от шахмат) всем :)
  32. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.546
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Хорошо, рассмотрим некоторое семифигурное окончание, например



    Взятие переводит нас в шестифигурное окончание, оценка которого известна. Итого для пешек возможно всего пять вариантов расположения. Как только пешка станет ферзем, то и до мата недалеко. При имеющейся шестифигурной базе объем вычислений для такой позиции будет даже меньше чем анализ пятифигурного окончания.
  33. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Отличная новость, Skipper_NORTON. Поздравляю с достижением - релизом генератора!

    У меня несколько вопросов:
    1. Какая метрика использовалась? DTM (Distance To Mate - Расстояние до мата)?
    2. Учитывается ли взятие на проходе?
    3. Учитывается ли рокировка?
    4. Возможно ли получить таблицы для метрик DTZ и DTZ50?
    5. Есть ли пример использования таблиц в виде исходника на С?
    6. Есть ли поддержка произвольных размеров доски? :)

    Спасибо!
  34. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    а если сжать утилитой из tbgen ? datacomp.exe называется, она создает emd файл из сгенерированого файла налимова. работает в командной строке.
  35. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Kirr

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

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

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

    таблицы для метрик DTZ и DTZ50 получить тоже могу, но это не так быстро... Там много чего в движке менять придется. Но все же лучше, чем писать это с нуля :) В любом случае, это будет альтернативный вариант баз, который будет не совсем точно отражать лучшие ходы. Самый правильный вариант, как писал выше - считать до мата. А правило 50 ходов - должно вообще по моему мнению распространяться только на людей, т.к. если человек не смог выиграть за много ходов, то он и в будущем не выиграет, только зря будет мучить соперника. Не думаю, что найдутся люди, которые выиграют позицию за 100-200 ходов при наилучшем сопротивлении. А если программа может выиграть, то зачем ограничивать ее? Именно поэтому раньше вводили много исключений из правила 50 ходов для типов эндшпилей, где человек все-таки, якобы смог бы выиграть.

    пример использования таблиц в виде исходника на С есть, но в интернете исходники в публичный доступ не выкладывал. Там я вместе с проектом выложил dll, для доступа к моим таблицам. Вводишь позицию в формате FEN, вызываешь функцию из dll, и получаешь оценку позиции. Могу расширить возможности dll, и привести пример кода на C++, как использовать.

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

Поделиться этой страницей

Статус темы:
Закрыта.