Мурка

Тема в разделе "Машинное отделение", создана пользователем WildCat, 8 дек 2011.

  1. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Вышла новая версия моего нового шахматного движка: Мурка 2.
    Распростаняется вместе с исходным кодом. Имеет рейтинг около 2636 CCRL. Поддерживает протоколы UCI/Xboard.
  2. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.544
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Код:
    $g++ -O2 -I. -c BitBoards.cpp -o BitBoards.o
    
    In file included from BitBoards.cpp:5:
    BitBoards.h:4:20: error: intrin.h: No such file or directory
    In file included from BitBoards.h:6,
                     from BitBoards.cpp:5:
    Types.h:4: error: ‘__int64’ does not name a type
    Types.h:5: error: ‘__int64’ does not name a type
    Types.h:6: error: ‘__int32’ does not name a type
    Types.h:7: error: ‘__int16’ does not name a type
    Types.h:8: error: ‘__int8’ does not name a type
    In file included from BitBoards.cpp:5:
    BitBoards.h:12: error: ‘BitBoard’ does not name a type
    BitBoards.h:14: error: ‘BitBoard’ does not name a type
    BitBoards.h:15: error: ‘BitBoard’ does not name a type
    BitBoards.h:16: error: ‘BitBoard’ does not name a type
    BitBoards.h:17: error: ‘BitBoard’ does not name a type
    BitBoards.h:18: error: ‘BitBoard’ does not name a type
    BitBoards.h:19: error: ‘BitBoard’ does not name a type
    BitBoards.h:20: error: ‘BitBoard’ does not name a type
    BitBoards.h:21: error: ‘BitBoard’ does not name a type
    BitBoards.h:22: error: ‘BitBoard’ does not name a type
    BitBoards.h:23: error: ‘BitBoard’ does not name a type
    BitBoards.h:25: error: ‘BitBoard’ does not name a type
    BitBoards.h:38: error: ‘BitBoard’ does not name a type
    BitBoards.h:39: error: ‘BitBoard’ does not name a type
    BitBoards.h:40: error: expected initializer before ‘&’ token
    BitBoards.h:41: error: expected initializer before ‘&’ token
    BitBoards.h:42: error: expected initializer before ‘&’ token
    BitBoards.h:43: error: expected initializer before ‘&’ token
    BitBoards.h:44: error: expected initializer before ‘&’ token
    BitBoards.h:45: error: expected initializer before ‘&’ token
    BitBoards.h:47: error: ‘BitBoard’ does not name a type
    BitBoards.h:48: error: ‘BitBoard’ does not name a type
    BitBoards.h:51: error: ‘BitBoard’ does not name a type
    BitBoards.h:52: error: ‘BitBoard’ does not name a type
    BitBoards.h:53: error: ‘BitBoard’ does not name a type
    BitBoards.h:54: error: ‘BitBoard’ does not name a type
    BitBoards.h:55: error: ‘BitBoard’ does not name a type
    BitBoards.h:56: error: ‘BitBoard’ does not name a type
    BitBoards.h:59: error: ‘uint8’ does not name a type
    BitBoards.h:60: error: ‘uint16’ does not name a type
    BitBoards.h:61: error: ‘BitBoard’ does not name a type
    BitBoards.h:62: error: ‘uint32’ does not name a type
    BitBoards.h:63: error: ‘BitBoard’ does not name a type
    BitBoards.h:66: error: ‘BitBoard’ does not name a type
    
  3. TopicStarter Overlay

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

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

    В g++ нет аналогов?
  4. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.544
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Можно у crafty спионерить. Плюс настроить типы. Но это надо время... Будет время, постараюсь обвернуть autotools-ами.

    Потому как типов __uint64 нет, есть аналоги uint64_t. В общем портировать надо... Кстати, версия deep или нет?
  5. TopicStarter Overlay

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

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

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    поэтому надо добавить
    Код:
    #ifndef __uint64
    typedef uint64_t __uint64
    #endif
    
  7. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    вот адаптация кода Мурки2 + makefile под gcc - murka2-src
  8. Тянь-Викунтяу Учаcтник

    • Участник
    Рег.:
    02.08.2011
    Сообщения:
    243
    Симпатии:
    2
    Репутация:
    0
    Адрес:
    Барнаул,Алтайский край.
    Оффлайн
    Прекрасная тема.
    Разрастется так-же,как и обсуждение стрелки?
  9. Виталий В. Зарегистрирован

    Рег.:
    30.10.2011
    Сообщения:
    20
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Украина, г.Макеевка
    Оффлайн
    Скачал, сейчас проверю, как мурка играет! Я однажды видел, как чёрная маленькая кошка. Пугала собачку породы боксёр. Я в этот момент на рынок в микро-районе зашёл, дело было зимой. Это не описуемо! Надо своими глазами видеть. Кошка с горизонтально раположенными ушами и хищным взглядом шипела и как бы бросалась боком на собаку. Боксёра на поводке держала девочка и разговаривала по мобилке. В итоге собачка стала дрожать, а я проникся безмерным уважением к кошкам! Потом девочка увела боксёра, и кошка из хищниа "превратилась" в обычную чёрную кошку. Надеюсь, Мурка-2 покажет всем "рыбам" гда раки зимуют!
  10. Тянь-Викунтяу Учаcтник

    • Участник
    Рег.:
    02.08.2011
    Сообщения:
    243
    Симпатии:
    2
    Репутация:
    0
    Адрес:
    Барнаул,Алтайский край.
    Оффлайн
    А у меня такой вопрос-зачем нужна Мурка?
    Ведь Кошка играет явно сильнее ее :)
  11. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    это способ приручить дикую кошку. автор пытается привести код в порядок.
  12. TopicStarter Overlay

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    У Мурки больше потенциал. :D
  13. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    кстати, есть теоретическая идея Чебаненко, которая может быть реализована в движках. Можно её в Мурке проверить?
    Идея следующая: под тактической слабостью понимают фигуру (пешку), у которой число защит равно числу нападений. Король считается тактической слабостью, если ему можно дать шах. Это связано с тем, что нападение на тактическую слабость вынуждает ответы. Так вот, чем больше тактических слабостей у стороны, тем хуже позиция. А если у противника есть 5 и более слабостей, то (по утверждению одного ММ) в позиции есть разрешающая её комбинация.
    Вот я и предлагаю при оценке позиции подсчитывать тактические слабости и назначать штрафы (скажем 0.1 пешки за слабость) стороне, у которой нет права хода.
  14. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.104
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Учитываются любые нападения, безотносительно ценности фигур?
    То есть конь, защищённый пешкой своего цвета, но на которого нападает неприятельский ферзь - это слабость?
  15. Mustitz Заслуженный

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    30.09.2006
    Сообщения:
    3.544
    Симпатии:
    1.265
    Репутация:
    36
    Адрес:
    Киев
    Оффлайн
    Да, пешку можно отвлечь, уже мотив.
  16. Тянь-Викунтяу Учаcтник

    • Участник
    Рег.:
    02.08.2011
    Сообщения:
    243
    Симпатии:
    2
    Репутация:
    0
    Адрес:
    Барнаул,Алтайский край.
    Оффлайн
    Матч Греко-Мурка с контролем 1+1.

    Код:
    Greko 9.0      69,5/100
    Murka 2         30,5/100
    В начале матча Мурка даже вырвалась вперед,но потом Греко ее с легкостью перекатала :(
    Заметил то,что Мурка недооценивает атаку на короля.Ей жертвуют материал и выносят.
  17. TopicStarter Overlay

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

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

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    Я в Греку вставил, скорость упала на 2 порядка. Однако, думаю, можно оптимизировать - сделать расчёт нападений и защит в процессе перебора вариантов - так же, как реализован подсчет материала
  19. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.490
    Симпатии:
    3.104
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Более того, при оценке в Греке вычисляется мобильность. Если использовать промежуточные данные, которые всё равно уже есть (битборды атак дальнобойных фигур), можно за счёт них ускорить.

    Но скорость, это ладно. Интересно бы потестировать на контролях с фиксированным числом позиций в дереве.
  20. Осипов Юрий Учаcтник

    • Участник
    Рег.:
    18.06.2007
    Сообщения:
    399
    Симпатии:
    475
    Репутация:
    11
    Адрес:
    Правда
    Оффлайн
    А в Ипполитах и Рыбке давно уже оцениваются атаки и защиты - тоже на основе тех же битбордов атак/мобильности. Только немного подкорректировать веса и условия, и можно пробовать без всякой потери скорости.
  21. Тянь-Викунтяу Учаcтник

    • Участник
    Рег.:
    02.08.2011
    Сообщения:
    243
    Симпатии:
    2
    Репутация:
    0
    Адрес:
    Барнаул,Алтайский край.
    Оффлайн
    Контроль 1+1.
    Код:
    Rybka 1.0 beta  85,5/100
    Murka 2              14,5/100
    Слабовато как-то мурка играет... :(

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