Читаем Учебное пособие по курсу «Нейроинформатика» полностью

Element Sum(N Long) {Простой сумматор на N входов}

 InSignals N {N входных сигналов}

 OutSignals 1 {Один выходной сигнал}

 Forw {Начало описания прямого функционирования}

 Var {Описание локальных переменных}

  Long I; {I – длинное целое – индекс}

  Real R; {R – действительное – для накопления суммы}

 Begin

  R = 0;

  For I=1 To N Do {Выходной сигнал равен сумме входных}

   R = R + InSignals[I];

  OutSignals[1] = R

 End {Конец описания прямого функционирования}

 Back {Начало описания обратного функционирования}

 Var Long I; {I – длинное целое – индекс}

 Begin

  For I=1 To N Do {Поправка к каждому входному сигналу равна}

   Back.InSignals[I] = Back.OutSignals[1] {поправке выходного сигнала}

 End {Конец описания обратного функционирования}

End Sum {Конец описания простого сумматора}

Element Mul {Умножитель}

 InSignals 2 {Два входных сигнала}

 OutSignals 1 {Один выходной сигнал}

 Forw {Начало описания прямого функционирования}

 Begin

  OutSignals[1] =InSignals[1] * InSignals[2] {Выходной сигнал равен произведению входных сигналов}

 End {Конец описания прямого функционирования}

 Back {Начало описания обратного функционирования}

 Begin

  {Поправка к каждому входному сигналу равна произведению поправки выходного сигнала на другой входной сигнал}

  Back.InSignals[1] = Back.OutSignals[1] * InSignals[2];

  Back.InSignals[2] = Back.OutSignals[1] * InSignals[1]

 End {Конец описания обратного функционирования}

End Mul {Конец описания умножителя}

Element S_Train {Обучаемый гиперболический сигмоидный элемент}

 InSignals 1 {Один входной сигнал}

 OutSignals 1 {Один выходной сигнал}

 Parameters 1 {Один параметр – характеристика}

 Forw {Начало описания прямого функционирования}

 Begin

  {Выходной сигнал равен отношению входного сигнала к сумме параметра и абсолютной величины входного сигнала}

  OutSignals[1] =InSignals[1] / (Parameters[1] +Abs(InSignals[1])

 End {Конец описания прямого функционирования}

 Back {Начало описания обратного функционирования}

 Var Real R; {R – действительное}

 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 {Конец описания обратного функционирования}

Перейти на страницу:

Похожие книги