A Genetic Algorithm by Use of Virus Evolutionary Theory for Combinatorial Problems