LINUX.ORG.RU
Форум — Talks  

[Математика] Сравнение двух ломанных

 


0

0
Вопрос к ЛОРовским математикам. Есть две ломанные, состоящие из N1 и N2 элементов. Каждый элемент ломанной - прямая (что логично, в общем-то :)
Задача (кратко) - сравнить две ломанные.
Задача примерно следующая: ломанная-1 описывает некоторую кривую. Необходимо определить, описывает ли ту же кривую и ломанная-2, с заданным допуском и коэффициентами сжатия по осям.

Вопрос: как лучше всего это делать? Какие существующие методы для этого подойдут. Интересует именно математическое решение (подход), а не программное.

ЗЫ. N может быть довольно большим.
★
приближением (fitting) найти функции для ломаных и потом их уже сравнивать с кривой или друг с другом
Jeepston ★★★
()
>>сравнить две ломанные

>>Каждый элемент ломанной - прямая

>>с заданным допуском и коэффициентами сжатия по осям

ПТУ-шник детектед.

gkrellm
()
Если у тебя есть "некоторая кривая" каторую описывает ломаная-1, то ваще нет проблем имея допуски коэффициенты сжатия. Начальный курс арифметики, первый класс.
vada ★★★★★
()
Ответ на: комментарий от Jeepston
Думаю лишнее звено.

По теме - для начала их надо по какому-либо критерию свести "под общий знаменатель" - например "подтянуть одну до длины другой и выровнять в одном направлении"

Затем считать корреляцию.

Все потому что еcли есть рандом по масштабу то всегда можно одну уменьшить до звена другой и ошибочно получить утвердительный ответ.

gkrellm
()
Если известна сама "кривая", то с помощью МНК, где коэффициенты при членах со степенью равны 0.
Sun-ch ☆
()
Ответ на: комментарий от Sun-ch
> где коэффициенты при членах со степенью равны 0

Почему так ничтожно влияние членов со степенью?

dilmah ★★★★★
()
Ответ на: комментарий от dilmah
Дык это же не многочлен, которым принято апроксимировать.
Sun-ch ☆
()

Математическое решение.

Slader, ты вопрос сам задал и сам на него ответил. Есть некая сущность (ломанная), есть определения возможных отклонений (допуски), есть другая сущность (другая ломанная). В чём проблема?
Camel ★★★★★
()
Ответ на: комментарий от vada
>>Начальный курс арифметики, первый класс.

«Моя математика», 1 класс, Демидова Т.Е., Козлова С.А., Тонких А.П. и др.
Оглавление учебника «Моя математика», 1 класс, Демидова Т.Е., Козлова С.А., Тонких А.П. и др., изд. «БАЛАСС»
[Карточка ресурса]

Пустые разделы Показать Скрыть
кол-во
ресурсов
Раздел I. Признаки предметов
5
Урок 1. Цвет
1
Урок 2. Форма
1
Урок 3. Размер
1
Уроки 4-6. Признаки предметов
2
Раздел II. Отношения
5
Урок 7. Порядок
1
Урок 8. Отношения равно, не равно
1
Урок 9. Отношения больше, меньше
1
Урок 10. Прямая и кривая линии. Луч
2
Раздел III. Числа от 1 до 10
54
Урок 11. Число один. Цифра 1. Один и много
1
Урок 12. Замкнутые и незамкнутые кривые
1
Урок 14. Знаки "> ", "<", "="
1
Урок 15. Равенства и неравенства
2
Урок 16. Отрезок
1
Урок 17. Число три. Цифра 3
1
Урок 18. Ломаная, Замкнутая ломаная. Треугольник
1
Урок 20. Вычитание
1
Урок 21. Выражение. Значение выражения. Равенство
2
Урок 22. Целое и части
1
Урок 24. Число четыре. Цифра 4
2
Урок 26. Числовой отрезок
1
Урок 27. Угол. Прямой угол
1
Урок 28. Прямоугольник
1
Урок 34. Число шесть. Цифра 6
1
Уроки 35-37. Числа 1-6
2
Урок 38. Число семь. Цифра 7
1
Урок 39. Числа 1-7
1
Урок 40. Слагаемое, сумма
1
Урок 42. Слагаемое, сумма
1
Урок 43. Уменьшаемое, вычитаемое, разность
1
Урок 44. Числа 1-7
1
Урок 45. Число восемь. Цифра 8
1
Урок 47. Число девять. Цифра 9
1
Урок 49. Число ноль Цифра 0
1
Урок 51. Число 10
2
Урок 54. Числа и цифры. Римские цифры
1
Уроки 55-56. Числа 0-10
1
Урок 57. Задача
1
Уроки 58-59. Задачи на нахождение целого или части
1
Урок 60. Обратные задачи
1
Урок 61. Задача на разностное сравнение
1
Урок 62. Решение задач
1
Урок 64. Решение задач
1
Уроки 66-68. Решение задач
3
Уроки 69-70. Уравнения
2
Урок 71. Уравнение. Проверка решения уравнения
2
Урок 72. Уравнение
1
Урок 73. Длина. Сантиметр
1
Урок 74. Величина. Длина
1
Урок 78. Величины. Масса. Килограмм
2
Урок 80. Величины. Объём. Литр
2
Урок 83. Решение задач
1
Раздел IV. Числа от 1 до 20
15
Уроки 84-87. Числа от 10 до 20
5
Уроки 88-91. Табличное сложение
3
Уроки 92-93. Табличное вычитание
3
Уроки 94-96. Табличное сложение и вычитание
2
Уроки 97-100. Сложение и вычитание в пределах 20
2
Повторение
12
deadman ★★
()
Ответ на: комментарий от deadman
Я по другому учебнику учился. Мы сложение/вычитание в пределах 100 проходили.
vada ★★★★★
()
> [Русский язык] Я не знаю, как правильно пишется слово «ломаная»

fixed
Sphinx ★★☆☆
()
> Необходимо определить, описывает ли ту же кривую и ломанная-2, с заданным допуском и коэффициентами сжатия по осям.

Поточнее? пожалуйста. Со сжатием понятно. А что за "допуски"?

unnamed ★
()
Не уверен, что будет корректно работать во всех случаях, но все же...

На первой ломаной выберем натуральный параметр t. Это значит, что нужно найти функции x(t), y(t), z(t), такие что:
1. Точка (x(0), y(0), z(0)) есть начало ломаной.
2. Для некоторого числа T точка (x(T), y(T), z(T)) есть конец ломаной.
3. Множество точек (x(t), y(t), z(t)), получающееся при значениях t от 0 до T совпадает со множеством точек ломаной.
4. Длина отрезка ломаной от точки (x(t1), y(t1), z(t1)) до точки (x(t2), y(t2), z(t2)) равна |t2-t1| для любых значений t1 и t2 от 0 до T.

Аналогично выберем натуральный параметр s для второй ломаной. Соответствующие функции - u(s), v(s), w(s).

Теперь сам алгоритм:
1. Выберем маленькое число eps (вероятно, равное четверти заданной погрешности? -- не могу сходу сообразить).
2. Инициализируем переменные t=0, s=0
3. Оцениваем: расстояние между точками (x(t), y(t), z(t)) и (u(s), v(s), w(s)) больше, чем заданная погрешность? Если больше, то это конец алгоритма: кривые разные.
4. Оцениваем, какое расстояние меньше: между (x(t+eps), y(t+eps), z(t+eps)) и (u(s), v(s), w(s)), или между (x(t), y(t), z(t)) и (u(s+eps), v(s+eps), w(s+eps)).
5. В зависимости от результатов шага 4 увеличиваем на eps или t, или s. При этом требуем, чтобы t не превысило T, а s не превысило S. Если результаты шага 4 конфликтуют с требованием непревышения, то забиваем на них. Если же требование непревышения выполнить невозможно - и t и s вплотную подобрались к своим максимально допустимым значениям, то это конец алгоритма: кривые совпадают.
6. Переходим к шагу 3.

==================================

Жду контр-примеров от ЛОР-овских математиков и аналитиков ;)
Manhunt ★★★★★
()
Ответ на: комментарий от unnamed
>>Поточнее? пожалуйста. Со сжатием понятно. А что за "допуски"?

Тоже жутко интересно. А также возраст и специальность - если позволите. (Это для градуировки моего глазомера ничего личного)

gkrellm
()
Ответ на: комментарий от Manhunt
>>Жду контр-примеров от ЛОР-овских математиков и аналитиков ;)

"Рождение быдлокодера" холст, масло. 2009 г.

И кто после этого будет спорить о нужности матподготовки программистов?

По теме алгоритма - так примерно секретарша макросы пишет в офисе.

gkrellm
()
Ответ на: комментарий от Manhunt
Вопрос с автору топика: считается ли, что ломаные на этой картинке http://img53.imageshack.us/img53/6647/56865203.png , однозвенная красная, и трехзвенная зеленая, описывают одну и ту же кривую?

В некотором смысле - да. Недалеко от каждой красной точки обязательно есть зеления, и наборот: недалеко от каждой зеленой точки обязательно есть красная. Некоторые люди, когда хотят пожирнее обвести кривую, начинают возить вдоль нее ручкой. То есть можно считать, что на рисунке исходная кривая - красная, а зеленая - результат такого "обведения". И в этом смысле рисунок получается контрпримером к моему алгоритму.

В некотором смысле - нет. Касательные векторы к красной и к зеленой ломаным бывают направлены практически в разные стороны. А долны быть в обоих случаях направлены примерно в ту же сторону, что касательный вектор к исходной кривой (если они эту кривую сколько-нибудь адекватно описывают). То же соображения с длинами ломаных и исходной кривой.

Manhunt ★★★★★
()
Ответ на: комментарий от gkrellm
> "Рождение быдлокодера" холст, масло. 2009 г. И кто после этого будет спорить о нужности матподготовки программистов?

Глупенький, движение вдоль звеньев можно потом оптимизировать. Вопрос сейчас в самой идее: можно ли проверить "совпадение" ломаных за O(N1+N2)?

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt
>>Вопрос сейчас в самой идее: можно ли проверить "совпадение" ломаных за O(N1+N2)?

Автор не сформулировал вменяемо ни одной задачи - поэтому решение тривиально и имеет порядок О(1).

>>Глупенький, движение вдоль звеньев можно потом оптимизировать

Это у людей здоровых называется не оптимизировать а вешать костыли на культи гидроцефальному рахитичному недоноску-мутанту.

Изначально неверно вешать заданный интервал близости на шаг счетчика переменных параметризации и делать его вещественным - когда речь идет о ломаной и дискретном наборе.

gkrellm
()
Ответ на: комментарий от gkrellm
> Автор не сформулировал вменяемо ни одной задачи - поэтому решение тривиально и имеет порядок О(1).

Правильная постановка задачи содержит в себе половину решения. А с решениями у автора туго. Вместо глума можно было бы ему помочь, в конце концов раздел форума называется "толксы", а не "лулзы" :D

> Это у людей здоровых называется не оптимизировать а вешать костыли на культи гидроцефальному рахитичному недоноску-мутанту.

Здоровые люди абстрагируются от ненужных деталей, и стараются сосредоточиться на сути проблемы. Бенефиты от линейности можно будет извлечь и потом - а по-большому счету она ничего не меняет.

> Изначально неверно вешать заданный интервал близости на шаг счетчика переменных параметризации и делать его вещественным - когда речь идет о ломаной и дискретном наборе.

Преждеверенная оптимизация - ты за деревьями не увидишь леса. Думай о близости двух произвольных спрямляемых кривых ;)

Manhunt ★★★★★
()
>Задача (кратко) - сравнить две ломанные.

Некорректная формулировка.

>состоящие из N1 и N2 элементов ... описывает некоторую кривую

Таким образом задача - сравнить 2 функции, заданные множествами точек N1 и N2.

Для этого есть куча методов, например:

>описывает некоторую кривую

Меры близости на основе вейвлет коэффициентов для сравнения статистических и расчетных временных рядов http://www.ccas.ru/olenev/bo_2006.html

>определить, описывает ли ту же кривую

Алгоритмы выделения параметрических кривых на основе преобразование Хафа http://cgm.computergraphics.ru/content/view/107

>с заданным допуском и коэффициентами сжатия по осям

Любой корреляционный метод, инвариантный к масштабу.

quickquest ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.