haltonset

Квазислучайная точка Холтона установлена

Описание

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

Создание

Синтаксис

p = haltonset(d)
p = haltonset(d,Name,Value)

Описание

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 создают последовательности, которым не удается затронуть большой sub-hyper-rectangles единичного гиперкуба и, поэтому, не удаться быть универсальным квазислучайным набором точки. Для получения дополнительной информации см. [1].

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

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

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

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

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

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

Используйте функцию объекта 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Размер массивов

Примеры

свернуть все

Сгенерируйте 3D набор точки Холтона, пропустите первые 1 000 значений, и затем сохраните каждую 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 th рабочий, набор свойство 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. и В. Дж. Уайтн. “Вычислительные Расследования Последовательностей Низкого Несоответствия”. Транзакции ACM на Mathematical Software. Издание 23, № 2, 1997, стр 266–294.

Введенный в R2008a