avva: (moose)
[personal profile] avva
Я ее решил!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Уже проверил и отослал решение.

Сразу скажу, что мое решение найдено с помощью компьютера, и я не могу его описать в виде интуитивно понятного алгоритма для Алисы и Боба. Теперь, когда оно у меня есть, я попробую, наверное, проанализировать и "понять" его и попробовать перевести в интуитивное описание, но у меня нет уверенности, что это вообще получится.

Дальше следует краткое описание того, как было найдено решение, в общих чертах, без точных подробностей и кода. Если кому-то нужен код или точные подробности, пишите мне в комментах или на почту. Если не хотите решительно никаких спойлеров, помогающих решить, не читайте дальше. Извините, если что-то непонятно, я пишу впопыхах, чтобы распрощаться наконец с этим, но готов объяснить, если надо.





СПОЙЛЕРЫ



СПОЙЛЕРЫ



СПОЙЛЕРЫ




Значит, так. Во-первых, мы предполагаем, что Алиса всегда начинает первый раунд с 0, а казино - с 1, так что в первом раунде у нас меняется только бит Боба. В случае, если казино в первом пишет 0, то Боб тоже пишет 0, они выигрывают первый раунд, и им остается угадать 5 из 8, что легко сделать "интуитивной" стратегией. Если вы уже бились над этой задачей, пытаясь сделать 6 из 9, то скорее всего 5 из 8 вы уже и так умеете, так что не буду тут описывать (если надо, спрашивайте). Поэтому по сути дела далее обсуждаются только 256 строк решения, для всех вариантов казино, в которых первый бит 1. Когда у меня это все заработало, я написал отдельно скрипт для создания остальных 256 строк вышеупомянутого интуитивного решения, и проверил их все вместе.

Далее, мы решаем проблему перебором с значительными эвристическими предположениями, потому что строгий перебор - безнадежное дело. Я перепробовал три разных способа написать программу перебора, и в третьем из них - около восьми разных вариантов эвристики, пока не заработало.

Сначала мы строим префиксное дерево, которое соединяет все возможные начала за Алису,Боба и Казино с их продолжениями. Например, предположим, что первые два раунда выглядят так: А:00 Б:00 К:10. Их теперь можно продолжить в третий раунд, добавляя по одному биту А,Б и К. Гипотетически есть 8 возможностей перебрать эти три бита, т.е. на каждый вариант одного раунда есть 8 продолжений. Но мы сразу будем отбрасывать невозможные продолжения, в которых между продолженными А,Б,К есть больше трех разногласий. Из-за этого только в первых нескольких раундах кол-во вариантов растет экспоненциально, а потом замедляется. В построенном до последнего 9 раунда дереве есть 140 тысяч листьев-концовок, т.е. возможных троек А,Б,К по девять бит каждая - это в тысячу раз меньше экспоненциального 512*512*512.

В том виде, в каком оно построено, это дерево не задает стратегию поведения Алисы, потому что оно постоянно расщепляется, давая ей оба варианта. Скажем, от А:00 Б:00 К:10 есть все 8 возможных вариантов продолжать: и А:0 Б:0 К:0, и А:1 Б:0 К:0, и так далее. То, что в этих продолжениях есть разные Б и К - нормально, они соответствуют разным возможностям, с которыми должна справиться Алиса. Но то, что в них есть как тройки с А=0, так и тройки с A=1, означает, что Алиса в этом месте не знает, что делать.

Мы хотим подрезать это дерево и отсечь в нем много ветвей так, чтобы у Алисы всегда было детерминистское поведение.
Находясь в каком-то узле, например А:00 Б:00 К:10, мы хотим выбросить либо все продолжения с A=0 и все, что ниже их до самого конца, либо все продолжения с A=1. Это можно сделать огромным количеством способов. Дело не только в самом выборе, что выбрасывать в данном узле, 0 или 1, но и в том, что сами узлы с расщеплениями от этого меняются: если мы обрежем огромное подддерево ближе к началу, то все узлы с расщеплениями в нем исчезнут и по ним уже не надо ходить. С другой стороны, обрезая любое поддерево, мы теряем все листья-концовки в нем, т.е. тройки из 9 битов А-Б-К, которые теперь уже никогда не случатся.

До того, как мы начали усекать дерево, любая из 512 возможных К-стратегий находится в нашем дереве в концовках огромное количество раз, в разных тройках А-Б-К. Но по мере того, как мы отрезам поддеревья, некоторые К-стратегии становятся более редкими, и в конце концов могут исчезнуть из дерева. Наша задача - этого не допустить. Если мы сможем достигнуть положения, в котором у Алисы всегда детерминированный выбор, а в листьях дерева все еще представлены все 256 К-стратегий, мы победили. Почему? Потому что возьмите тогда любую стратегию, найдите концовку А-Б-К с ней, она даст вам 9 битов Боба, и вы сможете проследить игру от корня дерева до этой концовки в точности по этому А-Б-К. У Алисы на каждом раунде нет выбора иначе как следовать по заданному пути к этой А-Б-К.

Значит, мы пытаемся в каком-то порядке и по какому-то принципу обрезать поддеревья, и проверяем по дороге, что все К-стратегии все еще достижимы. Когда доходим до дерева без выборов (для Алисы), мы победили. Само дерево не очень большое, но в нем много тысяч узлов с расщеплениями, и перебрать все возможные способы их отсекать непрактично. Но напрашивается, например, идти по дереву обходом BFS или DFS, в каждом проблемном узле смотреть на какую-то эвристику, которая поможет решить, отсечь ветки-0 или ветки-1 для Алисы.

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

Date: 2013-10-09 02:28 pm (UTC)
From: [identity profile] _gf _gf (from livejournal.com)
а такое решение:

Боб в первом раунде выбирает 1, если начиная со второго раунда они начинают использовать интуитивную стратегию и 0, если контринтуитивную (Алиса выбирает другое число в следующем раунде).

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

действуя по любой из стратегий мы выигрываем 3-й, 5-й, 7-й и 9-й раунды.

и выбираем какие два выигрываем из 4-го, 6-го и 8-го.
Edited Date: 2013-10-09 02:31 pm (UTC)

Date: 2013-10-09 02:36 pm (UTC)
From: [identity profile] _gf _gf (from livejournal.com)
я имею в виду, что если из 4-го, 6-го и 8-го раундов интуитивная стратегия не даёт нам 2 победы, то контринтуитивная даёт. и наоборот.

Date: 2013-10-09 02:37 pm (UTC)
From: [identity profile] kaathewise.livejournal.com
Нет, у Алисы нет информации о том, что ставить в 4, 6 и 8 раундах, хотя Боб и может ставить в них "правильные" ставки.

Date: 2013-10-09 02:41 pm (UTC)
From: [identity profile] _gf _gf (from livejournal.com)
ну да, вы правы. сейчас я модифицирую и решу )

Date: 2013-10-09 02:41 pm (UTC)
From: [identity profile] kaathewise.livejournal.com
Проблемный пример:
100011011

Date: 2013-10-09 02:43 pm (UTC)
From: [identity profile] _gf _gf (from livejournal.com)
ну да, вы правы. сейчас я модифицирую и решу, вроде как понятно )

пусть играют по интуитивной всегда, а в "неизвестных" раундах Алиса должна ставить либо то же, что на предыдущем, либо противоположное. надо доработать и додумать до конца.
Edited Date: 2013-10-09 02:43 pm (UTC)

Date: 2013-10-09 02:33 pm (UTC)
From: [identity profile] ext-2087110.livejournal.com (from livejournal.com)
Поздравляю! А там много хардкода, можно быстренько получить ответы с этой программой для меньшего числа вопросов?

Date: 2013-10-09 02:40 pm (UTC)
From: [identity profile] avva.livejournal.com
код непричесанный плюс в нем куча остатков других подходов. Хардкода как такового немного. В принципе можно, но я не буду этим сейчас заниматься, I'm done :) Если вам нужно, могу прислать код (на питоне), пишите на мейл.

Date: 2013-10-09 03:38 pm (UTC)
From: [identity profile] alex-levit.livejournal.com
Для меньшего числа вопросов вроде бы все и без программы ясно. Можно угадать 1 из 2, 2 из 4, 3 из 5, 4 из 7, 5 из 8.
А при долгой игре доля правильных ответов стремиться к 0,8107...

Date: 2013-10-10 02:08 am (UTC)
From: [identity profile] ext-2087110.livejournal.com (from livejournal.com)
Я надеялся, вдруг есть 5 из 7. Тогда из него автоматически получится 6 из 9.

Date: 2013-10-11 03:44 pm (UTC)
From: [identity profile] Миша Лысов (from livejournal.com)
Мне понятно, почему предельная доля не выше 0,8107.., но сомнительно, что она именно такая. Оценку снизу в студию.

Date: 2013-10-11 07:54 pm (UTC)
From: [identity profile] alex-levit.livejournal.com
Идея (не моя) такая. Биты казино разбиваются на блоки длины N. В каждом блоке Боб будет передавать информацию о следующем блоке. Перед началом блока(начиная со второго) у Алисы всегда будет N бит информации. Итак Алиса начинает угадывать. Боб при этом заставляет ее в некоторых случаях ошибаться, а иногда ошибается сам. Всего будет ровно n ошибок на блок. Ошибки могут быть трех типов: ошибается Алиса/Боб/оба. Чтобы Алиса получила очередные N бит должно выполняться неравенство C(N,n)3^n > 2^N. Дальше несложные вычисления показывают что с ростом N, 1-n/N стремится к 0,8107...

Date: 2013-10-11 08:29 pm (UTC)
From: [identity profile] Миша Лысов (from livejournal.com)
Можно поподробней, как Алиса с Бобом понимают, когда нужно ошибаться, даже зная целый блок из N бит?

Date: 2013-10-11 08:46 pm (UTC)
From: [identity profile] alex-levit.livejournal.com
Ну Алисе ничего понимать не нужно, так как Боб управляет ее поведением. Она получает свои log(C(N,n)3^n) бит закодированных в ощибках, преобразует их в N бит и называет. С Бобом чуть хитрее. Возьмем много блоков длины N. Боб хочет чтобы Алиса угадала последний блок целиком. Для этого он определяет места и тип ошибок в предпоследнем блоке и т. д. А в самом первом блоке он просто дает Алисе N бит. Итого, во всех блоках кроме двух, ровно n ошибок.

Date: 2013-10-11 09:02 pm (UTC)
From: [identity profile] Миша Лысов (from livejournal.com)
Любопытно, вроде всё верно. И да, пропущено, что максимум можно 3 из 6 )
Edited Date: 2013-10-11 09:04 pm (UTC)

Date: 2013-10-09 03:25 pm (UTC)
From: [identity profile] mperv.livejournal.com
Поздравляю! Но какое-то решение, хммм, безрадостное.
Edited Date: 2013-10-09 04:01 pm (UTC)

Date: 2013-10-09 03:38 pm (UTC)
From: [identity profile] perevod14.livejournal.com
Поздравляю!

Миша Лысов выложил вконтакте исследование общего случая, которое в том числе решает и эту задачу. Я пока еще не разобралась -- там довольно сложные рассуждения -- но надеюсь, что получится. Я собираюсь вечером выложить его текст себе в жж, а пока -- ссылка для пользователей http://vk.com/id2911480?w=wall2911480_201%2Fall

Date: 2013-10-09 04:59 pm (UTC)
From: [identity profile] lightjedi.livejournal.com
А динамическим программированием это урезанное дерево нельзя строить?

6 из 9

Date: 2013-10-09 07:16 pm (UTC)
From: [identity profile] alex-levit.livejournal.com
Кажется мне удалось придумать простую стратегию для этой задачи.
В начале два простых утверждения.
1. Если у Алисы есть два бита информации, то она может угадать 5 из 6.
2. С одним дополнительным битом угадывается 4 из 6.
При необходимости я докажу эти утверждения отдельно.
Теперь основная стратегия. На 2-ом и 3-ем ходах Алиса называет первый бит Боба. Она угадывает один или два раза.
Если она угадала один раз, то номер одгаданного числа это один бит, а ответ Боба при ошибке Алисы -- второй. Дальше используем метод 5 из 6. Если Алиса угадала дважды, то возникают два случая.
a)Боб тоже угадал дважды. Это бит информации, дальше применяем 4 из 6.
b)Боб один раз ошибся -- это один бит. Номер ошибочного хода Боба -- второй бит. Применяем 5 из 6.

P.S. Похоже ерунду написал. Если второй и третий биты казино разные, то все конечно работает. А если одинаковые, то ниоткуда не следует что Боб может реализовать эту стратегию. "Доказательство" не стираю, как свидетельство человеческой самонадеянности.
Edited Date: 2013-10-09 07:31 pm (UTC)

Re: 6 из 9

Date: 2013-10-09 07:57 pm (UTC)
From: [identity profile] avva.livejournal.com
Нормально, у меня тоже подобное несколько раз было :)

Re: 6 из 9

Date: 2013-10-09 08:41 pm (UTC)
From: [identity profile] alex-levit.livejournal.com
После некоторых размышлений пришел к выводу, что написал ерунду, но не совсем. А именно: cтратегия 4 из 6 с запасным битом порождает разбиение множества 6-битовых последовательностей на две части. Аналогично, стратегия 5 из 6 с двумя битами дает разбиение на четыре части. Бобу достаточно так подобрать стратегии, чтобы часть первого разбиения была объединением двух частей второго разбиения. Наверняка это можно сделать, но у меня уже ночь и я подумаю об этом завтра.

Date: 2013-10-10 10:09 am (UTC)
From: [identity profile] n16bs.livejournal.com
И всё же, как сделать хотя бы 5 из 8? У меня стойкое ощущение, что все варианты, где m/n > 0.5 нарушают закон сохранения.
Edited Date: 2013-10-10 10:09 am (UTC)

Date: 2013-10-10 10:16 am (UTC)
From: [identity profile] avva.livejournal.com
Первый бит Боба говорит, какой бит более частый среди следующих пяти битов казино, и Алиса использует эту подсказку пять раз подряд. Таким образом после шести раундов она сделала не больше трех ошибок (одну на самом первом бите, и максимум две среди этих пяти). При этом если среди этих пяти было две ошибки Алисы, Боб пользуется своими битами на этих местах, чтобы передать еще два бита информации Алисе, которые говорят ей 7-й и 8-й биты.

(В случае, если среди среди этих пяти битов не было двух ошибочных, а только 1 или 0, Боб не может передать ей два бита, но в таком случае у нее есть еще в запасе как минимум одна ошибка, и тогда биты 7-8 легко сделать, просто передав значение 8-го бита казино в 7-бите Боба).

:)

Date: 2014-01-07 02:50 am (UTC)
From: [identity profile] paoror.livejournal.com
Где-то я уже читал эту статью, но все равно спасибо

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 10:48 am
Powered by Dreamwidth Studios