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

Тема в разделе "Машинное отделение", создана пользователем Skipper_NORTON, 30 окт 2010.

  1. Uralchess Учаcтник

    • Участник
    Рег.:
    04.11.2009
    Сообщения:
    398
    Симпатии:
    5
    Репутация:
    0
    Оффлайн
    Это вообще не проблема. Есть крупные сайты типа ChessOK, ChessBase, Shredder, которые с большим удовольствием это захостят.
  2. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    С какой стати я должен выкладывать исходник генератора? Это моя интеллектуальная собственность, а вам все просто возьми - и просто отдай. Там десятки идей, оптимизаций, ухищрений, два года работы. Вы хотите, чтобы любой мог взять мой исходник, расковырять все идеи из него и написать свое, основанное на всем этом? А если вы не хотите ЭТО ДЕЛАТЬ, тогда зачем вам исходник? Есть генератор, можно создавать базы, можно обращаться к ним из шахматных программ, что еще нужно?

    Кроссплатформенный исходник обращения к базам могу сделать и выложить, чтобы под любой операционной системой можно было с ними работать. Но не ВСЕГО же генератора. А исходники крупных серьезных проектов вам никто просто так не отдаст. Я вот например, хочу чтобы мне кто-нибудь отдал исходник Рыбки. Или Фрица последнего :)
  3. TopicStarter Overlay

    Skipper_NORTON Старожил

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

    Впрочем, я выложил dll, если прикрутите ее к вашей программе, то можете сами оценить все.
  4. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Интересно, у Налимова, вы видимо считаете, проект был несерьёзный? Исходник доступен. Много вы видели проектов, основанных на нём? Да, какие-то идеи из Налимова может кто-то где-то и использует, со ссылкой на первоисточник. Но конкурирующего формата, основанного на идеях из Налимова, не было, нет и не будет. Тем более если конкурент будет закрытым.

    Исходник нужен:

    1. Чтобы человек мог его собрать на своём железе, под свою операционку, пользуясь удобным ему компилятором и набором библиотек. У многих из тех, кто потенциально мог бы помочь, есть доступ к железу под линуксом или бсдями.

    2. Чтобы убедиться что в нём нет жучков. Многие просто не будут качать и запускать бинарник.

    3. Чтобы показать серьёзность своих намерений.

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

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

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

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

    К сожалению, не все это понимают. Буржуцкий и Коновал уже десять лет назад могли выпустить свой генератор в открытый доступ, и сейчас мы бы уже не помнили кто такой Налимов. Но они предпочли держать его закрытым, зачем - только им известно. Вы, видимо, планируете пойти по тому же пути.
  5. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Добавлю, а то что-то вы напряглись. Во-первых, жаль что вы предпочитаете домысливать негатив о собеседнике. Во-вторых. Я лично был бы рад если бы кто-то наконец сделал нормальный формат и генератор шахматных таблиц окончаний, включая семифигурные (критерии я вкратце перечислил выше), так как тема сама по себе уже очень интересная. Если в течение какого-то времени такого формата создано не будет (ваш, пока что, к сожалению, не в счёт), то я, может быть, поработаю в этом направлении, если жизнь позволит (маловероятно, так как у меня куча других проектов в разных стадиях, но всё может быть). У меня тоже есть наработки, и чужой исходник мне здесь не к чему. Ковыряться в чужом исходнике, тем более в сложном, как генератор таблиц - это адский труд, без которого, к счастью обхожусь. Гораздо интереснее и плодотворнее работать над своими идеями. Особенно когда речь идёт о хобби.

    Я предпочёл бы, чтобы кто-то (например, вы) сделал человеческий открытый формат и генератор. Тогда я бы смог спокойно сосредоточить усилия на нерешённых задачах (которых полно), вместо создания толчеи вокруг семифигурки.
  6. TopicStarter Overlay

    Skipper_NORTON Старожил

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

    Каких жучков? Отдай исходник, потому что у меня паранойя? А вот в софте который у вас на компе установлен на компьютере, нету жучков? Или тоже исходники для этого нужны?

    Никто не выкладывает исходники, только для того, чтобы показать серьезность намерений.

    Насчет дефектов. Можете не бояться, дефектов там нет. После года тестирования, я могу быть уверенным в этом.
  7. TopicStarter Overlay

    Skipper_NORTON Старожил

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

    Может и DTZ сделал бы, но сейчас свободного времени немного...

    Никакого негатива я не домысливаю. Только позитив :)
  8. Uralchess Учаcтник

    • Участник
    Рег.:
    04.11.2009
    Сообщения:
    398
    Симпатии:
    5
    Репутация:
    0
    Оффлайн
    Skipper_NORTON, зайдите в ЭТУ тему. Там вам предлагают кластер для генерации нескольких семифигурок.
  9. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Эти сказки я слышал ещё во времена распостранения Налимовских шестифигурок. Звучало обычно так: "А в чём проблема? Гугл захостит - у них серверов много!" Причём, говорили обычно люди, имеющие такое же отношение к Гуглу, как вы к Chessbase. Дальше разговоров дело не заходило, и проект продолжался силами энтузиастов. Считаю, что надеяться не на кого, и что ключ к успешному распостранению таблиц - в хорошо организованном p2p решении.
  10. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Сказки? Очень интересный разоблачитель сказок. :)
    Типа, такого Вы не слыхали:

    http://www.k4it.de/index.php?topic=egtb&lang=en

    Thanks to Eugene Nalimov, Andrew Kadatch, Robert Hyatt, Kyrill Kryukov, Nelson Hernandez for generating, compressing, and publishing the databases and offering them for free
  11. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    А, ну это я уже что-то на распостранение таблиц переключился. Интерфейсы - да, есть. Также на сайтах Shredder и ChessOK. :)
  12. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    да уж... пока кто-нибудь на раздаче не появится (или фтп сервер) интересу мало. качать легче чем генерировать :)
    ну а потом и в движки нужна поддержка. из последних таблиц активно только GTB и RTB развиваются.
    но есть недостатки - у гавиоты пока только 5-ти фигурки. а у айвенго упор на битбазы сделан, тоталбазы используются только в корне позиции, но зато есть возможность генерировать 6-ти фигурки.
    налимов - стандарт, но на него нужно разрешение.
  13. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    CPU AMD Opteron X12 6174 2.2 ГГц (OS6174WKT) 6+12Мб/6400 МГц Socket G34 x 2 штуки
    ASUS KGPE-D16 (RTL) Dual Socket G34<SR5690>4PCI-E+SVGA+2xGbLAN+1394 SATA E-ATX 16DDR-III х 1 штука
    Original SAMSUNG DDR-III DIMM 8Gb <PC3-10600> ECC Registered+PLL x 4 штуки
    HDD 2 Tb SATA-II 300 Western Digital RE4-GP <WD2002FYPS> 64Mb х кол-во от баз зависит.

    остальное по вкусу...
    как быстро на таком генерация пойдет? :D
  14. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    4 штуки по 8 Gb? Т.е. всего 32 Gb памяти? Ну тогда все просто - можно поставить 4-5 винчестеров по 1 Tb, а лучше по 2 Tb, и запустить на одном сервере сразу 4-5 генераторов, на каждом винчестере по одному, и каждый - какую нибудь определенную базу пусть считает. Чтобы посчитать 7_KRPP-KRP, нужно сначала много младших беспешечных для него посчитать. Точнее - все беспешечные, с соотношением фигур 4-3, и где у обоих сторон будет по ладье (R должна присутствовать у обоих сторон). Когда будут все необходимые беспешечные, можно будет приступить к расчету пешечных 7-фигурных.

    Потребуются еще некоторые 6-фигурные, но они считаются в 50 раз быстрее чем 7-фигурные, поэтому если посчитать еще и их - ненамного дольше будет. вот пример. 7_KRNN-KRN - один из младших беспешечных, который нужен будет для 7_KRPP-KRP. Какие младшие 6-фигурные нужны для 7_KRNN-KRN ? Это все типы, которые получаются после взятия фигуры. Т.е. будущее для 7_KRNN-KRN -
    это 6_KRN-KNN (взята ладья), 6_KRN-KRN (взят конь), 6_KRNN-KN (взята ладья другой стороны), 6_KRNN-KR (взят конь).

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

    Построенные базы переносите на отдельный винчестер, чтобы винчестеры, на которых идет генерация, были свободны, записываете директории в "Bases\DirectoriesForEG.td" относительно генераторов (exe-файлов), и все - можно строить все подряд 7-фигурные, без пешек и с ладьей у обоих сторон. Они все понадобятся потом для пешечных, и в частности, для 7_KRPP-KRP.

    На одном сервере быстро вы посчитаете только 5-фигурные и нужные 6-фигурные. А 7-фигурные долго будут считаться. Вот приведенный выше 7_KRNN-KRN, я не знаю за какое время будет посчитан. Это может быть и 2 месяца. Зависит от того, сколько там итераций окажется. Может, там есть позиции, которые выигрываются за 600 ходов? Если бы было много таких серверов, тогда все было бы быстро - параллельно запустили все что нужно, и получили все беспешечные. Скажем, есть 20 серверов, по 5 винчестеров на каждом, и может сразу 100 генераторов параллельно работать. Значит, все будет посчитано в конечном итоге, в 100 раз быстрее, чем в случае, если запустить один генератор на одном винчестере, и последовательно все считать.
  15. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    осталось найти инвестора :D
  16. TopicStarter Overlay

    Skipper_NORTON Старожил

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

    Skipper_NORTON Старожил

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

    (Формат баз, понятное дело, не меняется, и построенные базы 3-й версией такие же как и будут построенные - 4-й версией.)

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    ну как новая версия? :) работает?
  19. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Да, все отлично работает. По скорости быстрее раза в полтора, и памяти ест меньше. Теперь ей для генерации любой 7-фигурной базы не потребуется более 8 ГБ оперативной памяти (максимум для предыдущей версии был 14 ГБ).

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

    Но займусь как-нибудь.
  20. dan77790 Учаcтник

    • Участник
    Рег.:
    06.03.2008
    Сообщения:
    3.792
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
  21. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    выкладывай, посмотрим :)
  22. Greedy Учаcтник

    • Участник
    Рег.:
    22.01.2010
    Сообщения:
    448
    Симпатии:
    12
    Репутация:
    0
    Оффлайн
    Немного не по теме, но с таблицами Налимова и ChessBase заметил вот такую фичу.

    Если в ChessBase (у меня 10-я версия) прописать в настройках путь к таблицам Налимова и поставить галочку "загружать при запуске программы", то все движки: Stockfish, Houdini, IvanHoe, Rybka, Fire - все начинают их использовать.

    Заметил сегодня, устанавливая шахматные программы на ноутбук.
    Может это уже давно известная фича и не только CB, но и других оболочек. Не знаю.
  23. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    это не движки используют, а оболочка сама ходит, вместо движка. (по таблицам).
    давно известный факт.

    кстати рыбка и так поддерживает налимова.
  24. TopicStarter Overlay

    Skipper_NORTON Старожил

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

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