G05XAF initializes the Brownian bridge generator
G05XBF. It must be called before any calls to
G05XBF.
Details on the Brownian bridge algorithm and the Brownian bridge process (sometimes also called a non-free Wiener process) can be found in
Section 2.6 in the G05 Chapter Introduction. We briefly recall some notation and definitions.
Fix two times
t0<T and let
ti
1≤i≤N
be any set of time points satisfying
t0<t1<t2<⋯<tN<T. Let
Xti
1≤i≤N
denote a
d-dimensional Wiener sample path at these time points, and let
C be any
d by
d matrix such that
CCT is the desired covariance structure for the Wiener process. Each point
Xti of the sample path is constructed according to the Brownian bridge interpolation algorithm (see
Glasserman (2004) or
Section 2.6 in the G05 Chapter Introduction). We always start at some fixed point
Xt0
=
x∈ℝd
. If we set
XT
=x+
C
T-t0
Z
where
Z is any
d-dimensional standard Normal random variable, then
X will behave like a normal (free) Wiener process. However if we fix the terminal value
XT
=
w∈ℝd
, then
X will behave like a non-free Wiener process.
Given the start and end points of the process, the order in which successive interpolation times
tj are chosen is called the
bridge construction order. The construction order is given by the array
TIMES. Further information on construction orders is given in
Section 2.6.2 in the G05 Chapter Introduction. For clarity we consider here the common scenario where the Brownian bridge algorithm is used with quasi-random points. If pseudorandom numbers are used instead, these details can be ignored.
Suppose we require
P Wiener sample paths each of dimension
d. The main input to the Brownian bridge algorithm is then an array of quasi-random points
Z1,Z2,…,ZP where each point
Zp
=
Z1p,Z2p,…,ZDp
has dimension
D=dN+1 or
D=dN respectively, depending on whether a free or non-free Wiener process is required. When
G05XBF is called, the
pth sample path for
1≤p≤P is constructed as follows: if a non-free Wiener process is required set
XT equal to the terminal value
w, otherwise construct
XT as
where
C is the matrix described in
Section 3.1. The array
TIMES holds the remaining time points
t1
,
t2
,…
tN
in the order in which the bridge is to be constructed. For each
j=1,…,N set
r=TIMESj, find
and
and construct the point
Xr as
where
a=0 or
a=1 respectively depending on whether a free or non-free Wiener process is required. Note that in our discussion
j is indexed from
1, and so
Xr is interpolated between the nearest (in time) Wiener points which have already been constructed. The routine
G05XEF can be used to initialize the
TIMES array for several predefined bridge construction orders.
If on entry
IFAIL=0 or
-1, explanatory error messages are output on the current error message unit (as defined by
X04AAF).
Not applicable.
The efficient implementation of a Brownian bridge algorithm requires the use of a workspace array called the
working stack. Since previously computed points will be used to interpolate new points, they should be kept close to the hardware processing units so that the data can be accessed quickly. Ideally the whole stack should be held in hardware cache. Different bridge construction orders may require different amounts of working stack. Indeed, a naive bridge algorithm may require a stack of size
N
4
or even
N
2
, which could be very inefficient when
N is large. G05XAF performs a detailed analysis of the bridge construction order specified by
TIMES. Heuristics are used to find an execution strategy which requires a small working stack, while still constructing the bridge in the order required.
This example calls G05XAF,
G05XBF and
G05XEF to generate two sample paths of a three dimensional free Wiener process. Pseudorandom variates are used to construct the sample paths.
None.