Де бомба: як оцінити ймовірність за даними підсумків рядків і стовпців?


14

Це питання натхнене міні-грою від Pokemon Soulsilver:

Уявіть, що на цій 5х6 області приховано 15 бомб (EDIT: максимум 1 бомба / осередок):

Суми

Тепер, як би ви оцінили ймовірність знайти бомбу на певному полі, враховуючи підсумки рядка / стовпця?

Якщо ви подивитеся на колонку 5 (загальна кількість бомб = 5), то можете подумати: У цій колонці шанс знайти бомбу в ряду 2 подвійний шанс знайти її в рядку 1.

Це (неправильне) припущення про пряму пропорційність, яке в основному можна охарактеризувати як введення стандартних операцій тестування незалежності (як у Chi-Square) у неправильний контекст, призведе до таких оцінок:

Чі-квадрат

Як бачимо, пряма пропорційність призводить до оцінок вірогідності понад 100%, і навіть до цього було б неправильно.

Тому я провів обчислювальне моделювання всіх можливих перестановок, що призвело до 276 унікальних можливостей розміщення 15 бомб. (задані підсумки рядків і стовпців)

Ось середній показник за 276 рішень: Комп'ютерне рішення

Це правильне рішення, але через експоненціальну обчислювальну роботу я хотів би знайти метод оцінки.

Моє запитання зараз: чи існує усталений статистичний метод для оцінки цього? Мені було цікаво, чи це відома проблема, як її називають і чи є документи / веб-сайти, які ви могли б порекомендувати!


1
Швидкий і простий підхід: для більшої кількості рядків і стовпців ви можете провести моделювання Монте-Карло, де ви перевірите випадкову підбірку можливих конфігурацій, яка нижча за загальну кількість можливостей. Це дасть вам приблизне рішення.
Тім

1
Я не розумію вашого обчислювального рішення. Які числа в клітинках? Вони, звичайно, не складають до 100%, це не ПМФ. Вони також не схожі на CDF, права / нижня клітина не на 100%
Аксакал,

2
@Aksakal Це граничні ймовірності того, що будь-яка клітина містить бомбу. Числа додають до 15, кількість загальних бомб на дошці.
Дугал

2
Якщо ви припускаєте, що два поля незалежні, його порівняно просто відібрати від розподілу таблиць, що обумовлюються полями (за алгоритмом Пейтфілда). Це реалізовано в стандартному розподілі R в r2dtable(а також використовується chisq.testі fisher.testв деяких обставинах).
Glen_b -Встановіть Моніку

2
@Glen_b Але в алгоритмі Patefield кількість подій на клітинку не обмежується одиницею.
Джарле Туфто

Відповіді:


4

Простір рішення (допустимі конфігурації бомби) можна розглядати як набір двосторонніх графіків із заданою ступеневою послідовністю. (Сітка є матрицею двояручності виглядає як:

(х--х)(-хх-)

Доведено, що це властивість швидко перемішується. Отже, починаючи з будь-якої дійсної конфігурації та встановлюючи MCMC, який працює на деякий час, вам слід закінчити наближення рівномірного розподілу на рішеннях, яке ви можете оцінити в точці за ймовірністю, яку ви шукаєте.

Я лише смутно знайомий з цими підходами та їхніми обчислювальними аспектами, але принаймні таким чином ви уникаєте перерахування будь-якого з нерозв'язків.

Початок літератури на тему:
https://facturing.math.illinois.edu/~mlavrov/seminar/2018-erdos.pdf
https://arxiv.org/pdf/1701.07101.pdf
https: // www. tandfonline.com/doi/abs/10.1198/016214504000001303


Це дивовижна ідея! Я думаю, що я це зрозумію! Я перебираю будь-яке відоме рішення для певної кількості ітерацій (які, як я очікую, знайду в документах), а потім середнє значення для унікальних рішень, сподіваючись, що більшість з них знайдені. Дуже дякую!
KaPy3141,

2
MCMC - це саме такий шлях, і я також знайшов це: arxiv.org/pdf/1904.03836.pdf
KaPy3141,

@ KaPy3141 Для вищезазначених сум рядків та стовпців моє реалізація алгоритму циклу прямокутника (в препринті arxiv) відвідує лише 276 унікальних станів, навіть якщо я запускаю алгоритм на цілих ітерацій. 106
Jarle Tufto

Що говорить про те, що перерахування, запропоноване @Aksakal, може бути більш ефективним.
Jarle Tufto

@JarleTufto, але ОП говорить, що існує лише 276 унікальних (дійсних) станів; ти їх усіх знайшов!
Бен

5

Не існує єдиного рішення

Я не думаю, що справжній дискретний розподіл ймовірностей можна відновити, якщо не зробити якихось додаткових припущень. В основному ваша ситуація є проблемою відновлення спільного розподілу від маргіналів. Іноді це вирішується за допомогою використання копул у галузі, наприклад, управління фінансовими ризиками, але зазвичай для постійного розподілу.

Присутність, незалежна, AS 205

У разі наявності в камері не більше однієї бомби. Знову ж таки, для особливого випадку незалежності існує досить ефективне обчислювальне рішення.

Якщо ви знаєте FORTRAN, ви можете використовувати цей код, який реалізує алгоритм AS 205: Іан Сондерс, Алгоритм AS 205: Перерахування таблиць R x C з повторними підсумками рядків, прикладної статистики, том 33, номер 3, 1984, стор. 340-352. Це пов'язано з альгом Пенфілда, про який згадував @Glen_B.

Цей алго перераховує всі таблиці присутності, тобто проходить усі можливі таблиці, де в полі є лише одна бомба. Він також обчислює кратність, тобто кілька таблиць, які виглядають однаково, і обчислює деякі ймовірності (не ті, що вас цікавлять). За допомогою цього алгоритму ви зможете запустити повне перерахування швидше, ніж раніше.

Присутність, не незалежна

Алгоритм AS 205 можна застосувати до випадку, коли рядки та стовпці не є незалежними. У цьому випадку вам доведеться застосувати різні ваги до кожної таблиці, породженої логікою перерахування. Вага буде залежати від процесу розміщення бомб.

Графи, незалежність

Пij=Пi×ПjПiПjП6=3/15=0,2П3=3/15=0,2П63=0,04

Підрахунки, незалежні, дискретні копули

Для вирішення проблеми підрахунку, коли рядки та стовпці не є незалежними, ми можемо застосувати дискретні копули. У них є проблеми: вони не унікальні. Це не робить їх марними. Отже, я б спробував застосувати дискретні копули. Ви можете знайти хороший огляд їх у Genest, C. та J. Nešlehová (2007). Буквар на копулах для даних підрахунку. Астін Бик. 37 (2), 475–515.

Копули можуть бути особливо корисними, оскільки вони зазвичай дозволяють явно викликати залежність або оцінити її за даними, коли дані є доступними. Я маю на увазі залежність рядків і стовпців при розміщенні бомб. Наприклад, це може бути випадок, коли бомба є першим рядом, то є більша ймовірність, що вона буде також першою колоною.

Приклад

θ

С(у,v)=(у-θ+у-θ-1)-1/θ
θ

Незалежний

θ=0,000001

введіть тут опис зображення

Ви можете бачити, як у стовпці 5 ймовірність другого ряду має вдвічі більшу ймовірність, ніж перший. Це не неправильно всупереч тому, що ви, здавалося, передбачаєте у своєму питанні. Звичайно, всі ймовірності складають до 100%, як і поля на панелях відповідають частотам. Наприклад, у колонці 5 на нижній панелі показано 1/3, що відповідає зазначеним 5 бомбам із загальної кількості 15, як очікувалося.

Позитивна кореляція

θ=10

введіть тут опис зображення

Негативна кореляція

θ=-0,2

введіть тут опис зображення

Ви можете бачити, що всі ймовірності, звичайно, складають до 100%. Також можна побачити, як залежність впливає на форму ПМФ. Для позитивної залежності (кореляції) ви отримуєте найвищий ПМФ, сконцентрований на діагоналі, тоді як для негативної залежності - поза діагоналі.


Дуже дякую за вашу відповідь та ваші цікаві посилання на копули! На жаль, я ніколи не використовував копули, тому мені буде важко знайти рішення, яке застосовує лише 1 бомбу на комірку, але я обов'язково спробую, як тільки я краще зрозумію!
KaPy3141

@ KaPy3141, я додав посилання на код, який можна використовувати для вирішення проблеми. Це в F90, але відносно просто перетворити в Python з NumPy
аксакал

θθ

Вам доведеться відповідати параметрам процесу. Проблема є чисто комбінаторною, якщо процес генерації відповідає їй.
Аксакал

4

У вашому запитанні це не ясно, але я припускаю, що бомби спочатку розподіляються шляхом простого випадкового відбору проб без заміни на комірки (тому клітина не може містити більше однієї бомби). Поставлене вами питання, по суті, вимагає розробити метод оцінки розподілу ймовірностей, який можна обчислити точно (теоретично), але який стає обчислювально нездатним обчислити великі значення параметрів.


Точне рішення існує, але воно обчислювально інтенсивне

н×мб

х=(х1,...,хнм)с=(r1,...,rн,c1,...,cм)S:хс, яка відображає від вектора розподілу до сум рядків та стовпців.

П(х)1

П(х|с)=П(х,с)П(с)=П(х)Я(S(х)=с)хП(х)Я(S(х)=с)=Я(S(х)=с)хЯ(S(х)=с)=1|Хс|Я(S(х)=с)=U(х|Хс),

Хс{х{0,1}нм|S(х)=с}сх|сU(Хс). Тобто, умовний розподіл вектора розподілу для бомб є рівномірним для набору всіх векторів розподілу, сумісних із спостережуваними підсумками рядків та стовпців. Граничну ймовірність бомби в даній осередку можна отримати, маргіналізуючи цей спільний розподіл:

П(хij=1|с)=х:хij=1U(х|Хс)=|ХijХс||Хс|.

Хij{х{0,1}нм|хij=1}ijХс|Хс|=276Хснмб


Пошук хороших методів оцінки

Хс

Наївний емпіричний оцінювач: запропонований та використаний вами оцінювач у вашій зеленій таблиці:

П^(хij=1|с)=riбcjбб=ricjб.

б


Дякую за глибоку відповідь! Насправді в моїй зеленій діаграмі вже є значення до 133%. Добре знати, що не існує популярного методу для цієї проблеми, і прийнятно експериментувати на собі! Мій найточніший оцінювач схожий на "зелений" підхід, але замість того, щоб розподіляти бомби, пропорційні P (рядок) / сума (P (рядки)) * P (c) / sum (P (cols)), я використовую уявний P (r) / (1-P (r)) / сума (рядки), а потім повертає продукт назад: P (реальний) = P (imag) / (1 + P (imag). Це змушує P <1. Зараз я здогадуюсь, мені просто потрібно обчислювально виконати (злегка порушені) суми рядків / стовпців
KaPy3141,

@ KaPy3141 ви можете використовувати значення, що певна бомба знаходиться в комірці (у якої немає проблеми бути вище 1), а потім описати проблему як витяг 15 бомб із цього розподілу за умови, що кожна клітина має лише значення 0 або 1 (малюнок без заміни). Це забезпечить вам ймовірність, що не перевищує 1.
Секст
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.