algoritmos aleatorizados sobre grafos - …dma.eui.upm.es/matdis/seminario3/mincut.pdf ·...

Post on 04-May-2018

228 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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))

top related