SlideShare uma empresa Scribd logo
1 de 8
Algoritmos Computacionales Proyecto #5
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.
Arbol recubridor minimo un árbol recubridor mínimo de un grafo es un subgrafo que tiene que ser un árbol y contener todos los vértices del grafo inicial. Cada arista tiene asignado un peso proporcional entre ellos, que es un número representativo de algún objeto, distancia, etc.. , y se usa para asignar un peso total al árbol recubridor mínimo computando la suma de todos los pesos de las aristas del árbol en cuestión.
Árbol recubridor mínimo
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. La complejidad asintótica de este algoritmo es O(n3).
Código en JAVA publicclassAlgorithms{publicstaticGraphPrimsAlgorithm (Graph g, int s){int n = g.getNumberOfVertices ();Entry[] table = new Entry [n];for (int v = 0; v < n; ++v)table [v] = new Entry ();table [s].distance = 0;PriorityQueuequeue =new BinaryHeap (g.getNumberOfEdges());queue.enqueue (new Association (new Int (0), g.getVertex (s)));while (!queue.isEmpty ()){Associationassoc = (Association) queue.dequeueMin();Vertex v0 = (Vertex) assoc.getValue ();int n0 = v0.getNumber ();if (!table [n0].known)
{table [n0].known = true;Enumeration p = v0.getEmanatingEdges ();while (p.hasMoreElements ()){Edgeedge = (Edge) p.nextElement ();Vertex v1 = edge.getMate (v0);int n1 = v1.getNumber ();Intwt = (Int) edge.getWeight ();int d = wt.intValue ();if (!table[n1].known && table[n1].distance>d){ table [n1].distance = d;table [n1].predecessor = n0;queue.enqueue (new Association (new Int (d), v1));}}}}Graphresult = new GraphAsLists (n);for (int v = 0; v < n; ++v)result.addVertex (v);for (int v = 0; v < n; ++v)if (v != s)result.addEdge (v, table [v].predecessor);returnresult;}}
Ejemplo

Mais conteúdo relacionado

Mais procurados

Integración de funciones trigonométricas
Integración de funciones trigonométricasIntegración de funciones trigonométricas
Integración de funciones trigonométricasangiegutierrez11
 
Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)
Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)
Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)edi.euitio
 
Tablas Hash (Sergio Sánchez Marcos)
Tablas Hash (Sergio Sánchez Marcos)Tablas Hash (Sergio Sánchez Marcos)
Tablas Hash (Sergio Sánchez Marcos)edi.euitio
 
Tablas hash (Eduardo Priego López)
Tablas hash (Eduardo Priego López)Tablas hash (Eduardo Priego López)
Tablas hash (Eduardo Priego López)edi.euitio
 
Diapositivas:funcion lineal.
Diapositivas:funcion lineal.Diapositivas:funcion lineal.
Diapositivas:funcion lineal.imbacuan
 
Tablas hash (Sergio Esturillo Cenizo)
Tablas hash (Sergio Esturillo Cenizo)Tablas hash (Sergio Esturillo Cenizo)
Tablas hash (Sergio Esturillo Cenizo)edi.euitio
 
Tablas hash(Margarita Arias Pérez)
Tablas hash(Margarita Arias Pérez)Tablas hash(Margarita Arias Pérez)
Tablas hash(Margarita Arias Pérez)edi.euitio
 
Tablas hash(Roberto Valdés Pérez)
Tablas hash(Roberto Valdés Pérez)Tablas hash(Roberto Valdés Pérez)
Tablas hash(Roberto Valdés Pérez)edi.euitio
 
Tablas Hash (Leticia Gutiérrez Sánchez)
Tablas Hash (Leticia Gutiérrez Sánchez)Tablas Hash (Leticia Gutiérrez Sánchez)
Tablas Hash (Leticia Gutiérrez Sánchez)edi.euitio
 
Tabla Hash (Sergio González Amor)
Tabla Hash (Sergio González Amor)Tabla Hash (Sergio González Amor)
Tabla Hash (Sergio González Amor)edi.euitio
 
El algoritmo a (asterisco)
El algoritmo a (asterisco)El algoritmo a (asterisco)
El algoritmo a (asterisco)Cristina Lopez
 
Tablas hash (Aitor Alonso Álvarez)
Tablas hash (Aitor Alonso Álvarez)Tablas hash (Aitor Alonso Álvarez)
Tablas hash (Aitor Alonso Álvarez)edi.euitio
 

Mais procurados (19)

Integración de funciones trigonométricas
Integración de funciones trigonométricasIntegración de funciones trigonométricas
Integración de funciones trigonométricas
 
Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)
Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)
Tablas hash (Pablo Amado Rodríguez Fernández - Grupo L)
 
Tablas Hash (Sergio Sánchez Marcos)
Tablas Hash (Sergio Sánchez Marcos)Tablas Hash (Sergio Sánchez Marcos)
Tablas Hash (Sergio Sánchez Marcos)
 
Arreglos en C++
Arreglos en C++Arreglos en C++
Arreglos en C++
 
Tablas hash (Eduardo Priego López)
Tablas hash (Eduardo Priego López)Tablas hash (Eduardo Priego López)
Tablas hash (Eduardo Priego López)
 
Diapositivas:funcion lineal.
Diapositivas:funcion lineal.Diapositivas:funcion lineal.
Diapositivas:funcion lineal.
 
Tabla HASH
Tabla HASHTabla HASH
Tabla HASH
 
Grafos
GrafosGrafos
Grafos
 
Integrales
IntegralesIntegrales
Integrales
 
Integraci
IntegraciIntegraci
Integraci
 
Tablas hash (Sergio Esturillo Cenizo)
Tablas hash (Sergio Esturillo Cenizo)Tablas hash (Sergio Esturillo Cenizo)
Tablas hash (Sergio Esturillo Cenizo)
 
Integrales
IntegralesIntegrales
Integrales
 
Tablas hash(Margarita Arias Pérez)
Tablas hash(Margarita Arias Pérez)Tablas hash(Margarita Arias Pérez)
Tablas hash(Margarita Arias Pérez)
 
Tablas hash(Roberto Valdés Pérez)
Tablas hash(Roberto Valdés Pérez)Tablas hash(Roberto Valdés Pérez)
Tablas hash(Roberto Valdés Pérez)
 
Tablas Hash (Leticia Gutiérrez Sánchez)
Tablas Hash (Leticia Gutiérrez Sánchez)Tablas Hash (Leticia Gutiérrez Sánchez)
Tablas Hash (Leticia Gutiérrez Sánchez)
 
Integrales primera formula
Integrales primera formulaIntegrales primera formula
Integrales primera formula
 
Tabla Hash (Sergio González Amor)
Tabla Hash (Sergio González Amor)Tabla Hash (Sergio González Amor)
Tabla Hash (Sergio González Amor)
 
El algoritmo a (asterisco)
El algoritmo a (asterisco)El algoritmo a (asterisco)
El algoritmo a (asterisco)
 
Tablas hash (Aitor Alonso Álvarez)
Tablas hash (Aitor Alonso Álvarez)Tablas hash (Aitor Alonso Álvarez)
Tablas hash (Aitor Alonso Álvarez)
 

Destaque (20)

algoritmos
algoritmosalgoritmos
algoritmos
 
Ejercicios bucles
Ejercicios buclesEjercicios bucles
Ejercicios bucles
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Grafos 2
Grafos 2Grafos 2
Grafos 2
 
1.3 Introduccion a los Algoritmos
1.3 Introduccion a los Algoritmos1.3 Introduccion a los Algoritmos
1.3 Introduccion a los Algoritmos
 
Algoritmos computacionales
Algoritmos computacionalesAlgoritmos computacionales
Algoritmos computacionales
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Diagrama
DiagramaDiagrama
Diagrama
 
Introdución a C#
Introdución a C#Introdución a C#
Introdución a C#
 
Algoritmos en c++
Algoritmos en c++Algoritmos en c++
Algoritmos en c++
 
Practicas sencillas para C#
Practicas sencillas para C# Practicas sencillas para C#
Practicas sencillas para C#
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
 
Algoritmo cotidiano
Algoritmo cotidianoAlgoritmo cotidiano
Algoritmo cotidiano
 
Ejercicios pseint
Ejercicios pseintEjercicios pseint
Ejercicios pseint
 
C sharp
C sharpC sharp
C sharp
 
Unidad2 programas while , do while y for
Unidad2 programas while , do while  y forUnidad2 programas while , do while  y for
Unidad2 programas while , do while y for
 
Algoritmos cotidianos
Algoritmos cotidianosAlgoritmos cotidianos
Algoritmos cotidianos
 
Sintaxis Pseint Ciclos Repetitivos
Sintaxis Pseint Ciclos RepetitivosSintaxis Pseint Ciclos Repetitivos
Sintaxis Pseint Ciclos Repetitivos
 
Ejercicios c#
Ejercicios c#Ejercicios c#
Ejercicios c#
 
Ciclos
CiclosCiclos
Ciclos
 

Semelhante a Algoritmos computacionales

Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Spimy
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosfher969
 
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3matediscretas
 
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORAREPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORADavid Hernandez
 
Presentación OR Problemas de Caminos Más Cortos
Presentación OR Problemas de Caminos Más CortosPresentación OR Problemas de Caminos Más Cortos
Presentación OR Problemas de Caminos Más CortosRosa E Padilla
 
Funcion recursiva
Funcion recursivaFuncion recursiva
Funcion recursivacricaseco
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLABdwquezada
 
Metodos numericos..pptx
Metodos numericos..pptxMetodos numericos..pptx
Metodos numericos..pptxErickMalaveS
 
Matlab INIT
Matlab INITMatlab INIT
Matlab INITTensor
 
Matlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioMatlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioTensor
 
jaisan
jaisanjaisan
jaisanjai
 

Semelhante a Algoritmos computacionales (20)

Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
Presentacion del Proyecto de Construccion de una Wiki - Grupo 3
 
arrays
arraysarrays
arrays
 
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORAREPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
REPRESENTACION DE RELACIONES Y DIGRAFOS EN LA COMPUTADORA
 
Presentación OR Problemas de Caminos Más Cortos
Presentación OR Problemas de Caminos Más CortosPresentación OR Problemas de Caminos Más Cortos
Presentación OR Problemas de Caminos Más Cortos
 
Funcion recursiva
Funcion recursivaFuncion recursiva
Funcion recursiva
 
Informe
InformeInforme
Informe
 
Floyd Prim y Kruscal
Floyd Prim y KruscalFloyd Prim y Kruscal
Floyd Prim y Kruscal
 
Grafos
GrafosGrafos
Grafos
 
Flujo en redes
Flujo en redesFlujo en redes
Flujo en redes
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
Manual matlab
Manual matlabManual matlab
Manual matlab
 
Cursos de MATLAB
Cursos de MATLABCursos de MATLAB
Cursos de MATLAB
 
Metodos numericos..pptx
Metodos numericos..pptxMetodos numericos..pptx
Metodos numericos..pptx
 
Matlab INIT
Matlab INITMatlab INIT
Matlab INIT
 
Matlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioMatlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecio
 
12637788.ppt
12637788.ppt12637788.ppt
12637788.ppt
 
jaisan
jaisanjaisan
jaisan
 
Matematicas discretas
Matematicas discretasMatematicas discretas
Matematicas discretas
 

Algoritmos computacionales

  • 2. 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.
  • 3. Arbol recubridor minimo un árbol recubridor mínimo de un grafo es un subgrafo que tiene que ser un árbol y contener todos los vértices del grafo inicial. Cada arista tiene asignado un peso proporcional entre ellos, que es un número representativo de algún objeto, distancia, etc.. , y se usa para asignar un peso total al árbol recubridor mínimo computando la suma de todos los pesos de las aristas del árbol en cuestión.
  • 5. 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. La complejidad asintótica de este algoritmo es O(n3).
  • 6. Código en JAVA publicclassAlgorithms{publicstaticGraphPrimsAlgorithm (Graph g, int s){int n = g.getNumberOfVertices ();Entry[] table = new Entry [n];for (int v = 0; v < n; ++v)table [v] = new Entry ();table [s].distance = 0;PriorityQueuequeue =new BinaryHeap (g.getNumberOfEdges());queue.enqueue (new Association (new Int (0), g.getVertex (s)));while (!queue.isEmpty ()){Associationassoc = (Association) queue.dequeueMin();Vertex v0 = (Vertex) assoc.getValue ();int n0 = v0.getNumber ();if (!table [n0].known)
  • 7. {table [n0].known = true;Enumeration p = v0.getEmanatingEdges ();while (p.hasMoreElements ()){Edgeedge = (Edge) p.nextElement ();Vertex v1 = edge.getMate (v0);int n1 = v1.getNumber ();Intwt = (Int) edge.getWeight ();int d = wt.intValue ();if (!table[n1].known && table[n1].distance>d){ table [n1].distance = d;table [n1].predecessor = n0;queue.enqueue (new Association (new Int (d), v1));}}}}Graphresult = new GraphAsLists (n);for (int v = 0; v < n; ++v)result.addVertex (v);for (int v = 0; v < n; ++v)if (v != s)result.addEdge (v, table [v].predecessor);returnresult;}}