Последний раз редактировалось realeugene 21.10.2016, 14:53, всего редактировалось 1 раз.
Могу, конечно, соврать, тем более, что ничего не знаю именно про задачу натягивания точек на цилиндр, но, как мне кажется, все методы тем или иным образом сводятся к общей задаче теории оценивания в одной из её формулировок, когда мы вводим в пространстве возможных решений функционал стоимости ошибки и, потом, алгоритмически минимизируем ожидаемую стоимость этой ошибки. Первая часть - математическая, вторая - алгоритмическая. Наложив ограничение на пространство параметров, вы изменили функционал стоимости, возможно, исправив огрехи алгоритмической части. Проводимая вами минимизация суммы квадратов отклонений минимизирует вероятность ошибки при условии, что все отклонения всех точек по всем координатам являются одинаково распределёнными независимыми гауссовыми случайными величинами, и распределение параметров цилиндров также равномерное в пространстве параметров. Почти наверняка это не так, так что, выбор оптимального математического критерия - это отдельная часть работы, не связанная с программированием. Наложив ограничения на область изменения ваших параметров вы изменили именно этот критерий стоимости.
Кроме того, во второй части вашего решения, вы ищете эффективный алгоритм поиска минимума этого функционала стоимости. Если функционал стоимости имеет множество локальных минимумов, а хочется найти один глобальный, задача поиска может оказаться очень сложной. Не факт, что, вообще, можно найти эффективный алгоритм решения этой задачи, тогда пользуются всевозможными приближениями, дающими субоптимальное, но приемлемое решение.
В сложных случаях, в которых, даже, функционал стоимости не удаётся выписать в явном виде, приходится строить многоуровневые системы поиска оптимального решения, обучая их на примерах. Например, в виде нейросетей, но не только. Это обширная область, про которую сложно рассказать кратко. Существует куча учебников по теории оценивания и по системам автоматического обучения. Вопрос в том, что из этого вам интересно, и где вы хотите остановиться?
|