"Пионер" и этюд Надареишвили

Тема в разделе "Машинное отделение", создана пользователем NS, 13 ноя 2006.

Статус темы:
Закрыта.
  1. NS
    Оффлайн

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

    Репутация:
    3


    Вот эта многострадальная позиция...
     
  2. NS
    Оффлайн

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

    Репутация:
    3
    1. g6 Kf6 2. g7 Bh7 3. e4 Bxe4 4. g8=Q Nf3 5. Qg7+ Kf5 6. Qf7+ Ke5 7. Kg7
    c6 8. h6 c4 9. Qh5+ Kd4 10. h7 Bxh7 11. Qxh7 e5 12. Qg6 e4 13. Qxc6 c3 14. Qd6+
    Ke3=

    Какой ход белых ошибочен?
     
  3. NS
    Оффлайн

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

    Репутация:
    3
    1. g6 e5 2. g7 Bb3 3. h6 Nc2 4. h7 Nxe3 5. g8=Q Bxg8 6. hxg8=Q Ke4 7. Qh7+ Kd4
    8. Kg7 c4 9. Kf6 Nd5+ 10. Kf5 c6 11. Qh4+ Kd3 12. Kxe5 c3 13. Qe4+ Kd2

    Вот еще один вариант...
     
  4. NS
    Оффлайн

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

    Репутация:
    3
    Короче - Что сделал Ботвинник с этюдом?
    То же самое что и Котов в своей книге "Как стать Гроссмейстером", только Котов не пользовался компьютером для того чтоб рисовать дерево перебора в графическом виде.
    Например Ботвинник в ответ на G6 нарисовал только три ответа соперника -
    Крf5:g6
    Крf5-f6
    и Кe1-g2.
    На Кe1-g2 g6-g7 (за белых нарисован только один ход) рассмотрены только Кh4 и Кf4.
    Отлично - вручную нарисовал кусок (причем далеко неполный) дерева решения (если этюд вообще имеет решение), сам об этом признался - но при чем тут "Пионер"???

    Он видимо уже позже забыл, что кусок дерева они практически нарисовали сами (и это дерево из 200 позиций всяко не является решением этюда) - и начал трубить на весь мир что этюд решил Пионер.
    Но книги были изданы!!! И в них написано что было на самом деле, причем в качестве автора указан сам Ботвинник.
     
  5. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Там еще было написано, что это было в рекламных целях. Т.к. проект готов был загнутсья в любую минуту и нужны были хоть какие-то результаты.
    Ботвинник до того верил в "Пионера", что считал этот маркетинговый ход пойдет только на пользу.
     
  6. NS
    Оффлайн

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

    Репутация:
    3
    В итоге этого рекламного хода - люди далекие от темы действительно поверили что происходит что-то сверхестественное, что Ботвинник сделал что-то выдающееся, и что написание шахматной программы чревызвычайно сложно (как-же Чемпион мира по шахматам, Доктор, имея команду разработчиков - не может написать безошибочный генератор ходов)
    А вот те кто "в теме" - по словам самого-же Ботвинника перестали воспринимать его всерьез. Хотя и до этого большой популярностью в кругах шахматных программистов (именно как разработчик) по словам самого-же Ботвинника он не пользовался.
     
  7. Нестор
    Оффлайн

    Нестор консультант_ специалист по черной магии баннер

    Репутация:
    331
    Все-таки я так и не понял - этот этюд в принципе решается или нет? И какое вообще у него задание? :) Белые начинают и выигрывают или белые начинают, но черные делают ничью? Объективно что получается? Или это до сих пор науке неизвестно? :)
     
  8. NS
    Оффлайн

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

    Репутация:
    3
    Вроде неизвестно. По замыслу - Белые начинают и выигрывают.
    В этюде возникают позиции Ферзь против коня с тремя пешками, и Ферзь и пешка (либо две пешки) против Коня, слона и трех пешек. Которые весьма тяжело оценить - на данный момент сильнейшие программы ни до чего не досчитываются. :)
    Авторское решение эти Варианты не рассматривало (и есно Ботвинник когда рисовал дерево - их тоже в дерево не включил). Естественно "Пионер" к нарисованному Ботвинником дереву практически никакого отношения не имеет.
     
  9. NS
    Оффлайн

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

    Репутация:
    3
    Там кроме варианта в посте 2 (который скорей всего проигран для черных)
    Есть еще куча разных возможностей за черных.
     
  10. Мастер Икс
    Оффлайн

    Мастер Икс Василий Щепетнев Команда форума

    Репутация:
    19
    Вполне возможно, что Ботвинник просто пошел по пути Остапа Бендера. Великий комбинатор вместе с Кисой устроились на тиражный пароход художниками и продержались, помнится, три дня - каюта, стол, и такса Рабиса, .
    Ботвинник урок усвоил - и сдюжил куда дольше. Хотя программистом он был - как Остап художником...
     
  11. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Ботвинник - Штильману : "Скажите мне как программист программисту - Вы программировать умеете?" :)
     
  12. s154
    Оффлайн

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

    Репутация:
    0
    Оное дерево сделано просто подгоном, о чем Ботвинник прямо и написал. Так что к Пионеру оно имеет мало отношения. А насчет программирования я немного С Ботвинником беседовал. Интересовали меня в преддипломные времена концепции шахматного программирования, работающие лучше перебора с альфа-бета отсечением. Кой-какие эндшпиля можно было брать без такого перебора. Когда я завел с ним беседу на такую тему, последовали ответы:" Это я не знаю..Это Вы спросите у моих программистов.." И в том же духе.
    После чего я понял, что Пионер никогда хорошо в шахматы играть не будет ..
     
  13. NS
    Оффлайн

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

    Репутация:
    3
    Тут была ветка - некоторые пешечные эндшпиля на поля соответствия решаются (в теории) немного быстрее ретроспективным анализом в реальном времени (Быстрее чем перебором)
    И ИМХО Ботвинник не понимал сути и различий двух схем Шеннона...
    Практически основная его идея вытекала из этого непонимания :)
     
  14. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Я думаю, что различия двух схем он прекрасно понимал, тоже мне - бином Ньютона.

    Другое дело, что во времена Ботвинника многие ещё верили в селективный перебор. Только после Chess 4.5 пришло понимание, что full-width search просто пересчитывает селективных оппонентов. Но это было справедливо только для определённых глубин, не слишком больших - до 10 полуходов, скажем.

    Мне кажется, что сейчас история по спирали возвращается к тем же селективным методам, но на новой основе - уже на большой глубине дерева, предварительно взяв от классического Шеннона всё, что можно... Благо, техника позволяет.
     
  15. NS
    Оффлайн

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

    Репутация:
    3
    Никто никуда не возвращаются.
    А в шахматы и в шашки программы считают по второй схеме Шеннона. :)
    Разная глубина разных ветвей - вот тебе и вторая схема.
    Шеннон написал - как он это понимал в 40-ые годы. Необязательно всё понимать буквально.
     
  16. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Вообще говоря, тут трудно сравнивать - в 60-е годы шахматные программисты фактически решали другую задачу, чем сейчас. Часто сравнивают, насколько сильно играли бы древние программы на современном железе. Можно поставить и обратную задачу - насколько хорошо бы современные алгоритмы отмасштабировались для nps в несколько сотен и памяти в десятки килобайт.

    Оставив за скобками то, что большая часть современных программ в таких условиях просто бы не запустилась (места под хэш и генератор ходов не нашлось), можно предположить что и не все из современных методов поиска оказались бы эффективны. Нулевой ход, LMR, futility - все они надёжно работают только если "подстрахованы" достаточной глубиной перебора и большим хэшом.
     
  17. NS
    Оффлайн

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

    Репутация:
    3
    Легко смасштабировать - у меня же есть шахматная программа играющая в таких условиях :)
    Как раз быстродействие встроенного языка 1С не позволяет получить больше 100-200nps на медленных машинах...
    Меньше, чем показывают программы на ZX-Spectrum. Причем старые программы на Синклере играют явно слабее...
     
  18. NS
    Оффлайн

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

    Репутация:
    3
    Null Move кстати дает прибавку уже при Depth=3 :)
    Futility дает прибавку при Depth=2 :) Причем Футилити не надо подстраховывать большой глубиной - он дает одинаковую прибавку при любой глубине перебора начиная с Depth=2, причем в Каиссе и Футилити и Null Move были...
    а LMR и сейчас - с суперкороткими контролями прибавки не дает...
     
  19. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    И что, реально прибавка в силе есть от нулевого хода на таких малых скоростях? Ты эксперимент проводил?

    В любом случае, селективный поиск с первых же ходов пытались придумать не от хорошей жизни. Ресурсов маловато было...
     
  20. NS
    Оффлайн

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

    Репутация:
    3
    Я не проводил эксперимент, а мной в 2003-ем году написана "уникальная" шахматная программа на встроенном языке 1С, показывающая от сотни NPS, и использующая метод пустого хода, и есно метод пустого хода дает достаточно приличную прибавку (быстродействие встроенного языка 1С в тысячи и десятки тысяч раз меньше, чем компиляторов Делфи/Си, при этом программа может играть и на P-100)
     
  21. gudvinn
    Оффлайн

    gudvinn Учаcтник

    Репутация:
    0
    WinPooh:
    ——————-
    Я думаю, что различия двух схем он прекрасно понимал, тоже мне - бином Ньютона.

    Другое дело, что во времена Ботвинника многие ещё верили в селективный перебор. Только после Chess 4.5 пришло понимание, что full-width search просто пересчитывает селективных оппонентов. Но это было справедливо только для определённых глубин, не слишком больших - до 10 полуходов, скажем.
    ———————————————————————-
    Объясните, пожалуйста,
    1) что такое 2 схемы Шеннона.
    2) Как пришло понимание, что селективный перебор хуже.
     
  22. NS
    Оффлайн

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

    Репутация:
    3
    Современные программы как раз используют селективный перебор :)
    Так что он не хуже :)
    LMR, Футилити, Отсечения по SEE, Null Move и т.д - это всё методы селективного перебора.

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

    Поняли, что сокращение глубины это тоже самое - достаточно давно. То есть если по сравнению с остальными ветвями в конкретной ветви дерева совсем малое количество узлов - по сути это и есть вторая схема Шеннона.
     
  23. gudvinn
    Оффлайн

    gudvinn Учаcтник

    Репутация:
    0
    Можно назвать LMR, Футилити, Отсечения по SEE, Null Move и т.д - методами селективного перебора.
    Но эти методы только уменьшают размер ветвей (глубину перебора какой-либо ветки).

    Возможно ли не включать некоторые ходы в перебор совсем. Условно говоря в узле сразу за счет анализа отсечь некоторые ходы ( как бы глубина 0 или 1 ).
    Я читал про существование таких программ. Аргумент против них был простой во многих позициях выкидывались и лучшие ходы.

    Так это принципиально доказано, что невозможно, или только опыт не удачен?
     
  24. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    То есть причина неудач Ботвинника - в том, что он для сокращения перебора избрал неверный набор эвристик. Ну не угадал человек, с кем не бывает. Вместо того чтобы просто считать статистику бета-отсечений, он пытался сделать "тяжёлые" эвристики, оценивающие атакующий потенциал ходов, цепочки фигур и т.д. Слишком тяжёлые оказались - как для тогдашнего железа, так и для понимательных способностей разработчиков...

    Теперь нам его легко оценивать, да. С многократно изученным кодом Фрукта, Тоги, Крафти, результатами десятков тысяч тестовых партий, архивами теоретических статей и т.д. А в 60-е годы всё приходилось открывать с нуля.
     
  25. NS
    Оффлайн

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

    Репутация:
    3
    И в шахматных и в шашечных программах есть такие методы.
    Они называются Футилити/Экстендед Футилити и Разоринг.
    Не имеет смысла резать всю ветвь при большом Depth - посчитав немного варинтов мы дерево особо не увеличим, а отсечение будет более корректным.
     
  26. gudvinn
    Оффлайн

    gudvinn Учаcтник

    Репутация:
    0
    Если ферзь противника съел вашего ферзя, то в 99.9% ответ единсвенный. И шахматист не станет рассчитывать варианты. Любая программа будет строить огромное дерево.

    (Самый простой пример Б Кe1, pe2 Black Ke8, QF3. Ход единственный ef.
    Если в программе отключить стандарные позиции KPK (чтобы не усложнять этот пример) то в перебор пойдут еще 4 ненужных хода. )
     
  27. NS
    Оффлайн

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

    Репутация:
    3
    Кто тебе сказал? Не будет программа строить огромное дерево. В этом случае дерево будет ничтожно малым по сравнению с остальными ветвями. Они войдут в перебор (остальные четыре хода), но на них практически не будет затрачено времени.

    Любая программа (на самом деле не любая) будет думать над практически единственным ходом, но это не уменьшает силы игры.
    Есть методы выдать ход раньше, но зачем? Экономия времени копеечная, силы это не прибавит.

    Хстати, если ход единственный по правилам - то тут уже многие программы думать не будут...
     
  28. Сергей С. Питер
    Оффлайн

    Сергей С. Питер Старожил

    Репутация:
    11
  29. Мастер Икс
    Оффлайн

    Мастер Икс Василий Щепетнев Команда форума

    Репутация:
    19
    Неудачи не было.
    Целью Ботвинника было не создание игровой программы, а создание приличного, престижного рабочего места.
    Эту цель он достиг.
     
  30. Vladimirovich
    Оффлайн

    Vladimirovich Консультант

    Репутация:
    31
    Из "Аналитические и критические работы. 4 том"
    1977 год
    Если каждый этюд имел подпрограммы, имеющие к нему прямое отношение, снимаю шляпу :)

    1978 год
    Какой же дизайн должна иметь программа, чтобы изменения алгоритма через несколько лет отражались на правилах игры :)
    И какой же оптимизм надо было иметь, чтобы надеяться что такая программа когда нибудь заработает :)

    P.S (Я знаю какие были машины в 70х, но несколько лет это все равно перебор)
     
  31. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Дело не в дизайне. Дело в отсутствовавшей методологии тестирования.

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

    Если бы Ботвинниковская команда в своё время начала с функции perft, конь бы у них с g5 на g7 не прыгал уже в первый же день, не то что через два года...
     
  32. NS
    Оффлайн

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

    Репутация:
    3
    Без всякого perft у людей играет без ошибок...
    Если люди знают правил шахмат, и хоть немного умеют писать.
    А вот если писать не умеешь - то и нескольких лет не хватит на отладку генератора.
    Тем более конь с g5 на g7 - это что за ошибка должна быть?
    А с шахом a7-a5 - случайно цилиндрическую доску не напишешь :)
     
  33. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Например - выход за границу массива, в какой-то момент (не сразу) переписавший один из элементов другого массива (описывающего прыжки коня). Писалось-то всё, видимо, в машинных кодах, в лучшем случае - на Фортране...

    Это навскидку, первая возможная гипотеза.

    Кстати, она объясняет, почему баг не проявлялся два года - его просто не было, buffer overrun случился после добавления какой-то новой подпрограммы.
     
  34. NS
    Оффлайн

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

    Репутация:
    3
    Понятно - виноват язык, виновата память, и виноваты дуратские переполнения.
    А разработчики тут не при чем :)
    А если и виноваты разработчики - то Ботвинник тут уж совсем не при чем - таких разработчиков (и такой язык, и такую модель распределения памяти, и такие нелепые компы, и такую совесть (это к подтасовке фактов)) ему уж подсунули...

    С такой бедой - двадцати лет на играющую программу конечно недостаточно...

    Я видел очень много таких горе-руководителей проектов. :)
    И у всех одна беда - не та техника, дуратский язык и отсутствие нормальных разработчиков (ну еще бывают не те сроки - которые причем сам и подписывал, не те деньги - на которые зачем-то согласился и т.д.)
     
  35. WildCat
    Оффлайн

    WildCat Коршунов Игорь Команда форума

    Репутация:
    0
    Ну че Вы так на Ботвинника напали? У меня тоже ошибка в генераторе ходов шашечной программы обнаружилась через несколько лет.
    Бывает...
     
Статус темы:
Закрыта.