- •Среда проектирования алгоритмов татра-2 (версия 2) (руководство разработчика)
- •Аннотация
- •Содержание
- •Глава 1. Анализ процессов проектирования алгоритмов
- •1.1. Актуальность создания системы проектирования алгоритмов
- •1.2. Анализ форм представления алгоритмов
- •1.3. Анализ схемы проектирования алгоритмов
- •1.4. Документы описания алгоритмов
- •2. Состав среды проектирования алгоритмов татра-2
- •1.5. Состав среды проектирования алгоритмов татра-2
- •3. Алгоритм функционирования среды проектирования алгоритмов татра-2
- •Aist.Mnt
- •Srtatr00.Exe
- •Выход в операционную систему
- •Решение задачи
- •Закрытие файлов
- •Алгоритмов татра-2
- •Глава 2. Компоненты среды проектирования алгоритмов татра-2
- •2.1. Диалоговый компонент ввода алгоритмов
- •Подготовка рабочих переменных и полей
- •Алгоритм применения правил и выбора допустимого множества решений
- •Алгоритм оформления решений
- •Оформление решения заданного константами
- •Глава 3. Базы данных и знаний среды проектирования алгоритмов татра-2
- •3.1. База данных «Алгоритмы»
- •3.2. База данных «Текстовая форма алгоритмов»
- •4.2. Язык описания правил выбора решений (язык описания таблицы предикатов)
- •4.3. Язык описания решений задачи
- •5. Дополнительные возможности описания алгоритмов
- •5.1. Оптимизация объема памяти, занимаемой алгоритмом (язык описания таблицы предикатов)
- •5.2. Язык заполнения таблицы признаков
- •5.3. Язык описания правил выбора решений без ссылки на сводный документ описания признакового пространства
- •6. Организация ввода алгоритмов в базу данных
- •6.1. Ввод данных в пакетном режиме
- •Int filtr(long n, long a, short l, short *I, short *j, long *m, int RazM, long *k, int RazK) ,
- •Int predi( long n, long k, long m, int RazM, long r, int RazM) ,
- •Int resch(long n, short f, long a, short l, short I, short j, long m, int RazM) ,
- •7.2. Методика проектирования программы вычисления признаков
- •7.3. Методика проектирования программы оформления решения
- •8. Организация хранения алгоритмов в базе данных
- •7.2. Организация информационных массивов в системе программирования tatra
- •8.1. Структура массива мо
- •8. Состав программного обеспечения
- •4. Организация базы данных системы программирования татра
- •5. Организация базы знаний системы программирования татра
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
