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

Тема в разделе "Машинное отделение", создана пользователем Skipper_NORTON, 17 май 2011.

  1. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Базы можно использовать в любых программах, программисты которых способны подключить готовый dll, для доступа к базам. (я его тоже выкладывал в интернете) Кстати, такие программисты есть в мире, как оказалось... Мне уже писали неоднократно, задавали вопросы. и я консультировал. Короче, ничего сложного там нет, можно и самому во всем разобраться, если разбираться в программировании и в шахматах.

    PS Кому надо - я могу выслать и код доступа к базам. Хотя это и необязательно, dll подключить - самое простое.
  2. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Это наверное, если базы использовать на HDD?
    Если использовать на SSD, со скоростью поиска 1/1000000, т.е. одна миллионая секунды, то их можно использовать и на всех глубинах поиска, а значит, и усиление игры в эндшпилях с 8-10 фигурами будет значительное.

    PS Мечтаю, чтобы скорость поиска у SSD была такая же как у оперативной памяти. :)
    Когда нибудь такое будет.
  3. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    А на HHD только и пользуют. Убивая винчестер. Тут не в скорости дело, а что в практической партии не так часто возникают эндшпиля, где без эндшпильной базы не обойтись. Чаще всего движок и сам разбирается вполне. Я по SSD имел ввиду по построению баз, про генерацию. Раз винчестер узкое звено, то как буфер SSD использовать. Ну и другие вопросы задал.
  4. spaceman Новичок

    • Новичок
    Рег.:
    09.01.2007
    Сообщения:
    25
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Но места занимать будет гораздо меньше, правильно? Такие базы уже есть: Shredderbases/Bitbases/RobboTripleBases. 3-4-5 фигуры занимают вместе 160МB, что, кстати, позволяет их загружать в оперативную память для игры. Из-за большого объёма 6- и 7-фигурных окончаний это был бы наверное лучший вариант.
    Если учесть, что базы такого типа занимают 1/50 объёма полноценных баз (с указанием количества ходов до мата), то выходит такой размер:
    3-4-5 160MB
    6 23GB
    7 4TB
    HDD на 4TB есть уже сейчас.
  5. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Ну да, получается если использовать сжатые битбазы, то все 6-фигурные могут влезть даже в оперативную память. 23GB нужно. А уже сейчас можно в обычный ПК поставить 16-24 GB оперативной памяти. А на один винчестер 4 ТБ влезут все 7-фигурные, тут правда, скорость доступа будет медленнее, т.к. обращается к винчестеру, но лезть на винчестер можно только на верхних уровнях в процессе перебора, скажем, до глубины 8, чтобы программа не тормозила. Усиление игры будет существенное. Но по битбазам программа не всегда способна будет выиграть. Она будет только знать ходы, которые ведут к выигрышу, и в тяжелых эндшпилях, скажем, где до мата 100 ходов, программа по битбазам (безранговым) не выиграет, т.к. будет вечно приближаться-удаляться к выигрышу, не будет знать каждый раз ЛУЧШИЙ ход. Если построить мои базы, то по ним элементарно построить и битбазы, т.е. безранговые. Это будет линейная переконвертация с одним проходом, и выполнится она в тысячи (!) раз быстрее, по сравнению со временем построения всех баз. Самая трудоемкая задача - построить обычные базы с 7 фигурами
  6. spaceman Новичок

    • Новичок
    Рег.:
    09.01.2007
    Сообщения:
    25
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Обмениваться такими базами тяжело из-за размера. Лучше собрать все базы в одном месте и предоставить доступ в интернете для запросов конкретной позиции как здесь для 6-фигурных:
    http://www.shredderchess.com/online-chess/online-databases/endgame-database.html
    Доступ к этой базе есть и из программ Шреддера, хотя не в процессе поиска, конечно.
  7. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Усиление на 10-15 пунктов Эло. Это очень существенно?
  8. spaceman Новичок

    • Новичок
    Рег.:
    09.01.2007
    Сообщения:
    25
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Я думаю, усиление игры растёт довольно быстро при растущем количестве фигур в базах. 7-фигурные окончания дадут больший прирост, чем 6-фигурные. А 8-фигурные ещё гораздо больше. Но и размер, к сожалению, растёт ещё быстрее.
  9. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Зачем думать, когда давно уже все проверено разработчиками и тестерами на разных прогах. Хорошо, будет 17 пунктов усиления.
  10. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Конечно же, имеется в виду, усиление игры в эндшпилях с ~ <=10 фигурами, когда программа начинает усиленно использовать базы в глубине перебора.
    Пункты ваши же, я так понял, считаются по общей базе партий? Тогда если 99% партий не доигрывать до эндшпиля, то конечно, усиление игры будет никакое. :)
    Я люблю разыгрывать эндшпили, и потому хочу добиться максимально сильной игры в эндшпилях.
  11. TopicStarter Overlay

    Skipper_NORTON Старожил

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

    • Новичок
    Рег.:
    09.01.2007
    Сообщения:
    25
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
  13. Alex_Lk Новичок

    • Новичок
    Рег.:
    17.06.2011
    Сообщения:
    18
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
  14. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Да считаю потихоньку. :) У меня нет таких компьютерных мощностей, чтобы быстро посчитать. Было бы штук 10 мощных компов - может, тоже уже посчитал бы RPP-RP.
  15. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Похоже, у них формат баз такой же как у Налимова и у меня - DTM.
  16. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Число N-фигурных эндшпилей считается проще - это алкановое число l(12,N-2). Я в процессе создания странички о подсчёте позиций и эндшпилей, там можно посмотреть формулу: Number of endgames. Также смотрите энциклопедию целочисленных последовательностей: OEIS A018213.

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

    (Сорри за оффтоп).
    Alex_Lk нравится это.
  17. Alex_Lk Новичок

    • Новичок
    Рег.:
    17.06.2011
    Сообщения:
    18
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    начало 80х — 4х фигурные ......(???)
    начало 90х --5и фигурные .....Томпсон
    ...........2005 — 6и фигурные.... Налимов
    ...........2013 — 7и фигурные... "Ломоносов"

    В МГУ посчитаны все 7и фигурнмки (кроме 6:1)
    4x3 - 525
    5x2 - 350

    пора подвести
    ————————————————————————-
    И начать новую тему создание 8и фигурных окончаний

    всего 2520 таблиц
    4:x4 - 630
    5x3 - 1050
    6x2 - 630
    7x1 - 210
    судя по всему займут таблицы где-то 5-15 Пентабайт
    (5000 - 15000 Терабайт) и будут созданы до 2020 года,
    но первые результаты гораздо раньше.


    Цели определены, задачи поставлены - за работу товарищи ...
    :clap:
  18. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Товарищ, сначала надо доделать свою работу: ссылочка на "Ломоносова" где?
  19. Alex_Lk Новичок

    • Новичок
    Рег.:
    17.06.2011
    Сообщения:
    18
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    http://chessok.com/?page_id=27966

    Вот ссылочка на статью о таблицах "Ломооносов". Прямого доступа нет только из программ.
    Еще весной прошлого года они посчитали "по ладье+пешки" а теперь видимо закончили все.
    Таблицы названы таблицами Ломоносова и рассчитывались на суперкомпьютерах «Ломоносов» и IBM Blue Gene/P, установленных в Московском государственном университете
    И как только они получили в свое распоряжение такого монстра ( Lomonosov - T-Platforms Xeon X5570/X5670/E5630 2.93/2.53 GHz, Nvidia 2070 GPU, 78660 Cores, 901.9 TFlop/s )
    76 место в мире по вычислительной мощности (TOP 500 ноябрь 2012).
  20. Leon19 Зарегистрирован

    Рег.:
    14.08.2013
    Сообщения:
    1
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Уважаемый Сергей, не знаю просматриваете ли вы ещё этот форум, но прежде всего позвольте вас поблагодарить за ту огромную проделанную работу по созданию генератора для шахматных окончаний. Конечно, посчитаны Ломоносовские базы, честь им и хвала, но будет ли свободный доступ к этим базам это ещё большой вопрос. Пока что – что они есть, что их нет – как то одинаково. А пользуясь вашей программой, каждый желающий (например, я) может посчитать те окончания что ему по какой то причине нужны или интересны. И не только посчитать, но и просмотреть, проанализировать и тому подобное. Ещё раз вам спасибо за это.

    Но у меня есть два вопроса. Первый, наверняка вы посчитали у себя какие то окончания, пусть не все успели на данный момент, но что то же посчитали. Не могли бы вы выложить где нибудь файл с контрольными суммами, например в формате MD5, SHA1 или что то в таком духе? Чтобы можно было сравнивать посчитанные базы с вашими результатами, я просто опасаюсь что где то мог произойти сбой в памяти, процессоре или ещё где и база вышла с ошибкой. И потом эта ошибка потянется дальше во все более старшие базы. А так сверил: всё в порядке или нет, надо её пересчитать, всё таки какая то проверка.

    И второй, сложно ли обобщить ваш код для 8 фигурных окончаний? Я понимаю, что это пока не актуально, но всё же. Если это сложно, то чёрт с ним, но если для этого достаточно изменить буквально пару строк в вашей программе, то почему бы нет? Скажем так, для далёкого (или не очень) будущего. Кто знает, где вы будете через 5-20 лет, чем будете заниматься и будет ли вам это всё ещё интересно. а так программа есть, мощность компьютеров и объёмы памяти растут, глядишь кто то воспользуется вашей программой. К тому же, не обязательно считать все окончания, может кого то интересует вполне конкретный эндшпиль, тогда человек посчитает все необходимые минорные базы и перейдёт к нужной ему. Если такая переделка требует большой работы, то конечно не стоит пока за неё браться, но вдруг там не сложно обобщить, ведь кроме вас никто вашего кода лучше не знает? J

    С уважением.

    P.S. И ещё раз спасибо за уже проделанную работу и доступ к программам.
  21. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    Братья и сестры
    Гляньте по Ломоносову

    и напишите здесь
    А то один типок не верит :crest:
  22. Camon14 Хранитель традиций

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    28.05.2012
    Сообщения:
    18.567
    Симпатии:
    10.939
    Репутация:
    687
    Нарушения:
    31
    Оффлайн
    [​IMG]
    Комсюк нравится это.
  23. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
  24. Camon14 Хранитель традиций

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    28.05.2012
    Сообщения:
    18.567
    Симпатии:
    10.939
    Репутация:
    687
    Нарушения:
    31
    Оффлайн
    [​IMG]
    О́льга Оле́говна Ломоно́сова (род. 18 мая 1978, Донецк, Украинская ССР, СССР) — российская и украинская актриса.
    [​IMG]
    Комсюк нравится это.
  25. EvgeniyZh Учаcтник

    • Участник
    Рег.:
    07.02.2014
    Сообщения:
    487
    Симпатии:
    112
    Репутация:
    15
    Адрес:
    Ришон ле Цион, Израиль
    Оффлайн
    :idntknow:
  26. vasa Опытный перворазрядник

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    35.297
    Симпатии:
    17.577
    Репутация:
    583
    Адрес:
    Ростов-на-Дону
    Оффлайн
    Да вроде бы уже посчитали семифигурки, но пока в открытом доступе нет их.
    Надо аквариум покупать...
  27. SkipperNorton Новичок

    • Новичок
    Рег.:
    04.05.2016
    Сообщения:
    42
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Давно не бывал на форуме, пришлось перерегистрироваться (пароль не помню старый), мой нынешний ник SkipperNorton - предыдущий был Skipper_NORTON. Мой 6-7-фигурный эндшпильный генератор 4-й версии оказался довольно долгоживущим, с тех пор как я завершил его 29 марта 2011, более никаких оптимизаций не проводил.
    1-я, 2-я, 3-я версии, которые были ранее, можно было сильно оптимизировать, а вот после 4-й - если и можно что, то только совсем незначительно, потому и не вижу смысла. Цель была такая - написать такой генератор для 7 фигурных включительно баз, чтобы он использовал оперативной памяти и места на диске по минимуму, и вместе с тем, работал как можно быстрее.

    Вообще говоря, не сложно, но это не работа одного дня. Пока, на данный момент - не актуально. В будущем сделаю.

    Чтобы построить все 7-фигурные базы, нужно примерно (по моим расчетам) 15 лет работы самого мощного процессора ПК, Intel Broadwell-E архитектуры, 10-ядерного 6950X. (и иметь достаточное количество памяти+места на дисках) Ну или распараллелить на 15 таких компьютеров - тогда за 1 год получится.

    Т.е. суперкомпьютер для этого не нужен - достаточно просто набрать десяток-другой пользователей хороших обычных персональных компьютеров и распределить вычисления между ними. Если будут построенные базы - к ним можно обращаться и из других программ, т.е. программно, для этого я выкладывал dll-файл, который можно подключить к проекту. В принципе, если совсем нужно будет, то могу и код для доступа дать, чтобы можно было переписать на другой язык программирования.
    Может кто нибудь создавал какую нибудь часть 7-фигурных баз с помощью моего генератора? Сам я не создавал - у меня только все 6-фигурные, и несколько 7-фигурных делал, больше не считаю, т.к. комп устаревший, маломощный. С выходом Cannonlake-E процессоров, года через три, может, обновлю свой компьютер, и тогда посчитаю 7-фигурные сам.

    Контрольные суммы - это мои же файлы ститистики, с расширением .txt рядом с самой базой .tby, которые генерит программа. Например база 7_KRPP-KRP.tby - будет база, и 7_KRPP-KRP.txt - будет файл с контрольными суммами.
    Да я бы выложил, но 6-фигурные я уже выкладывал, и кому надо - думаю уже посчитали, а 7-фигурные по вышеописанным причинам я почти ничего не считал. Ошибки железа же (сбои на винчестере, в памяти, из-за перепадов напряжения и прочего), обычно сопровождаются событиями в операционной системе, если их там нет - то вероятность ошибки стремится к нулю, т.е. база скорее всего точно посчиталась.
    Чтобы быть совсем уж уверенным что база правильная - посчитать ее два раза. Если данные в файлах статистики с расширением .txt сойдутся, то ошибки железа быть не могло - вероятность совпадения равна по сути, нулю. Предположим база генерируется целый месяц. Какова вероятность сбоя в железе, с точностью до одной миллиардной доли секунды? Все другие сбои дадут несовпадение в этом файле статистики .txt
    —- добавлено: 4 май 2016, опубликовано: 4 май 2016 —-
    А также, эти контрольные суммы в точности совпадают с суммами в базах Налимова, поэтому после генерации 6-фигурных, достаточно сверить файлы с файлами баз Налимова, которые есть в свободном доступе.

    На самом деле, на данный момент есть винчестеры на 8 ТБ, если посчитать все 7-фигурные базы типа 4-3 (4 фигуры против 3-х достаточно. 5 против 2-х уже малоинтересны), они будут занимать >100 ТБ на дисках, ну вот 12 таких винчестеров в один комп - и хватит :) 40-терабайтные пока не появились, прогнозы были не мои, а футурологов занимающихся разработками дисков. и 40-терабайтные все таки будут. Но позже. :)
    —- добавлено: 4 май 2016 —-
    Просьба к админам - разблокируйте мою старую учетную запись, "Skipper_NORTON", и пришлите пароль на e-mail, который я тогда указывал при регистрации, на свой почтовый могу зайти только я. Как то не хочется этой новой учетной записью пользоваться.
  28. просроченый_кмс Старожил

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    1.112
    Симпатии:
    167
    Репутация:
    6
    Оффлайн
    Интересно какие тайны откроются, опять будут откровения в каких то эндшпилях насчёт их выигрыша ничейности, а так же рекордных матов по времени)
  29. Scaramuccia Старожил

    • Участник
    • Старожил
    Рег.:
    13.01.2012
    Сообщения:
    3.173
    Симпатии:
    2.085
    Репутация:
    61
    Оффлайн
    200TB это ни о чем. В смысле, много для простого пользователя, но для организации - фигня. Я работал с системами созданными для хранения петабайтов информации. Так что покупайте подписку на Аквариум.
  30. SkipperNorton Новичок

    • Новичок
    Рег.:
    04.05.2016
    Сообщения:
    42
    Симпатии:
    8
    Репутация:
    0
    Оффлайн
    Подозреваю что рекордная до мата позиция в 8-фигурных, будет около 1000 ходов.
    +1 фигура в среднем удваивает рекордное расстояние до мата.
    4-фигурные - 43,
    5-фигурные - 128,
    6-фигурные - 262,
    7-фигурные - 549.
  31. EvgeniyZh Учаcтник

    • Участник
    Рег.:
    07.02.2014
    Сообщения:
    487
    Симпатии:
    112
    Репутация:
    15
    Адрес:
    Ришон ле Цион, Израиль
    Оффлайн
    Ну так и вычислительные мощности, необходимые чтобы посчитать 7фигурки - для организации фигня.
  32. Alex_Lk Новичок

    • Новичок
    Рег.:
    17.06.2011
    Сообщения:
    18
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    SkipperNorton, очень рад что вы появились здесь снова ! Я в конце марта начал для "пробы" генерить таблицы, что-бы посмотреть что получается на практике. И оценить сколько чего нужно что-бы сгенерить 7фигурки вашим генератором. Пока сгенерил 2 таблицы.
    KQQQQQK - 4 дня
    KQQQQKQ - 8 дней
    KQQQKQQ - генерится уже 3 недели

    Как вы уже писали узким местом являются "винты", обычная картина ядра загружены на 3% а с винтом идет обмен по полной (100 Мбайт/сек).

    И еше для 5-6 фигурок скорость генерации 50-100 тыс поз/сек
    А для полученных 7 фигурок 11 и 18 тыс.поз/сек
  33. Eugene_K Учаcтник

    • Участник
    Рег.:
    14.12.2014
    Сообщения:
    829
    Симпатии:
    137
    Репутация:
    3
    Оффлайн
    нафига эта таблица?
  34. Alex_Lk Новичок

    • Новичок
    Рег.:
    17.06.2011
    Сообщения:
    18
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Это одна из самых маленьких 7фигурок при этом не ничейная. Я сначала думал она вообще за полдня построится.
  35. Eugene_K Учаcтник

    • Участник
    Рег.:
    14.12.2014
    Сообщения:
    829
    Симпатии:
    137
    Репутация:
    3
    Оффлайн
    я про то зачем она нужна в принципе?

    вообще зачем нужны таблицы?
    что бы на горизонте увидеть ничью (в основном)

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

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