GA-based adaptive thinning strategy for pattern nulling in linear arrays