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

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

  1. corplayer
    Оффлайн

    corplayer Учаcтник

    Репутация:
    0
    Кстати, мне понравился перевод Vertu. Хороший стиль и всё точно передано.
     
  2. thenewone
    Оффлайн

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

    Репутация:
    1
    ну переведи весь текст Райлиха. Там есть о том, что автор Стрелки подтрунивает над бедным Васиком :)

    krey, а что, только программисты могут считать какую-то программу клоном? Простым любителям это запрещено?
     
  3. krey
    Оффлайн

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

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

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

    Репутация:
    11
    И-эх, опять замутил? Я уже начинаю привыкать, что каждое мое телодвижение вызывает бурю парадоксальных эмоций, которые я не могу игнорировать, согласно современным тенденциям теории вербального позитивизма?
    Поэтому расскажу по порядку всю правду о том, как делалась Стрелка. Надеюсь, это многое объяснит.

    1. За основу программы были взяты исходные тексты Fruit немногим менее двух лет назад.
    2. Алгоритм был полностью переписан на битборды. Это ничего не изменило, только повысило быстродействие почти вдвое.
    3. После этого началась работа по совершенствованию оценочной функции и алгоритма поиска. Оптимизация оценочной функции выполнялась путем корреляционного анализа. Я добивался максимальной корреляции статической оценки и минимакса.
    4. После появления Рыбки возникла мысль провести корреляционный анализ оценки позиций с Рыбкой. Я варьировал веса оценочной функции, менял эвристики продлений и сокращений в поиске, и в итоге мне удалось добиться очень высокой степени сходства поведения Стрелки и Рыбки. В некоторых позициях совпадение было просто идеальным.
    5. Я искал и находил любую достоверную (и недостоверную) информацию об алгоритме Рыбки. Внимательно изучил работы Ларри Кауфмана по исследованию оценки дисбаланса материала, так как имел большое подозрение, что Васик использовал те же идеи.
    6. И главный криминал: я внимательно изучал код Рыбки дизассемблером и пытался понять алгоритм ее работы. В общей сложности я исследовал около 20% кода. Меня совершенно не интересовали функции UCI-протокола или, например, генераторы ходов. Генераторы (и многие другие функции) у меня были свои, а протоколом вообще не собирался заниматься, поскольку вообще не собирался делать движок.
    Меня интересовали только эвристики поиска и оценочная функция. Это позволило мне добиться еще большей сходимости с Рыбкой. Кроме этого, я обнаружил, что Васик шел тем же путем ? он взял за основу Fruit, переписал его на битборды, и включил таблицы оценок дисбаланса материала от Кауфмана. Некоторые таблицы оценок я похитил из Рыбки.
    7. Последнюю точку в этой истории поставил некто Рыбкин. Сегодня можно сказать ? забил последний гвоздь в крышку гроба Стрелки. В отличие от большинства участников этого форума, я ему поверил, поскольку и сам уже много чего знал. Именно благодаря Рыбкину я понял алгоритм использования таблицы оценки материала. Рыбкин был не прав в одном ? он считал, что эта большая таблица получена функцией типа material_comp_info. Я же почти уверен, что Васик обработал большую базу партий, и результатом этой статистики стала эта таблица. В сущности, это то же самое, что делал Кауфман еще в конце 90-х годов.
    8. В конце концов зачем-то захотелось сделать движок и поучаствовать в турнирах. На сайте WBEC прочитал о требованиях к движкам ? там делался упор на то, что должен поддерживаться протокол Winboard, а UCI-движки должны работать через адаптер Полиглот. Я решил, что написание Winboard ? более короткий путь. По крайней мере, не нужно изучать еще и Полиглота. Порылся в интернете, и нашел исходники Beowulf, из которого и списал протокол. Потом оказалось, что Беовульфа писал некто Корбит, который впоследствии изучал исходные тексты Стрелки, и очень удивлялся, обнаружив в ней код из Беовульфа.
    9. Новая UCI-версия Стрелки практически ничем не отличается от первой бета-версии. Единственное, что мне удалось сделать ? найти функциональную зависимость для оценок дисбаланса материала и кое-что исправить в этих оценках. В остальном исходный код Стрелки практически не изменился. Поэтому меня несколько удивляют утверждения о том, что первая версия не была клоном, а вторая им стала. Могу еще раз послать исходники Корбиту и Хофману ? пусть сравнивают.

    Ну вот и весь сказ. Можете судить меня судом Линча, если в моих действиях есть серьезный криминал. Если это так, то каяться я не буду, а предпочту остаться свободным художником, каким и был до сих пор. Буду жить как прежде и делать то, что мне интересно. И плевать мне на рейтинги, участие в турнирах, всякие там CCRL и т.д. Обойдусь как нибудь без них, как и они без меня. Я свободный человек, и жениться ни на ком не обещал.
     
  5. NS
    Оффлайн

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

    Репутация:
    3
    Криминала точно нет - никто не запрещает смотреть исходники других программ. Переписать Фрукт под Битбоард - Васик похоже сделал тоже самое. Но это не копирование кода, а написание по аналогии - всяко тоже никем не запрещено.
    Нельзя заимствовать код, а идеи на то и публикуются (в виде кода либо как-либо иначе) чтоб их использовать в своих программах.
     
  6. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Юрий, спасибо за столь подробное, открытое и интересное объяснение!
    Вот бы кто-нибудь теперь взялся за труд аутентично перевести его и запостить на тот же talkchess... (понимаю, что инициатива наказуема, но — увы, сам необходимым на то временем не располагаю...)
     
  7. thenewone
    Оффлайн

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

    Репутация:
    1
    кто-нибудь сделайте перевод, а то я запостил там какую-то деревянную трансляцию от Гугла...
     
  8. WildCat
    Оффлайн

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

    Репутация:
    0
    Мне интересно, что ты дальше собираешься со всем этим делать. Поделишся с народом исходниками или хотя бы идеями?
     
  9. thenewone
    Оффлайн

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

    Репутация:
    1
    упс
    на токчессе хотят судить автора...
    :/
     
  10. Осипов Юрий
    Оффлайн

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

    Репутация:
    11
    Wildcat, лично тебе готов выслать исходники. Пользуйся на здоровье !
    Причем, бездвоздмездно, т.е. даром. Ну и еще некоторым реальным авторам хороших движков (NS, например). Буду только рад, если им это поможет, и у них получится лучше, чем у меня.
    А вот делиться со всем народом - вряд ли, учитывая тяжелое отношение к клонированию со стороны некоторых ревнителей чистоты за бугром. Эх, как хотелось бы дожить до светлого будущего, когда все будут свободно обмениваться исходниками, идеями и алгоритмами, и не жрать друг друга.
     
  11. Booot
    Оффлайн

    Booot Учаcтник

    Репутация:
    0
    Юрий. По поводу исходников хотелось бы присоседиться :). Точнее не столько ради исходников даже, сколько идей. Скажите: таблицы оценки материала используются с учетом расположения пешек обоего цвета или достаточно лишь наличия этих пешек на доске?
     
  12. WildCat
    Оффлайн

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

    Репутация:
    0
    www.igorkorshunov.narod.ru/WildCat - там внизу есть мое мыло.
    А что же у тебя плохо получилось? Только что слишком уж перестарался в стремлении быть похожим на Рыбку. И возможно стоило сразу объяснить народу, что эта похожесть вовсе не случайна, а в некотором смысле даже была одной из целей проекта. :)
     
  13. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    От себя хочу выразить поддержку Юрию Осипову, прошу его не обращать внимания на злопыхателей и продолжать заниматься любимым делом. Юрий достоин всяческого уважения за тот объем работы, который он проделал. Большой Респект.
     
  14. Позиционер
    Оффлайн

    Позиционер Зарегистрирован

    Репутация:
    0
    Передача исходников ведущим российским шахматным программистам очень правильный и благородный шаг, может наконец рыбка падет :)

    Представляю как через пол года появятся новые wildcat,anechka,boot,smarthink... с рейтингом ~ 3000
     
  15. Осипов Юрий
    Оффлайн

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

    Репутация:
    11
    О нет ! Только об алгоритмах расположения пешек здесь не спрашивайте ! Это я замучаюсь отвечать. Я и так в интернете бываю редко и урывками. В следующий раз буду, возможно, в пятницу.
    А по поводу "интимных" вопросов об исходниках - лучше пишите на jury_osipov@ mail.ru. Я думаю, что эту тему на форуме лучше не поднимать. А то буржуи узнают - вас же потом пинать будут. Не сможете больше выпустить ни одной своей новой версии, особенно если она будет сильнее предыдущей.
     
  16. варяг
    Оффлайн

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

    Репутация:
    0
    Насколько я помню, Марков, получив исходники Стрелки, сказал здесь на форуме, что они ему если и помогут, то разве что только морально
    Многие авторы шахматных программ имеют исходники более сильных программ , чем их собственная, что, однако, далеко не всегда помогает им повысить силу своей программы
    Гораздо важнее обмен идеями и этот обмен должен быть доступен всем, а не только "некоторым реальным авторам хороших движков"
     
  17. Позиционер
    Оффлайн

    Позиционер Зарегистрирован

    Репутация:
    0
    варяг, всё конечно зависит от квалификации программиста.
     
  18. drowsy
    Оффлайн

    drowsy Учаcтник

    Репутация:
    0
    >>Ну вот и весь сказ. Можете судить меня судом Линча, если в моих действиях есть серьезный криминал.
    Криминал есть — фрукт под GPL, значит и исходники стрелки/рыбки должны быть открытыми.
     
  19. drowsy
    Оффлайн

    drowsy Учаcтник

    Репутация:
    0
    >>А вот делиться со всем народом - вряд ли
    А вот это тоже криминал.
     
  20. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Новый Fruit (который еще не вышел), по утверждению автора уже будет не Open Source.
    Автор обосновывает это тем, что боится клонов. :rolleyes:
     
  21. WildCat
    Оффлайн

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

    Репутация:
    0
    Старый Fruit 2.2.1 уже давно не open source.
     
  22. NS
    Оффлайн

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

    Репутация:
    3
    Изучение чужого кода всяко поможет поднять силу своей. Только не все хотят этим заниматься :)
     
  23. NS
    Оффлайн

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

    Репутация:
    3
    Мне интересно - я предлагал на этом форуме так-же проводить корреляционный анализ приводя оценку при малой глубине перебора (Либо решив систему уравнений вообще без перебора - методом наименьших квадратов, используя для этого только устойчивые позиции) к оценке выдаваемой Рыбкой с большей глубиной перебора.
    Это делать тоже нельзя? Или нельзя только заимствовать таблицы? Но я могу их поменять с серьезным изменением стиля игры, но без ухудшения силы... А это наказуемо? И разве GPL лицензия распространяется не только на сам код? Если код другой - это уже не клон.
     
  24. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Видели - Рыбкин-то непрост. Вот NS ему не верил, а Осипов поверил! :) Небось ведь чистую правду мужик писал...
     
  25. NS
    Оффлайн

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

    Репутация:
    3
    Если прочитать ту ветку, то можно заметить, что насчет Таблиц я как раз говорил что они получены не той-же функцией которая считает на лету во Фрукте, а были рассчитаны более серьезными методами.
    Переписать полностью дизасемблированный код на Си - как я считал что это неподъемная задача, так и считаю.

    Насчет таблицы материала - Рыбкин сказал как раз неправильно. Нет никакого смысла хранить быстрорасчитываемые значения в программе.

    А вот насчет пункта третьего
    - он сделан был именно так как я предлагал это делать?

    http://kasparovchess.crestbook.com/viewtopic.php?pid=38431#p38431
    Начиная отсюда, но есно не меняем набор признаков, а методом наименьших квадратов находим веса существующих в программе.
     
  26. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Dann Corbit пишет:

    У меня смешанные чувства. Я ясно, что в Стрелке есть как собственные оригинальные идеи, так и заимствованные. Меня беспокоит то, что автор Стрелки не воздал должного источникам заимствованных им идей и кода: Fruit, Rybka, Beowulf.

    Использование им информации из каждого из этих источников находится вблизи грани дозволенного, и я не знаю, нарушил он эту грань или нет. Но я думаю, будет неправильно, если мы не воздадим ему должного за проделанную им работу.

    Есть и другие, кто заимствует чужие идеи - это распространено в компьютерных шахматах - но, на мой взгляд, случай Стрелки выделяется на этом фоне.

    Я чувствую разочарование в обеих сторонах этого конфликта. Всё это серьезно охлаждает мою любовь к компьютерным шахматам вообще.

    http://64.68.157.89/forum/viewtopic.php?p=130205&sid=762a18804b8974b18d190082f25bcc7d#130205
     
  27. Alexdragon
    Оффлайн

    Alexdragon Учаcтник

    Репутация:
    0
    А что за обе стороны этого конфликта?
    Васик вроде на конфликтоы не идет-см выше причины.
    А с другой стороны (Осипов):
    -я внимательно изучал код Рыбки дизассемблером и пытался понять алгоритм ее работы.
    При этом получилась что-то вроде бэты-Рыбки-почему?понятно-работа с дизассемблером непростая (обсуждалось тоже).Вот можно и последнюю верию дизассемблировать -только Васик за это время выпустит Рыбку 3.0 -ну и так далее по кругу.
    Есть ли смысл в этой работе-не знаю(я лично не вижу-но каждый решает для себя сам).А вот если Осипов выпустит на основе (или с использованием некоторых основных идей) бэты Рыбки Стрелку,играющую лучше новой версии Васика -я лично за него порадуюсь.Да и вообще-когда-то же это будет сделано неизбежно.
    Ну не закрыл же Васик своим движком все направление -значит кто-то когда-то неизбежно сделает более совершенный движок-иначе и быть не может.Вопрос только-кто и когда ? -:)
     
  28. Pia
    Оффлайн

    Pia Учаcтник

    Репутация:
    0
    Очевидно, кроме некоторых реально "хороших" авторов, никому и не нужны коды воровки-Стрелки. Настоящий автор должен хотябы знать, благодаря чему появилось его творение. До "светлого" будующего может ты и доживёшь, но я сомневаюсь насчёт Рыбки и других программ :(

    sidserious тебе передаёт: "Ты всего лишь карикатурщик- который лучшее что может - это изобразить фрагмент скрытой правды о работе над исскуством, от куда ты пытался украсть- и за это ты всего лишь дешёвый подражала, а в худшем случае обычный вор."
     
  29. immortal223
    Оффлайн

    immortal223 Вячеслав

    Репутация:
    0
    Pia
    -1
    Нигде нет чёткого определения, когда и при каких условиях считать движок клоном, а когда не считать. А теоретизировать может каждый, кто попадает пальцами по клавишам на клавиатуре.

    Эх... Всё началось с Фрукта. Зачем Летузи только выложил его исходники? ;) Вот глядишь и Рыбки бы не было тогда.
     
  30. NS
    Оффлайн

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

    Репутация:
    3
    Pia, а как-же вы тогда относитесь к Рыбке, которая явно так-же является аналогом Фрукта. причем Васик сэкономил как минимум несколько лет не написав своё, а взяв чужое. И к Заппе, которая скорей всего так-же является аналогом Фрукта.
    :rolleyes:
    И в России есть и другие движки которые были написаны не самостоятельно с нуля, правда за основу были взяты более слабые экземпляры...
     
  31. MaxP
    Оффлайн

    MaxP Максим

    Репутация:
    0
    Думаю Юрий меньше всего хочет знать мнение каких-то Pia и sidserious.
    "Не можешь помочь - не навреди" ©.
    Насчет воровства - а как тогда относиться к авторам Рыбки, LOOPa, Заппы? Тогда назовите и их ворами карикатурщиками.
     
  32. Vertu
    Оффлайн

    Vertu Старожил

    Репутация:
    4
    Если кто (NS, WildCat, WinPooh) получит исходники Стрелки, то расскажите вкратце - в чем там сила? В прекалькулированных таблицах?
     
  33. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Сила - сущность распределённая. Нельзя ткнуть пальцем в место в программе, и сказать: вот тут!
    Вот, к примеру - в чём сила Фрукта?
     
  34. krey
    Оффлайн

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

    Репутация:
    1
    нет у фрукта силы. и все это знают.
     
  35. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Хорошо, переформулирую вопрос: в чём была сила Фрукта, когда он возглавлял рейтинг-лист свободно распространяемых программ?