1つから2つを取得


12

この質問で見たように複雑な論理ステートメントは、一般化された掃海艇の単純な接続詞で表現できます。ただし、一般的な掃海艇にはまだ冗長性があります。

これらの冗長性を回避するために、「Generalized-1 Minesweeper」という新しいゲームを定義します。

Generalized-1 Minesweeperは、任意のグラフで実行されるバージョンの掃海艇です。グラフには、「インジケータ」または「値」という2種類の頂点があります。値はオンまたはオフ(地雷または不発地)のいずれかになりますが、その状態はプレイヤーに知られていません。インジケータは、隣接するセルの1つが正確にオンであることを示します(鉱山)。インジケーターは地雷としてはカウントされません。

たとえば、一般的なマインスイーパの次の掲示板では、セルAとBが両方とも地雷であるか、どちらも地雷ではないことがわかります。

シンプルなゲーム

(図ではインジケーターは灰色でマークされ、値は白です)

オフになっている値をクリックしてインジケーターを表示する通常の掃海艇とは異なり、一般化された掃海艇にはそのようなメカニズムはありません。プレーヤーは、グラフのどの状態でインジケータを満たすことができるかを単純に決定します。

あなたの目標は2、Generalized-1 Minesweeper を作ることです。Generalized-1 Minesweeperで構造を構築し、8つの特定のセルに対して、値のすべての可能な構成でちょうど 2つのセルがオンになるようにします。これ2は、従来の掃海艇と同じように動作することを意味します。ソリューションを作成するとき、値セルに特定の値を念頭に置いてはいけません。(H.PWizの質問への回答では、一部の値セルが状態から推定できる場合があります)

得点

回答は、最終グラフの頂点の数から8(8入力の場合)を引いたものでスコア付けされ、スコアが低いほど優れています。このメトリックで2つの回答が同点の場合、タイブレーカーはエッジの数になります。


エッジは常にインジケーター頂点と値頂点を接続しますか?
xnor

@xnorあなたのスコアを最大化するために彼らはすべきですが、私はそれをルールにする必要はないと感じています。値をインジケーターに接続しないエッジは、グラフの動作を変更しません。
ポストロックガーフハンター

スコアから6を引くと、6つの入力は何になりますか?8個のセルはありませんか?
xnor

@xnor申し訳ありませんが8です。今すぐ修正。
ポストロックガーフハンター

「構造... 8つの特定のセルがあり、値の唯一の可能な構成にはちょうど2つのセルがある」とはどういう意味ですか?唯一の可能な構成は、鉱山が2つだけであると想定されていますか?
ディルナン

回答:


7

42頂点、56エッジ

鉱山ネットワーク

各変数は値の頂点であり、各ボックスはその内部の変数へのエッジを持つインジケーター頂点です。入力はx 1、...、x 8です。たとえば、鉱山がx 3x 5にあり、鉱山が緑色で強調表示されているソリューションを次に示します。

鉱山ネットワークソリューション

水平方向の制約は、正確に一つのことを確実にAさんと正確に一つのBさんは私を持っています。これらの2つの列では、rは地雷を保持していませんが、他の6つの列では保持しています。(abの両方が同じ列に地雷を持つことはできないことに注意しください。)各入力xは、その列のrの反対であるため、正確に2つの入力に希望通りの地雷があります。

以下のため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

それぞれ、*2つのそれぞれの入力がオンのときにあります。単一入力の場合を扱うために、我々は、中間値の使用a=A&!Bすべての3つの値を接続する等ab及びA&Bゲートの二次レベルの入力に私達の有効な入力を与えるA|B(これは上の頂点を保存します!(!A&!B))。

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

これら*のsは、入力の2つ(元の入力の4つに対応する)がオンの場合にオンになります。ただし、既に説明したペアの場合を除きます。その間、#*#ノードを最終ゲートに接続できます。したがって、次の結果が得られます。

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]

これらは、2つの入力の28のケースすべてをカバーします。その後、これらの7つの値に最終的なインジケーターを接続します。オンになっている入力が2つ未満の場合、これらはどれもオンにならないため、インジケータはオフになります。3つ以上の入力がオンの場合、これらのうち2つ以上がオンになり、インジケータはオフになります。


ああ、私は同じような考えを持っていましたが、これのより複雑なバージョンを作成することになりました。よくやった!
ちょうど半分

頂点が43個あるとは思いません。あなたは明らかに42を示しているので、あなたはそれをすべて接続するためにもう1つだけが必要だと言っていますか?
H.PWiz

私が正しくあなたが記述グラフを描画した場合、実際に、私は状態が好きなことができますだと思うACEBDFADG...
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。ここで、when ?*ONAB両方ともオンです。そうでない場合、AおよびB任意の他の構成である可能性があります。

28 ?*個すべてを1つのインジケーターセルに接続します。これは、1つのペアのみにABCDEFGH2つのONがあることを意味します。これは、出力セルのちょうど2つがONになるように強制するのに十分です


1
ゲートでは、4 ?のそれぞれがの4 つの状態の1つに対応していることに注意してくださいA B
ポストロックガーフハンター

@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

。任意の式を作成できるこれらの2種類のゲートを使用します。

もちろん、これは(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 --------------?

4つの加算器M1、M2、M3、M4を使用してそれぞれA + B、C + D、E + F、G + Hを追加し、結果のキャリーC1、C2、C3、C4、および合計S1、S2、S3、 S4。

2つの加算器M5、M6を使用してS1 + S2、S3 + S4を追加し、結果のキャリーC5、C6、および合計S5、S6を使用します。

1つのAdder M7を使用してS5 + S6を追加し、C7およびS7を取得します。

次のように、すべてのキャリーを単一のインジケーターノードに接続します。

C1- |
C2- |
C3- |
C4-+-1
C5- |
C6- |
C7- |

そして、この回路によってS7(8つの値の合計のモジュロ2)を強制的に0にします。

S7--1-?-1

私は、この回路ABCDEFGHは偶数のみであることができるため(S7が0であるため)、正確に2つの値を強制的にオンにし、3つ以上のON値はあり得ない(C1-C7の1つのみがオンであるため)と主張します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.