Функции для расчета расстояний

В ППП NNT используется 4 функции для расчета расстояний между узлами сетки.

Функция dist вычисляет евклидово расстояние между нейронами, размещенными
в узлах сетки, в соответствии с формулой

, (7.10)

где pos i, pos j – векторы положения нейронов с номерами i и j.

Обратимся к прямоугольной сетке из шести нейронов (см. рис. 7.6) и вычислим соответствующий массив расстояний:

pos = gridtop(2,3);

d = dist(pos)

d =

0 1 1 1.4142 2 2.2361

1 0 1.4142 1 2.2361 2

1 1.4142 0 1 1 1.4142

1.4142 1 1 0 1.4142 1

2 2.2361 1 1.4142 0 1

2.2361 2 1.4142 1 1 0

Этот массив размера 6´6 описывает расстояния между нейронами и содержит на диагонали нули, поскольку они определяют расстояние нейрона до самого себя, а затем, двигаясь вдоль строки, – до второго, третьего и т. д.

На рис. 7.9 показано расположение нейронов в узлах прямоугольной сетки. Введем понятие окрестности для прямоугольной сетки. В этом случае окрестность размера 1, или просто окрестность 1, включает базовый нейрон и его непосредственных соседей; окрестность 2 включает нейроны из окрестности 1 и их соседей.

Рис. 7.9

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

(7.11)

где pos i, pos j – векторы положения нейронов с номерами i и j.

Для вычисления этого расстояния в ППП NNT предназначениа М-функция boxdist. Для конфигурации нейронов, показанной на рис. 7.6, эти расстояния равны:

pos = gridtop(2,3);

d = boxdist(pos)

d =

0 1 1 1 2 2

1 0 1 1 2 2

1 1 0 1 1 1

1 1 1 0 1 1

2 2 1 1 0 1

2 2 1 1 1 0

Расстояние максимального координатного смещения между базовым нейроном 1 и нейронами 2, 3 и 4 равно 1, поскольку они находятся в окрестности 1, а расстояние между базовым нейроном и нейронами 5 и 6 равно 2, и они находятся в окрестности 2. Расстояние максимального координатного смещения от нейронов 3 и 4 до всех других нейронов равно 1.

Определим другое расстояние между нейронами, которое учитывает то количество связей, которое необходимо установить, чтобы задать путь движения от базового нейрона. Если задано S нейронов, положение которых определяется векторами p i, i = 1, …, S,
то расстояние связи между ними определяется соотношением

(7.12)

Если евклидово расстояние между нейронами меньше или равно 1, то расстояние связи принимается равным 1; если между нейронами с номерами i и j имеется единственный промежуточный нейрон с номером k, то расстояние связи равно 2, и т. д.

Для вычисления расстояния связи в ППП NNT предназначена функции linkdist.
Для конфигурации нейронов, показанной на рис. 7.6, эти расстояния равны:

pos = gridtop(2,3);

d = linkdist(pos)

d =

0 1 1 2 2 3

1 0 2 1 3 2

1 2 0 1 1 2

2 1 1 0 2 1

2 3 1 2 0 1

3 2 2 1 1 0

Расстояние связи между базовым нейроном 1 и нейронами 2, 3 равно 1, между базовым нейроном и нейронами 4 и 5 равно 2, между базовым нейроном и нейроном 6 равно 3.

Наконец, определим расстояние максимального координатного смещения по формуле

, (7.13)

где pos i, pos j – векторы расположения нейронов с номерами i и j.

Для вычисления расстояния максимального координатного смещения в ППП NNT предназначена функции mandist. Вновь обратимся к конфигурации нейронов на рис. 7.6:

pos = gridtop(2,3);

d = mandist(pos)

d =

0 1 1 2 2 3

1 0 2 1 3 2

1 2 0 1 1 2

2 1 1 0 2 1

2 3 1 2 0 1

3 2 2 1 1 0

В случае прямоугольной сетки оно совпадает с расстоянием связи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: