-
-
Notifications
You must be signed in to change notification settings - Fork 4
Genetic
SassyNic uses Genetic Algorithm's fitness score section to further manipulate the pruned data from Backtracking.
All the fitness function(s) are manually crafted based on these 2 formula Raw Fitness & Final Fitness Function:
It's essentially calculated fitness score without applying penalty function, O in this case refers to each filter's Objective Function where each filter(s) will be applied with their own weight(s) based on their priority.
Each filter's weight will be distributed accordingly such that w(p) > w(p+1) and summation of w(p) = 1, where p = priority and p > 1, or else weight(p) = 1 if p = 1 and only if p != 0.

Figure 1: Raw Fitness Function Equation
It's essentially calculated fitness score after applying penalty function, where each penalty function(s) can be applied with hard constraint(s) or soft constraint(s) or both.
-
hard constraint(s)will always return 0 if penalty are given, 1 if no penalty are given. -
soft contraint(s)will return based on eachR (restriction/constraint)'s normalised weight(s) in this case, such thatnormalised weight(s) = w(p) / total of filtersandp > 1or elsenormalised weight(p) = 1ifp = 1and only ifp != 0.
The Final Fitness Score's equation in this case would be Objective * (1 - Penalty).

Figure 2: Final Fitnes Function Equation

Figure 3.1: Day Filter Objective Function

Figure 3.2: Day Filter Penalty Function

Figure 4.1: Time Filter Objective Function
-
delta= deviation time frame

Figure 4.2: Time Filter Penalty Function

Figure 5.1: Class Gap Filter Objective Function

Figure 5.2: Class Gap Filter Penalty Function

Figure 6.1: Instructor Filter Objective Function

Figure 6.2: Instructor Filter Penalty Function
SassyNic | © 2025 FramedStone
Home
Tutorial
Timetable Tool Tutorial
Auto Subjects Grouping Tutorial
Auto OTP Extractor Tutorial
How To Contribute
Development Guide
Disclaimer
Index
Future Roadmap
Index
Tutorial
Timetable Tool TutorialAuto Subjects Grouping Tutorial
Auto OTP Extractor Tutorial
How To Contribute
Development Guide