Bidirectional butterfly optimization algorithm and engineering applications. (2021)