Научная статья на тему 'Построение баз знаний для решения задач методом функциональных грамматик'

Построение баз знаний для решения задач методом функциональных грамматик Текст научной статьи по специальности «Математика»

CC BY
305
60
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИНЖЕНЕРИЯ ЗНАНИЙ / РЕШАТЕЛЬ ЗАДАЧ / ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ / KNOWLEDGE ENGINEERING / PROBLEM SOLVER / FUNCTIONAL PROGRAMMING

Аннотация научной статьи по математике, автор научной работы — Кравченко Вячеслав Александрович, Ширапов Дашадондок Шагдарович

Статья посвящена вопросам автоматизированного поиска решения задач с применением функциональных грамматик. Рассматривается алгоритм и особенности построения баз знаний для Решателя задач на основе метода использования функциональных грамматик. В качестве примера построения базы знаний применяется теория линейных стационарных радиотехнических систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Creation of knowledge bases for solving problems by the method of functional grammars

In the article the issues of automated search for solving the problems with help of functional grammars were considered. We studied the algorithm and features of knowledge bases creation for a problem solver based on the functional grammars method. As an example of knowledge base creation the theory of linear stationary radio engineering systems was used.

Текст научной работы на тему «Построение баз знаний для решения задач методом функциональных грамматик»

УДК 004.82

doi: 10.18097/1994-0866-2015-0-9-96-102

ПОСТРОЕНИЕ БАЗ ЗНАНИЙ ДЛЯ РЕШЕНИЯ ЗАДАЧ МЕТОДОМ ФУНКЦИОНАЛЬНЫХ ГРАММАТИК

© Кравченко Вячеслав Александрович

старший преподаватель кафедры «Электронные вычислительные системы» ВосточноСибирского государственного университета технологий и управления

Россия, 670013, ул. Ключевская, 40в, e-mail: [email protected]

© Ширапов Дашадондок Шагдарович

доктор физико-математических наук, профессор, заведующий кафедрой «Электронные вычислительные системы» Восточно-Сибирского государственного университета технологий и управления

Россия, 670013, ул. Ключевская, 40в, e-mail: [email protected]

Статья посвящена вопросам автоматизированного поиска решения задач с применением функциональных грамматик. Рассматривается алгоритм и особенности построения баз знаний для Решателя задач на основе метода использования функциональных грамматик. В качестве примера построения базы знаний применяется теория линейных стационарных радиотехнических систем.

Ключевые слова: инженерия знаний, решатель задач, функциональное программирование.

CREATION OF KNOWLEDGE BASES FOR SOLVING PROBLEMS BY THE METHOD OF FUNCTIONAL GRAMMARS

Vyacheslav A. Kravchenko

Senior Lecturer, East Siberian State University of Technology and Management

40v Kluchevskaya st., Ulan-Ude 670013, Russia

Dashadondok Sh. Shirapov

DSc, Professor, Department "Electronic computing system", East Siberian State University of Technology and Management

40v Kluchevskaya st., Ulan-Ude 670013, Russia

In the article the issues of automated search for solving the problems with help of functional grammars were considered. We studied the algorithm and features of knowledge bases creation for a problem solver based on the functional grammars method. As an example of knowledge base creation the theory of linear stationary radio engineering systems was used.

Keywords: knowledge engineering, problem solver, functional programming.

Введение

Целью статьи является описание правил построения баз знаний для разработанного ранее Решателя задач на основе метода использования функциональных грамматик [1]. Данный решатель в качестве способа представления знаний использует функциональные грамматики профессора Тузова [2]. Результатом работы решателя является суперпозиция функций, которую можно использовать в качестве программы для ЭВМ на функциональном языке программирования, например на ЛИСПе [3]. Это может быть применено для создания обучающихся систем принятия решений и систем генерирования программ.

1. Состав базы знаний

База знаний для разработанного Решателя представляет собой неполную функциональную грамматику:

G = (V, P, F),

где V - алфавит символов, представляющих собой все понятия рассматриваемой теории;

Р - конечное множество правил вывода (продукций), связывающих между собой все понятия рассматриваемой теории в виде: А ^-ф ОД, где А (левая часть) - один символ из множества V, ф (правая часть продукции) - цепочка символов из объединенного алфавита V, а Г - функция из множества Б;

Б - конечное множество функций вывода Г, которые сопоставлены правилам из множества Р для обозначения выполняемых действий над правой частью правила для получения его левой части.

На этапе постановки задачи Решатель на основе цели и исходных данных задачи производит преобразование неполной функциональной грамматики базы знаний к полному виду:

О = (V, Р, Б) ^ О = Б, 8),

где VI - конечный алфавит терминальных символов (терминалов), определяющих известные из условия задачи понятия рассматриваемой теории;

VN - конечный алфавит нетерминальных символов (нетерминалов), не пересекающийся с V!' и обозначающий неизвестные понятия;

8 - начальный нетерминальный символ (аксиома) из множества VN, определяющий цель решения.

2. Этапы построения базы знаний

Для создания базы знаний для Решателя задач требуется пройти следующие этапы:

1) определить границы рассматриваемой теории;

2) выявить все понятия теории в рамках выбранных границ и составить алфавит символов

V;

3) выявить все законы, связывающие выбранные объекты предметной области, и составить набор правил Р;

4) расписать на функциональном языке программирования все функциональные зависимости, между объектами теории, согласно правилам Р, т. е. определить множество функций Б.

Первый этап подразумевает конкретизацию области знаний для сужения круга решаемых задач. Это позволяет ограничить сложность базы знаний в соответствии с назначением Решателя. Готовая база знаний всегда может быть расширена без ее кардинального изменения посредством добавления в нее новых символов, правил и функций. В этом заключается один из плюсов представления знаний в виде функциональных грамматик. Поэтому имеет смысл первоначально создавать простые базы знаний с возможностью их дальнейшей модернизации.

Второй этап заключается в выборе понятий в рамках определенной теоретической области. Каждому понятию сопоставляется один символ объединенного алфавита. Символы представляются в виде списочных структур, поэтому для них необходимо составить грамматики синтаксиса возможных значений. Тем самым решаются две задачи. Во-первых, задаются области допустимых значений символов, во-вторых, определяется вид параметров функций грамматики. Стоит отметить, что несколько символов могут иметь одинаковые грамматики.

Третий этап включает выявление всех связей между понятиями-символами и запись их в виде правил А ф {Г}. В этом выражении, ф - набор понятий, которые при выполнении операции Г приводят к определению символа А. На данном этапе операции Г обозначаются произвольными символами, например А, Г2, Г3, ... Все правила оформляются в виде списка для использования функциональным языком программирования ЛИСП.

Четвертый этап заключается в написании на ЛИСПе всех функций, содержащихся в правилах Р с учетом синтаксиса символов правой ф и левой А частей. Данный этап является самым трудоемким и позволяет представить решение в виде сгенерированной программы на языке ЛИСП.

3. Пример построения базы знаний

Рассмотрим процесс создания базы знаний на примере радиотехники линейных динамических систем.

Этап 1. Определение границ теории

Будем рассматривать теорию линейных динамических радиотехнических цепей в виде системы, состоящей из четырехполюсника, описываемого системным оператором Т, на вход которого подается один сигнал иВхО) а с выхода снимается реакция в виде другого сигнала ивыхО).

Четырехполюсник является пассивным и обладает Г-образной структурой. Он может содер-

жать активное, индуктивное и емкостное сопротивления в последовательно-параллельном соединении. Оператор Т выражается как через временные, так и через частотные характеристики.

Входной и выходной сигналы могут быть представлены во временной и частотной областях в виде рядов дискретных значений, выбранных в соответствии с теоремой Котельникова [4].

Этап 2. Выбор алфавита символов

В рамках определенных границ теории выделяем все возможные понятия и сопоставляем каждому из них символ грамматики (табл. 1).

Таблица 1

Алфавит символов функциональной грамматики

№ Характеристика линейной стационарной радиотехнической системы Символ алфавита

Характеристики цепи Т

1 Принципиальная схема <Схема>

2 Входное операторное сопротивление Ъ (р) ВХ <Сопр1>

3 Выходное операторное сопротивление Ъ (р) ВЫХ <Сопр2>

4 Переходная характеристика g(t) <Перех>

5 Импульсная характеристика Ь(^) <Импул>

6 Передаточная характеристика К(р) <Перед>

7 Частотный коэффициент передачи К(]ю) <Коэфф>

8 Амплитудно-частотная характеристика К(ю) <АмпЧХ>

9 Фазочастотная характеристика фК(ю) <ФазЧХ>

Характеристики входного сигнала и ВХ

10 Входной сигнал и (£) ВХ <Сигн1>

11 Спектральная плотность входного сигнала и (|ю) ВХ <Спек1>

12 Амплитудный спектр входного сигнала И (ю) ВХ <АмпС1>

13 Фазовый спектр входного сигнала фшх(ю) <ФазС1>

Характеристики выходного сигнала и (£) ВЫХ

14 Выходной сигнал и ВЫХ <Сигн2>

15 Спектральная плотность выходного сигнала И (|ю) ВЫХ <Спек2>

16 Амплитудный спектр выходного сигнала И (ю) ВЫХ <АмпС2>

17 Фазовый спектр выходного сигнала ф (ю) ивых <ФазС2>

В итоге, алфавит символов грамматики получает вид:

< Схема >, < Сопр 1 >, < Сопр2 >, < Перех >, < Импул >,

< Перед >, < Коэфф >, < АмпЧХ >, < ФазЧХ >, < Сигн1 >, V = ^ ?

РТ <Спек1>, < АмпС1 >, < ФазС 1 >, < Сигн2 >, < Спек2 >,

<АмпС2>, < ФазС2 >

Далее для каждого символа определяем грамматику его синтаксиса. Для описания синтаксиса 17 выбранных символов требуется составить 8 грамматик (табл. 2).

Таблица 2

Синтаксис символов функциональной грамматики

Синтаксис/ обозначение Символы алфавита Описание синтаксиса

0С1 / Схема <Схема> Принципиальная схема, выраженная операторными сопротивлениями

Сс2 / ДРФ <Сопр1>, <Сопр2>, <Перед> Дробно-рациональная функция

вез / Функция <Перех>, <Импул> Функция, содержащая математические операции: сложение, вычитание, умножение, деление, синус, косинус, экспонента

Сс4 / ДКФ <Коэфф> Комплексная дробно-рациональная функция

Ос5 / МДКФ <АмпЧХ> Модуль комплексной дробно-рациональной функции

Осб / АДКФ <ФазЧХ> Аргумент комплексной дробно-рациональной функции

0С7 / Ряд <Сигн1>, <Сигн2>, <АмпС1>, <АмпС2>, <ФазС1>, <ФазС2> Ряд вещественных значений

Сс8 / РядК <Спек1>, <Спек2> Ряд комплексных значений

Ниже в качестве примера показан синтаксис всг для описания символов <Сопр1>, <Сопр2> и <Перед>:

в = (V V Р Б V

С2 С2' N С^ С2' "с^'

V, С2 ={0, 1, 2, ... , 9, (, ), ДРФ};

< Сопр1 >, < ДРФ >, < числитель >, < знаменатель >, | < многочлен >, < числа >, < число >, < цифра >

V =<

N С2

РС2 = { < Сопр1 > ^ ( ДРФ _ < ДРФ > ),

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

< ДРФ > ^ < числитель > _ < знаменатель >,

< числитель > ^ < многочлен >, < знаменатель > ^ < многочлен >,

< многочлен > ^ ( < числа > ),

< числа > ^ < число > | < числа > _ < число >,

< число > ^ < цифра > | < число > < цифра >,

< цифра > ^ 0 | 1 | 2 | ... | 9 }; БС2 = < Сопр1 >.

Этап 3. Составление набора правил

Между выбранными понятиями теории устанавливаем возможные взаимосвязи и представляем их в виде таблицы. Ее сокращенный вид представлен в таблице 3.

Таблица 3

Взаимосвязи между символами алфавита

Схема 2вх(р) 2вых(р) 8(1) Ь(1) К(р) К(]ш) фк(ю)

Схема £1 £1

2вх(р) £2 £3/£4 £3 £4

2вых(р) £5 £б/£7 £6 £7

8(1) £8 £8 £9

Ь(1) £10 £11

К(р) £4 £4 £12

ВД £13 £14 £15

К(ю) £17

фк(ю) £19 £20

Ивхф

иВх(]ю) £22

ивх(ю)

фивх(ю) £27

ивыхО) £29 £30

иВых(]ю) £31 £24

иВых(ю)

фивых(ю)

Исходя из таблицы 3, записываем систему правил: Ррт = { <Схема> ^ <Сопр1> <Сопр2> {£1}; <Сопр1> ^ <Схема> {£2}; <Сопр1> ^ <Сопр2> <Перех> {£3}; <Сопр1> ^ <Сопр2> <Перед> {£4};

<ФазС2> ^ <ФазЧХ> <ФазС1> {£33}; <ФазС2> ^ <Спек2> {£28} }.

На Лиспе приведенная система правил будет иметь вид:

(<Схема> А <Сопр1> <Сопр2>) (<Сопр1> £2 <Схема>) (<Сопр1> £3 <Сопр2> <Перех>) (<Сопр1> £4 <Сопр2> <Перед>)

(<ФазС2> £33 <ФазЧХ> <ФазС1>)

(<ФазС2> £28 <Спек2>) )

Этап 4. Определение множества функций

На завершающем этапе, для каждой из записанных в таблице 3 операций (£1 - £33) определяем суть преобразований. В таблице 4, для примера, приведены некоторые из описываемых функций.

Таблица 4

Функции для реализации законов радиотехники

Функция Суть преобразования Описываемые взаимосвязи

А Построение схемы цепи по операторным входному и выходному сопротивлениям 2вх (р) - ^ Схема 2вых (р)

£5 Расчет операторного выходного сопротивления цепи по схеме Схема ^ гвых (р)

£7 Умножение двух ДРФ 2вых (Р) = 2вх (Р) • К(Р)

£8 Расчет переходного процесса 2ВХ (Р) ^ 7 ( Л^ 8(0 2ВЫХ (Р)

£9 Интегрирование функции 8(1) = | Ь(1)Л

А0 Дифференцирование функции *) -1

£12 Преобразование комплексной ДРФ в операторную ДРФ К (Р) = К (]Ю)

А3 Прямое преобразование Фурье +да К^га) = | Ь(1)е —да

£15 Расчет комплексной ДРФ по функциям модуля и аргумента К^ю) = К(ю) • ej■фE (ш)

£20 Вычитание двух рядов дискретных значений Ф К(ю) = Ф и вых (ю ) -Ф и вх (ю)

£21 Обратное дискретное преобразование Фурье 1 ■ ивх (1) = — { Ивх (■ю^™'^ 2л -1 —да 1 7 ■ ивых (1) = — 1 Ивых 2л -1 —да

£23 Прямое дискретное преобразование Фурье +да Ивх (■ш) = { ивх (1)е —да +да Ивых СН = | ивых —да

£29 Интеграл Дюамеля ивых (t) = ивх (0)8(0 + о ^

£30 Интеграл наложения t ивых (t) = | ивх (х)Ь(1 "хМх —да

Каждую функцию расписываем на функциональном языке ЛИСП с учетом синтаксиса символов, выступающих в качестве аргументов этих функций. Ниже в качестве примера приведена функция f2.

(defun f2 (x) (слождр (car x) (car(cdr x))))

(defun слождр (x y) (cond ((equal (зн x) (зн y)) (list (слож (чс x) (чс y)) (зн x))) (T (list (слож

(умнож (чс x) (зн y)) (умнож (чс y) (зн x))) (умнож (зн x) (зн y)))))) (defun чс (x) (car x)) (defun зн (x) (car (cdr x)))

(defun умнож (x y) (умнож+ x y (колич x) (колич y))) (defun умнож+ (x y m n) (умнож+2 x y x m n m (- (+ m n) 1)))

(defun умнож+2 (x y z m n k l) (cond ((= y nil) (нули l)) ((= x nil) (умнож+2 z (cdr y) z k (- n 1) k

l)) (T (прибав (умнож+2 (cdr x) y z (- m 1) n k l) (* (car x) (car y)) (- (+ l 2) (+ m n)))))) (defun прибав (x m n) (замена x (list (+ (элемент x n) m)) n)) (defun нули (x) (cond ((= x 1) (list 0)) (T (cons 0 (нули (- x 1)))))) (defun слож (x y) (слож+ x y (колич x) (колич y)))

(defun слож+ (x y m n) (cond ((> m n) (слож+ y x n m)) (T (слож+2 x y (+ (- n m) 1))))) (defun слож+2 (x y k) (cond ((= x nil) y) (T (прибав (слож+2 (cdr x) y (+ k 1)) (car x) k))))

Заключение

В статье были рассмотрены этапы построения базы знаний в виде функциональной грамматики. Было показано, что использование функциональных грамматик в системе решений позволяет смоделировать базу знаний практически для любой области знаний. Для этого необходим специалист в рассматриваемой области, который вместе с инженером знаний сможет реализовать все 4 этапа и составить базу знаний.

Преимуществом базы знаний в виде функциональной грамматики является возможность ее оперативного пополнения. Это достигается за счет добавления новых символов, правил и функций. Причем пополнение знаний возможно в результате накопления опыта, т.к. результат решения также представляет собой функцию. Новые продукции могут быть выражены через уже имеющиеся функции, что упрощает процесс добавления знаний и позволяет избежать повторений, пересечений и противоречий в правилах.

Литература

1. Кравченко В. А., Могнонов П. Б., Чимитов Д. Н. Программная реализация решателя задач на основе метода функциональных грамматик // Вестник ВСГУТУ. - 2013. - № 6. - С. 36-42.

2. Тузов В. А. Математическая модель языка. - Л.: Изд-во Ленингр. ун-та, 1984. - 176 с.

3. Хювёнен Э., Сеппянен И. Мир Лиспа. Т. 2: Методы и системы программирования. - М.: Мир, 1990. - 320 с.

4. Баскаков С. И. Радиотехнические цепи и сигналы. - М.: Высшая школа, 2005. - 462 с.

References

1. Kravchenko V. A., Mognonov P. B., Chimitov D. N. Programmnaya realizatsiya reshatelya zadach na osnove metoda funktsional'nykh [Software implementation of a problem solver based on the method of functional grammars]. Vestnik Vostochno-Sibirskogo gosudarstvennogo universiteta tekhnologii i upravleniya - Bulletin of East Siberian State University of Technology and Management. 2013. No. 6. Pp. 36-42.

2. Tuzov V. A. Matematicheskaya model'yazyka [The mathematical model of language]. Leningrad: Leningrad University publ., 1984. 176 p.

3. Khyuvenen E., Seppyanen I. Mir Lispa. T.2: Metody i sistemy programmirovaniya [World of Lisp. Volume 2: Methods and systems of programming]. Moscow: Mir, 1990. 320 p.

4. Baskakov S. I. Radiotekhnicheskie tsepi i signaly [Radio circuits and signals]. Moscow: «Vysshaya Shkola», 2005. 462 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.