A multi-memory multi-population memetic algorithm for dynamic shortest path routing in mobile ad-hoc networks