Наш новый движок Strelka!!!

Тема в разделе "Машинное отделение", создана пользователем SDChess, 5 май 2007.

  1. Renegat23
    Оффлайн

    Renegat23 баннер

    Репутация:
    0
    Невиновность в чём?
    Рыбка разве была до сотых долей в оценке похожа на какой-нибудь из движков?
     
  2. thenewone
    Оффлайн

    thenewone Евгений Манев

    Репутация:
    1
    До тысячных была
     
  3. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    вопрос насчет рыбки не стоял, так как она была значительно сильнее любой шахматной программы при всём том что и в шахматы-то играть не умела.
     
  4. Chemer
    Оффлайн

    Chemer Максим

    Репутация:
    0
    ИМХО! Вырезать из рыбы таблицы, содрать UCI c другого движка, наверное и генератор тоже из фрута?! Тогда что такое клонерство?
     
  5. WildCat
    Оффлайн

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

    Репутация:
    0
    Можно считать, что от Фрукта в Стрелке ничего, кроме идеологии, не осталось, т.е. Стрелка никак не клон Фрукта.
    В каких взаимоотношениях Стрелка с Рыбкой я не знаю.
     
  6. NS
    Оффлайн

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

    Репутация:
    3
    Откуда в фрукте битборд генератор?
     
  7. Pia
    Оффлайн

    Pia Учаcтник

    Репутация:
    0
    Я одно не понял: учёные посмотрели исходники Стрелки, и сказали, что она не клон Рыбки. Но разве они смотрели исходники Рыбки?
    Потом ещё Васик говорит, что Стрелка - клон Рыбки, а Осипов говорит, что сам лгал.
     
  8. варяг
    Оффлайн

    варяг Учаcтник

    Репутация:
    0
    Об этом можно подробнее?
     
  9. Binary
    Оффлайн

    Binary Учаcтник

    Репутация:
    0
    Стрелка написана на bitboards...
    Некто Рыбкин писал на этом форуме, что в рыбке шибко продвинутые битбоарды

    Интересно какой способ генерации ходов использует Strelka:
    обычные Rotated bitboards , Magic или какой - либо еще?
     
  10. WildCat
    Оффлайн

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

    Репутация:
    0
    У меня только инициализация битбордных масок нужных для технических целей, да инициализания PST. В общем ничего особо интересного.

    Я даже не смотрел, т.к. стрелкина генерация ходов меня мало интересует.
     
  11. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Uri Blass:
    My opinion is that Strelka is too fat.
    I changed strelka to have a smaller source that produce the same output.


    I deleted some thousands lines from part of the tables that strelka use and wrote few hundreds of lines to calculate the tables in order to make strelka significantly smaller.

    http://64.68.157.89/forum/viewtopic.php?p=155694#155694

    Кстати, Юрий, когда ждать следующую версию? А то ее уже посторонние дорабатывать начали...
     
  12. Осипов Юрий
    Оффлайн

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

    Репутация:
    11
    Надо же, Бласс делает то же самое, что я сделал месяц назад. В результате Стрелка уменьшилась в размерах с прошлых 430 Кб до 163 Кб.
    Кстати, то, что Стрелку "дорабатывают" другие - мне только на пользу. Из всего этого я черпаю дополнительную информацию для своих доработок.
    А вот насчет того, когда будет следующая версия - черт его знает. Нужно делать много мелких вещей, и после каждой очередной мелочи долго тестировать.
     
  13. Vertu
    Оффлайн

    Vertu Старожил

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

    Так выпускайте промежуточные тестовые бетки, а народ потестирует. Райлих их вон клепал по штуке в неделю, все только ими и занимались! А если как чессбейсы, по версии в год... очень скучно получается....
     
  14. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Blass дальше оптимизирует код Стрелки:

    Note that one array of strelka seem to be the same as a function in movei.

    strelka has a big array of 4096 chars Distance[64][64] to calculate distance between squares.

    I have no array for this and

    I simply have the following definition in movei to calculate the same thing

    #define Max(a,b) (((a) > (b)) ? (a) : (b))
    #define FileDistance(a,b) abs(((a)&7) - ((b)&7))
    #define RankDistance(a,b) abs(((a)>>3) - ((b)>>3))
    #define Distance(a,b) Max(FileDistance(a,b),RankDistance(a,b))

    I added this definition to strelka and found that Distance(i,j) is always equal to Distance[j] in strelka for 0<=i,j<=63

    Strelka is using 512 lines of code in order to get what I got in few lines and without array by a simple definition.

    What is your opinion about it?


    http://64.68.157.89/forum/viewtopic.php?p=155699#155699
     
  15. MS
    Оффлайн

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

    Репутация:
    175
    Юрий,
    если не секрет, в каком контексте используются таблицы расстояний между клетками. Единственный "физический" смысл - время, необходимое королю для прохода из А в Б. Но в практической позиции кратчайший маршрут не всегда осуществим, иногда для короля маршрута нет вообще. Таблица для пешечных эндшпилей?
     
  16. bankuss
    Оффлайн

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

    Репутация:
    6
    MS такая таблица используется скорей для определения расстояния от короля до вражьего ферзя, и чем ближе ферзь тем неуютней королю :) Хотя что именно в стрелке, незнаю - мне исходников никто не высылал, хотя желание глянуть есть.
     
  17. WildCat
    Оффлайн

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

    Репутация:
    0
    Blass дальше оптимизирует код Стрелки:
    Это не оптимизация, а наоборот. Мне кажется, что лучше использовать таблицы, а не код с ветвлениями.
     
  18. WildCat
    Оффлайн

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

    Репутация:
    0
    В Стрелке Distance используется для учета отдаленности королей от поля перед проходной пешкой.
     
  19. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

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

    Vertu Старожил

    Репутация:
    4
    Я так понял, что таблицы вычисляются 1 раз при загрузке движка и занимает это очень мало времени.
     
  21. WildCat
    Оффлайн

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

    Репутация:
    0
    Вот это загадочный вопрос. В Стрелке по каким-то непонятным причинам многие таблицы посчитаны заранее, еще до компиляции.
     
  22. krey
    Оффлайн

    krey Михаил Кройтор Команда форума Команда форума

    Репутация:
    1
    где это у Uri сказано? он вообще вроде выкидывает таблицы из Стрелки. и заменяет их вычислениями в процессе... или мой английский слаб?
     
  23. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Это было сказано в предыдущих обсуждениях таблиц.
     
  24. WildCat
    Оффлайн

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

    Репутация:
    0
    Нет, он такого не говорил. Ури как раз и делает вычисление таблиц при загрузке движка.
     
  25. MS
    Оффлайн

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

    Репутация:
    175
    Вычисленные таблицы, вообще говоря, быстрее вычислений.
    В данном контексте речь идет о копеечных вычислениях. Если вместо номера клетки оперировать номерами вертикали и горизонтали - вообще ничего не останется. Загонять в таблицы стоит то, "что денег стоит", имхо.
     
  26. WinPooh
    Оффлайн

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

    Репутация:
    95
    Да, иные вычисления стоят дешевле, чем вычисление индекса в массиве таблицы. Плюс разыменование указателя. Плюс какое-никакое, а чтение, пусть и из кэша.
     
  27. WildCat
    Оффлайн

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

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

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

    Репутация:
    95
    Очень хорошо в плане знаний помогает подключение потоковой библиотеки <iostream>. У меня под gcc-компилятором размер исполняемого кода сразу увеличивается с сотни килобайт до мегабайта :)
     
  29. bankuss
    Оффлайн

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

    Репутация:
    6
    в этой позе r4r2/3P1pQ1/p3kR1p/1p2p3/7q/P7/1PP4P/1K1R4 b - - 0 28
    при включенных 2-х линиях, стрелка выводит некорректно ПВ:

    1. -+ (-#7): 28...Qxf6 29.Rd6+ Kxd6 30.Qxf6+ Kxd7 31.Qxe5 Rg8 32.Qf6 Rg1+ 33.Ka2 Rg2 34.Qxf7+ Kd6
    2. +- (#16): 28...Ke7 29.Rxf7+ Rxf7 30.d8Q+ Rxd8 31.Qxe5+ Kf8 32.Qh8+ Ke7 33.Qxd8+ Ke6 34.Qxh4 Ra7 35.Re1+ Kd7 36.Qd4+ Kc7 37.Qxa7+ Kd6 38.Qe7+ Kd5 39.Qe6+ Kd4 40.Qd6+ Kc4 41.Qc6+ Kd4 42.c3+ Kd3 43.Qe4+ Kd2 44.Qe3#

    вот фрукт 2.3.1:

    1. = (0.24): 28...Qxf6 29.Rd6+ Kxd6 30.Qxf6+ Kxd7 31.Qxe5 Rae8 32.Qd5+ Kc7 33.a4 bxa4 34.Qa5+ Kb7 35.Qxa4 Re1+ 36.Ka2 Rfe8 37.Qb3+ Kc6 38.Qxf7 R1e2 39.Qc4+ Kd7
    2. +- (#13): 28...Ke7 29.d8Q+ Raxd8 30.Rxf7+ Rxf7 31.Qxe5+ Kf8 32.Qh8+ Ke7 33.Qxd8+ Ke6 34.Qxh4 Rf5 35.Qxh6+ Ke7 36.Qg7+ Ke6 37.Re1+ Kd6 38.Qe7+ Kd5 39.Qd7+ Kc5 40.b4+ Kb6 41.Re6#
     
  30. Renegat23
    Оффлайн

    Renegat23 баннер

    Репутация:
    0
    Банкусс, знакомая партия... Вот чем значит анализируете! :D
     
  31. MS
    Оффлайн

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

    Репутация:
    175
    bankuss, с Вашего позволения - я нажал кнопочку FEN в окошке ввода сообщения
     
  32. bankuss
    Оффлайн

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

    Репутация:
    6
    Renegat23 это был не анализ! а просто поза стояла эта, я как раз скачал Белку, ну и дай думаю гляну, что за "зверь" :D и тут совершенно случайно наткнулся на глюк! на 1 линии все ОК, на 2 и 3 точно глюк, на 4 не пробовал :)
    А специально искать будешь - не найдешь. Не зря говорят, что все открытия делаются случайно :D
     
  33. Fruit
    Оффлайн

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

    Репутация:
    3
    Не совсем так:
    Однажды у Эйнштейна спросили, чем его мышление, мышление гения, отличается от мышления обычного человека. Он ответил следующее:

    -Обычный человек, если потеряет иголку в стоге сена, поищет ее некоторое время, найдет и успокоится. Я же продолжаю поиски до тех пор, пока не найду вторую иголку, третью, четвертую, и, если повезет, то даже пятую и шестую.
    :)
     
  34. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
  35. thenewone
    Оффлайн

    thenewone Евгений Манев

    Репутация:
    1
    Тестовые версии Стрелки (2.2, 2.4 и 2.0) у меня показывают сногсшибающие результаты, но пока мало партий.