Complexité d'un problème de réseau de commutation

17

Un réseau de commutation (le nom est inventé) est constitué de trois types de nœuds:

  • un nœud de démarrage
  • un nœud d'extrémité
  • un ou plusieurs nœuds Switch

Le nœud de commutation a 3 sorties: Gauche, Haut, Droite; a deux états L et R et un état cible TL ou TR . Chaque commutateur peut être traversé avec les règles suivantes:

  • toujours de gauche à haut; l'état du commutateur passe à L
  • toujours de droite à en haut; l'état du commutateur passe à R
  • de haut en gauche uniquement si le commutateur est dans l'état L; l'état ne change pas
  • de Haut à Droite si le commutateur est dans l'état R; l'état ne change pas
  • jamais de gauche à droite ou de droite à gauche

nœud de commutation
Figure 1. Commutez le nœud dans l'état L avec l'état cible TR

Ces propriétés contiennent également:

  • 0, 1 ou 2 des sorties d'un interrupteur peuvent être isolées (non connectées à un autre interrupteur);
  • un chemin peut simplement "toucher" un interrupteur pour changer son état: entrer de gauche et sortir de gauche ou entrer de droite et sortir de droite;
  • il n'y a aucune restriction sur le nombre de fois qu'un interrupteur peut être traversé / touché.

Le problème de décision est: "Existe-t-il un chemin du nœud de début au nœud de fin de sorte que tous les états finaux des commutateurs correspondent à l'état cible correspondant?"

Évidemment, tous les commutateurs qui ne sont pas initialement dans leur état cible doivent être traversés (ou touchés) au moins une fois;

Ceci est un dessin rapide d'un réseau trivial (fait avec Excel ... je vais en faire un meilleur):

exemple2

Une solution triviale est:

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

EDIT 2:

  1. Ce problème est-il connu? ---> vous m'avez donné la bonne référence à la thèse de Hearn (graphes de contraintes);

Le problème est dans ; avant de poster un croquis de ma preuve qu'il est en NP, j'ai trouvé une erreur; donc les questions ouvertes sont à nouveau:NPSPACE=PSPACE

2. Est - ce ?NP

3. Le problème a-t-il une chance d'être ?NP-complete

Marzio De Biasi
la source
1
J'ai jeté un rapide coup d'œil au papier proposé (maintenant je vais le lire plus attentivement), mais mon problème semble différent: les commutateurs changent d'état selon la direction dans laquelle ils sont traversés. Dans l'article, les commutateurs sont "fixes" et les problèmes (plus simples) sont du type: "Existe-t-il une configuration de commutateur telle que ...".
Marzio De Biasi
4
@Vor: Cela semble étroitement lié aux jeux de logique de contrainte de Demaine et Hearn (je pense que les groupes de thèses de Hearn.csail.mit.edu/mac/users/bob/hearn-thesis-final.pdf sont un très bon résumé de ce travail ). Je me demande si l'on pourrait résoudre la complexité de votre problème en utilisant leurs techniques. Il semble que ce soit NEXP complet ...
Joshua Grochow
3
J'allais juste souligner le travail Hearn / Demaine - notez qu'il est également disponible sous forme de livre maintenant, "Games, Puzzles & Computation" (ISBN 978-1-56881-322-6), et cela semble vraiment pertinent pour cela question.
Steven Stadnicki
2
@Kaveh: pour mon niveau d'expertise c'est trivialement dans NPSPACE = PSPACE. Il ne semble pas pouvoir "compter"; mais je ne vois aucune preuve facile que si une solution existe, alors il existe une autre solution dans laquelle chaque commutateur n'est traversé / touché qu'un nombre constant de fois.
Marzio De Biasi
1
Juste une note: une version plus simple de ce puzzle a également été considérée par Dillenburg et Nelson et elle est présentée dans leur recherche de périmètre de
Carlos Linares López

Réponses:

2

Le problème est au moins NP-difficile, par une réduction de 3-SAT.

Considérez d'abord le problème de trouver un chemin du début à la sortie du graphique dirigé suivant avec la restriction qu'aucun chemin ne peut visiter les trois nœuds (carrés) d'une clause:

3SAT

(X1X2X3)(X1¬X2X4)

Nous transformons ces graphiques en un réseau de commutateurs. Pour cela, nous utilisons trois gadgets:

  1. Chaque nœud de cercle et bord bidirectionnel devient un fil , formant les connexions entre les commutateurs.
  2. Chaque bord dirigé devient un gadget unidirectionnel composé d'un seul interrupteur (voir ci-dessous).
  3. Chaque nœud carré représente l'un des trois commutateurs qui font partie d'un gadget Clause (voir ci-dessous).

Dans les illustrations suivantes, les commutateurs sont dessinés sous la forme de deux flèches entrantes, dont l'une est pointillée (désactivée). La direction cible est dessinée avec un cercle noir (de telle sorte que la flèche pleine doit finalement être sur le côté du cercle).

Remarque: Nous utiliserons des caractères gras pour distinguer la sortie du graphique des sorties de gadgets.

ABBAX1X2X3X1X2X3

Gadget unidirectionnel Gadget Clause

Rappelons que pour le graphique d'origine, trouver un chemin qui a conduit à la sortie et n'a pas visité les trois nœuds carrés d'une clause était NP-complet. Considérons maintenant le problème de l'atteinte de la sortie du graphe transformé sans se soucier des positions cibles des commutateurs.

Observez que tout chemin qui est une solution au problème de graphe d'origine est également une solution pour le graphe transformé. Supposons donc qu'un chemin pour le graphe transformé ne soit pas une solution pour le graphe d'origine. Cela peut se produire dans deux cas:

  1. BA
  2. Un chemin parcourt les trois chemins d'un gadget de clause .

Dans le premier cas, le gadget unidirectionnel doit d'abord avoir été parcouru dans la direction souhaitée, auquel cas le chemin aurait tout aussi bien pu éviter de le traverser en premier lieu.

Considérez donc le deuxième cas où le chemin traverse les trois commutateurs d'un gadget Clause . Ensuite, ce gadget aura ses trois commutateurs inversés (voir ci-dessous). C'est là que nous utilisons les positions cibles. Notez que l' épine dorsale grise du gadget Clause ne peut plus être atteinte, ce qui signifie que les commutateurs ne peuvent plus être dirigés vers leurs positions cibles. Dans ce cas, nous disons que ce gadget de clause est irrécupérable.

Clause de blocage

Il reste à montrer que pour toute solution du problème de graphe d'origine, les interrupteurs du graphe transformé peuvent être placés dans leur position cible. Pour cela, nous utilisons le fait que le fil de sortie ne peut être atteint que lorsqu'il existe une solution, ou qu'un gadget Clause devient irrécupérable.

Pour placer les commutateurs dans leur position cible, nous pouvons maintenant ajouter des gadgets unidirectionnels supplémentaires du fil de sortie à l'entrée de chaque gadget unidirectionnel existant , ainsi qu'aux trois fils de sortie de tous les gadgets de clause . Ensuite, une fois que le jeton atteint la sortie , tous les gadgets unidirectionnels supplémentaires peuvent être parcourus (et ainsi placés dans leur position cible), et également placer les commutateurs restants dans leurs positions cibles (sauf s'il existe une clause irrécupérable). Enfin, le jeton peut retourner à la sortie et le puzzle est résolu.

Nous devons remarquer que les gadgets Clause ne peuvent être récupérés que lorsqu'ils sont entrés à partir d'une sortie non traversée; et en raison des gadgets unidirectionnels qui sont placés entre les gadgets Clause et la variable suivante, cela ne peut se produire que lorsque le fil de sortie est atteint.

Par conséquent, le problème du réseau de commutation est NP-difficile.


On ne sait toujours pas si le problème est en NP ou PSPACE-hard. Une réduction de la dureté NP en construisant un réseau de commutateurs plan aura de grandes implications pour les variantes restreintes de Sokoban, notamment parce que tous les commutateurs sont équivalents au gadget Sokoban ci-dessous.

Sokoban

Tim
la source