RESUMEN DE ALGORITMOS PROBABILÍSTICOS

Documentos relacionados
Simulación I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

CAPÍTULO 4 TÉCNICA PERT

Ejemplo: El problema de la mochila. Algoritmos golosos. Algoritmos y Estructuras de Datos III. Segundo cuatrimestre 2013

Este método se basa en buscar el elemento menor el vector y colocarlo en la primera

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Complejidad computacional (Análisis de Algoritmos)

Algorítmica y Complejidad. Tema 3 Ordenación.

Introducción Supongamos un subconjunto de n elementos X = {e 1,,e n de un conjunto referencial Y, X Y. Dentro de Y se define una relación de orden tot

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 4 Optimización no Lineal

Problemas Prueba de significación de la hipótesis nula Vicente Manzano-Arrondo, 2013

5. TEOREMA FUNDAMENTAL: Formulación y Demostración. Jorge Eduardo Ortiz Triviño

Tema 7: Estadística y probabilidad

CAPITULO II ORDENAMIENTO Y BUSQUEDA. Ivan Medrano Valencia

1 Introducción. 2 Modelo. Hipótesis del modelo MODELO DE REGRESIÓN LOGÍSTICA

Ejercicio 7 Tablas de Datos y Búsqueda

7.4. UTILIDADES DE LAS PILAS

Distribuciones muestrales. Distribución muestral de Medias

Algoritmos de Ordenamiento

ESTADÍSTICA Y SUS APLICACIONES EN CIENCIAS SOCIALES Práctico 2 Curso 2016

Curso de Programación 1

Objetivos. Aprender a construir gráficos p y/o np. Aprender a construir gráficos c y u. Cuando usarlos. Epígrafes

Ecuaciones Diofánticas

Sistemas de ecuaciones lineales

10. Algoritmos de ordenación

Tema 5 Algunas distribuciones importantes

Ejercicio resuelto: variante para ordenar una serie de números. Pseudocódigo y diagrama de flujo. (CU00262A)

Departamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación:

TEMA 1.- POLINOMIOS Y FRACCIONES ALGEBRAICAS

Manejo de módulos y recursión en programación. Pseudocódigo. (CU00204A)

4. NÚMEROS PSEUDOALEATORIOS.

Tema 9: Contraste de hipótesis.

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Axiomática de la Teoría de Probabilidades

SESIÓN 14 DERIVADAS SUCESIVAS DE UNA FUNCION, DE MÁXIMOS Y MÍNIMOS Y LA CONCAVIDAD DE UNA CURVA APLICANDO EL CRITERIO DE LA SEGUNDA DERIVADA

Algebra lineal y conjuntos convexos

Tema 5. Muestreo y distribuciones muestrales

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

Análisis de Decisiones II. Tema 17 Generación de números al azar. Objetivo de aprendizaje del tema

Métodos de Ordenamiento. Unidad VI: Estructura de datos

Método de diferencias finitas para ecuaciones diferenciales parciales elípticas. (Parte II)

Ordenamiento Avanzado: Shellshort y Quicksort

PROGRAMACIÓN ESTRUCTURADA

LABORATORIO Nº 9 TABLAS DINÁMICAS

Notación Asintótica 2

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

PRÁCTICAS DE ESTADÍSTICA CON R

CAPÍTULO I EL ESTUDIO DE LA VIDA

La eficiencia de los programas

Ejercicios resueltos de probabilidad

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

ALGORITMOS DE ORDENAMIENTO COUNTING SORT CHRISTIAN ESTEBAN ALDANA ROZO BRAYAN STIF FORERO CRUZ GIOVANNY GUZMÁN CÉSPEDES JORGE MEJIA

Cómo Calcular la Demanda de Compra de Inmuebles

Distribuciones de probabilidad

El determinante de una matriz se escribe como. Para una matriz, el valor se calcula como:

DISEÑO DE UN ANIMADOR DE ALGORITMOS DE BÚSQUEDA Y ORDENACIÓN ( ID2012/055 )

EXPERIMENTO ALEATORIO

Análisis de Algoritmos

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A)

Tema 3 Álgebra Matemáticas I 1º Bachillerato. 1

El Algoritmo E-M. José Antonio Camarena Ibarrola

Matriz de Insumo - Producto

Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función.

Retículos y Álgebras de Boole

Contraste de hipótesis Tema Pasos del contraste de hipótesis. 1.1 Hipótesis estadísticas: nula y alternativa. 1.3 Estadístico de contraste

FUNDAMENTOS NUMÉRICOS SEMANA 4

FIN EDUCATIVO FIN INSTRUCTIVO

Algoritmos de Ordenación

1: INTRODUCCIÓN AL USO DE LA HOJA DE CALCULO EXCEL COMO HERRAMIENTA PARA DESARROLLAR PROBLEMAS EN INGENIERÍA. SOLVER, REGRESION LINEAL MULTIPLE

Tema 3: Espacios vectoriales

ANEXO 1. CONCEPTOS BÁSICOS. Este anexo contiene información que complementa el entendimiento de la tesis presentada.

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

Análisis y Diseño de Algoritmos

APUNTE TABLAS MICROSOFT WORD 2003

1) Subtest de Vocabulario: Incluye dos partes, vocabulario expresivo (con 45 items) y definiciones (con 37 elementos).

MINISTERIO DE SALUD PUBLICA Y ASISTENCIA SOCIAL COOPERACIÓN ALEMANA PARA EL DESARROLLO PROYECTO DE APOYO AL SECTOR SALUD PASS/GTZ.

Tema 3. Electrónica Digital

Tema 2. Descripción Conjunta de Varias Variables

UNIDAD 1: NÚMEROS NATURALES OBJETIVOS

4.1. Polinomios y teoría de ecuaciones

Nivel socioeconómico medio. Nivel socioeconómico alto SI NO TOTAL

Capitulo 4. DECISIONES BAJO RIESGO TEORIA DE JUEGOS

EVALUACIÓN DE MÉTODOS DE ORDENACIÓN: QuickSort vs. QuickSort con pseudomediana

UNIDAD 2: ECUACIONES E INECUACIONES. SISTEMAS DE ECUACIONES

Grafos. Amalia Duch Brown Octubre de 2007

Matrices Invertibles y Elementos de Álgebra Matricial

UNIDAD 10: ECUACIONES DE SEGUNDO GRADO.

Construcción de un modelo de simulación aleatorio con JaamSim

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Normalmente usamos la palabra "combinación" descuidadamente, sin pensar en si el orden de las cosas es importante. En otras palabras:

Tema 3: Multiplicación y división.

Tema 8. Análisis de dos variables Ejercicios resueltos 1

ESTADÍSTICA. Población Individuo Muestra Muestreo Valor Dato Variable Cualitativa ordinal nominal. continua

OPERACIONES CON POLINOMIOS

UNIDAD 12: ESTADISTICA. OBJETIVOS

CAPÍTULO 2. SOLUCIÓN DE ECUACIONES DE UNA VARIABLE

Transcripción:

RESUMEN DE ALGORITMOS PROBABILÍSTICOS En los algoritmos probabilísticos hay ciertas decisiones que se toman al azar bajo condiciones estadísticamente estables como una distribución uniforme. Normalmente no se dispone de un generador de números aleatorios y se debe usar un generador pseudoaleatorio, así que se usa un método determinista que proporcione una sucesión de números basados en un valor inicial (semilla). En adelante, supondremos la existencia de una función uniforme(a,b), de coste O(1), que devuelve un número real x tal que a x < b. Un algoritmo probabilístico, al ejecutarse sobre el mismo ejemplar puede Tardar tiempos distintos en terminar. Encontrar soluciones distintas del ejemplar. Encontrar soluciones falsas del problema. por lo que hay que tener cuidado con la forma de usarlos y de considerar como válido el resultado obtenido. ALGORITMOS NUMÉRICOS Resuelven cuestiones de cálculo mediante métodos de aproximación. Cuanto más tiempo estén ejecutando, más preciso es el resultado ( o no) Ejemplos: cálculo de áreas, aproximación de integrales, estimaciones Ejemplo: Aproximación de una integral Función Integral(E puntos: Natural, E a, b, cota: Real) dev Real dentro 0 Desde i 1 hasta puntos Hacer x uniforme(a,b) y uniforme(0,cota) Si y f(x) entonces dentro dentro + 1 fdesde a cota b a dentro Devolver puntos cota b Jesús Lázaro García Pág. 1 / 6

ALGORITMOS TIPO LAS VEGAS Universidad de Alcalá Se usan para problemas que necesitan una solución exacta (no aproximación). El tiempo que tarda el algoritmo en encontrar la solución no es relevante. Si el algoritmo encuentra una solución, entonces es la solución correcta. Ejemplos: ordenación aleatoria de elementos, el problema de las 8 reinas, el recorrido del caballo Ejemplo: El problema de las 8 reinas Se generan combinaciones de reinas al azar y se comprueba si forman solución. Usaremos las ideas vistas en Backtracking para los conjuntos Col, Diag45 y Diag135 y así poder reducir los casos. Función ReinasLasVegas(E N: Natural) dev Conjunto Col Diag45 Diag135 fila 1 Repetir libres Desde columna 1 hasta N Hacer Si (columna Col) Y (fila - columna Diag45) Y (fila + columna Diag135) entonces libres libres {columna} fdesde Si libres entonces eleccion Elemento_aleatorio(libres) Solucion[fila] eleccion Col Col {eleccion} Diag45 Diag45 {fila columna} Diag135 Diag135 {fila + columna} fila fila + 1 hasta (fila > N) O (libres = ) Si (libres = ) entonces Devolver SolucionVacia si no Devolver Solucion ffun Jesús Lázaro García Pág. 2 / 6

Para que este método encuentre solución o siga buscando, se le llamaría desde otra función como la siguiente: Función ConseguirReinasLasVegas(E N: Natural) dev Conjunto Repetir s ReinasLasVegas(N) hasta (s SolucionVacia) Devolver s ffun ALGORITMOS TIPO MONTECARLO Se usan para problemas que necesitan una respuesta, como problemas de decisión. No se está seguro que la respuesta obtenido sea la correcta: obtienen la respuesta correcta con una determinada probabilidad. Cuanto más tiempo se dedica a la ejecución, más probable es encontrar la respuesta correcta. Para una probabilidad 2 1 < p < 1, un algoritmo de MonteCarlo se dice p-correcto si propociona soluciones correctas con una probabilidad no inferior a p. Ejemplos: determinación de propiedades: elementos mayoritarios en un vector, números primos Ejemplo: Decir si un vector tiene un elemento mayoritario Se quiere comprobar si hay algún elemento en un vector que aparezca en más de la mitad de las componentes. Vamos a tomar un dato cualquiera al azar, contamos sus apariciones y si son más de 2 N entonces es el elemento mayoritario. Función MayoritarioMonteCarlo(E v: vector, E N: Natural) dev Lógico x v[aleatorio(1..n)] total 0 Desde i 1 hasta N Hacer Si (v[i] = x) entonces total total + 1 fdesde Devolver (total > N 2) ffun Jesús Lázaro García Pág. 3 / 6

Para los vectores no mayoritarios este método tiene probabilidad 1 de acertar (ya que N ningún elemento se repite más de veces). Para los vectores que sí tienen un elemento 2 mayoritario, el método acierta con probabilidad mayor que 2 1, exactamente con probabilidad # apariciones del elemento mayoritario p, luego falla con N mejorar haciendo p f 1 2. No está mal. Se podría Función MayoritarioMonteCarlo2(v, N) Si MayoritarioMonteCarlo(v, N) entonces Devolver Verdad si no Devolver MayoritarioMonteCarlo(v, N) Ahora, suponiendo que v sea mayoritario, solo fallará si el MayoritarioMC falla 1 1 1 dos veces, luego MayoritarioMC2 falla con probabilidad p, luego su utilidad 2 2 4 3 1 1 sería mayor que. Para generalizarlo a una cota de error > 0 4 2 4 Función MayoritarioMonteCarlo_(v, N, e) p 1 m Falso Repetir p p 2 m MayoritarioMonteCarlo(v, N) Hasta m O (p < e) Devolver m ALGORITMOS DE SHERWOOD Es una subclase de los algoritmos Las Vegas: dan siempre respuesta y siempre es correcta. Hacen uso del azar para intentar eliminar la diferencia entre los ejemplares buenos y malos de algún algoritmo determinista. La idea es que el caso peor dependerá del azar, y no de los datos del ejemplar. La idea general es preprocesar los datos del ejemplar antes de aplicar el algoritmo. Este coste añadido deberá ser menor que la aplicación directa del algoritmo sobre los casos malos. El coste del caso promedio no se mejora, solo se reduce la probabilidad de que aparezcan los casos no deseados. Jesús Lázaro García Pág. 4 / 6

Ejemplo: Quicksort modificado El método Quicksort tiene un coste medio perteneciente a O(n lg n), pero si los datos no son favorables el coste puede irse a O(n 2 ): el problema viene de la elección del pivote que puede resultar en que a medida que se realiza la recursión se produzcan casos poco equilibrados y aumente el coste total. El caso ideal se produce cuando Quicksort genera dos llamadas recursivas con 2 n datos cada una de ellas, y el peor caso cuando solo se obtiene una llamada recursiva con n 1 datos. Normalmente, para ordenar el vector V entre los puntos i y j se utiliza el valor V[i] como pivote ya que es un dato de acceso inmediato (sin coste de búsqueda), pero al ser un valor fijado puede darse situaciones como las siguientes. Supongamos que se quiere ordenar un vector de 101 elementos y resulta que el elemento V[1] deja exáctamente 50 valores a su izquierda (son menores o iguales que el pivote) y otros 50 a su derecha (todos mayores que el pivote). El vector V sería 1 2 3 99 100 101 V[1] V[2] V[3] V[99] V[100] V[101] y tras el primer paso tendríamos el vector W 1 50 51 52 101 W[i] V[1] V[1] W[i] > V[1] Inicialmente todo parece ir bien, pero supongamos que casualmente la sección izquierda queda bastante ordenada y que sus sucesivas ordenaciones resultan ser costosas con relación a sus pivotes W[1], W[2], etc. Esto hace que, independientemente de cómo resuelva el Quicksort de W entre los puntos 52 y 101 (es decir, independientemente del valor de los elementos que haya en esas 50 última posiciones de W) el coste total de la ordenación será bastante alto. En conclusión, hay un total de 50! casos del problema original (que son las formas posibles en las que pueden presentarse los 50 elementos de la derecha de W[51]) que van a ser costosos de resolver, por culpa de unos datos que ni siquiera están en esa zona. Para evitar estas posibilidades, se puede utilizar un pivote aleatorio (o con unas ciertas propiedades, ver luego) en cada ocasión. El caso peor sigue existiendo ya que puede que casualmente ese dato provoque separaciones poco equilibradas, pero ahora ese caso depende solo del azar y del tamaño del vector, así que cuanto más grande sea el vector más difícil será que ocurra esta posibilidad. No depende del orden concreto en que aparecen los datos en el vector. Jesús Lázaro García Pág. 5 / 6

Procedimiento QS_Sherwood(E/S V: vector de elemento; E inicio, final: posición) Var pivote: elemento i, j: posición Si (final - inicio) es pequeño entonces {si hay pocos datos se usa algún método básico, p.e. inserción} Ordenar(V, inicio, final) si no pivote V[ uniforme(inicio, final) ] Separar(V, inicio, final, pivote, i, j) { Separar recoloca los datos en V de manera que: V[x] pivote, si inicio x < i V[x] = pivote, si i x j V[x] > pivote, si j < x final } QS_Sherwood(V, inicio, i-1) QS_Sherwood(V, j+1, final) fproc Jesús Lázaro García Pág. 6 / 6