Як завжди вигравати в «Камінь, ножиці, папір. Як вигравати у грі камінь-ножиці-папір? (Реалізація оптимальної стратегії у Wolfram Mathematica)

Переклад поста Джона Маклун (Jon Mcloone, директор департаменту міжнародного бізнесу та стратегічного розвитку Wolfram Research). Оригінал посту: How to Win at Rock-Paper-Scissors
Завантажити пост у вигляді документа Mathematica

З точки зору математики гра камінь-ножиці-папір (див. Додаток 1 наприкінці) не є особливо цікавою. Стратегія рівноваги Неша дуже проста: випадково і з однаковою ймовірністю вибирайте з трьох варіантів, і за умови проведення великої кількості ігор ні ви, ні ваш суперник не зможете перемогти. Хоча при обчисленні стратегії за допомогою комп'ютера все ще можна виграти у людини після великої кількості ігор.

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

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

Я думав про створення алгоритму як одну з тем нашого курсу статистики в рамках концепції Computer-Based Math. Але перша ж стаття, на яку я натрапив у пошуках передбачуваних алгоритмів, розглядала рішення за допомогою складної конструкції на основі розподілу. Це рішення було важким для розуміння школяра (а можливо, і для мене), тому я вирішив розробити простіше рішення, яке я міг би пояснити простими словами. І нехай навіть воно вже і було розроблено раніше, набагато веселіше створювати речі по-своєму, ніж знаходити їхню готову реалізацію.

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

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

Де 1 відповідає каменю, 2 - папері та 3 - ножицям. Це оптимальне рішення. Як би ви не грали, ви виграєте стільки ж ігор, скільки і комп'ютер, і ваш показник перемог коливатиметься в районі нуля.

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

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

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

Третій аргумент, All, вказує на те, що в послідовностях повинні збігатися і ходи людини, і ходи комп'ютера. Аргумент можна змінити на 1, щоб дивитися тільки на історію ходів людини (тобто припускаючи, що людський вибір залежить тільки від його попередніх ходів), або 2, щоб звертати увагу тільки на другий стовпець, тобто на історію ходів комп'ютера (тобто припускаючи, що людина відповідає на попередні ходи комп'ютера незалежно від того, які сама робила ходи і, отже, незалежно від того, виграв він чи програв).

Наприклад, в даному випадку ми знаходимо, що людина вибирала після каменю, незалежно від того, що в тих же іграх вибирала комп'ютер.

Маючи велику кількість даних, ми можемо обійтися лише аргументом All, і програма зможе сама вирішити, чиї ходи, комп'ютера чи людини, важливіші. Наприклад, якщо історія ходів комп'ютера ігнорується людиною в ході здійснення вибору, тоді набір даних, отриманий для будь-якої історії ходів комп'ютера, матиме той самий розподіл, що й для будь-якої іншої історії ходів комп'ютера, за умови, що даних про попередні ігри достатньо. Здійснюючи пошук по всіх парах ігор, отримаємо той же результат, як і якби ми спочатку вибирали дані з історії ходів комп'ютера, а потім використовували це підмножина для наведеної вище функції. Те саме відбудеться у випадку, якщо має значення лише історія ходів комп'ютера. Але при цьому, шукаючи при врахуванні обох цих припущень окремо можна отримати більш вірні збіги в історії, і найбільше це проявляється у випадках, коли набір даних про ігри спочатку малий.

Таким чином, з цих двох перевірок ми можемо виявити, що перший дає оцінку в 100%, що наступним вибором людини буде камінь, а другий показує, що з 75% ймовірністю людина вибере камінь і з 25% ймовірністю - ножиці.

І тут я дещо зупинився у вирішенні завдання.

У цьому випадку два передбачення принаймні більш-менш близькі за результатом, хоч і розходяться в чисельних значеннях ймовірностей. Але якщо ви проводите пошук за трьома «зрізами» даних з рядом різних довжин історії, і результати передбачень суперечливі - як їх об'єднати?

Я помістив замітку про цю проблему в папку «Написати про це в блог» і забув про неї доти, доки кілька тижнів тому не відбулася суперечка про те, як висвітлити концепцію "статистичної значущості" в курсі Computer-Based Math.

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

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

Тепер, якщо ми візьмемо останній отриманий нами результат, виявляється, що найкраще пророцтво - камінь, що має p-значення 0.17. Це означає, що лише з ймовірністю 0.17, дані, які використовуються для цього передбачення, відхиляються від дискретного рівномірного розподілу ( DiscreteUniformDistribution[(1,3)]), причому швидше випадково, ніж через систематичну помилку, вироблену людською чи з будь-якої іншої причини, яка могла змінити розподіл.

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

І робимо такий вибір, що поб'є вибір людини.

Тут ви бачите результат. Ви можете завантажити та самостійно випробувати його з сайту Wolfram Demonstrations.

Коли програма має занадто мало даних, вона грає випадково, так що ви починаєте на рівних. Спочатку, коли вона тільки починає навчатися, вона приймає кілька безглуздих рішень, тому ви можете вирватися вперед. Але після 30-40 ігор вона починає отримувати справді значущі пророцтва, і ви побачите, як ваш показник перемог опуститься в негативну область і так там і залишиться.

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

Такий підхід веде до початку «гонки озброєнь», змагань з написання алгоритмів, які виграватимуть у камінь-ножиці-папір у алгоритму суперника, і єдиний спосіб припинити це - повернутися до стратегії рівноваги Неша, здійснюючи вибір через RandomInteger[(1,3)].

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

Дякую за допомогу, надану у перекладі цієї посади.

Одному Богу відомо, скільки спірних ситуацій у дитинстві вирішувалося за допомогою гри в «Камінь, ножиці, папір». Та що там малеча, повно дорослих дітлахів, що знаходять легкий вихід за лічені секунди і викинутий знак. То що ховається за невигадливим викиданням пальців: воля випадку чи вивірена стратегія? Вчені твердо знають відповідь та дають свій переможний рецепт.

Зовсім недавно колектив китайських дослідників із Чжецзянського університету (Zhejiang University) сповістив світ про сміливі висновки своїх психологічних тестів. Вчені з грудня 2010 р. до березня поточного провели 5 експериментальних циклів. Кожен цикл включав 12 сесій з 6 учасниками. Загалом загальна кількість піддослідних досягла 360 осіб. Співвідношення статей склало 217:143 з жіночою перевагою (просто дівчата активніше записувалися). Студент чи аспірант міг брати участь у дослідженні лише один раз.

Люди були поза зоною видимості один одного, перед екранами монітора. Тим самим було виключено вербальний та візуальний контакт. Кожен із учасників витратив від півтори до двох годин на 300 ігор із випадковим суперником. Стимулом до перемог служила невелика грошова винагорода за кожен виграний раунд. І ось які висновки з цього вийшли...

То що треба знати для перемоги? Після спостереження за величезною кількістю «битв», вчені виявили, що гравець, який переміг свого супротивника в поточній партії, з більшою ймовірністю повторить свої дії в наступному раунді, а з меншою ймовірністю щось змінюватиме.

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

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

Програли? Викиньте той знак, який б'є останній переможний знак вашого опонента.

Виграли? Не продовжуйте показувати той же знак, натомість викиньте останню комбінацію вашого суперника, що програв.

Досі не до кінця зрозуміло? Ось які виграшні стратегії допоможуть вам залишатися непереможними:

Якщо ви перемогли в останній грі...

Якщо ви програли в останній грі (і супротивник не в курсі цієї методики)…

  • …викинувши камінь, переходьте до ножиць у наступній сутичці
  • …викинувши ножиці, переходьте до паперу у наступній сутичці
  • …викинувши папір, переходьте до каменю у наступній сутичці

Якщо ви програли в останній грі (і супротивник у курсі цієї методики)…

  • …викинувши камінь, переходьте до паперу у наступній сутичці
  • …викинувши ножиці, переходьте до каменю у наступній сутичці
  • …викинувши папір, переходьте до ножиць у наступній сутичці

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

І насамкінець додам, що провину за програні машини, будинки та дружини в «камінь, ножиці, папір», перш за все, варто покладати на свій азарт, а не китайські уми та автора цих рядків.

БЕНДЖАМІН ДЖЕЙМС ДАЙСОН,викладач психології британського Університету Сассекса, співавтор дослідження «Вплив негативних результатів на прийняття ірраціональних рішень у грі «Камінь, ножиці, папір»:

1 ___________

Якось я побачив, як два студенти, які писали у мене диплом, грають перед моїм кабінетом у «камінь, ножиці, папір», щоб визначити, хто піде першим. Один із них був упевнений у своїй перемозі, я поцікавився чому, ми почали розглядати можливі стратегії і разом написали ціле дослідження. Нам було цікаво довести, що на прийняття рішень у цій грі впливають емоції та продемонструвати, як саме. Ми не ставили собі за мету навчитися завжди вигравати, але принагідно з'ясували, які моделі поведінки цьому сприяють. Наприклад, у першому раунді більшість гравців несвідомо вибирають камінь. Справа навіть не в тому, що він асоціюється з надійністю, просто ми починаємо гру з цього жесту, коли трясемо кулаком. Тому у першому коні краще «викидати» папір.

2 ___________

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

3 ___________

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

3 ___________

Нашою метою було не навчити людей шахраювати, а змусити переглянути рішення, продиктовані емоціями. І невдача, і перемога по-своєму роблять нас уразливими. Помилки, описані в нашому дослідженні, часто повторюють гравці в рулетку, несвідомо дотримуючись принципу Мартінґейла: поставивши на чорне або червоне і вигравши, вони вперто продовжують ставити тільки на «щасливий» колір і швидко розоряються. Професійні гравці в покер знають, що навіть з програшу можна отримати вигоду, якщо зберігати холоднокровність.

5 ___________

6975 разів зіграв у «Камінь, ножиці, папір» 31 учасник дослідження — супротивником була комп'ютерна програма, що діє зі змішаної стратегії рівноваги. Зігравши «внічию», гравці починають поводитися, якби програли, тому що на підсвідомому рівні «нічия» сприймається як поразка. У міжнародному чемпіонаті з гри в Камінь, ножиці, папір, що пройшов 16 квітня в лондонському пабі Green Man, взяли участь гравці зі 196 країн.

"Камінь, ножиці, папір" - гра, знайома кожному ще з дитинства, вона вирішувала навіть найсерйозніші чоловічі суперечки. Я завжди вважав, що ця гра заснована лише на везінні, але це далеко не так. Сьогодні "Так просто!"відкриє тобі кілька невеликих секретів, які дозволять тобі завжди вигравати у цю гру. І тоді ти їхатимеш на передньому сидінні, а за пивом побіжить хтось інший.

Секрет перемоги у «Каміні, ножиці, папір»

Якщо ти вже забув правила, нагадаю: камінь ламає ножиці, які ріжуть папір, а папір накриває камінь.

Колектив китайських дослідників із Чжецзянського університету провів величезну кількість експериментів та спостережень, результати яких показали деякі закономірності: гравець, який переміг свого супротивника в поточній партії, найімовірніше повторить свої дії в наступному раунді і навряд чи стане щось змінювати.

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

Виходячи з цього, можна вивести таку виграшну стратегію

  • Якщо ти програв, викинь знак, який б'є останній переможний знак твого опонента.
  • Якщо ти виграв, не продовжуй показувати той самий знак, натомість викинь останню комбінацію твого суперника, що програв.

Ще кілька важливих закономірностей

  • Найчастіше представники сильної статі першими використовують камінь, тому якщо твій суперник - чоловік, спробуй кинути папір.
  • Якщо ти змагаєшся із досвідченим гравцем, є велика ймовірність, що він спробує зіграти на твоїй наївності та кине папір. Використовуй ножиці.
  • Запам'ятай, що якщо твій суперник уже двічі поспіль викинув камінь, ця людина ненавидить бути передбачуваною і здебільшого використовує ножиці. Кинь камінь.
  • Стеж за пальцями суперника. Найлегші рухи підкажуть тобі, який хід противник збирається використати. Усі пальці напружені – камінь. Усі пальці розслаблені – папір. Тільки два пальці напружені – ножиці.
  • Папір використовують найрідше у грі - у 29,6% випадків. Найчастіше використовують ножиці – 35 %. І ще частіше камінь – 35,4 %. Використовуй ефект несподіванки.

Розкажи про ці маленькі хитрощі своєму, він буде в повному захваті від того, що завжди виграватиме суперечки зі своїми однокласниками!

Варіації гри «Камінь, ножиці, папір» продумали ще сотні років тому. Але, як і більшість ігор, ця є чимось більшим, ніж простою випадковістю. Це битва шаблонів, психології та статистики. Хочете дізнатися, що статистика, дослідження та експерти повинні сказати про перемогу у цій грі?

Психологія

За даними всесвітньої організації спільноти «Камінь, ножиці, папір», ідея викинути «камінь» є фатальною для новачків. Особливо часто такий хід роблять чоловіки. Виявляється, вибір такого ходу має багато спільного з ідеєю про те, що камінь сприймається як сильний і вольовий, тому чоловіки, як правило, і вибирають його. А оскільки противник здогадуватиметься, що ви викинете «камінь», ви повинні спочатку вибрати «ножиці».

Слово дослідникам

Дослідники з університету Чжецзян, що спеціалізуються на теорії ігор, подивилися на зразки, які люди, як правило, вибирають, щоб грати. Вони записали результати гри 360 студентів, котрі зіграли 20 тисяч раундів гри. Як стимул студентам, які вигравали, платили гроші.

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

Ігри розуму

Так само, як і в грі в покер, ви можете легко перемогти суперника, використовуючи макіавеллівську силу навіювання. Одвічна тактика оголошення, якою рукою ви гратимете, може виявитися корисним трюком. До тих пір, поки ви не граєте з кимось, хто насправді думає, що ви досить сміливі, щоб говорити про свій хід, а потім робите його насправді, ви можете змінити хід на той, який переможе раніше оголошений вами . Отже, якщо ви скажете, що викинете «камінь», ваш супротивник використовує «папір». Це означає, що «ножиці» дадуть вам у гіршому випадку нічию, а в кращому – перемогу.

І, нарешті, коли інші шанси втрачені, вашою найбезпечнішою ставкою може бути «папір», оскільки статистично його обирають лише у 29,6% випадків, а не у 33,33%, як на те можна було б очікувати.