MzingaTrainer - jonthysell/Mzinga GitHub Wiki
MzingaTrainer is a command-line utility with the goal to improve Mzinga's AI. Through it you can generate randomized AI profiles and execute AI vs. AI battles.
Usage
MzingaTrainer [command] ([parametername] [parametervalue]...)
Example
MzingaTrainer enumerate -ProfilesPath c:\profiles\
Commands
| Command | Description |
|---|---|
| battle | Fight a single battle between two profiles |
| battleroyale | Fight every profile against each other |
| cull | Delete the lowest ranking profiles |
| enumerate | List all of the profiles |
| analyze | Analyze all of the profiles |
| generate | Create new random profiles |
| lifecycle | Battle, cull, mate cycle for profiles |
| mate | Mate every profile with each other |
| tournament | Fight an single elimination tournament |
| autotrain | Train a single profile against itself |
| top | List the top profiles for each GameType |
| mergetop | Merge the top profiles from each GameType |
| exportai | Export the current engine AI as profiles |
Parameters
| Parameter | Description |
|---|---|
| -ProfilesPath | Where the profiles are stored |
| -WhiteProfilePath | The white profile in a single battle |
| -BlackProfilePath | The black profile in a single battle |
| -CullKeepCount | How many to profiles to keep when culling |
| -GenerateCount | How many profiles to generate |
| -GenerateMinWeight | The minimum weight value for random profiles |
| -GenerateMaxWeight | The maximum weight value for random profiles |
| -LifecycleGenerations | The number of generations to run |
| -LifecycleBattles | The number/type of battles in each generation |
| -MaxBattles | The max number of battles in a battle royale |
| -MaxConcurrentBattles | The max number of battles at the same time |
| -BattleShuffleProfiles | Whether or not to have profiles fight in random order |
| -BulkBattleTimeLimit | The max time for tournaments / battle royales |
| -ProvisionalRules | Whether or not to use provisional rules |
| -ProvisionalGameCount | The number of games a profile stays provisional |
| -MaxDraws | The max number of times to retry battles that end in a draw |
| -MateMinMix | The min multiplier to mix up weights in children profiles |
| -MateMaxMix | The max multiplier to mix up weights in children profiles |
| -MateParentCount | The number of profiles to mate |
| -MateShuffleParents | Whether or not to have random parents mate |
| -TransTableSize | The maximum size of each AI's transposition table in MB |
| -MaxDepth | The maximum ply depth of the AI search |
| -TurnMaxTime | The maximum time to let the AI think on its turn |
| -BattleTimeLimit | The maximum time to let a battle run before declaring a draw |
| -GameType | Base,Base+M,Base+L,Base+P,Base+ML,Base+MP,Base+LP,Base+MLP |
| -TargetProfilePath | The target profile |
| -FindPuzzleCandidates | Output puzzle candidates during battles |
| -MaxHelperThreads | The maximum helper threads for each AI to use |
| -TopCount | The number of profiles to return when calling top |
| -AllGameTypes | Run the specifcied command through every game type |
| -ProvisionalFirst | Prioritize battles with at least one provisional profile |