Efficient Algorithms for Solving Hamilton-Jacobi-Bellman Equations