  Based on the principles of importance sampling and resampling, sequential
Monte Carlo (SMC) encompasses a large set of powerful techniques dealing with
complex stochastic dynamic systems. Many of these systems possess strong
memory, with which future information can help sharpen the inference about the
current state. By providing theoretical justification of several existing
algorithms and introducing several new ones, we study systematically how to
construct efficient SMC algorithms to take advantage of the "future"
information without creating a substantially high computational burden. The
main idea is to allow for lookahead in the Monte Carlo process so that future
information can be utilized in weighting and generating Monte Carlo samples, or
resampling from samples of the current state.
