SlideShare a Scribd company logo
Sampling with Halton Points on n-Sphere
Wai-Shing Luk1
1School of Microelectronics
Fudan University
April 6, 2014
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
Abstract
Sampling on n-sphere (Sn ) has a wide range of
applications, such as:
Spherical coding in MIMO wireless communication
Multivariate empirical mode decomposition
Filter bank design
We propose a simple yet effective method which:
Utilizes low-discrepancy sequence
Contains only 10 lines of MATLAB code in our
implementation!
Allow incremental generation.
Numerical results show that the proposed method
outperforms the randomly generated sequences and other
proposed methods.
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
Problem Formulation
Desirable properties of samples over Sn
Uniform
Deterministic
Incremental
The uniformity measures are optimized with every new
point.
Reason: in some applications, it is unknown how many
points are needed to solve the problem in advance
Motivation
The topic has been well studied for sphere in 3D, i.e. n = 2
Yet it is still unknown how to generate for n > 2.
Potential applications (for n > 2):
Robotic Motion Planning (S3
and SO(3)) [YJLM10]
Spherical coding in MIMO wireless communication [UL06]:
Cookbook for Unitary matrices
A code word = a point in Sn
Multivariate empirical mode decomposition [RM10]
Filter bank design [M+
11]
Halton Sequence on Sn
Halton sequence on S2 has been well studied [CF97] by
using cylindrical coordinates.
Yet it is still little known for Sn where n > 2.
Note: The generalization of cylindrical coordinates does
NOT work in higher dimensions.
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Basic: Van der Corput sequence
Generate a low discrepancy sequence over [0; 1]
Denote vd(k; b) as a Van der Corput sequence of k points,
where b is the base of a prime number.
MATLAB source code is available at http:
//www.mathworks.com/matlabcentral/fileexchange/
15354-generate-a-van-der-corput-sequence
Example
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Square [0; 1] ¢[0; 1]
Halton sequence: using 2
Van der Corput sequences
with different bases.
Example
[x; y] = [vd(k; 2); vd(k; 3)]
Unit Hypercube [0; 1]
n
Generally we can generate Halton sequence in a unit
hypercube [0; 1]n :
[x1; x2; : : : ; xn ] = [vd(k; b1); vd(k; b2); : : : ; vd(k; bn )]
A wide range of applications on Quasi-Monte Carlo
Methods (QMC).
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Circle S1
Can be generated by mapping the
Van der Corput sequence to [0; 2]
 = 2 ¡vd(k; b)
[x; y] = [cos ; sin ]
Unit Sphere S2
Has been applied for computer
graphic applications [WLH97]
[z; x; y]
= [cos ; sin  cos '; sin  sin ']
= [z;
p
1  z2 cos ';
p
1  z2 sin ']
' = 2 ¡vd(k; b1) % map to
[0; 2]
z = 2 ¡vd(k; b2)  1 % map to
[ 1; 1]
Sphere S3
and SO(3)
Deterministic point sets
Optimal grid point sets for S3
, SO(3) [Lubotzky, Phillips,
Sarnak 86] [Mitchell 07]
No Halton sequences so far to the best of our knowledge
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
SO(3) or S3
Hopf Coordinates
Hopf coordinates (cf. [YJLM10])
x1 = cos(=2) cos( =2)
x2 = cos(=2) sin( =2)
x3 = sin(=2) cos(' + =2)
x4 = sin(=2) sin(' + =2)
S3 is a principal circle bundle
over the S2
Hopf Coordinates for SO(3) or S3
Similar to the Halton sequence generation on S2, we perform
the mapping:
' = 2 ¡vd(k; b1) % map to [0; 2]
= 2 ¡vd(k; b2) % map to [0; 2] for SO(3), or
= 4 ¡vd(k; b2) % map to [0; 4] for S3
z = 2 ¡vd(k; b3)  1 % map to [ 1; 1]
 = cos 1 z
10 Lines of MATLAB Code
1 function[s] = sphere3_hopf (k,b)
2 % sphere3_hopf Halton sequence
3 varphi = 2*pi*vdcorput(k,b(1)); % map to [0, 2*pi]
4 psi = 4*pi*vdcorput(k,b(2)); % map to [0, 4*pi]
5 z = 2* vdcorput(k,b(3)) - 1; % map to [-1, 1]
6 theta = acos(z);
7 cos_eta = cos(theta /2);
8 sin_eta = sin(theta /2);
9 s = [cos_eta .* cos(psi /2), ...
10 cos_eta .* sin(psi /2), ...
11 sin_eta .* cos(varphi + psi /2), ...
12 sin_eta .* sin(varphi + psi /2)];
3-sphere
Polar coordinates:
x0 = cos 3
x1 = sin 3 cos 2
x2 = sin 3 sin 2 cos 1
x3 = sin 3 sin 2 sin 1
n-sphere
Polar coordinates:
x0 = cos n
x1 = sin n cos n 1
x2 = sin n sin n 1 cos n 2
x3 = sin n sin n 1 sin n 2 cos n 3
¡¡¡
xn 1 = sin n sin n 1 sin n 2 ¡¡¡cos 1
xn = sin n sin n 1 sin n 2 ¡¡¡sin 1
How to Generate the Point Set
p0 = [cos 1; sin 1] where 1 = 2 ¡vd(k; b1)
Let fj () =
R
sinj
d, where  P (0; ).
Note: fj () is a monotonic increasing function in (0; )
Map vd(k; bj ) uniformly to fj ():
tj = fj (0) + (fj ()  fj (0))vd(k; bj )
Let j = f  1
j (tj )
Define pn recursively as:
pn = [cos n ; sin n ¡pn 1]
S3
projected on four different spheres
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
Testing the Correctness
Compare the dispersion with the random point-set
Construct the convex hull for each point-set
Dispersion roughly measured by the difference of the
maximum distance and the minimum distance between
every two neighbour points:
max
aPx(b)
fD(a; b)g  min
aPx(b)
fD(a; b)g
where D(a; b) =
p
1  aTb
Random sequences
To generate random points on Sn , spherical symmetry of
the multidimensional Gaussian density function can be
exploited.
Then the normalized vector (xi =kxi k) is uniformly
distributed over the hypersphere Sn . [Fishman, G. F.
(1996)]
Convex Hull with %400 points
Left: our, right: random
Results for S3
Results for S4
Agenda
Abstract
Motivation and Applications
Review of Low Discrepancy Sequence
Van der Corput sequence on [0; 1]
Halton sequence on [0; 1]
Halton sequence on [0; 1]n
Unit Circle S1
Unit Sphere S2
Sphere Sn and SO(3)
Our approach
Numerical Experiments
Conclusions
Conclusions
Proposed method generates low-discrepancy point-set in
nearly linear time
The result outperforms the corresponding random
point-set, especially when the number of points is small
The MATLAB source code is available in public (or upon
request)
References I
[CF97] Jianjun Cui and Willi Freeden, Equidistribution on the sphere, SIAM
Journal on Scientific Computing 18 (1997), no. 2, 595–609.
[M+11] DP Mandic et al., Filter bank property of multivariate empirical mode
decomposition, Signal Processing, IEEE Transactions on 59 (2011),
no. 5, 2421–2426.
[RM10] Naveed Rehman and Danilo P Mandic, Multivariate empirical mode
decomposition, Proceedings of the Royal Society A: Mathematical,
Physical and Engineering Science 466 (2010), no. 2117, 1291–1302.
[UL06] Zoran Utkovski and Juergen Lindner, On the construction of
non-coherent space time codes from high-dimensional spherical codes,
Spread Spectrum Techniques and Applications, 2006 IEEE Ninth
International Symposium on, IEEE, 2006, pp. 327–331.
[WLH97] Tien-Tsin Wong, Wai-Shing Luk, and Pheng-Ann Heng, Sampling with
hammersley and halton points, Journal of graphics tools 2 (1997),
no. 2, 9–24.
[YJLM10] Anna Yershova, Swati Jain, Steven M LaValle, and Julie C Mitchell,
Generating uniform incremental grids on so (3) using the hopf
fibration, The International journal of robotics research 29 (2010),
no. 7, 801–812.

More Related Content

Similar to Sampling with Halton Points on n-Sphere

Slides5 The Communication System midterm Slides
Slides5 The Communication System midterm SlidesSlides5 The Communication System midterm Slides
Slides5 The Communication System midterm Slides
Noctorous Jamal
 
CHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.pptCHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.ppt
dlakmlkfma
 
CHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.pptCHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.ppt
dlakmlkfma
 
20141204.journal club
20141204.journal club20141204.journal club
20141204.journal club
Hayaru SHOUNO
 
zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)
zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)
zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)
Alex Pruden
 
Robust Operations of Kafka Streams
Robust Operations of Kafka StreamsRobust Operations of Kafka Streams
Robust Operations of Kafka Streams
confluent
 
Computer Organization1CS1400Feng JiangBoolean al.docx
Computer Organization1CS1400Feng JiangBoolean al.docxComputer Organization1CS1400Feng JiangBoolean al.docx
Computer Organization1CS1400Feng JiangBoolean al.docx
ladonnacamplin
 
Computational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in RComputational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in R
herbps10
 
Quantum Computing Notes Ver 1.2
Quantum Computing Notes Ver 1.2Quantum Computing Notes Ver 1.2
Quantum Computing Notes Ver 1.2
Vijayananda Mohire
 
Kernel for Chordal Vertex Deletion
Kernel for Chordal Vertex DeletionKernel for Chordal Vertex Deletion
Kernel for Chordal Vertex Deletion
AkankshaAgrawal55
 
Mlab i
Mlab iMlab i
Mlab i
Harsh Kumar
 
Object Detection with Transformers
Object Detection with TransformersObject Detection with Transformers
Object Detection with Transformers
Databricks
 
Design and minimization of reversible programmable logic arrays and its reali...
Design and minimization of reversible programmable logic arrays and its reali...Design and minimization of reversible programmable logic arrays and its reali...
Design and minimization of reversible programmable logic arrays and its reali...
Sajib Mitra
 
CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...
CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...
CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...
Xiaoyu Shi
 
Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
George Ang
 
Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)
sankeld
 
presentation
presentationpresentation
presentation
mathew joseph
 
Wannier90: Band Structures, Tips and Tricks
Wannier90: Band Structures, Tips and TricksWannier90: Band Structures, Tips and Tricks
Wannier90: Band Structures, Tips and Tricks
Jonathan Skelton
 
Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...
Usatyuk Vasiliy
 
A tabu search algorithm for the min max k-chinese postman problem
A tabu search algorithm for the min max k-chinese postman problemA tabu search algorithm for the min max k-chinese postman problem
A tabu search algorithm for the min max k-chinese postman problem
政謙 陳
 

Similar to Sampling with Halton Points on n-Sphere (20)

Slides5 The Communication System midterm Slides
Slides5 The Communication System midterm SlidesSlides5 The Communication System midterm Slides
Slides5 The Communication System midterm Slides
 
CHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.pptCHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.ppt
 
CHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.pptCHAPTER 02 - Linear codes.ppt
CHAPTER 02 - Linear codes.ppt
 
20141204.journal club
20141204.journal club20141204.journal club
20141204.journal club
 
zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)
zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)
zkStudyClub - ProtoStar (Binyi Chen & Benedikt Bünz, Espresso Systems)
 
Robust Operations of Kafka Streams
Robust Operations of Kafka StreamsRobust Operations of Kafka Streams
Robust Operations of Kafka Streams
 
Computer Organization1CS1400Feng JiangBoolean al.docx
Computer Organization1CS1400Feng JiangBoolean al.docxComputer Organization1CS1400Feng JiangBoolean al.docx
Computer Organization1CS1400Feng JiangBoolean al.docx
 
Computational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in RComputational Techniques for the Statistical Analysis of Big Data in R
Computational Techniques for the Statistical Analysis of Big Data in R
 
Quantum Computing Notes Ver 1.2
Quantum Computing Notes Ver 1.2Quantum Computing Notes Ver 1.2
Quantum Computing Notes Ver 1.2
 
Kernel for Chordal Vertex Deletion
Kernel for Chordal Vertex DeletionKernel for Chordal Vertex Deletion
Kernel for Chordal Vertex Deletion
 
Mlab i
Mlab iMlab i
Mlab i
 
Object Detection with Transformers
Object Detection with TransformersObject Detection with Transformers
Object Detection with Transformers
 
Design and minimization of reversible programmable logic arrays and its reali...
Design and minimization of reversible programmable logic arrays and its reali...Design and minimization of reversible programmable logic arrays and its reali...
Design and minimization of reversible programmable logic arrays and its reali...
 
CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...
CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...
CSBP: A Fast Circuit Similarity-Based Placement for FPGA Incremental Design a...
 
Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
 
Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)Functional Design Explained (David Sankel CppCon 2015)
Functional Design Explained (David Sankel CppCon 2015)
 
presentation
presentationpresentation
presentation
 
Wannier90: Band Structures, Tips and Tricks
Wannier90: Band Structures, Tips and TricksWannier90: Band Structures, Tips and Tricks
Wannier90: Band Structures, Tips and Tricks
 
Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...Cycle’s topological optimizations and the iterative decoding problem on gener...
Cycle’s topological optimizations and the iterative decoding problem on gener...
 
A tabu search algorithm for the min max k-chinese postman problem
A tabu search algorithm for the min max k-chinese postman problemA tabu search algorithm for the min max k-chinese postman problem
A tabu search algorithm for the min max k-chinese postman problem
 

More from Danny Luk

Cyclic quorum
Cyclic quorumCyclic quorum
Cyclic quorum
Danny Luk
 
lec05 Convex PWL Problems.pdf
lec05 Convex PWL Problems.pdflec05 Convex PWL Problems.pdf
lec05 Convex PWL Problems.pdf
Danny Luk
 
Lec05 convex pwl problems
Lec05 convex pwl problemsLec05 convex pwl problems
Lec05 convex pwl problems
Danny Luk
 
Lec04 min cost linear problems
Lec04 min cost linear problemsLec04 min cost linear problems
Lec04 min cost linear problems
Danny Luk
 
Lec02 feasibility problems
Lec02 feasibility problemsLec02 feasibility problems
Lec02 feasibility problems
Danny Luk
 
Lec01 network flows
Lec01 network flowsLec01 network flows
Lec01 network flows
Danny Luk
 
Lec00 generalized network flows
Lec00 generalized network flowsLec00 generalized network flows
Lec00 generalized network flows
Danny Luk
 
Lec03 parametric problems
Lec03 parametric problemsLec03 parametric problems
Lec03 parametric problems
Danny Luk
 
Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree
Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-TreeFast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree
Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree
Danny Luk
 
Double patterning (4/20 update)
Double patterning (4/20 update)Double patterning (4/20 update)
Double patterning (4/20 update)
Danny Luk
 
Double Patterning
Double PatterningDouble Patterning
Double Patterning
Danny Luk
 
Double Patterning (4/2 update)
Double Patterning (4/2 update)Double Patterning (4/2 update)
Double Patterning (4/2 update)
Danny Luk
 
Double Patterning
Double PatterningDouble Patterning
Double Patterning
Danny Luk
 

More from Danny Luk (13)

Cyclic quorum
Cyclic quorumCyclic quorum
Cyclic quorum
 
lec05 Convex PWL Problems.pdf
lec05 Convex PWL Problems.pdflec05 Convex PWL Problems.pdf
lec05 Convex PWL Problems.pdf
 
Lec05 convex pwl problems
Lec05 convex pwl problemsLec05 convex pwl problems
Lec05 convex pwl problems
 
Lec04 min cost linear problems
Lec04 min cost linear problemsLec04 min cost linear problems
Lec04 min cost linear problems
 
Lec02 feasibility problems
Lec02 feasibility problemsLec02 feasibility problems
Lec02 feasibility problems
 
Lec01 network flows
Lec01 network flowsLec01 network flows
Lec01 network flows
 
Lec00 generalized network flows
Lec00 generalized network flowsLec00 generalized network flows
Lec00 generalized network flows
 
Lec03 parametric problems
Lec03 parametric problemsLec03 parametric problems
Lec03 parametric problems
 
Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree
Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-TreeFast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree
Fast and Lossless Graph Division Method for Layout Decomposition Using SPQR-Tree
 
Double patterning (4/20 update)
Double patterning (4/20 update)Double patterning (4/20 update)
Double patterning (4/20 update)
 
Double Patterning
Double PatterningDouble Patterning
Double Patterning
 
Double Patterning (4/2 update)
Double Patterning (4/2 update)Double Patterning (4/2 update)
Double Patterning (4/2 update)
 
Double Patterning
Double PatterningDouble Patterning
Double Patterning
 

Recently uploaded

Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 

Recently uploaded (20)

Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 

Sampling with Halton Points on n-Sphere

  • 1. Sampling with Halton Points on n-Sphere Wai-Shing Luk1 1School of Microelectronics Fudan University April 6, 2014
  • 2. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 3. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 4. Abstract Sampling on n-sphere (Sn ) has a wide range of applications, such as: Spherical coding in MIMO wireless communication Multivariate empirical mode decomposition Filter bank design We propose a simple yet effective method which: Utilizes low-discrepancy sequence Contains only 10 lines of MATLAB code in our implementation! Allow incremental generation. Numerical results show that the proposed method outperforms the randomly generated sequences and other proposed methods.
  • 5. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 6. Problem Formulation Desirable properties of samples over Sn Uniform Deterministic Incremental The uniformity measures are optimized with every new point. Reason: in some applications, it is unknown how many points are needed to solve the problem in advance
  • 7. Motivation The topic has been well studied for sphere in 3D, i.e. n = 2 Yet it is still unknown how to generate for n > 2. Potential applications (for n > 2): Robotic Motion Planning (S3 and SO(3)) [YJLM10] Spherical coding in MIMO wireless communication [UL06]: Cookbook for Unitary matrices A code word = a point in Sn Multivariate empirical mode decomposition [RM10] Filter bank design [M+ 11]
  • 8. Halton Sequence on Sn Halton sequence on S2 has been well studied [CF97] by using cylindrical coordinates. Yet it is still little known for Sn where n > 2. Note: The generalization of cylindrical coordinates does NOT work in higher dimensions.
  • 9. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 10. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 11. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 12. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 13. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 14. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 15. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 16. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 17. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 18. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 19. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 20. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 21. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 22. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 23. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 24. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 25. Basic: Van der Corput sequence Generate a low discrepancy sequence over [0; 1] Denote vd(k; b) as a Van der Corput sequence of k points, where b is the base of a prime number. MATLAB source code is available at http: //www.mathworks.com/matlabcentral/fileexchange/ 15354-generate-a-van-der-corput-sequence Example
  • 26. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 27. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 28. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 29. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 30. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 31. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 32. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 33. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 34. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 35. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 36. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 37. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 38. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 39. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 40. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 41. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 42. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 43. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 44. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 45. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 46. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 47. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 48. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 49. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 50. Unit Square [0; 1] ¢[0; 1] Halton sequence: using 2 Van der Corput sequences with different bases. Example [x; y] = [vd(k; 2); vd(k; 3)]
  • 51. Unit Hypercube [0; 1] n Generally we can generate Halton sequence in a unit hypercube [0; 1]n : [x1; x2; : : : ; xn ] = [vd(k; b1); vd(k; b2); : : : ; vd(k; bn )] A wide range of applications on Quasi-Monte Carlo Methods (QMC).
  • 52. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 53. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 54. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 55. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 56. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 57. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 58. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 59. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 60. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 61. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 62. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 63. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 64. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 65. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 66. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 67. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 68. Unit Circle S1 Can be generated by mapping the Van der Corput sequence to [0; 2] = 2 ¡vd(k; b) [x; y] = [cos ; sin ]
  • 69. Unit Sphere S2 Has been applied for computer graphic applications [WLH97] [z; x; y] = [cos ; sin cos '; sin sin '] = [z; p 1  z2 cos '; p 1  z2 sin '] ' = 2 ¡vd(k; b1) % map to [0; 2] z = 2 ¡vd(k; b2)  1 % map to [ 1; 1]
  • 70. Sphere S3 and SO(3) Deterministic point sets Optimal grid point sets for S3 , SO(3) [Lubotzky, Phillips, Sarnak 86] [Mitchell 07] No Halton sequences so far to the best of our knowledge
  • 71. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 72. SO(3) or S3 Hopf Coordinates Hopf coordinates (cf. [YJLM10]) x1 = cos(=2) cos( =2) x2 = cos(=2) sin( =2) x3 = sin(=2) cos(' + =2) x4 = sin(=2) sin(' + =2) S3 is a principal circle bundle over the S2
  • 73. Hopf Coordinates for SO(3) or S3 Similar to the Halton sequence generation on S2, we perform the mapping: ' = 2 ¡vd(k; b1) % map to [0; 2] = 2 ¡vd(k; b2) % map to [0; 2] for SO(3), or = 4 ¡vd(k; b2) % map to [0; 4] for S3 z = 2 ¡vd(k; b3)  1 % map to [ 1; 1] = cos 1 z
  • 74. 10 Lines of MATLAB Code 1 function[s] = sphere3_hopf (k,b) 2 % sphere3_hopf Halton sequence 3 varphi = 2*pi*vdcorput(k,b(1)); % map to [0, 2*pi] 4 psi = 4*pi*vdcorput(k,b(2)); % map to [0, 4*pi] 5 z = 2* vdcorput(k,b(3)) - 1; % map to [-1, 1] 6 theta = acos(z); 7 cos_eta = cos(theta /2); 8 sin_eta = sin(theta /2); 9 s = [cos_eta .* cos(psi /2), ... 10 cos_eta .* sin(psi /2), ... 11 sin_eta .* cos(varphi + psi /2), ... 12 sin_eta .* sin(varphi + psi /2)];
  • 75. 3-sphere Polar coordinates: x0 = cos 3 x1 = sin 3 cos 2 x2 = sin 3 sin 2 cos 1 x3 = sin 3 sin 2 sin 1
  • 76. n-sphere Polar coordinates: x0 = cos n x1 = sin n cos n 1 x2 = sin n sin n 1 cos n 2 x3 = sin n sin n 1 sin n 2 cos n 3 ¡¡¡ xn 1 = sin n sin n 1 sin n 2 ¡¡¡cos 1 xn = sin n sin n 1 sin n 2 ¡¡¡sin 1
  • 77. How to Generate the Point Set p0 = [cos 1; sin 1] where 1 = 2 ¡vd(k; b1) Let fj () = R sinj d, where P (0; ). Note: fj () is a monotonic increasing function in (0; ) Map vd(k; bj ) uniformly to fj (): tj = fj (0) + (fj ()  fj (0))vd(k; bj ) Let j = f  1 j (tj ) Define pn recursively as: pn = [cos n ; sin n ¡pn 1]
  • 78. S3 projected on four different spheres
  • 79. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 80. Testing the Correctness Compare the dispersion with the random point-set Construct the convex hull for each point-set Dispersion roughly measured by the difference of the maximum distance and the minimum distance between every two neighbour points: max aPx(b) fD(a; b)g  min aPx(b) fD(a; b)g where D(a; b) = p 1  aTb
  • 81. Random sequences To generate random points on Sn , spherical symmetry of the multidimensional Gaussian density function can be exploited. Then the normalized vector (xi =kxi k) is uniformly distributed over the hypersphere Sn . [Fishman, G. F. (1996)]
  • 82. Convex Hull with %400 points Left: our, right: random
  • 85. Agenda Abstract Motivation and Applications Review of Low Discrepancy Sequence Van der Corput sequence on [0; 1] Halton sequence on [0; 1] Halton sequence on [0; 1]n Unit Circle S1 Unit Sphere S2 Sphere Sn and SO(3) Our approach Numerical Experiments Conclusions
  • 86. Conclusions Proposed method generates low-discrepancy point-set in nearly linear time The result outperforms the corresponding random point-set, especially when the number of points is small The MATLAB source code is available in public (or upon request)
  • 87. References I [CF97] Jianjun Cui and Willi Freeden, Equidistribution on the sphere, SIAM Journal on Scientific Computing 18 (1997), no. 2, 595–609. [M+11] DP Mandic et al., Filter bank property of multivariate empirical mode decomposition, Signal Processing, IEEE Transactions on 59 (2011), no. 5, 2421–2426. [RM10] Naveed Rehman and Danilo P Mandic, Multivariate empirical mode decomposition, Proceedings of the Royal Society A: Mathematical, Physical and Engineering Science 466 (2010), no. 2117, 1291–1302. [UL06] Zoran Utkovski and Juergen Lindner, On the construction of non-coherent space time codes from high-dimensional spherical codes, Spread Spectrum Techniques and Applications, 2006 IEEE Ninth International Symposium on, IEEE, 2006, pp. 327–331. [WLH97] Tien-Tsin Wong, Wai-Shing Luk, and Pheng-Ann Heng, Sampling with hammersley and halton points, Journal of graphics tools 2 (1997), no. 2, 9–24. [YJLM10] Anna Yershova, Swati Jain, Steven M LaValle, and Julie C Mitchell, Generating uniform incremental grids on so (3) using the hopf fibration, The International journal of robotics research 29 (2010), no. 7, 801–812.