Cómo demostrar que este gráfico todavía puede estar fuertemente conectado

Tome cualquier gráfico G fuertemente conectado y elija cualquiera de los dos vértices aib [para n = 1 la tesis es trivial]. Hay un camino de a a b y de b a a, elíjalos y vea cuántos vértices visitan mientras tanto, llame a esto k (k = número de vértices visitados, incluidos ayb). Está bastante claro que este ciclo podría haber tenido como máximo 2k-2 bordes: ayb aparecen solo una vez en el ciclo y cualquier otro vértice aparece como máximo dos veces.

Entonces, para la conectividad de esta parte del gráfico, solo como máximo los bordes 2k-2 fueron de hecho cruciales, si hay otros bordes entre estos vértices, son innecesarios y podrían eliminarse. Intentaremos extender esta afirmación a todo el gráfico, si podemos demostrar para todo el gráfico que uno puede encontrar como máximo 2n-2 bordes que son cruciales, entonces la tesis se vuelve obvia. Entonces, tienes estos k vértices (llámalos visitados) conectados en algún ciclo. Si no hay vértices no visitados, la prueba ha finalizado. Si los hay, intentemos expandir nuestra “red de nodos visitados” tomando cualquier borde que vaya de un vértice visitado a uno no visitado. El gráfico está fuertemente conectado, por lo que debe existir la posibilidad de regresar de este vértice, es decir, debe haber una ruta desde este vértice no visitado hasta al menos uno de los visitados. Tome el camino más corto, obviamente, no aparecen nodos en él dos veces. Así que hemos fundado una ruta: | vértice visitado -> m vértices no visitados -> algún otro vértice visitado |, donde no aparece ningún nodo dos veces (aparte del punto inicial y final posiblemente podría ser el mismo). Esta ruta agregó m vértices a nuestra red visitada a expensas de agregar m + 1 bordes cruciales. Repita este procedimiento hasta que no se vean vértices.

En el primer paso, hemos agregado k vértices al introducir no más de 2k-2 bordes cruciales. En otros pasos, hemos estado agregando m vértices a la vez mediante la introducción de m + 1 aristas, así que no importa cuál sea m, m + 1 <= 2m, es decir, no hemos agregado más de 2m aristas en ese momento. Como al final no hay vértices no visitados, hemos agregado no más de 2n-2 bordes cruciales en todo el procedimiento.

(¿Cuál es la razón por la que necesitabas esta propiedad por cierto ya que no es una tarea, es una subtarea de algún problema más interesante en el que estás pensando?)

More Interesting

¿Cuáles son los algoritmos de coincidencia de patrones más comunes?

¿Cuáles son los 10 algoritmos que uno debe conocer para resolver la mayoría de los problemas de algoritmos?

Cómo combinar la ordenación por fusión y la ordenación por peine

¿Cuáles son todas las áreas donde las estructuras de datos se aplican en escenarios del mundo real?

¿Cómo saben los codificadores cómo codificar e implementar un algoritmo instintivamente?

¿Cuál es la diferencia entre los algoritmos de Dijkstra, Kruskal y Prim?

¿Por qué encontrar el trabajo múltiple menos común?

¿Cuáles son algunos algoritmos importantes que aún no están cubiertos en Mahout? ¿Qué algoritmos de ML le gustaría agregar a la caja de herramientas?

¿Cuál es el mejor algoritmo de cifrado real utilizado en el almacenamiento de datos basado en hardware?

¿Cuál es la diferencia entre Algorithm y API?

¿Aprender las estructuras de datos usando Python en lugar de C afectará mi comprensión de las estructuras de datos?

¿Es posible resolver un problema de cambio de monedas para algunos elementos cíclicos a través de la programación dinámica si no se permite el uso de monedas adyacentes?

¿Cuál es un buen algoritmo de hash para identificar de forma exclusiva una URL en una base de datos?

¿Qué patrones iterativos y recursivos se pueden expresar como O (1), O (log2n), O (n) u O (n2) en notación O grande?

¿Qué pasos debo seguir para comenzar el desarrollo de software? Tengo poco conocimiento de C / C ++ / C # y algoritmos y estructuras de datos.