Commit Graph

14 Commits

Author SHA1 Message Date
934e2c2fd2 Sort residents by least flexibility first 2026-02-28 10:00:35 +02:00
76d308351a Reorganize integration tests, simplify fn signatures 2026-02-22 13:01:28 +02:00
a41d1cd469 Remove min by shift type boundaries, improve logging, add more tests, add logs in tests, move fixtures in separate file, move restrictions_violated logic into valid_residents of next slot 2026-02-21 23:46:26 +02:00
c291328bfa Shuffle once and keep order, use SmallRng
time:   [98.196 µs 100.64 µs 103.56 µs]
change: [−13.633% −10.629% −7.6947%] (p = 0.00 < 0.05)
2026-02-10 22:46:31 +02:00
f84d812602 Add custom errors with thiserror, log thread id 2026-02-03 23:02:44 +02:00
2e5568fccb Store tracker info from solution thread, sort by lowest type count first 2026-02-02 00:00:57 +02:00
98cb9f7f3e Parallelize DFS, use an AtomicBool for short-circuiting
time:   [73.407 µs 76.145 µs 79.345 µs]
change: [−40.126% −24.679% −3.8062%] (p = 0.04 < 0.05)
2026-02-01 22:53:04 +02:00
33de9720bf Improve error handling, logging 2026-01-18 00:02:11 +02:00
125ddc3117 Change ResidentId(String) to ResidentId(u8), impl Copy for ShiftType, use u8 for all UserConfig params 2026-01-17 19:27:35 +02:00
5bad63e8a7 Use maps to track workload progress instead of recalculating them at every step of the search, calculate total days/slots once, add integration tests, add log folder 2026-01-17 18:41:43 +02:00
af95cc2f5c Add missing shift type check 2026-01-14 23:52:42 +02:00
7713318d01 Improve type system with ResidentId and ToxicPair structs 2026-01-14 23:37:58 +02:00
1ce55675db Move valid_residents to the scheduler impl and simplify it 2026-01-14 21:15:57 +02:00
2febcb7344 Create struct scheduler to encapsulate the search logic 2026-01-14 00:34:48 +02:00