| Здравствуйте, гость | Правила · Помощь |
Все темы | | | |
| » Теория. Алгоритм распасовки. | | | |
|
» 16/03/2013, 11:43, isabsent
|
||
1) Да я в общем-то в Вашей помощи не нуждаюсь, слава Богу. 2) Это Вы в порядке хамства или в порядке самоутверждения? Или вы не различаете эти понятия и обычно отвечаете исходя из обоих? Зайдите на форум где проблемы какой-нибудь физики твёрдого тела обсуждаются - я посмотрю там на Ваши тенденции. |
||
|
|
||
Клейн (и я с примером К7+Д8) прав в принципе. В том смысле, что среди всего множества "распасовых" ситуаций существует такое их подмножество, где исчисление конкретного расклада (вообще единственно возможного или приводящего к "перенормировке вероятностей возможных раскладов в процессе игры" ) сказывается на результате решающим образом, и игнорирование этого обстоятельства (продолжение игры против всех раскладов) приводит к заведомо неоптимальным решениям. Это одна сторона медали. Другая заключается в том, что (грубая оценка) в половине всех случаев расклад можно без ущерба для результатов не считать вообще, а в оставшейся половине еще в половине случаев таким расчетом можно пренебречь. Но уж в оставшихся 25% всех случаев расчет расклада однозначно необходим, если алгоритм собирается играть против людей. А поскольку изначально никто не знает, какой сейчас выйдет случай, функция "Расклад" любого алгоритма, собирающегося в преферансе противостоять человеку, должна работать ВСЕГДА. И это правильный тезис при любом подходе к алгоритмизации распасов - просто игра такая. Честно говоря, я не очень понимаю, почему вы никак не "врубитесь" в очевидную необходимость "логического довеска" к "простому" перебору. Это же так просто понять... Как это сделать (если поняли)? Метод один: исследовательская работа. Даже в шахматах имеющиеся у каждого игрока стратегические и тактические возможности - конечная величина. А уж преферанс - тем более. У каждого не более 10 карт, пусть выкладывание каждой имеее не более 3 "смыслов", плюс десяток "смыслов" имеет взятка в целом - всего не более 50. Вполне обозримая величина, и это я еще "загнул". Точнее, в каждой конкретной раздаче имеют место быть лишь некоторые из них. Но пусть будет 50 всего - 50 источников (факторов) для получения информации по сужению всего множества раскладов и приведения его к возможному в данной ситуации. Да, довольно нудная работа со всем этим разбираться, но если забить на нее вообще, то любой гений программирования заведомо не получит оптимального результата вообще, и даже обыгрывающего в распасы носителя рейтинга 500+. Как бы ловко (точно и быстро по исполнению) этот гений не реализовал ПРОСТО перебор. Что касается вопроса собственно перебора, то вам бы найти и поговорить с человеком под ником МишаХ. Он тоже математик и программист. Очень умный. )) Более 10 лет назад он сделал программу (а ля Го, скорее всего этот Го - его программа). Да, она "всего" лишь безошибочно находит оптимальную игру на открытых картах. Но он там чего-то такое применил (чего вы, 2 математика, похоже, и обсуждаете сейчас), что ответ получается практически мгновенно. По-моему Миша упоминал, что "фишка" в том, что ему удалось исключить все повторные расчеты, почему всё и происходит очень быстро. Но ошибок не бывает - это точно. Тем не менее - мое мнение, - проблемы перебора, это проблемы перебора, но даже если их решить (ответ выдается не более чем за 10-20-30 секунд - "дальше" нет практического смысла), то без функции "Расклад" такой алгоритм бедет играть недостаточно хорошо, точнее, слабее минимум сотни нынешних практикующих здесь преферансистов. А в таком виде он может удовлетворить только собственное самолюбие, но и близко нельзя будет сказать, что такой алгоритм исполняет распасы оптимально вообще. А именно эта задача, вроде как, и ставится. Метод "по Байкеру" - мне интересно, а как ты понял, в чем этот метод заключается? Концептуально, так сказать. Пару предложений достаточно. И если можно. )) Это сообщение отредактировал Байкер - 16/03/2013, 13:08 |
||
|
» 16/03/2013, 14:25, Клейн
|
||
Pochemuk, да, часто встречаемая ситуация. Должен пояснить почему она часто встречаема. Дело в том, что подобная дилемма (выбора между ходами Х1 и Х2) встаёт перед игроком не только в игре против налапников. Чаще всего это возникает, когда надо понять: "а не дурак ли сидит в этот момент на первой руке?" То есть, этот перец может быть вполне сносным и думающим игроком в принципе; однако, в данный момент может быть озабочен чем-то или быть отвлечённым чем-то (звонок телефона, подход вызванного официанта и т.д., и т.п.). Таким образом, обрисованная вами, Pochemuk, проблема встречается довольно часто за столом. К сожалению, в сети её решить сложно (сложно понять: превратился ли в идиота хороший игрок в данный момент или нет?) - отчего и возникает периодически ругань между игроками. P.S.(14:49) И вот это я всегда относил к пёр/непер - когда некто более-менее вменяемый выступает в качестве идиота соответственно в твою/не_твою пользу. Это сообщение отредактировал Клейн - 16/03/2013, 14:49 |
||
|
|
||
Получается, что алгоритм, даже если его научить корректировать вероятности раскладов у соперников и даже вычислять единственно возможный расклад исходя из логики игры, тем не менее будет проигрывать в том, что касается психологической составляющей преферанса. В данном случае - оценке вероятности налапа и/или полной адекватности игры всех оппонентов. Если же использовать какое из допущений жестко, то это тоже приведет к неоптимальной игре: либо будем выбирать ход Х1 и проигрывать в том случае, если нарвемся на нечестных или невнимательных соперников, либо будем выбирать ход Х2 и это будет неоптимально в противоположном случае ... |
||
|
» 16/03/2013, 15:08, Клейн
|
||||
Делов том, что это не столь существенный фактор, как вам кажется. Во-первых, машинка, в отличии от человека, не будет расстраиваться и париться касательно совершённой оппом глупости и обретённого минуса, что тем самым НЕ уменьшит её КПД, в отличии от человека. Во-вторых, я там написал P.S. - это пёр/непер - нормальное явление. В-третьих, самое главное - таких сдач в общей массе крайне мало и даже человек, умеющий достаточно точно определять эмоционально-интеллектуальное состояние оппонента, обладающий высоким уровнем эмпатии (как, например, я Вывод: эта проблема не стоит того, чтобы быть алгоритмически воплощённой P.S. (15:22) Pochemuk, простите мне употребление слова ЧАСТО в моём первом ответе на ваш пост - надо было написать ПРОБЛЕМА ВСТРЕЧАЕТСЯ ЧАЩЕ ЧЕМ ВЫ ВСТРЕТИТЕ НАЛАПНИКОВ. Употребив слово "часто", я вас ввёл в заблуждение. Каюсь. Это сообщение отредактировал Клейн - 16/03/2013, 15:22 |
||||
|
» 16/03/2013, 15:13, isabsent
|
||
1) Со вчерашнего вечера я согласен с этими тезисами. 2) Конечно! Но она может вестись немного в другом направлении чем то как её выполняете Вы. (Ваш метод может быть и лучше. Он даже есть лучше - уже хотя бы потому, что он существует - даже в виде записей на 20 страницах и точно не требует бесконечной вычислительной мощности). В смысле, что мне хотелось бы избежать разыгрывания вручную 100 раскладов и классификации результатов. Я собираюсь подумать в таком ключе: а) Начало распасов. Первый ход обсчитывается и делается при условии равнораспределения вероятностей всех возможных раскладов на руках оппов (пока для простоты не исключаем "невозможные" расклады). Пусть оптимальную вероятность имеет Т б) Второй ходящий анализирует первый ход, понимая что он рассчитывался первым ходящим исходя из равнораспределения (пока для простоты подразумеваем, что обманных ходов не делается). Результатом анализа должен стать набор всех возможных раскладов на руках первого оппа, каждый из которых, будучи обсчитан в предположении равнораспределения первым оппом, даст ему оптимум при ходе Т с) Третий ходящий по своим картам и уже предположенному набору возможных раскладов на руке первого оппа генерирует все возможные расклады на руке второго оппа. Обсчитывает их и оставляет только те, которые дают второму оппу оптимум при ходе К Ключевым моментом здесь является получение набора раскладов, для которых оптимумом является ход Т 3) Он придумал таблицу перестановок. Это таблица, куда записываются значения количества взяток для поддерева (части полного дерева поиска). Если оно один раз обсчитано и снова попалось при переборе, то не считается снова, а берется из этой таблицы. Точнее её придумали давно, а он просто её закодил. Это драматически сокращает время перебора. Решение задачи на открытых картах занимает сотые доли секунды на ноуте. Ошибки исключены при правильно закодированном алгоритме. 4) Да я ничего конкретно не понял. Понял только, что ты ввел классификацию раскладов (которая включает классификацию рук, которая включает классификацию мастей и наверное еще много чего) и сыграв много партий за все руки против каждого класса поставил лучший ход. Это некоторый вид химии, какой она была до таблицы Менделеева. Огромная куча закономерностей, связей и наблюдений, охватывающая несколько десятков элементов. Но нет одного решающего "удара головой" (как написал этот вундеркинд из Штатов), который Менделеев и сделал. Так что у тебя в руках таблица Менделеева для преферанса скорее всего... Это сообщение отредактировал isabsent - 16/03/2013, 16:58 |
||
|
|
||
Почему это он (алгоритм) будет проигрывать? Почему это оппоненты алгоритма в данном аспекте разбираются заведомо лучше? Такое допущение можно сделать, но его еще надо доказать, а тут сразу ответ (тезис): "будет проигрывать". Ну, а где аргумент? И на всякий случай напомню, что перед соперниками алгоритма стоят те же самые проблемы... Нет, оно понятно, что если алгоритм имеет дело с двумя налапниками, то он находится в проигрышном положении. Но это уже и не преферанс как таковой. И нет вообще смысла рассуждать о преферансном алгоритме в условиях игры не в преферанс. Точнее, оно и так понятно, что преферансный алгоритм проиграет в шашки любому балбесу. Если же речь о "законных" временных коалициях в условиях честной игры "каждый за себя", то это просто появляется еще один аспект алгоритмизации, еще одна функция. У этого аспекта есть свои исходные данные и свои ответы. Да, задача специфичная и несколько необычная (в большинстве других игр ее просто не существует), но не из чего не следует и то, что, скажем, люди решат ее заведомо лучше алгоритма. На мой взгляд и тут всё с точностью до наоборот, ибо если есть формальные исходные данные, и есть процесс их обработки для получения оптимального по какому-то критерию (определяемому однозначно) ответа, то такую работу "железка" всегда сделает лучше человека. Оно конечно, эту железку надо "правильно" собрать, но в теоретическом плане никаких "будет проигрывать". Ибо - почему это? |
||
|
» 16/03/2013, 15:25, Клейн
|
||
ДА, Да, да!! я это и пытался Вам сказать в своём анализе сдачи, когда отсылал несколько раз вас к проверке того или иного короткого розыгрыша в масти. Но у меня не вышло это так хорошо сформулировать, как у вас - сорь. |
||
|
|
||
Потому что я писал: "... будет проигрывать в том, что касается ..." Т.е. в конкретной узкой области, а не в целом. А будет ли он из-за этого проигрывать в целом зависит от значимости этой области и ее весе среди прочих, о чем и писал Клейн. Другое дело, что в случае абсолютного отсутствия учета этой составляющей, игра алгоритма будет в ряде случаев более далека от оптимальной, чем при грамотном учете. Так что не следует передергивать и приписывать мне тезисы, которые я не говорил ... |
||
Все темы | | | |
« Предыдущая тема | Перечень тем | »
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
0 Пользователей:
