Scientific journal
Advances in current natural sciences
ISSN 1681-7494
"Перечень" ВАК
ИФ РИНЦ = 0,775

В настоящее время для решения многих актуальных задач требуется использование методы поиска случайных возмущений на неком числовом поле. Если законы числового поля заданы, то задача имеет простое решение, и решается за линейное время. Для большинства таких задач быстродействия известных методов вполне достаточно. Если же законы поля неизвестны, или известны лишь частично, то задача многократно усложняется. Для некоторых случаев, ограниченных жёсткими условиями могут быть использованы модификации известных методов.

В качестве решения, например, может быть применён, например, метод нейросетевого анализа. При этом, важно правильно выбрать архитектуру и построить "обучение" сети. Данный метод является одним из приоритетных при условии, что n - достаточно велико. Тогда обучение сети можно осуществить автоматизированным методом и точность определения будет достаточно высока. Однако, при небольшом количестве рядов точность определения будет недостаточной, количество ложных срабатываний будет в разы больше чем верных.

Другим подходом к решению поставленной задачи может быть метод варьирования (полного перебора) и выявления влияния друг на друга при помощи методов приближённых вычислений. Однако все эти методы требуют достаточного большого количества операций, и при большом количестве вариантов время поиска будет велико. Причём будет расти не линейно, и не даже квадратично. Например, при количестве параметров m, количество проверяемых вариантов при глубине поиска в две переменных - m2+2*m4. При этом если параметр является переменной от 3 других параметров, то зависимость не будет найдена. Следовательно, метод варьирования будет эффективен только для рядов с небольшим количеством параметров.

Становится ясно, что способ нейросетевого анализа имеет жёсткие ограничения на количество рядов, а метод варьирования имеет жесткие ограничения на длину ряда. Необходим метод, который допустимо хорошо работал бы с любыми входными данными в рамках заданных ограничений. При этом время работы алгоритма должно быть линейным или сравнимо с линейным.

Рассмотрим задачу поиска искажений входные данные на примере матрицы чисел m*n, где m - количество параметров, а n - количество однородных (однотипных) рядов. К данным таблицы предъявляется два условия - первое состоит в том, что некоторые величины построчно коррелируют друг с другом или являются функцией других параметров, второе - что большинство чисел (более 95 % например) - корректные. Требуется отыскать точки (элементы) матрицы, в которых имеют место нелогичные возмущения. При этом правила зависимости (функции) одних параметров от других существуют, но неизвестны. Возможно решение одной из двух задач.

Первая задача, более простая, - отыскание точек случайных возмущений в матрице без выявления зависимостей параметров друг от друга. Вторая задача, комплексная, - нахождение зависимостей параметров друг от друга и отыскание точек случайных возмущений в матрице.

Предлагается использовать модифицированный метод варьирования. Его суть состоит в следующем - рассматриваем каждый столбец как параметр некой функции. Рекурсивно разбиваем все параметры по интервалам, и для каждого интервала формируем результирующий параметр. Причём результирующий параметр не может быть аргументом функции. Идём при помощи объединений от простейшей функции - функции одного аргумента. Если выявлено влияние одного параметра на другой, то исключаем один из них из дальнейшего просмотра, уменьшая количество параметров для дальнейшего просмотра. Найденные зависимости помещаем в стек, чтобы впоследствии начать рассмотрение с зависимостей с максимальным числом параметров.

Для определения зависимости параметров от результата используется следующий метод - представим данные каждого ряда как точку функции. Для матрицы рассматривается двухмерный вид - точка на плоскости. Тогда точки, которые выбиваются из графика функции и являются точками возмущения. Рассмотрим простейший пример:

Входные данные:

 

a

b

c

1

1

5

5

2

2

10

8

3

7

35

5

4

3

15

8

5

6

30

5

6

9

45

11

7

5

25

8

8

4

15

9

9

11

55

3


График 1. Линейная зависимость a от b

Необходимо выявить и исправить ошибку в переменной b в восьмом ряду. Построим линейную зависимость a от b.

Из графика 1 чётко видно возмущение в точке №8.

Для линейной зависимости поиск зависимостей не составляет сложности. Для нелинейных случаев необходимо уже применение методов отыскания новой точки функции по уже известным. Для этого добавляем информацию обо всех точках в информационную таблицу приближённой функции b= (a). Информация об ошибочных точках также попадает, но она не вносит сильного искажения, так как количество таких точек невелико, и вес каждой из них будет невелик. Далее производим поиск для каждой точки, при помощи, например, сплайн функций, далее вычисляем:

, и получаем приближённое значение для каждой точки b. Далее вычисляем коэффициент расхождения k:

Далее, для каждой точки рассчитываем

Если , то с достоверностью  можно утверждать, что точка ошибочная.

Проведя анализ для всех точек всех рядов, получаем искомые точки за линейное время.

Работа представлена на научную конференцию с международным участием «Секция молодых ученых, студентов и специалистов», Тунис, 12-19 июня 2005 г. Поступила в редакцию 28.04.2005 г.