Поиск похожести массива в огромном массиве.

Kast2K
Дата: 13.08.2019 16:49:13
Добрый день!
Требуется совет или ссылки по следующему вопросу.

Есть постоянно пополняемая (+40К записей за 5 минут) база данных.
На основании этих данных строятся графики примерно такого вида.
Необходимо найти идельную вырезку из графика (сделается вручную), а дальше опрашивать БД раз в минуту и пытаться найти вхождение идеала +-5-7% в выгруженном массиве. При сильном несовпадении вывести сообщение для администратора.

Мне видятся следующие возможные варианты:
1. Тупой и очень не идеальный. Идём последовательно по точкам, находим приблизительное первое вхождение и дальше пытаемся произвести сравнение. В случае сильного несовпадения точек отмечаем график как проблемный. Но, как мне кажется, вероятность ошибки в данном случае будет очень велика в связи с непостоянностью работы оборудования и прочих факторов

2. Преобразовать идельный массив в график, далее после получения набора последних данных преобразовать его в график и произвести сравнение на ближайшее возможное совпадение (через OpenCV например).

Может быть есть уже какие-то похожие алгоритмы?
Kast2K
Дата: 13.08.2019 16:59:19
Во избежание вопросов про размеры данных, то выгрузка производится 1 раз в 5 минут, т.е. за раз получаем около 40К данных, а не за последние сутки несколько миллионов :)
_Vasilisk_
Дата: 13.08.2019 17:28:47
Если есть сырые данные, то зачем сравнивать картинки?
Kast2K
Дата: 13.08.2019 17:41:19
_Vasilisk_,

Это пока всего лишь идея как можно осуществить желаемое с большей точностью
Соколинский Борис
Дата: 13.08.2019 17:47:02
Kast2K
Может быть есть уже какие-то похожие алгоритмы?
Задача давно известная и алгоритмов должно быть дофига.
Гугли "разладка временных рядов".
Kast2K
Дата: 14.08.2019 07:30:36
Соколинский Борис,

Спасибо! То что требуется!