Since we didn't manage to find any proven-optimal algorithm we've
used search-and-cut strategy flavoured with miscellaneous heuristics.

The algotrithm look like this:

Choose any state (x, y, v, d, t) from an active set.

For each operation (a., l., r. etc.) apply it to choosen set N times (actually we use different N's from 50 to 150).

Filter obtained set of states.

Repeat until goal is reached.

This is a screenshot of the process:

Initially active set consists of starting state.

Some heuristics used to cut the active set:

States are ordered by distance to goal.

States behind some distance from "leader" are cutted.

If we got state with coordinates, speed and direction close to one of "earliest"
states then "new" state is dropped.

Some adaptive features are introduced: "closeness" criteria strengthens near
the bounds of track, distance from the "leader" is reduced when active set become
too large and increased if active set become too small.

Optimizations:

Two optimizations are performed:

After first algorithm run the track is reduced to some neihbourghood of
resulted trajectory and algorithm repeats with harder parameters.