Metodo Costo Minimo de TransporteDescripción completa
costo minimo de vida utilDescripción completa
costo minimoDescripción completa
Algebra
metodosDescripción completa
Teoria de GrafosDescripción completa
Descripción: grafos csm
grafos
Descripción: TEORIA DE GRAFOS
En analisis de redes se analiza la mayor vía para ahorrar costos, se plantea unos ejercicios que nos ayudará a la comprensión.
Descripción: actividad 1 unidad 2
Tarea de grafosDescripción completa
Descripción: La figura muestra un mapa con 4 distritos A, B, C y D. Se trata de pintar cada distrito con un color de forma que, dos regiones con un borde común (que no sea un punto) tengan distintos colores y q...
Tarea 5 de la asignatura Matemáticas discretas del ICCDescripción completa
Descripción completa
Descripción completa
Full description
Full description
Grafos Árbol de expa expansión nsión de costo mínimo ESTRUCTURAS DE DATOS DATOS Y PROGRAMACIÓN ( LSI/PI) PROGRAMACIÓN (PUI)
Un grafo es un árbol? Un grafo se dice que es un árbol si es conexo y acíclico (no tiene ciclos). Los primeros dos grafos son árboles:
Árboles y bosque Por tanto, un grafo es un árbol entre cada par de vértices existe un camino y sólo uno. Un grafo se dice un bosque si sus componentes conexas son árboles. Teorema.- Sea G(V,E) un grafo. Son equivalentes…
a) G es un árbol b) Cada par de vértices distintos de V esta conectado por un único camino. c) G es conexo y toda arista de G es de separación d) G no tiene ciclos y |V| = |E| + 1 e) G es conexo y |V| = |E| + 1 f) G no tiene ciclos pero al añadirle una arista a G se crea un único circuito
Árbol de expansión Definición.- Sea G un grafo, un árbol de expansión o generador de G es un subgrafo conexo de G que tiene los mismos vértices que G y no tiene circuitos.
Árbol de expansión Un árbol de expansión para un grafo G = (V, E) no dirigido conectado con pesos es un árbol libre que conecta todos los vértices en V. El costo de un árbol de expansión está determinado por la suma de los costos de las aristas en el árbol. Problema: hallar el árbol de expansión de costo mínimo para G.
Problema común en el planeamiento de redes de distribución y comunicación.
Árbol de expansión Propiedad : Sea G = (V, E) un grafo conectado con pesos.
Sea U un subconjunto del conjunto de vértices V. Si e=(u, v) es la arista de menor costo considerando que u U y v V-U, entonces hay un árbol de expansión de costo mínimo que incluye (u, v) como arista.
V-U
U e
Árbol de expansión Supongamos que a cada arista se le asocia un número positivo (su peso). Un árbol de expansión se dice de peso mínimo si la suma de los pesos de las aristas que lo componen es lo menor posible Para calcular el árbol de peso mínimo existen 2 algoritmos: ◦ Kruskal: Se van escogiendo las aristas de menor peso hasta conseguir un árbol de peso mínimo ◦ Prim: Consiste en ir borrando las aristas de mayor peso posible y que no sean aristas de separación. Puede haber más de un árbol de expansión de peso mínimo, pero todos deben tener el mismo peso.
Algoritmo de Prim Similar al algoritmo de Dijkstra.
Aumenta el árbol T un vértice cada vez.
El array d[v] contiene el menor costo de la arista que conecta v con el árbol.
Tiene una complejidad O(n2).
Algoritmo de Prim La idea básica consiste en añadir, en cada paso, una arista de peso mínimo a un árbol previamente construido. Más explícitamente: Paso 1. Se elige un vértice u de G y se considera el árbol S={u} Paso 2. Se considera la arista e de mínimo peso que une un vértice de S y un vértice que no es de S, y se hace S=S+e Paso 3. Si el nº de aristas de T es n-1 el algoritmo termina. En caso contrario se vuelve al paso 2
ALGORITMO DE PRIM
Algoritmo de Prim Prim (G, T ) { T= U = {1} while U V { seleccionar la arista (u, v) de menor costo tal que u U y v V-U T=T {(u, v)} U=U {v} } }
Algoritmo de Prim 1
1
6
6
5 1
2
5
4
5
1
2
5
2
4 6
6
2
4
5
1 5
4
5
5
6
5
6
4
5
2 6
6
3 5
5
4
5 3
2
4 6
5 1
2
3
4
6
6
6
5
3
2
4
1 1
2
4
5
6
3
6
6
6
5
5
5
1
6
3
2
3
6
3
1 2
4
5
5 1
3
6 5
6
5
3 3
1
6
6
3 5
2
4 6
6
Algoritmo de Kruskal Añade una arista cada vez por orden de peso.
Acepta una arista si no produce un ciclo.
Se implementa usando una cola de prioridad.
Tiene una complejidad O(e log e).
Algortimo de Kruskal La idea básica consiste en elegir sucesivamente las aristas de mínimo peso sin formar ciclos.
Paso 1. Se elige la arista de mínimo peso e y se considera S={e}.
Paso 2. Sea e’ la arista de mínimo peso tal que e’ no existe en S y S+e' es un grafo acíclico. Se hace S=S+e'.
Paso 3. Si S tiene n-1 aristas, el algoritmo termina. En caso contrario se vuelve al paso 2.
ALGORITMO DE KRUSKAL
Algoritmo de Kruskal Kruskal (G, T) { for cada vértice v en G C(v) = {v}
/* grupo de vértices */
Q = cola de prioridad { ( u, v) G, clave = w(u, v) } T= while Q 0 { Extraer de Q la arista (v, u) con menor peso if C(v) C(u) T=T { (v, u) } C(v) = C(v) C(u) } }