Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

haltonset

Halton quasirandom Point set

Descripción

es un objeto de conjunto de punto quasirandom que produce puntos a partir de la secuencia Halton.haltonset La secuencia Halton utiliza diferentes bases principales en cada dimensión para llenar el espacio de una manera muy uniforme.

Creación

Descripción

p = haltonset(d) construye un conjunto de puntos dimensional, que es un objeto con valores de propiedad predeterminados.dphaltonset El argumento de entrada corresponde a la propiedad de.dDimensionsp

ejemplo

p = haltonset(d,Name,Value) conjuntos de usar uno o más argumentos de par nombre-valor.Propiedadesp Incluya cada nombre de propiedad entre comillas. Por ejemplo, crea un conjunto de puntos de cinco dimensiones desde el primer punto, cuarto punto, séptimo punto, décimo punto, y así sucesivamente.haltonset(5,'Leap',2)

El objeto devuelto encapsula las propiedades de una secuencia quasirandom de Halton.p El conjunto de puntos es finito, con una longitud determinada por las propiedades y por los límites del tamaño de los índices del conjunto de puntos (valor máximo de 2SkipLeap53). Los valores del conjunto de puntos se generan cada vez que se accede mediante indexación o paréntesis.pnet Los valores no se almacenan dentro.p

Propiedades

expandir todo

Esta propiedad es de solo lectura.

Número de dimensiones de los puntos del conjunto de punto, especificado como un escalar entero positivo. Por ejemplo, cada punto del conjunto de puntos tiene cinco valores.pp.Dimensions = 5

Utilice el argumento de entrada para especificar el número de cotas al crear un conjunto de puntos mediante la función.dhaltonset

Intervalo entre los puntos de la secuencia, especificado como un escalar entero positivo. En otras palabras, la propiedad de un punto conjunto especifica el número de puntos en la secuencia para saltar y omitir para cada punto tomado.Leap El valor predeterminado es 0, que corresponde a tomar cada punto de la secuencia.Leap

El salto es una técnica utilizada para mejorar la calidad de un conjunto de puntos. Sin embargo, debe elegir los valores con cuidado.Leap Muchos valores crean secuencias que no se tocan en grandes sub-hiperrectángulos de la unidad hipercubo y, por lo tanto, no pueden ser un conjunto de puntos quasirandom uniforme.Leap Para obtener más información, consulte.[1]

Una regla para elegir valores para los conjuntos Halton es establecer el valor en, donde es un número primo que no se ha utilizado para generar una de las dimensiones.Leap(n–1)n Por ejemplo, para un conjunto de puntos dimensional, especifique el número primo mayor para.d(d+1)n

Ejemplo: (donde y)p = haltonset(2,'Leap',4);d = 2n = 5

Ejemplo: p.Leap = 100;

Configuración que controla la aleatorización de la secuencia, especificada como una estructura con estos campos:

  • — Un vector de caracteres que contiene el nombre de laType

  • — Una matriz de celdas de valores de parámetro para el ScrambleOptions

Utilice la función de objeto para establecer los Scrambles.Lucha Para obtener una lista de tipos válidos de Scramble, vea el argumento de entrada de.typeLucha Se produce un error si establece un tipo de Scramble no válido para un conjunto de puntos determinado.

La propiedad también acepta una matriz vacía como un valor.ScrambleMethod A continuación, el software borra todos los aleatorización y establece la propiedad para que contenga una estructura.0x0

Número de puntos iniciales de la secuencia que se omiten en el conjunto de punto, especificado como un escalar entero positivo.

Los puntos iniciales de una secuencia a veces exhiben propiedades indeseables. Por ejemplo, el primer punto es a menudo, lo que puede hacer que la secuencia sea desequilibrada porque la contrapartida del punto, nunca aparece.(0,0,0,...)(1,1,1,...) Además, los puntos iniciales a menudo exhiben correlaciones entre diferentes dimensiones, y estas correlaciones desaparecen más adelante en la secuencia.

Ejemplo: p = haltonset(__,'Skip',2e3);

Ejemplo: p.Skip = 1e3;

Esta propiedad es de solo lectura.

Tipo de secuencia en el que se basa el conjunto de puntos quasirandom, especificado como.p'Halton'

Funciones del objeto

netGenere el conjunto de puntos quasirandom
LuchaScramble set de puntos quasirandom

También puede utilizar las siguientes funciones con un objeto.MATLAB®haltonset El software trata el objeto de conjunto de puntos como una matriz de puntas multidimensionales.

lengthLongitud de la dimensión de matriz más grande
sizeTamaño de un array

Ejemplos

contraer todo

Genere un conjunto de puntos Halton tridimensional, omita los primeros 1000 valores y, a continuación, conserve cada punto 101.

p = haltonset(3,'Skip',1e3,'Leap',1e2)
p =  Halton point set in 3 dimensions (89180190640991 points)  Properties:               Skip : 1000               Leap : 100     ScrambleMethod : none  

Aplique la aleatorización de Radix inversa mediante.Lucha

p = scramble(p,'RR2')
p =  Halton point set in 3 dimensions (89180190640991 points)  Properties:               Skip : 1000               Leap : 100     ScrambleMethod : RR2  

Genere los primeros cuatro puntos usando.net

X0 = net(p,4)
X0 = 4×3

    0.0928    0.6950    0.0029
    0.6958    0.2958    0.8269
    0.3013    0.6497    0.4141
    0.9087    0.7883    0.2166

Genere cada tercer punto, hasta el undécimo punto, utilizando la indexación de paréntesis.

X = p(1:3:11,:)
X = 4×3

    0.0928    0.6950    0.0029
    0.9087    0.7883    0.2166
    0.3843    0.9840    0.9878
    0.6831    0.7357    0.7923

Sugerencias

  • Las propiedades y son útiles para las aplicaciones paralelas.SkipLeap Por ejemplo, si tiene una licencia, puede particionar una secuencia de puntos entre diferentes trabajadores mediante la función.Parallel Computing Toolbox™Nlabindex En cada trabajo TH, establezca la propiedad del punto establecido ennSkip n – 1 y la propiedad paraLeap N – 1. El código siguiente muestra cómo particionar una secuencia entre tres trabajadores.

    Nworkers = 3; p = haltonset(10,'Leap',Nworkers-1); spmd(Nworkers)     p.Skip = labindex - 1;      % Compute something using points 1,4,7...     % or points 2,5,8... or points 3,6,9... end

Algoritmos

expandir todo

Referencias

[1] Kocis, L., and W. J. Whiten. “Computational Investigations of Low-Discrepancy Sequences.” ACM Transactions on Mathematical Software. Vol. 23, No. 2, 1997, pp. 266–294.

Introducido en R2008a