Seperti yang kita lihat dalam pertanyaan ini, pernyataan logis yang kompleks dapat diekspresikan dalam kaitannya dengan koneksi sederhana Minesweeper umum. Namun kapal penyapu ranjau yang digeneralisasi masih memiliki redudansi.
Untuk menghindari redudansi ini, kami mendefinisikan game baru yang disebut "Generalized-1 Minesweeper".
Generalized-1 Minesweeper adalah versi yang dimainkan Minesweeper pada grafik arbitrer. Grafik memiliki dua jenis titik, "indikator" atau "nilai". Nilai dapat berupa hidup atau mati (tambang atau tak berguna) namun kondisinya tidak diketahui oleh pemain. Indikator memberi tahu bahwa salah satu sel yang berdekatan berada di (tambang). Indikator tidak dihitung sebagai ranjau sendiri.
Misalnya papan berikut untuk Generalized Minesweeper memberi tahu kita bahwa sel A dan B keduanya merupakan ranjau atau tidak ada ranjau.
(Dalam diagram indikator ditandai abu-abu sementara nilainya putih)
Tidak seperti di kapal penyapu ranjau normal di mana Anda mengklik nilai yang tidak aktif untuk mengungkapkan indikator, tidak ada mekanik seperti itu di Generalized Minesweeper. Seorang pemain hanya menentukan keadaan grafik yang dapat memenuhi indikatornya.
Tujuan Anda adalah membuat 2
Generalized-1 Minesweeper. Anda akan membangun struktur di Generalized-1 Minesweeper sedemikian rupa sehingga ada 8 sel spesifik yang semua konfigurasi nilai yang mungkin memiliki tepat dua sel. Ini berarti berperilaku persis seperti yang 2
dilakukan di kapal penyapu ranjau tradisional. Ketika Anda menulis solusi Anda, Anda seharusnya tidak memiliki nilai spesifik dalam pikiran untuk sel-sel nilai. (Sebagai jawaban atas pertanyaan H.PWiz, dibolehkan bahwa beberapa sel nilai mungkin dapat dikurangkan dari negara)
Mencetak gol
Jawaban Anda akan dinilai dengan jumlah simpul dalam grafik akhir minus 8 (untuk 8 input) dengan skor yang lebih rendah lebih baik. Jika dua jawaban mengikat dalam metrik ini, pemutus dasi adalah jumlah ujung.
sumber
Jawaban:
42 simpul, 56 tepi
Setiap variabel adalah simpul nilai, dan setiap kotak adalah simpul indikator dengan ujung ke variabel di dalamnya. Inputnya adalah x 1 , ..., x 8 . Misalnya, inilah solusi dengan ranjau di x 3 dan x 5 , dengan ranjau disorot dalam warna hijau.
Batasan horisontal memastikan bahwa tepat salah satu a dan tepat satu dari b memiliki tambang. Dalam dua kolom itu, r tidak memiliki tambang, tetapi r ada di enam kolom lainnya. (Perhatikan bahwa a dan b tidak dapat memiliki tambang di kolom yang sama.) Setiap input x berseberangan dengan r di kolomnya, jadi tepat dua input memiliki tambang seperti yang diinginkan.
Untuk
k
input, ini menggunakan5k+2
simpul (3k
nilai dan2k+2
indikator), dan7k
tepi. Di sini,k=8
input memberikan 42 simpul dan 56 tepi.sumber
50 Verteks, 89 tepi
Berdasarkan gerbang logika dari jawaban H.Piz.
Masing
*
- masing aktif ketika dua input masing-masing aktif. Untuk menangani kasus input tunggal, kami menggunakan nilai-nilai perantaraa=A&!B
dll. Menghubungkan ketiga nilaia
,b
danA&B
ke input gerbang level kedua memberi kami input efektifA|B
(ini menghemat simpul di atas!(!A&!B)
):Ini
*
aktif jika dua input mereka (sesuai dengan empat input asli) aktif, kecuali dalam kasus pasangan yang sudah dibahas di atas. Sementara itu, kita dapat menghubungkan#*#
node ke gerbang akhir. Karena itu kami memiliki hasil sebagai berikut:Ini mencakup semua 28 dari kasus dua input. Kemudian tetap menghubungkan indikator terakhir ke tujuh nilai ini. Jika kurang dari dua input aktif, maka tidak ada yang aktif, sehingga indikator akan mati. Jika lebih dari dua input aktif, maka lebih dari satu input akan aktif, dan indikator akan mati.
sumber
ACE
,BDF
,ADG
...(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
, apakah itu terlihat benar bagi Anda?197 Verteks, 308 tepi
Saya datang dengan jawaban ini tadi malam, tetapi menahannya karena itu skor yang sangat tinggi. Namun, karena itu mengalahkan jawaban yang lain dengan begitu banyak, saya pikir saya harus mempostingnya.
Saya menggunakan pengaturan berikut pada semua 28 pasang sel nilai di
ABCDEFGH
?
mewakili sel nilai yang tidak dalamABCDEFGH
. Di sini, ketika?*
adalah ON ,A
danB
keduanya di. Jika tidak,A
danB
bisa dalam konfigurasi lainnya.Saya menghubungkan semua 28
?*
s ke satu sel indikator. Ini berarti bahwa hanya satu pasangan yangABCDEFGH
memiliki dua AKTIF . Yang cukup untuk menegakkan bahwa tepat dua sel output saya akan AKTIFsumber
?
s sesuai dengan salah satu dari 4 negara bagianA B
.354 node, 428 edge
Hanya untuk membuktikan itu mungkin. Saya akan memperbaikinya nanti dengan beberapa caching.
(semoga tidak ada kesalahan kode)
Saya mencoba menulis program Mathematica di sini untuk memeriksa validitas program, tetapi tidak berhasil mungkin karena ada terlalu banyak variabel.
Hasilnya dihasilkan oleh program komputer: Cobalah online!
Saya menggunakan gerbang yang terlihat seperti ini:
di mana
(#)
1-indikator,(a)
..(f)
adalah nilai.Kemudian,
Juga, gerbang ini
memberi
. Gunakan kedua jenis gerbang yang bisa Anda buat ekspresi apa pun.
Tentu saja, ini untuk menegaskan bahwa itu
(a)
pasti benar:sumber
81 Nodes, 108 Tepi
Menggunakan 13 node dan 14 edge, kita membuat Adder gate berikut (C (arry) = X AND Y, S (um) = X XOR Y):
Gunakan empat Adders M1, M2, M3, M4 untuk menambahkan A + B, C + D, E + F, G + H, masing-masing, dengan membawa carry C1, C2, C3, C4, dan jumlah S1, S2, S3, S4.
Gunakan dua Adders M5, M6 untuk menambahkan S1 + S2, S3 + S4, dengan membawa carry C5, C6, dan jumlah S5, S6.
Gunakan satu Adder M7 untuk menambahkan S5 + S6 untuk mendapatkan C7 dan S7.
Sekarang sambungkan semua carry ke simpul indikator tunggal seperti berikut:
dan memaksa S7 (modulo 2 dari jumlah 8 nilai) menjadi 0 oleh sirkuit ini:
Saya berpendapat bahwa rangkaian ini memaksa tepat dua nilai dari
ABCDEFGH
menjadi ON, karena itu hanya bisa menjadi bilangan genap (karena S7 adalah 0), dan tidak mungkin ada lebih dari 3 nilai ON (karena hanya satu dari C1-C7 yang ON).sumber