Здравствуйте, гость Правила · Помощь

»  ВЦ: задача о валете пик и короле черв Подписаться | Сообщить другу | Версия для печати
      » 26/12/2019, 17:38,  KotBasilio 
2ayaks:
Почему же выкинули? Стоят они на поле, просто разбросаны в разные лагеря. Считаем:
coolS 140876 + 54100 + 42217 + 2990 + 8891 = 249074
coolS 140616 + 54227 + 41790 + 3034 + 8882 = 248549
coolS 139710 + 53649 + 42163 + 3020 + 8762 = 247304
Совсем немало!

Как-то двухэтапный процесс, вижу, сложно осознаётся. Попробую другими словами его описать:
По каждой сдаче принимается два решения:
-- первый вопрос и решение: "относится ли эта сдача к условию задачи?" -- проходит ли сдача фильтр торговли? В образном изложении, пропускаем ли мы вот этого конкретного бойца на поле? Таких каждый раз набирается около 2млн. Остальных -- да, выкидываем.
-- второй вопрос и решение: "в какой лагерь записать?". Тут сдача уже точно внесёт вклад в статистику, осталось понять, куда её сунуть. Иными словами, боец уже допущен на стадион; под какое знамя он встанет?

Сначала на второй вопрос отвечали простенько:
-- есть обе ключевые карты => лагерь "оба";
-- есть только одна => пихаем в нужный мажорный лагерь;
-- нет ничего, но трефа хороша => в трефовый;
-- не удалось опознать => в мусорник, лагерь "никого", постоянно самый многочисленный.

Вот сегодня второй этап продвинулся:
-- переманили многие сдачи с 5кой черв в червовый лагерь. Многие, но не все.
-- теперь добавляю "Тхх 10ххх ххх ххх" -- это созыв в пиковый лагерь. Измерение приведено в начале коммента. Итог измерения:
--- 140тыс. из "НИКОГО" переходят в пиковый;
--- 54тыс. остаются в пиковом лагере, они там и были;
--- 43тыс. из червового лагеря переходят в лагерь "ОБА";
--- 3тыс. остаются в лагере "ОБА", они там и были;
--- почти 9тыс. переходят из трефового лагеря в пиковый. Чтобы там оставались только действительно трефовые экзотичные.

Мб теперь стало яснее про два этапа -- отсев, сортировка. Одних убили, других рекрутировали. Отличие ))

Новые численности:
--- лагерь "НИКОГО" : ~387 тыс.
--- лагерь "ПИКА, ОДНАКО" : ~600 тыс.
--- лагерь "ВСЯКАЯ ЧЕРВА" : ~471 тыс.
--- лагерь "ОБА" : ~194 тыс.
--- лагерь "ЦЕННАЯ ТРЕФА" : ~376 тыс.

Наконец-то лагерь "НИКОГО" объели до третьего места. Мб его надо переименовать в "хаос" или "неведомые" ))
Пика снова лидирует; то ли ещё будет!
      » 26/12/2019, 17:39,  KotBasilio 
2TRU: Axx 10xxxx x xxxx пойдёт? Ну и не мелочимся.
      » 26/12/2019, 18:28,  ayaks 
Вот тут-то и заключается беда! - "есть обе ключевые карты => лагерь "оба"... ".
Но это совсем другая задача! В нашей далеко не две ключевые карты.

Вот такая сдача у тебя в лагере оба - В10х К109х ххх Тхх, но если пиковый сажает гарантировано, то червовый только при 3-2 или синглетном онере в черве на столе. Если 9-ки(!) в черве нет и расклад масти 4-1, то просто выпуск всегда (а ты, как мне кажется все их держишь в червовом лагере), а если в пике нет 10-ки, то пиковой достаточно, чтобы эта масть лежала 3-3.
То есть, она неправильно классифицирована в свете интересующего нас вопроса. И сколько таких?
Наконец, с пиковой атакой (если образуются 3 взятки в масти) достаточно трефового короля, а с червовой (стопор в этой масти есть, потери в ней 3) нужен туз, а от короля вообще никакого толка!

Иными словами: в пиковом случае для подсада нужно найти у партнера три пики, и если в них есть 2 фиксированные карты, то подсад всегда, если одна, то расклад масти 3-3.
В червовом известно, что есть 4+ карты, но необходимо найти среди них фиксированные три из 5
(это считается без машины: какова вероятность в 4-х картах из 9 найти определенные 3 из 5). И даже это в некоторых случаях требует определенного расклада масти у оппонентов.
Плюс в первом случае достаточно К или Т треф (а также Т пик),а во втором необходим именно Т треф.

Давай сравним такие условия : расклад партнера в мажорах 34, миноры 33 или 24 или 42
1. Вхх хххх ххх К(Т)хх
2. ххх КВ9х(и лучше) ххх Тхх
Распределение 6 карт в минорах произвольное.
Обрати внимание - при ограничении в 7 пунктов вторая конфигурация невозможна!
Пусть будет 8. Теперь в случае 2. нужны все три фиксированные фигуры.
В случае 1 может хватить и 4 пунктов из выше оговоренных 8.
Неужели можно утверждать, что они близки по вероятности?

Вероятность какого распределения больше? Сначала скажи на вскидку, а потом посчитай.
      » 26/12/2019, 18:36,  KotBasilio 
=) Вот насколько же сильно тянут двое в разные стороны. Подарю-ка я каждому из двух по вселенной:

Мир AYAKS: 3БК обязательно держит черву, бубна обязательно на 6ке ФФхххх, а у разыгрывающего -- всегда её замыкание.
Мир TRU: 3БК лепят просто так -- можно и без задержки, и без фигуры бубён, и на 14-ти очках тоже; в заявке 3буб тоже шаляй-валяй, но бывает и ФГ.

Статистики:
--------ХАОС----ПИКА-----ЧЕРВА----ОБА-----ТРЕФА----- РАЗМЕР
worldA 100340 + 250553 + 113185 + 72922 + 181435 = 718435
worldA 100633 + 252034 + 113340 + 72481 + 181814 = 720302
worldA 100416 + 250377 + 113052 + 72390 + 181859 = 718094

worldT 898001 + 1431879 + 1799620 + 842670 + 858341 = 5830511
worldT 895516 + 1432600 + 1801411 + 842722 + 855365 = 5827614
worldT 896968 + 1428612 + 1799340 + 841401 + 857056 = 5823377

Ну как-то эти миры на порядок различаются в размере! Безусловно, каждый победитель в своём. В остальном no comments ))
Пороемся ещё в среднем мире? С краями-то уже понятно.
      » 26/12/2019, 18:57,  ayaks 
TRU_ (26 дек. 2019, 17:20)
Ценности в трефе не нужны - однако в данной сдаче они есть.
Два фита должны (фактически) быть - но их нет.

С Тхх 10ххх ххх ххх мало кто скажет на 3б справа (непонятно что) заявку 3ч - подставиться за 300 от частички?

Ну, если посчитать, то, скорее, от -400 в 3БК. Конечно, в предположении 9 карт в мажорах у партнера.
А что у нас в 3Ч*? Пусть 4 потери в минорах. Все мажорные фигуры перед входившим, 8+ карточный фит, сможем разок пройти в черву сквозь эту руку.
К примеру, у партнера Кхххх ТДхх хх хх. Действительно, -300. Но 3БК верхние.
А добавить Валетика в черву и всего -100 (3БК по прежнему верхние, как и 3Б). А еще во входе 2Т бывает и 5-5 в мажорах.
Конечно, если партнер способен войти на Дхххх Тххх Дх Дх, то говорить 3Ч с такой рукой точно не следует. Как выше подметил Базилио - другой мир!

Базилио:
Миры надо сравнивать не в абсолютных цифрах, а оценивать разницу в процентах.
В моем мире превышение пиковой атаки над червовой в 2.3 раза, у Виталия червовой на 20%.
И это даже без дополнительных уточнений, предложенных в предыдущем комменте.
(Понятно, обитателям другого мира думать в этой сдаче совершенно не над чем. Только контролировать нет ли UI) .
      » 26/12/2019, 19:43,  TRU_ 
2ayaks
Нет. Пересчитайте.
Точнее - перечитайте, потом пересчитайте.
      » 27/12/2019, 16:35,  KotBasilio 
Из-за большой зависимости результата от фильтра, перестали пока с фильтром возиться -- уж на какое-то время, как минимум. А вот блок раскидывания по командам -- крепкий орешек.

Не порешать ли эту задачу совсем круто? То есть прикрутить блок искусственного интеллекта. По времени там не разгуляешься, это orel верно заметил.

То, что пойдёт далее, вероятно, займёт только тех, кто читает C++ "без словаря" -- ожидаю Gombo, orel и ещё кто подтянется.
В общем, небольшой ИИ -- такая ли это непосильная задача? За потолок времени предлагаю считать полторы микросекунды, 1500 наносекунд. Тогда для 2 млн отфильтрованных сдач уложимся в 3 секунды на прогон. Попробуем? Пока там праздники, то да сё, не торопясь.
Над уровнем взяток логика несложная:
CODE
uint RecruitAI()
{
  // try both majors
  uint leadSpade = TricksLeadSpade();
  uint leadHeart = TricksLeadHeart();
  if (leadSpade >= 9) {
     if (leadHeart < 9) {
        return CAMP_HEARTS;
     }
     // consider clubs only when majors don't work
     if (IsCoolClubLead()) {
        return CAMP_CLUBS;
     }
  }

  // both set or both make => notice any difference
  if (leadHeart < leadSpade) {
     return CAMP_HEARTS;
  }
  if (leadSpade < leadHeart) {
     return CAMP_SPADES;
  }

  // distinguish set/make
  return (leadSpade < 9) ? CAMP_BOTH : CAMP_NONE;
}
      » 29/12/2019, 14:27,  KotBasilio 
Мозги в сети есть; лежат вот тут -- https://github.com/dds-bridge/dds
Они довольно свежие, и с открытой лицензией © Bo Haglund 2006-2014, © Bo Haglund / Soren Hein 2014-2018.
Вывод: не надо бояться круто решить крутые задачи. Порой, чтобы заглянуть за горизонт, достаточно встать на плечи гигантов.
      » 29/12/2019, 15:29,  ayaks 
Сергей, досчитал бы ты вероятности не в безумном мире, где нет держки червей или отрезается бубна стола, а в том, где действия оппонентов выглядят осмысленными.
Там уже при самых мягких ограничениях вероятность пики к черве составила 252 к 113.
Если учесть необходимость усиления трефовой композиции для подсада контракта, то коэффициент вырастет еще раза в 2 с лишним (оценка).
Без всякого моделирования ясно, что если в 8-9 пунктах нужно найти 3 из 4 фиксированные карты (Т треф и КВ (или ДВ) червей), то вероятность этого события весьма мала (и уж всяко уступает вероятности найти одного Туза пик). Да, можно спорить не лучше ли атаковать малой пикой, это верно, и действительно достойно исследования твоим методом.
      » 11/01/2020, 01:54,  KotBasilio 
Всем привет. На праздниках удалось найти время и пристыковать к программе розыгрыш. Настоящий розыгрыш на открытых картах, как мы все привыкли видеть в виде таблички около каждой сдачи.

Выбор, какие "мозги" прикрутить, был некоторый: они есть либо польские (Piotr Beling, ссылка от avgera), либо шведские (Bo Haglund & Co.). Польские используют Lua, в этом варианте они потормознее, но есть и C API; разработчик один, библиотека начата в 2014м году, последние изменения 2019го. Шведские мозги -- это C++, разработчиков трое, начинали в 2006м году, а с 2018го код стабилизирован. Документации по шведским имеется чуть больше, чем по польским. В итоге выбор пал на шведов.

Всё теперь посчитано, осталось рассказать по-порядку результаты. Как говорится, гораздо проще что-нибудь измерить, чем понять, что же собственно измерили.

Ну хорошо, после атаки игра не заканчивается; некая часть игры заканчивается на числе взяток. Значит, по каждой отобранной сдаче хорошо бы насчитать взятки с разными атаками:
-- червовой;
-- пиковой, и тут пара подпунктов (Кп или малая);
-- если ни один мажор не посадил, то трефовой;
-- и если не сажают эти три, то выяснить, есть ли овера.
В общем, представить зависимость числа взяток в зависимости от атаки.

Это уже получается табличка такого плана:
CODE
           make     spade     heart     both     club
( 0):         0,       0,       0,       0,       0,
( 1):         0,       0,       0,       0,       0,
( 2):         0,       0,       0,       0,       0,
( 3):         0,       0,       0,       0,       0,
( 4):         0,       0,       0,       0,       0,
( 5):         0,       0,       0,       0,       0,
( 6):         0,       0,       0,       0,       0,
( 7):         0,       0,       0,       0,       0,
( 8):         0,       0,       0,       0,       0,
( 9):         0,       0,       0,       0,       0,
(10):         0,       0,       0,       0,       0,
(11):         0,       0,       0,       0,       0,
(12):         0,       0,       0,       0,       0,
(13):         0,       0,       0,       0,       0,
-- в каждом столбце сосчитать сумму, для сравнения атак между собой;
----- отнормировать эти суммы, сиречь, перевести их в проценты;
-- в каждой строке тоже просуммировать, чтобы понимать распределение исходов.

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

В итоге хорошо бы узнать, чего же стоят разные советы/стратегии по постановке гейма. Какой от этих советов толк в цифрах, "чьё кунг-фу круче"? Тут пригодится средняя ожидаемая запись за сдачу. Это рассчитывается несложно по распределению исходов сдачи -- если сели, то без скольки, и сколько раз; если выиграли, то в какую запись это вылилось с учётом оверов; всё взвесить.
У полученного числа есть вполне понятная нижняя оценка:
-- нижняя оценка 130 за сдачу -- это если мы ставим только частички и никогда не садимся.
-- верхняя оценка -- вот с этим посложнее, ведь не 600 же за сдачу?! Тут предлагается "безошибочная стратегия": просто сначала выясняем на открытых, есть ли гейм (и на сколько он взяток, если да), и если гейм есть -- пишем гейм. А если гейма нет -- да пусть будет те же 130. Средняя ожидаемая запись по этой "безошибочной стратегии" и будет верхней оценкой для реальной стратегии. А реально она оценивает широту выборки -- чем выборка шире, тем верхняя оценка ниже.

Продолжение следует...

P.S. если что уже стало туманным, то самое время задать вопросы. Тут всё просто -- неумолимая статистика и никаких вероятностей.
« Предыдущая тема | Перечень тем | Следующая тема »
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей: