Algoritmos aleatorizados

Documentos relacionados
Algoritmos en teoría de números

Un tercer ejemplo: verificación de primalidad

Multiplicación de matrices simétricas

Muchas de las ecuaciones de recurrencia que vamos a usar en este curso tienen la siguiente forma: ( c n =0 T (n) = a T (b n b.

Análisis de Algoritmos

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Cardinalidad IIC1253. IIC1253 Cardinalidad 1 / 23

Fracciones Parciales. Ramón Espinoza Armenta AVC APOYO VIRTUAL PARA EL CONOCIMIENTO

TEMA 5. FACTORIZACIÓN DE POLINOMIOS.

Definición 1.2. Sea (K, +, ) un dominio de integridad. Un polinomio de grado n sobre K es una expresión de la forma

IV Taller de Olimpiadas Matemáticas para Profesores 2014

Ejercicio. Usando la formulación del principio de inducción mostrada en la transparencia anterior, demuestre que: 2 2 n 1esdivisiblepor3. =2 n.

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

4.1 Anillo de polinomios con coeficientes en un cuerpo

Anillo de polinomios con coeficientes en un cuerpo

Álgebra I Práctica 7 - Polinomios

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

R no es enumerable. Por contradicción, supongamos que existe una biyección f : N! R. diagonalización de Cantor. Para cada i 2 N:

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO 6. POLINOMIOS DE UNA VARIABLE.

Clase 4 Funciones polinomiales y racionales

El teorema de los ceros de Hilbert (primera lección)

TALLER DE MATEMÁTICAS NOTAS. Toda expresión algebraica del tipo. a n x n + a n 1 x n a 1 x + a 0. es un polinomio de grado n, si a n 0.

ALGEBRA LINEAL - Práctica N 1 - Segundo cuatrimestre de 2017 Espacios Vectoriales

SOLUCIONES A LOS EJERCICIOS DE LA UNIDAD. a) Grado 2 b) Grado 3 c) Grado 2 d)grado 1 e) Grado 1 f) Grado 3 g) Grado 0 h) Grado 2 i) Grado 0

Álgebra I Práctica 5 - Polinomios

El Teorema Fundamental del Álgebra

RSA: Implementación. Ya resolvimos (3), ahora vamos a resolver (2). IIC3242 Complejidad Probabiĺıstica 28 / 77

GUÍA DE EJERCICIOS. Área Matemática - Polinomios

Algebra y Trigonometría Grupo: 1

Semana 14 [1/19] Polinomios. 8 de junio de Polinomios

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

AMPLIACIÓN DE MATEMÁTICAS. DIVISIBILIDAD DE NÚMEROS ENTEROS. En el conjunto de los números enteros

3.1 Polinomios Polinomio: Expresión algebraica formada por la suma y/o resta de varios monomios.

ALGEBRA 1- GRUPO CIENCIAS- TURNO TARDE- Polinomios

Polinomios CLAVES PARA EMPEZAR VIDA COTIDIANA. a) 3x b) c) d) x 2 3. a) iii b) ii c) i. a) 7 (4 2) c) 9x (x 4) 9x 2 36x

Álgebra I Práctica 5 - Polinomios

Examen Final - soluciones

ALGEBRA III Práctica 1

Anexo: El anillo de polinomios K[x].

5 REPASO Y APOYO OBJETIVO 1

IN34A - Optimización

Método de integración por fracciones parciales

Tema 2: Bases de Gröbner

Transformaciones Lineales y Espacio Dual

Anillo de Polinomios.

Álgebra y Álgebra II - Segundo Cuatrimestre 2017 Práctico 4 - Espacios Vectoriales

TRABAJO PRÁCTICO Nº 4: POLINOMIOS

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

Exámenes de álgebra básica de enero de Grupos 1 y 3.

Departamento de Ingeniería Matemática - Universidad de Chile

FACTORIZACIÓN I # DE FACTORES PRIMOS POLINOMIO FACTORIZADO. multiplicación (x + 1) (x + 3) = x 2 + 4x + 3. P(x, y, z) = (x + y)(x - y)z 2 x 3

Tema 4: Funciones. Límites de funciones

520142: ALGEBRA y ALGEBRA LINEAL

AMPLIACIÓN DE MATEMÁTICAS

Espacios vectoriales

Generación de variables aleatorias continuas Método de rechazo

ALGEBRA I, ALGEBRA Y TRIGONOMETRIA , Segundo Semestre CAPITULO 6: POLINOMIOS.

1. El Teorema de Rolle Generalizado.

La lógica de segundo orden: Sintaxis

Álgebra y Álgebra II - Primer Cuatrimestre 2018 Práctico 4 - Espacios Vectoriales

Desde la secundaria estamos acostumbrados a trabajar con polinomios, los cuales identificamos con expresiones de la forma

4. Complejidad computacional

4.2 Producto escalar.

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

RECONOCER EL GRADO, EL TÉRMINO Y LOS COEFICIENTES DE UN POLINOMIO

TEMA 5 EXPRESIONES ALGEBRAICAS

2. Problemas. Espacios Vectoriales. Álgebra Lineal- Propedéutico Mayo de 2012

Tema 01: Fundamentos del Análisis Asintótico de Algoritmos

Formulando con modelos lineales enteros

Transcripción:

Algoritmos aleatorizados IIC2283 IIC2283 Algoritmos aleatorizados 1/109

Algoritmos aleatorizados Vamos a permitir a los algoritmos tener una componente aleatoria I En general esto significa que un algoritmo toma algunas decisiones dependiendo de valores escogidos al azar (según una distribución de probabilidades) IIC2283 Algoritmos aleatorizados 2/109

Algoritmos aleatorizados Vamos a permitir a los algoritmos tener una componente aleatoria I En general esto significa que un algoritmo toma algunas decisiones dependiendo de valores escogidos al azar (según una distribución de probabilidades) Hablamos entonces de algoritmos aleatorizados IIC2283 Algoritmos aleatorizados 2/109

Algoritmos aleatorizados La ejecución de un algoritmo aleatorizado depende entonces de valores escogidos al azar I Distintas ejecuciones pueden dar resultados distintos IIC2283 Algoritmos aleatorizados 3/109

Algoritmos aleatorizados La ejecución de un algoritmo aleatorizado depende entonces de valores escogidos al azar I Distintas ejecuciones pueden dar resultados distintos Vamos a considerar dos tipos de algoritmos aleatorizados: IIC2283 Algoritmos aleatorizados 3/109

Algoritmos aleatorizados La ejecución de un algoritmo aleatorizado depende entonces de valores escogidos al azar I Distintas ejecuciones pueden dar resultados distintos Vamos a considerar dos tipos de algoritmos aleatorizados: I Monte Carlo: el algoritmo siempre entrega un resultado, pero hay una probabilidad de que sea incorrecto IIC2283 Algoritmos aleatorizados 3/109

Algoritmos aleatorizados La ejecución de un algoritmo aleatorizado depende entonces de valores escogidos al azar I Distintas ejecuciones pueden dar resultados distintos Vamos a considerar dos tipos de algoritmos aleatorizados: I Monte Carlo: el algoritmo siempre entrega un resultado, pero hay una probabilidad de que sea incorrecto I Las Vegas: si el algoritmo entrega un resultado es correcto, pero hay una probabilidad de que no entregue resultado IIC2283 Algoritmos aleatorizados 3/109

Cuáles son las ventajas de los algoritmos aleatorizados? IIC2283 Algoritmos aleatorizados 4/109

Cuáles son las ventajas de los algoritmos aleatorizados? Existen problemas para los cuales los algoritmos aleatorizados son más eficientes que los algoritmos usuales (sin una componente aleatoria) I Por ejemplo, el problema de verificar si un número es primo IIC2283 Algoritmos aleatorizados 4/109

Cuáles son las ventajas de los algoritmos aleatorizados? Existen problemas para los cuales los algoritmos aleatorizados son más eficientes que los algoritmos usuales (sin una componente aleatoria) I Por ejemplo, el problema de verificar si un número es primo Existen problemas para los cuales los únicos algoritmos eficientes conocidos son aleatorizados I Por ejemplo, el problema de verificar si dos polinomios en varias variables son equivalentes IIC2283 Algoritmos aleatorizados 4/109

Cuáles son las ventajas de los algoritmos aleatorizados? Existen problemas para los cuales los algoritmos aleatorizados son más eficientes que los algoritmos usuales (sin una componente aleatoria) I Por ejemplo, el problema de verificar si un número es primo Existen problemas para los cuales los únicos algoritmos eficientes conocidos son aleatorizados I Por ejemplo, el problema de verificar si dos polinomios en varias variables son equivalentes Vamos a ver en detalle estos ejemplos... IIC2283 Algoritmos aleatorizados 4/109

Un primer ejemplo: equivalencia de polinomios Consideramos polinomios en Q Suponemos inicialmente que un polinomio es una expresión de la forma: donde cada a i,j 2 Q p(x) = kx Y`i (x + a i,j ) i=1 j=1 La forma canónica de p(x) es una expresión de la forma: p(x) = donde cada c i 2 Q y ` =máx{`1,...,`k} `X c i x i i=0 El grado de p(x) es`. IIC2283 Algoritmos aleatorizados 5/109

Un primer ejemplo: equivalencia de polinomios Evaluamos los polinomios sobre elementos de Q I La operación más cara en este proceso es la multiplicación de números en Q, poresonosconcentramosenella IIC2283 Algoritmos aleatorizados 6/109

Un primer ejemplo: equivalencia de polinomios Evaluamos los polinomios sobre elementos de Q I La operación más cara en este proceso es la multiplicación de números en Q, poresonosconcentramosenella Ejercicio 1. De un algoritmo que, dado un polinomio p(x) ya 2 Q, calculep(a) 2. De un algoritmo que, dado un polinomio p(x) en su forma canónica y a 2 Q, calculep(a) Los dos algoritmos deben realizar O( p(x) ) multiplicaciones,donde p(x) es el largo de p(x) considerado como una palabra sobre un cierto alfabeto. IIC2283 Algoritmos aleatorizados 6/109

Un primer ejemplo: equivalencia de polinomios Dados dos polinomios p(x) y q(x), queremos verificar si son idénticos. I Para cada a 2 Q, setienequep(a) =q(a) IIC2283 Algoritmos aleatorizados 7/109

Un primer ejemplo: equivalencia de polinomios Dados dos polinomios p(x) y q(x), queremos verificar si son idénticos. I Para cada a 2 Q, setienequep(a) =q(a) Cómo podemos resolver este problema? IIC2283 Algoritmos aleatorizados 7/109

Un algoritmo para la equivalencia de polinomios EquivPol(p(x), q(x)) determine el grado k de p(x) determine el grado ` de q(x) if k 6= ` then return no else transforme p(x) es su forma canónica P k i=0 c ix i transforme q(x) es su forma canónica P k i=0 d ix i for i := 0 to k do if c i 6= d i then return no return sí IIC2283 Algoritmos aleatorizados 8/109

Un algoritmo para la equivalencia de polinomios Ejercicio Muestre que el algoritmo anterior en el peor caso es O(n 2 ), donde n = p(x) + q(x) I Recuerde que la operación básica a contar es la multiplicación de números racionales IIC2283 Algoritmos aleatorizados 9/109

Un algoritmo para la equivalencia de polinomios Ejercicio Muestre que el algoritmo anterior en el peor caso es O(n 2 ), donde n = p(x) + q(x) I Recuerde que la operación básica a contar es la multiplicación de números racionales Es posible resolver este problema utilizando un menor número de multiplicaciones? IIC2283 Algoritmos aleatorizados 9/109

Un algoritmo aleatorizado para la equivalencia de polinomios EquivPolAleatorizado(p(x), q(x)) determine el grado k de p(x) determine el grado ` de q(x) if k 6= ` then return no else escoja al azar y con distribución uniforme un elemento a del conjunto de números naturales {1,...,100 k} if p(a) =q(a) then return sí else return no IIC2283 Algoritmos aleatorizados 10 / 109

Un algoritmo aleatorizado para la equivalencia de polinomios El algoritmo sólo necesita realizar O(n) multiplicaciones, donde n = p(x) + q(x) I Ya que necesita calcular p(a) y q(a) IIC2283 Algoritmos aleatorizados 11 / 109

Un algoritmo aleatorizado para la equivalencia de polinomios El algoritmo sólo necesita realizar O(n) multiplicaciones, donde n = p(x) + q(x) I Ya que necesita calcular p(a) y q(a) Pero el algoritmo puede dar una respuesta equivocada I Cuál es la probabilidad de error? IIC2283 Algoritmos aleatorizados 11 / 109

Calculando la probabilidad de error Sean p(x) y q(x) dos polinomios de grado k I Si los polinomios p(x) y q(x) son equivalentes, entonces el algoritmo responde sí sin cometer error I Si los polinomios p(x) y q(x) no son equivalentes, el algoritmo puede responder sí al sacar al azar un elemento a 2{1,...,100 k} tal que p(a) =q(a) Esto significa que a es una raíz del polinomio r(x) =p(x) q(x) IIC2283 Algoritmos aleatorizados 12 / 109

Calculando la probabilidad de error r(x) no es el polinomio nulo y es de grado a lo más k I Por lo tanto r(x) tienealomásk raíces en Q IIC2283 Algoritmos aleatorizados 13 / 109

Calculando la probabilidad de error r(x) no es el polinomio nulo y es de grado a lo más k I Por lo tanto r(x) tienealomásk raíces en Q Concluimos que: Pr(a sea una raíz de r(x)) apple = k 100 k 1 100 IIC2283 Algoritmos aleatorizados 13 / 109

Un mejor algoritmo aleatorizado La probabilidad de error del algoritmo está acotada por 1 100 I Es aceptable esta probabilidad? IIC2283 Algoritmos aleatorizados 14 / 109

Un mejor algoritmo aleatorizado La probabilidad de error del algoritmo está acotada por 1 100 I Es aceptable esta probabilidad? Ejercicio De un algoritmo que resuelva el problema de equivalencia de polinomios, que en el peor caso sea O(n) y que tenga una probabilidad de error acotada por 1 100 10 IIC2283 Algoritmos aleatorizados 14 / 109

Un mejor algoritmo aleatorizado La probabilidad de error del algoritmo está acotada por 1 100 I Es aceptable esta probabilidad? Ejercicio De un algoritmo que resuelva el problema de equivalencia de polinomios, que en el peor caso sea O(n) y que tenga una probabilidad de error acotada por 1 100 10 Confiaría en este algoritmo lineal? IIC2283 Algoritmos aleatorizados 14 / 109

Un mejor algoritmo aleatorizado La probabilidad de error del algoritmo está acotada por 1 100 I Es aceptable esta probabilidad? Ejercicio De un algoritmo que resuelva el problema de equivalencia de polinomios, que en el peor caso sea O(n) y que tenga una probabilidad de error acotada por 1 100 10 Confiaría en este algoritmo lineal? I Para qué probabilidad estaría dispuesto a confiar? IIC2283 Algoritmos aleatorizados 14 / 109

Un segundo ejemplo: una definición general de polinomios Consideramos polinomios en varias variables en Q Un monomio es una expresión de la forma cx `1 1 cada `i 2 N x `n n, donde c 2 Q y Un monomio cx `1 1 I No es nulo si c 6= 0 x `n n es nulo si c =0 El grado de un monomio cx `1 1 x `n n no nulo es `1 + + `n IIC2283 Algoritmos aleatorizados 15 / 109

Un segundo ejemplo: una definición general de polinomios Un polinomio es una expresión de la forma: p(x 1,...,x n ) = `X i=1 Ym i j=1 donde cada a i,j,k 2 Q ycadaa i,j,n+1 2 Q nx a i,j,k x k + a i,j,n+1 k=1 IIC2283 Algoritmos aleatorizados 16 / 109

Un segundo ejemplo: una definición general de polinomios La forma canónica de un polinomio p(x 1,...,x n )esúnica,yesiguala0oa una suma de monomios que satisface las siguiente propiedades: I cada monomio en la forma canónica es de la forma cx `1 1 x `n n con c 6= 0 I si cx `1 `n 1 xn y dx m 1 1 x m n n son dos monomios distintos en la forma canónica, entonces `i 6= m i para algún i 2{1,...,n} Un polinomio p(x 1,...,x n ) es nulo si su forma canónica es 0 El grado de un polinomio p(x 1,...,x n )nonuloeselmayorgradodelos monomios en su forma canónica. IIC2283 Algoritmos aleatorizados 17 / 109

Equivalencia de polinomios en varias variables Dos polinomios p(x 1,...,x n )yq(x 1,...,x n ) son idénticos si para cada secuencia a 1,...,a n 2 Q se tiene que: p(a 1,...,a n ) = q(a 1,...,a n ) IIC2283 Algoritmos aleatorizados 18 / 109

Equivalencia de polinomios en varias variables Dos polinomios p(x 1,...,x n )yq(x 1,...,x n ) son idénticos si para cada secuencia a 1,...,a n 2 Q se tiene que: p(a 1,...,a n ) = q(a 1,...,a n ) Nuevamente queremos verificar si dos polinomios son idénticos. IIC2283 Algoritmos aleatorizados 18 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? IIC2283 Algoritmos aleatorizados 19 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? I Consideramos ahora todas las operaciones, no sólo la multiplicación de números racionales IIC2283 Algoritmos aleatorizados 19 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? I Consideramos ahora todas las operaciones, no sólo la multiplicación de números racionales Tenemos un problema: calcular la forma canónica de un polinomio toma tiempo exponencial IIC2283 Algoritmos aleatorizados 19 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? I Consideramos ahora todas las operaciones, no sólo la multiplicación de números racionales Tenemos un problema: calcular la forma canónica de un polinomio toma tiempo exponencial I Incluso si sólo consideramos la multiplicación de números racionales IIC2283 Algoritmos aleatorizados 19 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? I Consideramos ahora todas las operaciones, no sólo la multiplicación de números racionales Tenemos un problema: calcular la forma canónica de un polinomio toma tiempo exponencial I Incluso si sólo consideramos la multiplicación de números racionales Pero existe un algoritmo aleatorizado eficiente para este problema. IIC2283 Algoritmos aleatorizados 19 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? I Consideramos ahora todas las operaciones, no sólo la multiplicación de números racionales Tenemos un problema: calcular la forma canónica de un polinomio toma tiempo exponencial I Incluso si sólo consideramos la multiplicación de números racionales Pero existe un algoritmo aleatorizado eficiente para este problema. I Esto no es trivial ya que un polinomio p(x 1,...,x n )puedeteneruna cantidad infinita de raíces I Por ejemplo: p(x 1, x 2 )=(x 1 1)(x 2 3) IIC2283 Algoritmos aleatorizados 19 / 109

Equivalencia de polinomios en varias variables Podemos verificar en tiempo polinomial si dos polinomios en varias variables son equivalentes? I Consideramos ahora todas las operaciones, no sólo la multiplicación de números racionales Tenemos un problema: calcular la forma canónica de un polinomio toma tiempo exponencial I Incluso si sólo consideramos la multiplicación de números racionales Pero existe un algoritmo aleatorizado eficiente para este problema. I Esto no es trivial ya que un polinomio p(x 1,...,x n )puedeteneruna cantidad infinita de raíces I Por ejemplo: p(x 1, x 2 )=(x 1 1)(x 2 3) I El ingrediente principal es el lema de Schwartz-Zippel IIC2283 Algoritmos aleatorizados 19 / 109

El ingrediente principal Lema de Schwartz-Zippel Sea p(x 1,...,x n ) un polinomio no nulo de grado k, yseaa un subconjunto finito y no vacío de Q. Sia 1,...,a n son elegidos de manera uniforme e independiente desde A, entonces Pr(p(a 1,...,a n ) = 0) apple k A IIC2283 Algoritmos aleatorizados 20 / 109

El ingrediente principal Lema de Schwartz-Zippel Sea p(x 1,...,x n ) un polinomio no nulo de grado k, yseaa un subconjunto finito y no vacío de Q. Sia 1,...,a n son elegidos de manera uniforme e independiente desde A, entonces Pr(p(a 1,...,a n ) = 0) apple k A Demostración: Por inducción en n Ya habíamos considerado el caso n =1 Suponemos que la propiedad se cumple para todo polinomio en n variables, y consideramos un polinomio p(x 1, x 2,...,x n+1 ) de grado k IIC2283 Algoritmos aleatorizados 20 / 109

Demostración del lema de Schwartz-Zippel Si p(x 1, x 2,...,x n+1 ) en su forma canónica es igual a c 2 (Qr{0}), entonces el lema se cumple trivialmente ya que Pr(p(a 1, a 2,...,a n+1 ) = 0) = 0 Suponemos entonces que p(x 1, x 2,...,x n+1 ) en su forma canónica no es igual a c 2 Q. I Puesto que además sabemos que p(x 1, x 2,...,x n+1 )noesnulo IIC2283 Algoritmos aleatorizados 21 / 109

Demostración del lema de Schwartz-Zippel Tenemos que p(x 1, x 2,...,x n+1 ) en su forma canónica contiene un monomio de la forma: cx `1 1 x `2 2 x `n+1 n+1 donde c 6= 0y`i > 0paraalgúni 2{1,...,n +1} Sin perdida de generalidad suponemos que en el monomio anterior `1 > 0 Tenemos que: p(x 1, x 2,...,x n+1 ) = kx x1p i i (x 2,...,x n+1 ) i=0 donde cada p i (x 2,...,x n+1 )esunpolinomioyalmenosunodeellosnoesnulo IIC2283 Algoritmos aleatorizados 22 / 109

Demostración del lema de Schwartz-Zippel Sea ` =máx{i 2{0,...,k} p i (x 2,...,x n+1 )noesnulo} I Tenemos que `>0yaquesupusimosque`1 > 0 Dado que el grado de p(x 1, x 2,...,x n+1 )esk, tenemosqueelgradode p`(x 2,...,x n+1 )esm con m apple k ` IIC2283 Algoritmos aleatorizados 23 / 109

Demostración del lema de Schwartz-Zippel Sea ` =máx{i 2{0,...,k} p i (x 2,...,x n+1 )noesnulo} I Tenemos que `>0yaquesupusimosque`1 > 0 Dado que el grado de p(x 1, x 2,...,x n+1 )esk, tenemosqueelgradode p`(x 2,...,x n+1 )esm con m apple k ` Sea A un subconjunto finito y no vacío de Q, yseaa 1,...,a n+1 una secuencia de números elegidos de manera uniforme e independiente desde A IIC2283 Algoritmos aleatorizados 23 / 109

Demostración del lema de Schwartz-Zippel Por hipótesis de inducción tenemos que: Pr(p`(a 2,...,a n+1 )=0) apple m A apple k ` A Si p`(a 2,...,a n+1 ) 6= 0,entoncespordefiniciónde` tenemos que q(x 1 )=p(x 1, a 2,...,a n+1 )esunpolinomiodegrado`. Por lo tanto: Pr(p(a 1, a 2,...,a n+1 )=0 p`(a 2,...,a n+1 ) 6= 0) apple ` A IIC2283 Algoritmos aleatorizados 24 / 109

Demostración del lema de Schwartz-Zippel Concluimos que: Pr(p(a 1, a 2,...,a n+1 )=0) = Pr(p(a 1, a 2,...,a n+1 )=0 p`(a 2,...,a n+1 )=0) Pr(p`(a 2,...,a n+1 )=0)+ Pr(p(a 1, a 2,...,a n+1 )=0 p`(a 2,...,a n+1 ) 6= 0) Pr(p`(a 2,...,a n+1 ) 6= 0) apple Pr(p`(a 2,...,a n+1 )=0)+Pr(p(a 1, a 2,...,a n+1 )=0 p`(a 2,...,a n+1 ) 6= 0) apple k ` A + ` A = k A IIC2283 Algoritmos aleatorizados 25 / 109

Un algoritmo aleatorizado para la equivalencia de polinomios en varias variables Vamos a dar un algoritmo aleatorizado eficiente para el problema de verificar si dos polinomios en varias variables son equivalentes IIC2283 Algoritmos aleatorizados 26 / 109

Un algoritmo aleatorizado para la equivalencia de polinomios en varias variables Vamos a dar un algoritmo aleatorizado eficiente para el problema de verificar si dos polinomios en varias variables son equivalentes Suponga que la entrada del algoritmo está dada por los siguientes polinomios: `X Ym i nx p(x 1,...,x n ) = a i,j,k x k + a i,j,n+1 q(x 1,...,x n ) = i=1 j=1 rx Ys i i=1 j=1 k=1 nx b i,j,k x k + b i,j,n+1 k=1 IIC2283 Algoritmos aleatorizados 26 / 109

Un algoritmo aleatorizado para la equivalencia de polinomios en varias variables EquivPolAleatorizado(p(x 1,...,x n ), q(x 1,...,x n )) k := máx {m 1,...,m`, s 1,...,s r } A := {1,...,100 k} sea a 1,...,a n una secuencia de números elegidos de manera uniforme e independiente desde A if p(a 1,...,a n )=q(a 1,...,a n ) then return sí else return no IIC2283 Algoritmos aleatorizados 27 / 109

Utilizando el lema de Schwartz-Zippel Antes de analizar la complejidad del algoritmo vamos a calcular su probabilidad de error. IIC2283 Algoritmos aleatorizados 28 / 109

Utilizando el lema de Schwartz-Zippel Antes de analizar la complejidad del algoritmo vamos a calcular su probabilidad de error. I Si los polinomios p(x 1,...,x n )yq(x 1,...,x n )sonequivalentes,entonces el algoritmo responde sí sin cometer error IIC2283 Algoritmos aleatorizados 28 / 109

Utilizando el lema de Schwartz-Zippel Antes de analizar la complejidad del algoritmo vamos a calcular su probabilidad de error. I Si los polinomios p(x 1,...,x n )yq(x 1,...,x n )sonequivalentes,entonces el algoritmo responde sí sin cometer error I Si los polinomios p(x 1,...,x n )yq(x 1,...,x n )nosonequivalentes,el algoritmo puede responder sí al escoger una secuencia de números a 1,...,a n desde A tales que p(a 1,...,a n )=q(a 1,...,a n ) I Donde A = {1,...,100 k} IIC2283 Algoritmos aleatorizados 28 / 109

Utilizando el lema de Schwartz-Zippel Antes de analizar la complejidad del algoritmo vamos a calcular su probabilidad de error. I Si los polinomios p(x 1,...,x n )yq(x 1,...,x n )sonequivalentes,entonces el algoritmo responde sí sin cometer error I Si los polinomios p(x 1,...,x n )yq(x 1,...,x n )nosonequivalentes,el algoritmo puede responder sí al escoger una secuencia de números a 1,...,a n desde A tales que p(a 1,...,a n )=q(a 1,...,a n ) I Donde A = {1,...,100 k} Esto significa que (a 1,...,a n )esunaraízdelpolinomio r(x 1,...,x n )=p(x 1,...,x n ) q(x 1,...,x n ) IIC2283 Algoritmos aleatorizados 28 / 109

Utilizando el lema de Schwartz-Zippel r(x 1,...,x n )noeselpolinomionuloyesdegradot con t apple k I Dado que k =máx{m 1,...,m`, s 1,...,s r } IIC2283 Algoritmos aleatorizados 29 / 109

Utilizando el lema de Schwartz-Zippel r(x 1,...,x n )noeselpolinomionuloyesdegradot con t apple k I Dado que k =máx{m 1,...,m`, s 1,...,s r } Utilizando el lema de Schwartz-Zippel obtenemos: Pr(r(a 1,...,a n )=0) apple t A apple k A = k 100 k = 1 100 IIC2283 Algoritmos aleatorizados 29 / 109

Utilizando el lema de Schwartz-Zippel r(x 1,...,x n )noeselpolinomionuloyesdegradot con t apple k I Dado que k =máx{m 1,...,m`, s 1,...,s r } Utilizando el lema de Schwartz-Zippel obtenemos: Pr(r(a 1,...,a n )=0) apple t A apple k A = k 100 k = 1 100 La probabilidad de error del algoritmo está entonces acotada por 1 100 IIC2283 Algoritmos aleatorizados 29 / 109

Un mejor algoritmo aleatorizado para el problema general Ejercicio De un algoritmo aleatorizado que resuelva el problema de equivalencia de polinomios en varias variables. I La probabilidad de error del algoritmo debe estar acotada por 1 100 10 I Debe existir una constante c tal que el algoritmo en el peor caso es O(m c ), donde m es el tamaño de la entrada I Si consideramos p(x 1,...,x n )yq(x 1,...,x n )comopalabrassobre un cierto alfabeto, entonces m = p(x 1,...,x n ) + q(x 1,...,x n ) IIC2283 Algoritmos aleatorizados 30 / 109

Una solución para el ejercicio EquivPolAleatorizado(p(x 1,...,x n ), q(x 1,...,x n )) k := máx {m 1,...,m`, s 1,...,s r } A := {1,...,100 k} for i := 1 to 10 do sea a 1,...,a n una secuencia de números elegidos de manera uniforme e independiente desde A if p(a 1,...,a n ) 6= q(a 1,...,a n ) then return no else return sí IIC2283 Algoritmos aleatorizados 31 / 109