GAs are an established method of non exact optimization, meaning that a GA is usually able to find very good solutions to hard combinatorial optimization problems when it is difficult or even impossible for an exact optimization method like Linear or Integer Programming to address the same problem within reasonable solving time.