Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Grafos algoritmo de prim, Apuntes de Ingeniería Infórmatica

Asignatura: Estructuras de Datos No Lineales, Profesor: Mayte Gracía, Carrera: Ingeniería Informática, Universidad: UCA

Tipo: Apuntes

2013/2014

Subido el 01/09/2014

pegaitopsepse
pegaitopsepse 🇪🇸

4.8

(5)

6 documentos

1 / 14

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Dado un grafo no dirigido y conexo G = (V, A), se define un árbol generador (o de expansión)
de G como un árbol que conecta todos los vértices de V; su coste es la suma de los
costes de las aristas del árbol. Un árbol es un grafo conexo acíclico.
Árboles generadores de coste mínimo
Grafo G Árbol generador de G
Coste = 102
Árbol generador de G
Coste = 78
Q
G
B
M
T
R
S
E
12
22
5
10
6
8
15
Q
G
B
M
T
R
S
E
12
22
5
10
6
8
15
25
3013
20
10
11
Q
G
B
M
T
R
S
E
12
5
611
25
30
13
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Vista previa parcial del texto

¡Descarga Grafos algoritmo de prim y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Dado un grafo no dirigido y conexo G = (V, A), se define un

árbol generador

(o de expansión)

de G^ como un árbol que conecta todos los vértices de V; su coste es la suma de loscostes de las aristas del árbol. Un árbol es un grafo conexo acíclico.

Árboles generadores de coste mínimo Grafo G^

Árbol generador de GCoste = 102

Árbol generador de GCoste = 78

Q

G

B

M R^ T

E S

Q

G

B

M R^ T

E S

Q

G

B

M R^ T

E S

#include

"apo.h" //^ Arista

de^ un

grafo

ponderado

template

<typename

tCoste>

struct

aristaP

{

vertice

orig,

dest; tCoste

coste; aristaP(vertice

v=vertice(),

vertice

w=vertice(),

tCoste

c=tCoste()):

orig(v),

dest(w),

coste(c)

{}

}; //^ Orden

de^ aristas

de^ un

grafo

ponderado

template

<typename

tCoste>

bool^ operator

<(const

aristaP&

a1,^ const

aristaP&

a2)

{ return

a1.coste

<^ a2.coste;

}

Árboles generadores de coste mínimo

Algoritmo de Prim

//^ Incluir

la^ arista

a^ en^

el^ árbol

g^ y^ el

nuevo

vértice

en^ U.

g[a.orig][a.dest]

=^ g[a.dest][a.orig]

=^ a.coste;

vertice

u^ =^ U[a.orig]

?^ a.dest

:^ a.orig;

U[u]^ =

true; //^ Introducir

en^ el

APO^ las

aristas

adyacentes

al^ vértice

u

//^ que

no^ formen

ciclos. for^ (vertice

v^ =^ 0;

v^ <^ n;

v++)

if^ (!U[v]

&&^ G[u][v]

<^ GrafoP::INFINITO) A.insertar(aristaP(u,

v,^ G[u][v]));

} return

g; }

Algoritmo de Prim

Ejemplo

F^ F^

F^ F^

F^ F^

F^ F^

F

Inicialización

En^ rojo^ las aristas que hay en elAPO ordenadas por coste.

Algoritmo de Prim

Ejemplo

F^ F^

T^ F^

T^ F^

F^ F^

F

i = 1^

a = (3, 5, 10)

Algoritmo de Prim

Ejemplo

F^ T^

T^ F^

T^ F^

F^ F^

F

i = 2^

a = (5, 2, 7)

Algoritmo de Prim

Ejemplo

T^ T^

T^ F^

T^ T^

F^ F^

F

i = 4^

a = (0, 1, 24)

Algoritmo de Prim

Ejemplo

T^ T^

T^ F^

T^ T^

T^ F^

F

i = 5^

a = (6, 7, 25)

Algoritmo de Prim

Ejemplo

T^ T^

T^ T^

T^ T^

T^ F^

T

i = 7^

a = (7, 9, 10)

Algoritmo de Prim

Ejemplo

T^ T^

T^ T^

T^ T^

T^ T^

T

i = 8^

a = (9, 8, 5)