Presentacin de PowerPoint - PowerPoint PPT Presentation

About This Presentation
Title:

Presentacin de PowerPoint

Description:

Un drag n visita cada noche el sitio del tesoro y se lleva y lingotes. ... la caracter stica utilidad del algoritmo es es que cuando retorna falso existe ... – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 18
Provided by: erida
Category:

less

Transcript and Presenter's Notes

Title: Presentacin de PowerPoint


1
Diseño y análisis de algoritmos
Algoritmos probabilistas
2
Temario
  • Algoritmos probabilistas
  • Introducción
  • Clasificación
  • Aplicaciones
  • Integración numérica
  • Verificación de productos de matrices

3
Algoritmos probabilistas Introducción
  • Motivación La historia del tesoro, el dragón, un
    computador un mago y una moneda
  • En una isla hay un tesoro escondido de x lingotes
  • de oro. Sólo se sabe que estando en O el
    tesoro con seguridad está en A o B.
  • Un dragón visita cada noche el sitio del tesoro y
    se lleva y lingotes.
  • En O se puede usar un computador y se sabe con
    certeza que en 4 días más decodificará el lugar
    preciso.
  • Un mago ofrece un trato a cambio del equivalente
    en oro de lo que se llevará el dragón en 3 días
    revelará el lugar exacto.
  • Cómo resolver el problema con la mayor ganancia?

4
Algoritmos probabilistas Introducción
  • Motivación La historia del tesoro, el dragón, un
    computador un mago y una moneda
  • Una alternativa es quedarse los 4 días en O hasta
    resolver el misterio, y luego llegar al tesoro en
    5 días más por lo que se encontrarán , x - 9y
    lingotes
  • Aceptando el trato con el mago, se llega al
    tesoro en 5 días, se encuentran x - 5y lingotes
    de los cuales se deben pagar 3y al mago , por lo
    que se obtiene finalmente x - 8y lingotes
  • A primera vista se, debe realizar el trato, pero
    existe una solución mejor.
  • Tirar una moneda al aire, si es cae ir a A si es
    sello ir a B
  • Si se acierta y A era el sitio adecuado, se
    obtienen x - 5y
  • En el peor caso, se visitan ambos lugares
    obtemiéndose x - 10y
  • Sin embargo estadísticamente el beneficio
    esperado es x 7.5y

5
Algoritmos probabilistas Introducción
  • Características de los algoritmos probabilistas
  • En algunos algoritmos en los que aparece alguna
    desición, es preferible a veces, elegir
    aleatoriamente una antes que perder tiempo
    calculando qué alternativa es la mejor.
  • Esto ocurre si el tiempo requerido para
    determinar la acción óptima demasiado frente al
    promedio obtenido una acción al azar.
  • A veces una solución buana a tiempo es mejor
    que una óptima cuando ya no se puede aplicar.
  • A primera vista se, debe realizar el trato, pero
    existe una solución mejor.
  • Su principal característica es que el mismo
    algoritmo puede comportarse de distinta forma,
    aplicado a los mismos datos.
  • Puede dar resultados distintos
  • Por lo tanto necesitar de una cantidad distinta
    de tiempo y espacio

6
Algoritmos probabilistas Introducción
  • Características de los algoritmos probabilistas
  • Un algoritmo determinista siempre termina, no
    debe fallarejemplo división por 0
  • Un algoritmo probabilista puede quedar en un
    ciclo o no converger, devolver un resultado
    incorrecto , siempre y cuando estos casos sucedan
    con una probabilidad baja.
  • Si ocurre, se aborta el algoritmo y se repite su
    ejecución con los mismos datos.
  • Un algoritmo probabilista puede encontrar
    soluciones diferentes, ejecutandoce para los
    mismos datos. En muchos casos se puede aumentar
    la confianza del resultado del algoritmo,
    ejecutándolo varias veces.
  • El análisis de complejidad es frecuentemente muy
    complejo y requiere herramientas de probabilidad
    y estadísticas fuera de los alcances de este
    curso.

7
Algoritmos probabilistas Introducción
  • Características de los algoritmos probabilistas
  • Se supondrá disponible en los algortmos
    probabilistas una sentencia de generación de
    úmeros aleatórios con uns distribución uniforme
    U0..1
  • uniforme()
  • Devuelve un real x uniformemente distribuído en
    el intervalo 0,1). Llamadas sucesivas generarn
    una secuancia de valores independientes.
  • En base a esta sentencia se pueden construir,
    generadores de otros tipos de valores aleatorios.
  • Ejemplo disreibución uniforme Ua..b a y b
    enteros , altb
  • function U(a,bentero)real
  • U a(b-a)uniforme()
  • En la práctica no es posible implementar
    uniforme(), la mayoría de los lenguajes
    implementan la generación de números
    pseudoaleatorios, que son procedimientos
    determinísticos que generan una larga secuencia
    de valores aparentemente aleatorios.

8
Algoritmos probabilistas Clasificación
  • De acuerdo al resultado que obtienen, los
    algoritmos probabilísticos se clasifican en
  • Numéricos dan una solución aproximada, su
    resultado se entrga dentro de un rango de
    confianza permitido. Ej el valor buscado es
    33/-3 con un 90 de probabilidad.
  • A mayor tiempo de ejecución mejor es la
    aproximación
  • Aplicaciones simulación, encuestas.
  • de Monte Carlo dan como resultado el valor
    correcto con una probabilidad alta, pero pueden
    entregar valores equivocados.
  • No se puede saber si la respuesta es correcta
  • Se puede reducir la incertidumbre ejecutando
    varias veces el algoritmo.
  • de Las Vegas nunca entregan un resultado
    incorrecto, pueden detectar que el resultado es
    imposible de obtener en esa ejecución y devolver
    un mensaje de error, en esos casos se debe
    intentar de nuevo con los mismos datos hasta
    obtener la solución correcta.

9
Algoritmos probabilistas Clasificación
  • Para ilustrar esta clasificación , si se tuviera
    un algoritmo de cada clase que calcule el año del
    descubrimiento de américa, los resultados de las
    distintas llamadas podrían ser
  • Numérico entre 1490 y 1500, entre 1485 y
    1595, entre 1491 y 1501, entre 1480 y 1590,
    entre 1489 y 1499. Con estos cinco datos, la
    probabilidad de acertar es de 4/5 80 de
    confianza.
  • Dando más tiempo a la ejecución del algoritmo se
    podría aumentar la confianza o reducir el ancho
    del intervalo.
  • Montecarlo 1492,1492,1492,1491,1492,1492,1492,213
    4,1492,1492
  • Un 20 de error
  • Este porcentage podría reducirse dando más tiempo
    de ejecución
  • Las respuestas incorrectas pueden ser próximas a
    la correcta o completamente desviadas.
  • Las vegas 1492,error, 1492, 1492, 1492,error,
    1492, 1492, 1492, 1492
  • Nunca da una respuesta incorrecta
  • 20 de error.

10
Algoritmos probabilistas Integración numérica
  • Problema calcular I
  • Calcular la integral definida con un aloritmo
    probabilístico, es factible utilizando el teorema
    del valor medio del cálculo dice que si f es
    continua en a,b, entonces en algun punto c en
    a,b la función alcanza su valor promedio
  • Por lo que basta con aproximar el promedio
    muestreando la función y despejando Iprom(b-a)

11
Algoritmos probabilistas Integración numérica
  • Implementación
  • Puede verse que la varianza del estimador
    calculado por la función anterior es inversamente
    proporcional al número de n de muestras
    generadas, y que el estimador es aproximadamente
    normal, cuando n es grande
  • Por lo que el error esperado es inversamente
    proporcional a , lo que implica que n
    tiene que aumentar 100 veces lo hecho hasta
    entonces si se quiere un dígito adiconal de
    precisión

funcion integraProb(ffuncion nenteroa,breal)
real variables suma,xrealientero inicio
suma0.0 para i1 hasta n hacer
xuniforme(a,b) sumasumaf(x)
fin-para devuelve (b-a)(suma/n) fin
12
Algoritmos probabilistas Verificación de
producto de matrices
  • Los algoritmos de Monte Carlo, se aplican a
    problemas para los que no existen algoritmos
    eficientes ni deterministas ni probabilistas, que
    den siempre una solución correcta (a veces ni
    siquiera aproximada)
  • El hecho de que ocasionalmente den una respuesta
    equivocada no significa que para ciertos datos la
    mayoría de las veces el algoritmo falla. La
    probabilidad de falla del algoritmo debe ser baja
    para todos los datos o instancias del problema.
  • En otras palabras encuentra una solución correcta
    con una alta probabilidad sea cual sea la
    entrada.
  • Sea p un número real tal que 0ltplt1, un algoritmo
    Monte Carlo es p-correcto si
  • Devuelve una solución correcta con probabilidad
    p, cualesquiera sean los datos de entrada
  • A veces, p dependerá del tamaño de la entrada,
    pero nunca de los datos de la entrada en si.

13
Algoritmos probabilistas Verificación de
producto de matrices
  • Problema se tienen tres matrices A,B,C, de n x n
    y se sospecha que CAB
  • Solución trivial es multiplicar AB y comparar con
    C
  • Complejidad estándar
  • Strassen,
  • Un aloritmoprobabilístico consiste en testear o
    no cada fila de AB con C de acuerdo a una
    variable aleatoria
  • Si ABC, entonces el resultado será siempre
    igual.
  • Si ABltgtC, entonces existe al menuos un elemento
    diferente.
  • La fila de ese elemento será testeada con
    probabilidad 0.5, en cuyo caso se encontrará la
    diferencia. Por lo tanto es un algoritmo
    0.5-correcto

14
Algoritmos probabilistas Verificación de
producto de matrices
  • Implementación
  • La complejidad temporal del algoritmo es
  • Una probabilidad del 50 no es buena, sería lo
    mismo tirar una moneda
  • Sin embargo, la característica utilidad del
    algoritmo es es que cuando retorna falso existe
    el 100 de probabilidad de que la respuesta es
    correcta, sólo cuando devuelve verdad no se sabe
    la respuesta

Tipo mariz arreglo 1..n,1..n de real funcion
freivalds(A,B,Cmatriznentero)booleano
variables xarreglo 1..n de 0..1ientero
inicio para i1 hasta n hacer
xiuniforme_entero(0,1) fin-para si
(XA)B XC entonces devuelve verdad
sino devuelve falso fin
15
Algoritmos probabilistas Verificación de
producto de matrices
  • Ejemplo
  • Si X(1,1,0) entonces (XA)B(40,94,128) y la
    respuesta es verdadero, por lo que se tienen
    dudas de si la multiplicación es correcta.
    Intentando con X(0,1,1), entonces
    (XA)B(76,166,236) y la respuesta es falso, por
    lo que se está seguro que ABltgtC.
  • Los algoritmos con esta cracterística (una
    respuesta es siempre correcta), se denominan
    sesgados, y permiten aumentar la confianza,
    ejecutando varias veces el algoritmo con los
    mismos datos.

16
Algoritmos probabilistas Verificación de
producto de matrices
  • Implementación
  • La probabilidad de que en cada llamada se
    devuelva incorrectamente el valor de verdad es de
    1/2
  • Como cada llamada a freivalds es independiente,
    la probabilidad de que k llamadas sucesivas den
    todas una respuesta incorrecta es
  • Esto se puede ver como la probabilidad de que la
    fila de la diferencia no sea escojida k veces
    consecutivas

funcion repe_freivalds(A,B,Cmatrizn,kentero)bo
oleano variablesientero inicio para
i1 hasta k hacer si not
freivalds(A,B,C,n) entonces devuelve
falso fin-si fin-para devuelve
verdad fin
17
Algoritmos probabilistas Verificación de
producto de matrices
  • El algoritmo repe_freivalds es
    correcto
  • Por ejemplo, si k10, la respuesta es 99,9
    correcta. Un buen resultado considerando que un
    algoritmo determiístico puede tener errores de
    SW.
  • Se debe aprovechar esta situación típica de los
    algoritmos de tipo Monte Carlo
  • Si se está garantizado que sí se obtienen una de
    las dos respuestas el algoritmo es correcto
  • Entonces el decrecimiento de la probabilidad de
    error es exponencial repitiendo varias veces el
    algoritmo.
Write a Comment
User Comments (0)
About PowerShow.com