Jump to content

Настольные задачки с алгеброй бинарных переменных

Настольные головоломки с алгеброй двоичных переменных требуют от игроков найти скрытые объекты на основе набора ячеек-подсказок и их соседей, отмеченных как переменные (неизвестные). Переменная со значением 1 соответствует ячейке с объектом. Напротив, переменная со значением 0 соответствует пустой ячейке — никакого скрытого объекта.

Эти головоломки основаны на алгебре с двоичными переменными, принимающими пару значений, например (нет, да), (ложь, правда), (не существует, существует), ( 0 , 1 ). Он предлагает игроку быстро составить некоторые уравнения и неравенства для решения. Разделение можно использовать для уменьшения сложности проблемы. Более того, если головоломка составлена ​​таким образом, что существует только единственное решение , этот факт можно использовать для исключения некоторых переменных без вычислений.

Задачу можно смоделировать как двоично-целочисленное линейное программирование , которое является частным случаем целочисленного линейного программирования. [1]

Minesweeper , наряду со своими вариантами , является наиболее ярким примером головоломок такого типа.

Алгебра с двоичными переменными

[ редактировать ]

Ниже буквы в математических утверждениях используются в качестве переменных, каждая из которых может принимать только значение 0 или 1 . Ниже приведен простой пример уравнения с двоичными переменными:

а + б = 0

Здесь есть две переменные a и b, но одно уравнение. Решение ограничено тем фактом, что a и b могут принимать только значения 0 или 1 . Здесь есть только одно решение: и a = 0 , и b = 0 . Еще один простой пример приведен ниже:

а + б = 2

Решение простое: a и b должны быть равны 1 , чтобы a + b было равно 2 .

Еще один интересный случай показан ниже:

а + б + с = 2
а + б 1

Здесь первое утверждение представляет собой уравнение, а второе утверждение представляет собой неравенство, указывающее на три возможных случая:

  1. а = 1 и б = 0 ,
  2. a = 0 и b = 1 , и
  3. а = 0 и б = 0 ,

Последний случай вызывает противоречие относительно c, заставляя c = 2 , что невозможно. Следовательно, верен либо первый, либо второй случай. Это приводит к тому, что c должно быть равно 1 .

Преобразовать большое уравнение в меньшую форму нетрудно. Однако систему уравнений с двоичными переменными не всегда можно решить с помощью применения линейной алгебры. Ниже приведен пример применения вычитания двух уравнений:

а + б + в + г = 3
в + д = 1

Первый оператор имеет четыре переменные, тогда как второй оператор имеет только две переменные. Последнее означает, что сумма c и d равна 1 . Используя этот факт в первом утверждении, приведенные выше уравнения можно свести к

а + б = 2
в + д = 1

Алгебра на доске

[ редактировать ]
тентаизу_4x4_example
Рисунок 1. Пример головоломки на доске 4х4.

Игру, основанную на алгебре с двоичными переменными, можно визуализировать разными способами. Один из общих способов — представить правую часть уравнения как подсказку в ячейке (подсказку), а соседей подсказки — как переменные. Простой случай показан на рисунке 1. Можно предположить, что соседями являются верхние/нижние, левые/правые и угловые ячейки, имеющие общий край или угол. Белые клетки могут содержать скрытый объект или ничего не содержать. Другими словами, это двоичные переменные. Они располагаются в левой части уравнений. Каждая ячейка подсказки (ячейка с синим фоном на рисунке 1) содержит положительное число, соответствующее количеству ее соседей, у которых есть скрытые объекты. Общее количество объектов на доске можно указать в качестве дополнительной подсказки. Та же плата с отмеченными переменными показана на рисунке 2.

Сведение к системе уравнений с двоичными переменными

[ редактировать ]

Основное уравнение записано с использованием общего количества заданных скрытых объектов. Судя по первому рисунку, это соответствует следующему уравнению

a + b + c + d + e + f + g + h + i + j + k + m = 3

Остальные уравнения составляются одно за другим для каждой ячейки подсказки:

а + б + в + е + ж + ч + я + j = 1
ж + г + j + м = 1
ч + я + j + k = 2
я + j + м = 2

Хотя существует несколько способов решения приведенных выше уравнений, можно применить следующий явный способ:

  1. Из системы уравнений известно, что i + j + m = 2 . Однако, поскольку j и m являются соседями ячейки с номером 1 , верно следующее: j + m ≤ 1 . Это означает, что переменная i должна быть равна 1 .
  2. Поскольку i = 1 и переменная i является соседкой ячейки подсказки с номером 1 , переменные a , b , c , e , f , h и j должны быть равны нулю. Тот же результат можно получить, заменив i = 1 во второе уравнение следующим образом: a + b + c + e + f + h + j = 0 . Это эквивалентно a = 0 , b = 0 , c = 0 , e = 0 , f = 0 , h = 0 , j = 0 .
  3. Рисунок 3 получен после шагов 1 и 2. Серые ячейки со знаком «–» — это переменные со значением 0 . Ячейка с символом Δ соответствует переменной со значением 1 . Переменная k является единственным соседом самой левой ячейки подсказки со значением 2 . У этой ячейки подсказки есть один сосед с объектом и только одна оставшаяся ячейка с переменной k . Следовательно, k должно быть равно 1 .
  4. Аналогично, переменная m тоже должна быть равна 1 , потому что это единственная оставшаяся переменная, соседняя с самой правой ячейкой подсказки со значением 2 .
  5. Поскольку k = 1 , m = 1 и i = 1 , мы завершаем маркировку трех скрытых объектов, поэтому d = 0 и g = 0 . Окончательное решение представлено на рисунке 4.
tenaizu_4x4_example_with_variables
Рисунок 2: Двоичные переменные отмечены
tenaizu_4x4_example_solved_partially
Рисунок 3. Пример частично решен.
tenaizu_4x4_example_with_variables_solved
Рисунок 4: Пример решен

Использование уникальности

[ редактировать ]

В приведенном выше примере (рис. 2) переменные a , b , c и e являются соседями ключевой ячейки 1 и не являются соседями какой-либо другой ячейки. Очевидно, что возможны следующие решения:

  • а = 1 , б = 0 , с = 0 , е = 0
  • а знак равно 0 , б знак равно 1 , с знак равно 0 , е знак равно 0
  • а знак равно 0 , б знак равно 0 , с знак равно 1 , е знак равно 0
  • а знак равно 0 , б знак равно 0 , с знак равно 0 , е знак равно 1

Однако, если головоломка составлена ​​так, что у нас должно быть только одно (уникальное) решение, мы можем установить, что все эти переменные a , b , c и e должны быть равны 0. В противном случае решений станет более одного.

Использование разделения

[ редактировать ]
tenaizu_4x4_example_partitioned
Рисунок 5: Пример разделения

Некоторые конфигурации головоломок могут позволить игроку использовать разделение. [2] для снижения сложности. Пример приведен на рисунке 5. Каждому разделу соответствует определенное количество скрытых объектов. Сумма спрятанных предметов в перегородках должна быть равна общему количеству спрятанных на доске предметов. Одним из возможных способов определения разделения является выбор ведущих ячеек-подсказок, которые не имеют общих соседей. Ячейки за пределами красных прозрачных зон на рисунке 5 должны быть пустыми. Другими словами, в полностью белых клетках нет скрытых объектов. Поскольку в верхней зоне раздела должен быть скрытый объект, третья строка сверху не должна содержать скрытый объект. Это приводит к тому, что две ячейки переменных в нижнем ряду вокруг ячейки подсказки должны иметь скрытые объекты. В остальном решение простое.

Использование метода проб и проверок.

[ редактировать ]
tenaizu_4x4_example_for_inconsistency
Рисунок 6: Пример пробного метода

В некоторых случаях игрок может установить переменную ячейку как 1 и проверить, нет ли каких-либо несоответствий. Пример на рисунке 6 демонстрирует проверку несоответствия. Ячейка, отмеченная скрытым предметом Δ, находится под тестом. Его маркировка приводит к установке всех переменных (серых ячеек) в 0 . Отсюда следует несоответствие. Ячейка подсказки, отмеченная красным со значением 1 , не имеет оставшихся соседей, которые могли бы включать в себя скрытый объект. Следовательно, проверяемая ячейка не должна содержать скрытый объект. В алгебраической форме имеем два уравнения:

а + б + в + г = 1
а + б + в + г + е + ж + г = 1

Здесь a , b , c и d соответствуют четырем верхним серым ячейкам на рисунке 6. Ячейка с Δ представлена ​​переменной f , а две другие серые ячейки отмечены как e и g . Если мы установим f = 1 , то a = 0 , b = 0 , c = 0 , d = 0 , e = 0 , g = 0 . В первом уравнении выше левая часть будет равна 0, а правая часть — 1 . Противоречие.

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

Сложность

[ редактировать ]

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

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

Примечания

[ редактировать ]
  1. ^ Писатель 1986 г.
  2. ^ Халмош 1960
  3. ^ Дроздек 2000
  • Пол Халмос , Наивная теория множеств . Принстон, Нью-Джерси: Компания Д. Ван Ностранда, 1960. Перепечатано Springer-Verlag, Нью-Йорк, 1974. ISBN   0-387-90092-6 (издание Springer-Verlag).
  • Александр Шрийвер , Теория линейного и целочисленного программирования . John Wiley & Sons, 1986. Перепечатано в 1999 году. ISBN   0-471-98232-6 .
  • Адам Дроздек, Структуры данных и алгоритмы в C++ , Brooks/Cole, второе издание, 2000. ISBN   0-534-37597-9 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ef3e628e079a8084bec796424373087f__1658627700
URL1:https://arc.ask3.ru/arc/aa/ef/7f/ef3e628e079a8084bec796424373087f.html
Заголовок, (Title) документа по адресу, URL1:
Board puzzles with algebra of binary variables - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)