Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Возможности языка Visual Basic для создания ЭС.




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

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

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

Объект одно из основных понятий Visual Basic и объектно-ориентированного программирования. Объектом называется некая сущность, которая, во-первых, чётко проявляет своё поведение, а во-вторых, является представителем некоторого класса подобных объектов.

Классом объектов в объектно-ориентированных языках называется общее описание таких объектов, для которых характерно наличие множества общих свойств и действий.

СОБЫТИЕ - действие или ситуация, связанная с объектом, например: щелчок мыши или нажатие клавиши. События могут инициироваться в программном коде приложения или непосредственно в системной среде.

СВОЙСТВА - определяют представление, поведение и другие черты объекта. Цвет фона формы, строка соединения (в сеансе БД), размер элементов и т.п. - все это свойства тех или иных объектов.

Свойства: Caption - имя, Enabled - доступ, Height - высота.

МЕТОДЫ - программные процедуры, которые выполняют некоторую обработку, связанную с объектом, определенные действия над объектом.

Объектно-ориентированная модель аналогична во многом фреймовой модели, реализуя

обмен сообщениями между объектами, в большей степени ориентирована на решение

динамических задач и отражение поведенческой модели. Отличия от фреймовой модели

заключаются в чётком понятии класс объектов и экземпляр объекта, а также в способе

активации процедур объектами.

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

Пакет Microsoft Visual Basic представляет собой идеальную платформу для создания интерфейсов с локальными базами данных и базами данных типа клиент/сервер в среде Windows.

Visual Basic позволяет создавать различные приложения для работы с базами данных - от простейших локальных баз данных до многоуровневой архитектуры клиент/сервер, а также приложений для работы в intranet и Internet с использованием таких передовых технологий, как DHTML, XML и ASP.

Также очень важны вопросы проектирования реляционных баз данных и использования языка SQL. Язык структурированныхзапросов является стандартным средством для работы с базами данных и может использоваться как для интерактивнойработы с базами данных, так и включаться в языки программирования. Применительно к Visual Basic SQL позволяет:

· создавать, модифицироватьили удалять таблицы в базе данных Access;

· вставлять, удалять или модифицировать записи таблиц;

· получать сводную информациюо данных в таблице;

· поиск данных в одной или более таблицах по запросу.

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

Visual Basic предоставляет разработчику все средства для создания «графического интерфейса пользователя»:

· возможность построения много документального интерфейса;

· создание пользовательского меню;

· травления ACTIVE-X и многое др.

В заключении приведем некоторые подробности реализации механизма вывода с помощью деревьев.

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

Методы слепого перебора, полного перебора или поиска в глубину являются исчерпывающими процедурами поиска путей к целевой вершине. В принципе эти методы обеспечивают решение задачи поиска пути, но часто эти методы невозможно использовать, поскольку при переборе придется раскрыть слишком много вершин. Прежде чем нужный путь будет найден. Для многих задач можно сформулировать правила, позволяющие уменьшить объем перебора. Все такие правила, используемые для ускорения поиска, зависят or специфической информации о задаче, представляемой в виде графа. Будем называть такую информацию эвристической информацией (помогающей найти решение) и называть использующие ее процедуры поиска эвристическими методами поиска. Нам необходима мера, которая позволяла бы оценивать "перспективность" вершин. Такие меры называют оценочными функциями. Оценочная функция должна обеспечивать возможность ранжирования вершин- кандидатов на раскрытие- с тем, чтобы выделить ту вершит', которая с наибольшей вероятностью находится на лучшем пути к цели.

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

Рассмотрим некоторые общие способы реализации деревьев на языке Visual Basic, Один из способов - создать отдельный класс для каждого типа узлов дерева. Для построения дерева порядка 3можно определять структуры данных для узлов, которые имеют ноль, один, два или три дочерних узла. Этот подход был бы довольно неудобным. Кроме того, что нужно было бы управлять четырьмя различными классами, в классах потребовались бы какие-то флаги, которые бы указывали тип дочерних узлов. Алгоритмы, которые оперировали бы этими деревьями, должны были бы уметь работать со всеми различными типами деревьев.

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

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

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

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

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

Представление нумерацией связей  позволяет компактно представить деревья, графы и сети при помощи массива. Для представления дерева нумерацией связей, в массиве FirstLink записывается индекс для первых ветвей, выходящих из каждого узла. В другой массив, ToNode, заносятся узлы, к которым ведет ветвь.

Сигнальная метка в конце массива FirstLink указывает на точку сразу после последнего элемента массива ToNode. Это позволяет определить, какие ветви выходят из каждого узла.

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

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

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

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

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

 

 










Последнее изменение этой страницы: 2018-06-01; просмотров: 186.

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