Générer un labyrinthe de tower defense, alias Trouver les K nœuds les plus vitaux («interdiction par nœud») dans un quadrillage non pondéré

22

Dans un jeu de tower defense, vous avez une grille NxM avec un départ, une arrivée et un certain nombre de murs.

Image1

Les ennemis empruntent le chemin le plus court du début à la fin sans passer par aucun mur (ils ne sont généralement pas contraints à la grille, mais pour simplifier, disons qu'ils le sont. Dans les deux cas, ils ne peuvent pas se déplacer à travers des "trous" diagonaux)

Image2

Le problème (pour cette question au moins) est de placer jusqu'à K murs supplémentaires pour maximiser le chemin que les ennemis doivent emprunter, sans bloquer complètement le départ depuis l'arrivée. Par exemple, pour K = 14

Image3


J'ai déterminé que c'est la même chose que le problème des "k nœuds les plus vitaux":

Étant donné un graphe non orienté G = (V, E) et deux nœuds s, t ∈ V, les k nœuds les plus vitaux sont les k nœuds dont la suppression maximise le chemin le plus court de s à t.

Khachiyan et al 1 ont montré que, même si le graphique n'est pas pondéré et bipartite, même approximant la longueur du chemin le plus court max dans un facteur 2 est NP-difficile (étant donné k, s, t) .

Tout n'est cependant pas perdu: plus tard, L. Cai et al 2 ont montré que, pour les "graphes de permutation bipartite", ce problème peut être résolu en temps pseudo-polynomial en utilisant le "modèle d'intersection".

Je n'ai pas pu trouver quoi que ce soit sur des graphiques en grille non pondérés en particulier, et je ne peux pas comprendre comment les "graphiques de permutation bipartite" sont liés, le cas échéant. Y a-t-il eu des recherches publiées concernant mon problème - peut-être que je regarde au mauvais endroit? Même un algorithme d'approximation pseudo-polynomiale décent fonctionnerait bien. Merci!


1 L. Khachiyan, E. Boros, K. Borys, K. Elbassioni, V. Gurvich, G. Rudolf et J. Zhao "On Short Path Interdiction Problems: Total and Node-Wise Limited Interdiction", Theory of Computer Systems 43 ( 2008), 2004-233. lien .
2 L. Cai et J. Mark Keil, "Trouver les k nœuds les plus vitaux dans un graphe d'intervalle." lien .

Remarque: cette question fait suite à ma question de stackoverflow trouvée ici .

BlueRaja - Danny Pflughoeft
la source
3
Une clarification: vous n'êtes pas autorisé à supprimer un ensemble de nœuds qui déconnecterait complètement le début de la fin?
David Eppstein
@David: Oui édité, désolé pour la confusion. Il doit encore y avoir une solution.
BlueRaja - Danny Pflughoeft

Réponses:

12

sfsfnmm(n1)sf(n1)l+(n2)sfsf

David Eppstein
la source
Belle réduction!
Marzio De Biasi
Bien sûr, c'est ce que je pensais étant donné les références dans la question; mais j'ai encore besoin d' une solution, et j'espérais quelque chose de mieux que le simple "recuit / algorithmes génétiques / similaires". Ma question est la suivante: existe-t-il (comme dans le cas du graphe de permutation bipartite ci-dessus) une solution pseudo-polynomiale connue, ou même une approximation à moitié décente qui garantit une certaine limite?
BlueRaja - Danny Pflughoeft
3
O(n/polylog)Ω(n1ϵ)
Je ne suis pas en mesure de suivre cette piste de logique, mais je vais vous croire sur parole et vous donner une coche très triste :( ✓. Merci d'avoir pris le temps de réfléchir et de répondre à cette question, professeur Eppstein!
BlueRaja - Danny Pflughoeft
Un an et beaucoup d'apprentissage (de ma part) plus tard, je comprends maintenant et suis d'accord avec cette preuve. Merci encore :)
BlueRaja - Danny Pflughoeft