¿Se conoce la complejidad de este problema de ruta?

9

Instancia: un gráfico no dirigido Gcon dos vértices distinguidos st , y un entero k0 .

Pregunta: ¿Existe una ruta st en G , de modo que la ruta se cruce en la mayoría de los triángulos k ? (Para este problema, se dice que una ruta se cruza con un triángulo si la ruta contiene al menos un borde del triángulo).

Andras Farago
fuente
3
¿Esto esta mal? Asignamos peso a cada borde y luego encontramos el camino más corto. El peso de cada borde es el número de triángulos que incluyen ese borde. El peso de esta ruta no es igual al número de triángulos que encuentra, pero es una ruta st con un número mínimo de triángulos. (El posible problema es que podemos contar uno o más triángulos dos veces porque visitamos dos bordes de ese triángulo, pero la razón por la que los elegimos es que son más pequeños que atravesar el otro borde del triángulo y también tenemos una ruta simple significa dos bordes de un triángulo están uno al lado del otro).
Saeed
3
@Saeed No entiendo: ¿cuál es el argumento de que contar de más no te hace elegir un camino subóptimo? Su algoritmo es ciertamente una aproximación de 2. Tal vez una solución es agregar un borde (u,w) para cada ruta uvw con un peso igual al número de triángulos que contienen ambos (u,v) y (v,w)
Sasho Nikolov el
2
Bien, podemos ir de u a v y luego elegimos x (algún otro nodo que no esté en el triángulo uvw) y luego vamos a w, lo cual está mal (mi error fue que me perdí entre vértices que no están en el triángulo uvw) , pero con su corrección es correcto porque para cada ruta st con triángulos en el gráfico original hay una ruta de peso α en el gráfico auxiliar. Además, el peso de la ruta en el nuevo gráfico siempre es al menos como el número de triángulos en la ruta correspondiente en el gráfico original. αα
Saeed
1
Pienso un poco más al respecto, incluso después de arreglarlo no funciona. Lo siento, Andras, si traje una esperanza equivocada. Para ver por qué la solución es incorrecta, considere los vértices en una ruta P y tenemos un triángulo u , v , w y v , w , x y supongamos que los bordes v x y u w también son incidentes muchos triángulos Si usamos un nuevo borde artificial que conecta u - > w, entonces contamos el triángulo vu>v>w>xPu,v,wv,w,xvxuwu>w dos veces. PD: Mi razonamiento nuevamente fue incorrecto porque pensé que simplemente reemplazábamos u - > v y v - > w con un nuevo (multi) edge u - > w . Si agregamos esos bordes artificiales para cada camino, funcionará de manera trivial. Parece que es NPC. v,w,xu>vv>wu>w
Saeed
1
Mi idea no funcionará: necesitaría mantener varios conjuntos y creo que habrá demasiados.
reinierpost

Respuestas:

1

Suponga que no hay auto-bordes en .G

Para cada arista entre el nodo y v j en G , sea E [ i , j ] = 1 y E [ i , j ] = 0 si no hay arista. Calcular n × n matriz C [ i , j ] = n k = 1 E [ i , k ] E [ k , jvivjGE[i,j]=1E[i,j]=0n×n , que proporciona el número de rutas de dos saltos entre cada par de nodos v i y v j . Luego, para el borde entre v i y v j en G, calcule D [ i , j ] = E [ i , j ] C [ i , j ] de lo contrario, establezca D [ i , j ] = C[i,j]=k=1nE[i,k]E[k,j]vivjvivjGD[i,j]=E[i,j]C[i,j]D[i,j]=, que proporciona el número de triángulos de los que forma parte el borde (o infinito si no hay borde). La multiplicación de la matriz necesaria para calcular cuesta O ( n 3 ) (podría calcularse más rápido dependiendo de la dispersión de G ).CO(n3)G

Ahora calcule matriz A , de modo que A [ i , j ] = min ( D [ i , j ] , min k ( D [ i , k ] + D [ k , j ] - E [ i , j ] ) ) . es todos los caminos más cortos enn×nAA[i,j]=min(D[i,j],mink(D[i,k]+D[k,j]E[i,j]))DAD de longitud hasta dos aumentados para tener en cuenta los caminos que van a lo largo de dos bordes de algún triángulo.

Ahora solo calcule la ruta más corta entre y en en un nuevo gráfico del cual es la matriz de adyacencia (ponderada) usando Dijkstra (ya que todos los pesos de borde son positivos), es decir, y determine si , donde es el cierre sobre el semiring tropical (que da la matriz de distancia).v j G A A [ i , j ] k A vivjGAA[i,j]kA

Edgar
fuente