If you really look hard into these things, you will find, that the fact is a general answer probably does not exist. You can optimize your ascent profile for a particular rocket/configuration, but that same profile will be non-optimal for another rocket/configuration. Personally, I use a throttle lookup table versus apoapsis altitude along with a smoothing function (spline?). One of my favorite solutions, though, is to lock throttle to 1-((current speed)/(orbital velocity@current altitude)) . This gives surprisingly good results.