50269 (572528), страница 2
Текст из файла (страница 2)
В случае простой переменной выполняется ее поиск в списке свободных переменных, после чего она заменяется соответствующим фрагментом выражения. Если обрабатываемый элемент является тройкой (операция и два операнда), то данная операция замены (zamena) свободных переменных выполняется для каждого из операндов тройки.
-
5. Операции класса podst
-
-
5.1 Операция проверки применимости (primenima)
-
Действия данной операции определяются схемой на рисунке 8 и складываются из следующего. Вначале выполняется проверка соответствия типов левой части продукции и унифицируемого выражения. При несовпадении выполняется выход с возвратом значения false. При совпадении типов дальнейшие действия определяются типом левой части продукции.
Если левая часть – константа, то выполняется сравнение значений констант из левой части продукции и заданного выражения. Результат сравнения возвращается как результат выполнения операции.
Если левая часть продукции – переменная, то формируется элемент списка свободных переменных и помещается в список. Для задания элементов списка свободных переменных используется класс sv_perem, атрибутами которых являются:
nm_sv – имя свободной переменной;
fragment - фрагмент выражения, соответствующий переменной (тип Lisp_item).
Если левая часть – тройка, то выполняется выделение выражений тройки из левой части продукции и унифицируемого выражения, после чего вызывается операция класса trojka для проверки применимости тройки из продукции к тройке из выражения (primenima).
Рисунок 5 -Схема алгоритма операции Lisp_item.unifikacia
Рисунок 6 - Схема алгоритма операции Lisp_item.Primen_prod
Рисунок 7 - Схема алгоритма операции Lisp_item.zamena
Рисунок 8 - Схема алгоритма операции podst.primenima
-
6. Операции класса trojka
-
-
6.1 Операция проверки применимости (primenima)
-
Действия данной операции определяются схемой на рисунке 9 и складываются из следующего. Тройка из продукции будет считаться удачно примененной к тройке из унифицируемого выражения, если, во-первых, совпадают операции троек; во-вторых, правила применимости выполняются для первых и вторых операндов троек.
При совпадении операций троек, анализируется тип первого операнда.
В случае константы выполняется сравнение значений констант, стоящих на месте первого операнда в сравниваемых тройках. При несовпадении – выполняется выход.
Если первый операнд переменная, то ей сопоставляется первый операнд из тройки унифицируемого выражения и заносится в список свободных переменных.
Если первый операнд тройка, то для этого объекта вызывается описываемая операция primenima. При неудачном завершении этой операции выполняется выход из операции со значением false.
Поскольку в тройке может отсутствовать второй операнд (например, функции с одним аргументом, или одноместные операции типа (not x)), то если это подтверждается, то работа операции завершается со значением true. Если же второй операнд присутствует, то прежде всего проверяется возможное условие совпадения первого и второго операндов.
Если же в тройке из продукции операнды различны, то выполняется обработка второго операнда. Алгоритм обработки аналогичен алгоритму обработки первого операнда.
Рисунок 9, лист 1- Схема алгоритма операции trojka.primenima
Рисунок 9, лист 2.
-
-
Выводы
Таким образом, процесс унификации выражения складывается из трех последовательно выполняемых этапов:
преобразование выражения в инфиксной форме в выражение в префиксной форме унификация выражения в префиксной форме преобразование результата унификации из префиксной формы в инфиксную форму.
Что касается последнего преобразования, то оно реализуется в виде несложной рекурсивной процедуры.
Литература
1. Уоссермен Ф., Нейрокомпьютерная техника, - М.,Мир, 1992.
2. Горбань А.Н. Обучение нейронных сетей. - М.: ПараГраф, 1990
3. Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. - Новосибирск: Наука, 1996
4. Gilev S.E., Gorban A.N., Mirkes E.M. Several methods for accelerating the training process of neural networks in pattern recognition // Adv. Modelling & Analysis, A. AMSE Press. – 1992. – Vol.12, N4. – P.29-53
5. С. Короткий. Нейронные сети: алгоритм обратного распространения.
6. С. Короткий, Нейронные сети: обучение без учителя. Artificial Neural Networks: Concepts and Theory, IEEE Computer Society Press, 1992.
7. Заенцев И. В. Нейронные сети: основные модели./Учебное пособие к курсу "Нейронные сети" для студентов 5 курса магистратуры к. электроники физического ф-та Воронежского Государственного университета – e-mail: ivz@ivz.vrn.ru
8. Лорьер Ж.Л. Системы искусственного интеллекта. – М.: Мир, 1991. – 568 с.
9. Искусственный интеллект. – В 3-х кн. Кн. 2. Модели и методы: Справочник/ Под ред. Поспелова Д. А. – М.: Радио и связь, 1990. – 304 с.
10. Бек Л. Введение в системное программирование.- М.: Мир, 1988.
11. Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. – К.: Диалектика, 1993. – 240 с.
12. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. - http://www.nexus.odessa.ua/files/books/booch.
13. Аджиев В. MS: корпоративная культура разработки ПО – http:// www.osp.ru
14. Трофимов С.А. Case-технологии. Практическая работа в Rational Rose. – М.: ЗАО "Издательство БИНОМ", 2001.
15. Новичков А. Эффективная разработка программного обеспечения с использованием технологий и инструментов компании RATIONAL. – http://www.interface.ru
16. Selic B., Rumbaugh J. Использование UML при моделировании сложных систем реального времени. - http://www.interface.ru.