-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
54 lines (49 loc) · 2.3 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Toribash move evolver
Organized like this:
src/
*.lua - scripts to be executed from options/scripts/...
evolve/
evolib.lua - general functions for population management, simulation running
GA.lua - genetic algorithm main part - run_GA()
GA_default.lua - default configuration for GA
show_population.lua - population (or best.txt) viewer and browser
The basic principle is:
* get default conf from GA_default.lua
* run_GA(conf) for a while
* loops over whole population, applying GA when each individual has run
* produces bestfile (with all new best performers during the run)
* and population file (with the whole population)
* suggestion - press 'v' to disable uke, tori and hud + minimize the window
* run show_population(file) to view the results
* save any replays or study the moves
Different runs produce different results, you will usually get *something* in
about 10 minutes or so.
Current GA is not so good with long combos, specializes on one move.
TODO ideas:
* enhance GA
* more generic move format - do not have a particular number of "moves"
* individual can do anything at any point possible by game rules
* but discourage random jolting (try 50 moves currently)
* chromosomes are blobs of values over time and (adjacent?) joints
* stretch/shrink/move in time/joints
* activate/deactivate
* merge/split
* can keep current GA on top of that
* or have more advanced one as well, same file format
* generate individual from replays?
* track the "mutability" of values which in turn are mutable
* allow some parts of genome to become more stable?
* better evolving of high move-count populations, opening semi-fixed
* individual ages
* allow mediocre performers evolve longer (more diversity)
* discourage everyone becoming the same as elites
*
* GA the GA - run multiple populations in parallel with different params
* kill population when it ceases to develop
* check if alternating params has any good results (population pressure)?
* more interesting fitness functions
* based on movement cost - encourage purposeful movements?
* monitor damage during simulation - reward early agression?
* monitor simulation and cancel pointless movements - can be detected?
* improve population stats - which GA strategies are better
* similarity/clusters?