Пилю программку по обсчёту китайского покера

Последний пост:26.11.2023
22
1 61 81 82 83 84 103 114
  • Цитата (БиллиУбили @ 4.6.2020)
    Уж больно много пиздежа в видео. Всех победили, всех обыграли...сами не понимаем как, наверно что-то само народилось, мы ещё сами не разобрались, что именно.


    в таких компаниях за слова приходиться отвечать ) это не рашка , ладно пойду работать
    я кстати такие видео без звука смотрю и тебе рекомендую )
    508/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 4.6.2020)
    в таких компаниях за слова приходиться отвечать )

    факт остаётся фактом: раз за разом выдаются "неожиданные" результаты. Не в смысле винрейт 99%, а в смысле "боты стали действовать неожиданно, по непонятной нам тактике".
    Пиздёж? Пиздёж
    ЗЫ Да, пора поработать
    725/741
    Ответить Цитировать
    1
  • БиллиУбили, какой ты завистливый , в конце там результаты чего достигли :
    _pHsYOk3RNCLUKHAjbhATQ.png
    509/882
    Ответить Цитировать
    0
  • Цитата (c00l0ne @ 4.6.2020)
    какой ты завистливый , в конце там результаты чего достигли

    это доказывает мою теорию. Боты играли по тактикам, непонятным человеку. Не только игроку, но и самим разработчикам
    726/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 4.6.2020)
    это доказывает мою теорию. Боты играли по тактикам, непонятным человеку. Не только игроку, но и самим разработчикам


    ну альфа зеро тоже выдала партии интересные ... то что человек их не понимает это не значит что это не правильно)

    посмотри на досуге покайфуй, 5-6 ход фантастика
    510/882
    Ответить Цитировать
    0
  • Ну, полистал я книжечку Artificial Intelligence: A Modern Approach (3rd Edition)
    https://www.amazon.com/Artificial-Intelligence-Modern-Approach-3rd/dp/0136042597
    И сдаётся мне, что c00l0ne черпает советы оттуда )
    В любом случае, поиск МКТС не совсем подходит для Китая, так как существует элемент случайности(чего нету в тех же крестиках-ноликах). Мы должны не только случайно выбирать действие, но ещё и учитывать случайное событие(подьём). Мне это не очень нравится.
    Поэтому...откат до #1522
    Все терминальные состояния в дерево загрузить не удастся(как я полагаю). Поэтому метод монте-карло может(?) работать в упрощённом виде: сколько успеем загрузить за отведённое время, такого уровня оценку ЕВ и получим(желательно, конечно, чтобы они ещё и пересеклись по пути к вершине).
    Поэтому сейчас стоит задача сконструировать даже не совсем дерево, а конструкцию(ближе к графу наверно) со стандартными возможностями: добавление/удаление, обход, backpropagation и прочее
    727/741
    Ответить Цитировать
    1
  • БиллиУбили, Привет. У тебя такой большой этот дневник. Можешь тезисно пояснить, отчего у тебя много минусов так?
    1/3
    Ответить Цитировать
    0
  • Цитата (БиллиУбили @ 10.6.2020)
    В любом случае, поиск МКТС не совсем подходит для Китая, так как существует элемент случайности(чего нету в тех же крестиках-ноликах). Мы должны не только случайно выбирать действие, но ещё и учитывать случайное событие(подьём). Мне это не очень нравится.
    Поэтому...откат до #1522
    Все терминальные состояния в дерево загрузить не удастся(как я полагаю). Поэтому метод монте-карло может(?) работать в упрощённом виде: сколько успеем загрузить за отведённое время, такого уровня оценку ЕВ и получим(желательно, конечно, чтобы они ещё и пересеклись по пути к вершине).




    БиллиУбили, перечитай выше посты и личку ...
    ты опять с лодки спрыгнул ... или как минимум гребешь не в ту сторону ...
    ключевое слово "абстракция "
    511/882
    Ответить Цитировать
    0
  • Цитата (rehabilitator @ 11.6.2020)
    отчего у тебя много минусов так?

    ну, тут эти плюсы/минусы считаются не совсем корректно. А так...минус потому что плюсов мало, а плюсов мало, потому что не заслужил

    Цитата (c00l0ne @ 11.6.2020)
    ты опять с лодки спрыгнул ...

    ну, не знаю...читал задачу коммивояжёра, много думал
    нет
    ...Сначала пишут, что для решения нужно перебрать N! вариантов(N городов, из 1ого города можно отправится в (N-1) городов и т.д.). А потом тут же пишут, что задача решена для 60 городов с погрешностью не более 2% за полиномиальное время
    728/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 11.6.2020)
    ну, тут эти плюсы/минусы считаются не совсем корректно. А так...минус потому что плюсов мало, а плюсов мало, потому что не заслужил


    Наверное я неправильно спросил.

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

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

    Это у меня просто варианты без подробного ознакомления. Но я подумал, что будет заранее интересно узнать причины от тебя самого.
    2/3
    Ответить Цитировать
    1
  • rehabilitator, ты бы обьяснил для начала, почему тебя беспокоят мои минусы?

    Цитата (rehabilitator @ 11.6.2020)
    Минусят те, кто думает, что ты пишешь бота

    нет, я не пишу бота. Хотя решение задачи "разложить подьём" это позволяет(ит)

    Цитата (rehabilitator @ 11.6.2020)
    Минусят те, которые считают что ты делаешь неправильно чисто по математике и логике китайского

    Увы, пока до логики я не дошёл. Негде делать ошибки )

    Цитата (rehabilitator @ 11.6.2020)
    Минусят те, кто понимает в программировании, а считают, что ты делаешь сильно неправильно с их точки зрения, может слишком медленно все

    Вся суть задачи в сокращении полного перебора. Что-либо по данному вопросу советует исключительно c00l0ne, но алгоритм, пусть даже в псевдокоде, он не предлагает. Думаю, он(алгоритм) всё-таки существует, если, конечно, это не NP-полная задача.
    Цитата (rehabilitator @ 11.6.2020)
    а ты некорректно реагируешь

    Всё может быть. В этом и заключается задача форумов где мы сейчас присутствуем: человек приходит со своим видением и либо впитывает "правильное", либо остаётся со своим. О - обучение
    729/741
    Ответить Цитировать
    2
  • Цитата (БиллиУбили @ 14.6.2020)
    rehabilitator, ты бы обьяснил для начала, почему тебя беспокоят мои минусы?

    Мне интересна тема. Я вижу в ней много страниц и постов от ТС. И вижу, что у него много минусов. Чтобы понять для себя - стоит ли вникать подробнее во много страниц, я как раз и решил спросить про то, что сам ТС думает о минусах. Это не беспокойство. Ответы получил, спасибо, чуть уже больше понимания. эх... было бы время резиновое, обязательно бы вник подробнее. Но вдруг появится ещё.
    3/3
    Ответить Цитировать
    1
  • rehabilitator, давай, друг, заходи
    знаешь, как это бывает...громкая тема наподобие "на свободном рынке монополий не существует"...или "государство есть продукт свободного рынка".
    И вот залётный(это я) начинает "возмущаться": как же так? Вот Гугл (вроде как монополия на рынке поисковиков), вот Микрософт(на рынке ОС)...а потом начинают выясняться удивительные подробности, обычно скрытые от рядового гражданина...но при желании их можно раскопать и даже разобраться, как они работают...
    ну, а дальше "плановая экономика vs рынок". На первый взгляд, как неуправляемая стихия может быть эффективнее централизованной? Но снова выясняются подробности, которые проливают свет на действительное положение вещей...
    И ведь не лень кому-то просвещать залётных...ждём..)
    730/741
    Ответить Цитировать
    2
  • Так, откатимся ещё назад.
    Как я понял(из разбора кода с MCTS), я не совсем корректно описал поиск комбинации. Вместо того, чтобы использовать массив(вектор) потомков И сразу переходить к следующему узлу (следующей в 5ти карточной комбинации карте) я зачем-то начинал поиск(!) по всем потомкам данного узла. Безумное кол-во сравнений, тогда уж проще было осортировать эту несчастную комбинацию и найти её в дереве отсортированных комбинаций.
    Ладно, это исправим(побыстрее всё будет работать)
    А дальше предлагаю работать по методичке https://slideplayer.com/slide/9790945/
    И начать с поиска лучшей(по очкам) комбинации среди 13-17 карт.
    Для этого предлагаю построить деревья для "линий из 2ух-3ёх карт" на полной колоде для различных комбинаций(РФ, фулхаус и т.д.)
    Подставляем в дерево "стартов" наших возможных С(17,2) старта. Идя последовательно по различным стартам и различным комбинациям (разный старт даём разную макс. комбинацию, но не все комбинации можно собрать из нашего набора) мы в конце концов найдём макс. комбинацию.
    Если такой поиск будет слишком долгим, то возможно придётся удалять из дерева на полной колоде неосуществимые продолжения. То есть, 2 уровня мы пройдём без потерь, а на 3ем(4ём и т.д.) надо будет удалить 52-17 продолжений. Что будет быстрее, навскидку не скажу, так как удаления могут быть такими, что удаляются все переходы на след. уровень и придётся, как и в выше описанном способе переходить на дерево комбинации рангом ниже.
    Если получится, можно будет переходить к эвристической оценки ЕВ руки...
    731/741
    Ответить Цитировать
    2
  • Уверен, что это уже сделали и для обычного (NL-техас) покера, но нам тоже пригодится.
    Дано: в топе и полная колода.
    Задачи:
    1. найти условное ЕВ
    ну, тут 50 карт, из них 3 дадут (7 очков), 3 - (9 очков), 44 - -хай комбинацию
    Соответствено, ЕВ = (3*9+3*7+44*0)/50 = 0.96
    2. вернуть карты, которые дадут ровно 7 очков(либо дадут комбинацию ранга "пара дам")
    на выходе ,,
    Как это сделать в простейшем случае, более-менее понятно.
    НО! Как получить эти же ответы в случае
    а) расширения комбинации до 5карточной
    б) удаления из колоды произвольных карт?
    Каждый раз строить 50*49*48 продолжений, группировать их на 50 множеств(чтобы удалить те карты, которые удалены из колоды) + одновременно группировать возможные комбинации по рангу(и кикеру) +суммировать очки, чтобы найти ЕВ - не вариант.
    Если уж "удалять" карту, то надо сразу удалять из условного ЕВ тот вклад, которая даёт карта.
    Параллельно надо не забыть вторую задачу: возвращать наборы (уже) из 3ёх карт, которые дают комбинации определённого ранга(очков).
    В общем, тут всё также, как и в дереве для готовых 5карточых комбинаций. Строить его мы можем сколь угодно долго, главное быстро получать ответ.
    732/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 15.6.2020)
    возможно придётся удалять из дерева на полной колоде неосуществимые продолжения.

    Увы, фокус снова не удался.
    Несмотря на имплементацию
    struct TrieNode
    {
    struct TrieNode *parent;
    struct TrieNode *children[52];
    }

    Если в дереве хранить максимальный ранг данного набора карт, то да, добавить комбинацию ранга Х[0-10] легко. Например для это будет "флаш", так как ничего более флаша из этих трёх карт не получить.
    А вот обратное неверно.
    Во-первых, для перехода на уровень ниже приходится обходить весь массив потомков(и с грустью находить там "нули"), во-вторых, операция удаления корня(определённой карты) становится нетривиальной. Как обновить макс. ранг уровнем выше? Хорошо, что если текущий ранг меньше. А если равен? Это равносильно тому, что в колоде осталось единственные 2 и мы пытаемся "удалить" одну из них.
    В общем, для поиска макс. 5карточ. комбинации проще будет перебрать все комбинации С(17,5) и найти из них старшую, чем "удалять" из полного дерева (52-17) = 35 карт(тогда макс. комбинация находится за 5 переходов)
    733/741
    Ответить Цитировать
    1
  • Просматриваю очередную книжонку
    https://www.amazon.com/Heuristic-Search-Applications-Stefan-Edelkamp/dp/0123725127
    всё как обычно, на бумаге всё гладко...в реале 1000 проблем)
    и ещё статейка
    https://www.ibm.com/developerworks/ru/library/j-ai-search/index.html
    мож Кулон глянет

    момент, который я до сих пор не могу понять: тот факт, что мы знаем терминальные состояния до начала "игры" - он даёт нам какие-либо преимущества или нет?
    734/741
    Ответить Цитировать
    1
  • Выложу сюда, тут много про китай дискутируют
    https://forum.gipsyteam.ru/index.php?viewtopic=154994&pid=6572001&st=0#entry6572001
    145/314
    Ответить Цитировать
    0
  • Переписал разложение фантазии.
    Правда, пока вместо поиска комбинации стоит заглушка, но не в этом суть.
    Метода работает так:
    0. Строим список возможных фантазий(СВФ) в виде(линия, линия, линия, очки)
    1. Сортируем по убыванию(грубо говоря, формируем очередь)
    2. Начинаем с максимально возможных очков(РФ, РФ, 999)
    3. Если из указанных 17 карт роялфлаш не собрать - удаляем всем РФ из СВФ
    (ведь, если его не собрать из 17 карт, то и не собрать из 12, 10, 5 и т.д.)
    4. Нам удалось собрать флаш(например). Присоединяем его в качестве потомка в дерево "решения" в виде (флаш из 5 карт, колода из 12 карт)
    5. Продолжаем (рекурсивный) поиск, где в качестве "родителя" - текущая нода. Соответственно, если у нас заказ на (флаш, стрит, QQх) - то дальше мы будем искать стрит.
    6. Ищем до первого совпадения собранной руки и "заказа" из СВФ.

    Преимущества перед предыдущим подходом.
    1. Не надо искать все 5карточные комбинации в самом начале.
    2. Ранее найденные комбинации сохраняются в дереве "решения"

    Теперь осталось переписать поиск комбинации нужного ранга из N карт.
    Здесь планирую использовать следующие нововведения:
    1. Использовать X деревьев, где Х - число возможных рангов комбинации(флаш, стрит и т.д.)
    здесь благодарность Jak, это наиболее удобный(необременительный) подход

    2. Заменить поиск среди потомков на прямой переход. Благо, чуть-чуть научился работать с деревьями

    ЗЫ Всем спасибо за поддержку. Сейчас убегаю на работу, скоро продолжим.
    ЗЫ2 Статейки читать безусловно интересно, но найти какое-то чудесное, сверхъестественное решение вашей проблемы вам не удастся )) Надо просто брать и делать
    то, что как минимум общеизвестно(общепризнанно)
    735/741
    Ответить Цитировать
    1
  • Цитата (БиллиУбили @ 16.7.2020)
    Заменить поиск среди потомков на прямой переход. Благо, чуть-чуть научился работать с деревьями

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

    Дальнейший план прост )
    Уж коли мы нашли фантазию для данной добавки к стартеру...пусть это будет 21 очко...попробуем проверить, а полностью ли туда попал стартер(все 5 карт)? Если попал - запомним это разложение и перейдём к новой добавке. Не попал? Пробуем собрать фантазию послабее(20, 19...очков) и снова проверим, вписался ли туда стартер.
    Мне кажется, это будет быстрее, чем находить фантазии для всех 180+ разложений стартера и находить среди них максимальную. А вы как считаете?

    ЗЫ Пытаюсь максимально абстрагироваться(всего 2 ранга комбинаций, только 5карточные комбинации), но даже так вылезают заморочки: разложить фантазию на Х очков можно через разные комбинации(какие брать в итоге?)...из 17 карт можно собрать не один флаш или стрит, а несколько...все эти "варианты" надо хранить и учитывать...
    Достаточно изматывающее удовольствие...почти что замена башни на танке...
    736/741
    Ответить Цитировать
    0
1 61 81 82 83 84 103 114
2 человека читают эту тему (2 гостя):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.s