Prendi due da uno


12

Come abbiamo visto in questa domanda , si possono esprimere complesse dichiarazioni logiche in termini di semplici connettivi del dragamine generalizzato. Tuttavia, il dragamine generalizzato ha ancora esuberi.

Per evitare questi esuberi definiamo un nuovo gioco chiamato "Generalized-1 Minesweeper".

Generalized-1 Minesweeper è una versione Minesweeper giocata su un grafico arbitrario. Il grafico ha due tipi di vertici, un "indicatore" o un "valore". Un valore può essere attivato o disattivato (una miniera o un dud) tuttavia il suo stato è sconosciuto al giocatore. Un indicatore indica che è attiva esattamente una delle celle adiacenti (una miniera). Gli indicatori non contano come miniere.

Ad esempio, la scheda seguente per il dragamine generalizzato ci dice che le celle A e B sono entrambe miniere o nessuna delle due.

Gioco semplice

(Nel diagramma gli indicatori sono contrassegnati in grigio mentre i valori sono bianchi)

A differenza del normale dragamine in cui si fa clic su valori disattivati ​​per rivelare gli indicatori, non esiste tale meccanico in Generalized Minesweeper. Un giocatore determina semplicemente per quali stati del grafico può soddisfare i suoi indicatori.

Il tuo obiettivo è quello di creare un 2dragamine in Generalized-1. Costruirai una struttura in Generalines-1 Minesweeper in modo tale che ci siano 8 celle specifiche per le quali tutte le possibili configurazioni di valori hanno esattamente due celle. Ciò significa che si comporta esattamente come 2nella dragamine tradizionale. Quando scrivi la tua soluzione non dovresti avere in mente valori specifici per le celle di valore. (In risposta alla domanda di H.PWiz è consentito che alcune celle di valore siano deducibili dallo stato)

punteggio

Le risposte verranno segnate dal numero di vertici nel grafico finale meno 8 (per gli 8 input) con un punteggio più basso migliore. Se due risposte si uniscono in questa metrica, il pareggio sarà il numero dei bordi.


Qualche fronte collega sempre un vertice indicatore e un vertice valore?
xnor

@xnor Per massimizzare il tuo punteggio dovrebbero, ma non mi sento di doverlo fare una regola. I bordi che non collegano i valori agli indicatori non cambiano il comportamento del grafico.
Ad Hoc Garf Hunter

Quando 6 viene sottratto dal punteggio, quali sono i 6 input? Non ci sono 8 celle?
xnor

@xnor Siamo spiacenti, dovrebbe essere 8. Risolto ora.
Ad Hoc Garf Hunter

Cosa intendi per "struttura ... tale che ci sono 8 celle specifiche su cui le uniche configurazioni possibili di valori hanno esattamente due celle". Le uniche configurazioni possibili dovrebbero avere solo due mine?
Dylnan,

Risposte:


7

42 vertici, 56 spigoli

Rete mineraria

Ogni variabile è un vertice di valore e ogni casella è un vertice indicatore con bordi alle variabili al suo interno. Gli ingressi sono x 1 , ..., x 8 . Ad esempio, ecco una soluzione con mine a x 3 e x 5 , con mine evidenziate in verde.

Miniera soluzione di rete

I vincoli orizzontali assicurano che esattamente una delle un 's ed esattamente uno dei b ' s ha una mina. In quelle due colonne, r non contiene una miniera, ma nelle altre sei colonne. (Si noti che un e b non può avere sia una mina nella stessa colonna.) Ogni ingresso x è di fronte alla r nella sua colonna, quindi esattamente due ingressi hanno miniere lo desideri.

Per gli kinput, utilizza 5k+2vertici ( 3kvalore e 2k+2indicatore) e 7kbordi. Qui, gli k=8input danno 42 vertici e 56 spigoli.


3

50 vertici, 89 bordi

Basato sulla porta logica dalla risposta di 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

Ognuno *è acceso quando i due rispettivi ingressi sono attivi. Per gestire il caso di un solo ingresso, usiamo i valori intermedi a=A&!Becc intermedio tutte tre valori a, be A&Ball'ingresso di un secondo livello di cancelli ci dà un ingresso efficace A|B(questo salva vertici sopra !(!A&!B)):

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

Questi *sono attivi se due dei loro ingressi (corrispondenti a quattro degli ingressi originali) sono attivi, tranne nel caso delle coppie già coperte sopra. Nel frattempo, possiamo collegare i #*#nodi a un gate finale. Abbiamo quindi i seguenti risultati:

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]

Coprono tutti i 28 casi di due input. Resta quindi da collegare un indicatore finale a questi sette valori. Se sono attivi meno di due ingressi, nessuno di questi sarà acceso, quindi l'indicatore sarà spento. Se sono attivi più di due ingressi, più di uno di questi sarà acceso e l'indicatore sarà spento.


Ah, avevo un'idea simile, ma ho finito per creare una versione più complicata di questo. Buon lavoro!
solo

Non sono convinto che ci siano 43 vertici. Hai chiaramente 42, quindi stai dicendo che ne hai bisogno solo uno in più per connetterlo tutto?
H.Piz

In realtà, se ho disegnato correttamente il grafico che lei descrive, credo che permette di stati come ACE, BDF, ADG...
H.PWiz

@H.Wiz Capisco cosa intendi ... Penso che forse potrei risolverlo con bordi extra per dare l'espressione (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, ti sembra giusto?
Neil,

Forse, sebbene a me quell'espressione sembri risolva completamente il problema. E non ho idea di quali bordi puoi aggiungere per ottenerlo ...
H.Pw,

2

197 vertici, 308 spigoli

Ho trovato questa risposta ieri sera, ma ho trattenuto la pubblicazione perché era un punteggio così alto. Tuttavia, dal momento che batte così tanto l' altra risposta , ho pensato di pubblicarla.

Uso il seguente set up su tutte le 28 coppie di celle di valori in ABCDEFGH

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

?rappresenta una cella di valori non presente ABCDEFGH. Qui, quando ?*è ON , Ae Bsono entrambi attivi. Altrimenti, Ae Bpotrebbe trovarsi in qualsiasi altra configurazione.

Collego tutti i 28 ?*secondi a una cella dell'indicatore. Ciò significa che solo una coppia in ABCDEFGHavrà due ON . Il che è sufficiente per imporre che esattamente due delle mie celle di output saranno attive


1
Nota che nel gate hai ciascuno dei 4 ?s corrisponde a uno dei 4 stati di A B.
Ad Hoc Garf Hunter,

@HeebyJeebyMan Interessante, non l'avevo considerato. Ho appena trovato questo cancello per fortuna
H.Piz

1

354 nodi, 428 bordi

Solo per dimostrare che è possibile. Lo migliorerò in seguito con un po 'di memorizzazione nella cache.

(si spera nessun errore di codice)

Ho provato a scrivere un programma Mathematica qui per verificare la validità del programma, ma probabilmente non funziona perché ci sono troppe variabili.

Il risultato è stato generato dal programma per computer: provalo online!


Uso un cancello simile al seguente:


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

dove (#)sono 1 indicatori, (a).. (f)sono valori.

Poi,


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

Inoltre, questo cancello


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


b = not a

. Usa questi due tipi di porte per creare espressioni.

Naturalmente, questo è per affermare che (a)deve essere vero:


(a) ----- (#)

1

81 nodi, 108 bordi

Usando 13 nodi e 14 spigoli, creiamo la seguente porta Adder (C (arry) = X AND Y, S (um) = X XOR Y):

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

Usa quattro Adder M1, M2, M3, M4 per aggiungere A + B, C + D, E + F, G + H, rispettivamente, con il risultante carry C1, C2, C3, C4 e sum S1, S2, S3, S4.

Usa due adduttori M5, M6 per aggiungere S1 + S2, S3 + S4, con il risultato risultante C5, C6 e somma S5, S6.

Utilizzare un Adder M7 per aggiungere S5 + S6 per ottenere C7 e S7.

Ora connect all porta a un singolo nodo indicatore come il seguente:

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

e forzare S7 (il modulo 2 della somma di 8 valori) ad essere 0 per questo circuito:

S7--1 -? - 1

Sostengo che questo circuito impone esattamente due valori da ABCDEFGHON, poiché può essere solo un numero pari (poiché S7 è 0) e non possono esserci più di 3 valori ON (poiché solo uno di C1-C7 è ON).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.