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

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

  1. corplayer Учаcтник

    • Участник
    Рег.:
    15.05.2007
    Сообщения:
    101
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Кстати, мне понравился перевод Vertu. Хороший стиль и всё точно передано.
  2. thenewone Евгений Манев

    • Участник
    • Старожил
    Рег.:
    09.06.2006
    Сообщения:
    3.173
    Симпатии:
    17
    Репутация:
    1
    Адрес:
    Пловдив
    Оффлайн
    ну переведи весь текст Райлиха. Там есть о том, что автор Стрелки подтрунивает над бедным Васиком :)

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

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

    • Участник
    Рег.:
    18.06.2007
    Сообщения:
    394
    Симпатии:
    456
    Репутация:
    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 Нефёдов Сергей

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.382
    Симпатии:
    2.850
    Репутация:
    91
    Адрес:
    Москва
    Оффлайн
    Юрий, спасибо за столь подробное, открытое и интересное объяснение!
    Вот бы кто-нибудь теперь взялся за труд аутентично перевести его и запостить на тот же talkchess... (понимаю, что инициатива наказуема, но — увы, сам необходимым на то временем не располагаю...)
  7. thenewone Евгений Манев

    • Участник
    • Старожил
    Рег.:
    09.06.2006
    Сообщения:
    3.173
    Симпатии:
    17
    Репутация:
    1
    Адрес:
    Пловдив
    Оффлайн
    кто-нибудь сделайте перевод, а то я запостил там какую-то деревянную трансляцию от Гугла...
  8. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    3
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Мне интересно, что ты дальше собираешься со всем этим делать. Поделишся с народом исходниками или хотя бы идеями?
  9. thenewone Евгений Манев

    • Участник
    • Старожил
    Рег.:
    09.06.2006
    Сообщения:
    3.173
    Симпатии:
    17
    Репутация:
    1
    Адрес:
    Пловдив
    Оффлайн
    упс
    на токчессе хотят судить автора...
    :/
  10. Осипов Юрий Учаcтник

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

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

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

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

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

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

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

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

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

    • Участник
    Рег.:
    07.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    >>Ну вот и весь сказ. Можете судить меня судом Линча, если в моих действиях есть серьезный криминал.
    Криминал есть — фрукт под GPL, значит и исходники стрелки/рыбки должны быть открытыми.
  19. drowsy Учаcтник

    • Участник
    Рег.:
    07.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    >>А вот делиться со всем народом - вряд ли
    А вот это тоже криминал.
  20. Shark Учаcтник

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

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    3
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    Старый Fruit 2.2.1 уже давно не open source.
  22. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Изучение чужого кода всяко поможет поднять силу своей. Только не все хотят этим заниматься :)
  23. NS Нефёдов Сергей

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    945
    Симпатии:
    24
    Репутация:
    3
    Оффлайн
    Видели - Рыбкин-то непрост. Вот NS ему не верил, а Осипов поверил! :) Небось ведь чистую правду мужик писал...
  25. NS Нефёдов Сергей

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

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

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

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

    • Участник
    • Старожил
    Рег.:
    22.12.2006
    Сообщения:
    945
    Симпатии:
    24
    Репутация:
    3
    Оффлайн
    Dann Corbit пишет:

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

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

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

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

    http://64.68.157.89/forum/viewtopic.php?p=130205&sid=762a18804b8974b18d190082f25bcc7d#130205
  27. Alexdragon Учаcтник

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

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

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

    • Участник
    Рег.:
    22.02.2006
    Сообщения:
    2.412
    Симпатии:
    14
    Репутация:
    0
    Оффлайн
    Pia
    -1
    Нигде нет чёткого определения, когда и при каких условиях считать движок клоном, а когда не считать. А теоретизировать может каждый, кто попадает пальцами по клавишам на клавиатуре.

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

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

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

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.382
    Симпатии:
    2.850
    Репутация:
    91
    Адрес:
    Москва
    Оффлайн
    Сила - сущность распределённая. Нельзя ткнуть пальцем в место в программе, и сказать: вот тут!
    Вот, к примеру - в чём сила Фрукта?
  34. krey Михаил Кройтор

    • Команда форума
    Рег.:
    10.04.2006
    Сообщения:
    3.707
    Симпатии:
    48
    Репутация:
    1
    Адрес:
    Кишинев
    Оффлайн
    нет у фрукта силы. и все это знают.
  35. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.382
    Симпатии:
    2.850
    Репутация:
    91
    Адрес:
    Москва
    Оффлайн
    Хорошо, переформулирую вопрос: в чём была сила Фрукта, когда он возглавлял рейтинг-лист свободно распространяемых программ?

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