Derivative-Free Optimization Algorithms For Computationally Expensive Functions