Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tatra_v2.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
216 Кб
Скачать
☆

5. Организация базы знаний системы программирования татра

В системе программирования

База знаний имеет двухуровневую организацию:

  • первый уровень – каталог имен алгоритмов;

  • второй уровень – алгоритмы.

Записи в каталоге имеют одинаковый состав и размер. В запись включаются:

  • имя алгоритма (символьный тип размером в 8 символов);

  • адрес фильтра, который хранится на втором уровне (4 байта);

  • адрес таблицы предикатов, который хранится на втором уровне (4 байта);

  • адрес решения, который хранится на втором уровне (4 байта).

Внешняя форма записи правил

A=proba1;*

(E=1;A=14;B=22;*

E=0.1;A=5.;B=6.;*

E=1.;A=0.;B=5.;*

E=0.001;A=0.002;B=0.007;*)

1;[15,21]<=5.7;>=3.; *

<20;#(5.1,5.6]=2.,4.;>0.004;**

2;#[18,20)#5.5,5.7,5.9;[4.,5.]0.003,0.005;**

3;15,17,19,21;(5.1,5.7)<=3.;>=0.004;*

#15,17,19,21;#(5.1,5.7)''*

5.5;(3.,5.]'**

4;14,16;[5.2,5.4]#4.;>0.005;**/

Промежуточная форма записи правил

(после трансляции правил)

разбиение

0 – не знаю, что это. Очевидно, все действия велись с элемента 1, т.е. так как это выполняется в ФОРТРАНЕ, а печать была выполнена всего массива целиком, а это с нулевого элемента.

1 14 22 – разбиение первого признака

10 500 600 – разбиение второго признака

100 0 500 – разбиение третьего признака

1 2 7 – разбиение четвертого признака

-16777215 - конец разбиений

первое правило

-1 - номер решения

-1 - признак интервала,

мин знач интер = 15, мак знач интер = 21

-1 - признак интервала (граница <= преобразуется в интервал),

мин знач интер = 500, мак знач интер = 570

-1 - признак интервала (граница >= преобразуется в интервал),

мин знач интер = 300, мак знач интер = 500

-1 - признак интервала (безразличн преобразуется в интервал),

мин знач интер = 2, мак знач интер = 7

-65535 – признак конца подправила

-1 - признак интервала (граница < преобразуется в интервал),

мин знач интер = 14, мак знач интер = 19

-3 - признак отрицания интервала,

мин знач интер = 520, мак знач интер = 560

-2 - признак перечисления,

первое знач = 200, втор знач = 400

-1 - признак интервала (граница > преобразуется в интервал),

мин знач интер = 5, мак знач интер = 7

второе правило

наличие двух подряд отрицательных чисел – это новое правило

-2 - номер решения

-3 - признак отрицания интервала,

мин знач интер = 18, мак знач интер = 19

-4 - признак отрицания перечисления,

первое знач = 550, втор знач = 570, трет знач = 590

-1 - признак интервала,

мин знач интер = 400, мак знач интер = 500

-2 - признак перечисления,

первое знач = 3, втор знач = 5

третье правило

-3 - номер решения

-2 - признак перечисления,

первое знач = 15, втор знач = 17, трет знач = 19, чет знач = 21

-1 - признак интервала,

мин знач интер = 520, мак знач интер = 560

-1 - признак интервала (граница <= преобразуется в интервал),

мин знач интер = 0, мак знач интер = 300

-1 - признак интервала (граница >= преобразуется в интервал),

мин знач интер = 4, мак знач интер = 7

-65535 – признак конца подправила

-4 - признак отрицания перечисления,

первое знач = 15, втор знач = 17, трет знач = 19, чет знач = 21

-3 - признак отрицания интервала,

мин знач интер = 520, мак знач интер = 560

-1 - признак интервала (апостраф преобразуется в интервал),

мин знач интер = 0, мак знач интер = 300

-1 - признак интервала (апостраф преобразуется в интервал),

мин знач интер = 4, мак знач интер = 7

-65535 – признак конца подправила

-1 - признак интервала (пробел преобразуется в интервал),

мин знач интер = 14, мак знач интер = 22

-2 - признак перечисления,

первое знач = 550

-1 - признак интервала,

мин знач интер = 400, мак знач интер = 500

-1 - признак интервала (апостраф преобразуется в интервал),

мин знач интер = 4, мак знач интер = 7

третье правило

-4 - номер решения

-2 - признак перечисления,

первое знач = 14, втор знач = 16

-1 - признак интервала,

мин знач интер = 520, мак знач интер = 540

-4 - признак отрицания перечисления,

первое знач = 400

-1 - признак интервала (граница > преобразуется в интервал),

мин знач интер = 6, мак знач интер = 7

-2147483647 – признак конца правила

Внутренняя форма записи правил

(после конвертации правил)

Первое решение – 2 подправила

FFFFFFFF 3FBFC0FF 40000000 FFFF0001 7E307943 40000000 FF000001

Второе решение – 1 подправило

FFFFFFFE 79FEA86A 00000000 FF000001

Третье решение – 3 подправила

FFFFFFFD 2A8F8787 40000000 FFFF0001 55707F87 40000000 FFFF0001 7FC10067 40000000 FF000001

Четвертое решение – 1 подправило

FFFFFFFC 500E07A1 40000000 80000001

Вывод

Промежуточный язык имеет следующую структуру:

<структура промежуточного языка> ::= <описание признаков> <разделитель данных> <описание алгоритма>

<описание признаков> ::= <описание одного признака> | <описание одного признака> <описание разбиений и интервалов по признакам>

<описание одного признака> ::= <разбиение признака> <минимальное значение признака для данного алгоритма> <максимальное значение признака для данного алгоритма>

<разделитель данных> ::= -16777215

<описание алгоритма> ::= <описание правил выбора множества решений> <признак конца описания правил выбора решений>

<описание правил выбора множества решений> ::= <описание правила выбора одного решения> | <описание правила выбора одного решения> <описание правил выбора решений>

<признак конца описания правил выбора решений> ::= -2147483647

<описание правила выбора одного решения> ::= <номер решения> <правила>

<правила> ::= <правило> | <правило> <разделитель правил> <правила>

<правило> ::= <условие по одному признаку> | < условие по одному признаку> <правило>

<разделитель правил> ::= -65535

<условие по одному признаку> ::= <признак интервала> <минимальное значение интервала> <максимальное значение интервала> | <признак перечисления значений признака> <значения признака> | <признак отрицания интервала><минимальное значение интервала> <максимальное значение интервала> | <признак отрицания перечисления значений признака> <значения признака>

<признак интервала> ::= -1

<признак перечисления значений признака> ::= -2

<признак отрицания интервала> ::= -3

<признак отрицания перечисления значений признака> ::= -4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]