Reflected Brownian motion
In probability theory, reflected Brownian motion (or regulated Brownian motion,[1][2] both with the acronym RBM) is a Wiener process in a space with reflecting boundaries.[3]
RBMs have been shown to describe queueing models experiencing heavy traffic[2] as first proposed by Kingman[4] and proven by Iglehart and Whitt.[5][6]
Contents
Definition
A d–dimensional reflected Brownian motion Z is a stochastic process on uniquely defined by
- a d–dimensional drift vector μ
- a d×d non-singular covariance matrix Σ and
- a d×d reflection matrix R.[7]
where X(t) is an unconstrained Brownian motion and[8]
with Y(t) a d–dimensional vector where
- Y is continuous and non–decreasing with Y(0) = 0
- Yj only increases at times for which Zj = 0 for j = 1,2,...,d
- Z(t) ∈ S, t ≥ 0.
The reflection matrix describes boundary behaviour. In the interior of the process behaves like a Wiener process, on the boundary "roughly speaking, Z is pushed in direction Rj whenever the boundary surface
is hit, where Rj is the jth column of the matrix R."[8]
Stability conditions
Stability conditions are known for RBMs in 1, 2, and 3 dimensions. "The problem of recurrence classification for SRBMs in four and higher dimensions remains open."[8] In the special case where R is an M-matrix then necessary and sufficient conditions for stability are[8]
- R is a non-singular matrix and
- R−1μ < 0.
Marginal and stationary distribution
One dimension
The marginal distribution (transient distribution) of a one-dimensional Brownian motion starting at 0 restricted to positive values (a single reflecting barrier at 0) with drift μ and variance σ2 is
for all t ≥ 0, (with Φ the cumulative distribution function of the normal distribution) which yields (for μ < 0) when taking t → ∞ an exponential distribution[2]
For fixed t, the distribution of Z(t) coincides with the distribution of the running maximum M(t) of the Brownian motion,
But be aware that the distributions of the processes as a whole are very different. In particular, M(t) is increasing in t, which is not the case for Z(t).
The heat kernel for reflected Brownian motion at :
For the plane above
Multiple dimensions
The stationary distribution of a reflected Brownian motion in multiple dimensions is tractable analytically when there is a product form stationary distribution,[9] which occurs when the process is stable and[10]
where D = diag(Σ). In this case the probability density function is[7]
where ηk = 2μkγk/Σkk and γ = R−1μ. Closed-form expressions for situations where the product form condition does not hold can be computed numerically as described below in the simulation section.
Hitting times
One dimension
Simulation
One dimension
In one dimension the simulated process is the absolute value of a Wiener process. The following MATLAB program creates a sample path.[11]
%rbm.m
n=10^4; h=10^(-3); t=h.*(0:n); mu=-1;
X=zeros(1,n+1); M=X; B=X;
B(1)=3; X(1)=3;
for k=2:n+1
Y=sqrt(h)*randn; U=rand(1);
B(k)=B(k-1)+mu*h-Y;
M=(Y + sqrt(Y^2-2*h*log(U)))/2;
X(k)=max(M-Y,X(k-1)+h*mu-Y);
end
subplot(2,1,1)
plot(t,X,'k-');
subplot(2,1,2)
plot(t,X-B,'k-');
The error involved in discrete simulations has been quantified.[12]
Multiple dimensions
QNET allows simulation of steady state RBMs.[13][14][15]
Other boundary conditions
Feller described possible boundary condition for the process[16][17][18]
- absorption[16] or killed Brownian motion,[19] a Dirichlet boundary condition
- instantaneous reflection,[16] as described above a Neumann boundary condition
- elastic reflection, a Robin boundary condition
- delayed reflection[16] (the time spent on the boundary is positive with probability one)
- partial reflection[16] where the process is either immediately reflected or is absorbed
- sticky Brownian motion.[20]
See also
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 2.0 2.1 2.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 7.0 7.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 8.0 8.1 8.2 8.3 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 16.0 16.1 16.2 16.3 16.4 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.