Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad libre
Risaralda - Pereira
2018
Grafo de Warshall
Introducción..................................................................................................................................... 4
Antecedentes del algoritmo ........................................................................................................ 5
Autores .............................................................................................................................................. 5
Stephen Warshall ....................................................................................................................... 5
Vida temprana ......................................................................................................................... 5
Empleo ...................................................................................................................................... 6
Bernard Roy ................................................................................................................................. 6
Algoritmo de warshall ............................................................................................................... 6
CARACTERÍSTICAS DEL ALGORITMO DE WARSHALL ................................................. 6
CÓMO FUNCIONA ...................................................................................................................... 7
Matriz de Caminos ..................................................................................................................... 7
ALGORITMO ................................................................................................................................ 8
WARSHALL MÁS EFICIENTE .................................................................................................. 8
Pseudo-codigo ........................................................................................................................ 9
ALGORITMO DE WARSHALL – PARA LA CERRADURA TRANSITIVA ...................... 10
Teorema: ..................................................................................................................................... 10
Código en c++ ....................................................................................................................... 10
Análisis ....................................................................................................................................... 13
Reseña de aplicación del algoritmo (Para que se usa) .................................................. 13
Bibliografia ..................................................................................................................................... 14
Introducción
El siguiente trabajo explicara el grafo de warshall buscando complementar los
conceptos y explicaciones , conformándolo de tal manera que sea una compilación
de todos aquellos temas , sacando las caracterisitcas importantes y resaltantes;
desde la historia de este, hacia el funcionamiento principal y su paso a paso, este
trabajo va dirigido a la explicación y profundización del paso a paso y las
aplicaciones que tiene este grafo con sus ejemplos
Antecedentes del algoritmo
El algoritmo de Warshall, descrito en 1959 por Bernard Roy, es un algoritmo de
análisis sobre grafos para encontrar el camino mínimo en grafos dirigidos
ponderados. El algoritmo encuentra el camino entre todos los pares de vértices en
una única ejecución.
Hay una anécdota interesante sobre su prueba de que el algoritmo de cierre
transitivo , ahora conocido como algoritmo de Warshall , es correcto. Él y un colega
de Operaciones Técnicas apostaron una botella de ron a quién primero podría
determinar si este algoritmo siempre funciona. A Warshall se le ocurrió su prueba
de la noche a la mañana, ganando la apuesta y el ron , que compartió con el
perdedor de la apuesta. Como a Warshall no le gustaba sentarse en un escritorio,
hizo gran parte de su trabajo creativo en lugares poco convencionales, como en
un velero en el Océano Índico o en un huerto de limoneros griego. .
Autores
Stephen Warshall
Vida temprana
Warshall nació en la ciudad de Nueva York y fue a una escuela
pública en Brooklyn . Se graduó de la escuela preparatoria AB Davis en Mount
Vernon, Nueva York y asistió a la Universidad de Harvard , donde recibió
una licenciatura en matemáticas en 1956. Nunca recibió un título avanzado, ya que
en ese momento no había programas disponibles en sus áreas de interés. Sin
embargo, tomó cursos de posgrado en varias universidades diferentes y contribuyó
al desarrollo de la informática y la ingeniería de software . En el año académico
1971–1972, dio una conferencia sobre ingeniería de
software en francés.universidades
Empleo
Después de graduarse de Harvard, Warshall trabajó en ORO (Oficina de
Investigación de Operaciones), un programa establecido por Johns Hopkins para
hacer investigación y desarrollo para el Ejército de los Estados Unidos . En 1958,
dejó ORO para ocupar un puesto en una empresa llamada Operaciones Técnicas,
donde ayudó a construir un laboratorio de investigación y desarrollo para proyectos
de software militar. En 1961, dejó las Operaciones Técnicas para
fundar Massachusetts Computer Associates . Más tarde, esta compañía se convirtió
en parte de Applied Data Research (ADR). Después de la fusión, Warshall formó
parte de la junta directiva de ADR y administró una variedad de proyectos y
organizaciones. Se retiró de ADR en 1982 y enseñó una clase semanal de hebreo
bíblico en el Templo Ahavat Achim en Gloucester, Massachusetts.
Bernard Roy
Algoritmo de warshall
El algoritmo de Warshall es un ejemplo de algoritmo booleano. A partir de una tabla
inicial compuesta de 0`s (no hay correspondencia inicial en el grafo) y 1`s (hay una
correspondencia, llamase “flecha”, entre nodos), obtiene una nueva matriz
denominada “Matriz de Clausura Transitiva” en la que se muestran todas las
posibles uniones entre nodos, directa o indirectamente. Es decir, si de “A” a “B” no
hay una “flecha”, es posible que si haya de “A” a “C” y luego de “C” a “B”. Luego,
este resultado se vera volcado en la matriz final.
Encuentra si posible un camino entre cada uno de los vértices de la gráfica dirigida.
Es decir no presenta las distancia entre los vértices Se basa en un concepto llamado
cerradura transitiva de la matriz de adyacencia El algoritmo de Warshall sirve para
encontrar la cerradura transitiva de una relación binaria en el conjunto A. La clausura
transitiva de una relación binaria es la relación binaria mas pequeña que siendo
transitiva contenga el conjunto de pares de la relación binaria original
CÓMO FUNCIONA
Matriz de Caminos
Es una matriz cuadrada P, Que representa si hay o no camino Entre dos vértices
Vi y Vj
Definiciones básicas La matriz de adyacencia para G es una matriz A de
dimensión nxn, de elementos booleanos, donde A[i,j] es verdadero si y solo si
existe un arco que vaya del vértice i al j. Con frecuencia se exhibirán matrices
adyacencias con 1 para verdadero y 0 para falso. Figura: Matriz de adyacencia
Programación y diseño de algoritmos Algoritmo de Warshall Universidad
Politécnica de Victoria
ALGORITMO
El anterior algoritmo es poco eficiente, peor Cuando el grafo tiene muchos vértices
Warshall propuso otro algoritmo mas eficiente Calcular una secuencia de matrices
cuadradas De 0s(no hay camino) y 1s(hay camino) P0, P1, P2, P3… PN La
diferencia entre Pk y Pk-1 Se basa añadir un vértice Vk-1 al análisis Para saber y a
través de Vk-1 hay camino entre V1 y Vj
Pseudo-codigo
Teorema:
scanf("%d", &a);
if(a20) printf("Introduzca un valor entre 1 y 20: ");
}while(a20);
printf("\n");
//ENTRADA DE DATOS DE LA MATRIZ DE RELACION M_0
for(i=0;i<a;i++){
for(j=0;j<a;j++){
printf("Valor de A_%d_%d: ", i+1, j+1);
do{
scanf("%d", &Matriz[0][i][j]);
if(Matriz[0][i][j]!=0&&Matriz[0][i][j]!=1) printf("Introduzca solo UNO o
CERO para Valor de A_%d_%d: ", i+1, j+1);
}while(Matriz[0][i][j]!=0&&Matriz[0][i][j]!=1);
}
}
}
}
//CALCULAMOS LA MATRIZ K
for(i=0;i<a;i++){
for(j=0;j<a;j++){
//multiplicamos M_i_k * M_k_j
temp_1[i][j]=temp_2[i][k]*temp_2[k][j];
//Se hace la suma binaria para obterner la matriz k
Matriz[k+1][i][j]=sumabin(Matriz[k][i][j],temp_1[i][j]);
}
}
if(k!=a) printf("\n\nMatriz_%d\n", k);
else printf("\n\nMatriz_%d FINAL: \n\n", k);
//imprime la matriz_k
for(i=0;i<a;i++){
printf("\n");
for(j=0;j<a;j++){
printf(" %d ", Matriz[k][i][j]);
}
}
getch();
}
Análisis
Si utilizamos matrices booleanas, para encontrar todos
los de desde se necesita hacer operaciones binarias. Debido a
que empezamos con y computamos la secuencia de matrices
booleanas , , , , el número total de operaciones binarias es
de . Por lo tanto, la complejidad del algoritmo es y puede
ser resuelto por una máquina determinista de Turing en tiempo polinómico.
Bibliografia
https://en.wikipedia.org/wiki/Stephen_Warshall
https://en.wikipedia.org/wiki/Bernard_Roy
http://alogorit-wars.blogspot.com/2013/04/resena-de-aplicacion-del-algoritmo-
para.html#links
http://alogorit-wars.blogspot.com/2013/04/el-algoritmo-de-warshall-encuentra-
la.html#links
https://verdadaurea.wordpress.com/2011/08/22/algoritmo-de-warshall-para-la-
cerradura-transitiva/
http://jcrd0730.wixsite.com/estr/single-post/2016/05/25/ALGORITMO-DE-
WARSHALL-1
http://dictionnaire.sensagent.leparisien.fr/Algoritmo%20de%20Floyd-Warshall/es-
es/
https://es.slideshare.net/whaleejaa/presentacin-algoritmo-warshall