def CheckValidSolution(solution, data): for nurse in solution: schedule = nurse['schedule'] # Try to fill all schedule valid = fillScheduleFunctions.FillSchedule(nurse, data) if (valid == False): return False #Max presence presence = nurse['end'] - nurse['ini'] + 1 if (presence > data.maxPresence): return False #Max hours if (nurse['workingHours'] > data.maxHours): return False #Min hours if (nurse['workingHours'] < data.minHours): return False #Max consec if (checkFunctions.CheckMaxConsecutiveHours(nurse['schedule'], data.maxConsec) == False): return False #Check rest if (checkFunctions.CheckRest(nurse['schedule']) == False): return False return True
i = 1 for nurse in bestIndividual['solution']: if Check.CheckMaxConsecutiveHours(nurse['schedule'], data['maxConsec']) == False: print( '//////////////########################## ERROR MAXCONSEC ########################' ) if Check.CheckMaxPresence(nurse['schedule'], data['maxPresence']) == False: print( '//////////////########################## ERROR MAXPRESENCE ########################' ) if Check.CheckMinAndMaxHours(nurse['schedule'], data['minHours'], data['maxHours']) == False: print( '//////////////########################## ERROR MINMAXHOURS ########################' ) if Check.CheckRest(nurse['schedule']) == False: print( '//////////////######################### ERROR REST ########################' ) print('N' + str(i) + ' ' + str(nurse['schedule']) + ' Hours:' + str(nurse['workingHours']) + ' (' + str(nurse['ini']) + ' to ' + str(nurse['end']) + ')') i += 1