Search Based Clustering for Protecting Software with Diversified Updates