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

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

  1. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    В PV меньше режем, больше расширяем. В не-PV больше режем, меньше расширяем.
    Как-то так.
    В PV-под шахом избегаем ненужные проверки.
    В ФВ без шаха при генерации шахов, вызывается сразу ФВ-с шахом.

    Экономит копейки, но код намного чище. повторений меньше, чем кажется т.к. даже ходогенерация везде своя. В не-PV-без шаха ленивая, в не-PV-под шахом генерация оптимизированная под спасения от шаха.

    Есть свой смысл.
  2. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Что за LTR?
    Лично я за три функции: основной поиск, ФВ и ФВ под шахом.
  3. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    LTR - Late Move Reduction
  4. WildCat Коршунов Игорь

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

    Это кого глючит? :lol:

    Кстати, насчет глюков. Моя подфиксенная Стрелка против нормальной играет пока так +20 -10 =17. Возможно просто погрешность, т.к. то, что я подфиксил было не совсем багом, а скорее всего так и задумывалось. :rolleyes:

    Фабьен в такие места обычно вставлял комменты по типу:
    // HACK: ...
    Это облегчало понимание. :D
  5. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Интерэсно.
    В чём глюк был?
  6. WildCat Коршунов Игорь

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

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    6.542
    Симпатии:
    3.361
    Репутация:
    175
    Оффлайн
    Пунктов 80... :rolleyes:
    WildCat, Вы - страшный человек :)
  8. Fruit Александр

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Это всего лишь 47 партий.
    У меня и после 100 бывало по +70, а потом все устаканивалось. :/
  10. Vertu Старожил

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    Если WildCat и правда что-то заметно улучшил, то это уже похоже на совместное доведение программы до ума! Можно будет версию 1.1 выпустить :)
    Небольшой шаг в сторону моей несбыточной мечты - чтобы "наши" программисты совместно сделали "супердвижок". Например, взяв за основу Стрелку, вычистив ее баги и обогатив ее своими идеями...
  11. WildCat Коршунов Игорь

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

    А по поводу усиления Стрелки, вы зря не надейтесь - похоже усиление происходит только на сверхбыстрых контролях. Но надо еще потестировать.
  12. ChessTerminator75 Андрей

    • Участник
    Рег.:
    22.05.2007
    Сообщения:
    121
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Челябинск
    Оффлайн
    WildCat мне кажется что на glaurung тоже можно посмотреть :rolleyes:
  13. WinPooh В.М.

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Я смотрел отдельные куски (и вроде это был даже Glaurung Lodz). Например, оценку проходных. Стиль написания приемлемый, но его нельзя ставить в пример. Весь код смотреть как-то не решился.
  15. ChessTerminator75 Андрей

    • Участник
    Рег.:
    22.05.2007
    Сообщения:
    121
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Челябинск
    Оффлайн
    Это точно! :)
  16. WildCat Коршунов Игорь

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

    Сортировка взятий по ценности взятой фигуры и ценности берущей.
    Сортировка обычных ходов по истории. Схема такая: History[piece][to] += depth*depth для всех отсекающих по бете ходов (но не под шахом) и для лучших вдоль PV.
    Оценки ходов устанавливаются генераторами ходов. У меня тоже так, но я не очень доволен таким выбором. :)
  17. NS Нефёдов Сергей

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

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

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Там, как я разумею, оптимизированная SEE.
    Она прекращает вычисления, как только понимает, что ход/хороший плохой.

    Если меньший бьет большего, то это ведь всегда хорошо, а ферзь, который бьет пешку, защищенную не ферзём - всегда плохо.
    Где-то находил термин "локальный минимакс". Прекратить перебор, как можно быстрее.
  20. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    4
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Но это будет все равно лучше простого MVV/LVA.
  21. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Хьятт показывал, что разница между MVV/LVA для сортировки не велика.

    Тут же штука в том, что плохие и хорошие хода эта процедура делит. И вот хорошие уже сортируются по MVV/LVA. SEE имеет свои слабости - связки оно не ловит.
  22. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Хьятт писал что разница между MVV/LVA и SEE мала для сортировок в ФВ. Причем он тестировал на своем ФВ, который без отсечений и шахов.
  23. Vertu Старожил

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    972
    Симпатии:
    44
    Репутация:
    4
    Оффлайн
    syrdon, а вы кто? Похоже, у вас немало знаний и практического опыта в этой области. Какой движок вы написали?
  24. syrdon Учаcтник

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Никакой. 3 раза начинал и бросал.
  25. Orlov Учаcтник

    • Участник
    Рег.:
    27.02.2007
    Сообщения:
    177
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Может начать в четвертый и не бросать?
  26. WildCat Коршунов Игорь

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

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

    • Участник
    Рег.:
    21.05.2007
    Сообщения:
    78
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Надоело. Своих идей - ноль.

    Но за Стрелку буду болеть!
  29. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.709
    Симпатии:
    50
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    поддерживаю! :lol:
  30. WildCat Коршунов Игорь

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

    Я в целом согласен с Блассом. Для изучения шахматного программирования Стрелка подходит лучше всех.
    Еще бы прокомментировать как положено, вынести некторый код в функции и будет просто отличный учебник. :)
  31. NS Нефёдов Сергей

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

  32. WinPooh В.М.

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

    Или он имеет в виду только дизассемблирование бинарника?
  33. WildCat Коршунов Игорь

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

    Тут я с Блассом не согласен. Это не должно особо затруднить дизассемблирование. И xor выполняется с вполне конкретными тремя числами, а не со случайными. Зачем это сделано - непонятно.
    Но это никак не влияет на понимание алгоритмов.
    И, конечно, Стрелку нельзя рекомендовать для начинающих, т.к. какая-то база уже должна быть.
  34. Fruit Александр

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

    Рег.:
    04.10.2007
    Сообщения:
    6
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    "Разговоры о том, что Стрелка - это не оригинальный движок, а клон, прекращены!

    Ряд авторитетных экспертов (как зарубежных, так и отечественных) изучили исходные файлы, которые предоставил в их распоряжение автор, Юрий Осипов, и признали, это как очевидный факт..."

    А вот интересно. Автор Рыбки тоже доказывал свою невиновность? Лицемеры.

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