Está en la página 1de 7

z

Algoritmo de Prim
z
¿Qué es el algoritmo de Prim?

El algoritmo de Prim es un algoritmo perteneciente a la teoría de los


grafos para encontrar un árbol recubridor mínimo en
un grafo conexo, no dirigido y cuyas aristas están etiquetadas.

En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman


un árbol con todos los vértices, donde el peso total de todas las aristas en el
árbol es el mínimo posible. Si el grafo no es conexo, entonces el algoritmo
encontrará el árbol recubridor mínimo para uno de los componentes conexos
que forman dicho grafo no conexo.
z
z
Como se lleva acabo el algoritmo de
Prim

El algoritmo incrementa continuamente el tamaño de un árbol, comenzando por


un vértice inicial al que se le van agregando sucesivamente vértices cuya
distancia a los anteriores es mínima. Esto significa que en cada paso, las aristas
a considerar son aquellas que inciden en vértices que ya pertenecen al árbol.

El árbol recubridor mínimo está completamente construido cuando no quedan


más vértices por agregar.
z
Funcionamiento del algoritmo prim

El algoritmo podría ser informalmente descrito siguiendo los siguientes pasos:


 Inicializar un árbol con un único vértice, elegido arbitrariamente del grafo.
 Aumentar el árbol por un lado. Llamamos lado a la unión entre dos vértices:
de las posibles uniones que pueden conectar el árbol a los vértices que no
están aún en el árbol, encontrar el lado de menor distancia y unirlo al árbol.
 Repetir el paso 2 (hasta que todos los vértices pertenezcan al árbol)
z
A continuación se muestra una posible implementación del algoritmo de Prim. En esta implementación el grafo ha sido implementado
mediante su matriz de adyacencia. También se hace uso de los vectores VISTOS, VECINO y COSTE_MÍNIMO que tienen los vértices

seleccionados, el vértice más próximo de los almacenados en el vector VISTOS y la distancia del vértice más cercano respectivamente .
z
 Análisis de la complejidad computacional de Prim

A continuación se va a realizar el análisis del orden de complejidad temporal y espacial de


la implementación descrita anteriormente.
     Temporal
  Después de realizar el análisis del código, tal y como muestran los costes indicados en el
apartado anterior, se puede decir que, para el algoritmo de Prim,         el orden de
complejidad computacional temporal es de O (n 2). Siendo n el número de vértices del grafo.
     Espacial
  Como el grafo ha sido implementado mediante su matriz de adyacencia, entonces, para el
algoritmo de Prim, el orden de complejidad computacional espacial        es de O (n2), ya que
ésta es la complejidad espacial de la matriz de adyacencia utilizada para representar el
grafo. Siendo n el número de vértices del  grafo.

También podría gustarte