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

Discussion in 'Машинное отделение' started by SDChess, 5 May 2007.

  1. syrdon
    Оффлайн

    syrdon Учаcтник

    Репутация:
    0
    В PV меньше режем, больше расширяем. В не-PV больше режем, меньше расширяем.
    Как-то так.
    В PV-под шахом избегаем ненужные проверки.
    В ФВ без шаха при генерации шахов, вызывается сразу ФВ-с шахом.

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

    Есть свой смысл.
     
  2. WildCat
    Оффлайн

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

    Репутация:
    0
    Что за LTR?
    Лично я за три функции: основной поиск, ФВ и ФВ под шахом.
     
  3. syrdon
    Оффлайн

    syrdon Учаcтник

    Репутация:
    0
    LTR - Late Move Reduction
     
  4. WildCat
    Оффлайн

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

    Репутация:
    0

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

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

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

    syrdon Учаcтник

    Репутация:
    0
    Интерэсно.
    В чём глюк был?
     
  6. WildCat
    Оффлайн

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

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

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

    Репутация:
    175
    Пунктов 80... :rolleyes:
    WildCat, Вы - страшный человек :)
     
  8. Fruit
    Оффлайн

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

    Репутация:
    3
    Новую модификацию можно назвать WildBelka
     
  9. WildCat
    Оффлайн

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

    Репутация:
    0
    Это всего лишь 47 партий.
    У меня и после 100 бывало по +70, а потом все устаканивалось. :/
     
  10. Vertu
    Оффлайн

    Vertu Старожил

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

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

    Репутация:
    0
    Забыл еще сказать, что видел исходники SmarThinк - так это самый большой ужас из всех. Написана в стиле "чтоб никто не догадался". :)

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

    ChessTerminator75 Андрей

    Репутация:
    0
    WildCat мне кажется что на glaurung тоже можно посмотреть :rolleyes:
     
  13. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

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

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

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

    ChessTerminator75 Андрей

    Репутация:
    0
    Это точно! :)
     
  16. WildCat
    Оффлайн

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

    Репутация:
    0
    Сортировки ходов.

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

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

    Репутация:
    3
    То есть сначала сортировка по SEE, а внутри уже MVV/LVA? Или по SEE нет сортировки, а только определяется что пойдет в начало списка ходов, а что в конец?
     
  18. WildCat
    Оффлайн

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

    Репутация:
    0
    Именно так. Но я бы сделал сортировку по SEE, раз уж все равно эта функция всегда вызывается.
     
  19. syrdon
    Оффлайн

    syrdon Учаcтник

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

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

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

    Репутация:
    0
    Но это будет все равно лучше простого MVV/LVA.
     
  21. syrdon
    Оффлайн

    syrdon Учаcтник

    Репутация:
    0
    Хьятт показывал, что разница между MVV/LVA для сортировки не велика.

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

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

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

    Vertu Старожил

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

    syrdon Учаcтник

    Репутация:
    0
    Никакой. 3 раза начинал и бросал.
     
  25. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    Может начать в четвертый и не бросать?
     
  26. WildCat
    Оффлайн

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

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

    Vertu Старожил

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

    syrdon Учаcтник

    Репутация:
    0
    Надоело. Своих идей - ноль.

    Но за Стрелку буду болеть!
     
  29. krey
    Оффлайн

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

    Репутация:
    1
    поддерживаю! :lol:
     
  30. WildCat
    Оффлайн

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

    Репутация:
    0
    Непонятное продление оказалось продление recapture, просто записано было в нехорошем стиле.
    Теперь вроде по переборным алгоритмам все. Еще кому-то что-то непонятно?

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

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

    Репутация:
    3
    Самого главного в коде нет - каким образом делались "кривые" PST и как настраивались "кривые" веса остальных признаков в ОФ.

     
  32. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    А как же вот это его замечание?

    Или он имеет в виду только дизассемблирование бинарника?
     
  33. WildCat
    Оффлайн

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

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

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

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

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

    ShAV Зарегистрирован

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

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

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