-
-
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 filters
andp > 1
or elsenormalised weight(p) = 1
ifp = 1
and 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