Begin
{R – вспомогательная величина для вычисления поправок, равная отношению поправки выходного сигнала к квадрату суммы параметра и абсолютной величины входного сигнала}
R = Back.OutSignals[1] / Sqr(Parameters[1] + Abs(InSignals[1]);
{Поправка к входному сигналу равна произведению вспомогательной величины на параметр}
Back.InSignals[1] = R * Parameters[1];
{Поправка к параметру равна сумме ранее вычисленной величины поправки и произведения вспомогательной величины на входной сигнал}
Back.Parameters[1] = Back.Parameters[1] + R * InSignals[1]
End {Конец описания обратного функционирования}
End S_Train {Конец описания обучаемого гиперболического
сигмоидного элемента}
{Не обучаемый гиперболический сигмоидный элемент Char – характеристика}
Element S_NotTrain( Char : Real)
InSignals 1 {Один входной сигнал}
OutSignals 1 {Один выходной сигнал}
Forw {Начало описания прямого функционирования}
{Выходной сигнал равен отношению входного сигнала к сумме характеристики и абсолютной величины входного сигнала}
OutSignals[1] = InSignals[1] / (Char + Abs(InSignals[1])
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
{Поправка к входному сигналу равна отношению произведения поправки выходного сигнала на характеристику к квадрату суммы характеристики и абсолютной величины входного сигнала}
Back.InSignals[1] = Back.OutSignals[1] * Char /
Sqr(Char + Abs(InSignals[1]);
End S_NotTrain {Конец описания гиперболического сигмоидного элемента}
Element Pade(Char : Real) {Паде преобразователь Char – характеристика}
InSignals 2 {Два входных сигнала}
{Выходной сигнал равен отношению первого входного сигнала к сумме характеристики и второго входного сигнала}
OutSignals[1] = InSignals[1] / (Char+ InSignals[2])
Var Real R; {R – действительное}
{Вспомогательная величина равна поправке к первому входному сигналу – отношению поправки выходного сигнала к сумме характеристики и второго входного сигнала}
R = Back.OutSignals[1] / (Char + InSignals[2]);
Back.InSignals[1] = R;
{Поправка ко второму входному сигналу равна минус отношению произведения первого входного сигнала на поправку выходного сигнала к квадрату суммы характеристики и второго входного сигнала}
Back.InSignals[2] = -R * OutSignals[1];
End Pade {Конец описания Паде преобразователя}
Element Sign_Mirror {Зеркальный пороговый элемент}
Forw {Начало описания прямого функционирования }
{Выходной сигнал равен 1, если входной сигнал больше нуля, и нулю в противном случае }
If InSignals[1] > 0 Then OutSignals[1] = 1
Else OutSignals[1] = 0
{Поправка к входному сигналу равна выходному сигналу}
Back.InSignals[1] = OutSignals[1];
End Sign_Mirror {Конец описания зеркального порогового элемента}
Element Sign_ Easy {Прозрачный пороговый элемент}
{Поправка к входному сигналу равна поправке к выходному сигналу}
Back.InSignals[1] = Back.OutSignals[1];
End Sign_Easy {Конец описания прозрачного порогового элемента}
Element Adaptiv_Sum( N : Long) {Адаптивный сумматор на N входов}
InSignals N {N входных сигналов}
Parameters N {N параметров – весов связей}
Var {Описание локальных переменных}
Long I; {I – длинное целое – индекс}
Real R; {R – действительное – для накопления суммы}
R = 0; {Выходной сигнал равен скалярному }
For I=1 To N Do {произведению массива входных сигналов}
R = R + InSignals[I] * Parameters[I]; {на массив параметров}
OutSignals[1] = R
Var Long I; {I – длинное целое – индекс}
For I=1 To N Do Begin
{Поправка к I-у входному сигналу равна сумме ранее вычисленной поправки и произведения поправки выходного сигнала на I-й параметр}
Back.InSignals[I] = Back.OutSignals[1] * Parameters[I];
{Поправка к I-у параметру равна произведению поправки выходного сигнала на I-й входной сигнал}
Back. Parameters[I] = Back. Parameters[I] +
Back.OutSignals[1] * InSignals[I]
End
End Adaptiv_Sum {Конец описания адаптивного сумматора}
{Адаптивный неоднородный сумматор на N входов}
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76