Tengo una grilla con inicio, final y algunas paredes. Las unidades toman la ruta más corta (moviéndose solo hacia arriba/abajo/izquierda/derecha) desde el principio hasta el final, sin pasar por las paredes.¿Cómo detectar cuadrados en una cuadrícula que NUNCA puede ser parte de una ruta más corta después de agregar bloques?
El usuario se le permite añadir tantas paredes adicionales, ya que quiere cambiar la ruta.
Sin embargo, observe que se añaden, no importa cuántas paredes o dónde se añaden, hay algunas plazas que puede Nunca ser la parte del camino más corto!
Estas plazas no pueden ser parte de la ruta más corta!
Estoy buscando una manera de detectar qué cuadrados nunca pueden ser parte de la ruta más corta.
Los casos anteriores son fáciles de encontrar; pero hay casos más complejos. Considere:
En la imagen anterior, ninguno de los cuadros con puntos rojos nunca puede ser parte de la mejor ruta, porque sólo hay una entrada a esa zona, y es sólo dos espacios de ancho. Si tuviera tres espacios de ancho, o si se eliminara alguna de las paredes, la mayoría de esos cuadrados podrían ser parte del mejor camino.
He estado tratando de encontrar una manera de detectar casos como el anterior (principalmente usando min-cuts y rellenos de inundación), pero sin éxito. ¿Alguien sabe de una manera de resolver este problema?
Una característica común que comparten sus dos ejemplos es tener un [separador de clics] (http://en.wikipedia.org/wiki/Vertex_separator) de tamaño 1 o 2. ¿Puede pensar en un ejemplo en el que este no es el caso? – krjampani
@jkraju, no he pensado en un ejemplo donde las células muertas (es decir, las células que no pueden formar parte de ninguna ruta más corta) no tienen separadores de tamaño 1 o 2; pero * es * fácil pensar en ejemplos con separadores de tamaño 2 para celdas no muertas. –
@ jwpat7 Solo estaba considerando separadores que mantienen s y f en el mismo componente. Tal vez estabas pensando en separadores de 2 camarillas que separan a s de f? Estoy de acuerdo en que es fácil construir un ejemplo así. – krjampani