haltonset

Набор точек Halton quasirandom

Описание

haltonset является объектом набора квазирандомных точек, который создает точки из последовательности Хэлтона. Последовательность Галтона использует различные простые основы в каждой размерности, чтобы заполнить пространство очень равномерным образом.

Создание

Описание

p = haltonset(d) создает d-мерный набор точек p, который является haltonset объект с настройками свойств по умолчанию. Входной параметр d соответствует Dimensions свойство p.

пример

p = haltonset(d,Name,Value) устанавливает свойства p использование одного или нескольких аргументов пары "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, haltonset(5,'Leap',2) создает пятимерный набор точек из первой точки, четвертой точки, седьмой точки, десятой точки и так далее.

Возвращенный объект p инкапсулирует свойства последовательности Halton quasirandom. Набор точек конечен, длина определяется Skip и Leap свойства и по пределам на размер индексов набора точек (максимальное значение 253). Значения набора точек генерируются каждый раз, когда вы получаете доступ к p использование net или индексация круглых скобок. Значения не хранятся в p.

Свойства

расширить все

Это свойство доступно только для чтения.

Количество размерностей точек в наборе точек, заданное как положительный целочисленный скаляр. Для примера каждая точка в наборе точек p с p.Dimensions = 5 имеет пять значений.

Используйте d входной параметр для задания количества размерностей при создании набора точек с помощью haltonset функция.

Интервал между точками в последовательности, заданный как положительный целочисленный скаляр. Другими словами, Leap свойство набора точек задает число точек в последовательности для скачка и опускания для каждой взятой точки. Значение по умолчанию Leap значение равно 0, что соответствует взятию каждой точки из последовательности.

Скачок - это метод, используемый для улучшения качества набора точек. Однако необходимо выбрать Leap значения с осторожностью. Многие Leap значения создают последовательности, которые не затрагивают большие субгиперпрямоугольники единичного гиперкуба и, следовательно, не могут быть равномерным набором точек квазирандома. Для получения дополнительной информации см. раздел [1].

Одно правило выбора Leap значения для наборов Halton должны задать значение (n–1), где n является простым числом, которое не использовалось для генерации одного из размерностей. Для примера, для d-мерный набор точек, задайте (d+1)th или более простое число для n.

Пример: p = haltonset(2,'Leap',4); (где d = 2 и n = 5)

Пример: p.Leap = 100;

Настройки, которые управляют скремблированием последовательности, заданные как структура с этими полями:

  • Type - вектор символов, содержащий имя скремблирования

  • Options - Массив ячеек из значений параметров для скремблирования

Используйте scramble функция объекта для установки скремблов. Список допустимых типов скремблирования см. в type входной параметр scramble. Ошибка возникает, если для заданного набора точек задан недопустимый тип скремблирования.

The ScrambleMethod свойство также принимает пустую матрицу как значение. Затем программное обеспечение очищает все скремблирования и устанавливает свойство, содержащее 0x0 структура.

Количество начальных точек в последовательности, которые можно исключить из набора точек, заданное как положительный целочисленный скаляр.

Начальные точки последовательности иногда проявляют нежелательные свойства. Например, первая точка часто (0,0,0,...), что может привести к дисбалансу последовательности, поскольку аналог точки, (1,1,1,...), никогда не появляется. Кроме того, начальные точки часто показывают корреляции среди различных размерностей, и эти корреляции исчезают позже в последовательности.

Пример: p = haltonset(__,'Skip',2e3);

Пример: p.Skip = 1e3;

Это свойство доступно только для чтения.

Тип последовательности, на который устанавливается квазирандомная точка p основан, задан как 'Halton'.

Функции объекта

netСгенерируйте квазирандомный набор точек
scrambleСкремблируйте квазирандомный набор точек

Можно также использовать следующий MATLAB® функции со haltonset объект. Программа обрабатывает объект набора точек как матрицу многомерных точек.

lengthДлина наибольшего измерения массива
sizeРазмер массива

Примеры

свернуть все

Сгенерируйте трехмерный набор точек Halton, пропустите первые 1000 значений, а затем сохраните каждую 101-ю точку.

p = haltonset(3,'Skip',1e3,'Leap',1e2)
p = 
Halton point set in 3 dimensions (89180190640991 points)

Properties:
              Skip : 1000
              Leap : 100
    ScrambleMethod : none

Примените скремблирование с обратным радиксом при помощи scramble.

p = scramble(p,'RR2')
p = 
Halton point set in 3 dimensions (89180190640991 points)

Properties:
              Skip : 1000
              Leap : 100
    ScrambleMethod : RR2

Сгенерируйте первые четыре точки при помощи 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

Сгенерируйте каждую третью точку, до одиннадцатой точки, с помощью индексации круглых скобок.

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

Совет

  • The Skip и Leap свойства полезны для параллельных приложений. Например, если у вас есть лицензия Parallel Computing Toolbox™, можно разбить последовательность точек между N различными работниками с помощью функции labindex (Parallel Computing Toolbox). На каждом рабочем n установите Skip свойство точки, установленной на n - 1 и Leap свойство к N - 1. Следующий код показывает, как разделить последовательность между тремя работниками.

    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

Алгоритмы

расширить все

Ссылки

[1] Kocis, L., and W. J. Whiten. «Вычислительные исследования низкорасходных последовательностей». Транзакции ACM на математическом программном обеспечении. Том 23, № 2, 1997, стр. 266-294.

Введенный в R2008a