Dual annealing is a stochastic global optimization algorithm based on combined Classical Simulated Annealing and Fast Simulated Annealing algorithms. Simulated annealing is an optimization algorithm for approximating the global optima of a given function.

SciPy provides dual_annealing() function to implement dual annealing method in Python. In this tutorial, we'll briefly learn how to implement and solve optimization problem with dual annealing by using
this SciPy function.

The tutorial covers:

- Dual annealing with 2D function
- Dual annealing with 3D function
- Source code listing

We'll start by loading the required libraries.

```
```

```
from scipy.optimize import dual_annealing
import matplotlib.pyplot as plt
import numpy as np
```

` `