mtg-genetic-deckbuilding

Generating and improving Magic: The Gathering decks using a genetic algorithm
git clone https://kevincorvisier.fr/git/mtg-genetic-deckbuilding.git
Log | Files | Refs | LICENSE

DateCommit messageAuthorFiles+-
2025-01-16 09:54Update `error-prone-cards.txt` fileKevin Corvisier1+2-0
2025-01-10 09:03Fix elite individual's deck being modified when another individual sharing the same deck is mutatedKevin Corvisier1+2-2
2025-01-09 09:48Code clean-upKevin Corvisier7+29-15
2025-01-09 09:46Use previously computed fitness as estimated fitness when no crossover is doneKevin Corvisier1+8-3
2025-01-09 09:44Do not validate elite individuals for whether they were already generated, fix new generation never containing elite individualsKevin Corvisier2+14-8
2025-01-09 09:33Fix MaxUniqueCardsIndividualValidator considering two cards with same name but different editions as differentKevin Corvisier1+1-1
2025-01-09 09:31Downgrade forge to 1.6.65Kevin Corvisier4+13-9
2025-01-07 23:39Separate name generation from crossoverKevin Corvisier5+35-23
2025-01-04 08:56Update forge to 2.0.01Kevin Corvisier4+6-7
2024-12-25 09:29Update `error-prone-cards.txt` fileKevin Corvisier1+1-0
2024-12-25 09:29Fix ErrorProneCardsService.isValidKevin Corvisier1+1-1
2024-12-22 13:37Rework validation serviceKevin Corvisier13+347-184
2024-12-22 01:21Update error-prone cards listKevin Corvisier2+2-2
2024-12-21 14:41Update default configuration and example1 card pool/decksKevin Corvisier32+1056-343
2024-12-20 09:53Win evaluation: add possibility to have a different number of games performed depending on the current win-ratio of an individualKevin Corvisier7+99-21
2024-12-19 03:43Create mutation rate configurationKevin Corvisier4+19-6
2024-12-19 03:31Make Crossover.crossover return a Pair instead of a List, move crossover rate to NextGenerationServiceKevin Corvisier6+43-42
2024-12-19 03:17Make Selection.select return a Pair instead of a ListKevin Corvisier2+7-8
2024-12-17 09:28Mutation: decide number of cards to swap based on parents average fitness, use probability for a card to be removedKevin Corvisier4+28-7
2024-12-16 05:14Add population-stats.csv file containing the strongest, median and worst fitness result per generationKevin Corvisier6+70-1
2024-12-16 04:42Update dependenciesKevin Corvisier1+4-10
2024-12-01 12:13Update the Spring Framework to 6.2.0Kevin Corvisier1+1-1
2024-12-01 12:12When an exception related to a specific card stops a game, add the card to a file listing error-prone cardsKevin Corvisier10+227-3
2024-11-22 07:25Code clean-upKevin Corvisier4+38-32
2024-11-22 07:23Update forge to 2.0.00Kevin Corvisier2+4-4
2024-11-08 09:07Add "PreMiddleSchool" format as the intersection of Premodern and MiddleSchool formatsKevin Corvisier2+27-2
2024-11-07 09:54Fix MiddleSchool format not including Portal: Second Age cardsKevin Corvisier1+1-1
2024-10-24 11:56Card pool: allow limiting the number of available copies of cardsKevin Corvisier6+180-17
2024-10-17 11:49Update forge to 1.6.65Kevin Corvisier2+4-4
2024-10-06 12:53Allow loading of opponents decks from several locations, add premodern decks to example1 configurationKevin Corvisier29+248-25
2024-10-06 11:43Extract next generation logic from GeneticAlgorithm, add possibility to introduce newly generated decks from the card pool at each generationKevin Corvisier26+597-624
2024-09-29 12:57Add example opponents decklists, initial population and card poolKevin Corvisier40+586-58
2024-09-29 11:49Add stop condition for the evaluation phaseKevin Corvisier14+276-15
2024-09-28 14:55Use the Spring Framework to load configuration files and inject dependenciesKevin Corvisier19+215-204
2024-09-25 04:05Start development of version 0.3.0Kevin Corvisier1+1-1
2024-09-24 12:05Version 0.2.0Kevin Corvisier47+3378-0