KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Е. Миркес - Учебное пособие по курсу «Нейроинформатика»

Е. Миркес - Учебное пособие по курсу «Нейроинформатика»

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Е. Миркес, "Учебное пособие по курсу «Нейроинформатика»" бесплатно, без регистрации.
Перейти на страницу:

Prep BinaryPrep1() {Предобработка бинарного признака}

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";

 Real Unknown Name"Значение сигнала, если значение входного признака не определено";

 Logic Type Name "Тип предобработки бинарного признака";

Begin

 If TLong(Data[1]) = UnknownLong Then Signals[1] = Unknown

 Else Begin

  If Type Then Begin

   If TLong(Data[1]) = 1 Then Signals[1] = 0 Else Begin

    If MaxSignals =0 Then Signals[1] = MinSignals

    Else Signals[1] = MaxSignals

   End

   Else Begin

    If TLong(Data[1]) = 1 Then Signals[1] = MinSignals

    Else Signals[1] = MaxSignals

   End

  End

 End

{Предобработка упорядоченного качественного признака}

Prep UnOrdered1(Num : Long)

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";

 Real Unknown Name"Значение сигнала, если значение входного признака не определено";

Var

 Integer I;

Begin

 If TLong(Data[1]) = UnknownLong Then Begin

  For I = 1 To Num Do

   Signals[I] = Unknown

 End Else Begin

  For I = 1 To Num Do

   Signals[I] = MinSignals

  Signals[TLong(Data[1])] = MaxSignals

 End

End

Prep Ordered1(Num : Long) {Предобработка упорядоченного качественного признака}

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";

 Real Unknown Name"Значение сигнала, если значение входного признака не определено";

Var

 Integer I;

Begin

 If TLong(Data[1]) = UnknownLong Then Begin

  For I = 1 To Num Do

   Signals[I] = Unknown

 End Else Begin

  For I = 1 To TLong(Data[1]) Do

   Signals[I] = MaxSignals

  For I = TLong(Data[1])+1 To Num Do

   Signals[I] = MinSignals

 End

End

Prep EmptyPrep1() {Предобработчик, осуществляющий масштабирование и сдвиг сигнала}

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";

 Real Unknown Name"Значение сигнала, если значение входного признака не определено";

 Real MinData Name"Значения нижней границы интервала изменения входных данных";

 Real MaxData Name"Значения верхней границы интервала изменения входных данных";

Begin

 If Data[1] = UnknownReal Then Signals[1] = Unknown

 Else Signals[1] = (Data[1] – MinData) * (MaxSignals – MinSignals) / (MaxData – MinData) + MinSignals

End

Prep ModPrep1(Num : Long) {Модулярный предобработчик}

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";

 Real Unknown Name "Значение сигнала, если значение входного признака не определено";

 RealArray[Num] Y Name "Массив величин, используемых для предобработки"

Var

 Integer I;

Begin

 If Data[1] = UnknownReal Then Begin

  For I = 1 To Num Do

   Signals[I] = Unknown

 End Else Begin

  For I = 1 To Num Do

   Signals[I] = (Data[1] RMod Y[I] + Y[I]) * (MaxSignals – MinSignals) / (2 * Y[I]) + MinSignals

 End

Prep FuncPrep1(Num : Long; F : FuncType) {Функциональный предобработчик}

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов";

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов";

 Real Unknown Name "Значение сигнала, если значение входного " +

  "признака не определено";

 Real MinData Name "Значения нижней границы интервала изменения значений функции F ";

 Real MaxData Name "Значения верхней границы интервала изменения значений функции F";

 RealArray[Num] Y Name "Массив величин, используемых для предобработки"

Var

 Integer I;

Begin

 If Data[1] = UnknownReal Then Begin

  For I = 1 To Num Do

   Signals[I] = Unknown

 End Else Begin

  For I = 1 To Num Do

   Signals[1] = (F(Data[1] – Y[1] – MinData) * (MaxSignals – MinSignals) / (MaxData – MinData) + MinSignals

 End

Prep PositPrep1(Num : Long) {Позиционный предобработчик}

Static

 Real MinSignals Name "Нижняя граница интервала приемлемых сигналов"

 Real MaxSignals Name "Верхняя граница интервала приемлемых сигналов"

 Real Unknown Name"Значение сигнала, если значение входного признака не определено";

 Real Y Name "Основание системы счисления"

Var

 Integer I;

 Real W, Q;

Begin

 If Data[1] = UnknownReal Then Begin

  For I = 1 To Num Do

   Signals[I] = Unknown

 End Else Begin

  W = Data[1];

  For I = 1 To Num Do Begin

   Q = W RMod Y;

   Signals[I] = Q * (MaxSignals – MinSignals) / Y + MinSignals;

   W = (W - Q) / Y

  End;

 End

Contents Temp : EmptyPrep1, Cloud : BinaryPrep1, Wind : UnOrdered1(8), Rain : Ordered1(3);

{Для всех предобработчиков приемлемые значения входных сигналов лежат в интервале от -1 до 1. В случае неопределенного значения во входных данных все сигналы данного предобработчика полагаются равными нулю. Входные данные первого предобработчика меняются от 273 до 293}

Temp SetParameters -1, 1, 1E-40, 273, 293;

CloudSetParameters -1, 1, 0, True;

Wind SetParameters -1, 1, 0;

RainSetParameters -1, 1, 0

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

Data NumberOf(Data,Temp) + NumberOf(Data, Cloud) + NumberOf(Data,Wind(8)) + NumberOf(Data, Rain(3))

Connections

 Temp.Data <=> Data[1];

 Cloud.Data <=> Data[2];

 Wind.Data <=> Data[3];

 Rain.Data <=> Data[4];

 Temp.Signals <=> Signals[1];

 Cloud.Signals <=> Signals[2];

 Wind.Signals[1..8] <=> Signals[3..10];

 Rain.Signals[1..3] <=> Signals[11..13]

End Preparator

Пример 2.

Preparator Meteorology

Contents Temp : EmptyPrep, Cloud : BinaryPrep, Wind : UnOrdered(8), Rain : Ordered(3);

Temp SetParameters -1, 1, 1E-40, 273, 293

End Preparator

Стандарт второго уровня компонента предобработчик

Запросы к компоненту предобработчик можно разбить на пять групп:

1. Предобработка.

2. Изменение параметров.

3. Работа со структурой.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*