An Immunological approach to Combinatorial Optimization Problems