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

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

  1. NS
    Оффлайн

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

    Репутация:
    3
    :) ОФ слишком простая и короткая...
    Признаки найдены конечно не все. Признаков больше (Например сильный конь против слабого слона)

    Перебор разобрать есно значительно сложнее (тем более что в переборе присутствуют совсем нестандартные алгоритмы) + Тяжело будет разобрать сортировку ходов. (расчет весов ходов)

    Без разбора переборных алгоритмов в возможность полного разбора кода Рыбки за рузмное время я конечно не поверю...

    Куда шампанское передавать?
     
  2. syrdon
    Оффлайн

    syrdon Учаcтник

    Репутация:
    0
    Зря Вы про нестандартные алгоритмы сказали. Народ кинется ломать. :lol:
    Расчет весов небось происводится на основе расчёта взятия или значения из истории/убийц?

    Штука в том, что мы все отлично знаем, что у Анечки может быть внутри. (удержался от непристойной шутки - мало ли в честь кого программа названа).

    Да, читать RecStudio код немного напрягает, но ведь Delphi не слишком злобно оптимизирует, хотя ОФ он вставил прямо в форсированный поиск и потом страдал разадресацией.
    Основная функция поиска у Вас богата параметрами, это да.

    Разумеется. Я просто зашабашил после 4-х часов.

    Объявим тендер :) ! На ящик водки. Но уже без меня. :cool:

    Неделя немного суматошная. Я Вам в личку напишу.
     
  3. NS
    Оффлайн

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

    Репутация:
    3
    Эт я перестарался - конечно правильней в отдельной структуре все эти параметры хранить.
     
  4. MS
    Оффлайн

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

    Репутация:
    175
    NS,

    Вы, мне кажется, несколько переоцениваете сложность анализа реассемблированной программы.
    Лет 20 назад я работал с графическим процессором, который не был документирован.
    Была только программа (бинарник, само собой), засылавшая управляющую внутрь процессора.
    Я реассемблировал эту программу, но программы, управлявшей процессором, там не оказалось: бинарник (!) был перекодирован. Но это не помешало размотать все: систему команд процессора, адреса и назначение регистров итп, написать свою, более мощную, программу, и запулить ее куда надо. Ребята, хоть и очень старались в заметании следов, оставили перекодировку в основной памяти. Я вычислил место, где уже дешифрованная программа отправлялась, с помощью лома и матери перенаправил вывод в память, реассемблировал этот вывод и восстановил все картину. Даже если бы дешифровщик пересылали в процессор, один черт я бы нашел способ поймать дешифрованную программу.
    Замечу, что все это делалось без дебаггеров, просто на уровне реассемблированного кода. Я давно отошел от этих дел, но уверен, что современный дебаггер способен дать кучу наводящей информации. Конечно, ответить на вопрос, что делает некая абстрактная программа, - чрезвычайно трудно, но если взломом занимается человек, знающий, что это за программа и ориентирующийся в соответствующих алгоритмах - задача не выглядит фантастической.
     
  5. VP
    Оффлайн

    VP Учаcтник

    Репутация:
    0
    Куда смотрят только модеры :)
    Тему про Стрелку совсем заофтопили,
    начиная со взлома Анечки...и что там есть у нее внутри...
    Пора syrdon,NS,MS открыть соотв. тему,
    глядишь и еще выявим таланты на форуме по взлому прог.
     
  6. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
  7. WildCat
    Оффлайн

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

    Репутация:
    0
    Давайте поговорим по теме ветки. :)
    Я начинаю смотреть исходники Стрелки. Первые выводы такие:
    Изначально это был Фрукт, но настолько все переделано, что Стрелка может считаться вполне оригинальным движком. Конечно, жаль, что нет возможности сравнить с исходниками Рыбки. :)
    Таблица пондерхитов с сайта CCRL говорит о том, что Стрелка и Рыбка очень похожи - http://computerchess.org.uk/ccrl/40...=by+rating&reference_list=None&recalibrate=no
    Вполне возможно, что Осипову удалось разобраться в основных алгоритмах Рыбки и реализовать их.
     
  8. NS
    Оффлайн

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

    Репутация:
    3
    А как узнал что изначально это был Фрукт?
     
  9. WildCat
    Оффлайн

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

    Репутация:
    0
    Видно же.
     
  10. NS
    Оффлайн

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

    Репутация:
    3
    Если видно что это Фрукт - тогда плохо. Написать сильный движок переписав другой сильный движок наверно значительно проще чем писать "с нуля".
     
  11. WildCat
    Оффлайн

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

    Репутация:
    0
    Ну он не просто переписан, а довольно сильно изменен. Остались только кое-какие идеологические фишки.
     
  12. Orlov
    Оффлайн

    Orlov Учаcтник

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

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

    Репутация:
    1
    Может, нам следует ожидать скорого появления движка под именем Koshka v.1.0.beta 32-bit ? :D :D :D :D :D :lol: :lol: :lol: :lol: :lol:
     
  14. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    Belka v.1.0.beta 32-bit лучше звучит :)
     
  15. WildCat
    Оффлайн

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

    Репутация:
    0
    Честно говоря, я уже начал подумывать о том, чтобы заняться разработкой Белки. :)
    То что это был Фрукт - это мое личное мнение, а не факт. Но в любом случае сейчас Стрелка очень далека от Фрукта, т.е. тут не о чем даже разговаривать.
    То, что что-то проще еще не аргумент. На С++ писать значительно проще, чем на ассемблере. Не запрещать же из-за этого С++. :)
     
  16. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    А на сколько в Стрелке PST оригинальны? Или ничего в них необычного нет?
     
  17. WildCat
    Оффлайн

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

    Репутация:
    0
    PST просто инициализируются константами. Во Фрукте PST вычисляются в функции pst_init(). И то, что они численно несовпадают - очевидно.
     
  18. syrdon
    Оффлайн

    syrdon Учаcтник

    Репутация:
    0
    А Killer-ов сколько?
     
  19. WildCat
    Оффлайн

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

    Репутация:
    0
    Как и у большинства других - два.
    Кстати, syrdon, если уж ты такой гений, достань из Рыбки PST. Интересно на них глянуть.
     
  20. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    А PST общие для всех стадий игры или есть разбивка?
     
  21. WildCat
    Оффлайн

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

    Репутация:
    0
    Ну, естественно, как и в Фрукте, все делится на opening и endgame.
    На всякий случай не надо больше провакационных вопросов о внутреннем устройстве Стрелке. А то я не уверен, что Осипову понравится то, что я это рассказываю всем. :rolleyes:
    Для начала, я спрошу у него разрешения, пока не сболтнул чего лишнего. :/
     
  22. Orlov
    Оффлайн

    Orlov Учаcтник

    Репутация:
    0
    ясно, только не понял почему естественно.
     
  23. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Сад расходящихся рыбок :)
     
  24. WildCat
    Оффлайн

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

    Репутация:
    0
    Orlov, заканчивай полностью цитировать предыдущий пост. Лучше я уж сам буду по два раза вставлять свои посты. :lol:
    А естественно, потому что удалять такую фишку было бы неестественно. :cool:
     
  25. NS
    Оффлайн

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

    Репутация:
    3
    Это естественно по другим причинам. Я куогда писал свою первую шахматную программу вообще не знал что бывают PST - считал это своим изобретением :lol: (в книге адельсона-Вельского про PST ничего не было)
    При этом разделил их не на две, а аж на три стадии - дебют, миттельшпиль, эндшпиль (в условиях малого быстродействия потребовалась отдельная дебютная PST). Разделение PST сразу автоматом приходит в голову когда пишешь программу играющую только на них - так как пешки на миттельшпильной PST в эндшпиле не идут в ферзи (осбенно когда скорость движка 100 узлов в секунду)
     
  26. WildCat
    Оффлайн

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

    Репутация:
    0
    Разделение на opening и endgame имеет несколько другую идеологию. Поэтому естественно, что Стрелка не отступает от идеологии Фрукта.
     
  27. NS
    Оффлайн

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

    Репутация:
    3
    Не могу понять твою мысль... ИМХО в любой шахматной программе должно быть разделение PST как минимум на миттельшпильную и эндшпильную хотя-бы для короля и пешки.
     
  28. krey
    Оффлайн

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

    Репутация:
    1
    хорошо рассуждать о PST когда являешься довольно квалифицированным шахматистом. а если ты только научился играть в шахматы - то для тебя сила пешки одинакова и в дебюте, и в эндшпиле... то есть равна нулю :) то же и с королем - начинающий игрок редко задумывается о том, что король, вообще говоря, очень сильная фигура - а в эндшпиле он просто зверь!

    но я согласен - у любой сильной программы должен быть PST. вот у scorpio он наружу вытащен.
     
  29. WildCat
    Оффлайн

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

    Репутация:
    0
    Я о том, что есть два подхода к разделению ОФ на стадии:
    1. ОФ переключается в зависимости от стадии.
    2. ОФ вычисляет интегральную оценку по миттельшпильной и эндшпильной.
     
  30. WildCat
    Оффлайн

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

    Репутация:
    0
    Я не особенно квалифицированный шахматист. :rolleyes:

    Видимо поэтому у меня в программе почти так и есть. :D
    Только равна не нулю, конечно, а 100 + бонус за продвинутость. :cool:
     
  31. NS
    Оффлайн

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

    Репутация:
    3
    Я в шашки вообще играть не умею, но PST хорошие сделал. Правда WildCat говорил что они очень кривые.
    При этом правильные PST квалифицированных шашистов значитльно слабеее...

    В шахматах я делал вычисляемые PST, и настраивал параметры (шахматные знания мне в этом не помогали) -несколько на каждую PST. А уже вычисленные значения немного корректировал вручную (добавлял бонусы в функцию вычисления)

    ИМХО второй пункт это всего лишь развитие первого. Первый плавно перетекает во второй - у меня так в шашках перетекло - текущая PST простой интегральная. (хотя выглядит и не так - реально это интегральная оценка от двух PST)
     
  32. syrdon
    Оффлайн

    syrdon Учаcтник

    Репутация:
    0
    Тогда вероятность, что Стрелка клон чуть упала. По слухам, Рыбак как-то сболтнул, что двух мало.

    Нет, спасибо. Рыбак мне бутылку не обещал.:)
     
  33. WildCat
    Оффлайн

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

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

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

    Репутация:
    0
    Для чего мало?
    Я так и думал. :D
     
  35. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Говорят, у Гидры нету.