A Genetic algorithm Methology for Complex Scheduling Problems