Como vimos nesta questão , declarações lógicas complexas podem ser expressas em termos dos conectivos simples do Campo Minado generalizado. No entanto, o caça-minas generalizado ainda possui redundâncias.
Para evitar essas redundâncias, definimos um novo jogo chamado "Generalized-1 Minesweeper".
O Campo Minado Generalizado-1 é uma versão do Campo Minado reproduzida em um gráfico arbitrário. O gráfico possui dois tipos de vértice, um "indicador" ou um "valor". Um valor pode ser ativado ou desativado (uma mina ou um insucesso), porém seu estado é desconhecido para o jogador. Um indicador informa que exatamente uma das células adjacentes está ligada (uma mina). Os indicadores não contam como minas.
Por exemplo, a seguinte placa para o Campo Minado Generalizado nos diz que as células A e B são minas ou nenhuma delas.
(No diagrama, os indicadores são marcados em cinza enquanto os valores são em branco)
Diferente do caça-minas normal, em que você clica nos valores que estão desativados para revelar indicadores, não existe esse mecânico no caça-minas generalizado. Um jogador simplesmente determina para quais estados do gráfico podem satisfazer seus indicadores.
Seu objetivo é fazer um 2
caça-minas generalizado-1. Você criará uma estrutura no Generalized-1 Minesweeper, de modo que haja 8 células específicas para as quais todas as configurações possíveis de valores tenham exatamente duas células ativadas. Isso significa que ele se comporta exatamente como o 2
faz no tradicional caça-minas. Ao escrever sua solução, você não deve ter valores específicos em mente para células de valor. (Em resposta à pergunta de H.PWiz, é permitido que algumas células de valor possam ser dedutíveis do estado)
Pontuação
Suas respostas serão pontuadas pelo número de vértices no gráfico final menos 8 (para as 8 entradas), com uma pontuação menor sendo melhor. Se duas respostas estiverem vinculadas nessa métrica, o desempate será o número de arestas.
fonte
Respostas:
42 vértices, 56 arestas
Cada variável é um vértice de valor e cada caixa é um vértice indicador com arestas para as variáveis dentro dela. As entradas são x 1 , ..., x 8 . Por exemplo, aqui está uma solução com minas em x 3 e x 5 , com as minas destacadas em verde.
As restrições horizontais garantir que exatamente um dos um 's e exatamente um dos b ' s tem uma mina. Nessas duas colunas, r não possui uma mina, mas nas outras seis colunas. (Note-se que um e b não podem ambos ter uma mina na mesma coluna). Cada entrada x é oposta a R na sua coluna, de modo exactamente duas entradas tem minas como desejado.
Para
k
entradas, isso usa5k+2
vértices (3k
valor e2k+2
indicador) e7k
arestas. Aqui, ask=8
entradas fornecem 42 vértices e 56 arestas.fonte
50 vértices, 89 arestas
Baseado no portão lógico da resposta de H.PWiz.
Cada um
*
está ativado quando as duas entradas respectivas estão ativadas. Para lidar com o caso de uma única entrada, usamos os valores intermediáriosa=A&!B
etc. conectar todos os três valoresa
,b
eA&B
à entrada de um nível secundário de portões nos dá uma entrada eficaz deA|B
(isso poupa vértices mais!(!A&!B)
):Estes
*
estão ativados se duas de suas entradas (correspondentes a quatro das entradas originais) estiverem ativadas, exceto no caso dos pares já abordados acima. Enquanto isso, podemos conectar os#*#
nós a um portão final. Portanto, temos os seguintes resultados:Estes abrangem todos os 28 casos de duas entradas. Resta então conectar um indicador final a esses sete valores. Se menos de duas entradas estiverem ativadas, nenhuma delas estará ativada, portanto o indicador estará desligado. Se mais de duas entradas estiverem ativadas, mais de uma delas estará ativada e o indicador apagado.
fonte
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
, isso parece certo para você?197 vértices, 308 arestas
Eu vim com essa resposta ontem à noite, mas retive a postagem porque era uma pontuação muito alta. No entanto, uma vez que supera a outra resposta por tantas, acho que devo publicá-la.
Eu uso o seguinte configurado em todos os 28 pares de células de valores em
ABCDEFGH
?
representa uma célula de valor que não estáABCDEFGH
. Aqui, quando?*
é ON ,A
eB
são ambos diante. Caso contrário,A
eB
pode estar em qualquer outra configuração.Eu conecto todos os 28
?*
s em uma célula indicadora. Isso significa que apenas um parABCDEFGH
terá dois ON . O que é suficiente para garantir que exatamente duas das minhas células de saída estejam LIGADASfonte
?
s corresponde a um dos 4 estados deA B
.354 nós, 428 arestas
Só para provar que é possível. Melhorarei isso mais tarde com algum cache.
(espero que não haja erro de código)
Tentei escrever um programa Mathematica aqui para verificar a validade do programa, mas provavelmente não funciona porque existem muitas variáveis.
O resultado foi gerado por programa de computador: Experimente online!
Eu uso um portão que se parece com isso:
onde
(#)
são 1 indicadores,(a)
..(f)
são valores.Então,
Além disso, este portão
dá
. Use esses dois tipos de portas que você pode construir quaisquer expressões.
Obviamente, este é para afirmar que
(a)
deve ser verdade:fonte
81 nós, 108 bordas
Usando 13 nós e 14 arestas, criamos o seguinte gate Adder (C (arry) = X AND Y, S (um) = X XOR Y):
Use quatro Adicionadores M1, M2, M3, M4 para adicionar A + B, C + D, E + F, G + H, respectivamente, com o transporte C1, C2, C3, C4 resultante e a soma S1, S2, S3, S4
Use dois Adicionadores M5, M6 para adicionar S1 + S2, S3 + S4, com o transporte C5, C6 resultante e a soma S5, S6.
Use um Adder M7 para adicionar S5 + S6 para obter C7 e S7.
Agora, conecte todos os carregamentos a um único nó indicador, como o seguinte:
e forçar S7 (o módulo 2 da soma de 8 valores) a ser 0 por este circuito:
Argumento que esse circuito força exatamente dois valores
ABCDEFGH
para estarem LIGADOS, pois só pode ser um número par (já que S7 é 0) e não pode haver mais de 3 valores LIGADOS (já que apenas um de C1-C7 está LIGADO).fonte