7-men EGTB Bounty - Приз за создание 7-фигурного генератора

Тема в разделе "Машинное отделение", создана пользователем Kirr, 18 апр 2011.

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

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

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    После того, как программист посидит целый месяц в глубокой отладке, программируя настолько запутанные решения ("выбрасывание" ненужных позиций из базы и т.п. все мудреное что здесь обсуждали), и мозг перестанет хорошо это воспринимать - это хобби быстро перестанет быть хобби.
  3. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    32-битного генератора вообще нету. Это и невозможно сделать - там может использоваться более 3 ГБ оперативной памяти, а 32-битное приложение не может столько адресовать. Указатели 32-битные не годятся :)
    А вообще, давно пора всем перейти на 64-битные операционные системы. 32-битные - давно устарели.

    Насколько сжимает? Я и так могу сказать - в среднем, сжимает в 4 раза (т.е. сжатые базы в 4 раза меньше чем разжатые). Но некоторые, типа 6_KNN-KNN может сжать и в сотни раз, если там много одинаковых значений (в данном случае - нулей, т.е. ничьих).
  4. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Самое дешевое - создать группу людей, заинтересованных в этом, и у кого есть хорошие компьютеры. И считать 7-фигурные базы параллельно, на многих компьютерах. Генератором, который УЖЕ ЕСТЬ. Если группа будет большая, то процесс будет достаточно быстрым.

    Верно, только обращаться к таким базам программа будет уже не в 2 раза медленнее, а в 30 раз медленнее. Вот программа, в процессе анализа, в глубине перебора "дотягивается" до позиции с 7 фигурами. Она 1 раз обращается к винчестеру, и читает оценку этой позиции. Все, глубже перебирать не нужно! Это усиливает игру программы в эндшпиле, даже когда на доске 10-11 фигур.

    Если храним позиции только с ходом одной стороны, тогда попав в позицию, с ходом другой стороны, мы тоже можем узнать ее оценку. Но - не обратившись 1 раз к винчестеру. А сделав все ходы (в среднем 30 ходов), и обратившись в 30 разных блоков на винчестере - после всех ходов. Тогда да, выбираем лучший ход за белых (или черных) - и получаем оценку исходной позиции.

    Да, базы стали в 2 раза меньше - т.к. мы храним только позиции с ходом одной стороны. Но обращение к ним стало в 30 раз медленнее. (программа тупо будет тормозить, и меньше переберет других позиций за то же время) Кожа выделки стоит?
  5. TopicStarter Overlay

    Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Я выше привёл ссылку на статью Налимова, где всё очень доступно разжёвано. Кроме того, всегда доступен код Налимова, который можно изучать (неблагодарное, впрочем, занятие). Собственно, сама идея использовалась уже Кеном Томпсоном в 1986 году. Скорее всего и раньше. Налимов лишь слегка улучшил компактность индекса (уменьшил дырявость). Далее, среди нас с вами здесь присутствует Skipper_NORTON - большой специалист по индексу Налимова, так как именно этот индекс он использует в своём генераторе. Наверняка он тоже способен что-то объяснить. (Я индекс Налимова не использую).

    Вкратце, идея Томпсона (улучшенная позже другими, в том числе Налимовым): Если зафиксировать порядок позиций, то сами позиции хранить не обязательно, и можно хранить только значение метрики. Для любой позиции при этом можно вычислить её индекс по некой формуле. Сложность формулы уравновешивается количество дыр (нелегальных позиций, отражений, дублей). Например, MS выше в этой ветке предложил "тупой" индекс, где индексируются все положения каждой фигуры (от 0 до 63). Таким образом, для 4-фигурки (одной) храним 64^4 значений метрики. Сами позиции при этом не хранятся. Индекс позиции вычисляется тривиально, но зато храним много лишнего. Как проще объяснить, даже и не знаю.

    Правильно, поэтому я и экспериментирую с собственным индексом, где достигается совсем другая компактность.
  6. TopicStarter Overlay

    Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Здесь нужно уточнять, что речь о таблицах с индексом Налимова и с метрикой DTM. Как мы уже обсуждали, это не единственный практичный индекс и не единственная полезная метрика. DTC или DTZ таблицы быстрее строятся и занимают меньше места. WDL - на порядок-другой. Так что выжимать из вашего генератра 5% действительно ни к чему, лучше потратить ресурсы на создание таблиц в более практичных метриках.
  7. TopicStarter Overlay

    Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Я пока что пришёл к такому же выводу. :)

    А нужно не забывать про велосипед и прочие методы расслабления мозга. :D
  8. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Kirr, метрика DTM и есть самая практичная. Программа играет математически сильнее всего. Потому мой генератор, и генератор Налимова строит базы именно в DTM.

    Может быть ситуация, когда программа может через 45 ходов ПОСТАВИТЬ МАТ, красиво и изящно сломав все защиты противника. В то же время, по другой ветке, можно через 44 бессмысленных на взгляд, хода, добиться продвижения пешки, или какого-нибудь размена, и после этого - еще 100 ходов играть до мата.

    Программа, играя по метрике DTZ - будет играть ПЛОХО, гоняясь за этим продвижением пешки через 44 хода - т.к. для нее 44 - меньше чем 45. Т.е. с точки зрения человека - даже неразумно.

    Потому что сама идея - приравнивать МАТ, и продвижение пешки/размен - это глупость, это неразумно! Это совсем разные понятия.

    С точки зрения человека, игра по метрике DTM будет самой изящной, и математически самой сильной. Красивее всего будут ломаться все преграды, загоняться в угол фигуры и т.д. Я же играл и я ВИЖУ это. В большинстве случаев, игра по линии, кратчайшей до мата - быстрее всего решает и все промежуточные проблемы - выгодный размен и т.д. Если вас так беспокоит правило 50 ходов, то лучше создать DTM-50, но DTZ, DTC - точно худшее решение. Да и играя наилучшим образом, по DTM, если мы попадаем на правило 50 ходов, то скорее всего, в 99,9999% случаев - мы попали бы на правило 50 ходов и играя по DTZ. Так что пользы от DTZ я вообще не вижу.

    Нужные метрики - только DTM, DTM-50, WDL. Почему вы не хотите понять, о чем я говорю?


    Чем DTM? Доказательства в студию! После всех оптимизаций над DTM, базы в метриках DTC и DTZ - будут строиться примерно с такой же скоростью. Ну если даже и быстрее скажем, на 30%, то это не перевешивает факт большей практической ценности от DTM. А почему вы решили что WDL - на порядок-другой будут быстрее строиться? Опишите подробно как вы хотите их строить с нуля, и почему они у вас будут быстрее строиться на порядок?
  9. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.231
    Симпатии:
    2.534
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    Короче, по совокупности - WDL рулит :)
  10. TopicStarter Overlay

    Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Вас послушать, можно подумать что вы и сами заработали 100 тысяч долларов, делая свой генератор. А если не заработали, то к чему эти все рассуждения? Вы считаете что вы один такой на целом свете, способный что-то делать ночами ради идеи?

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

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

    У многих не очень интересная основная работа, многие программируют "для души". Не многие, конечно, замахнутся на генератор 7-фигурки, но и такие сумасшедшие находятся.

    Стоимость разработки софта можно обсуждать, когде есть две стороны (заказчик и разработчик). В нашем случае заказчик либо отсутствует совсем, либо не готов платить (хочет всё нахаляву). Поэтому разработка ничего не стоит (так как никому не нужна). Но это ещё не означает автоматически, что никто этим не будет заниматься.
  11. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Моя индексация, хотя и похожа на индексацию Налимова, но все же, отличается. Формат баз другой. Хотя метрика DTM та же, и все количества позиций по всем множествам - полностью совпадают.


    На самом деле, многим нужна, интересно играть против такой программы и анализировать позиции.
    Но эти многие - не настолько богаты, чтобы их построить. Заинтересовать надо гроссмейстеров-миллионеров, типа Крамника, или какие нибудь компании, владеющие достаточными средствами.
  12. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Или как я уже писал, создать группу людей, у которых есть хорошие компьютеры, и распараллелить процесс на много компьютеров. Вы писали, что могут быть хардварные ошибки (ошибки железа). Если каждый тип базы, с каким-то соотношением фигур, сгенерировать 2 раза, и базы совпадут (контрольные суммы) - то можно быть уверенным, что харварных ошибок не было. Потому что вероятность того что ошибка возникла на одном и том же месте, в определенное мгновение, на обоих компьютерах - равна нулю. А вообще, эти ошибки железа возникают очень редко, у меня например, за ГОД работы - железо дало сбой только 2 раза - один раз что-то неправильно из памяти прочиталось, второй раз - был прочитан бэд-блок с винчестера, в процессе генерации.

    Впрочем, эти ошибки можно отследить в System Events. Если там нет сообщений, то ошибок железа не было.
  13. просроченый_кмс Старожил

    • Участник
    • Старожил
    Рег.:
    15.02.2010
    Сообщения:
    984
    Симпатии:
    81
    Репутация:
    0
    Оффлайн
    Я так понимаю надо много бабла куча железа, всё посчитать, создать сайт к которому бы обращались пользователи и программы со всего мира и брать деньги за рекламу с сайта и например иногда реклама может появляться в оболочках, как вам идея. Т.к. ни у кого этого не будет окупится многократно пока другие то же не сделали, кто первый тот и будет в шоколаде.
    з.ы. Мне 10000 баксов за идею)
  14. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Да, думаю, таких как я - вы больше не найдете :) У меня просто появился нездоровый интерес к этим исследованиям, да и еще повезло - времени свободного тогда было много. Сейчас уже нету. Будет работодатель и зарплата - могу сделать вам генераторы в любых форматах, и вообще все, что пожелаете.
  15. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    просроченый_кмс
    Надо найти спонсоров. :) Kirr вроде, работал с Налимовым, я думаю у него есть много связей.
    Так что генератор есть - считайте!
    Если захотите посчитать базы, то понятное дело, я и исходники некоторые открою. Доступ к базам пока только с помощью dll, а можно будет под любые Оси переписать.
  16. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Kirr, как хорошо жмутся базы WDL ? Во сколько раз несжатые больше по размеру - сжатых?
    Имеется в виду - В СРЕДНЕМ. Например, в формате DTM, как оказалось, базы в среднем жмутся в 4-5 раз.
  17. NS Нефёдов Сергей

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

    • Команда форума
    Рег.:
    10.02.2006
    Сообщения:
    6.382
    Симпатии:
    2.458
    Репутация:
    163
    Оффлайн
    Skipper_NORTON, Крамник за 200 тысяч может захомутать бригаду сильных гроссов на многомесячную работу.
    Сопоставьте эффект от куцего подмножества эндшпилей и длительной работы коллектива высококвалифицированных шахматистов.
    К тому же Крамник - не Б. Гейтс, за 200 тысяч ему самому - пахать и пахать.
    Что касается фирмы, так она ж ради прибыли может вкладываться, а где она, прибыль? На сегодняшний день даже модель использования таких таблиц не отработана. Если даже модель будет создана и заработает, за плату пользоваться таблицами будут, в лучшем случае, несколько тысяч человек. По десятке в год за доступ - замучишься отбивать бабки.

    Собственно генератор, с моей точки зрения, не обладает коммерческой ценностью. Ценность представляет Ваша голова и умение решать подобные задачи: для фирм, у которых могут быть такого масштаба задачи. Коммерческим мог быть бы и продукт, если это - новое слово в реализации виртуальной памяти - вещи совершенно перпендикулярной прикладной области.
  19. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Игра по таким базам намного сильнее, чем игра бригады любых сильных гроссов. Вообще, игра по базам уже теоретически самая сильная, т.е. сильнее сыграть невозможно в принципе. Игра даже "божественная", можно выигрывать из позиций, которых человеческий мозг в принципе неспособен выиграть. Также, после их построения, можно будет мгновенно оценить ЛЮБУЮ 7-фигурную позицию, и не нужны будут месяцы анализа. Также, базы будут ценны для теории. Возможно, изучая их, можно будет улучшить оценочную функцию для движков. А для меня главное - именно ИНТЕРЕС, и возможность поиграть против самого сильного теоретического противника.

    Ну если 10 тысяч человек в мире наберется (а шахматистов намного больше), готовых заплатить 20 долларов (смешная сумма), за пользование ТАКИМИ базами, то уже ваши 200 тысяч долларов, потраченные на их создание - "отбиваются". К тому же, и производители шахматных движков захотят иметь возможность обращаться к таким базам, так же как когда то стали использовать базы Налимова, они за эту возможность, тоже могут заплатить. А пока нету самих баз, нету и разговоров. Рано или поздно компьютерные мощности станут настолько дешевле (это общий закон), что эти 7-фигурные базы построю я сам, без чьей-то помощи и спонсоров. А сейчас есть возможность кому-то - первому в мире их построить, и войти в историю.
  20. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Коммерческой ценностью обладают сами базы, после построения их генератором.
    И не только коммерческой.
  21. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.231
    Симпатии:
    2.534
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    А можно какой-нибудь конкретный пример такой позиции?
  22. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Возьми любую позицию с ладьей и ферзем против короля.
    Отдача ферзя - переход в один ход в другой класс, и отдача ферзя в метрике DTZ - сильнейший ход.
    Например Белые Kh8, Rh7, Qc7 Черные Ka8. Ход белых.
  23. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    У меня в шашках играет на безранговых базах, исрпользуя ОФ, и минимизирует путь до взятия/хода простой.
    То есть матовая оценка - это ранг в метрике DTZ. В итоге конечно выигранные позиции по ЭБ всегда выигрывает, но способ выигрыша вызывает шок - отдает весь комплект, пока не останется минимальный для возможности выигрыша материальный перевес.
  24. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.231
    Симпатии:
    2.534
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    Я правильно понял, что в метрике DTZ переход в младший класс (Qb8+) старше мата (Qa7#) в своём?
    То есть информация о мате в таблице не сохраняется. А как тогда мат оставшейся ладьёй ставить будем?
    Или в классе KRK про мат всё-таки знаем?
  25. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.231
    Симпатии:
    2.534
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    А, всё, понял. Матовые позиции KRK - это ещё один класс, и он младше, чем просто KRK.
  26. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Не заметил что есть мат в один ход :)
    тогда лучше
    Белые Kg7, Rh7, Qb1 Черные Ka6. Ход белых.
  27. NS Нефёдов Сергей

    • Заслуженный
    • Ветеран
    Рег.:
    02.05.2006
    Сообщения:
    6.811
    Симпатии:
    96
    Репутация:
    3
    Адрес:
    Санкт-Петербург
    Оффлайн
    Вот лучше пример.
    Белые Qb1 Kh8 pg5, черные Ka8.
    Если проводим пешку - то для перехода в другой класс (с выигранной позицией) пять полуходов, если отдаем ферзя, то два.
    И программа отдаст ферзя.
  28. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Да, по метрике DTZ и DTC часто играет неразумным образом.
    Да это и очевидно! Как можно считать тупой размен или продвижение пешки, усложняющие дальнейший выигрыш - важнее чем МАТ! Пусть даже мат на 1 ход будет дальше. А потом она мат может поставить только через 100 ходов после такого тупого пути к ближайшему размену. Примеров можно привести много, но у меня нету баз в метрике DTZ, потому объясняю на словах, что такое ВОЗМОЖНО, и будет часто встречаться. В результате программа по таким базам играет иногда ТУПО. И это раздражает. Многие на это жаловались.

    Да, в некоторых случаях, мы можем не уложиться в правило 50 ходов, там где теоретически это возможно. Но таких позиций - как раз очень мало! В 99,9% позиций, там где мы не можем выиграть из-за правила 50 ходов, играя по метрике DTM, мы не сможем выиграть и по метрике DTZ, т.е. тоже не уложимся в 50 ходов. Потому это и несущественно. DTM-50 построить чрезвычайно трудно, да и это правило могут и отменить. Оно вводилось для случаев, если игрок не способен выиграть, и только зря мучает противника. Но как можно фиксировать ничью, если игрок (или в данном случае, программа) - способны выиграть? Не зря же, когда-то для некоторых эндшпилей, типа KNN-KP, это правило было изменено на 75 ходов.

    Я бы ввел такое правило - если игрок чувствует, что способен выиграть, но ему нужно более 50 ходов, дать ему по правилам такую возможность - в момент возникновения такой позиции, запросить возможность играть более 50 ходов, скажем 100 или 150. Но если он берет такую возможность, то в случае не-выигрыша - засчитывать ему ПОРАЖЕНИЕ, несмотря на то, что у него преимущество, и позиция для него уж никак не проигрышная. А программа - она сразу показывает, обратившись к базам, что она ТОЧНО выиграет за какое то количество ходов, скажем, 100, и тут уж сомнений быть не может.

    Именно метрика DTM обеспечивает самую сильную теоретическую игру. Чаще всего играя по ней, программа тоже добивается почти максимально быстро - выгодных разменов. Причем всегда игра ведет к максимальному ухудшению позиции соперника, загоняет в угол, получает позиционные преимущества и т.д. И важны для теории, для изучения эндшпилей, написания ОФ и т.д. именно базы в формате DTM. Потому и Налимов и я - разработали генератор в метрике DTM, пусть даже базы будут занимать места на 30% больше, чем в DTZ. Согласно теории игр, если по минимаксу рассчитывается оценка, то расстояние до ВЫИГРЫША именно и должно быть оценкой, и показателем трудности позиции. Т.е. это общий подход. Многие это понимают, о чем я пишу, но некоторые упорно не хотят это понять, в чем недостатки DTZ и DTC. Потому и спорить я не хочу, уже все эти споры были в других темах.
  29. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Если когда-нибудь появятся супергроссмейстеры, которые будут выигрывать партии белыми - против любого соперника, то стартовая позиция шахмат выигрывается, думаю менее чем в 150 ходов. Если когда-нибудь появятся 32-фигурные базы и в DTM окажется, что белые выигрывают за большее количество ходов, например за 500, то людей-супергроссмейстеров, выигрывающих всегда белыми, никогда не будет. Человеческий мозг никогда не будет способен решить такую головоломку - "осилить" позицию, имеющею общую трудность 500 (т.е. 500 ходов до выигрыша). Против самого сильного теоретического соперника - программы, играющей по базам.

    Неважно даже материальное соотношение. Пусть у вас будет даже лишняя ладья - если до выигрыша (мата) 150 ходов, вы не выиграете. Эта оценка - и есть самый точный показатель трудности. Если там 150 ходов до выигрыша несмотря на то, что у вас лишняя ладья, значит у соперника есть другие преимущества, позиционные. И играя с программой по базам, вы натолкнетесь на сильное сопротивление, и в результате все равно не выиграете. Я пока, играя с программой по базам, смог выиграть позиции, в которых до мата максимум ~ 75 ходов. (программа против меня играла по базам, т.е. теоретически сильнее всего. я же, если бы играл тоже теоретически самым точным образом, за 75 ходов и выиграл бы, но т.к. я не играю самым лучшим образом - у меня уходило на такие позиции - до 200 реальных ходов. Понятное дело, "перехаживать" сам себе не позволял - если сделал неоптимальный ход - приходилось "расхлебываться") :)

    И еще. Тренировка, посредством игры с программой по базам - я считаю, самая лучшая. Лучше всего можно усилить игру человека, и понимание им эндшпилей! Чутье, на уровне подсознания и т.д. Потому что такая программа - ошибок не прощает. Сразу же видишь свои косяки, и мозг тренируется. А если играть с противником, который прощает ошибки, и сам ошибается - мозг так хорошо не тренируется - т.к. не видит и не чувствует своих ошибок. Ошибся где-то, но все равно потом выиграл, и это воспринимается на подсознании как - "сыграл правильно". Никто не знает как функционирует мозг, и почему люди могут играть на гроссмейстерском уровне, не перебирая те миллиарды позиций, как это делают программы. Что при этом происходит на подсознательном уровне? Может там, идет выборочный расчет позиций, как и программно, только мы этого не чувствуем. К тому же, я получаю и эстетическое удовольствие, имея преимущество, и выигранную позицию, скажем, за 75 ходов, пройдя через все трудности, и натолкнувшись на такое сильное сопротивление, все равно выиграть ее. Потому меня когда-то и заинтересовало это, и я написал генератор. Для меня это - "генератор головоломок", так сказать. :) До этого, любил решать этюды.
  30. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Что касается метрики WDL. Программа будет видеть только множество ходов, ведущих к выигрышу, но не будет знать, какой ход ЛУЧШИЙ. Каждый раз она будет то приближаться к выигрышу, то отдаляться от него, сделав неоптимальный ход. В результате она так может вечно играть и никогда не выиграть. Поэтому WDL - тоже не годится, практическая ценность этой метрики малая, несмотря на то, что базы будут действительно занимать в 10 раз меньший объем. DTM - самое лучшее решение! И самый оптимальный генератор для нее уже написан.
  31. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Ужас! Зачем кто-то написал эту тупость - DTZ в шашках, непонятно. (к тому же, там же нету правила 50 ходов) Неужели он не понимал, какая игра будет у программы? Принципы написания ретроанализатора в шашках, такие же, как и в шахматах, только там придется включать в качестве младших требуемых баз - все базы с меньшим количеством шашек, ведь там возможны взятия сразу 2 и более шашек, за один ход. Также, для любой подобной игры можно написать свой ретроанализатор, считая расстояние до конечной цели (выигрыша), оценкой состояний игры.
  32. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.231
    Симпатии:
    2.534
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    Я думаю, что в случае 150 ходов таких гроссов тоже не будет.
    Пусть у нас дерево ветвится в среднем на 36 ходов на каждом уровне.
    36^150 или 36^500 - невелика разница :)
  33. WinPooh В.М.

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.231
    Симпатии:
    2.534
    Репутация:
    90
    Адрес:
    Москва
    Оффлайн
    Очень интересная точка зрения. Это основано на личном опыте?
    И как, реальные улучшения наблюдаете? Ферзём против ладьи всегда выиграете?
  34. Skipper_NORTON Учаcтник

    • Участник
    Рег.:
    14.12.2007
    Сообщения:
    512
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Если до мата скажем, 36 ходов, то множество из них часто интуитивно легко найти. Более простое решение. Хотя 36^36 тоже много. В любом случае мы не перебираем 36^36. Чем дальше до мата, тем больше всяких факторов, и трудностей, в результате интуиция уже отказывает. 150 - конечно много, но эта задача будет намного легче чем 500.

    В том то и дело, что выигрывать стало легче, хотя сам не понимаю, почему... Мозг чувствует правильные ходы уже на подсознательном уровне.

    Ладно, я сейчас покруче пример приведу... :) (чем DTM лучше чем DTZ/DTC)



    Ход белых.

    Если будет построена 7-фигурная база с такими фигурами, в метрике DTM, то белые быстро, красиво и изящно выиграют, потратив на это немного ходов.

    А если будет база в DTC, то программа сыграет
    1.Qa1.
    Ведь это - переход - в выигранный эндшпиль, так? Для программы нет разницы перейти в младший эндшпиль, или мат поставить быстрее... (Все смешалось в кучу: кони, люди... © :) )

    А ведь здесь - вынужденный переход, за минимальное количество ходов - 1. Т.е. для программы по DTC, это "лучший" ход. Жертва ферзя. Черные бьют -
    1...K:a1.

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



    В этой позиции снова ход белых, белые могут выиграть за 127 ходов, (до мата, а по метрике DTC будет еще больше) :)

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

    Надеюсь, понятно, какое УБОЖЕСТВО - базы в форматах DTC и DTZ.

    Только DTM нужно строить!
    И шахматисты будут считать, что шахматные базы - это самое лучшее.
  35. WildCat Коршунов Игорь

    • Команда форума
    Рег.:
    04.05.2006
    Сообщения:
    3.599
    Симпатии:
    3
    Репутация:
    0
    Адрес:
    Гомель
    Оффлайн
    В шашках в основном используется WDL, как наиболее практичный. Несжатая 6-фигурка целиком помещается в оперативку (~700 Мб).

    При использовании 6-фигурных баз программа всегда добивается прописанного в базе результата. Для этого необходимо добавить всего пару строк в алгоритм поиска. И в самых сложных позициях программа очень быстро видит путь к переходу в младший класс окончаний.

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

    Там есть анологичные правила. Но там нет проблемы с присуждением ничьей в выиграных позициях. :|

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