I'm trying to come up with an algorithm for moving around objects in my 2D world. Given an object at position P0(x0, y0) with velocity V0(vx0, vy0), I want to find out exactly how I need to accelerate (how much and in which direction) to reach a new position P1, and when the object reaches P1(x1, y1) it needs to have a specific velocity V1(vx1, vy1).
Could this possibly be solved by calculating bezier curves or something like that? How would I detect and handle a situation where the object cannot accelerate fast enough to be able to follow the bezier curve (e.g. impossible movement)?