Как обуздать компьютер?

Тема в разделе "Кухня", создана пользователем LB, 22 фев 2008.

  1. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Заведите ветку в машинном отделении, я раcпишу общепринятую точку зрения на способы отбора ходов-кандидатов в шахматных программах, но если в нескольких тезисах, то ходами-кандидатами являются -
    1. Ходы содержащие в себе какую-либо угрозу. Тактическую (выигрыш материала, мат) либо позиционную (перевод фигуры на лучшее поле, лучшая расстановка, выгодный размен). За это отвечает эвристика Null-Move.
    2. Если позиция нам знакома, то ход который мы считали лучшим раньше (Хеш-Таблица, миттельшпильный самообуч)
    3. Выигрыш материала - ходы имеющую потенциальную возможность выигрыша материала рассматриваются в первую очередь (SEE), если оказывается что они не содержат в себе угрозы, то будут безжалостно порезаны (см. п.1)
    4. В каждой позиции на разные ходы соперника мы пытаемся провести план/планы который оказался лучшим в ответ на другой, уже рассмотренный ход. (киллеры)
    5. Шах - если мы даем шах содержащий в себе угрозу (см. п.1), то ход будет рассмотрен дальше, тоже самое с угрозой мата - если есть проблемы с её устранением (см. п.1), то угроза будет рассмотрена дальше.
    6. То-же самое с движением проходной пешки.
    7. Разрушение пешечного прикрытия короля и т.д. - всё так-же с оглядкой на пункт 1.
    8. Сортировка по истории - если ход был хорошим в похожей позиции, то он скорей всего будет хорошим и в текущей. Позволяет находить переводы фигур и т.д., вместе с киллерами и Null-Move позволяет вести программам плановую игру.

    На самом деле эвристик отвечающих за выбор ходов-кандидатов в сильных шахматных программах больше.
    Это основные.
    В целом ходы-кандидаты выбираются при помощи сортировок, сокращений/отсечений и продлений, это позволяет программам вести селективный перебор, а не рассматривать всё подряд.
  2. NS Нефёдов Сергей

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

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Это шутка? В каком году был сделан такой вывод Пушкиным В.Н.? в 1967-ом?
    Это было 40 лет назад. Тогда мало того что программы играли совсем иначе, тогда альфа-бета была вновинку. Для брутфорс программ, использующих минимакс, в 1967-ом году все ходы были равноценны, не было ходов кандидатов.
  4. NS Нефёдов Сергей

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

    Похоже вы заблуждаетесь в главном, считаете что перебор человека значительно селективней перебора программ, но это не так.

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

    Сейчас бренчинг фактор у сильнейших программ меньше двух. То есть для увеличения глубины основного варинта на один полуход (без учета продлений) требуется менее чем в два раза больше времени. Если учитывать продления в PV, то этот коэффициент равен 1.5!
    О чем это говорит? Да о том, что программы в среднем смотрят 1-2 хода в каждой позиции, а остальное безбожно режут.
    Так и кто после этого более выборочно подходит к рассмотрению ходов-кандидатов? Человек или программа?
  5. Vego Учаcтник

    • Участник
    Рег.:
    11.02.2006
    Сообщения:
    3.978
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Народы, какой сейчас процессор предпочтительнее для шахматных программ - AMD или Intel?
  6. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Core2Duo, Intel.
  7. JS Учаcтник

    • Участник
    Рег.:
    01.12.2007
    Сообщения:
    23
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Если берешь 2-х или 4-х ядерный - то интел 2 duo или квад соответственно. Ну, а если хватает средств на покупку дорогого сервака - ядер 16 или больше - то там не так принципиально Xeon`ы или Opteron`ы
  8. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Только в самых важных узлах, на PV, программа всё равно смотрит все 30-40 возможных продолжений. А человек зачастую отсекает что-то уже на ply=0 (и из-за этого проигрывает).
  9. NS Нефёдов Сергей

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

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

    Правда до зевков мата в один ход сильнейшие программы не опустятся никогда :)
  10. TopicStarter Overlay

    LB Учаcтник

    • Участник
    Рег.:
    22.04.2007
    Сообщения:
    496
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Петербург
    Оффлайн
    Спасибо. Думаю, лучше на "Кухне" - для ликбеза это более подходящее место. О том, как все
    изменилось в нашем деле со времен В. Пушкина я знаю. (Приходилось и в машинных кодах писать и 5-ти кг. диски вместимостью в 200 мб таскать). Но я то толкую о принциальном различии человеческих и машинных методов, которые существенно не изменились.

    Базы урезать, конечно, не резон. Наоборот, неплохо бы еще какие-нибудь миттельшпильные добавить. И время тоже не стоить сокращать, оно может понадобиться для операций, не связанных непосредственно с перебором, для ассоциативного поиска, например.
    А вот лимитировать суммарное кол-во ходов в вариантах можно было бы попробовать. Это стимулировало бы поиск новых методов, эвристик и т. п.
  11. NS Нефёдов Сергей

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

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

    LB Учаcтник

    • Участник
    Рег.:
    22.04.2007
    Сообщения:
    496
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Петербург
    Оффлайн
    Если позволите, завтра продолжу. Но главное различие в том, что человек вовсе не по алгоритмам ищет. Он часто и фигуры не все видит. У него отбор начинается на уровне восприятия.
    Блюменфельда не читали? Очень советую.
  14. NS Нефёдов Сергей

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

    Чтоб сравнивать нужно знать как работают шахматные программы, но большинcтво, к сожалению, сравнивает даже примерно не представляя себе принципы работы шахматных программ :(

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

    Сам термин непонятен - что значит видеть всю доску? Чтоб, например, посчитать цену разменов на поле по SEE, программе не нужна вся доска, она смотрит только траектории от целевого поля.
  15. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    Я немного удивлен, что движки начинают зевать тактику. Даже им лишней счетной мощности не занимать, но все же показалось, что могли бы посчитать абсолютно все в пределах некоторого (небольшого) радиуса дабы не зевнуть форсированных вариантов :rolleyes:
  16. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Какой-то радиус есть, но всё-равно выгодней считать хорошие ходы (выгодней чем тактику), и поэтому в программах всё больше сокращений и отсечений. В итоге тактическая сила падает. Если сравнить Фриц10 и Фриц11 на тактических тестах, то сравнение будет явно в пользу 10-го, но при этом Фриц11 значительно сильнее в практической партии.
    Форсаж программа не зевнет, но только если он связан с угрозами и тактическими ходами. А если жертва с последующим хитрым, антипозиционным переводом фигуры (тихими ходами) - то такое программе увидеть достаточно тяжело. Всё будет резаться по Null-Move и LMR, а в конце еще порежется отсечениями последних полуходов (Футилити и т.д.)
  17. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    • Старожил
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Но человек такое тоже зевает :)
    У программы может быть сокращение в 3 и более раз по сравнению с Depth.
    То есть при общей глубине в 18 полуходов отдельные варианты могут считаться на 6 полуходов, и программа не увидит мат в четыре хода. То есть программа тоже может "зевать".
  18. Vego Учаcтник

    • Участник
    Рег.:
    11.02.2006
    Сообщения:
    3.978
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Спасибо. А какие движки сейчас заточены под 4-ядерные процессоры?
  19. immortal223 Вячеслав

    • Участник
    Рег.:
    22.02.2006
    Сообщения:
    2.412
    Симпатии:
    15
    Репутация:
    0
    Оффлайн
    Вот что у меня установлено - так сказать боевой набор адвансера:

    Deep Shredder 11 x64
    Deep Sjeng 2.7
    HIARCS 11.1 MP UCI
    Loop 13.6 x64
    Naum 3 x64
    Rybka 2.3.2a mp x64
    Rybka WinFinder 2.2 mp x64
    Toga CMLX 1.4 beta5d
    Zappa Mexico II x64


    а также:

    Deep Junior 10.1
    Deep Fritz 10
    (.1)
    Fritz 11

    Все кроме Fritz 11, в принципе, поддерживают 4-ядерность.
  20. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    За счет чего компы меньше зевают на самом деле, если рано отсекают массу вариантов? :rolleyes: Правда, машины точны и надежны - если увидели зевок, не забудут не повиноваться :p . Но как-то с трудом верится, что могут выбрать лучший ход только за счет запрограммированных эвристик - компам счет нужнее чем нам, но зато они намного лучшие умельцы в счете чем мы в наших глубокомысленных эвристиках (стратегиях). Вот и выходит, что за счет счета они досчитываются до и даже пересчитывают наши стратегии. Дело по-видимому в том, что для комбинаторной игры как шахматы счет есть универсальный и точный метод, в то время как высокоуровневые стартегии и эвристики приблизительны, не безошибочны и далеко не всегда применимы ввиду хаотичности большинства позиций, где только счет работатет :( .
  21. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    Мдаа, с трудом верится, что компы так похорошели в оценке позиции "на глазок". Скорее всего тут имеем дело с добротной, неплохой оценкой + очень быстрый, массовый и потому хватает времени на широкий и глубокий счет. А что за нами, то бишь гроссмейстерами? :cool: Утонченные стратегиеские оценки, которые обнаруживаются и имеют место далеко не всегда + заурядные счетные способности... Дело в мешке, как говорится :(
  22. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    А зачем удивляться бессмысленности некоторой формальной игры, всех таких игр? В какой области жизни нельзя обойтись без (Вавилонского столпотворения) шахматных комбинаций и стратегий? Шахматы прививают некоторые полезные качества ума и характера, но наверное и лишают нас других таких же. По всей вероятности шахматные алгоритмы довольно специфичны и нельзя применять для решения других громоздких вычислительных задач более неотложного практического значения. Уж лучше идти прямо на решение таких задач, чем обходным путем через ... шахматы :rolleyes: . Да, шахматные позиции и комбинации красивы, конструкции на доске восхищают своими замысловатостью и минимальностью (единственостью), но и своими уникальностью, случайностью, удаленностью и отрешенностью от мира сего. Почему на Западе не встретишь многих и/или хороших игроков? А не потому ли, что не выгодно, может быть прикинули, что игра (в шахматы) не стоит свеч? :(
  23. miptus Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    11.02.2006
    Сообщения:
    1.159
    Симпатии:
    78
    Репутация:
    5
    Оффлайн
    Так можно все что угодно объявить бессмысленным. Подставьте в вашу тираду футбол, искусство, синхрофазотрон - все бессмысленно.
  24. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    Нет, не все. Футбол, как и остальные по-настоящему спортивные (атлетические) игры удовлетворяют исконные потребность и способность к физической активности и борьбе. Полезность физической активности для человека как животного несомненна, это жизненная необходимость. Искусство отвечает субъективным эмоциональным аспирациям души, а синхрофазотрон (наука и технология) - тоже первостепенная жизненная и эконимическая необходимость. Тот простой факт, что корень квадратный из числа 2 не является обыкновенной дробью, неизмеримо глубже и значительнее, чем все ~10^45 позиции нa 8 x 8 шахматной доске :p . В некотором неопределенном, но весьма существенном смысле так называемые интелектуальные игры не больше чем ... игры... :)
  25. miptus Заслуженный

    • Заслуженный
    • Участник
    Рег.:
    11.02.2006
    Сообщения:
    1.159
    Симпатии:
    78
    Репутация:
    5
    Оффлайн
    Ваш аргумент был что без шахмат можно прожить. Без футбола тоже можно, очень легко.

    шахматы тоже.


    да, это насущная жизненная и экономическая необходимость - знать период обращения какого-нибудь пульсара в созвездии Крокодила.
  26. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    Одно дело познание окружающего мира, другое - выдумывание сугубо формального (синтаксического) такого. Математика здесь в защиту не годится, ибо суть окружающего мира не что иное как ... математические структуры ;)
  27. TopicStarter Overlay

    LB Учаcтник

    • Участник
    Рег.:
    22.04.2007
    Сообщения:
    496
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Петербург
    Оффлайн
    Про различия человека и машины тома написаны. Если хотите дам несколько ссылок.

    А пока - только несколько существенных моментов. Про избирательность восприятия я уже сказал.
    Банальная истина: “человек смотрит на вещи сквозь призму прошлого опыта” Как бы трафарет накладывает. Восприятие – во многом узнавание, распознавание известного. Поэтому опытный игрок видит не дискретный набор равнозначных фигур и полей, а сразу ухватывает самые существенные моменты, связи. А второстепенные, бывает, и вовсе не замечает. Это не всегда хорошо (зевки, шаблонные ходы…), но в целом экономию дают колоссальную…

    Программа оперирует полями и фигурами как отдельными объектами. А человек чаще - целостными образами, блоками. Например, позиция короткой рокировки: Крg1, Лf1, пешки f2, g2,h2 - 6 полей, 5 фигур. А для опытного игрока это один блок (объект) с зафиксированными связями (свойствами).
    Я думаю, программисту не надо доказывать, насколько такой подход эффективней и экономней. …

    P.S. Создал тему Как устроены шахматные программы. Ликбез.
    Ваш ход...:rolleyes:
  28. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Кто его знает, чем он оперирует в подсознании... Может, как раз чистым счётом вариантов. А при попадании в сознание эта информация уже фильтруется до целостных образов и блоков.
  29. TopicStarter Overlay

    LB Учаcтник

    • Участник
    Рег.:
    22.04.2007
    Сообщения:
    496
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Петербург
    Оффлайн
    Да, Вы не первый, кто "прикинул" и "усомнился". Это и не бесполезно: "чтобы карась не дремал".
    Чтобы не повторяться, даю ссылку на свою статью.
    (Это не так длинно, как "про эстетику" ;).)
    http://www.proint.narod.ru/kniga2/mnenie08.htm

    А miptus, по-моему, прав.
  30. TopicStarter Overlay

    LB Учаcтник

    • Участник
    Рег.:
    22.04.2007
    Сообщения:
    496
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Петербург
    Оффлайн
    В подсознании - и тем более "монолитные" образы, а не абстрактные(!) поля и фигуры.
    Кто-то из ученых признавался: "Я мыслю пятнами, а не словами"
    Подсознание исторически (эволюционно) предшествует сознанию...
    Вот у меня кот любит футбол смотреть по телевизору. :). Но я не думаю, что он игроков различает или каждый пиксель по отдельности видит.

    Элементарная дискретность - скорее на физиологическом уровне. У компьютера тоже есть нечто аналогичное. Пользователь нажимает клавишу - на экране буква выскакивает. Он и не догадывается какие за этим непростые программы и электронные процессы стоят.

    Но даже если Вы и правы - не пора ли и компьютеру сознанием обзавестить? ;)
  31. Хайдук Учаcтник

    • Участник
    Рег.:
    03.12.2007
    Сообщения:
    4.489
    Симпатии:
    9
    Репутация:
    0
    Оффлайн
    LB совершенно прав, что на подсознательном уровне мы автоматически оперируем целостными образами и блоками, накопленными прошлым опытом (игры в шахматах). Если счет и присутствует, то счет прошлых партиях. Дело в том, что программисты в команде с гроссмейстерами уже ухитрились приучать компов к нашим идеям и образам, что не мешает им (компам) быстро и далеко себе считать. В то же время мы ничему новому не научились и ... отстаем :( . Дальнейшее обучение компов человеческим методам будет проходить, по-видимому, по Ленину: шаг вперед - два назад :) , ибо нелегко решить куда расставить образные оценочные акценты в разных позициях. Будет много тестирования, дабы выявить некоторое преимущество некоторых настроек для большинства позиций. Ускорение и массовизация счета этому не помешает, конечно. Как поделился недавно Васик Райлих (автор Рыбки), он не перестает удивляться, что счет все еще дает о себе знать. Наверное пошутил... ;)

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