algorithm basin-hopping code GMIN contributor Jacob Stevenson and David Wales