- •Среда проектирования алгоритмов татра-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. Организация базы знаний системы программирования татра
Алгоритм применения правил и выбора допустимого множества решений
Входные данные:
ИмяАлг – поле с именем алгоритма, по которому выбирается множество решений;
КортПр – массив, содержащий описание объекта, относительно которого принимается множество решений, в виде кортежа двоичных признаков;
Буффер – поле памяти, которое отводится под хранение имени алгоритма и самого алгоритма, по которому выбирается множество решений. Имя алгоритма хранится в первых восьми байтах, далее размещается алгоритм;
РазБуф – размер поля памяти, которое отводится под хранение алгоритма, плюс 8 байт, которые отводятся для хранения имени алгоритма.
Выходные данные:
МнРеш – поле памяти, которое отводится под хранение допустимого множества решений. Первые слово в поле отводится под хранение количества выбранных решений, затем записываются номера выбранных решений;
РазРеш – размер поля памяти, которое отводится под хранение допустимого множества решений.
Замечание: Для понимания работы алгоритма необходимо использовать описание структуры записей, хранящих данных о правилах выбора решений. Следует обратить внимание на то, что все вспомогательные данные (номера решений, признаки конца предложений, системы предложений, конец алгоритма) имеют отрицательный знак. Предложения, которые хранят правила выбора решений, в знаковом разряде имеют нуль.
В алгоритме используются следующие обозначения:
НР - номер решения;
КП - признак конца предложения;
КС - признак конца системы предложений;
КА - признак конца алгоритма (таблицы).
Начало
Проверка наличия в памяти алгоритма и считывание его из базы знаний
Отчистка имени алгоритма, заданного в поле ИмяАлг, от постоянных символов. Посторонние символы заменяются пробелами
да
В поле Буффер есть алгоритма с заданным именем?
нет
Занесение в поле ключей имени алгоритма из поля ИмяАлг и считывание алгоритма из базы знаний ТАТРА. Поле ключей содержит 25 символов. Структура поля:
ТАТРАппп“имя алгоритма – 8сим”PREDIппп
п – пробел
нет
Алгоритм считан?
да
Аварийное завершение работы: “Алгоритм “имя алгоритма” не считан из базы знаний”
Занесение в поле Буффер имени алгоритма
Номер слова в поле Буффер должно соответствовать последнему слову, отводимому под имя алгоритма
А
Конец
А
Проверка правила
Взять следующее слово в поле Буффер
нет
В поле Буффер номер решения?
НР – это отрицательное число.
да
Аварийное завершение работы: “Сбой предиката алгоритма “имя алгоритма””
Д
Запомнить номер решения
Сравнить каждое слово предложение алгоритма (поле Буффер - a) с соответствующим словом КортПр - b по правилу: (а&b)b
да
Результат равен нулю (т.е. решение выбирается)?
нет
Нарастить счетчик выбранных решений в поле МнРеш
B
C
Конец
B
Поиск нового решения
Взять следующее слово в поле Буффер
да
В поле Буффер конец алгоритма (т.е. = КА)?
нет
да
В поле Буффер конец решения (т.е. = КС)?
нет
да
В поле Буффер конец предложения (т.е. = КП)?
нет
Аварийное завершение работы: “Сбой предиката алгоритма “имя алгоритма””
Пропустить все положительные слова поля Буффер
B
А
Конец
С
Поиск нового предложения или решения
Взять следующее слово в поле Буффер
да
В поле Буффер конец алгоритма (т.е. = КА)?
нет
да
В поле Буффер конец решения (т.е. = КС)?
нет
да
В поле Буффер конец предложения (т.е. = КП)?
нет
С
Д
А
Конец
