Dado un gráfico con vértices 2N de modo que existan dos vértices P y Q, con cada ruta de P a Q que contenga al menos N + 1 bordes, ¿cuál es el número mínimo de vértices que debemos eliminar para desconectar P y Q?

La respuesta es una si P y Q están originalmente conectados.

Aquí hay una prueba por contradicción. Asumimos que cualquier otro vértice que se elimine, P y Q todavía están conectados. Probaré que debería haber más de 2 * N vértices. La idea está relacionada con el teorema de corte mínimo de flujo máximo.

Podemos dividir todos los vértices en dos grupos con P en el primer grupo y Q en el segundo grupo. Dada nuestra suposición, si Q no tiene un vecino en el primer grupo, debería haber al menos dos vértices en el segundo grupo que tengan un vecino en el primer grupo, sin importar cómo dividimos los vértices. De lo contrario, P y Q no están conectados originalmente, o solo hay un vértice que tiene un vecino en el primer grupo para que podamos destruirlo para desconectar P y Q. Ambos contradicen nuestra suposición.

Ahora hacemos un BFS comenzando con P. Definimos dos grupos: el grupo A tiene los vértices visitados; el grupo B tiene los vértices restantes. Inicialmente, el grupo A tiene un solo vértice P, mientras que el grupo B tiene los vértices restantes 2 * N – 1. Como probé antes, habrá al menos dos vértices que tengan vecinos en el grupo A. Por lo tanto, se agregarán al menos dos vértices al grupo A después de la primera iteración del BFS. Y en las siguientes iteraciones, siempre que Q no tenga un vecino en el grupo A, podemos encontrar al menos otros dos vértices en el grupo B y agregarlos al grupo A.

Como la ruta más corta de P a Q no es más corta que N + 1, el BFS no terminará después de las primeras N iteraciones. Pero después de N iteraciones, hay al menos 1 + 2 * N vértices en el grupo A que es más de 2 * N.

More Interesting

Para los bucles, ¿cuál será más eficiente si se ha eliminado la optimización del compilador?

¿Cuál es la forma más fácil de demostrar que si la intersección de 2 rutas es un gráfico conectado, entonces la unión de las 2 rutas tiene al menos un circuito?

¿Cómo puedo diseñar una función hash que elija aleatoriamente 16 bits de un número de 32 bits?

¿Qué lenguaje, libro o técnica es el mejor punto de partida cuando estás frustrado con tus habilidades de programación y quieres tener una sólida formación en algoritmos y estructuras de datos?

¿Qué tan bien funcionan los algoritmos predictivos que analizan los guiones de películas?

¿Cuál es el algoritmo correcto para realizar la diferenciación usando un programa de computadora para cualquier función ingresada por el usuario?

¿Podría haber un límite superior en la 'inteligencia' de una IA?

¿Cuál es la principal ventaja de utilizar la búsqueda de profundización iterativa en comparación con la búsqueda de amplitud primero?

¿Cuál es el algoritmo más utilizado a nuestro alrededor?

¿Por qué todos me dicen que aprenda la estructura de datos y los algoritmos si quiero obtener un trabajo de desarrollo de software?

¿Usar un tipo de inserción de 50 elementos tendrá el mismo tiempo de ejecución que usar un tipo de inserción de 10 elementos 5 veces?

¿Son los métodos en algoritmos Java?

Probé el problema 'Impresión espiral de matriz' durante 2 días. Incluso después de ver la solución, sigo fallando. ¿Qué tengo que hacer?

¿Cuál es una buena estructura de datos para mapear una red de carreteras?

Visión por computadora: ¿cuáles son los documentos de lectura obligatoria para el algoritmo de seguimiento de objetos?