exponenta event banner

haltonset

Набор квазирандомных точек Halton

Описание

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

Создание

Описание

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

пример

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

Возвращенный объект p инкапсулирует свойства квазирандомной последовательности Халтона. Набор точек является конечным с длиной, определяемой 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)третье или большее простое число для n.

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

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

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

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

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

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

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

Совет

  • Skip и Leap полезны для параллельных приложений. Например, при наличии лицензии Parallel Computing Toolbox™ можно разделить последовательность точек на N различных работников с помощью функции labindex(Панель инструментов параллельных вычислений). На каждом 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] Коцис, Л. и У. Дж. Уайтен. «Вычислительные исследования последовательностей с низким несоответствием». Транзакции ACM на математическом программном обеспечении. т. 23, № 2, 1997, стр. 266-294.

Представлен в R2008a