101 Commits

Author SHA1 Message Date
Johannes Merl bcddedabee update to RVar 2024-02-11 21:25:15 +01:00
David Pätzel 77d29208d2 Add possibility of unassigned topics 2023-04-26 15:47:05 +02:00
David Pätzel da5fc31ab8 🎨 Reformat modules with new ormolu defaults 2023-04-26 15:46:30 +02:00
David Pätzel 5c448dce09 👷 Swap to simpler Nix flake–based environment 2023-04-26 15:40:05 +02:00
David Pätzel 6e139370a5 Fix solution validity check for seminar problem
Invalid solutions where one topic was assigned multiple times were
evaluated as valid; this issue arose whenever there were less students
than topics.
2021-04-27 15:00:44 +02:00
David Pätzel 8c273aa0fa Automate searching for executable in run script
For now, do it relatively unsafe (you may have to delete the
`dist-newstyle` folder and then rebuild if there may be multiple
executables found under `dist-newstyle`—e.g. from different GHC
versions—as this is not handled correctly by the script).
2020-11-09 15:02:39 +01:00
David Pätzel b4f5810239 Pin nixpkgs 2020-11-09 15:02:19 +01:00
David Pätzel 3800d06d5e Fix selection method not being selected in Main 2020-05-02 17:47:43 +02:00
David Pätzel 3976e09506 Enable (almost) all GHC warning, fix warnings 2020-05-02 17:42:04 +02:00
David Pätzel 30e6f08e27 Improve a few doc comments 2020-05-02 16:13:18 +02:00
David Pätzel e346270907 Parametrize selection, add tournament, remove erroneous proportionate 2020-05-02 16:12:31 +02:00
David Pätzel 509e7d0361 Fix population size not being constant 2020-05-02 16:11:28 +02:00
David Pätzel ec251d05c9 Use nixpkgs master, add ideas/TODOs 2020-04-29 16:05:09 +02:00
David Pätzel 7504c030fc Bump base version 2020-04-27 15:38:12 +02:00
David Pätzel 1abcdaa454 Update run script 2020-04-27 15:37:41 +02:00
David Pätzel 7a48c1278f Add length test for GA.bestsBy 2020-01-07 09:17:39 +01:00
David Pätzel bbddd62c70 Add applicative CLI option parsing 2020-01-07 08:46:04 +01:00
David Pätzel 483e1707c8 Add Szenario191 2020-01-07 07:57:02 +01:00
David Pätzel 9559b7ada6 Add README 2019-10-22 17:08:25 +02:00
David Pätzel 281acc0b88 Improve documentation of GA module slightly 2019-10-22 17:02:04 +02:00
David Pätzel c015424429 Fix project name in .nix files 2019-10-22 16:53:50 +02:00
David Pätzel 9866603dbe Add pre-commit hook that enforces ormolu formatting 2019-10-22 16:42:16 +02:00
David Pätzel c5dca4b33a Add ./run script for getting live gnuplot graphs 2019-10-22 16:38:24 +02:00
David Pätzel f976d32f38 Add Org file 2019-10-22 16:36:45 +02:00
David Pätzel 69d176cbfb Rename to haga 2019-10-22 16:33:02 +02:00
David Pätzel bcf11d61e1 Implement bestsBy properly
Only needs something in O(n) now instead of a lot more. Also, returns the
complement.
2019-10-22 14:33:19 +02:00
David Pätzel 0044b6cc18 Revert Population to type alias (instead of newtype) 2019-10-22 14:32:36 +02:00
David Pätzel 84c876f1b5 Add basis for tests to GA module 2019-10-22 08:18:34 +02:00
David Pätzel db55ec0716 Clean up comments and TODOs in GA module 2019-10-22 07:10:28 +02:00
David Pätzel 43071b9b1e Remove unnecessary 'ga'' function 2019-10-22 07:09:17 +02:00
David Pätzel 3c45c206fc Fix floating point precision problems in GA.worst
By using negate instead of (1 /).
2019-10-22 07:08:37 +02:00
David Pätzel 939502e511 Add TODOs and comments about shuffle 2019-10-22 06:53:53 +02:00
David Pätzel 59b5e4de8b Rewrite and clean up Seminar module 2019-10-22 06:49:46 +02:00
David Pätzel a702bb6431 Enhance release.nix format 2019-10-19 20:03:40 +02:00
David Pätzel 2a9459f226 Use noDupsList generator for more tests 2019-10-19 15:57:55 +02:00
David Pätzel 36999532c2 Fix Seminar.switch bug if (i' == j') 2019-10-19 15:56:44 +02:00
David Pätzel 3c1a1a9be6 Rewrite 'Seminar.valid' check with tests 2019-10-19 15:50:02 +02:00
David Pätzel c8af014976 Setup QuickCheck testing 2019-10-18 23:20:19 +02:00
David Pätzel e0b5de5a7f Update cabal description, add extra package etc. 2019-10-18 23:15:54 +02:00
David Pätzel 73c62b0a8f Add better default priorities and fitness
By not having too large default priorities, the GA seems to be more stable.
Instead of inverting the relation induced by fitness using `(1 /)`, we use
`negate` to get more numerical stability (or in this case, less instability
introduced by floating point precision problems).
2019-10-18 13:47:03 +02:00
David Pätzel ec84f84aa8 Add 1-elitism as (unchangeable, for now) default 2019-10-18 13:43:18 +02:00
David Pätzel 958bbf25b7 Add primitive iteration count CLI argument 2019-10-18 13:37:16 +02:00
David Pätzel 303120f54a Fix result extraction 2019-10-18 13:36:59 +02:00
David Pätzel 6c41743dbd Divide step and run, add progress support via pipes 2019-10-18 09:57:43 +02:00
David Pätzel 531cb74aac Rename Topic to T, fix T Eq instance, fix fitness calculation 2019-10-18 09:10:11 +02:00
David Pätzel 5f4e212414 Add Seminar module draft and SS19 example 2019-10-17 19:50:39 +02:00
David Pätzel 49b105f42a Cleanup existing GA code 2019-10-17 18:23:19 +02:00
David Pätzel 296b2e218c Add executable to package definition 2019-10-17 17:25:58 +02:00
David Pätzel 1d62a5cbea Correct package name, add draft for GA module 2019-10-17 17:25:25 +02:00
David Pätzel 6ab1a2acba Add Pretty class 2019-05-30 12:40:47 +02:00