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

    If Direv Then Back[I] = 2 * Weight * (Signals[I]-С);

   End;

  End Else Begin

   If Signals[I] > -C Then Begin

    B = B + Sqr(Signals[I] + C);

    If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);

   End

  End;

 Estim = Weight*B

End

{Кодирование номером канала. Оценка для максимального интерпретатора.}

Est Major1(N : Long)

Static

 Real E Name "Уровень надежности";

Var

 Real A, B;

 Long I, J, K, Ans;

 RealArray[N+1] Al,Ind;

Begin

 Ans = Answer;

 Ind[1] = Ans;

 Al[1] = Signals[Ans] – E *Reliability;

 Ind[N+1] = 0;

 Al[N+1] = -1.e40;

 K:=1;

 For I = 1 To N Do

  If I <> Ans Then Begin

   Al[K] = Signals[I];

   Ind[K] = I;

   K = K + 1;

  End; {Подготовлен массив сигналов}

 For I = 2 To N-1 Do Begin

  A = Al[I];

  K = I;

  For J = I+1 To N Do

   If Al[J] > A Then Begin

    K = J;

    A = Al[J];

   End; {Найден следующий по величине}

  Al[K] = Al[I];

  Al[I] = A;

  J = Ind[K];

  Ind[K] = Ind[I];

  Ind[I] = J;

 End; {Массивы отсортированы}

 A = Al[1]; {Сумма первых I членов}

 I = 1;

 While (A / I <= Al[I+1]) Do Begin

  A = A + Al[I];

  I = I + 1;

 End; {В конце цикла I-1 равно числу корректируемых сигналов}

 B = A / I; {B – величина, к которой должны стремиться}

 A = 0; {корректируемые сигналы}

 For J = 1 To I Do Begin

  A = A + Sqr(Al[J] – B);

  If Direv Then Back[Ind[J]] = -2* Weight * (Al[J] – B);

 End;

 Estim = Weight * A

End;

Est BynaryCoded1: (N : Long) {Оценка для кодирования номером канала}

Static

 Real E Name "Уровень надежности";

Var

 Long I, J, A, K;

 Real B, C;

Begin

 A = Answer;

 B = 0;

 C = E * Reliability; {Допуск определяем произведением}

 For I = N To 1 By -1 Do Begin

  J = A / 2;

  K = A – 2 * J;

  A = J;

  If A = 1 Then Begin

   If Signals[I] < C Then Begin

    B = B + Sqr(Signals[I] – C);

    If Direv Then Back[I] = 2 * Weight * (Signals[I]-C);

   End;

  End Else Begin

   If Signals[I] > -C Then Begin

    B = B + Sqr(Signals[I] + C);

    If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);

   End;

  End;

  Estim = Weight*B

 End

Contents Temp : Empty1, Cloud : Binary1(2), Wind : BynaryCoded1(3), Rain : Major1(3);

Cloud Link Meteorology.Cloud {Связываем оценки с интерпретаторами}

Wind Link Meteorology.Wind

Rain Link Meteorology.Rain

Temp SetParameters 10, 273; {Устанавливаем значения параметров оценок}

Cloud SetParameters 0.1; {и интерпретаторов}

Wind SetParameters 0.2;

Rain SetParameters 0.15

Weights 1, 1, 1, 1

Signals NumberOf(Signals,Temp) +NumberOf(Signals, Cloud) + NumberOf(Signals, Wind) + NumberOf(Signals, Rain)

Connections

 Temp.Signals <=> Signals[1];

 Cloud.Signals[1..2] <=> Signals[2; 3];

 Wind.Signals[1..3] <=> Signals[4..6];

 Rain.Signals[1..3] <=> Signals[7..9]

 Temp.Answer <=> Answer[1];

 Cloud.Answer[1..2] <=> Answer[2];

 Wind.Answer[1..3] <=> Answer[3];

 Rain.Answer[1..3] <=> Answer[4]

End Estimation

Пример 2.

Estimation Meteorology

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

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