Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila.

Slides:



Advertisements
Presentaciones similares
Estructuras de control
Advertisements

5. Estructuras no lineales estáticas y dinámicas
PRACTICO N° 6 GRAFOS año: 2012.
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
Instrucciones y excepciones
Teoría de Grafos I semestre 2009 UNIVERSIDAD NACIONAL DE INGENIERIA
Listas enlazadas c++ Prof. Franklin Cedeño.
Estructuras de datos y algoritmos
“GRAFOS” Chacón Zamora José Christian González García Andrea
Razonamiento Explícito y Experimentación en la Algoritmia
Funciones. Programación, Algoritmos y Estructuras de Datos.
Desarrollo de Aplicaciones para Internet
Investigación Operativa II
Tema 5 Grafos. Implementación (I)..
Tratamiento de listas en Java
Dependencias Funcionales
Marzo 2007 Lenguajes Visuales Clase III.
Cont. Arbol Binario de Búsqueda
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Modelos de Conectividad
Agrupamiento de relaciones no lineales entre expresiones de genes
Arreglos: Vectores en JAVA
class Circulo extends Circunferencia Circunferencia perimetro Circunferenciaradio Circulo area Circulo.
Estructuras de Control
PROGRAMACIÓN ORIENTADA A OBJETOS
Tema 9 Estructuras.
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
Relajación y Procesamiento híbrido de restricciones Diferentes técnicas de relajación Algunas técnicas híbridas populares.
Matemáticas para Ciencias de la Computación MCC3182
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Ciudad de Könisberg, Prusia, en XVIII:
Temas importantes para el desarrollo de la segunda parte del TPE
Teoría de Grafos lógica y algoritmos.
Matemáticas Discretas
Estructura de Datos y Algoritmos

Estructuras de Datos Arreglos.
Primer Parcial -> Tema 1 Minería de Datos Universidad del Cauca.
Programación Orientada a Objetos
Informática Ingeniería en Electrónica y Automática Industrial
Árboles Binarios Estructuras de Datos.
EXPRESIONES Y SENTENCIAS
GEOMETRIA BASICA.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
Matemáticas Discretas
Relajación y procesamiento híbrido de restricciones Diferentes técnicas de relajación Algunas técnicas híbridas populares.
Universes: Lightweight Ownership for JML Werner Dietl Peter Müller.
Sesión 3: Teoría de Grafos
Introducción a la Programación “Conceptos Básicos” Semestre de Otoño 2006 Claudio Gutiérrez Soto.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Algoritmos y Estructura de Datos
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Isomorfismo Dos grafos son isomorfos si existe una función de P a P´ tal que: (x,y) e E si solo si (f(x),f(y)) e E´
Programación orientada a objetos Capítulo 4 Agrupar objetos.
02/06/08 REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA.
Compiladores Análisis de Flujo de Datos. 2 Resumen Overview de análisis de control de flujo Expresiones disponibles Algoritmo para calcular expresiones.
Guayaquil, 28 de Octubre del 2014 Destreza: Clasificar ángulos de acuerdo a su amplitud y posición Tema: Clasificación de los ángulos ¿Qué son los ángulos?
Programación Básica Bachillerato Ingeniería en Informática Lic. Carlos H. Gutiérrez León.
Factorías e Iterables Introducción del concepto de patrón de diseño Construcción de tipos para recorridos con for extendido Fundamentos de Programación.
Este material ha sido desarrollado para alumnos que cursan la asignatura de Programación Básica impartida en el primer semestre en la Facultad de Ingeniería.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Tipos List y Set con tipos genéricos Estructura for extendido Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
APANTANLLAMIENTO AB.
Clase 1. Clase 7 Clase 8.
COMO SE GRABA ARCHIVOS EN UN CD.
AB CD.
Clase
Transcripción de la presentación:

Correspondencia de grafos RDF Claudio Gutiérrez Julio Águila

¿Cómo determinar si dos archivos RDF representan lo mismo? Problema: pueden representar el mismo modelo pero este puede estar declarado en orden distinto. Utilidad: determinar equivalencia entre modelos representados (mismo significado) Introducción

Ejemplo <rdf:RDF xmlns:rdf=“ xmlns:t=“ xmlns:base=“ >

<rdf:RDF xmlns:rdf=“ xmlns:t=“ xmlns:base=“ > Ejemplo

Ejemplo _:a3 “Robert” _:a1 “John” _:a1 _:a9 _:a1 _:a3 _:a9 “Terry” _:a6 “Jeremy” _:a1 _:a6 _:a3 “Jeremy” _:a6 “Terry” _:a1 “John” _:a1 _:a9 _:a1 _:a3 _:a9 “Robert” _:a1 _:a6 John RobertJeremyTerry

Ejemplo _:a1 “John” _:a1 _:a9 _:a9 “Terry” _:a1 _:a3 _:a3 “Robert” _:a1 _:a6 _:a6 “Jeremy” _:a1 _:a9 _:a9 “Robert” _:a1 _:a3 _:a3 “Jeremy” _:a1 _:a6 _:a6 “Terry” _:a1 “John”

Ejemplo _:a1 _:a3 _:a6 _:a9 “Terry” “Robert” “Jeremy” “John” _:a1 “John” _:a1 _:a9 _:a9 “Terry” _:a1 _:a3 _:a3 “Robert” _:a1 _:a6 _:a6 “Jeremy”

Ejemplo _:a1 _:a3 _:a6 _:a9 “Terry” “Jeremy” “John” _:a1 _:a9 _:a9 “Robert” _:a1 _:a3 _:a3 “Jeremy” _:a1 _:a6 _:a6 “Terry” _:a1 “John” “Robert”

Ejemplo _:a1 _:a3 _:a6 _:a9 “Terry” “Robert” “Jeremy” “John” _:a1 _:a3 _:a6 _:a9 “Terry” “Jeremy” “John” “Robert”

Algoritmo de fuerza bruta IF |V1| = |V2| SET n = |V1| SINO no son isomorficos REPEAT GEN MAPPING DE V1 2 V2 IF CHECK EDGES es isomorfico BREAK n! combinaciones O(n ) 2

Algoritmo con clasificación de nodos IF |V1| = |V2| SET n = |V1| SINO no son isomorficos CLASIFIQUE G1 & G2 SEGÚN INVARIANTE FOREACH CLASS C IF |V1,c| = |V2,c| ASOCIE C con una clase en G2 SINO no son isomorficos REPEAT GEN MAPPING DE V1 2 V2 IF CHECK EDGES es isomorfico BREAK grado de los nodos otros

Clasificación de nodos por adyacencia AB CD E F AB CD E F { [A,E,F],[B,C],[D] }INVARIANTE=GRADO 321

Clasificación de nodo iterativa IF |V1| = |V2| SET n = |V1| SINO no son isomorficos CLASIFICAR nodos de V1 & V2 en una sola clase REPEAT REPEAT // reclasificación FOREACH NODO RECLASIFIQUE Adyacencia con otras clases y con nodos de la misma IF CADA CLASE TIENE 1 ELEMENTO RETURN es isomorfico; IF NOT ASOCIAR POR CARD. DE CLASE Biyección por cardinalidad RETURN no es isomorfico; IF (NEW.CLASIFICACION = OLD.CLASIFICACION | | BREAK; EXISTE CLASE CON CARDINALIDAD <= COTA) Cardinalidad máxima para fuerza bruta USANDO LA CLASE CON CARD. MENOR FUERZA BRUTA SOBRE Cmin IF CHECK NODES G1 = G1 – Cmin; G2 = G2 - Cmin

Clasificación de nodo iterativa AB CD E F {A,B,C,D,E,F} 2.- { [A,E,F],[B,C],[D] } 3.- { [A],[E,F],[B,C],[D] } A=(0,0,2,0) B=(1,1,0,1) C=(1,1,0,1) D=(0,2,2,0) E=(0,0,1,1) F=(0,0,1,1) SELECT

Clasificación de nodo iterativa AB CD E F A D E1 E2 E3 E4 E5 E6 E7E8 E1 E4 E5E6 E7 E3 E8 E2B CE F

Isomorfismo de Grafos a Través de Subgrafos de Mayor Longitud Si dos Grafos son Isomorficos, entonces los subgrafos de mayor longitud también lo son. (Transitividad e Inducción). El tiempo en calcular el subgrafo de mayor longitud es menor que el tiempo total involucrado en determinar si dos grafos son isomorficos. El objetivo es determinar los subgrafos de los grafos A y B, si los subgrafos(A) y subgrafo(B) son iguales entonces existe una gran probabilidad de que A y B sean iguales.

Algoritmo El objetivo es utilizar una heurística con información en los arcos de los grafos. Para ello debe existir un prepocesamiento de los grafos. El prepocesamiento supone una asignación numérica de los vértices y de los arcos. No debería de existir problemas de colisiones.

Algoritmo DESCOMPOSITION(B) 1. let B={G 1,G 2 } and D(B)=0 2. S max, G1 =  3. S max, G2 =  4. S max, G1 =descompose(G 1, S max,G1, v 1,G1 ) 5. S max, G2= descompose(G 2, S max,G2,v 1,G2 )

DESCOMPOSE(G, S max,v) 1. S' max =0 2. suc=sucesores(G,v) 3. DephtMarkVertice(G,v) 4. CicleMarkVertice(G,v) 1. for all suc of v 6. (a) If(!IsDepthVerticeMark (G,v i )) 7. (b ) If(!IsCicleVerticeMark (G,v i )) 8. (b.1) S' max = DESCOMPOSE(G, S max, v suc ) 9. (c) if S max < S' max 10. (c.1) S max =S' max 11. (d) else continue 12. CicleDesmarkVertice(G,v i ) 13. return(S max ) Algoritmo

MATCHING_SUBGRAPHS(S’, S) 1. if(S’.lp== S.lp && S’.tcs== S.tcs. && S’.tcg==S.tcg && S’.E== S.E) 2. (a) for all V  S 1 3. (a.a) if ((S’.et1(v)== S.et1(v)  S’.et2(v)== S.et2(v)) &&S’.a(v)== S.a(v) && S’.e(v)== S.e(v)) 4. (a.b) continue 5. (a.c) else return false 6. return true 7. else return false Algoritmo

Ejemplo

Tarea por realizar Modificar la estructura a lista enlazada Realizar las pruebas

Conclusiones Es posible usar algoritmos clásicos de isomorfismos de grafos para comparar grafos RDFcon nodos blancos. Dado que el uso standard de RDF no presenta casos patológicos donde los algoritmos anteriores no funcionen, en promedio el desempeño es satisfactorio.