Algoritmo de diseño y análisis curso de repaso de notas 10-- árbol recubridor mínimo

Algoritmo de diseño y análisis curso de repaso de notas 10-- árbol recubridor mínimo

Expansión mínima MST árbol

problemas de la carretera
, una pequeña ciudad algunas casas y parte de la carretera, y cada conexión por carretera y la conexión sólo dos casas, los costes de mantenimiento conectados u y v casa camino es w (u, v),
y ahora necesita sólo lo suficiente para reparar la carretera tal que: para mantener la comunicación entre las dos casas cada uno, los costes de mantenimiento mínimos.

En la foto hay conectividad con la ventaja de la casa de dibujo, el vértice de los costes de mantenimiento de carreteras para el lado derecho.
Encuentra una T, T subconjuntos E y W (t) = Σ ( en , v ) T w ( u , v ) \ Displaystyle \ sum _ {(u, v) ∈T} w (u, v)

características árbol de expansión mínima

  • No único
  • sin bucle
  • El número de lado MST es el número de vértices menos uno

MST generar
Procedimiento general:
crear un conjunto de aristas A, comenzando cuando la pieza
se añade gradualmente hacia el lado A y A es parte de un Grupo MST
si y sólo si A ∪ {(u, v) } es un subconjunto del MST, que dicho borde (u, v) es seguro para una

Un algoritmo general MST
Un ← conjunto vacío
, mientras que A no es un árbol de expansión (MST no se forma)
 no Encuentra un borde (U, V) de una caja fuerte que es (a lado para encontrar seguro (U, V))
  Un ← Un {∪ (U, V)}
devolver una

Cómo encontrar un lado de la seguridad?
Algunas definiciones:

  • De corte: Los vértices de la gráfica en dos dos conjuntos desconectados S y V - S
  • Si los dos puntos extremos de un borde de corte, respectivamente, en dos conjuntos S y V - S, decimos que corte a través del borde
  • Una colección de corte de una no intervención \ leftrightarrow conjunto A y el borde de corte no lo hacen de intersección
  • corte de luz a lo largo del borde \ leftrightarrow todos a través del borde de corte en el borde peso mínimo

Teorema:
A es un MST subconjunto, (S, V - S) es una no intervención de corte A, (u, v) se corta a través del borde de la luz, entonces, (u, v) es seguro para el A .

el algoritmo de Kruskal

  1. Cada vértice desde el principio, es decir, cada componentes de vértice
  2. Al seleccionar el lado de la luz LE, se quedará con los dos componentes están conectados entre sí
  3. Incrementando el conjunto de valores de prioridad por el orden de inspección de borde
  4. Ya sea para la conexión con un diferentes estructuras de datos de componentes conjunto relacionado de determinación borde

No es un conjunto de operaciones conexas

  1. MAKE-SET (u) para crear una colección, que contiene sólo los elementos u
  2. FIND-SET (u) que comprende una u, devuelve el elemento representativo
  • Cualquier elemento del conjunto tiene un atributo particular
  • conjunto S u S_u Característica está en orden alfabético primera letra
    Ej: S u S_u = {R, s, t, u}, FIND-SET (u) = r, FIND-SET (s) = r
  • Para un conjunto dado, devuelve el mismo valor
  1. UNIÓN (u, v) operación de fusión
    Ej: S u S_u = {r, s, t, u}, S v S_V = {V, x, y}
    UNION (u, v) = {r, s, t, u, v, x, y}

Kruskal (V, E, W)
 A ←空集
 para cada vértice v ∈ V
  hacen-SET (v)
 tipo E en orden no decreciente en peso w (权值递增排序)
 para cada (u, v) tomada a partir de la lista ordenada
  hacer si FIND-SET (u) ≠ FIND-SET (v) (属于不同的组件)
   entonces A ∪ {← A (u, v)}
    UNIÓN (u, v)
 de retorno Un

los costes de funcionamiento: O ( E l g V ) O (ELGV)
Árbol de expansión mínima
Prim algoritmo

  1. Un conjunto de aristas forman un árbol de
  2. Desde el comienzo de alguna raíz seleccionada
  3. cada vez
  • Identificar la hendidura ( V A VIRGINIA , V - V A VIRGINIA ) De Le
  • La adición de un LE
  • Repita hasta que todos los vértices en el árbol que comprende
  1. estrategia Greedy: cada adición de bordes laterales de los pesos de los árboles y el aumento mínimo

Cómo determinar rápidamente LE?
Use la cola de prioridad

  • Incluye el vértice (V árbol no todos - V A VIRGINIA )
  • Cada vértice se le asigna un valor de clave, a saber, el árbol conectado a cualquier lado (U, v) un peso mínimo de v
    si v y V A VIRGINIA Cualquier vértice no está conectado, entonces el valor de la clave \ infty
    los aumentos de nodo, los valores de clave de todos los nodos conectados a la misma hacer ajuste

Prim (V, E, W, r)
 Q ←空集
 para cada u ∈ V
  clave hacer [u] ← \ infty
    pi [u] ← NIL
 tecla [r] ← 0
 Q ← V
 mientras que Q ≠空集
   hacer u ← EXTRACT-MIN (Q)
   para cada v ∈ Adj [u]
    hacer si v ∈ Q y W (u, v) <tecla [v]
      entonces π [v] ← u
        tecla [v] ← w (u, v)

PRIM1
PRIM2
PRIM3
PRIM4
Análisis algoritmo
análisis de PRIM

Referencia: maestros Profesor Khoo Teck cursos roja

Publicado 25 artículos originales · ganado elogios 19 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_42605042/article/details/89811107
Recomendado
Clasificación