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