30.04.2013 Views

Teoría de Grafos

Teoría de Grafos

Teoría de Grafos

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!