Новости GreKo

Тема в разделе "Машинное отделение", создана пользователем WinPooh, 2 май 2006.

  1. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Хотел скомпилить Греку, да, видимо, не судьба.
    Очень много ошибок приведения типов. Мои компиляторы сами отказываются приводить типы.

    Код:
    for (piece = 0; piece < 14; piece++)
    Вместо нуля пришлось написать PIECE(0), но все равно:

    VC++:
    error C2676: binary '++' : 'PIECE' does not define this operator or a conversion to a type acceptable to the predefined operator

    Intel C++:
    error: enumerated type is not allowed


    Проходит только так:
    Код:
    for (piece = PIECE(0); piece < 14; piece = PIECE(piece + 1))
  2. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Программа написана на Standard С 99.
    Надо использовать опцию -std=c99, как и написано в Makefile. И компилятор gcc (под другими собирать не пробовал).

    Я использовал компилятор из пакета MinGW (как отдельно, так и из-под среды CodeBlocks).
  3. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Все типы перечисления переделал в int.
    Кое-где приведения сделал вручную.
    Объявления двух массивов вынес из заголовочного файла.

    Теперь все скомпилилось. Щас буду проверять насколько хорошо все получилось :)
  4. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    А что, явное указание компилятору версии использованного стандарта - не помогает?
    К чему эти взмахи, к чему этот плеск через борт?
  5. Kirr Администратор

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

    На этот счёт у нас было даже правило в CEGT, когда там участвовал Alessandro (автор Kiwi). (в 2005 году, когда я там тоже участвовал). Не потому мы ему не доверяли, но просто на всякий случай.
  6. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Да нет, тут всё верно. NS совершенно правильно заметил - на больших контролях 5.0 подглючивает, у меня это тоже подтверждается.
    Скоро выложу исправленную версию.
  7. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Просто не знаю через какую опцию можно указывать стандарт.

    Приделал Греке PVS. Сделаю турнирчик трех Грек + Анечка. Интересно, что получится.
  8. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ну и ладно, думаю, что замена enum на int ровным счётом ни на что не влияет.
    Что до PVS, в моих тестах от него существенной пользы не обнаружилось. Но и вреда тоже :)
  9. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    По минуте (60 ходов за 60 секунд) на небольшом тесте (пара сотен партий) Анечка показала перевес в 50 пунктов. На длинных контролях разница в силе немного возрастает (около 5-10 пунктов на каждом удвоении)
    Было несколько зависаний Греки с просрочкой времени (под UCI)
  10. atoku Модератор

    • Команда форума
    Рег.:
    05.02.2006
    Сообщения:
    2.949
    Симпатии:
    9
    Репутация:
    0
    Адрес:
    USA
    Оффлайн
    Вроде в VC++ есть боооольшие проблемы с C99. Они просто его не поддерживают.

    И вообще, не пользуйте компиляторы от M$!
  11. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Да, есть такой баг. Связан с некорректной обработкой некоторых команд в режиме размышления. Уже исправлен, ждите обновлённую версию.
  12. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Еще что было замечено. Король + Легкая фигура не может иметь положительной оценки, независимо от материала у соперника, и тем более Слон против пешки это не +3 пешки :)
  13. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Да, эндшпильная оценка там сейчас совсем примитивная, нет много чего даже из 2.817 - например, ладейной пешки со слоном неправильного цвета, ничейных тенденций в разноцвете, простых эвристик для KP-K... Дойдём и до этого, со временем...
  14. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Код:
    1. GreKo 5.0      15.0 / 27
    2. GreKo 5.0.0 IK 13.5 / 27
    3. GreKo 2.817    13.0 / 27
    4. Anechka 0.08   12.5 / 27
    Что-то, действительно PVS ничего хорошего не показывает. Хотя моя компиляция и работает примерно на 15% быстрее.

    Результаты perft 6 тоже неожиданные.
    Скорость оригинальной версии: 4674 kNps.
    Моя компиляция: 7751 kNps.

    При этом скорость реального перебора всего на 15% больше.
  15. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Ты, наверное, assert-ы отключил. Плюс интеловский компайлер всегда самым быстрым считался...
  16. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    А ты их, что не отключал? Они должны быть только в отладочной версии (и отключаться автоматом при компиляции релиза).

    У меня хоть и интеловский, но старый. Всего лишь 6.0.
  17. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
  18. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Код:
    1. GreKo 5.0.0 IK 52.5 / 97
    2. Anechka 0.08   51.5 / 97
    3. GreKo 2.817    45.5 / 97
    4. GreKo 5.0      44.5 / 97
    Трохи получше стало. На длинных контролях еще лучше должно быть.

    Если интересно, вот как я сделал:
    Код:
    if (legal_moves == 1)
    {
        e = -alpha_beta(pos, -beta, -alpha, new_depth, ply + 1, 0);
    }
    else 
    {
        e = -alpha_beta(pos, -(alpha + 1), -alpha, new_depth, ply + 1, 0);
        if (e > alpha && e < beta) e = -alpha_beta(pos, -beta, -alpha, new_depth, ply + 1, 0);
    }
    И в корне тоже нечто похожее.
  19. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    А точно PVS дает преимущество на длинных контролях?

    При идеальной Сортировке PVS не лучше Альфа-Беты.
    в Альфа-Бете, чем дальше от корня, тем меньше средний размер окна.
    Чем длиннее контроль, тем лучше отсортированы ходы в корне и т.д.

    По моим тестам PVS (тесты без отсечений) не дает заявленного преимущества (40-60%) над чистой Альфа-бетой с одним размером окна в корне [-inf,+inf]
  20. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    У меня в корне окно не бесконечное, оно размеров в плюс-минус пешку от предыдущей оценки.
    Кстати, Игорь, обрати внимание - там есть проверка на режим Multi-PV, если он включён, то я увеличиваю размер окна - чтобы у всех вариантов после первого были содержательные оценки, а не отсечения по альфа...
  21. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Это окно дает копейки...
    У меня окно -0.3 +0.3, затем расширяется, но особой прибавки оно не дает (у меня PVS)
  22. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У меня размер окна существенно влияет на размер дерева. Правда, реальных матчей для сравнения я не проводил.

    не заметил вот эту штуку:
    Код:
          if (e > alpha && e < beta)
          {
             strcpy(comment, "");
             alpha = e - ROOT_WINDOW / 2;
             beta = e + ROOT_WINDOW / 2;
          }
    Я думал, что окно без ограничений. Теперь понятно почему PVS не дает особой прибавки. Но мне такое окно все равно не особо нравится.

    Кстати, у тебя иногда отступы тремя пробелами сделаны. Если поставить табуляцию в редакторе отличную от трех сразу видно как форматирование нарушается.
  23. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Меня режим мульти совсем не интересует.
  24. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Я проводил тесты:
    PVS c окном против PVS без окна - примерно одно и тоже,
    и PVS с окном против Альфа-Беты с окном - тоже примерно одно и тоже.
    Альфа-бету с окном и без тестировал на уголках - но там получается очень хорошее упорядочивание ходов, нужно попробовать на шахматах - но если упорядочивание хорошее то особой разницы быть не должно.
  25. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Здесь разницы и быть не может.
    А здесь у меня PVS похуже, т.к. ему нужна стабильность перебора.
  26. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Имеется в виду окно в корне.
    Разница минимальна, но Тога, Крафти совместно с PVS окно используют...
  27. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Не совсем понял - а как у тебя определяется PV ветвь?
    Ты же в ней хеширование не используешь, а в однопроходных схемах с расширяемым окном в корне PV ветвь вроде же не отследить...
  28. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я придерживаюсь именно такого стиля форматирования. Он 1) мне нравится 2) совпадает с корпоративным стандартом организации, где я работаю :)

    Если очень захочется переформатировать, всегда есть под рукой автоматические форматтеры а-ля Artistic Style и т.п. Замену пробелов на табуляцию, и обратно, делает на раз. Плюс корректирует фигурные скобки, отступы в блоках, пробелы в аргументах фукнций и пр. Есть много пред-определённых стилей. Рекомендую: http://astyle.sourceforge.net/
  29. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Так я как раз намекаю на то, что не придерживаешься. У тебя иногда табуляция, иногда пробелы.
    Поэтому форматирование сохраняется только, если установить табуляцию на 3 символа.
  30. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    PV-узлы у меня не определяются. Все узлы дерева равноправны.
  31. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Мне тоже захотелось чего-нибудь с нуля переписать :)
    На всю прогу решительности не хватает. Но до ОФ я уже давно мечтаю добраться :)

    Начну с самого простого (и более менее важного): централизация (таблицами), безопасность короля (пешечный щит). Думаю, что этого хватит, чтобы быть на уровне ГреКо и Анечки.
    И потихоньку буду добавлять всякие фишки.
  32. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Не понимаю, зачем WildCat-у быть на уровне Греко и Анечки, когда он играет на пару-тройку сотен пунктов сильнее?
  33. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Хочется сделать новую ОФ. И делать ее постепенно.
    Старая написана очень криво.
  34. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Не нравится мне вот это:
    Код:
    #define  VAL_PAWN    (100)
    #define  VAL_KNIGHT  (350)
    #define  VAL_BISHOP  (400)
    #define  VAL_ROOK    (650)
    #define  VAL_QUEEN   (1100)
    Ладья получается слишком дорогой. Она не может быть больше, чем половина ферзя.
  35. TopicStarter Overlay

    WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Я это уже заметил, поправил ферзя до 1300.

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