An improved immune clonal selection algorithm