240 likes | 456 Views
Investigación Operativa II. Árboles y caminos más cortos. Representación computacional. Problemas de árboles generadores de peso mínimo. Árboles generadores de peso mínimo. Un bosque es un grafo que no contiene ciclos como subgrafos . Un árbol es un bosque conexo. Bosque. Árbol.
E N D
Investigación Operativa II Árboles y caminos más cortos
Árboles generadores de peso mínimo • Un bosque es un grafo que no contiene ciclos como subgrafos. • Un árbol es un bosque conexo. Bosque Árbol
MST • Teorema: Todo grafo conexo tiene un árbol generador. Prueba:….
Enumeración… En un grafo completo con n nodos, existen n (n-2) árboles generadores diferentes
Criterio de optimalidad • Sea T un árbol generador de G
Criterio de optimalidad • Teorema: Sea T un árbol generador de G, las siguientes afirmaciones son equivalentes: • T es un árbol generador de peso mínimo. • Cada arista e, que no pertenece a T, es la más costosa en el circuito fundamental inducido por e. • Cada arista e, que pertenece a T, es la más barata en el corte fundamental inducido por e.
Otro algoritmo eficiente… Algoritmo de Prim • Seleccione un vértice v ∈ V(G), inicialice T := ( {v} , Ø ) • Mientras V(T) ≠ V(G) • Seleccione e ∈ δG(V(T)) con mínimocosto c(e)
¿Qué significa que un algoritmo sea eficiente? • Algoritmo: secuencias de instrucciones que resuelven cualquier instancia de un problema computacional definido rigurosamente. • Se debe tener una garantía de que la solución presentada es correcta y de que la ejecución del algoritmo termine. • La medida de ejecución más ampliamente aceptada para un algoritmo es el tiempo que se demora hasta producir una respuesta final.
Algoritmos eficientes… • El tiempo de ejecución, puede variar de computadora a computadora, por eso, se analiza un modelo generalizado, que no depende de la computadora en la que se ejecute el algoritmo y funcione para todas las instancias de un problema.
Algoritmos eficientes… • Por lo tanto, los requerimientos de tiempo, se expresarán en términos de número de operaciones elementales.(operaciones aritméticas, comparaciones, instrucciones de ramificación). Se asumen que todas estas operaciones requieren de una unidad de tiempo.
Algoritmos eficientes… • Para unificar el comportamiento de una instancia a otra, se consideran todas las entradas de un tamaño n juntas, y se considera la complejidad del algoritmo para ese tamaño de entrada como el comportamiento de peor caso de un algoritmo en cualquiera de esas entradas.
Algoritmos eficientes… • Nos interesa analizar la tasa de crecimiento de la complejidad de un algoritmo
Notación O, Ω y Θ • Cotas superiores asintóticas: Sea T(n), una función, el tiempo de ejecución de peor caso de un algoritmo con una instancia de tamaño n. Y Sea f(n) otra función. Se dice que T(n)= O(f(n)), si para n suficientemente grande, existe una constante c>0 tal que T(n) ≤ c*f(n)
Notación O, Ω y Θ • Cotas inferiores asintóticas: T(n) =Ω(f(n)), si existe una constante c>0, tal que T(n) ≥ c*f(n) • Cotas ajustadas asintóticamente: Si se puede mostrar que un tiempo de ejecución T(n) es a la vez O(f(n)) y Ω(f(n)), se dice que T(n)= Θ(f(n)), es decir si existen constantes c , c’>0, tales que c’*f(n)≤ T(n) ≤ c*f(n)
Algoritmos eficientes • Un algoritmo se dice eficiente, si complejidad crece polinomialmenteen el tamaño de sus entradas. Algoritmos para los cuales la complejidad asintótica no es un polinomio en sí pero están acotados por un polinomio, también clasifican dentro de este concepto.
Comparación de tiempos de ejecución • Para un computador que realiza un millón de operaciones por segundo