Algoritmo de Montecarlo

22
Modelos de Informática Teórica Capítulo 7 - Algoritmos de MonteCarlo Serafín Moral Callejón Departamento de Ciencias de la Computación Universidad de Granada Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.1/20

Transcript of Algoritmo de Montecarlo

Page 1: Algoritmo de Montecarlo

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo

Serafín Moral Callejón

Departamento de Ciencias de la Computación

Universidad de Granada

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.1/20

Page 2: Algoritmo de Montecarlo

Contenido

Los algoritmos de Monte-Carlo se aplican a la resoluciónde problemas de decisión NP-difíciles. Son algoritmospolinómicos, pero algunas veces no dan la respuestacorrecta.

Problema de la consistencia

Raíces de un polinomio y acoplamiento por parejas

La clase RP

Algoritmos de las Vegas: clase ZPP

Clases PP y BPP

Estructura de clases

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.2/20

Page 3: Algoritmo de Montecarlo

Algoritmos de MonteCarloSon algoritmos, en general no deterministas, para problemasde decisión que, a veces, no dan la respuesta correcta.

Un algoritmo de MonteCarlo para el problema de la consistencia:

1. Comenzamos con una asignación de valores de verdadcualquiera T

2. Si para T se satisfacen todas las cláusulas, entonces hayconsistencia

3. En otro caso, elegir una cláusula falsa, cambiar el valor deverdad de algunas de sus variables.

4. Si ya hemos realizado r cambios, terminar, diciendo quehay inconsistencia. En otro caso, ir al paso 2.

Este algoritmo, si las cláusulas son inconsistentes, dirá inconsisten-tes. Cuando son consistentes, algunas veces dirá consistentes y otrasinconsistentes. Cuando dice consistentes no hay duda. Si dice incon-sistentes, hay duda.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.3/20

Page 4: Algoritmo de Montecarlo

Algoritmos de MonteCarloSon algoritmos, en general no deterministas, para problemasde decisión que, a veces, no dan la respuesta correcta.Un algoritmo de MonteCarlo para el problema de la consistencia:

1. Comenzamos con una asignación de valores de verdadcualquiera T

2. Si para T se satisfacen todas las cláusulas, entonces hayconsistencia

3. En otro caso, elegir una cláusula falsa, cambiar el valor deverdad de algunas de sus variables.

4. Si ya hemos realizado r cambios, terminar, diciendo quehay inconsistencia. En otro caso, ir al paso 2.

Este algoritmo, si las cláusulas son inconsistentes, dirá inconsisten-tes. Cuando son consistentes, algunas veces dirá consistentes y otrasinconsistentes. Cuando dice consistentes no hay duda. Si dice incon-sistentes, hay duda.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.3/20

Page 5: Algoritmo de Montecarlo

Algoritmos de MonteCarloSon algoritmos, en general no deterministas, para problemasde decisión que, a veces, no dan la respuesta correcta.Un algoritmo de MonteCarlo para el problema de la consistencia:

1. Comenzamos con una asignación de valores de verdadcualquiera T

2. Si para T se satisfacen todas las cláusulas, entonces hayconsistencia

3. En otro caso, elegir una cláusula falsa, cambiar el valor deverdad de algunas de sus variables.

4. Si ya hemos realizado r cambios, terminar, diciendo quehay inconsistencia. En otro caso, ir al paso 2.

Este algoritmo, si las cláusulas son inconsistentes, dirá inconsisten-tes. Cuando son consistentes, algunas veces dirá consistentes y otrasinconsistentes. Cuando dice consistentes no hay duda. Si dice incon-sistentes, hay duda.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.3/20

Page 6: Algoritmo de Montecarlo

Teorema

Teorema: Si este algoritmo se aplica a n cláusulas delongitud 2 y r � 2n2, entonces si las cláusulas sonconsistentes, la probabilidad de encontrar una asignaciónverdadera es mayor o igual que 1/2.

Respuesta Correcta

Respuesta Algoritmo

SI

0 � 5

SI

�0 � 5

NO

Respuesta Algoritmo

NO

1 � 0

NO

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.4/20

Page 7: Algoritmo de Montecarlo

Aumentando la probabilidad de acertar

Si podemos demostrar que la probabilidad de encontraruna asignación consistente es mayor o igual que 1/2,entonces la podemos hacer tan cercana a uno comoqueramos. Si repetimos el mismo algoritmo k veces, ydecimos que es consistente si en una de las k vecesresulta consistente, entonces

P

DecirConsistente

Consistente

� �

1 ��

1

2

� k

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.5/20

Page 8: Algoritmo de Montecarlo

Determinantes Simbólicos

Sea un problema del acoplamiento de parejas:G �

U � V � E

dondeU �

u1 � u2 � � � � � un

�� V �

v1 � v2 � � � � � vn

�� E

U � V .

u1

u2

u3

un

v1

v2

v3

vn

U VModelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.6/20

Page 9: Algoritmo de Montecarlo

Determinante

Consideremos la matriz

AG ��

ai j

n � n

donde

ai j

� xi j si

ui � v j� � E

0 en otro caso

El determinante de AG es

AG �

� ∑π

σ

π

n

∏i �1

ai � π

i

donde π es una permutación y σ

π

su signatura.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.7/20

Page 10: Algoritmo de Montecarlo

Determinante y Acoplamiento

AG �

� ∑π

σ

π

n

∏i �1

ai � π

i

�G tiene un acomplamiento si y solo si este determinanteno es identicamente igual a 0.

Un acoplamiento lleva asociado una permutación π.π

i

es el índice del compañero de ui:

uu � vπ

i

��

están en elacoplamiento.Un acoplamiento da lugar a un factor que es distinto decero y que no puede compensarse con ningún otro factor.Si π no está asociado a un acoplamiento, al menos, unode los factores que se multiplica es 0, y el producto escero. Si no hay un acoplamiento todos los sumandos soncero. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.8/20

Page 11: Algoritmo de Montecarlo

Polinomios Iguales a 0

Si las variables se sustituyen por números, entonces eldeterminante se puede calcular en tiempo O

�n3 �

.

Sea R

x1 � � � � � xm

un polinomio, no idénticamente 0, tal queen cada variable el grado es lo más d, y sea M � 0, enton-ces la cantidad de m-tuplas

c1 � � � � � cm� � �

0 � 1 � � � � � M � 1

m

tales que R

c1 � � � � � cm

� 0 es, a lo más, mdMm � 1.

Demostración: La haremos por inducción sobre m. Param � 1 es trivialmente cierto porque un polinomio de gradod tiene a lo más d ceros.Supongámoslo cierto para

m � 1

variables y vamos ademostrarlo para m variables.Escribamos R como un polinomio en xm con coeficientesque son polinomios en x1 � � � � � xm � 1.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.9/20

Page 12: Algoritmo de Montecarlo

Demostración

Este polinomio pueder ser 0 en

c1 � c2 � � � � � cm

en dossituaciones distintas:a) El coeficiente de más alto grado de xm es cero. Aplicando

la hipótesis de inducción, para cada valor fijo xm

� cm, estopuede ocurrir, a lo más, en

m � 1

dMm � 2 casos distintos.Como los valores de xm son, a lo más M, tenemos

m � 1

dM

m � 1

situaciones distintas.

b) El coeficiente de más alto grado de xm es distinto de cero.Entonces, fijando x1

� c1 �� � � � xm � 1

� cm � 1, tenemos unpolinomio de grado menor o igual a d, que tendrá, a lomás, d raíces. Como los valores posibles de las m � 1primeras variables en

0 � 1 �� � � � M � 1

es Mm � 1, en totaltenemos Mm � 1d situaciones distintas.

La suma de los casos posibles en ambas situaciones, dala cota deseada mdMm � 1. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.10/20

Page 13: Algoritmo de Montecarlo

Algoritmo de MonteCarlo

Elegir números aleatorios i1 � � � � � im entre 0 y M � 1,donde M � 2md.

Evaluar el polinomio para estos números.

Si es cero responder que el polinomio es ceroprobablemente

Si es distinto de cero, responder que el polinomio esdistinto de cero con seguridad

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.11/20

Page 14: Algoritmo de Montecarlo

Propiedades

Si el polinomio es igual a cero, responderá que esigual a cero.

Si el polinomio es distinto de cero, a veces,responderá que es distinto de cero y, en otrasocasiones, responderá que es igual a cero.La probabilidad de responder 0 si es distinto de ceroestá acotada por (Mm es el número de valoresdistintos):

P

Decir 0�

No 0

� � mdMm � 1

Mm

� mdM

� 1

2

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.12/20

Page 15: Algoritmo de Montecarlo

La clase RP

La clase RP es la clase de los problemas de decisión paralos que existe un algoritmo de MonteCarlo polinómico enel que,

Si la respuesta es NO, el algoritmo responde NO

So la respuesta es SI, responde SI con probabilidadmayor o igual a 1/2.

La probabilidad de responder SI se puede hacer tancercana a 1 como queramos.Tenemos duda cuando responde NO.Tenemos que P

RP�

NPDificultad: Es una clase semántica. No toda máquina deTuring define un lenguaje de RP, tiene que cumplir unacondición adicional.Es muy difícil encontrar problemas RP-completos.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.13/20

Page 16: Algoritmo de Montecarlo

Primalidad está en RP

Lema de Fermat: Si N es primo, entonces

a � 0 , cona

N � 1 se cumple que aN � 1 � 1 mod N.Algoritmo de MonteCarlo para N compuesto:Elegimos 2

a

N � 1

Si aN � 1 �� 1 mod N, entonces N es compuesto

Si aN � 1 � 1 mod N, entonces N es primo(probablemente)

N 2 3 4 5 6 7 8 9 10 11 12 � � � 561 ...

% 100 % 100 % 33.3 % 100 % 20 % 100 % 14.3 % 25 % 11 % 100 % 9.1 % � � � 100 % ...

Para 561 el porcentaje es de nuevo del 100 %.

Números de Carmichael: Para todo p divisor primo

de N, p � 1 divide a N � 1.Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.14/20

Page 17: Algoritmo de Montecarlo

Test modificado N impar

Elegir 2

a

N � 1.

Si aN � 1 �� 1 mod N o existe un entero i tal que 2i

� �

N � 1

y

1 � MCD

a

N � 1

2i � 1 � N

� � N entonces N es compuesto.

En caso contrario, N es primo.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.15/20

Page 18: Algoritmo de Montecarlo

La clase ZPP: Algoritmos de las Vegas

La clase de problemas ZPP o problemas con un algoritmode las Vegas, es el conjunto RP

CoRP.Para estos problemas podemos diseñar un algoritmo quea veces no responda, pero si lo hace siempre acierta.Por estar en RP y CoRP, podemos encontar

Alg1 P

NO1

NO

� 1 � P

SI1

SI

� �1

�2

Alg2 P

NO2

NO

� �

1

2 � P

SI2�

SI�

� 1

Podemos ejecutar los dos algoritmos, si dan la mismarespuesta, estamos seguros de que es correcta. Si dandistinta, entonces decimos no se.Podemos repetir los dos algoritmos hasta obtener cual esla respuesta.También es una clase semántica.Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.16/20

Page 19: Algoritmo de Montecarlo

La clase PP

Una lenguaje L está en PP si y solo si existe una Máquinade Turing no determinista polinómica en tiempo tal quex � L si y solo si más de la mitad de las opciones de lamáquina de Turing aceptan.Es una clase sintáctica. Cada Máquina de Turing NoDetermista define un lenguaje (distinto criterio deaceptación que el habitual).NP

PP:Si L es aceptado por M no determinista por el criteriousual, construimos M

que hace un movimiento inicial enel que con probabilidad 1/2 acepta y, en caso contrario,funciona como M.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.17/20

Page 20: Algoritmo de Montecarlo

Ejemplo

Problema MAJSAT: ¿Más de la mitad de las asignacionesde verdad a las variables hacen que se satisfagan todaslas cláusulas?

El problema es que estos algoritmos no tienen valorpráctico. ¿Cómo sabemos si una palabra está en L si elnúmero de opciones de aceptación es similar al deopciones de rechazo?

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.18/20

Page 21: Algoritmo de Montecarlo

La clase BPP

Problemas L para los que existe una Máquina noDeterminista M que funciona en tiempo polinómico tal que

Si x � L, entonces M acepta con probabilidad mayorque 3/4

Si x

�� L, entonces M rechaza con probabilidad mayorque 3/4

Es una clase semánticaNo se sabe si BPP

NP.Pero si se sabe RP

�BPP

PP y BPP = Co BPP.

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.19/20

Page 22: Algoritmo de Montecarlo

Clases Aleatorias

P

ZPPCoRPRP

NP CoNP

BPP

? ?

PP

Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.20/20