A flexible metro train scheduling approach to minimize energy cost and passenger waiting time. (June 2019)