Белка

Тема в разделе "Машинное отделение", создана пользователем WildCat, 3 ноя 2007.

  1. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Контроль каждый берет тот, который считает наиболее удобным, но не менее 1+1.
    На этой стадии развития Белки эти слабые движки вполне годятся для тестирования.
    Я не совсем понял о чем речь. Стрелка не поддерживает эндшпильные таблицы. Не может она обращаться к таблицам Шреддера.
     
  2. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Это по турниру из 36 партий? Шутить изволите? :)
    Вроде должна занижать. Сейчас посмотрю в чем там дело.
     
  3. VP
    Оффлайн

    VP Учаcтник

    Репутация:
    0
    Налимова ТВ тож пока нет поддержки?
    Я по оболочке хотел спросить, мож кто знает, можно ли прерывать турнир-вызов, например с 45 деб. позицией прервать.
    Потом когда открываем турнир доигрывать, с какой он начинает играть дебют? с 45 ? или с 1 снова?
    Мои предложения по замене движков 9-10 остаются, надо заменить их на Zappa-Mexico, Fritz10
     
  4. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Заменил Аларик на Заппу. Будем тестировать на этом наборе!
    Никаких кривых Фрицев нам не нужно. :cool:

    Все нормально занижается.
     
  5. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    На двух и более ядрах возможен запуск нескольких тестовых турниров в разных оболочках (естественно без mp версий и пондеринга). Я пробовал на Core2Duo запускать одновременно два турнира используя интерфейсы Chessbase и Shredder Classic. Падение скорости движков не наблюдалось, а если и было, то незначительное, зато кол-во партий *2 :)
     
  6. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Код:
    1' 1"
    
    Shredder 11 UCI   - Strelka 1.8 UCI     60.5 - 39.5    +49/-28/=23    60.50%
    Shredder 11 UCI   - Belka 1.8.7         47.0 - 53.0    +30/-36/=34    47.00%
    Шредер сильнее Стрелки, но слабее Белки...

    Партии матчей с Рыбкой и Шредером тут: http://slil.ru/25063306
     
  7. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Партии лучше кидайте в мыло.
     
  8. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    у меня глючит почта
     
  9. Fruit
    Оффлайн

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

    Репутация:
    3
    У меня Белка идёт на 45, 14% после 72 партий с Shredder 11 UCI
     
  10. VP
    Оффлайн

    VP Учаcтник

    Репутация:
    0
    Код:
    Q6600@3600MHz, 3'+1"
    
                                     1234567890123
    1   Belka 1.8.7            2700   1111100½½01½1   8.5/13
    2   Crafty 21.6BH x64-smp  2600  0000011½½10½0    4.5/13
    Не помогли Лукавому_ 4 ядра и х64
     
  11. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Закончил матч 1+1 с Наумом. Для наглядности приведу все свои результаты на сегодня:

    Rybka 2.3.2a 32-bit - Strelka 1.8 UCI 65.5 - 34.5 +48/-17/=35 65.50%
    Rybka 2.3.2a 32-bit - Belka 1.8.7 62.5 - 37.5 +43/-18/=39 62.50%

    Shredder 11 UCI - Strelka 1.8 UCI 60.5 - 39.5 +49/-28/=23 60.50%
    Shredder 11 UCI - Belka 1.8.7 47.0 - 53.0 +30/-36/=34 47.00%

    Naum 2.2 - Strelka 1.8 UCI 47.5 - 52.5 +33/-38/=29 47.50%
    Naum 2.2 - Belka 1.8.7 37.0 - 63.0 +17/-43/=40 37.00%

    Если судить по этим 600 партиям, то небольшой прирост силы есть.
    Партии с Наумом - http://slil.ru/25066122
     
  12. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    По этим партиям прирост довольно значительный. Интересно, что покажут партии других тестеров.
     
  13. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Игорь, Юрий! Может еще какие смелые идеи есть? Давайте тестить! Рыбу догонять надо!
     
  14. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Для начала надо систему тестирования наладить. :)
     
  15. Осипов Юрий
    Оффлайн

    Осипов Юрий Учаcтник

    Репутация:
    11
    Ну а пока нет отлаженной системы тестирования, придется действовать методом грубой силы - гонять тысячи партий. У меня уже накопилось шесть версий Стрелки, в каждой из которых внесено небольшое изменение по сравнению с версией 1.8. Хотелось бы их проверить. В принципе, могу их покласть на какой-нибудь ifolder, но лучше - пишите мне на почту: [email protected].

    Да, Игорь, хотел бы уточнить - что конкретно ты сделал в Белке - какой диапазон стадий партии используется, и какова окончательная формула расчета оценки?
     
  16. Fruit
    Оффлайн

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

    Репутация:
    3
    Я уже 5 матчей наиграл с Белкой. Теперь со Стрелкой такие же наиграю за 4-5 дней. Посмотрим, что получится.
     
  17. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Оставил 25 стадий партии, как и должно было быть (закомментировал строчку в emater.c, где они размножаются до 65).
    Интегральня оценка считается так:
    Код:
      phase = flags >> 4;
      value = ((phase * endgame + (24 - phase) * opening) / 24) >> 5;
    Похоже что с этим изменением лучше играет в дебюте.
     
  18. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    WildCat, как вы в целом представляете себе "отлаженную систему тестирования"?
     
  19. Осипов Юрий
    Оффлайн

    Осипов Юрий Учаcтник

    Репутация:
    11
    Игорь, спасибо за комментарий. Значит, из моих шести новых версий одну можно исключать - я там сделал точно то же самое. И прогон по тестовым позициям почти совпал.

    Хотя - оценки все-таки иногда отличаются на одну сотую, и число узлов чуть другое, но это уже мелочи. Хотя и интересно - почему бы это? Может, ты еще что-то слегка изменил?
     
  20. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Больше вроде ничего.

    Я в первом посте постарался описать.
     
  21. Осипов Юрий
    Оффлайн

    Осипов Юрий Учаcтник

    Репутация:
    11
    Игорь, я нашел причину расхождения между Белкой и моим вариантом, но это наводит на грустные размышления.

    У тебя написано: value = (....) >> 5;
    А у меня было: value = (....) / 32;
    Когда я поменял на >> 5 - получилась абсолютная копия Белки. Ставлю обратно деление на 32 - появляются небольшие расхождения.

    Чего-то я не понимаю в этой жизни. Всегда считал, что деление на 32 равнозначно сдвигу вправо на 5. В чем может быть глюк?
     
  22. WinPooh
    Оффлайн

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

    Репутация:
    95
    В отрицательных числах?
    В разных правилах дополнения для signed/unsigned?
     
  23. WinPooh
    Оффлайн

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

    Репутация:
    95
    И действительно:

    Код:
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        signed char x1 = 42;
        unsigned char x2 = 42;
        signed char x3 = -42;
    
        printf("(signed char) %d / 32 = %d\n", x1, x1 / 32);
        printf("(signed char) %d >> 5 = %d\n", x1, x1 >> 5);
        printf("(unsigned char) %d / 32 = %d\n", x2, x2 / 32);
        printf("(unsigned char) %d >> 5 = %d\n", x2, x2 >> 5);
        printf("(signed char) %d / 32 = %d\n", x3, x3 / 32);
        printf("(signed char) %d >> 5 = %d\n", x3, x3 >> 5);
        return 0;
    }
    (signed char) 42 / 32 = 1
    (signed char) 42 >> 5 = 1
    (unsigned char) 42 / 32 = 1
    (unsigned char) 42 >> 5 = 1
    (signed char) -42 / 32 = -1
    (signed char) -42 >> 5 = -2

    Компилятор gcc, режим -ansi.
    Операция целочисленного деления производит "truncation towards zero", a операция сдвига - нет.
     
  24. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Хаха. Т.е. ">>5" - это деление на 32, а "/32" - нет.
     
  25. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Хотя для ОФ, наверно, более правильно использовать загадочную операцию "/32".
     
  26. WinPooh
    Оффлайн

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

    Репутация:
    95
    Продолжаем курить стандарт (языка С99):

    6.5.7

    5. The result of E1 >> E2 is E1 right-shifted E2 bit positions. If E1 has an unsigned type or if E1 has a signed type and a nonnegative value, the value of the result is the integral part of the quotient of E1 / 2E2. If E1 has a signed type and a negative value, the resulting value is implementation-defined.

    Т.е., вообще говоря, хак непереносимый и никто ничего не обещает :)
     
  27. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Совсем ничего не обещают? Т.е. сдвиг может вообще не работать?
     
  28. WinPooh
    Оффлайн

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

    Репутация:
    95
    Именно так. Я на эти грабли уже как-то наступал, и зарёкся сдвигать знаковые числа.
    Кстати, результат неопределён и в том случае, если правый операнд (величина сдвига) отрицательный.
    Т.е. (x >> (-5)) != (x << 5), как бы этого иногда ни хотелось :)

    Думаю, современные компиляторы достаточно умны, и сами оптимизируют деление на небольшие степени двойки операцией сдвига, причём корректным образом для любого знака.
     
  29. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Почему бы, в целях экономии времени и получения более достоверного результата не ограничиться тестированием на Рыбке? Уж если она для всех является главной мишенью. Если вырастут результаты с Рыбой, с другими соперниками они скорее всего тоже вырастут.

    Например, Райлих, по его словам, тестировал свою программу в основном на Шреддере, который был тогда №1, и соответственно был главной мишенью. В результате Рыба потом имела Шреддера, как никого другого....
     
  30. NS
    Оффлайн

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

    Репутация:
    3
    Необязательно. Легко может получиться так что вырастут результаты с Рыбой, но при этом "средний результат" станет хуже.
     
  31. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Но противоположное гораздо вероятней.
     
  32. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    И какая же здесь экономия?
     
  33. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    В том, что 500 партий с Рыбой статистически могут дать более надежну и полезную информацию, чем по 100 партий с 10 разными движками, нет?
     
  34. NS
    Оффлайн

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

    Репутация:
    3
    По 50 партий с 10 разными движками даст более достоверную информацию чем 500 партий с Рыбой. Доверительный интервал зависит только от количества партий (ну еще желательно чтоб соперники были близки по силе к тестируемому движку), но 500 партий с одним соперником хуже тем, что вполне возможно что мы выбрали удобный/неудобный по стилю движок.
    В итоге вместо роста силы получим антирыбку.
     
  35. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    сомневаюсь