Complexidade de um problema de rede do switch


17

Uma rede de comutadores (o nome é inventado) é criada com três tipos de nós:

  • um nó Iniciar
  • um nó final
  • um ou mais nós do Switch

O nó do comutador possui 3 saídas: Esquerda, Cima, Direita; possui dois estados L e R e um estado alvo TL ou TR . Cada switch pode ser percorrido com as seguintes regras:

  • sempre da esquerda para cima; o estado do comutador muda para L
  • sempre da direita para cima; o estado do comutador muda para R
  • de cima para esquerda somente se o interruptor estiver no estado L; o estado não muda
  • de cima para direita se o comutador estiver no estado R; o estado não muda
  • nunca da esquerda para a direita ou da direita para a esquerda

mudar o nó
Figura 1. Nó do comutador no estado L com o estado de destino TR

Essas propriedades também possuem:

  • 0, 1 ou 2 das saídas de um comutador podem ser isoladas (não conectadas a outro comutador);
  • um caminho pode simplesmente "tocar" um botão para alterar seu estado: entre da esquerda e saia da esquerda ou entre da direita e saia da direita;
  • não há restrições quanto ao número de vezes que um interruptor pode ser percorrido / tocado.

O problema da decisão é: "Existe um caminho do nó Inicial para o nó Final, de forma que todos os estados finais dos comutadores correspondam ao estado de destino correspondente?"

Obviamente, todos os switches que não estão inicialmente no estado de destino devem ser percorridos (ou tocados) pelo menos uma vez;

Este é um rápido sorteio de uma rede trivial (feita com o Excel ... eu vou fazer uma melhor):

exemplo2

Uma solução trivial é:

S -> 1 -> 2 -> 3 -> 2 -> E -> 1 -> E

EDIT 2:

  1. Esse problema é conhecido? ---> você me deu uma boa referência à tese de Hearn (gráficos de restrição);

NPSPUMACE=PSPUMACE

NP

NP-compeuete


11
Dei uma rápida olhada no artigo sugerido (agora vou lê-lo com mais cuidado), mas meu problema parece diferente: os comutadores mudam de estado de acordo com a direção em que são percorridos. No artigo, os comutadores são "corrigidos" e os problemas (mais simples) são do tipo: "Existe uma configuração de comutador, de modo que ...".
Marzio De Biasi

4
@Vor: Isso parece intimamente relacionado aos jogos lógicos de restrição de Demaine e Hearn (acho que a tese de Hearn groups.csail.mit.edu/mac/users/bob/hearn-thesis-final.pdf é uma excelente descrição deste trabalho ) Gostaria de saber se alguém poderia resolver a complexidade do seu problema usando as técnicas deles. Parece que ele poderia ser NEXP-complete ...
Joshua Grochow

3
Eu apenas apontaria o trabalho de Hearn / Demaine - observe que ele também está disponível como livro agora, "Jogos, Quebra-Cabeças e Computação" (ISBN 978-1-56881-322-6), e definitivamente parece pertinente a isso questão.
Steven Stadnicki

2
@ Kaveh: para o meu nível de experiência, é trivial em NPSPACE = PSPACE. Parece não ser capaz de "contar"; mas não vejo nenhuma prova fácil de que, se houver uma solução, existe outra solução na qual cada chave é percorrida / tocada apenas um número constante de vezes.
Marzio De Biasi

11
Apenas uma nota lateral: uma versão mais simples desse quebra-cabeça foi considerado também pela Dillenburg e Nelson e é apresentado em sua Nota Research Perímetro Pesquisa
Carlos Linares López

Respostas:


2

O problema é pelo menos NP-difícil, com uma redução de 3-SAT.

Primeiro, considere o problema de encontrar um caminho do início até a saída do seguinte gráfico direcionado com a restrição de que nenhum caminho pode visitar os três nós (quadrados) de uma cláusula:

3SAT

(X1 1X2X3)(X1 1¬X2X4)

Transformamos esses gráficos em uma rede de comutadores. Para isso, usamos três gadgets:

  1. Cada nó do círculo e borda bidirecional se torna um fio , formando as conexões entre os comutadores.
  2. Cada borda direcionada se torna um dispositivo unidirecional que consiste em um único comutador (veja abaixo).
  3. Cada nó quadrado representa um dos três comutadores que fazem parte de um gadget de cláusula (veja abaixo).

Nas ilustrações a seguir, os comutadores são desenhados como duas setas de entrada, uma das quais é tracejada (desativada). A direção do alvo é desenhada com um círculo preto (de modo que a seta sólida acabe por ficar ao lado do círculo).

Observação: usaremos negrito para distinguir a saída do gráfico das saídas dos gadgets.

UMABBUMAX1 1X2X3X1 1X2X3

Gadget unidirecional Gadget de cláusula

Lembre-se de que, para o gráfico original, a localização de um caminho que levava à Saída e não visitava todos os três nós quadrados de qualquer cláusula era NP-complete. Agora considere o problema de alcançar a Saída do gráfico transformado sem se preocupar com as posições de destino dos comutadores.

Observe que qualquer caminho que seja uma solução para o problema do gráfico original também é uma solução para o gráfico transformado. Portanto, suponha que um caminho para o gráfico transformado não seja uma solução para o gráfico original. Isso pode acontecer em dois casos:

  1. BUMA
  2. Um caminho percorre todos os três caminhos de algum dispositivo de cláusula .

No primeiro caso, o gadget unidirecional deve ter sido percorrido primeiro na direção pretendida; nesse caso, o caminho também pode ter evitado percorrê-lo.

Portanto, considere o segundo caso em que o caminho percorre todos os três comutadores de algum dispositivo da Cláusula . Em seguida, esse gadget terá todos os seus três interruptores ativados (veja abaixo). É aqui que fazemos uso das posições-alvo. Observe que o backbone cinza do gadget Cláusula não pode mais ser alcançado, o que significa que os comutadores não podem mais ser direcionados para suas posições de destino. Nesse caso, dizemos que esse gadget de cláusula é irrecuperável.

Cláusula de impasse

Resta mostrar que, para qualquer solução do problema do gráfico original, os comutadores do gráfico transformado podem ser colocados na posição de destino. Para isso, utilizamos o fato de que a ligação Exit só pode ser alcançada quando existe uma solução ou algum dispositivo da Cláusula se torna irrecuperável.

Para colocar os comutadores na posição de destino, agora podemos adicionar dispositivos unidirecionais adicionais do fio de saída à entrada de todos os dispositivos unidirecionais existentes , bem como os três fios de saída de todos os dispositivos da cláusula . Então, quando o token atingir a Saída , todos os outros dispositivos unidirecionais podem ser percorridos (e, assim, colocados na posição de destino) e também colocar os demais switches nas posições de destino (a menos que exista uma cláusula irrecuperável). Finalmente, o token pode retornar à Saída e o quebra-cabeça é resolvido.

Devemos observar que os gadgets da Cláusula só podem ser recuperados quando inseridos a partir de uma saída não transferida; e devido aos gadgets unidirecionais que são colocados entre os gadgets da Cláusula e a próxima variável, isso não pode acontecer até que o fio de saída seja alcançado.

Portanto, o problema de rede do switch é difícil para NP.


Ainda não está claro se o problema está no NP ou no PSPACE. Uma redução de dureza NP que construa uma rede de comutação plana terá grandes implicações para variantes restritas do Sokoban, principalmente porque todos os comutadores são equivalentes ao gadget Sokoban abaixo.

Sokoban

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.