Отримайте два з одного


12

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

Щоб уникнути цих надмірностей, ми визначаємо нову гру під назвою "Генералізована-1 мінночистка".

Generalized-1 Minesweeper - це версія Шахтника, відтворена на довільному графіку. Графік має два типи вершин, "показник" або "значення". Значення може бути або ввімкнено, або вимкнено (міна чи чувак), проте його стан гравцеві невідомий. Індикатор повідомляє, що рівно одна із сусідніх комірок увімкнена (шахта). Показники не зараховуються як самі міни.

Наприклад, наступна дошка для Генералізованого тральщика повідомляє нам, що клітини A і B є або обома мінами, або жодна з них не є міною.

Проста гра

(На діаграмі показники позначені сірим кольором, а значення - білими)

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

Ваша мета - зробити 2тральщик в Генералізованому-1. Ви побудуєте структуру в Генеральній-1 Міночистач такою, що є 8 конкретних комірок, для яких усі можливі конфігурації значень мають рівно дві комірки. Це означає, що він поводиться точно так, як це 2робиться у традиційних тральщиків. Коли ви пишете своє рішення, ви не повинні мати на увазі конкретні значення для значущих комірок. (Відповідаючи на запитання H.PWiz, допускається, що деякі значущі клітини можуть бути виведені зі стану)

Оцінка балів

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


Чи будь-який край завжди з'єднує вершину індикатора та вершину значення?
xnor

@xnor Для того, щоб максимально збільшити свою оцінку, вони повинні, але я не відчуваю, що мені потрібно прийняти це правило. Краї, які не з'єднують значення з показниками, не змінюють поведінку графіка.
Ad Hoc Hunter Hunter

Коли від рахунку віднімається 6, які 6 входів? Хіба немає 8 клітин?
xnor

@xnor Вибачте, має бути 8. Виправлено зараз.
Ad Hoc Hunter Hunter

Що ви маєте на увазі під "структурою ... такою, що існує 8 конкретних комірок, на яких єдині можливі конфігурації значень мають рівно дві комірки."? Чи єдині можливі конфігурації повинні мати лише дві міни?
dylnan

Відповіді:


7

42 вершини, 56 ребер

Мережа шахт

Кожна змінна - це вершина значення, а кожне поле - це вершина індикатора з ребрами до змінних всередині неї. Входи - х 1 , ..., х 8 . Наприклад, ось рішення з мінами на х 3 та х 5 , із мінами, виділеними зеленим кольором.

Мережеве рішення

Горизонтальні обмеження гарантують, що саме один з a і точно один з b має шахту. У цих двох стовпцях r не містить шахту, але в інших шести стовпцях. (Зверніть увагу, що в обох стовпцях a і b не може бути шахта.) Кожен вхід x протилежний r у його стовпці, тому рівно на двох входах є міни за бажанням.

Для kвходів використовуються 5k+2вершини ( 3kзначення та 2k+2показник) та 7kребра. Тут k=8введення дає 42 вершини та 56 ребер.


3

50 вершин, 89 ребер

Виходячи з логічної брами з відповіді H.PWiz.

  A&B      C&D      E&F      G&H
   |        |        |        |
b--1--a  d--1--c  f--1--e  h--1--g
|  |  |  |  |  |  |  |  |  |  |  |
1--?--1  1--?--1  1--?--1  1--?--1
|     |  |     |  |     |  |     |
A     B  C     D  E     F  G     H

Кожен *увімкнено, коли два відповідних входи увімкнено. Для того, щоб обробити випадок єдиного входу, ми використовуємо проміжні значення і a=A&!Bт.д. з'єднує всі три значення a, bа A&Bна вхід вторинного рівня ворота дають нам ефективний вхід A|B(це економить вершину більш !(!A&!B)):

      *              *
      |              |
   #--1--#        #--1--#
   |  |  |        |  |  |
   1--?--1        1--?--1
  |||   |||      |||   |||
  A|B   C|D      E|F   G|H

Вони *вмикаються, якщо два їх входи (що відповідають чотирьом початковим входам) увімкнено, за винятком випадків пар, які вже охоплені вище. Тим часом, ми можемо підключити #*#вузли до кінцевих воріт. Тому ми маємо такі результати:

A&B
C&D
E&F
G&H
(A|B)&(C|D)         [4 cases]
(E|F)&(G|H)         [4 cases]
(A|B|C|D)&(E|F|G|H) [16 cases]

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


Ага, я мав подібну ідею, але в кінцевому підсумку створив більш складну версію цього. Хороша робота!
justhalf

Я не переконаний, що існує 43 вершини. Ви чітко показуєте 42, тож ви говорите, що вам потрібен лише ще один, щоб все це підключити?
H.PWiz

На насправді, якщо я намалювала правильно графік ви описуєте, я думаю , що це дозволяє державам подобається ACE, BDF, ADG...
H.PWiz

@ H.PWiz Я бачу, що ти маєш на увазі ... Я думаю, можливо, я можу це вирішити із додатковими краями, щоб надати вираз (a&b)+((a|b)&(c|d))+(c&d)+((a|b|c|d)&(e|f|g|h))+(e&f)+((e|f)&(g|h))+(g&h)==1, чи правильно це тобі подобається ?
Ніл

Можливо, хоча для мене цей вираз виглядає так, що він цілком вирішує проблему. І я поняття не маю, які краї ви можете додати, щоб отримати це ...
H.PWiz

2

197 Вершини, 308 ребер

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

Я використовую наступне налаштування для всіх 28 пар клітинок значень у ABCDEFGH

   ?*
   |
?--1--?
|  |  |
1--?--1
|     |
A     B

?являє комірку значення не в ABCDEFGH. Тут, коли ?*це ПО , Aі Bобидва на. В іншому випадку, Aі Bможе бути в будь-який іншій конфігурації.

Я підключаю всі 28 ?*с до однієї індикаторної комірки. Це означає , що тільки одна пара в ABCDEFGHматиме два ON . Що достатньо для забезпечення того, що рівно дві мої вихідні комірки будуть ВКЛ


1
Зауважте, що у воротах кожен із 4 ?s відповідає одному з 4 станів A B.
Ad Hoc Garf Hunter

@HeebyJeebyMan Цікаво, що я цього не вважав. Щойно я знайшов цю браму пощастило
H.PWiz

1

354 вузли, 428 ребер

Просто довести, що це можливо. Я вдосконалю це пізніше за допомогою кешування.

(сподіваємось, помилка коду)

Я намагався написати програму Mathematica тут , щоб перевірити програму дійсності, але вона не працює , ймовірно , тому що є дуже багато змінних.

Результат був створений комп'ютерною програмою: Спробуйте в Інтернеті!


Я використовую ворота, які виглядають так:


               (f)
                |
                |
               (#)
              /   \
             /     \
           (d)     (e)
          /           \
         /             \
       (#) --- (c) --- (#)
     .'                  '.
   .'                      '.
(a)                          (b)

де (#)є 1-показники, (a).. (f)- значення.

Потім,


c = (not a) and (not b)
d = (not a) and      b
e =      a  and (not b)
f =      a  xnor     b

Також це ворота


(a) ----- (#) ----- (b)

дає


b = not a

. Використовуйте ті два типи воріт, з яких можна будувати будь-які вирази.

Звичайно, це - твердження, що (a)повинно бути правдою:


(a) ----- (#)

1

81 вузол, 108 краї

Використовуючи 13 вузлів та 14 ребер, ми створюємо наступні ворота Гадрі (C (arry) = X AND Y, S (um) = X XOR Y):

X - 1 --------------?
   | |
   ? - 1 - S - 1 -? - 1
   | | |
   | C |
Y - 1 --------------?

Скористайтеся чотирма суматорами M1, M2, M3, M4, щоб додати A + B, C + D, E + F, G + H відповідно з отриманим результатом C1, C2, C3, C4 і сумою S1, S2, S3, S4.

Використовуйте два добавника M5, M6, щоб додати S1 + S2, S3 + S4, з отриманим результатом C5, C6, і суму S5, S6.

Використовуйте один Adder M7, щоб додати S5 + S6, щоб отримати C7 і S7.

Тепер підключіть всі носії до одного вузла індикатора, як:

С1- |
С2- |
С3- |
С4 - + - 1
С5- |
С6- |
С7- |

і сила S7 (модуль 2 суми 8 значень) дорівнює 0 по цій схемі:

S7--1 -? - 1

Я стверджую, що ця схема змушує рівно два значення ABCDEFGHбути включеними, оскільки це може бути лише парне число (оскільки S7 дорівнює 0), і не може бути більше 3 значень ON (оскільки лише одне із C1-C7 є ON).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.