Commit Graph

51 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