Sequential Monte Carlo (SMC) Algorithm