Вам, вероятно, не нужно ничего слишком экзотического, чтобы резко сократить ваши данные.
Рассмотрим что-нибудь простое:
Построить какую-то метрику ошибки. Легким будет нормализованная сумма расстояний от пропущенных точек до линии, которая их аппроксимирует. Решите, что допустимая ошибка, используя эту метрику.
Затем, начиная с первой точки, постройте самый длинный отрезок, который попадает в допустимый диапазон ошибок. Повторяйте этот процесс, пока не преобразуете весь путь в ломаную линию.
Это не даст вам глобально оптимального приближения, но, вероятно, будет достаточно хорошим.
Если вы хотите, чтобы аппроксимация была более "изогнутой", вы можете рассмотреть возможность использования сплайнов или кривых Безье, а не отрезков прямых линий.