ALGORITMOS ALEATORIZADOS SOBRE GRAFOS - …dma.eui.upm.es/MatDis/Seminario3/mincut.pdf ·...

Post on 04-May-2018

228 views 2 download

Transcript of ALGORITMOS ALEATORIZADOS SOBRE GRAFOS - …dma.eui.upm.es/MatDis/Seminario3/mincut.pdf ·...

ALGORITMOS ALEATORIZADOSSOBRE GRAFOS

III Seminario de Matemática Discreta14 de junio de 2001

Ángeles Martínez Sánchez Gregoria Blanco Viejo

Matemática Aplicada E. U. Informática

U. P. M.

Algoritmos deterministas

1- Se resuelve el problema correctamente.2- Para cada input, el output siempre es el mismo.3- El número de cálculos es polinomial en el tamaño del

input.4- Operaciones o tipo de datos que precisa la

implementación suelen ser complicados.

input outputalgoritmo

Algoritmos aleatorizados

1- No siempre se resuelve el problema correctamente.2- Para un mismo input, el output puede variar.3- El número de cálculos es polinomial o polilogarítmico en

el tamaño del input.4- La estrategia, las operaciones y el tipo de datos que

precisa la implementación no son complicados.

input outputalgoritmo

Números aleatoriosElecciones aleatorias

Algoritmos aleatorizados:Las Vegas y Monte Carlo

Las Vegas• Siempre se obtiene la solución correcta• Su tiempo de ejecución es una variable aleatoria con

esperanza polinomial

Ejemplo: Ordenación Quicksort de una lista de números• Determinista: Punto de corte mediana → O(nL(n))• Aleatorizado: Punto de corte aleatorio → O(nL(n))

Algoritmos aleatorizados:Las Vegas y Monte Carlo

Monte Carlo• No siempre se obtiene la solución correcta• Probabilidad de fallo acotada• Ejecuciones independientes reducen la cota de error.

Ejemplos:

–Test de primalidad

–Igualdades matriciales

ALGORITMO ALEATORIO•Elegir aleatoriamente X ∈ Mnx1 (K) •Obtener A×(B×X) , C×X•Comparar A×(B×X) = C×X

A×(B×X) = C×X ⇒ A×B = Csi

A×(B×X) ≠ C×X ⇒ A×B ≠C

ALGORITMO DETERMINISTA•Obtener A×B •Comparar A×B = C

K CUERPO FINITO¿A×B = C?

A, B, C ∈ Mnxn (K)

)n(O)n(O ,3823 →

)n(O 2

ANÁLISIS DEL ALGORITMO ALEATORIO

•Si A×B ≠ C ⇒ Algoritmo A×B = C∃ x ≠ 0 / A×(B×X) = C×X ⇔∃ x ≠ 0 / (A×B-C)×X = 0 ⇔∃ x ≠ 0 ∈ Ker(A×B-C)

↑dim(Ker(A×B-C)) = r r<n

•Si A×B = C ⇒ El algoritmo siempre va adevolver la respuesta correcta

KKK

KK

)fallo(P n

n

n

r1

1

=≤=−

mK)ntesindependiepruebasmtrasfallo(P 1≤

e c

a

d

b

k=2

• val(C) ↔ conectividad• aristas de un corte C• |V| = n 2n-1 –1 cortes

G multigrafo conexo G=(V, A)

VC C V / C C Corte =∪⊂≠ ∅

k = min val(C) / C corte CvCu / uv Card val(C) ∈∈=

Problema del mínimo corte

1,1,

0, 0,

0,

0,

2,

2,

mínimo corte ↔ máximo flujoG multigrafo ↔ G grafo ponderado

e

ca

d

b

e

ca

d

b

3

2

11

1 1

val (flujo maximal) = val (corte minimal)

a

d

val(f*) = 3

mínimo corte ↔ máximo flujo

• ¿Se puede mejorar? • ¿Hay algoritmos “específicos”?

s-t cortes mínimos → O(n2)

2n

EDMONDS - KARP → O(m2n)

GOLDBERG, TARJAN → O(mnL(n2/m))

Mejoras

GOMORI - HU → n-1 ejecuciones → 1 ejecución

Algoritmos aleatorizados

Contracciones

G multigrafo conexo G=(V, A) uv∈ A

G´ = ( V´, A´) = G/uv V´ = V - u,v ∪ u´ A´= A - uv / xu →xu´ - bucles vy →u´y

e c

a

d

b

← metavértice

e´ c

a b

G/ed

Contracción ed

Propiedades de las contracciones

e c

a

d

b

e´ c

a b

G/ed

G=(V, A) → G´ = ( V´, A´)

• card(V´) = card(V) - 1• card(A´) < card(A)• Todo corte C´de G´ induce un corte C en G

• Minval(C) / C corte en G ≤ Minval(C´) / C´ corte en G´

Algoritmo CONTRACT KARGER 1992

e c

a

d

b

• Elegir aleatoriamente uv∈V y obtener G´=G/uv• Iterar hasta obtener un grafo con 2 metavértices x,y• Devolver k=grado(x) C=vértices colapsados en x

e c

a b

e

a

e

a

bk=4

XX

X

e c

a

d

b

e´ c

a b

a

b

Otra ejecución del algoritmo:

c

a b

k=2

X

X

X

Análisis del algoritmo CONTRACT

Proposición – G multigrafo, C corte minimal, val(C)=k

• No existe ningún vértice v / g(v)<k

• 2A nk≥

Proposición – Contract proporciona un corte minimal C ⇔durante la ejecución no se suprime ninguna arista de C.

Proposición – La probabilidad de obtener un corte minimalcon el algoritmo Contract es:

Ω∈≥ 22

12nn

P )(acierto

Dem – C corte minimal, val(C)=k

nEP

nAkEPnkA

nVG 212

21

01

0

0

0 −≥≤=

== )(

||)(

||

||

)()/(

)(||)/()(||

||

121

12

21

112

112

1

1

1 −−≥

−≤=

−≥

−==

nEEP

nAkEEPknA

nVG

)()/(

)()/())((||

)(||

121

12

21

1 1

1

1

11

1

1 −−−≥

−−≤

−−≥

−−== ∩∩

=

=−

− inEEP

inEEPkinA

inVG i

i

jii

i

ji

i

i

i

Ei = no elegir una arista de C en el paso i

Ω∈≥ 22

12nn

P )(acierto

=∩∩∩= − )( 221 nEEEP L

≥= ∩−

=− )/()/()( j

n

jn EEPEEPEP

3

12121 L

P(no elegir ninguna arista de C)=

2

2

1

21

21

21nnnin

n

i≥

−=

−−

−≥ ∏−

= )()(

22

212n

Pn

P −≤⇒≥ )()( falloacierto

enfalloPpruebasn n 121 )(

22

2

2 2

<

−≤⇒

¿Coste del algoritmo?

)n(L

e )(Ppruebas)n(Ln

<⇒ 12 fallo

Proposición – El algoritmo CONTRACT se puede implementarde modo que su tiempo de ejecución sea O(n2)

Dem - • G(n,m) → Gn-2)(2,m´) n-2 contracciones O(n)

O(n2)• Contracción: elegir una arista y modificar O(n)

e c

a

d

b

ed

x

∑∑∑ω=ω+ω=

=+=

)v(g)ed(

)d(g)ed(

)v(g)d(g

)e(g)ed(

)v(g)e(g

)d/ed(P)d(P)e/ed(P)e(P)ed(P2

e c

a

d

b

0300230100010110010120110

edcba

edcba

e´ c

a b

0010200000100110010120110

edcba

edcba

54324

30324

x

3245 ×−+=

Observaciones:

• Las cotas inferiores de las probabilidades van decreciendo

Estrategia para mejorar el algoritmo

• El coste “total” es O(n4)

Hay cortes minimales

2n

nEP

nEP 212

11 −=⇒= )()(

121

12

1212 −−=⇒

−=

nEEP

nEEP )/()/(

• Las cotas de las probabilidades de mantener un corteminimal se alcanzan en Cn

FAST-CONTRACT KARGER – STEIN 1993

• Mientras n≥2

− G1=contract(G, n→t)− G2=contract(G, n→t)

• Calcular recursivamente cortes de valor mínimo k1 y k2para los grafos G1 y G2.

• Devolver k=mink1, k2

+= 1

2nt

G=(V,A) multigrafo |V|=n

Análisis del algoritmo FAST-CONTRACT

Proposición – La probabilidad de obtener un corte minimalcon el algoritmo Fast-Contract es:

Ω∈)(

)(nL

P 1acierto

Dem.- Sea C un corte minimal val(C)=k

⇔conservaloGGenadrecursividLa

GaoGapasaC

21

21 C corte el conserva C(G)-F

P(G) = P(G→G1)P(G1) + P(G→G2)P(G2) –

P(G→G1)P(G1) P(G→G2)P(G2)

G

G1 G2

Ω∈)(

)(nL

P 1acierto

P(G) = P(G→G1)P(G1) + P(G→G2)P(G2) – P(G→G1)P(G1)P(G→G2)P(G2)

P(n) = Acotación de la probabilidad para un multigrafo de n vértices

)()()()(

+−

++

+≥ 1

2411

2211

221 2 nPnPnPnP

>

+−

+=

=

2124

112

12

2 nnPnPnP

P

)()()(

)(

( ) )(nLmnm

22 ==↓

>−=

=

−− 241

1

211

2

mppp

p

mmm 14

44

1 +<<

++ − mp

Hm mm

))(

()()(nL

nPm

pm11 Θ∈⇒Θ∈

)()(

)()(

nLcP

nLcP −≤⇒≥ 1falloacierto

e)n(Lc )(Ppruebas

c)n(L c

)n(L 11 <

−≤⇒ fallo

¿Coste del algoritmo?

)n(L

e )(Ppruebas)n(L

<⇒ 12 fallo

Proposición – FAST-CONTRACT se puede implementar demodo que su tiempo de ejecución sea O(n 2 L(n))

Dem -

>+

+=

=

212

2

12

2 nnOnTnT

T

)()()(

)(

>+=

=

− 222

1

1

2

mOttt

mmm )(

))(()( nLnOnT 2∈ )( mm mOt 2∈

)(log prof. 2 n

2d ))n(Logn(O)(

)n(O

))(

n(O)n(O)n(O

d

prof

d

d

dd

22

2

0

2

222

212

22

22

=

=

=+

++

+

∑=

LL

Problema del mínimo corte

• GOLDBERG, TARJAN, GOMORI - HU → O(mnL(n2/m))

ALGORITMO DETERMINISTA:

ALGORITMOS ALEATORIZADOS:

• CONTRACT → O(n2)

• FAST-CONTRACT → O(n2L(n)) →

→(n)L

L(n)n

2

2

)(

)(nL

eP

< 1fallo

O(n4L(n))

O(n2L3(n))