Although the kernel can work until not stopped by the user, some build-in stopping conditions exists of course.
The child process can stop due to these condition:
operation ... almost evety GA tool execution is considered as an operation. Exceptions are: GA selectors, GA tables and some others (Empty, Copy, Move). change ... every change in the genes bit array is considered as a change.
Here is a list of appropriate parameters (switch means a boolean parameter un/enabling the condition)
Parameter | Description | Switch |
---|---|---|
MaxGenerations | Maximal count of generations | CheckMaxGenerations |
MaxOps | Maximal count of operations | CheckMaxOps |
MaxChngs | Maximal count of changes | CheckMaxChngs |
MinEndFit | Minimal fitness to end | CheckMinEndFit |
AvgEndFit | Average fitness to end | CheckAvgEndFit |
MaxEndFit | Fit of best gene to end | CheckMaxEndFit |
If a parent is stopped. It stops all running child processes immediately.
These are the stopping conditions:
Parameter | Description | Switch |
---|---|---|
MaxGenerations | Maximal count of generations | CheckMaxGenerations |
MaxOps | Maximal count of operations | CheckMaxOps |
MaxChngs | Maximal count of changes | CheckMaxChngs |
MinEndFit | Minimal fitness to end | CheckMinEndFit |
AvgEndFit | Average fitness to end | CheckAvgEndFit |
MaxEndFit | Fit of best gene to end | CheckMaxEndFit |
The stopping conditions are guarded using kernel infos. Namely: TKIGaStats, T KIGaNumInfo and TGKIGaStats.. The only exception are the parent's stopping conditions, that depend on the number of stopped childs. These are maintained by direct messages from child processes to parent about their state.