Книга: Учебное пособие по курсу «Нейроинформатика»

Пример описания интерпретатора

Пример описания интерпретатора

В этом разделе приведены два примера описания одного и того же интерпретатора следующего состава: первый сигнал интерпретируется как температура путем умножения на 10 и добавления 273; следующие два сигнала интерпретируются как наличие облачности, используя знаковый интерпретатор; следующие три сигнала интерпретируются как направление ветра, используя двоичный интерпретатор (восемь румбов); последние три сигнала интерпретируются максимальным интерпретатором как сила осадков (без осадков, слабые осадки, сильные осадки). В первом примере приведено описание дубликатов всех стандартных интерпретаторов. Во втором — использованы стандартные интерпретаторы.

Пример 1.

Interpretator Meteorology
{Интерпретатор осуществляющий масштабирование и сдвиг сигнала}
Inter Empty1()    
Static
 Real BName "Масштабный множитель";
 Real C Name "Сдвиг начала отсчета";
Begin
 Answer = Signals[1] * B + C;
 Reliability = 0
End
{Кодирование номером канала. Знаковый интерпретатор}
Inter Binary1 : (N : Long)
Static
 Real E Name "Уровень надежности";
Var
 Long A, B, I;
 Real Dist;
Begin
 Dist = E;
 B = 0; {Число единиц}
 A = 0; {Номер единицы}
 For I = 1 To NDo Begin
  If Abs(Signals[I]) < Dist Then Dist =Abs(Signals[I]);
  If Signals[I] > 0 Then Begin A = I; B = B + 1; End;
 End;
 If B <> 1 Then Answer = 0 Else Answer = A
 Reliability = Abs(Dist / E)
End
{Кодирование номером канала. Максимальный интерпретатор.}
Inter Major1 : (N : Long)
Static
 Real E Name "Уровень надежности";
Var
 Real A, B;
 Long I, J;
Begin
 A = -1.E+30; {Максимальный сигнал}
 B = -1.E+30; {Второй по величине сигнал}
 J = 0; {Номер максимального сигнала}
 For I = 1 ToNDo Begin
  If Signals[I] > A Then Begin B = A; A = Signals[I]; J=I; End
  Else If Signals[I] > B Then B = Signals[I];
 End;
 Answer = J;
 If A – B > E Then Reliability = 1 Else Reliability = (A – B) / E;
End
Inter BynaryCoded1 : (N : Long)
Static
 Real E Name "Уровень надежности";
Var
 Long A, I;
 Real Dist;
Begin
 Dist = E;
 A = 0; {Ответ}
 For I = 1 To NDo Begin
  If Abs(Signals[I]) < Dist Then Dist =Abs(Signals[I]);
  A = A * 2;
  If Signals[I] > 0 Then A = A + 1;
 End;
 Answer = A;
 Reliability = Abs(Dist / E)
End
Contents Temp : Empty1, Cloud : Binary1(2), Wind : BynaryCoded1(3), Rain : Major1(3);
Temp SetParameters 10, 273;
Cloud SetParameters 0.1;
Wind SetParameters 0.2;
Rain SetParameters 0.15
Signals NumberOf(Signals,Temp) +NumberOf(Signals, Cloud) +
1 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 Interpretator

Пример 2.

Interpretator Meteorology
Contents Temp : Empty, Cloud : Binary(2), Wind : BynaryCoded(3), Rain : Major(3);
Temp SetParameters 10, 273;
Cloud SetParameters 0.1;
Wind SetParameters 0.2;
Rain SetParameters 0.15
End Interpretator

Оглавление книги


Генерация: 1.352. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз