A Survey of Computational Offloading in Cloud/Edge-based Architectures: Strategies, Optimization Models and Challenges