Работа с базами Налимова из Дельфи

Тема в разделе "Машинное отделение", создана пользователем NS, 9 июн 2006.

  1. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Как минимум четыре программы в СНГ написаны на Делфи.
    Я готов (после выхода тактической версии ГО) реализовать работу с ними, и выложить исходники.
     
  2. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    У меня они уже есть (с исходниками). Я сгенерил 4 и5 фигурные базы для использования в своем движке, но без сжатия размеры у них такие, что 4-мя ограничился пока. Можем объединить усилия и создать толковые собственные базы с нормальным доступом.
     
  3. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Описание форматов где-нибудь можно взять?
    На форумах говорили о хороших алгоритмах сжатия Эндшпельных баз.
    Надо поискать ссылки.
     
  4. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Форматы хранения данных (индексную схему) реализовать несложно. По поводу сжатия - да. Идеи нужны. Но тут для начала надо определиться что мы собственно храним? Есть ранговые базы (хранит расстояние до мата или перехода в младший эндшпиль). И безранговые (хранит только признак "выиграно-проиграно-ничья"). И там и там есть свои достоинства и недостатки. Сейчас у меня используются оба типа баз. Безранговые в переборе, ранговые в корне. Но места жрет много :)
     
  5. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
  6. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Они используют только битовые базы. Хорошо, конечно, но есть у меня мнение что нифига они не смогут выиграть выигранное окончание по этим базам :)
     
  7. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    К примеру 2 слона против коня. Там ВСЕ позиции выиграные! А пойди найди цепочку в 60 ходов к выигрышу....
     
  8. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Конечно нужно сжимать :)
    Ранговые нужны в любом случае, но можно хранить не все, а только с кратным рангом.
     
  9. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    У меня тоже есть такая идея: округлить ранговую базу (для лучшего сжатия). Если исхитрицца, тодля хранения такого рода баз хватит и половинки байта (в несжатом виде) от 0 до 15 должно хватать значений.
     
  10. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    То есть в переборе смотрим только признак позиции (безранговые), по факту перехода в данный эндшпиль - уже без перебора (или очень короткий перебор в случае если храним не все позиции) - смотрим по сильно сжатым ранговым базам...
     
  11. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    можно вообще обойтись одними сжатыми ранговыми - в память их просто при загрузке в безранговом виде заливать на лету
     
  12. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    А не будет ничьих по правилу 50-ти ходов? Если только безранговые...
     
  13. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Вообще есть метод - если в позиции есть пешки, то хранить безранговые, и дополнительная оценка по степени продвинутости пешки.
     
  14. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Я имел в виду ранговые :). Из них всегда можно безранговые сделать быстро
     
  15. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    В некоторых эндшпилях пешки движутся крайне редко - перебором можно не достать
     
  16. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Это KQPKQ - там сработает повторение позиции - всё равно на безранговых будет в 50 ходов укладываться (до движения пешки) Хотя надо провести тесты.
     
  17. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Ладно, до завтра - завтра рано вставать.
     
  18. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    С хранением кратных позиций (например с четным рангом) - возникают большие проблемы :)
    Ведь саму позицию хранить нереально (и Хеш тоже), и надо вычислять место в файле.
    И вопрос - если использовать не налимова, то в турнирах будут подключать библиотеки?
    Для каждого движка в турнире будут качать его, специфическую EGTB?
     
  19. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Ну да! Индексная схема такова, что хранить выборочные позиции крайне сложно. Зато можно , к примеру, округлить ранги до ближайшей 5, сжать их (там прилично будет, думаю, ведь расброс значений резко сократится) и использовать. В турнирах базы обчно используют (по крайней мере на WBEC Booot играет со своими базами). Чем больше движков будут использовать единый формат баз тем охотнее стало быть этот формат будет использоваться тестерами.
    Вчера увидел результаты первого тестирования новой версии и удивился: типа слабее старой. Но потом обнаружил, что в большей половине партий движок просто просрочил время. Глюк обнаружился в коде управления временем: к 30 ходу все время использовалось, а дальше движок героически ронял флаг :). Какую бы методику тестирования выбрать, чтоб такие глюки не пропускать?
     
  20. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    У меня движок в принципе не может просрочить время... Только с Ponderт + очень коротким контролем, и то только из-за того, что ponderhit/stop ловлю только один раз в секунду... :)
    У меня стоит аварийка на
    ОставшеесяВремяДоКонтроля*3/(количествоОставшихсяХодов+2)
    То есть больше этого программа на ход не тратит... (ну еще за вычетом для надёжности еще пары секунд)
     
  21. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Хотя может немного другая формула - я несколько раз её менял. Нужно в тексте посмотреть.
     
  22. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    У меня баг именно при контроле N минут на всю партию. Контроль достаточно редко используется, а вот все ж таки вылез баг :)
     
  23. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    Я в разных версиях меняю. Считаю, при контроле на всю партию - что осталось 60 ходов, иногда переделываю на 40.
    Сила от этого не меняется, меняется только рапределение времени в течении партии.
    Просрочки не появляются :)
    Тестирую обычно на минуте, иногда с меньшим контролем на всю партию.
    Добавлено. 60 ходов - независимо от номера текущего хода.
    Добавлено Ну и обязательно провожу тест с пондером.
     
  24. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Я обычно считаю, что осталось 40 ходов до конца партии, в любом случае (даже при контроле N минут на M ходов). Если в корне произошёл fail high или fail low с изменением первого хода, то имеет смысл добавить немного времени до завершения итерации с новым окном. Ну и, конечно, какой-то фиксированный лимит, за который не залезать ни в коем случае...
     
  25. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
    N на M, с добавкой я считаю реально оставшееся до контроля количество ходов.
    Аварийка устроена таким образом, что программа просрочить время не может, но на последний перед контролем ход может потратить всё время (есно без просрочки).
    Оставшееся количество Ходов - До контроля.
    Оставшееся время : ТекущиеПоказанияЧасов+(ОставшеесяКоличествоХодов-1)*ДобавкаВремениНаХоде. Это "оставшееся время" используется для вычисления минимального времени на обдумывание. На аварийку расчет немного другой.
    ЗЫ. Проверил - на контроле 10 секунд на партию, без Пондера - просрочек у версии 0.06a нет.
     
  26. bankuss
    Оффлайн

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

    Репутация:
    6
    я тут взялся сгенерить налимова 5 фигур - засада полная :) некоторые эндшпили в лет идут -40 минут и готово, а некоторые по 36 часов "думают" :) комп правда не супер - 3 Ггц. П4 прескот (на работе юзаю-на выходные включаю).
     
  27. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    "В лоб" действительно долго :). Тут надо индексную схему минимальную по возможности выбрать и как-то кешировать ранги, чтоб бестолку из ненужных позиций ходы не генерить.
     
  28. псевдоним
    Оффлайн

    псевдоним Зарегистрирован

    Репутация:
    0
    люди, скиньте базу налимова!!! плиз
     
  29. псевдоним
    Оффлайн

    псевдоним Зарегистрирован

    Репутация:
    0
    где можно скачать в инет? мне трафика не жалко. скажите где? пожалуйста, люди добрые
     
  30. псевдоним
    Оффлайн

    псевдоним Зарегистрирован

    Репутация:
    0
    аська 246632457
     
  31. NS
    Оффлайн

    NS Нефёдов Сергей баннер

    Репутация:
    3
  32. Kirr
    Оффлайн

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

    Репутация:
    8
    Там давно уже нет части шестифигурных. Шестифигурные проще всего скачать из p2p сети eD2K/KAD, с помощью программы eMule, по ссылкам c этой странички: http://kd.lab.nig.ac.jp/chess/tablebases-online/