Я пытаюсь реализовать этот алгоритм в Python уже несколько дней.Я продолжаю возвращаться к этому и просто сдаюсь и расстраиваюсь.Я не знаю, что происходит.У меня нет никого, чтобы попросить или куда-нибудь обратиться за помощью, поэтому я пришел сюда.
PDF Предупреждение: http://www.cs.uiuc.edu/class/sp08/cs473/Lectures/lec10.pdf
Я не думаю, что это ясно объяснено, я точно не понимаю.
Мое понимание того, что происходит, таково:
У нас есть набор точек (x1, y1), (x2, y2) .. и мы хотим найти несколько линий, которые лучше всего соответствуют этим данным.У нас может быть несколько прямых линий, и эти линии взяты из заданных форумов для a и b (y = ax + b).
Теперь алгоритм начинается в конце (?) И предполагает, что точка p (x_i, y_i) является частью отрезка.Тогда в заметках говорится, что оптимальным решением является «оптимальное решение для {p1,.,,pi − 1} плюс (лучшая) строка через {pi,.,,рп}».Для меня это просто означает, что мы идем к точке p (x_i, y_i) и возвращаемся назад и находим другой отрезок прямой через оставшиеся точки.Теперь оптимальным решением являются оба этих отрезка.
Затем выполняется логический переход, за которым я не могу следовать, и он говорит: «Предположим, что последняя точка pn является частью сегмента, начинающегося с p_i. Если Opt (j) обозначает стоимость первых j точек иe (j, k) ошибка наилучшей линии через точки j к k, тогда Opt (n) = e (i, n) + C + Opt (i - 1) "
Тогда существует псевдокоддля алгоритма, который я не понимаю.Я понимаю, что мы хотим перебрать список точек и найти точки, которые минимизируют формулу OPT (n), но я просто не следую ей.Это заставляет меня чувствовать себя глупо.
Я знаю, что этот вопрос - боль в заднице, и на него нелегко ответить, но я просто ищу руководство для понимания этого алгоритма.Я прошу прощения за PDF, но у меня нет более аккуратного способа донести до читателя важную информацию.
Спасибо за ваше время и за чтение, я ценю это.