Las secuencias de Sobol (también llamadas secuencias LP τ o secuencias ( t , s ) en base 2) son un tipo de secuencia cuasialeatoria de baja discrepancia . Fueron introducidas por primera vez por el matemático ruso Ilya M. Sobol (Илья Меерович Соболь) en 1967. [ 1 ]
Estas secuencias utilizan una base de dos para formar particiones uniformes cada vez más finas del intervalo unitario y luego reordenar las coordenadas en cada dimensión.
Buenas distribuciones en el hipercubo unitario s- dimensional
Sea I s = [0,1] s el hipercubo unitario s -dimensional , y f una función integrable real sobre I s . La motivación original de Sobol' fue construir una sucesión x n en I s tal que y que la convergencia sea lo más rápida posible.
Resulta bastante claro que, para que la suma converja hacia la integral, los puntos x n deben llenar I s minimizando los huecos. Otra propiedad deseable sería que las proyecciones de x n sobre una cara de menor dimensión de I s también dejen muy pocos huecos. Por lo tanto, el llenado homogéneo de I s no es suficiente, ya que en dimensiones inferiores muchos puntos coincidirán en el mismo lugar, lo que resulta inútil para la estimación de la integral.
Estas buenas distribuciones se denominan redes ( t , m , s ) y secuencias ( t , s ) en base b . Para introducirlas, definimos primero un intervalo s elemental en base b, un subconjunto de I s de la forma donde a j y d j son enteros no negativos, ypara todo j en {1, ...,s}.
Dados 2 números enteros, una red ( t , m , s ) en base b es una secuencia x n de b m puntos de I s tal quepara todo intervalo elemental P en base b del hipervolumen λ ( P ) = b t−m .
Dado un entero no negativo t , una secuencia ( t , s ) en base b es una secuencia infinita de puntos x n tal que para todos los enteros, la secuenciaes una red ( t , m , s ) en base b .
En su artículo, Sobol' describió las mallas Π τ y las secuencias LP τ , que son redes ( t , m , s ) y secuencias ( t , s ) en base 2 respectivamente. Los términos redes ( t , m , s ) y secuencias ( t , s ) en base b (también llamadas secuencias de Niederreiter) fueron acuñados en 1988 por Harald Niederreiter . [ 2 ] El término secuencias de Sobol' se introdujo en trabajos posteriores en inglés en comparación con las secuencias de Halton , Faure y otras secuencias de baja discrepancia.
Un algoritmo rápido
Antonov y Saleev propusieron una implementación más eficiente del código Gray . [ 3 ]
En cuanto a la generación de números Sobol', es evidente que se ven facilitados por el uso del código Gray.en lugar de n para construir el dibujo del n -ésimo punto.
Supongamos que ya hemos generado todas las secuencias de Sobol hasta n − 1 y hemos almacenado en memoria los valores x n − 1, j para todas las dimensiones requeridas. Dado que el código Gray G ( n ) difiere del anterior G ( n − 1) en un solo bit, digamos el k -ésimo bit (que es el bit cero más a la derecha de n − 1), todo lo que se necesita hacer es una sola operación XOR para cada dimensión con el fin de propagar todos los x n − 1 a x n , es decir
Propiedades de uniformidad adicionales
Sobol' introdujo condiciones de uniformidad adicionales conocidas como propiedad A y A'. [ 4 ]
- Definición
- Se dice que una secuencia de baja discrepancia satisface la Propiedad A si para cualquier segmento binario (no un subconjunto arbitrario) de la secuencia d -dimensional de longitud 2 d hay exactamente un dibujo en cada 2 d hipercubos que resultan de subdividir el hipercubo unitario a lo largo de cada una de sus extensiones de longitud por la mitad.
- Definición
- Se dice que una secuencia de baja discrepancia satisface la Propiedad A' si para cualquier segmento binario (no un subconjunto arbitrario) de la secuencia d -dimensional de longitud 4 d hay exactamente un dibujo en cada 4 d hipercubos que resultan de subdividir el hipercubo unitario a lo largo de cada una de sus extensiones de longitud en cuatro partes iguales.
Existen condiciones matemáticas que garantizan las propiedades A y A'.
Teorema — La sucesión de Sobol' d -dimensional posee la propiedad A si y solo sidonde V d es la matriz binaria d × d definida por donde v k , j , m denota el m -ésimo dígito después del punto binario del número de dirección v k , j = (0. v k , j ,1 v k , j ,2 ...) 2 .
Teorema — La sucesión de Sobol' d -dimensional posee la propiedad A' si y solo si donde U d es la matriz binaria de 2 d × 2 d definida por donde v k , j , m denota el m -ésimo dígito después del punto binario del número de dirección v k , j = (0. v k , j ,1 v k , j ,2 ...) 2 .
Las pruebas para las propiedades A y A' son independientes. Por lo tanto, es posible construir la secuencia de Sobol' que satisfaga ambas propiedades, A y A', o solo una de ellas.
La inicialización de los números de Sobol'
Para construir una secuencia de Sobol', es necesario seleccionar un conjunto de números de dirección v i , j . Existe cierta libertad en la selección de los números de dirección iniciales. [ nota 1 ] Por lo tanto, es posible obtener diferentes realizaciones de la secuencia de Sobol' para dimensiones seleccionadas. Una mala selección de los números iniciales puede reducir considerablemente la eficiencia de las secuencias de Sobol' cuando se utilizan para cálculos.
Podría decirse que la opción más sencilla para los números de inicialización es simplemente establecer el l -ésimo bit más a la izquierda y dejar todos los demás bits en cero, es decir, m k , j = 1 para todo k y j . Esta inicialización se suele denominar inicialización unitaria . Sin embargo, esta secuencia no supera la prueba de las propiedades A y A' incluso para dimensiones bajas, por lo que esta inicialización es incorrecta.
Implementación y disponibilidad
Varios autores proporcionan buenos números de inicialización para diferentes números de dimensiones. Por ejemplo, Sobol' proporciona números de inicialización para dimensiones de hasta 51. [ 5 ] Bratley y Fox utilizan el mismo conjunto de números de inicialización. [ 6 ]
Los números de inicialización para dimensiones altas están disponibles en Joe y Kuo. [ 7 ] Peter Jäckel proporciona números de inicialización hasta la dimensión 32 en su libro " Métodos de Monte Carlo en finanzas ". [ 8 ]
Otras implementaciones están disponibles como rutinas en C, Fortran 77 o Fortran 90 en la colección de software Numerical Recipes . [ 9 ] Una implementación libre/de código abierto en hasta 1111 dimensiones, basada en los números de inicialización de Joe y Kuo, está disponible en C, [ 10 ] y hasta 21201 dimensiones en Python [ 11 ] [ 12 ] y Julia . [ 13 ] Otra implementación libre/de código abierto en hasta 1111 dimensiones está disponible para C++ , Fortran 90 , Matlab y Python . [ 14 ]
Los generadores de secuencias Sobol' comerciales están disponibles, por ejemplo, en la Biblioteca NAG . [ 15 ] BRODA Ltd. [ 16 ] [ 17 ] proporciona generadores de secuencias Sobol' y Sobol' aleatorizadas con propiedades de uniformidad adicionales A y A' hasta una dimensión máxima de 131072. Estos generadores fueron desarrollados en colaboración con el Prof. I. Sobol'. MATLAB [ 18 ] contiene generadores de secuencias Sobol' hasta la dimensión 1111 como parte de su Caja de herramientas de estadística.
Véase también
- Secuencia de baja discrepancia – Tipo de secuencia matemática s
- Método cuasi-Monte Carlo – Proceso de integración numérica
Notas
- ↑ Estos números se suelen llamar números de inicialización .
Referencias
- ↑ Sobol', IM (1967), "Distribución de puntos en un cubo y evaluación aproximada de integrales". Zh. Vych. Mat. Mat. Fiz. 7 : 784–802 (en ruso); USSR Comput. Maths. Math. Phys. 7 : 86–112 (en inglés).
- ↑ Niederreiter, H. (1988). "Secuencias de baja discrepancia y baja dispersión", Journal of Number Theory 30 : 51–70.
- ↑ Antonov, IA y Saleev, VM (1979) "Un método económico para calcular secuencias τ LP ". Zh. Vych. Mat. Mat. Fiz. 19 : 243–245 (en ruso); USSR Comput. Maths. Math. Phys. 19 : 252–256 (en inglés).
- ↑ Sobol', IM (1976) "Secuencias uniformemente distribuidas con una propiedad uniforme adicional". Zh. Vych. Mat. Mat. Fiz. 16 : 1332–1337 (en ruso); USSR Comput. Maths. Math. Phys. 16 : 236–242 (en inglés).
- ↑ Sobol', IM y Levitan, YL (1976). "La producción de puntos distribuidos uniformemente en un cubo multidimensional" Informe técnico 40, Instituto de Matemáticas Aplicadas, Academia de Ciencias de la URSS (en ruso).
- ↑ Bratley, P. y Fox, BL (1988), "Algoritmo 659: Implementación del generador de secuencias cuasialeatorias de Sobol". ACM Trans. Math. Software 14 : 88–100.
- ↑ "Generador de secuencias Sobol" . Universidad de Nueva Gales del Sur . 16 de septiembre de 2010. Consultado el 20 de diciembre de 2013 .
- ↑ Jäckel, P. (2002) "Métodos de Monte Carlo en finanzas". Nueva York: John Wiley and Sons . ( ISBN) 0-471-49741-X.)
- ↑ Press, WH, Teukolsky, SA, Vetterling, WT y Flannery, BP (1992) "Recetas numéricas en Fortran 77: El arte de la computación científica, 2.ª ed." Cambridge University Press, Cambridge, Reino Unido
- ↑ Implementación en C de la secuencia de Sobol' en la biblioteca NLopt (2007).
- ↑ "Referencia de la API de SciPy: scipy.stats.qmc.Sobol" .
- ^ Imperiale, G. "pyscenarios: Generador de escenarios de Python" .
- ↑ Paquete Sobol.jl : Implementación en Julia de la secuencia de Sobol.
- ↑ La secuencia cuasialeatoria de Sobol , código para C++/Fortran 90/Matlab/Python por J. Burkardt
- ↑ "Grupo de Algoritmos Numéricos" . Nag.co.uk. 28-11-2013 . Consultado el 20-12-2013 .
- ↑ I. Sobol', D. Asotsky, A. Kreinin, S. Kucherenko (2011). "Construcción y comparación de generadores de Sobol' de alta dimensión" (PDF) . Wilmott Journal . Nov (56): 64–79 . doi : 10.1002/wilm.10056 .
{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ «Broda» . Broda. 2024-01-23 . Consultado el 23 de enero de 2024 .
- ↑ Página de referencia de sobolset . Consultado el 24 de julio de 2017.
Enlaces externos
- Algoritmos recopilados de la ACM (véanse los algoritmos 647, 659 y 738).
- Colección de códigos de programación para generadores de secuencias Sobol'
- Generador gratuito en C++ de la secuencia de Sobol.
- Secuencias de baja discrepancia
- Secuencias y series