A genetic algorithm, GENEsYs, is applied to an NP-complele problem, the 0/1 multiple knapsack problem. The partitioning of the search space resulting from this highly constrained problem may include substantially large infeasible regions. Our implementation allows for the breeding and participation of infeasible strings in the population. Unlike many other GA-based algorithms lhat are augmented with domainspecific knowledge, GENEsYs uses a simple fitness function that uses a graded penalty term to penalize infeasibly bred strings. We apply our genetic algorithm to problem inslances trom the literature of well known test problems and report our experimental results. These encouraging results, especially for relatively large test problems, indicate that genetic algorithms can be successfully used as heuristics for finding good solutions for highly constrained NP-complete problems.