Redundancy design for optimum reliability using stochastic dynamic programming and simulation techniques