Разработка интеллектуального агента глоссария с набором терминов по тематическим вопросам

СОДЕРЖАНИЕ



Введение

1. Анализ предметной области и постановка задачи

1.1 Анализ и виды интеллектуальных агентов в системе дистанционного обучения и их характеристики

1.2 Постановка задачи

2. Модель интеллектуального агента глоссария

2.1 Построение модели интеллектуального агента

2.2 Построение интеллектуального агента на платформе Jadex с помощью XML формата

3. Описание программного модуля

3.1 Описание среды разработки агента платформы Jadex

3.2 Описание интеллектуального агента с помощью BDI

Выводы

Перечень ссылок

Приложение А Список терминов в формате XML

Приложение В Описание тегов XML документа в формате DTD



					
ВВЕДЕНИЕ



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

Дистанционное обучение (ДО) - это обучение на расстоянии, когда преподаватель и обучаемый разделены пространственно и когда все или большая часть учебных процедур осуществляется с использованием современных информационных и телекоммуникационных технологий.

Дистанционное обучение через Интернет - это обучение, при котором предоставление обучаемым существенной части учебного материала и большая часть взаимодействия с преподавателем осуществляются с использованием технических, программных и административных средств глобальной сети Интернет [1].

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

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

Проведение видео- и телевизионных лекций, компьютерных видео - и текстовых конференций, возможность частых, вплоть до ежедневных, консультаций с преподавателем по компьютерным коммуникациям делают взаимодействие обучаемых с преподавателями даже более интенсивными, чем при традиционной форме обучения [2].

Интенсивные телекоммуникационные взаимодействия обучаемых студентов между собой и с преподавателями консультантами позволяют проводить электронные семинары и деловые игры.

При организации персонального обучения, на вход поступает информация об обучаемом студенте от обучающих ресурсов, распределенных в сети. На выходе получаем множество учебных материалов, объединенных в логическую последовательность в индивидуальном подходе обучения. При выборе необходимых учебных материалов применяется стандарт метаданных учебных материалов, который организует единый доступ на получение их с обучающих ресурсов, находящихся в глобальной сети Интернет. Механизмом выполнения данной функции является совокупность программных агентов, организованных в виде мультиагентной системы. При этом он получает возможность самостоятельного изучения материала под присмотром агента, который предлагает и контролирует получение знаний. Возможность студентом посредством компьютера выполнять лабораторные и практические задания по пройденному материалу лекций, просматривать дополнительную информацию в виде глоссария термином, также есть возможность проходить тесты по окончании изучения материала и для оценивания знаний студента [3].

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

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

Решая эту заду, разработаны и используются так называемые агентные технологии для автоматизации сервисов и служб. Они включают в себя следующие уровни функционирования: XML, RDF+RFFS, словарь онтологий, логика, тест, разрешение, коммутацию, а также существующие уровни кодирования информации и уникальной идентификации ресурсов.

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

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

Архитектура разрабатываемой системы дистанционного получения образования содержащая в себе модули структурирования данных и утилиты управления ими, предусматривает консультации с помощью глоссария, через среду интеллектуального агента глоссария, который содержит модули логики и вызова справочника терминов [5].

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

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

Целью курсового проекта является разработка интеллектуального агента глоссария с набором терминов по тематическим вопросам.




1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ И ПОСТАНОВКА ЗАДАЧИ



1.1 Анализ и виды интеллектуальных агентов в системе дистанционного обучения и их характеристики



Наиболее важным аспектом для дистанционного обучения, развитие в пределах Internet - стандартизация технологий различными международными организациями. Несколько параллельных усилий IEEE LTSC, AICC, ADL, IMS, ARIADNE, и некоторых других организаций привели к сосуществованию различных стандартов и спецификаций. Однако почти все из них - относительные взаимосвязи содержания, моделей данных, и протоколов. Центральная часть тех стандартов – относительно достижения способности к взаимодействию, достижимости и возможности многократного использования доступного через сеть содержания изучения посредством различного типа метаданных.

Любой объект может использоваться для изучения, образования или обучения до и после того, как используемый термин объекта изучен. Составление обучающего множества от набора дистанционного обучения предполагает упорядочивание их для представления предназначенного поведения учащегося.

Развитие спецификаций, основанное на идее, что все дистанционное обучение – это пассивный объект и вся деятельность изучения, должна происходить от пользователей.

Агенты рассматриваются перспективным подходом для формирования сложных программных систем, потому что парадигма агента учитывает приложения моделирования естественным способом. Имеется ряд различных подходов, чтобы определить моделирование агента. Агент может рассматриваться, как восприятие и действие или модель "Belief – Desire – Intention" (BDI), как теория человеческого практического рассуждения. Эта модель осуществляется на различных компьютерных технологиях, которые направлены на реализацию логики агента. Другой очень важный предмет в ориентировано - агентном подходе устанавливает связи между агентами в среде мультиагентных систем.

Основа для интеллектуальных агентов продвигает стандарты, которые особенно определяют связь агента, как основная категория в основе FIPA модели мультиагентных систем. Мы выбираем для нашего исследования и практики платформу мультиагентных систем Jade и Jadex, и они следуют за BDI архитектурой [6, 18].

1.1.1. Среда разработки Jadex. Среда разработки Jadex – это средство для создания интеллектуальных агентов. Используется различными видами агентов, предоставляя основные сервисы, такие как инфраструктура коммуникаций или средства для управления.

Сейчас доступно два полноценных средства разработки, которые адаптируют эту технологию. Первая адаптация доступна для широко известной открытой платформы Jade. Вторая адаптация – автономная адаптация Jadex, которая маленькая, но с быстрой средой и минимальной загрузкой памяти [7].

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

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

1.1.3. Взаимодействие агентов. Тип взаимодействия между пользователем и агентом дистанционного обучения зависит от его типа. Скелет взаимодействия включает: запрос содержания дистанционного обучения; представление содержание при условиях заданного; обратная связь студента; оценка продвижения студентов; определение следующего действия. Некоторые из этих шагов, могут быть опущены или изменены, применяясь к определенному агенту дистанционного обучения.

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

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

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

Имеются несколько вызванных действий, которые могут описывать работу пользователей и агентов на форумах и симпозиумах: Вопрос, Ответ, Мнение, Метка, Успех, Ошибка, и Переадресация. Последовательность этих действий не может быть определена. Поэтому, не имеется никакого предопределенного пути к выполнению цели такого дистанционного обучения. Агент должен выполнять план и непрерывно планировать его заново. Такой тип агентов, мог быть осуществлен как сервисно-основанный агент планирования [4, 8].

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

В течение лабораторных занятий студенты получают некоторые практические навыки и усиливают теоретические знания. Агент лабораторий в системе дистанционного обучения может помогать студенту, в то время как он следует командам лабораторий, и оценивает действие каждого отдельного студента. Если справка будет необходима студенту, агент может предлагать одну из сохраненных стандартных команд, как преодолеть проблему или посылать уведомление с запросом преподавателю. Этот тип агентов осуществляется таким же образом, как и агент назначения [8].



1.2 Постановка задачи



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

Глоссарий – это набор терминов, которые могут встречаться в обучающем материале студента системы дистанционного обучения. Глоссарий терминов в системе дистанционного обучения может иметь в своей структуре обучающего материала, такие как лекции, лабораторные работы, практические занятия, тестирование.

	Глоссарий может быть двух видов: структурированный и ссылочный.

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

Целями агента глоссария является предоставить дополнительную информацию студенту по изученному материалу и по возможности заменить преподавателя для разъяснения определенных терминов, а также получение подтверждения их понимания. В зависимости от наличия гиперссылки в тексте обучающего материала, можно производить поиск необходимых терминов по переходу через гиперссылки и вложенные гиперссылки. Также может быть наличие гиперссылки на материале в Internet.

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

интеллектуальный агент глоссарий jadex xml




2. МОДЕЛЬ ИНТЕЛЛЕКТУАЛЬНОГО АГЕНТА ГЛОССАРИЯ



2.1 Построение модели интеллектуального агента



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





Рисунок 2.1 – Схематическая модель работы интеллектуального агента глоссария



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

Итак, с помощью модели определим работу агента. Запуск агента происходит (1 блок модели), когда подается запрос через гиперссылку на поиск дополнительной информации о термине в том материале (лекции, лабораторные, практические и т.д.), который проходит студент, это отображено на 2 блоке модели. Эту операцию агенту глоссарию поручает агент координатор, который управляет взаимодействием между всеми личными агентами. Когда запрос подан, агент начнет производить поиск термина в xml файле, который содержит описание всех терминов. Если заданный термин не найден, то агент посылает сообщение, что данного материала нет (3 блок). Только когда не найдена ссылка, сообщение отправляется агенту координатору. Но когда материала вообще нет в наличии, то сообщение отправляется агенту чата (4 блок модели), чтобы было отправлено письмо преподавателю о том, что необходимо выложить данный материал.

Если необходимый термин найден, то по плану происходит вывод на экран, так как это видно на модели в 5 блоке. И когда функция агента считается выполненной, он переходит в спящий режим до следующего вызова (6 блок) [11].



2.2 Построение интеллектуального агента на платформе Jadex с помощью XML формата



Разрабатываемый модуль агента Glossary: содержит модули по формированию терминов GlossaryDictionary.xml к нему прилагается документ GlossaryDictionary.dtd определяющий тип документа, определяет законные блоки документа XML, структуру документа со списком законных элементов (атрибутов). Также содержит модуль логического ответа пользователю GlossaryAgent.xml.

																																Весь глоссарий представлен в XML файле и находится в Приложении А, а описание его тегов контролируется в DTD файле. В данном XML файле под названием GlossaryDictionary.xml описывается перечень терминов, которые будут использоваться агентом при поиске материала обучаемому студенту. <?xml version="1.0"?> данный тег обозначает версию документа. <!DOCTYPE glossary SYSTEM "GlossaryDictionary.dtd"> данная строка показывает, что мы определяем структуру нашего документа XML в DTD формате. В начале XML файл описывается заглавным тегом, определяющим его назначение <glossary>…</glossary>. Описываем название с помощью атрибута title ="…" и дату создания orderDate="…?...?..." Уже в нем мы определяем наши термины <terms>…</terms>. Свойства термина описываем, используя, теги: <term>…</term> - тег, которым мы объявляем термин. value="term…" – значения термина при поиске в перечне материла. Далее объявляем его имя с помощью тега <name>…</name>. <image ref="...> данный тег описывает рисунки к тому термину, который ему соответствует. <count>…</count> отвечает за количество определений термина. А в свою очередь определения обозначаются как <definition>…</definition>, и уже в нем мы описываем count="…" какое это определение по счету. Также существуют вложенные гиперссылки - <giperlink>…</giperlink>, которые отвечают за то, что бы при просмотре термина, когда человек переходит на вложенную ссылку агент мог отреагировать на этот запрос (см. пример использования определения тегов в прил. А, В) [7,9,10,12].

																																Описание интеллектуального агента глоссария происходит также через xml формат. В нем мы описываем цели, которые агенту необходимо достичь. Также описываются планы, факты, события с помощью каких агент достигает этих целей. Описание агента глоссария можно увидеть на ниже изложенных рис. 2.2-2.8:

																																

																																GlossaryAgent.xml

																																<!--<H3>Glossary agent</H3>-->

																																<agent xmlns="http://jadex.sourceforge.net/jadex"

																																xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

																																xsi:schemaLocation="http://jadex.sourceforge.net/jadex

																																http://jadex.sourceforge.net/jadex-0.94.xsd"

																																name="Glossary"

																																package="Glossary">

																																Рисунок 2.2 – Общее описание агента глоссария

																																

																																
<imports>

																																<import>jadex.planlib.*</import>

																																<import>jadex.runtime.*</import>

																																<import>jadex.util.*</import>

																																<import>jadex.adapter.fipa.SFipa</import>

																																<import>java.util.logging.*</import>

																																<import>jadex.adapter.fipa.*</import>

																																</imports>

																																Рисунок 2.3 – Импортируемые библиотеки

																																

																																<goals>

																																<! -- Query goal represents a necessity in information, executes the search of terms. -->

																																<querygoal name="query_term" exclude="never">

																																<parameter name="result" class="term" direction="out">

																																<value evaluationmode="dynamic">

																																select one $term from $beliefbase.terms

																																where !$term.isFull()

																																order by $beliefbase.my_location.getDistance($term.getLocation())

																																</value>

																																</parameter>

																																</querygoal>

																																<!-- Main goal of the student is to give additional information. -->

																																<maintaingoal name="term_definition">

																																<maintaincondition>

																																$beliefbase.query = true

																																</maintaincondition>

																																</maintaingoal>

																																</goals>

																																Рисунок 2.4 – Цели работы агента

																																
<beliefs>

																																<!-- Restart agent -->

																																<belief name="Restart" class="Glossary">

																																<fact>GlossaryPlanRestart();</fact>

																																</belief>

																																<!-- The presence of request for additional information.

																																Search of terms from the list of materials. -->

																																<belief name="QuerySearch" class="Glossary">

																																<fact>GlossaryPlanSearch.getGlossaryDictionary();</fact>

																																</belief>

																																<!-- Opening of the found searching information. -->

																																<belief name="ContentOpen" class="Glossary">

																																<fact>GlossaryPlanOpenDictionary();</fact>

																																</belief>

																																<!-- Send message to agent coordinator. -->

																																<belief name="FileNotFound" class="Glossary">

																																<fact>GlossaryPlanSendMessageTermNotFound();</fact>

																																</belief>

																																<!-- Send message to agent chat. -->

																																<belief name="NoTerm" class="Glossary">

																																<fact>GlossaryPlanSendMessageNoTerm();</fact>

																																</belief>

																																<!-- Send message to student. -->

																																<belief name="NoReference" class="Glossary">

																																<fact>GlossaryPlanSendMessageNoReference();</fact>

																																</belief>

																																<!-- Sleep mode agent-->

																																<belief name="SleepMode" class="Glossary">

																																<fact>GlossaryPlanSleep();</fact>

																																</belief>

																																</beliefs>

																																Рисунок 2.5 – Используемые знания агентом, которые описывают исполняемые факты

																																

																																<plans>

																																<!-- Plan restart agent-->

																																<plan name="restart">

																																<body>new GlossaryPlanRestart()</body>

																																</plan>

																																<!-- Plan presence of references in the text-->

																																<plan name="reference">

																																<body>new GlossaryPlanReference()</body>

																																</plan>

																																<!-- Plan search of necessary term-->

																																<plan name="search">

																																<body>new GlossaryPlanSearch()</body>

																																<trigger><messageevent ref="request_reference"/></trigger>

																																</plan>

																																<!-- Plan reflection of content-->

																																<plan name="content_open">

																																<body>new GlossaryPlanOpenDictionary()</body>

																																</plan>

																																<--External plan. Description of interaction with an agent by a co-ordinator.-->

																																<plan name="coordinator">

																																<body>new GlossaryPlanSendMessageTermNotFound()</body>

																																<trigger><messageevent ref="request_inform"/></trigger>

																																</plan>

																																<--External plan. Description of interaction with an agent by a chat.-->

																																<plan name="chat">

																																<body>new GlossaryPlanSendMessageNoTerm() </body>

																																<trigger><messageevent ref="request_failure"/></trigger>

																																</plan>

																																<-- Plan show message to student-->

																																<plan name="student">

																																<body>new GlossaryPlanSendMessageNoReference() </body>

																																<trigger><messageevent ref="request_reference"/></trigger>

																																</plan>

																																<!-- Plan sleep mode agent-->

																																<plan name="sleep">

																																<body>new GlossaryPlanSleep()</body>

																																</plan>

																																</plans>

																																Рисунок 2.6 – Исполняемые планы агента

																																

																																<events>

																																<messageevent name="request_inform" direction="receive" type="fipa">

																																<parameter name="performative" class="String" direction="fixed">

																																<value>SFipa.INFORM</value>

																																</parameter>

																																<parameter name="content-start" class="String" direction="fixed">

																																<value>"Error! Reference of the term is not found."</value>

																																</parameter>

																																</messageevent>

																																<messageevent name="request_failure" direction="receive" type="fipa">

																																<parameter name="performative" class="String" direction="fixed">

																																<value>SFipa.FAILURE</value>

																																</parameter>

																																<parameter name="content-start" class="String" direction="fixed">

																																<value>"It is necessary to lay out material. Add dictionary" </value>

																																</parameter>

																																</messageevent>

																																<messageevent name="request_reference" direction="send" type="fipa">

																																<parameter name="performative" class="String" direction="fixed">

																																<value>SFipa.REQUEST</value>

																																</parameter>

																																<parameter name="content-start" class="String" direction="fixed">

																																<value>"Reference is not found. Make an effort other time." </value>

																																</parameter>

																																</messageevent>

																																</events>

																																Рисунок 2.7 – События, выводимые сообщения для передачи иным агентам или конечному пользователю

																																

																																<initialstates>

																																<initialstate name="default">

																																<plans>

																																<initialplan ref="SeachTerm"/>

																																</plans>

																																</initialstate>

																																</initialstates>

																																</agent>

																																Рисунок 2.8 – Описывает начальное состояние агента и завершение его описания



2.2.1 Описание интеллектуального агента глоссария с использованием платформы Jadex. Для начала агент описывается в HTML в соответствии с заданными планами, целями и фактами, как это представлено выше.

Рассмотрим характеристики агента. Агент глоссарий имеет такие характеристики как:

		наличие запроса и поиска дополнительной информации;

		открытие найденой искомой информации;

		просмотр необходимой информации.

	Входная информация:

			запрос на поиск необходимого материала.

		Выходная информация:

			найденная по ссылке информация.

2.2.2 Цели. В разрабатываемом агенте выделяется две цели. Это цели вида запроса (query) и главная цель (main goal). Цель запроса изображает необходимость в информации, выполняет поиск условий. Представляет необходимость в информации. Главная цель – это предоставить студенту дополнительную информацию. Эта цель специфицирует состояние, которое должно быть достигнуто.

2.2.3 Знания. В знаниях описываются происходящие факты в ходе работы агента. В нашем случае описывается семь знаний, в которых определяются факты. При запуске агента вызывается факт Restart agent. Следующим фактом есть зарос на поиск QuerySearch, показывает присутствие запроса на дополнительную информацию и выполняет поиск терминов от списка материалов. Открытие искомой информации со словаря выполняется с помощью факта ContentOpen. TermNotFound – говорит о том, что будет отправлено сообщение об ошибке агенту координатору. А агенту чата отправляется сообщение с помощью факта NoTerm о том, что необходимо, чтоб преподаватель выложил необходимый материал, которого нет в наличии. Отсылается сообщение студенту о неправильной ссылке. SleepMode – показывает переход агента в спящий режим.



2.2.4 Планы. В разрабатываемом агенте выделяются планы restart, reference, search, content_open, coordinator, chat, student, sleep:

		Restart - выполняет запуск агента при вызове его агентом координаторе;

		Reference - присутствие ссылок по тексту;

		Search – поиск необходимого термина;

		Content_open - отображение содержимого словаря;

		Coordinator - описание взаимодействия с агентом координатором. Отсылает сообщение об ошибке, термин не найден. Является внешним планом;

	Chat - внешний план. Описание взаимодействия с агентом чата. Отсылает сообщение о том, что материала нет в наличии;

	Student – вывод сообщения студенту. Отсылает сообщение о том, что ссылка неправильная и материала нет в наличии;

	Sleep – агент переходит в спящий режим.

Таким образом, была разработана модель интеллектуального агента, которая определяет его действия в общей мультиагентной системе дистанционного обучения. Также были определены цели для достижения выполнения агентом, факты и планы для выполнения этих целей [11].




3. ОПИСАНИЕ ПРОГРАММНОГО МОДУЛЯ



3.1 Описание среды разработки агента платформы Jadex



Jadex - это агент, ориентированный на собственный механизм принятия решений, взаимодействуя с XML и Java файлами, поддержки этих решений.

Jadex изображает консервативный подход по направлению к ориентации агента по нескольким причинам.

Один главный аспект - то, что никакой новый язык программирования не введен. Вместо этого, агенты Jadex могут программироваться в объектно-ориентированные интегрированные среды разработки искусства.

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

3.1.1 Особенности платформы разработки агента, Jadex. Преимущество разработки на функциональных агентов на платформе Jadex является, что не требуется изучения новых языков программирования. Вместо этого агенты кодируются на базе объектно-ориентированного программирования в интегрированной среде разработки (IDEs), типа Eclipse и Intellij IDEA.

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

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

Агент может свободно мигрировать между хостами, выполняя операции, как на серверной стороне, так и на стороне пользователя, сохраняя при этом независимость от места выполнения поставленных задач [8,12].

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

Чтобы создать агента необходимо определить в системе свойства агента.

Действия агента описываются с помощью представлений, целями и планами. Помещая их, в так называемую библиотеку XML файла, этот файл называется ADF (agent definition file) файл определения агента. В ADF файле определяются агент как объект, описанный в классах java-файлов.

Запуск агента определяется в планах, которые вызываются по требованию системы, называемые пассивными планами.

Функционирование в агента в системе происходит за счет получения от системы и отправка измененных сообщений в систему. Система подает на вход агенту какое-то сообщение, после чего агент заносит его так в так называемый модуль событий. Передавая его в блок обработки сообщений, и далее передавая его по цепочке в блок планов, анализирует его. Где событие анализируется к принадлежности агента. Если сообщение не принадлежит агенту, то оно передаётся обратно в систему не изменённым. Блок планов, обрабатывая событие, сравнивает их с собственной базой планов и при положительном сравнении с планами начинает обработка сообщения в базе знаний, откуда поступает для сравнения с целями агента для передачи в модуль событий. Пройдя весь цикл сравнения и преобразования данных, в установленные задачи, поступает в систему для дальнейшего функционирования.

Интерпретатор состоит из списка информации компонента основных планов решения задачи, так называемые запланированные мета действия, ориентированные на выполнение агентом. Режим работы примерно выглядит так: агент выбирает мета действие из файла ADF и выполняет его, когда выполняются предварительные условия действия. Иначе действие – просто пропускается. Выполнение действия может произвести дальнейшие действия, которые добавлены к списку ADF-файла после настраиваемой в агенте концепции основных планов решения задачи, плана. В настоящее время, концепции действий главным образом различает связанный и несвязанный действия, в соответствии, с чем связанные действия добавляются как дочерние (порожденные) узлы к текущему узлу плана.

3.1.3 Базовый алгоритм построения агента на платформе Jadex. Разрабатывая приложение с использованием Jadex, программист обязан создавать два типа файлов: XML-файлы обозначая агента и Java-файлы для выполнения планов. Файл определения агента используется как спецификация для классов выполнения плана, базирующийся на объявлениях действий этого плана и основных фактах взаимосвязи между ними. Файлы с форматом XML и Java, определяют функциональные возможности агента.

В главном файле агента XML определяются все функциональные возможности, которыми будет наделен агент такие как: imports, capabilities, beliefs, goals, plans, events, expressions, properties, initial states.Когда ADF и java загружены, объекты созданные для xml в adf, позволяют системе взаимодействовать, используя Jadex платформу для принятия решений по определенным действиям и взаимодействия внутри программного модуля.

3.1.4 Модель BDI Jadex. Рациональные агенты имеют явное представление их окружения и задач, которые они пробуют достичь. Рациональность означает, что агент будет всегда выполнять самые многообещающие действия, чтобы достичь его задачи.

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

Относительно теоретической основы и числа осуществляемого и успешно примененных систем, самая интересная и широко распространенная архитектура агента - это введенная архитектура Цели-Факты-Планы (BDI). Это состоит из понятий знаний, фактов и целей как мысленные отношения, которые генерируют человеческое действие. Приняли эту модель, и преобразовали в формальную теорию и модель выполнения для агентов программного обеспечения, основанных на мнении фактов, целей, и планов.

Jadex объединяет эту модель в агентов Jade, вводя цели, факты и планы для манипуляции внутри агента. В Jadex, агенты имеют знания, которые могут быть каким-нибудь видом объектов Java, и запомнены в базу знаний. Цели изображают конкретные побуждения (состояния, которые достигнуты) [13].



3.2 Описание интеллектуального агента с помощью BDI



Каждый агент должен иметь цели для своего выполнения. Эти цели для интеллектуальных агентов описываются в xml файле, который определяет их для достижения, т.е. выполнения заданной сути агента. Также формируются планы и знания (факты), которые агент будет выполнять для достижения и выполнения своих целей. Опишем цели, планы и знания в нашем случае по отношению к агенту глоссарию, которые мы ему определили. Когда мы определили все цели, планы и знания агента, и создали словарь терминов необходимый для работы агента глоссария, переходи к его реализации. В случае достижения заданных целей агентом, считается, что он выполнил свою задачу.

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

3.2.1 Цели агента. Цели в Jadex представляют собой объекты с некоторыми атрибутами. Целевое состояние, достигаемой цели, может быть явно представлено выражением, которое проверяет, достигнута ли цель.

В отличие от традиционных BDI систем, которые понимают цели как специфический вид событий, в Jadex цели являются центральной концепцией. Jadex преследует идею, что цели - это конкретные, мгновенные желания агента. Любая цель, которую преследует агент, будет более или менее непосредственно осуществлена соответственным действием, пока не будет предположения, что цель достигнута, непостигаема или больше не желаема. В отличие от большинства других систем, Jadex не предполагает обязательной зависимости (непротиворечивости) достигаемых целей одна от другой.

Jadex поддерживает 4 вида целей: выполнения, достижения, запроса и поддержки.

		Цель выполнения – утверждает, что должно быть выполнено, но не обязательно приведет к определенному результату.

		Цель достижения – описывает абстрактное целевое состояние, которое необходимо достигнуть, без определения как это сделать. Таким образом, агент может опробовать разные альтернативы, для достижения цели. Стратегия, ресурсы.

		Цель запроса – представляет необходимость в информации. Если информация на текущий момент не доступна, выбираются и выполняются планы, которые помогают ее собрать.

		Цель поддержания – специфицирует состояние, которое должно сохраняться, и может вызываться, после того как будет выполнена. Это самая абстрактная цель в Jadex.

Цели составляют мотивационную установку агента, которая является движущей силой его действий. Поэтому, представление и обработка целей – это одна из главных функций Jadex, четыре вида целей (выполнения, достижения, запроса, поддержания) и мета-цель, метацель может быть использована в процессе выбора плана для вынесения заключения о событиях и соответственных планах.

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

	В Jadex, цели сильно типизированы в смысле, что все типы целей могут быть идентифицированы через имя и все параметры цели должны быть декларированы в XML.

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

	Полагается, что цель выполнения используется, когда некоторое действие должно быть выполнено.

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

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

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

	Мета-цель используется для рассуждений мета-уровня. Имеется в виду, когда бы не возникло событие или цель и определено, что необходимо произвести рассуждение мета-уровня (то есть, потому что существует множество подходящих планов), то соответствующая цель мета-уровня или событие будет создано и отправлено. После соответствующий мета-план выполняется, чтобы достигнуть мета-цели (то есть найти план для выполнения). Когда завершена мета-цель, результат содержит выбранные планы, которые запланированы на выполнение [14,17].

3.2.2 Планы агента. Планы представляют собой определенные действия агента в среде функционирования и предопределяются разработчиком системы, составляя библиотеку действия планов выполнения агентом. В зависимости от текущей ситуации выполнения системы, в которой функционирует агент, выбирается соответствующий план действия на выполнения агентом. Выбор планов осуществляется автоматически платформой Jadex.

Структура планов в Jadex состоит из двух частей: дескриптор плана (head plan), объявляемый в файле ADF, определяющий обстоятельства, при которых выполняется Java-класс плана (body plan), в котором определяются функции и дальнейшее функционирование системы. Для вызова плана в системе предусмотрено установка, так называемых меток реакции, триггеров плана. Они определяют внутренне сообщения и целевые события системы соответствующие планам. После чего начинается, выполняется класс плана из файла java. Существуют варианты выполнения плана при первом запуске агента, для этого агент инициализируется при запуске агента с первоначальными значениями выполнения плана.

Планы взаимодействуют и выполняются с целями и знаниями агента, которые влияют и модернизируют план для выхода в систему, обрабатывая полученное событие в рамках исполняемого агента [15,16].

3.2.3 Знания агента. Знания представляют осведомленность агента об окружающей среде и о себе непосредственно. В Jadex знания могут быть любые объекты java. Они сохранены в базе знаний и могут быть упомянуты в выражениях, доступны и изменяются в зависимости от планов, использующих базы знаний приложения. Знания описываются в ADF-файле и обращаются к измененному плану, определяя единственную оценку плана и соответствии его требуемым результатом. Знания состоят из фактов, которые ссылаются на суперклассы, определяя объекты классов.

В модуле знаний содержится, база знаний подобна простому хранилищу данных, которая позволяет чистую связь между различными планами посредством общедоступных знаний. Вопреки большинству PRS-стилей BDI системы, Jadex позволяет хранить произвольные объекты Java как знания в его базе знаний.

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




ВЫВОДЫ



Мультиагентная технология с использованием интеллектуальных агентов применена в дистанционном обучении. Где каждому пользователю будет заданны агенты, которые способны автономно решать задачи, приобретать и систематизировать знания, строить модель пользователя на основе общения с ним и даже коммуницировать с другими агентами системы, позволят упростить и улучшить процесс получения человеком знаний и информации в мире. Агент – это автономная, реактивная вычислительная система, обычно с центральным местоположением контроля, поэтому может общаться с другими агентами через некоторый вид языка коммуникации. Другое общее представление агента - это активный объект или связанный процесс со способностью замечать причины и действия. Агентно-ориентированое программирование – это подход к созданию агентов, которые предоставляют их программирование в терминах мнений, как например план, факт, и цель. Мультиагентная система - система, составленная из многоразового, взаимодействия агентов. Мультиагентные системы есть достаточно мощным средством и с успехом применяется для широкого класса прикладных задач, включая те, которые тяжело, а иногда и совсем невозможно, решить другими методами.

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

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

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

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

	Для выполнения задач, поставленных в курсовой работе:

	проанализированы методы оптимизации структур вычислительных систем;

	исследованы основные принципы и концепции интеллектуальных агентов;

	применено средство для поиска информации с помощью интеллектуальных агентов в мультиагентной системе для оптимизации работы дистанционного обучения;

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

	Основными функциями разработанного программного модуля есть поиск оптимального варианта дополнительной информации, которая в данный момент наиболее подходит для пользователя.

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




ПЕРЕЧЕНЬ ССЫЛОК



			Основы технологий ДО http://www.websoft.ru/db/wb/42D07B203E7BFAB1C3256 C24004EE7FF/doc.html

			Интернет технологии в образовании - дистанционное обучение http://www.curator.ru.htm

		Multiagent Systems. A Modern Approach to Distributed Modern Approach to Artificial Intelligence. Edited by Gerhard Weiss. The MIT Press. Cambridge, Massachusetts. London, England. 1999 Massachusetts Institute of Technology.

				Мультиагентные системы http://teormin.ifmo.ru/education/intro/multiagent-systems.html

					Самоорганизация и эволюция в открытых мультиагентных системах для холонических предприятий http://eup.ru/pages/R06/Biblio/2002-08-05/F182.htm

		Proceedings of the International Conference for Internet Technology and Secured Transactions (ICITST-2006). Editors Charles A. Shoniregun, Alex Logvynovskiy. Published by the e-Centre for Infonomics, UK.

				Jadex Tool Guide. A. Pokahr, L. Braubach, R. Leppin, and A. Walczak. Distributed Systems Group. University of Hamburg, Germany. 2005. http://vsis-www.informatik.uni-hamburg.de

				Jadex User Guide. A. Pokahr, L. Braubach, and A. Walczak. . Distributed Systems Group. University of Hamburg, Germany. 2005. http://vsis-www.informatik.uni-hamburg.de

		System Architecture with XML. Berthold Daum Udo Merten. Morgan Kaufmann Publishers. San Francisco, USA.. 2003 by Elsevier Science http://www.mkp.com/

		Introduction to DTD http://www.w3schools.com/dtd/dtd_intro.asp

					Модели обучения автоматизированных обучающих систем http://systech.miem.edu.ru/2004/n2/Cibulskiy.htm

			Jadex Tutorial. L. Braubach, A. Pokahr, and A. Walczak. Distributed Systems Group. University of Hamburg, Germany. 2005 http://vsis-www.informatik.uni-hamburg.de

				NIST (Nationals Institute of Standards and Technology) http://www.nist.gov/

				Проблемы реализации мультиагентных систем дистанционного обучения в сети Интернет http://www.vedu.ru/info/Announce/PHT2000/thesis.asp?str=4_04

					Использование мультиагентного онтологического подхода к созданию распределенных систем дистанционного обучения http://ifets.ieee.org/russian/depository/ v7_i2/pdf/3.pdf

		Система автоматизированного сетевого и дистанционного обучения с мультиагентной архитектурой http://www.ito.su/main.php?pid=26&fid=4317&PHPSESSID= d12d7b5d09fc001d24e3d7212d732be2

		ДСТУ 3008-95 Документация. Отчеты в сфере науки и техники. Структура и правила оформления, Госстандарт Украины, 1995.

		FIPA Agent Management Specification. 1996-2002 Foundation for Intelligent Physical Agents http://www.fipa.org/




Приложение А



Список терминов в формате XML

																																

																																GlossaryTerm.xml

																																<?xml version="1.0"?>

																																<!DOCTYPE glossary SYSTEM "GlossaryTerm.dtd">

																																<glossary title ="The XML- Helpbook" orderDate="2006?12?12">

																																<terms>

																																<term value="term1">

																																<name>dictionary</name>

																																<count>1</count>

																																<definition count="1">An abstract data type storing items, or values. A value is accessed by an associated key. Basic operations are new, insert, find and delete. </definition>

																																<giperlink>abstract data type</giperlink>

																																<giperlink>key</giperlink>

																																</term>

																																<term value="term2">

																																<name>heap</name>

																																<count>1</count>

																																<definition count="1">A complete tree where every node has a key more extreme (greater or less) than or equal to the key of its parent. Usually understood to be a binary heap. </definition>

																																<giperlink>complete tree</giperlink>

																																<giperlink>key</giperlink>

																																<giperlink>node</giperlink>

																																<giperlink>parent</giperlink>

																																<giperlink>binary heap</giperlink>

																																</term>

																																<term value="term3">

																																<name>linked list</name>

																																<count>1</count>

																																<definition count="1">A list implemented by each item having a link to the next item. </definition>

																																<giperlink>list</giperlink>

																																<giperlink>link</giperlink>

																																</term>

																																<term value="term4">

																																<name>queue</name>

																																<count>1</count>

																																<definition count="1">A collection of items in which only the earliest added item may be accessed. Basic operations are add (to the tail) or enqueue and delete (from the head) or dequeue. Delete returns the item removed. Also known as "first-in, first-out" or FIFO. </definition>

																																<giperlink>head</giperlink>

																																<giperlink>tail</giperlink>

																																</term>

																																<term value="term5">

																																<name>stack</name>

																																<count>1</count>

																																<definition count="1">A collection of items in which only the most recently added item may be removed. The latest added item is at the top. Basic operations are push and pop. Often top and isEmpty are available, too. Also known as "last-in, first-out" or LIFO. </definition>

																																</term>

																																<term value="term6">

																																<name>tree</name>

																																<count>2</count>

																																<image ref="./tree.bmp"/>

																																<definition count="1">A data structure accessed beginning at the root node. Each node is either a leaf or an internal node. An internal node has one or more child nodes and is called the parent of its child nodes. All children of the same node are siblings. Contrary to a physical tree, the root is usually depicted at the top of the structure, and the leaves are depicted at the bottom. </definition>

																																<definition count="2">A connected, undirected, acyclic graph. It is rooted and ordered unless otherwise specified. </definition>

																																<giperlink>node</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>parent</giperlink>

																																<giperlink>root</giperlink>

																																<giperlink>leaf</giperlink>

																																<giperlink>internal node</giperlink>

																																<giperlink>child</giperlink>

																																<giperlink>siblings</giperlink>

																																<giperlink>connected</giperlink>

																																<giperlink>undirected</giperlink>

																																<giperlink>acyclic graph</giperlink>

																																<giperlink>rooted</giperlink>

																																<giperlink>ordered</giperlink>

																																</term>

																																<term value="term7">

																																<name>array</name>

																																<count>1</count>

																																<definition count="1">A set of items which are randomly accessible by numeric index. </definition>

																																</term>

																																<term value="term8">

																																<name>array index</name>

																																<count>1</count>

																																<definition count="1">The location of an item in an array. </definition>

																																<giperlink>array</giperlink>

																																</term>

																																<term value="term9">

																																<name>child</name>

																																<count>1</count>

																																<definition count="1">A node of a tree referred to by a parent node. See the figure at tree. Every node, except the root, is the child of some parent. </definition>

																																<giperlink>node</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>parent</giperlink>

																																<giperlink>root</giperlink>

																																</term>

																																<term value="term10">

																																<name>circular list</name>

																																<count>1</count>

																																<definition count="1">A variant of a linked list in which the nominal tail is linked to the head. The entire list may be accessed starting at any item and following links until one comes to the starting item again. </definition>

																																<giperlink>linked list</giperlink>

																																<giperlink>link</giperlink>

																																<giperlink>tail</giperlink>

																																</term>

																																<term value="term11">

																																<name>complete tree</name>

																																<count>1</count>

																																<definition count="1">A tree in which all leaf nodes are at some depth n or n-1, and all leaves at depth n are toward the left. </definition>

																																<giperlink>tree</giperlink>

																																<giperlink>depth </giperlink>

																																<giperlink>leaf</giperlink>

																																</term>

																																<term value="term12">

																																<name>connected graph</name>

																																<count>1</count>

																																<definition count="1">An undirected graph that has a path between every pair of vertices. </definition>

																																</term>

																																<term value="term13">

																																<name>depth</name>

																																<count>1</count>

																																<definition count="1">Of a node, the distance from the node to the root of the tree. </definition>

																																<giperlink>node</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>root</giperlink>

																																</term>

																																<term value="term14">

																																<name>doubly linked list</name>

																																<count>1</count>

																																<definition count="1">A variant of a linked list in which each item has a link to the previous item as well as the next. This allows easily accessing list items backward as well as forward and deleting any item in constant time. </definition>

																																<giperlink>linked list</giperlink>

																																<giperlink>link </giperlink>

																																</term>

																																<term value="term15">

																																<name>dynamic array</name>

																																<count>1</count>

																																<definition count="1">An array whose size may change over time. Items are not only added or removed, but memory used changes, too.

																																</definition>

																																<giperlink>array</giperlink>

																																</term>

																																<term value="term16">

																																<name>height</name>

																																<count>1</count>

																																<definition count="1">The maximum distance of any leaf from the root of a tree. If a tree has only one node (the root), the height is zero.

																																</definition>

																																<giperlink>leaf</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>root</giperlink>

																																</term>

																																<term value="term17">

																																<name>internal node</name>

																																<count>1</count>

																																<definition count="1">A node of a tree that has one or more child nodes, equivalently, one that is not a leaf. </definition>

																																<giperlink>leaf</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>node</giperlink>

																																<giperlink>child</giperlink>

																																</term>

																																<term value="term18">

																																<name>leaf</name>

																																<count>1</count>

																																<definition count="1">A node in a tree without any children. See the figure at tree. </definition>

																																<giperlink>leaf</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>node</giperlink>

																																<giperlink>children</giperlink>

																																</term>

																																<term value="term19">

																																<name>linear search</name>

																																<count>1</count>

																																<definition count="1">Search an array or list by checking items one at a time. </definition>

																																<giperlink>list</giperlink>

																																<giperlink>array</giperlink>

																																</term>

																																<term value="term20">

																																<name>link</name>

																																<count>1</count>

																																<definition count="1">A reference, pointer, or access handle to another part of the data structure. Often, a memory address. </definition>

																																<giperlink>list</giperlink>

																																<giperlink>array</giperlink>

																																</term>

																																<term value="term21">

																																<name>list</name>

																																<count>1</count>

																																<definition count="1"> A collection of items accessible one after another beginning at the head and ending at the tail. </definition>

																																<giperlink>head</giperlink>

																																<giperlink>tail</giperlink>

																																</term>

																																<term value="term22">

																																<name>matrix</name>

																																<count>1</count>

																																<definition count="1">A two-dimensional array. By convention, the first index is the row, and the second index is the column. </definition>

																																</term>

																																<term value="term23">

																																<name>node</name>

																																<count>2</count>

																																<definition count="1">A unit of reference in a data structure. Also called a vertex in graphs and trees. </definition>

																																<definition count="2">A collection of information which must be kept at a single memory location.

																																</definition>

																																<giperlink>graphs</giperlink>

																																<giperlink>trees</giperlink>

																																<giperlink>vertex</giperlink>

																																</term>

																																<term value="term24">

																																<name>order</name>

																																<count>4</count>

																																<definition count="1">The height of a tree. </definition>

																																<definition count="2">The number of children of the root of a binomial tree. </definition>

																																<definition count="3">The maximum number of children of nodes in a B-tree. </definition>

																																<definition count="4">The number of data streams, usually denoted, in a multiway merge. </definition>

																																<giperlink>height</giperlink>

																																<giperlink>tree</giperlink>

																																<giperlink>children</giperlink>

																																<giperlink>root</giperlink>

																																<giperlink>node</giperlink>

																																</term>

																																<term value="term25">

																																<name>ordered linked list</name>

																																<count>1</count>

																																<definition count="1">A linked list whose items are kept in some order. </definition>

																																<giperlink>linked list</giperlink>

																																</term>

																																<term value="term26">

																																<name>ordered tree</name>

																																<count>1</count>

																																<definition count="1">A tree where the children of every node are ordered, that is, there is a first child, second child, third child, etc.

																																</definition>

																																<giperlink>tree</giperlink>

																																<giperlink>children</giperlink>

																																<giperlink>node</giperlink>

																																</term>

																																<term value="term27">

																																<name>parent</name>

																																<count>1</count>

																																<definition count="1">Of a node: the tree node conceptually above or closer to the root than the node and which has a link to the node. See the figure at tree. </definition>

																																<giperlink>tree</giperlink>

																																<giperlink>link</giperlink>

																																<giperlink>root</giperlink>

																																<giperlink>node</giperlink>

																																</term>

																																<term value="term28">

																																<name>root</name>

																																<count>1</count>

																																<definition count="1">The distinguished initial or fundamental item of a tree. The only item which has no parent. See the figure at tree.

																																</definition>

																																<giperlink>tree</giperlink>

																																<giperlink>parent</giperlink>

																																</term>

																																<term value="term29">

																																<name>search</name>

																																<count>1</count>

																																<definition count="1">To look for a value or item in a data structure. There are dozens of algorithms, data structures, and approaches. </definition>

																																</term>

																																<term value="term30">

																																<name>self-organizing list</name>

																																<count>1</count>

																																<definition count="1">A list that reorders the elements based on some self-organizing heuristic to improve average access time. </definition>

																																<giperlink>list</giperlink>

																																<giperlink>self-organizing heuristic </giperlink>

																																</term>

																																<term value="term31">

																																<name>sibling</name>

																																<count>1</count>

																																<definition count="1">A node in a tree that has the same parent as another node is its sibling. </definition>

																																<giperlink>tree</giperlink>

																																<giperlink>parent</giperlink>

																																<giperlink>node</giperlink>

																																</term>

																																<term value="term32">

																																<name>sorted array</name>

																																<count>1</count>

																																<definition count="1">An array whose items are kept sorted, often so searching is faster. </definition>

																																<giperlink>array</giperlink>

																																</term>

																																<term value="term33">

																																<name>sorted list</name>

																																<count>1</count>

																																<definition count="1">A list whose items are kept sorted. </definition>

																																<giperlink>list</giperlink>

																																</term>

																																<term value="term34">

																																<name>square matrix</name>

																																<count>1</count>

																																<definition count="1">A n*n matrix, i.e., one whose size is the same in both dimensions. </definition>

																																<giperlink>matrix</giperlink>

																																</term>

																																<term value="term35">

																																<name>tail</name>

																																<count>2</count>

																																<definition count="1">The last item of a list. </definition>

																																<definition count="2">All but the first item of a list; the list following the head. </definition>

																																<giperlink>list</giperlink>

																																</term>

																																</terms>

																																</glossary>




Приложение В



Описание тегов XML документа в формате DTD

																																

																																GlossaryTerm.dtd

																																<?xml version="1.0" encoding="windows-1251"?>

																																<!ELEMENT glossary (terms)>

																																<!ATTLIST glossary

																																title CDATA #REQUIRED

																																orderDate CDATA "">

																																

																																<!ELEMENT terms (term+)>

																																<!ELEMENT term (name,definition+)>

																																<!ATTLIST term

																																value CDATA #REQUIRED>

																																

																																<!ELEMENT name (#PCDATA)>

																																

																																<!ELEMENT count (#PCDATA)>

																																

																																<!ELEMENT image EMPTY>

																																<!ATTLIST image

																																ref CDATA #REQUIRDE>

																																

																																<!ELEMENT definition (#PCDATA)>

																																<!ATTLIST definition

																																count CDATA #REQUIRDE>

																																

																																<!ELEMENT giperlink (#PCDATA)>