An Immunological Algorithm for Global Numerical Optimization