Tolerance-based punishment and cooperation in spatial public goods game. (May 2018)