A variable speed limit controller for recurrent congestion based on the optimal solution