dra. elisa schaefferalgoritmo las vegas un algoritmo que siempre da el resultado correcto se dice un...

52
Técnicas de diseño de algoritmos Algoritmos aleatorizados Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL Algoritmos aleatorizados– p. 1

Upload: others

Post on 27-Jul-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Técnicas de diseño de algoritmos

Algoritmos aleatorizados

Dra. Elisa Schaeffer

[email protected]

PISIS / FIME / UANL

Algoritmos aleatorizados– p. 1

Page 2: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos aleatorizados

= algoritmos que incorporan además de instruccionesdeterministas algunas elecciones al azar

Un ejemplo simple de un algoritmo aleatorio sería unaversión de la ordenación rápida donde el elemento pivoteestá elegido uniformemente al azar entre los elementospara ordenar.

Algoritmos aleatorizados– p. 2

Page 3: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Notaciones de probabilidad

X y Y son variables aleatorias, x y y son algunasvaloresque pueden tomar estas variables

Algoritmos aleatorizados– p. 3

Page 4: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Notaciones de probabilidad

X y Y son variables aleatorias, x y y son algunasvaloresque pueden tomar estas variables

Pr [X = x] es la probabilidad que X tenga el valor x

Algoritmos aleatorizados– p. 3

Page 5: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Notaciones de probabilidad

X y Y son variables aleatorias, x y y son algunasvaloresque pueden tomar estas variables

Pr [X = x] es la probabilidad que X tenga el valor x

la esperanzaE [X] =∑

x

xPr [X = x]

Algoritmos aleatorizados– p. 3

Page 6: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Notaciones de probabilidad

X y Y son variables aleatorias, x y y son algunasvaloresque pueden tomar estas variables

Pr [X = x] es la probabilidad que X tenga el valor x

la esperanzaE [X] =∑

x

xPr [X = x]

la varianzaVar [X] = E [(X − E [X])2] = E [X2]− (E [X])2

Algoritmos aleatorizados– p. 3

Page 7: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis

¿Con qué probabilidad el algoritmo da el resultadocorrecto?

Algoritmos aleatorizados– p. 4

Page 8: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis

¿Con qué probabilidad el algoritmo da el resultadocorrecto?

¿Qué es la esperanza del número de los pasos decomputación necesarios para su ejecución?

Algoritmos aleatorizados– p. 4

Page 9: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis

¿Con qué probabilidad el algoritmo da el resultadocorrecto?

¿Qué es la esperanza del número de los pasos decomputación necesarios para su ejecución?

(En el caso de algoritmos de aproximaciónaleatorizadas:) ¿Qué es la deviación esperada de lasolución óptima?

Algoritmos aleatorizados– p. 4

Page 10: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Resultados incorrectos

Una definición más “flexible” de algoritmo: un algoritmoaleatorizado tiene “permiso” para dar una salidaincorrecta, mientras al definir algoritmos (deterministas)exigimos que siempre termine su ejecución y que elresultado sea el deseado.

Sin embargo, no todos los algoritmos aleatorizados danresultados incorrectos — el caso ideal sería que unresultado incorrecto sea imposible o que ocurra conprobabilidad muy pequeña.

Algoritmos aleatorizados– p. 5

Page 11: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos Monte Carlo

Algoritmos con una probabilidad no cero de fallar (yprobabilidad no cero de dar el resultado correcto) sellaman algoritmos Monte Carlo.

Un algoritmo MC tiene error bilateral si la probabilidadde error es no cero para los ámbos casos: con larespuesta “si” y con la respuesta “no”.

Un algoritmo MC tiene error unilateral si siemprecontesta correctamente en uno de los dos casos perotiene probabilidad no cero de equivocarse en el otro.

Algoritmos aleatorizados– p. 6

Page 12: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmo Las Vegas

Un algoritmo que siempre da el resultado correcto se diceun algoritmo Las Vegas.

En tal algoritmo, la parte aleatoria está limitada al tiempode ejecución del algoritmo, mientras los algoritmos MonteCarlo tienen hasta sus salidas “aleatorias”.

Algoritmos aleatorizados– p. 7

Page 13: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Mejora por iterar

Si tenemos un algoritmo Monte Carlo con probabilidad deerror 0 < p < 1, lo podemos convertir a un algoritmo MonteCarlo con probabilidad de error arbitrariamente pequeña0 < q ≤ p:

Repetir ejecuciones independientes del algoritmo originalk veces tal que pk ≤ q.

Algoritmos aleatorizados– p. 8

Page 14: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Conversión MC 7→ LV

Cada algoritmo Monte Carlo que sabe distinguir entrehaberse equivocado se puede convertir a un algoritmo LasVegas por repertilo hasta obtener éxito — este tieneobviamente efectos en su tiempo de ejecución.

También si tenemos un algoritmo rápido para verificar siuna dada “solución” es correcta (cf. los certificadosconcisos de los problemas NP), podemos convertir unalgoritmo Monte Carlo a un algoritmo Las Vegas porrepetirlo.

Algoritmos aleatorizados– p. 9

Page 15: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Resultados útiles

Desigualdad de JensenSi f es una función convexa,E [f(X)] ≥ f(E [X]).

Desigualdad de Markov Sea X una variable aleatoria nonegativa. Para todo α > 0, Pr [X ≥ α] ≤ α−1 E [X].

Desigualdad de ChebyshevPara todo α > 0,Pr [|X − E [X]| ≥ α] ≤ α−2Var [X].

Algoritmos aleatorizados– p. 10

Page 16: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Más resultados útiles

Cotas de Chernoff Para α > 0, para todo t > 0 aplica quePr [X ≥ α] ≤ e−tα E

[

etX]

y para todo t < 0 aplica quePr [X ≤ α] ≤ e−tα E

[

etX]

.

El metodo probabilista Sea X una variable aleatoriadefinida en el espacio de probabilidad S tal queE [X] = µ. Entonces Pr [X ≥ µ] > 0 y Pr [X ≤ µ] > 0.

El metodo del momentum segundoSea X una variablealeatoria entera. EntoncesPr [X = 0] ≤ (E [X])−2Var [X].

Algoritmos aleatorizados– p. 11

Page 17: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Complejidad computacional

La clase RP (tiempo polinomial aleatorizado, inglés:randomized polynomial time) es la clase de todos loslenguajes L que cuenten con un algoritmo aleatorizado Acon tiempo de ejecución polinomial del peor caso tal quepara cada entrada x ∈ Σ∗

x ∈ L =⇒ Pr [A(x) = “sí”] ≥ p,

x /∈ L =⇒ Pr [A(x) = “sí”] = 0,donde p > 0

(comúnmente se define p = 0,5, pero la elección del valorde p es de verdad arbitraria).

Algoritmos aleatorizados– p. 12

Page 18: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

RP y Monte Carlo

El algoritmo A es entonces un algoritmo Monte Carlo conerror unilateral.

La clase coRP es la clase con error unilateral en el casox /∈ L pero sin error con las entradas x ∈ L.

Algoritmos aleatorizados– p. 13

Page 19: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

ZPP y Las Vegas

La existencia de un algoritmo Las Vegas polinomialmuestra que un lenguaje pertenece a las clases RP ycoRP las dos.

De hecho, esta clase de lenguajes con algoritmos LasVegas polinomiales se denota por ZPP (zero-errorprobabilistic polynomial time)

ZPP = RP ∩ coRP

Algoritmos aleatorizados– p. 14

Page 20: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

PP

Una clase más débil es la PP (probabilistic polynomial time)que consiste de los lenguajes L para las cuales existe unalgoritmo aleatorizado A con tiempo de ejecución de peorcaso polinomial y para todo x ∈ Σ∗ aplica que

x ∈ L =⇒ Pr [A(x) = “sí”] > 12,

x /∈ L =⇒ Pr [A(x) = “sí”] < 12.

Por ejecutar A varias veces, podemos reducir la probabilidad deerror, pero no podemos garantizar que un número pequeño derepeticiones basta para mejorar significativamente la situación.

Algoritmos aleatorizados– p. 15

Page 21: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

BPP

Una versión más estricta de PP se llama BPP (tiempopolinomial aleatorizado, inglés: bounded-error probabilisticpolynomial time) que es la clase de los lenguajes L paralas cuales existe un algoritmo aleatorizado A con tiempode ejecución de peor caso polinomial y para todo x ∈ Σ∗

aplica que

x ∈ L =⇒ Pr [A(x) = “sí”] ≥ 34,

x /∈ L =⇒ Pr [A(x) = “sí”] ≤ 14.

Para esta clase se puede demostrar que la probabilidad deerror se puede bajar a 2−n con p(n) iteraciones donde p()es un polinomio.

Algoritmos aleatorizados– p. 16

Page 22: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Más información

Problemas abiertos interesantes incluyen por ejemplo siBPP es un subclase de NP.

Libros:

Papadimitriou, 1994

Motwani y Raghavan, 1995

Mitzenmacher y Upfal, 2005

Algoritmos aleatorizados– p. 17

Page 23: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Ejemplo: M INCUT

Vamos a considerar multigrafos, o sea, permitimos queentre un par de vértices exista más que una arista en elgrafo de entrada G.

Considerando que un grafo simple es un caso especial deun multigrafo, el resultado del algoritmo que presentamosaplica igual a grafos simples.

Algoritmos aleatorizados– p. 18

Page 24: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Repaso de M INCUT

M INCUT ∈ P

Algoritmos aleatorizados– p. 19

Page 25: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Repaso de M INCUT

M INCUT ∈ P

Estamos buscando un corte C ⊆ V de G.

Algoritmos aleatorizados– p. 19

Page 26: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Repaso de M INCUT

M INCUT ∈ P

Estamos buscando un corte C ⊆ V de G.

La capacidad del corte es el número de aristas que locrucen.

Algoritmos aleatorizados– p. 19

Page 27: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Repaso de M INCUT

M INCUT ∈ P

Estamos buscando un corte C ⊆ V de G.

La capacidad del corte es el número de aristas que locrucen.

Suponemos que la entrada G sea conexo.

Algoritmos aleatorizados– p. 19

Page 28: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Repaso de M INCUT

M INCUT ∈ P

Estamos buscando un corte C ⊆ V de G.

La capacidad del corte es el número de aristas que locrucen.

Suponemos que la entrada G sea conexo.

Todo lo que mostramos aplicaría también para grafos(simples o multigrafos) ponderados con pesos nonegativos.

Algoritmos aleatorizados– p. 19

Page 29: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos deterministas

Através de flujo maximo: O (nm log(n2/m))

Algoritmos aleatorizados– p. 20

Page 30: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos deterministas

Através de flujo maximo: O (nm log(n2/m))

Habría que repetirlo para considerar todos los paresde fuente-sumidero.

Algoritmos aleatorizados– p. 20

Page 31: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos deterministas

Através de flujo maximo: O (nm log(n2/m))

Habría que repetirlo para considerar todos los paresde fuente-sumidero.Se puede demostrar que basta con (n− 1)repeticiones.

Algoritmos aleatorizados– p. 20

Page 32: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos deterministas

Através de flujo maximo: O (nm log(n2/m))

Habría que repetirlo para considerar todos los paresde fuente-sumidero.Se puede demostrar que basta con (n− 1)repeticiones.

=⇒ M INCUT ∈ Ω (n2m)

Algoritmos aleatorizados– p. 20

Page 33: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos deterministas

Através de flujo maximo: O (nm log(n2/m))

Habría que repetirlo para considerar todos los paresde fuente-sumidero.Se puede demostrar que basta con (n− 1)repeticiones.

=⇒ M INCUT ∈ Ω (n2m)

Con unos trucos: mincut ∈ O (nm log(n2/m))

Algoritmos aleatorizados– p. 20

Page 34: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Algoritmos deterministas

Através de flujo maximo: O (nm log(n2/m))

Habría que repetirlo para considerar todos los paresde fuente-sumidero.Se puede demostrar que basta con (n− 1)repeticiones.

=⇒ M INCUT ∈ Ω (n2m)

Con unos trucos: mincut ∈ O (nm log(n2/m))

Grafos densos: m ∈ O (n2)

Algoritmos aleatorizados– p. 20

Page 35: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Contracción

Al contraer la arista u, v reemplazamos los dos vérticesu u v por un vértice nuevo w.

La arista contraída desaparece, y para toda arista s, u talque s /∈ u, v, “movemos” la arista a apuntar a w porreemplazarla por s, w.

Igualmente reemplazamos aristas s, u por aristas s, wpara todo s /∈ u, v.

Algoritmos aleatorizados– p. 21

Page 36: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Ejemplo

Algoritmos aleatorizados– p. 22

Page 37: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Contracción iterativa

Si contraemos un conjunto F ⊆ E, el resultado nodepende del orden de contracción.

Después de las contracciones, los vértices que quedanrepresentan subgrafos conexos del grafo original.

Empezando con el grafo de entraga G, si elegimositerativamente al azar entre las aristas presentes una paracontracción hasta que quedan sólo dos vértices, el númerode aristas en el multigrafo final entre esos dos vérticescorresponde a un corte de G.

Algoritmos aleatorizados– p. 23

Page 38: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Implementación

Con una estructura unir-encontrar , podemos fácilmentemantener información sobre los subgrafos representados.

Algoritmos aleatorizados– p. 24

Page 39: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Implementación

Con una estructura unir-encontrar , podemos fácilmentemantener información sobre los subgrafos representados.

Al contraer la arista u, v, el nombre del conjuntocombinado en la estructura será w y sus miembros son u uw; originalmente cada vértice tiene su propio conjunto.

Algoritmos aleatorizados– p. 24

Page 40: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Implementación

Con una estructura unir-encontrar , podemos fácilmentemantener información sobre los subgrafos representados.

Al contraer la arista u, v, el nombre del conjuntocombinado en la estructura será w y sus miembros son u uw; originalmente cada vértice tiene su propio conjunto.

Entonces, podemos imprimir los conjuntos C y V \ C quecorresponden a los dos vértices que quedan en la últimaiteración.

Algoritmos aleatorizados– p. 24

Page 41: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis parcial

La elección uniforme de una arista para contraer sepuede lograr en O (n).

Algoritmos aleatorizados– p. 25

Page 42: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis parcial

La elección uniforme de una arista para contraer sepuede lograr en O (n).

En cada iteración eliminamos un vértice, por lo cual elalgoritmo de contracción tiene complejidad cuadráticaen n.

Algoritmos aleatorizados– p. 25

Page 43: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis parcial

La elección uniforme de una arista para contraer sepuede lograr en O (n).

En cada iteración eliminamos un vértice, por lo cual elalgoritmo de contracción tiene complejidad cuadráticaen n.

Lo que queda mostrar es que el corte así producidosea el mínimo con una probabilidad no cero.

Algoritmos aleatorizados– p. 25

Page 44: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Análisis parcial

La elección uniforme de una arista para contraer sepuede lograr en O (n).

En cada iteración eliminamos un vértice, por lo cual elalgoritmo de contracción tiene complejidad cuadráticaen n.

Lo que queda mostrar es que el corte así producidosea el mínimo con una probabilidad no cero.

Así por repetir el algoritmo, podríamos aumentar laprobabilidad de haber encontrado el corte mínimo.

Algoritmos aleatorizados– p. 25

Page 45: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Observaciones

Si la capacidad del corte mínimo es k, ningún vérticepuede tener grado menor a k.

El número de aristas satisface m ≥ 12nk si la

capacidad del corte mínimo es k.

La capacidad del corte mínimo en G después de lacontracción de una arista es mayor o igual a lacapacidad del corte mínimo en G.

Algoritmos aleatorizados– p. 26

Page 46: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Más análisis

Fijamos un corte mínimo de G = (V,E) con las aristasF ⊆ E siendo las aristas que cruzan de C a V \ C.

Denotamos |F | = k.

Suponemos que estamos en la iteración i del algoritmo decontracción y que ninguna arista en F ha sido contraidatodavía.

Algoritmos aleatorizados– p. 27

Page 47: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Estructura a la iteración i

Quedan ni = n− i+ 1 vértices en el grafo actual Gi.

El conjunto de aristas F todavía define un corte mínimo enel grafo actual Gi.

Los vértices de los dos lados del corte definido por lasaristas en F corresponden a los conjuntos C y V \ C,aunque (posiblemente) en forma contraida.

Algoritmos aleatorizados– p. 28

Page 48: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Probabilidad

El grafo Gi tiene, por la segunda observación, por lomenos 1

2nik aristas, por lo cual la probabilidad que la

siguiente iteración contraiga una de las aristas de F esmenor o igual a 2ni

−1.

Podemos acotar la probabilidad p que ninguna arista de Fsea contraida durante la ejecución del algoritmo:

p ≥n−2∏

i=1

(1− 2(n− i+ 1)−1) =

(

n

2

)−1

=2

n(n− 1)

Algoritmos aleatorizados– p. 29

Page 49: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Aún más análisis

Hemos establecido que un corte mínimo específido de Gcorresponde al resultado del algoritmo de contracción conprobabilidad p ∈ Ω (n−2).

Como cada grafo tiene por lo menos un corte mínimo, laprobabilidad de éxito del algoritmo es por lo menosΩ (n−2).

Si repetimos el algoritmo, digamos O (n2 log n) veces ya darazón de esperar que el corte de capacidad mínimaencontrado sea el corte mínimo del grafo de entreda.

Algoritmos aleatorizados– p. 30

Page 50: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Mejoramiento

Para hacer que el algoritmo Monte Carlo resultante seamás rápida, hay que aumentar la probabilidad de que uncorte mínimo pase por el algoritmo sin ser contraido.

Una posibilidad de mejora está basada en la observaciónque la probabilidad de contraer una arista del corte mínimocrece hacía el final del algoritmo.

Algoritmos aleatorizados– p. 31

Page 51: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Resultado

Si en vez de contraer hasta que queden dos vértices,contraemos primero hasta aproximadamente n/

√2

vértices y después hacemos dos llamadas recursivasindependientes del mismo algoritmo con el grafo Gi quenos queda, un análisis detallado muestra que llegamos ala complejidad O

(

n2(log n)O(1))

.

Algoritmos aleatorizados– p. 32

Page 52: Dra. Elisa SchaefferAlgoritmo Las Vegas Un algoritmo que siempre da el resultado correcto se dice un algoritmo Las Vegas. En tal algoritmo, la parte aleatoria está limitada al tiempo

Tarea para entregar el martes

Dada una formula 3SAT φ con m cláusulas, demuestra quesiempre existe una asignación de verdad T que satisfacepor lo menos 87.5 % de las clausulasde φ.

(Sí, la idea es que utilizen argumentos probabilistas.

Algoritmos aleatorizados– p. 33