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

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

  1. Renegat23 Заслуженный

    • Заслуженный
    Рег.:
    08.02.2007
    Сообщения:
    1.823
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Невиновность в чём?
    Рыбка разве была до сотых долей в оценке похожа на какой-нибудь из движков?
  2. thenewone Евгений Манев

    • Участник
    • Старожил
    Рег.:
    09.06.2006
    Сообщения:
    3.173
    Симпатии:
    18
    Репутация:
    1
    Адрес:
    Пловдив
    Оффлайн
    До тысячных была
  3. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    вопрос насчет рыбки не стоял, так как она была значительно сильнее любой шахматной программы при всём том что и в шахматы-то играть не умела.
  4. Chemer Максим

    • Участник
    Рег.:
    14.09.2006
    Сообщения:
    1.674
    Симпатии:
    13
    Репутация:
    0
    Адрес:
    Запорожье
    Оффлайн
    ИМХО! Вырезать из рыбы таблицы, содрать UCI c другого движка, наверное и генератор тоже из фрута?! Тогда что такое клонерство?
  5. WildCat Коршунов Игорь

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

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

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

    • Участник
    Рег.:
    23.10.2006
    Сообщения:
    98
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Гонду-Раша
    Оффлайн
    Об этом можно подробнее?
  9. Binary Учаcтник

    • Участник
    Рег.:
    27.08.2006
    Сообщения:
    135
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Мытищи
    Оффлайн
    Стрелка написана на bitboards...
    Некто Рыбкин писал на этом форуме, что в рыбке шибко продвинутые битбоарды

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

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

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    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тник

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

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

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    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 Михаил Семионенков

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    MS такая таблица используется скорей для определения расстояния от короля до вражьего ферзя, и чем ближе ферзь тем неуютней королю :) Хотя что именно в стрелке, незнаю - мне исходников никто не высылал, хотя желание глянуть есть.
  17. WildCat Коршунов Игорь

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

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

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    Я так понял, что таблицы вычисляются 1 раз при загрузке движка и занимает это очень мало времени.
  21. WildCat Коршунов Игорь

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

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    Это было сказано в предыдущих обсуждениях таблиц.
  24. WildCat Коршунов Игорь

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

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

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Чем больше мы загоним в таблицы, тем больше будет весить движок - и следовательно будет казаться, что в нем больше знаний. Это хитрый маркетинговый ход. :cool:
  28. WinPooh В.М.

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

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    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 Заслуженный

    • Заслуженный
    Рег.:
    08.02.2007
    Сообщения:
    1.823
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Банкусс, знакомая партия... Вот чем значит анализируете! :D
  31. MS Михаил Семионенков

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    bankuss, с Вашего позволения - я нажал кнопочку FEN в окошке ввода сообщения
  32. bankuss Александр

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

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

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
  35. thenewone Евгений Манев

    • Участник
    • Старожил
    Рег.:
    09.06.2006
    Сообщения:
    3.173
    Симпатии:
    18
    Репутация:
    1
    Адрес:
    Пловдив
    Оффлайн
    Тестовые версии Стрелки (2.2, 2.4 и 2.0) у меня показывают сногсшибающие результаты, но пока мало партий.

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