Haltonset: понимание пропустить и прыгать - PullRequest
0 голосов
/ 02 октября 2011

Если я читаю документ о том, как построить набор квазислучайных точек Халтона , и там упоминается, что можно «пропустить» первые значения, а затем сохранить значения «скачка».

Не понимаю, что на самом деле означают слова «пропустить» и «прыжок».

Пробовал следующее:

>> p = haltonset(1,'Skip',50,'Leap',10); d = haltonset(1,'Skip',51,'Leap',9);
>> p(2:10), d(1:9)
ans =
0.7344
0.0703
0.7891
0.4766
0.5859
0.1797
0.9922
0.3164
0.6602

ans =
0.7969
0.7344
0.8828
0.5391
0.8516
0.6484
0.9609
0.6172
0.7539

>> p(2:10) == d(1:9)
ans =

 0
 0
 0
 0
 0
 0
 0
 0
 0

Подумал, что это может спасти 10значения р и 9 до д.Также думал, что d будет иметь те же значения, что и p.Но это был не тот случай.

Затем я проверил, будет ли «скачок» таким же, как обычный способ создания вектора - например: (1: скачок: 10)

>> p = haltonset(1,'Skip',50,'Leap',1); d = haltonset(1,'Skip',50,'Leap',2);
>> p(1:2:10)==d(1:5)
ans =
 1
 0
 0
 0
 0

>> p = haltonset(1,'Skip',0,'Leap',1); d = haltonset(1,'Skip',0,'Leap',2);
>> p(1:2:10)==d(1:5)
ans =
 1
 0
 0
 0
 0

но, похоже, это не так ..

Может кто-нибудь дать простое объяснение на английском языке о том, как интерпретировать переменные 'skip' и 'leap'.

1 Ответ

1 голос
/ 02 октября 2011

Я считаю следующее описание очень ясным [цитируя эту страницу документации ]:

Представьте простую 1-D последовательность, которая производит целые числа от 1 до 10.Это базовая последовательность, и первые три точки: [1,2,3]:

sequence

Теперь посмотрим, как Scramble, Leap и Skip работают вместе:

  • Scramble : Скремблирование перемешивает точки одним из нескольких способов.В этом примере предположим, что скрембл превращает последовательность в 1,3,5,7,9,2,4,6,8,10.Первые три точки теперь [1,3,5]:

Scramble

  • Пропустить : значение Пропустить указывает числоначальные точки игнорировать.В этом примере установите значение Skip на 2. Последовательность теперь 5,7,9,2,4,6,8,10, а первые три точки [5,7,9]:

Skip

  • Прыжок : значение Прыжка указывает количество очков, которые нужно игнорировать для каждого взятого вами.Продолжая пример с Skip, установленным в 2, если вы установите Leap в 1, последовательность использует все остальные точки.В этом примере последовательность теперь составляет 5,9,4,8, а первые три точки равны [5,9,4]:

Leap

РЕДАКТИРОВАТЬ:

Позвольте мне показать с примером:

%# create 1D sequences (x: picked, .: ignored)
p00 = haltonset(1,'Skip',0,'Leap',0);   %# xxxxxxxxxxxxxxx
p50 = haltonset(1,'Skip',5,'Leap',0);   %# .....xxxxxxxxxx
p02 = haltonset(1,'Skip',0,'Leap',2);   %# x..x..x..x..x..
p52 = haltonset(1,'Skip',5,'Leap',2);   %# .....x..x..x..x

%# each pair of these are equal
[p50(1:10) p00(6:15)]     %# skip vs. noskip
[p02(1:5) p00(1:3:13)]    %# leap vs. noleap
[p52(1:4) p00(6:3:15)]    %# skip+leap vs. noskip+noleap

В целом:

skip = 50;
leap = 10;
p00 = haltonset(1,'Skip',0,'Leap',0);
p = haltonset(1,'Skip',skip,'Leap',leap);

num = 9;
[p(1:num) p00(skip+1:leap+1:num*leap+num-leap+skip)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...