| ||
: О проекте :: Устройство робота :: Фото и видео :: Демострационный софт :: О авторе : | ||
Структура системы управления поведением робота и ее базы знанийВ общем случае разрабатываемая система управления поведением обладает рядом информационных входов и рядом командных выходов. Одним из входов такой системы должен являться вход для строки запроса пользователя. Одним из выходов - выход для строки ответа пользователю.
Для построения системы управления поведением, отвечающей всем перечисленным требованиям, необходимо решить вопрос организации базы знаний такой системы и ее механизма логического вывода. Организация базы знаний системы управления поведениемСтруктуру базы знаний системы управления поведением предлагается организовать согласно структуре, изображенной на Рис. 1. Она включает в свой состав словарь используемых слов и список типов фреймов. Каждый тип фреймов должен содержать:
Каждый фрейм из списка фреймов состоит из двух основных частей: словесная предпосылка и алгоритмическое следствие. Кроме этого, для удобства редактирования, каждый фрейм содержит свое название, совпадающее с текстовым представлением словесной предпосылки. Словесная предпосылка определяет последовательность слов, активизирующих данный фрейм. Она включает в себя список слотов. Каждый слот может являться:
Фрейм активизируется в том случае, если в строку запроса входят все слова указанного фрейма в указанной последовательности. При этом запрос допускает наличие других слов вперемешку с искомыми. Например, фраза: "подними этот большой кубик" при прочих равных условиях активизирует фрейм со словесной предпосылкой "подними кубик". Если словесная предпосылка фрейма включает слот-параметр, то поиск активизируемого фрейма производится путем подстановки вместо параметра словесных предпосылок фреймов, указанного типа. Например, пусть имеется тип фреймов "объекты", включающий в свой состав фреймы: "кубик", "шар", "цилиндр" и т.д. Пусть имеется тип фреймов "место", включающий в свой состав фреймы: "слева от obj", "справа от obj", "перед obj", где obj - помечен, как параметр типа "объекты". Пусть имеется тип фреймов "задания", включающий в свой состав фрейм "встань place", где place - помечен, как параметр типа "место". Тогда фраза "встань справа от красного шара" активизирует фрейм "встань place". Параметр place этого фрейма примет значение фрейма "справа от obj", а параметр obj в свою очередь примет значение фрейма "шар". Алгоритмическое следствие фрейма состоит из блок-схемы алгоритма, выполняющегося при активизации фрейма. Каждый элемент блок-схемы является элементарным программным оператором. Всего таких операторов насчитывается 12. В их числе:
При описании ряда блоков использовалось понятие математическое выражение. Математическое выражение представляет собой алгебраическое выражение, включающее математические и строковые функции, а также:
Таким образом, алгоритмическое следствие является универсальным инструментарием для описания всех типов фреймов. Для фреймов-объектов алгоритмическое следствие состоит из одного блока "возвратить", который возвращает внутренний идентификатор объекта. Для фреймов-действий алгоритмическое следствие состоит из блоков "запрос", которые описывают последовательность выполнения сложных действий. Для описания элементарных действий алгоритмическое следствие предполагает построение блок-схемы алгоритма, который специальным образом анализирует входные переменные и формирует значение выходных переменных. Механизм логического вывода системы управления поведениемРассмотрим структуру системы управления поведением (Рис. 2). Эта структура состоит из трех основных элементов: база знаний, блок обслуживания запросов и список задач. При поступлении запроса на входе системы формируется текстовая строка, содержащая запрос. Эта строка заносится в специальную входную переменную (STDIN), а также поступает на блок обслуживания запроса. Блок обслуживания запроса разделяет строку на фразы (части сложно сочиненного предложения), отбрасывает слова, начинающиеся со спецзнака, удаляет от слов частицу "-ка", после чего для каждой фразы ищет в базе знаний командный фрейм, удовлетворяющий условиям: а) Все слова словесной предпосылки фрейма с учетом всех вложенных фреймов входят в очередную фразу в той же последовательности. б) Общее число совпавших слов максимально. Если, таким образом, находится хоть один такой фрейм, то блок обслуживания запроса определяет список его параметров, а также список параметров для вложенных в него фреймов. После этого алгоритмическое следствие данного фрейма вместе со списком параметров поступают в приоритетный список задач. В зависимости от приоритета первого командного фрейма задача может оказаться либо в начале, либо в конце этого списка. У каждой задачи имеется список локальных переменных и параметров. Все задачи в списке задач выполняются последовательно, друг за другом. Самая первая задача является активной. После ее завершения она уничтожается из списка вместе со своими локальными переменными и параметрами, и ее место занимает следующая по списку задача. Для чтения и записи задаче доступны:
Отличие глобальных от долговременных переменных заключается в том, что долговременные переменные записываются вместе с базой знаний на диск (либо другой носитель), а глобальные переменные сбрасываются при каждом запуске системы. Только на чтение задаче доступны:
Задача может совершать следующие действия:
Для редактирования содержимого базы знаний имеется встроенный редактор, позволяющий эксперту создавать и настраивать базу знаний. При запуске системы автоматически формируется служебный запрос "ПРИ_ИНИЦИАЛИЗАЦИИ". Этот запрос активизирует одноименный служебный фрейм. По умолчанию данный фрейм не производит никаких действий, однако, у эксперта имеется возможность модифицировать этот фрейм для выполнения необходимых действий при инициализации системы. Если блоку обслуживания запроса удается активизировать хоть один фрейм, то формируется служебный запрос "ЗАДАНИЕ_ПОНЯЛ". Данный запрос активизирует одноименный служебный фрейм, который по умолчанию формирует один из вариантов положительного ответа пользователю, например, "ОК". Если блоку обслуживания запроса не удается активизировать ни одного фрейма, то формируется служебный запрос "ЗАДАНИЕ_НЕ_ПОНЯЛ". Данный запрос активизирует одноименный служебный фрейм, который по умолчанию формирует один из вариантов отрицательного ответа пользователю, например, "Я Вас не понял". Таким образом, разработанная система обладает гибкими настройками, позволяющими предпринимать какие-либо действия в случае положительного или отрицательного ответа пользователю. Достоинствами разработанной системы являются:
К недостаткам следует отнести то, что разработанная система не анализирует смысл фраз, а работает по ключевым словам. | ||
Дизайн: DynSoft |