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

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

  1. Uralchess
    Оффлайн

    Uralchess Учаcтник

    Репутация:
    0
    Это вообще не проблема. Есть крупные сайты типа ChessOK, ChessBase, Shredder, которые с большим удовольствием это захостят.
     
  2. Skipper_NORTON
    Оффлайн

    Skipper_NORTON Старожил

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

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

    Skipper_NORTON Старожил

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

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

    Kirr Команда форума Команда форума

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

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

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

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

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

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

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

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

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

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

    Kirr Команда форума Команда форума

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

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

    Skipper_NORTON Старожил

    Репутация:
    0
    Я и сам могу собрать, для линукса, если понадобится.

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

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

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

    Skipper_NORTON Старожил

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

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

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

    Uralchess Учаcтник

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

    Kirr Команда форума Команда форума

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

    MS Михаил Семионенков

    Репутация:
    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
    Оффлайн

    Kirr Команда форума Команда форума

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

    bankuss Александр баннер

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

    bankuss Александр баннер

    Репутация:
    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. Skipper_NORTON
    Оффлайн

    Skipper_NORTON Старожил

    Репутация:
    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
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    осталось найти инвестора :D
     
  16. Skipper_NORTON
    Оффлайн

    Skipper_NORTON Старожил

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

    Skipper_NORTON Старожил

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

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

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

    bankuss Александр баннер

    Репутация:
    6
    ну как новая версия? :) работает?
     
  19. Skipper_NORTON
    Оффлайн

    Skipper_NORTON Старожил

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

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

    Но займусь как-нибудь.
     
  20. dan77790
    Оффлайн

    dan77790 Учаcтник

    Репутация:
    0
    Respect!
     
  21. bankuss
    Оффлайн

    bankuss Александр баннер

    Репутация:
    6
    выкладывай, посмотрим :)
     
  22. Greedy
    Оффлайн

    Greedy Учаcтник

    Репутация:
    0
    Немного не по теме, но с таблицами Налимова и ChessBase заметил вот такую фичу.

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

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

    bankuss Александр баннер

    Репутация:
    6
    это не движки используют, а оболочка сама ходит, вместо движка. (по таблицам).
    давно известный факт.

    кстати рыбка и так поддерживает налимова.
     
  24. Skipper_NORTON
    Оффлайн

    Skipper_NORTON Старожил

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