update sparse optimization