# DE

<div align="center">

<img src="../examples/gifs/de_kbf.gif" width="200" alt="DE Example">

<p><b>Figure:</b> Differential Evolution is an evolutionary strategy similar to <a href="./CGA.md">CGA</a>, where candidates are generated by the mutation of the current population. Diversity is maintained using an archive of non-dominated solutions and a success history. An adaptive parameter is used to control the mutation strategy.</p>

</div>



## Config example

Fully-defined:

```json
{
    "alg_conf": {
        "DE": {
            "common": {
                "archive_size": 10,
                "success_history_size": 50
            },
            "mutation_type": {
                "Adaptive": {
                    "strategy": "Best2Bin",
                    "f_min": 0.4,
                    "f_max": 0.9,
                    "cr_min": 0.1,
                    "cr_max": 0.9
                }
                // or
                "Standard": {
                    "f": 0.8,
                    "cr": 0.9,
                    "strategy": "Best2Bin"
                }
            }
        }
    }
}
```

Default values (only need to specify mutation type):

```json
{
    "alg_conf": {
        "DE": {
            "mutation_type": {
                "Standard": {}
            }
        }
    }
}
```

## Sources and more information

- [Differential Evolution](https://doi.org/10.1023/A:1008202821328)
- [Survey on more advanced DE variants](https://doi.org/10.1016/j.swevo.2016.01.004)
- [JADE/SHADE](https://github.com/xKuZz/pyade)