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 Contenido Los algoritmos de Monte-Carlo se aplican a la resolución de problemas de decisión NP-difíciles. Son algoritmos polinómicos, pero algunas veces no dan la respuesta correcta. 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 Algoritmos de MonteCarlo Son algoritmos, en general no deterministas, para problemas de decisión que, a veces, no dan la respuesta correcta. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.3/20 Algoritmos de MonteCarlo Son algoritmos, en general no deterministas, para problemas de 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 verdad cualquiera T 2. Si para T se satisfacen todas las cláusulas, entonces hay consistencia 3. En otro caso, elegir una cláusula falsa, cambiar el valor de verdad de algunas de sus variables. 4. Si ya hemos realizado r cambios, terminar, diciendo que hay inconsistencia. En otro caso, ir al paso 2. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.3/20 Algoritmos de MonteCarlo Son algoritmos, en general no deterministas, para problemas de 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 verdad cualquiera T 2. Si para T se satisfacen todas las cláusulas, entonces hay consistencia 3. En otro caso, elegir una cláusula falsa, cambiar el valor de verdad de algunas de sus variables. 4. Si ya hemos realizado r cambios, terminar, diciendo que hay inconsistencia. En otro caso, ir al paso 2. Este algoritmo, si las cláusulas son inconsistentes, dirá inconsistentes. Cuando son consistentes, algunas veces dirá consistentes y otras inconsistentes. Cuando dice consistentes no hay duda. Si dice inconsistentes, hay duda. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.3/20 Teorema Teorema: Si este algoritmo se aplica a n cláusulas de longitud 2 y r 2n2 , entonces si las cláusulas son consistentes, la probabilidad de encontrar una asignación verdadera es mayor o igual que 1/2. Respuesta Correcta Respuesta Algoritmo 05 05 NO SI NO Respuesta Algoritmo NO 10 SI Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.4/20 Aumentando la probabilidad de acertar 1 2 1 P DecirConsistente Consistente Si podemos demostrar que la probabilidad de encontrar una asignación consistente es mayor o igual que 1/2, entonces la podemos hacer tan cercana a uno como queramos. Si repetimos el mismo algoritmo k veces, y decimos que es consistente si en una de las k veces resulta consistente, entonces k Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.5/20 Determinantes Simbólicos u1 v1 u2 v2 u3 v3 un vn U Sea un problema del acoplamiento de parejas: G U V E donde U u 1 u2 un V v1 v2 vn E U V . V Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.6/20 Determinante Consideremos la matriz AG ai j n n donde si ui v j E en otro caso ai j xi j 0 El determinante de AG es ∑ σ π ∏ ai π i π i 1 AG n donde π es una permutación y σ π su signatura. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.7/20 Determinante y Acoplamiento ∑ σ π ∏ ai π i π i 1 AG n G tiene un acomplamiento si y solo si este determinante no 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 el acoplamiento. Un acoplamiento da lugar a un factor que es distinto de cero y que no puede compensarse con ningún otro factor. Si π no está asociado a un acoplamiento, al menos, uno de los factores que se multiplica es 0, y el producto es cero. Si no hay un acoplamiento todos los sumandos son cero. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.8/20 Polinomios Iguales a 0 Si las variables se sustituyen por números, entonces el determinante se puede calcular en tiempo O n3 . Sea R x1 xm un polinomio, no idénticamente 0, tal que en cada variable el grado es lo más d, y sea M 0, entonces la cantidad de m-tuplas c1 cm 01 M 1 m tales que R c1 cm 0 es, a lo más, mdM m 1 . Demostración: La haremos por inducción sobre m. Para m 1 es trivialmente cierto porque un polinomio de grado d tiene a lo más d ceros. Supongámoslo cierto para m 1 variables y vamos a demostrarlo para m variables. Escribamos R como un polinomio en xm con coeficientes xm 1 . que son polinomios en x1 Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.9/20 Demostración Este polinomio pueder ser 0 en c1 c2 cm en dos situaciones 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 , esto puede ocurrir, a lo más, en m 1 dM m 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 un polinomio de grado menor o igual a d, que tendrá, a lo más, d raíces. Como los valores posibles de las m 1 primeras variables en 0 1 M 1 es M m 1 , en total tenemos M m 1 d situaciones distintas. La suma de los casos posibles en ambas situaciones, da la cota deseada mdM m 1 . Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.10/20 im entre 0 y M Elegir números aleatorios i1 donde M 2md. Algoritmo de MonteCarlo 1, Evaluar el polinomio para estos números. Si es cero responder que el polinomio es cero probablemente Si es distinto de cero, responder que el polinomio es distinto de cero con seguridad Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.11/20 Propiedades Si el polinomio es igual a cero, responderá que es igual a cero. P Decir 0 No 0 mdM m Mm 1 md M Si el polinomio es distinto de cero, a veces, responderá que es distinto de cero y, en otras ocasiones, responderá que es igual a cero. La probabilidad de responder 0 si es distinto de cero está acotada por (M m es el número de valores distintos): 1 2 Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.12/20 La clase RP La clase RP es la clase de los problemas de decisión para los que existe un algoritmo de MonteCarlo polinómico en el que, Si la respuesta es NO, el algoritmo responde NO So la respuesta es SI, responde SI con probabilidad mayor o igual a 1/2. La probabilidad de responder SI se puede hacer tan cercana a 1 como queramos. Tenemos duda cuando responde NO. Tenemos que P RP NP Dificultad: Es una clase semántica. No toda máquina de Turing define un lenguaje de RP, tiene que cumplir una condición adicional. Es muy difícil encontrar problemas RP-completos. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.13/20 Primalidad está en RP 0 , con Si aN 1 Lema de Fermat: Si N es primo, entonces a a N 1 se cumple que aN 1 1 mod N. Algoritmo de MonteCarlo para N compuesto: Elegimos 2 a N 1 1 mod N, entonces N es compuesto 6 7 8 9 10 11 12 % 100 % 100 % 33.3 % 100 % 20 % 100 % 14.3 % 25 % 11 % 100 % 9.1 % 5 4 3 2 N Si aN 1 1 mod N, entonces N es primo (probablemente) 561 .. 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 Test modificado N impar 1. 1 y 1 mod N o existe un entero i tal que 2i N N a 1 Si aN Elegir 2 MCD a 1 N 1 2i 1N 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 La clase ZPP: Algoritmos de las Vegas 1 2 Alg2 P NO2 NO 1 P SI1 SI Alg1 P NO1 NO La clase de problemas ZPP o problemas con un algoritmo de las Vegas, es el conjunto RP CoRP. Para estos problemas podemos diseñar un algoritmo que a veces no responda, pero si lo hace siempre acierta. Por estar en RP y CoRP, podemos encontar 1 2 P SI2 SI 1 Podemos ejecutar los dos algoritmos, si dan la misma respuesta, estamos seguros de que es correcta. Si dan distinta, entonces decimos no se. Podemos repetir los dos algoritmos hasta obtener cual es la respuesta. También es una clase semántica. Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.16/20 La clase PP Una lenguaje L está en PP si y solo si existe una Máquina de Turing no determinista polinómica en tiempo tal que x L si y solo si más de la mitad de las opciones de la máquina de Turing aceptan. Es una clase sintáctica. Cada Máquina de Turing No Determista define un lenguaje (distinto criterio de aceptación que el habitual). NP PP: Si L es aceptado por M no determinista por el criterio usual, construimos M que hace un movimiento inicial en el 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 Ejemplo Problema MAJSAT: ¿Más de la mitad de las asignaciones de verdad a las variables hacen que se satisfagan todas las cláusulas? El problema es que estos algoritmos no tienen valor práctico. ¿Cómo sabemos si una palabra está en L si el número de opciones de aceptación es similar al de opciones de rechazo? Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.18/20 La clase BPP Problemas L para los que existe una Máquina no Determinista M que funciona en tiempo polinómico tal que Si x L, entonces M acepta con probabilidad mayor que 3/4 Si x L, entonces M rechaza con probabilidad mayor que 3/4 Es una clase semántica No 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 Clases Aleatorias PP CoNP NP BPP ZPP CoRP RP ? P ? Modelos de Informática TeóricaCapítulo 7 - Algoritmos de MonteCarlo– p.20/20