0% encontró este documento útil (0 votos)
189 vistas3 páginas

Algoritmo Primm JAVA

Este documento presenta el algoritmo de Prim implementado en Java por el estudiante Samuel Alejandro Campos Herros para el curso de Diseño y Análisis de Algoritmos impartido por el profesor Oliver en la Facultad de Estudios Superiores Aragón de la UNAM. El algoritmo encuentra el árbol recubridor mínimo de un grafo conexo no dirigido utilizando una lista de vértices considerados y manteniendo la distancia mínima a cada vértice.

Cargado por

Sach AnimeAnimal
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
189 vistas3 páginas

Algoritmo Primm JAVA

Este documento presenta el algoritmo de Prim implementado en Java por el estudiante Samuel Alejandro Campos Herros para el curso de Diseño y Análisis de Algoritmos impartido por el profesor Oliver en la Facultad de Estudios Superiores Aragón de la UNAM. El algoritmo encuentra el árbol recubridor mínimo de un grafo conexo no dirigido utilizando una lista de vértices considerados y manteniendo la distancia mínima a cada vértice.

Cargado por

Sach AnimeAnimal
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

Universidad Nacional Autónoma de México

Facultad de Estudios Superiores Aragón

“Algoritmo de Primm, programado en JAVA”

Que presenta el alumno:

Campos Herros, Samuel Alejandro

Para la Asignatura de

Diseño y Análisis de Algoritmos

Impartida por el Prof.

Oliver

México, D.F. a 21 de Septiembre del 2010.


1
Algoritmo de Primm, programado en JAVA.

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Methods;

import Frames.Result;
import java.util.ArrayList;

/**
*
* @author SACH
*/
public class Primm {

Double[] vertices;
String[] padres;
int padreactual, padrefuturo;
Double verticemenor;
ArrayList<Integer> padresconsiderados = new ArrayList();

public Primm(int numnod, boolean[][] conexiones, Double[][] costos, int inicio) {

vertices = new Double[numnod];


padres = new String[numnod];
for (int i = 0; i < vertices.length; i++) {
vertices[i] = Double.POSITIVE_INFINITY;
padres[i] = null;
}
vertices[inicio-1] = 0.0;
padres[inicio-1] = "sin padre";
padresconsiderados.add(inicio);
padreactual = inicio-1;

while (padresconsiderados.size() < numnod) {


System.out.println("padre actual: "+padreactual);
if(padresconsiderados.contains(1)){
verticemenor = costos[padreactual][1];
padrefuturo = 1;
}else{
verticemenor = costos[padreactual][0];
padrefuturo = 0;

2
}
for (int j = 0; j < numnod; j++) {
System.out.println("vertice menor: "+verticemenor);
if (verticemenor > costos[padreactual][j] && padresconsiderados.contains(j+1) == false) {
verticemenor = costos[padreactual][j];
System.out.println("cambió menor: "+verticemenor);
padrefuturo = j;
System.out.println("padre futuro: "+padrefuturo);
}
}
padresconsiderados.add(padrefuturo+1);
padres[padrefuturo] = String.valueOf(padreactual+1);
vertices[padrefuturo] = verticemenor;
padreactual = padrefuturo;
System.out.println(padresconsiderados);
}

for(int s = 0; s < padres.length; s++){


System.out.print(padres[s]+" ");
}
System.out.println("");
for(int s = 0; s < padres.length; s++){
System.out.print(vertices[s]+" ");
}

Result muestra = new Result(padres, vertices, padresconsiderados);

}
}

También podría gustarte