30.04.2013 Views

Teoría de Grafos

Teoría de Grafos

Teoría de Grafos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Algoritmos<br />

Métodos basados en grafos<br />

Carlos Aguirre Maeso<br />

Carlos.Aguirre@uam.es<br />

Escuela Politécnica Superior<br />

Universidad Autónoma <strong>de</strong> Madrid


Introducción.<br />

La teoría <strong>de</strong> grafos ha sido utilizada recientemente<br />

para:<br />

• Clasificación automática <strong>de</strong> secuencias <strong>de</strong> proteínas.<br />

• Detección <strong>de</strong> jerarquías <strong>de</strong> proteínas.<br />

• Análisis <strong>de</strong> re<strong>de</strong>s genéticas.<br />

• Reconstrucción <strong>de</strong> re<strong>de</strong>s genéticas gran<strong>de</strong>s obtenidas<br />

mediante modificación <strong>de</strong> genes.


<strong>Teoría</strong> <strong>de</strong> grafos.<br />

Un grafo G es un par <strong>de</strong> conjuntos (V,E)<br />

• V={v1,v2,....vn} es el conjunto <strong>de</strong> vértices<br />

• E={(vi,vj),(vi’,vj’)......} es un conjunto <strong>de</strong> pares no<br />

or<strong>de</strong>nados <strong>de</strong> elementos <strong>de</strong> V.<br />

• E se <strong>de</strong>nomina conjunto <strong>de</strong> ramas <strong>de</strong>l grafo<br />

• El numero <strong>de</strong> nodos se <strong>de</strong>nomina or<strong>de</strong>n <strong>de</strong>l grafo.<br />

• El número <strong>de</strong> ramas se <strong>de</strong>nomina tamaño <strong>de</strong>l grafo.


Ejemplo <strong>de</strong> grafo (Or<strong>de</strong>n 8 y tamaño 11).<br />

v2<br />

v3<br />

V={v1,v2,v3,v4,v5,v6,v7,v8}<br />

v1<br />

v4<br />

v5<br />

E={(v1,v2),(v1,v3),(v2,v4),(v3,v5),(v4,v6),<br />

(v5,v7),(v6,v8),(v7,v8),(v2,v5),(v4,v5),(v6,v7)}<br />

v6<br />

v7<br />

v8


Bucles y ramas paralelas.<br />

Un bucle es una rama que empieza y termina en el<br />

mismo nodo (vi,vi).<br />

Cuando dos ramas conectan el mismo par <strong>de</strong><br />

vértices se <strong>de</strong>nominan paralelas.<br />

Un grafo con bucles se <strong>de</strong>nomina pseudografo.<br />

Un grafo con ramas paralelas pero sin bucles se<br />

<strong>de</strong>nomina multigrafo.<br />

Un grafo sin bucles ni ramas paralelas se <strong>de</strong>nomina<br />

grafo simple.


Bucles y ramas paralelas.<br />

Ramas paralelas<br />

Bucle<br />

v1<br />

v2<br />

v3<br />

v4<br />

v5<br />

v6<br />

v8<br />

v7


<strong>Grafos</strong> dirigidos.<br />

Se pue<strong>de</strong> consi<strong>de</strong>rar que los enlaces entre nodos son<br />

dirigidos (vi,vj) = (vj,vi).<br />

Los grafos dirigidos se <strong>de</strong>nominan también digrafos.<br />

v1<br />

v2<br />

v3<br />

v4<br />

v5<br />

v6<br />

v8<br />

v7


<strong>Grafos</strong> pon<strong>de</strong>rados.<br />

A cada rama <strong>de</strong>l grafo se le pue<strong>de</strong> asociar un<br />

número.<br />

El número asociado a cada rama pue<strong>de</strong> indicar entre<br />

otras cosas una distancia, una capacidad, un valor<br />

temporal, etc…<br />

v1<br />

v2<br />

v6 v4<br />

v7 v8 2 1 5 7<br />

-1 6 10 4 12 9 2<br />

v5 v3


<strong>Grafos</strong> dirigidos y pon<strong>de</strong>rados.<br />

Los grafos dirigidos y pon<strong>de</strong>rados poseen ramas<br />

dirigidas a las que se asocia un número.<br />

v1<br />

v2<br />

v6 v4<br />

v7 v8 2 1 5 7<br />

-1 6 10 4 12 9 2<br />

v5 v3


Grado <strong>de</strong> un nodo.<br />

Dos nodos <strong>de</strong> un grafo son vecinos o adyacentes si<br />

existe una rama que los conecta.<br />

El grado <strong>de</strong> un nodo es el número vecinos que tiene<br />

dicho nodo.<br />

En los grafos dirigidos se calcula el grado <strong>de</strong> entrada<br />

y el grado <strong>de</strong> salida.<br />

En los grafos pon<strong>de</strong>rados, el grado se pue<strong>de</strong><br />

promediar por el número asociado a las ramas.<br />

Un grafo se dice que es regular si todos los nodos<br />

tienen el mismo grado.


Grado <strong>de</strong>l nodo V2.<br />

Grado 3<br />

Grado <strong>de</strong> salida 1<br />

Grado <strong>de</strong> entrada 2<br />

v1<br />

v1<br />

v2<br />

v2<br />

v3<br />

v3<br />

v4<br />

v4 v5<br />

v5<br />

v6<br />

v6 v7 v8<br />

v8<br />

v7


Subgrafos.<br />

Un grafo G’=(V’,E’) es un sugrafo <strong>de</strong> un grafo<br />

G=(V,E) si V’ es un subconjunto <strong>de</strong> V y E’ es un<br />

subconjunto <strong>de</strong> E..<br />

v1<br />

v2<br />

v3<br />

G<br />

v4<br />

v5<br />

G’<br />

v6 v8 v2<br />

v3 v5<br />

v7<br />

v6 v8 v7


v1<br />

Subgrafos.<br />

Un subgrafo G’=(V’,E’) <strong>de</strong> un grafo G=(V,E) se dice<br />

que es abarcador si V=V’.<br />

v2<br />

v3<br />

G<br />

v4<br />

v5<br />

v6 v8 v7<br />

G’<br />

v2 v1 v4<br />

v5 v3<br />

v6 v8 v7


Paseos, caminos, circuitos y ciclos.<br />

Un paseo <strong>de</strong> un nodo u a un nodo v es una secuencia<br />

<strong>de</strong> vértices {v0,v1,....vk} con v1=u vk=v y (vi-1,vi) rama<br />

<strong>de</strong>l grafo.<br />

El número <strong>de</strong> ramas <strong>de</strong>l paseo es su longitud.<br />

Un paseo en el cual no se repiten ramas se<br />

<strong>de</strong>nomina rastro.<br />

Un paseo en el cual todos los vertices {v0,v1,....vk}<br />

son distintos se <strong>de</strong>nomina camino.<br />

Un camino mínimo entre dos nodos es aquel <strong>de</strong><br />

menor longitud <strong>de</strong> entre todos los posibles caminos<br />

entre ambos nodos.


Paseo<br />

Rastro<br />

v1<br />

v1<br />

C={v1,v2,v5,v3,v1,v2,v4,v6,v7,v8} k=9<br />

v8<br />

v2<br />

v3<br />

v2<br />

v3<br />

v4<br />

v5<br />

v4<br />

v5<br />

v6<br />

v7<br />

C={v1,v3,v5,v2,v4,v5,v7,v8} k=7<br />

v8<br />

v6<br />

v7


Camino<br />

Camino mínimo<br />

v1<br />

v1<br />

C={v1,v2,v5,v4,v6,v7,v8} k=6<br />

v8<br />

v2<br />

v3<br />

v2<br />

v3<br />

v4<br />

v5<br />

v4<br />

v5<br />

v6<br />

v7<br />

C={v1,v2,v4,v6,v8} k=4<br />

v8<br />

v6<br />

v7


Paseos, caminos, circuitos y ciclos.<br />

Un paseo cerrado es un paseo {v0,v1,....vk} tal que<br />

v0=vk.<br />

Un paseo cerrado en el que no se repiten ramas es<br />

un circuito.<br />

Un ciclo es un circuito en el que no se repiten<br />

vértices.


Paseos, caminos, circuitos y ciclos.<br />

Ciclo<br />

v2<br />

v3<br />

v4<br />

v5<br />

v6<br />

v7<br />

v8<br />

C={v1,v2,v4,v6,v8,v7,v5,v3,v1} k=7<br />

v1


Conexidad.<br />

Un grafo es conexo si para cada par <strong>de</strong> nodos <strong>de</strong>l<br />

grafo existe al menos un camino que los une.<br />

Grafo conexo Grafo no conexo<br />

v1<br />

v3<br />

v2 v5<br />

v4<br />

v1<br />

v3<br />

v2 v5<br />

v4


Conexidad.<br />

Una componente conexa <strong>de</strong> un grafo es cada uno<br />

<strong>de</strong> los subgrafos maximales conexos<br />

Componentes conexas<br />

v1<br />

v3<br />

v2 v5<br />

v4


Conexidad.<br />

Un punto <strong>de</strong> articulación es un nodo que<br />

<strong>de</strong>sconecta un grafo conexo.<br />

Un corte es un conjunto <strong>de</strong> ramas que <strong>de</strong>sconecta<br />

un grafo conexo,<br />

Si un corte esta compuesto por una única rama, se<br />

<strong>de</strong>nomina puente.<br />

Un corte mínimo <strong>de</strong> un grafo es el mínimo número<br />

<strong>de</strong> ramas que al ser eliminadas <strong>de</strong>sconectan el<br />

grafo.


Conexidad.<br />

v3 v4 v5 v7<br />

v1 v2 v6<br />

Corte<br />

Puente<br />

Punto <strong>de</strong><br />

v8<br />

articulación


Bosques y árboles.<br />

Un grafo sin ciclos (acíclico) se <strong>de</strong>nomina bosque.<br />

Un arbol es un grafo acíclico conexo.<br />

Cada componente conexa <strong>de</strong> un bosque, es un árbol.


Bosques y árboles.<br />

G<br />

v2 v1 v4<br />

v5 v3<br />

v6 v8 v7<br />

G<br />

v5<br />

v3<br />

v4<br />

v1 v2<br />

v6<br />

v7<br />

v8


Bosques y árboles.<br />

Un subgrafo abarcador acíclico <strong>de</strong> un grafo G se<br />

<strong>de</strong>nomina un bosque abarcador.<br />

Un subgrafo abarcador conexo acíclico <strong>de</strong> un grafo G<br />

se <strong>de</strong>nomina un arbol abarcador.


v1<br />

Bosques y árboles.<br />

v2<br />

v3<br />

G<br />

v4<br />

v5<br />

v6 v1<br />

Árbol abarcador<br />

v2<br />

v3<br />

v8 v7<br />

G’<br />

v4<br />

v5<br />

v6 v8 v7


Representación <strong>de</strong> grafos<br />

Hay dos formas estándar <strong>de</strong> representar un grafo en<br />

un or<strong>de</strong>nador.<br />

• Matriz <strong>de</strong> adyacencia.<br />

• Lista <strong>de</strong> adyacencia.


Matriz <strong>de</strong> adyacencia<br />

v2<br />

v3<br />

0 1 1 0 0 0 0 0<br />

1 0 0 1 1 0 0 0<br />

1 0 0 0 1 0 0 0<br />

0 1 0 0 1 1 0 0<br />

v1<br />

0 1 1 1 0 0 1 0<br />

0 0 0 1 0 0 1 1<br />

0 0 0 0 1 1 0 1<br />

0 0 0 0 0 1 1 0<br />

v4<br />

v5<br />

Lista <strong>de</strong> adyacencia 3 5 2<br />

v6 v8 v7<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

45 2 5 6 1<br />

3 4 7 4 7 8 5 6 2<br />

7 8<br />

6


Matriz <strong>de</strong> Adyacencia<br />

Consume mucha memoria.<br />

Fácil <strong>de</strong> añadir o eliminar<br />

ramas<br />

Fácil saber si existe la rama<br />

(a,b).<br />

Lento enumerar los vecinos<br />

<strong>de</strong> un nodo.<br />

Lista <strong>de</strong> adyacencia<br />

Consumo limitado <strong>de</strong><br />

memoria.<br />

Costoso añadir o eliminar<br />

ramas.<br />

Costoso saber si existe la<br />

rama (a,b).<br />

Rápido enumerar los vecinos<br />

<strong>de</strong> un nodo.


Clasificación <strong>de</strong> grafos<br />

Los grafos se clasifican en función <strong>de</strong> unas <strong>de</strong>terminadas<br />

métricas topológicas.<br />

Las métricas mas empleadas son:<br />

• Tamaño |E| y or<strong>de</strong>n |V|<br />

• Dispersión (|E|/|V|)<br />

• Distribución <strong>de</strong>l grado <strong>de</strong> los nodos<br />

• Grado medio ()<br />

• Coeficiente <strong>de</strong> agrupamiento (C)<br />

• Camino carácteristico (L)


Coeficiente <strong>de</strong> agrupamiento<br />

El coeficiente <strong>de</strong> agrupamiento (C) es un valor métrico local<br />

que mi<strong>de</strong> el nivel <strong>de</strong> agrupamiento <strong>de</strong> los nodos.<br />

Cálculo <strong>de</strong> C<br />

• Para cada nodo v <strong>de</strong>l grafo se obtiene su vencidario, es <strong>de</strong>cir, el<br />

cojunto <strong>de</strong> nodos que son vecinos <strong>de</strong> v, el tamaño <strong>de</strong>l vecindario<br />

coinci<strong>de</strong> con el grado <strong>de</strong> v (kv)<br />

• Se calcula el coeficiente Nv/(kv(kv-1)) don<strong>de</strong> Nves el numero <strong>de</strong> ramas<br />

que hay entre los vecinos <strong>de</strong> v.<br />

• El valor anterior se promedia entre todos los nodos <strong>de</strong>l grafo<br />

v<br />

Cv= 6/(4*3)=1/2


Camino característo<br />

El camino característico (L) es un valor métrico global que<br />

mi<strong>de</strong> el nivel grado <strong>de</strong> separacion <strong>de</strong> los nodos.<br />

Cálculo <strong>de</strong> C<br />

• Para cada nodo v se calcula la distancia promedio a todos los <strong>de</strong>mas<br />

nodos <strong>de</strong>l grafo, Lv= Σk=1d(v,vk)/(|V|-1)<br />

• Se calcula el promedio <strong>de</strong>l valor anterior entre todos los nodos <strong>de</strong>l<br />

grafo L= Lv/|V| .|V| |V|<br />

Σv=1


Algunas topologias.<br />

Las topologías mas frecuentes son:<br />

• <strong>Grafos</strong> aleatorios<br />

• <strong>Grafos</strong> regulares<br />

• Mundo pequeño<br />

• <strong>Grafos</strong> libres <strong>de</strong> escala


<strong>Grafos</strong> aleatorios<br />

Fueron estudiados principalmente<br />

por Erdos y Renyi en los años 50.<br />

Cada rama <strong>de</strong>l grafo existe con<br />

una <strong>de</strong>terminada probabilidad p.<br />

Erdos y Renyi estudiaron los<br />

valores <strong>de</strong> las metricas<br />

topológicas para diferentes<br />

valores <strong>de</strong> $p$.<br />

Para la grafos dispersos (p<br />

pequeña) se pue<strong>de</strong> comprobar<br />

que tanto C (aproximadamente 0)<br />

como L (aproximadamemte<br />

Ln(|V|) son pequeños


<strong>Grafos</strong> Regulares<br />

Son los mejor conocidos <strong>de</strong> forma<br />

analítica<br />

Existen expresiones cerradas para<br />

todas las métricas.<br />

Para la grafos dispersos se pue<strong>de</strong><br />

comprobar que tanto C<br />

(aprximadamente 0.75) como L<br />

(aproximadamente |V|/) son<br />

gran<strong>de</strong>s


Mundo pequeño (Watts y Strogatz 1998)<br />

Son grafos que presentan altos<br />

valores <strong>de</strong> C (aprox .8) y bajos<br />

valores <strong>de</strong> L (aprox ln(|V|).<br />

Se obtienen introduciendo<br />

pequeño número <strong>de</strong> “atajos” en<br />

un grafo regular<br />

Representan bien un gran número<br />

<strong>de</strong> re<strong>de</strong>s tales como re<strong>de</strong>s<br />

sociales.


Libre <strong>de</strong> escala (Albert y Barabasi 1999)<br />

Son grafos que presentan bajos valores <strong>de</strong> C (aprox 0) y bajos valores <strong>de</strong><br />

L (aprox ln(|V|).<br />

Se obtienen mediante crecimiento <strong>de</strong> la red y enlace preferencial<br />

Cuando la distribución <strong>de</strong> los nodos se dibuja en escala log-log aparece<br />

una línea recta.<br />

Representan bien un gran número <strong>de</strong> re<strong>de</strong>s tales como internet o re<strong>de</strong>s<br />

<strong>de</strong> reacciones químicas.


Metricas<br />

|V|=2000 k=8<br />

3.89 Aleatorio 0.0186 3.409 Libre<strong>de</strong> escala 0.626 14.2 MundoPequeño 0.643 125.438 AnilloRegular<br />

0.004


Algorítmos sobre grafos<br />

El algoritmo <strong>de</strong> búsqueda en anchura permite calcular un<br />

camino mínimo entre dos nodos <strong>de</strong> un grafo.<br />

Dijkstra es una versión <strong>de</strong>l algoritmo anterior para grafos<br />

pon<strong>de</strong>rados.<br />

Ambos algoritmos funcionan tanto en grafos dirigidos como<br />

no dirigidos.<br />

Los algoritmos nos permiten calcular las métricas sobre el<br />

grafo.


BusquedaAnchura(V,E,s)<br />

Para cada vertice u en V-s<br />

visitado[u]=FALSE, d[u]=infinito,p[u]=NIL<br />

visitado[s]=TRUE,d[s]=0,p[s]=NIL<br />

Encueue(Q,s)<br />

While(NoVacia(Q))<br />

u=Head(Q)<br />

para cada v en adj(u)<br />

if visitado[v]=FALSE<br />

d[v]=d[u]+1,p[v]=u<br />

Enqueue(Q,v)<br />

visitado[v]=TRUE<br />

Dequeue(Q)


1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

ii TFFFF NNNNN d visitado p1<br />

0ii U=1 1 2 3 4 5<br />

Q


1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

ii TTFFF N1NNN d visitado p12<br />

01i U=1 1 2 3 4 5<br />

Q


1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

ii N11NN visitado p12<br />

011 U=1 1 d 2 3 4 5<br />

3 TTTFF Q


1<br />

1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

2i TTTTF N112N d visitado p23<br />

011 U=2 1 2 3 4 5<br />

Q


1<br />

1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

2i N112N visitado p23<br />

011 U=2 1 d 2 3 4 5<br />

4 TTTTF Q


1<br />

1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

22 N1123 visitado p34<br />

011 U=2 1 d 2 3 4 5<br />

5 TTTTT Q


1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

4<br />

5<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

22 TTTTT N1123 d visitado p45<br />

011 U=3 1 2 3 4 5<br />

Q


1<br />

1<br />

2<br />

3<br />

4<br />

5<br />

2<br />

3<br />

3 4 2 35 1 2 5 3 4<br />

21<br />

4<br />

5<br />

visitado pQ<br />

d<br />

22 TTTTT N1123 1 U=3 1 2 3 4 5 01


1 n = rows[w] 2 ci= 0 3 fori = 1 ton CLUSTERING-COEFFICIENT(w)<br />

do neighbor[i]= 0 5 fori = 1 ton 6 do k = 0 7 forj = 1 ton 4<br />

do ifW[i][j] = 1 9 thenneighbor[k]= j 10 k = k + 1 8<br />

12 realedges= 0 13 forp = 0 tok − 2 14 do forq = p + 1 tok − 1 11<br />

do ifw[neighbor[p]][neighbor[q]] = 1 16 thenrealedges= realedges+ 1 17 18 15<br />

totaledges= k(k− 1)/2 20 ci= ci+ realedges/totaledges 21 ci= ci/n 19<br />

22 returnci


DEGREE-DISTRIBUTION(w)<br />

1 n = rows[w]<br />

2 for i = 1 to n<br />

3 do dist[i] = 0<br />

4 for i = 1 to n<br />

5 do numedges = 0<br />

6 for j = 1 to n<br />

7 do if w[i][j] = 1 and i != j<br />

8 then numedges numedges + 1<br />

9<br />

10 distnumedges = distnumedges + 1<br />

11 for i = 1 to n<br />

12 do disti = disti/n<br />

13 return dist


El algoritmo <strong>de</strong> Búsqueda en profundidad permite<br />

calcular puntos <strong>de</strong> articulación <strong>de</strong> un grafo.<br />

El algoritmo <strong>de</strong> Ford-Fulkerson permite calcular<br />

cortes mínimos.


Aplicaciones<br />

Las técnicas basadas en grafos se utilizan para el análisis o<br />

clasificación <strong>de</strong> ca<strong>de</strong>nas <strong>de</strong> datos<br />

La técnica suele consistir en la construcción <strong>de</strong> un grafo<br />

don<strong>de</strong> los nodos son cada uno <strong>de</strong> los datos obtenidos y las<br />

ramas posibles relaciones entre los datos y la aplicación <strong>de</strong><br />

algún algoritmo conocido sobre este grafo.


Click<br />

Click (Sharan & Shamir) es un algoritmo <strong>de</strong> clustering<br />

aplicado al análisis <strong>de</strong> expresiones genéticas (gene<br />

expressions).<br />

Click también ha sido utilizado para clustering <strong>de</strong> conjuntos<br />

<strong>de</strong> datos <strong>de</strong> proteínas (ProtoMap).


El problema <strong>de</strong> clustering consiste en partir un<br />

conjunto V en k conjuntos disjuntos V1,V2,....Vktal<br />

que la unión <strong>de</strong> todos ellos es V.<br />

Para comprobar la calidad <strong>de</strong>l clustering se <strong>de</strong>finen<br />

dos medidas<br />

• Separación entre clusters<br />

• Homogeneidad <strong>de</strong> cada cluster


Click(G)<br />

si V(G)={u}<br />

Aña<strong>de</strong> {u} al conjunto <strong>de</strong> vertices aislados<br />

si G es un cluster<br />

Añadir G a la lista <strong>de</strong> clusters<br />

en otro caso<br />

H, H’ = CorteMínimo(G)<br />

Click(H)<br />

Click(H)’


Click se ha utilizado para clustering <strong>de</strong> expresiones<br />

genéticas don<strong>de</strong> cada nodo es una expresión.<br />

Dos nodos se conectan si un coeficiente <strong>de</strong> similitud<br />

entre ambas expresiones genéticas es mayor que un<br />

cierto umbral.


Resultados <strong>de</strong> click cuando se aplica al conjunto <strong>de</strong> datos<br />

<strong>de</strong> la respuesta <strong>de</strong> los fibroblastos humanos al suero


ProtoMap<br />

ProtoMap es un proyecto <strong>de</strong>dicado a la clasificación <strong>de</strong><br />

secuencias <strong>de</strong> proteínas y jerarquización <strong>de</strong> familias <strong>de</strong><br />

proteínas.<br />

Cada vértice es una secuencia y el peso <strong>de</strong> cada rama es un<br />

coeficiente <strong>de</strong> similitud entre las proteínas.


Los clusters se obtienen buscando grupos <strong>de</strong> nodos<br />

altamente conectados entre sí.<br />

Los autores aplicaron el método a la base <strong>de</strong> datos<br />

SWISS-PROT.<br />

Los resultados se pue<strong>de</strong>n consultar en<br />

http://www.protomap.cs.huji.ac.il


Re<strong>de</strong>s <strong>de</strong> interacción<br />

Tong et al. analizan re<strong>de</strong>s <strong>de</strong> interacción <strong>de</strong> proteínas.<br />

Cada nodo <strong>de</strong>l grafo es una proteína.<br />

Una rama significa una interacción entre ambas proteínas.


Un k-core <strong>de</strong> un grafo G es un subgrafo G’ tal que el<br />

grado <strong>de</strong> cada nodo <strong>de</strong> G’ es al menos k.<br />

Este algoritmo produce una jerarquía <strong>de</strong> subgrafos<br />

basandose en el k <strong>de</strong> los k-cores obtenidos para<br />

cada posible k.


Dominio SH3 (|V|=206 |E|=394)


6-Core <strong>de</strong>l dominio SH3


Cliff<br />

Cliff (Xing & Karp) ha sido utilizado para clustering <strong>de</strong> datos<br />

con un número alto <strong>de</strong> dimensiones.<br />

De nuevo cada nodo es una expresión genética (muy larga) y<br />

las ramas un coeficiente <strong>de</strong> similitud entre nodos.<br />

Cliff usa cortes mínimos y técnicas bayesianas para <strong>de</strong>finir<br />

los clusters.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!