Finding Worst-Case Instances, and Lower Bounds, for NP-Complete Problems Using Genetic Algorithms