Структура экспертных систем


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

Представление знаний


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

Методы вывода


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

Система пользовательского интерфейса


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

Экспертные системы, базирующиеся на правилах


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

Рекомендации по разработке экспертных систем


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

Создание внутренней базы знаний экспертных систем на ПРОЛОГЕ.


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

Внутренняя база данных


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

РАБОТА С ВНЕШНЕЙ БАЗОЙ ДАННЫХ


db_create(СелекторБД,ИмяФайла,Место) (db_selector,string,place) — (i,i,i) Предикат создает новый файл ИмяФайла и связанную с ним базу данных (БД): 1) на диске, если Место=in_file; 2) в памяти, если Место=in_memory; 3) в расширенной памяти, если Место=in_ems.

ДЕРЕВЬЯ ВНЕШНЕЙ БАЗЫ ДАННЫХ


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

ВСТРОЕННЫЕ ПРЕДИКАТЫ ТУРБО-ПРОЛОГА


Встроенные (стандартные) предикаты Турбо-Пролога являются той основой, на которой строится язык. В первом разделе настоящего приложения предикаты сгруппированы в зависимости от их функций. Во втором разделе они приводятся уже в алфавитном порядке; о каждом из них дается такая информация: предикат (список аргументов) (типы доменов): (возможные способы употребления)

Алфавитный список предикатов


asserta(<факт>) (dbasedom): (вх) заносит факт (утверждение) в начало резидентной БД (домен, обозначенный как dbasedom, автоматически объявляется для каждого предиката из раздела database) assertz(<факт>) (dbasedom): (вх) заносит факт (утверждение) в конец резидентной БД 

Литература по прологу


1. Лоpьеp Ж.- Л. Системы искусственного интеллекта.-М.:Миp,1991.-568с. 2. Таунсенд К.,Фохт Д. Пpоектиpование и пpогpаммная pеализация экспеpтных систем на пеpсональных ЭВМ.- М.:Финансы и статистика,1990.- 520с.

ОПРЕДЕЛЕНИЕ ОСНОВНЫХ ПАРАМЕТРОВ РЕАЛИЗАЦИИ АЛГОРИТМОВ НА ЭВМ


Лабораторная работа № 1 ОПРЕДЕЛЕНИЕ ОСНОВНЫХ ПАРАМЕТРОВ РЕАЛИЗАЦИИ АЛГОРИТМОВ НА ЭВМ 1. Цель работы. Исследование свойств алгоритмов, реализуемых на ЭВМ, и способов определения основных параметров машинных алгоритмов. В результате выполнения лабораторной работы студент получает знания по основным параметрам и характеристикам алгоритмов и навыки по их определению для различного класса задач, с использованием двух основных методов Читать далее

ОПРЕДЕЛЕНИЕ МИНИМАЛЬНОГО БЫСТРОДЕЙСТВИЯ ПРОЦЕССОРА


Лабораторная работа №2 ОПРЕДЕЛЕНИЕ МИНИМАЛЬНОГО БЫСТРОДЕЙСТВИЯ ПРОЦЕССОРА 1. Цель работы Исследование способов организации вычислительного процесса в цифровых управляющих системах и определение быстродействия процессора ЦВМ. В ходе выполнения работы студент знакомится с основными способами организации вычислительного процесса для различных режимов работы ВС и получает навыки расчета его количественных характеристик и формирования требований к быстродействию процессора для Читать далее

ОПРЕДЕЛЕНИЕ ХАРАКТЕРИСТИК РАЗОМКНУТЫХ СТОХАСТИЧЕСКИХ СЕТЕЙ


Лабораторная работа №3 ОПРЕДЕЛЕНИЕ ХАРАКТЕРИСТИК РАЗОМКНУТЫХ СТОХАСТИЧЕСКИХ СЕТЕЙ 1. Цель работы Исследование методов моделирования вычислительных систем при различных режимах обработки данных на основе аппарата разомкнутых стохастических сетей. В результате выполнения работы студент знакомится с принципами построения математических моделей ВС на основе использования теории массового обслуживания и получает навыки по расчету основных характеристик вычислительного процесса и Читать далее

ОПРЕДЕЛЕНИЕ ХАРАКТЕРИСТИК ЗАМКНУТЫХ СТОХАСТИЧЕСКИХ СЕТЕЙ


Лабораторная работа №4 ОПРЕДЕЛЕНИЕ ХАРАКТЕРИСТИК ЗАМКНУТЫХ СТОХАСТИЧЕСКИХ СЕТЕЙ Цель работы Исследование методов моделирования вычислительных систем, работающих в режимах, характеризующихся постоянством поступления заявок, на основе использования аппарата замкнутых стохастических сетей. В результате выполнения работы студент знакомится с принципами построения математических моделей ВС на основе использования теории массового обслуживания и получает навыки по расчету основных характеристик вычислительного Читать далее

Создание графических изображений в ИСР C++ Builder


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

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


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

Форматы графических файлов


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

Классы для хранения графических объектов TPicture, TBitmap, Tkon и TMetafile


Выше были рассмотрены типы графических файлов. Для хранения графических объектов, содержащихся в битовых матрицах, пиктограммах и метафайлах, в C++Builder определены соответствующие классы — TBitmap, TIcon и TMetafile. Все они являются производными от абстрактного базового класса графических объектов TGraphic. Кроме того определен класс, являющийся надстройкой над TBitmap, TIcon и TMetafile и способный хранить любой из этих Читать далее

Создание файла изображения в C++Builder


В C++Builder имеется встроенный Редактор Изображений — Image Editor, который вызывается командой Tools Image Editor. Окно Редактора Изображений представлено на рис. 3 а. Это сравнительно простой редактор с не очень богатыми возможностями. Он позволяет создавать изображения в виде битовых матриц, пиктограмм, изображений курсоров и не только сохранять созданные изображения в виде файлов, но и сразу Читать далее

Создание пиктограммы для шаблона компонента в библиотеке


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

Создание пиктограммы для кнопки


Теперь мы попробуем создать пиктограмму для кнопки. Такие кнопки, как SpeedButton и BitBtn, могут воспринимать пиктограммы, загружаемые в их свойство Gliph. Одно изображение пиктограммы имеет размер 16×16. Но в одном файле может содержаться до четырех изображений такого размера. Самое левое соответствует отжатой кнопке. Второе слева соответствует недоступной кнопке, когда ее свойство Enabled равно false.

Работа с файлами ресурсов


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

Канва — холст для рисования


Многие компоненты в C++Builder имеют свойство Canvas (канва, холст), представляющее собой область компонента, на которой можно рисовать или отображать готовые изображения. Это свойство имеют формы, графические компоненты Image, PaintBox, Bitmap и многие другие. Канва содержит свойства и методы, существенно упрощающие графику C++Builder. Все сложные взаимодействия с системой спрятаны для пользователя, так что рисовать в C++Builder Читать далее

Рисование по пикселям


Рисовать на канве можно разными способами. Первый вариант — рисование по пикселям. Для этого используется свойство канвы Pixels. Это свойство представляет собой двумерный массив Canvas->Pixels[int X][int Y], который отвечает за цвета канвы. Например, Canvas->Pixels[10][20] соответствует цвету пикселя, 10-го слева и 20-го сверху. С массивом пикселей можно обращаться как с любым свойством: изменять цвет, задавая пикселю Читать далее

Рисование с помощью пера Реп


У канвы имеется свойство Pen — перо. Это объект, в свою очередь имеющий ряд свойств. Одно из них уже известное вам свойство Color — цвет, которым наносится рисунок. Второе свойство — Width (ширина линии). Ширина задается в пикселях. По умолчанию ширина равна 1. Свойство Style определяет вид линии. Это свойство может принимать следующие значения:

Brush — кисть


У канвы имеется свойство Brush — кисть. Это свойство определяет фон и заполнение замкнутых фигур на канве. Brush — это объект, имеющий в свою очередь ряд свойств. Свойство Color определяет цвет заполнения. Свойство Style определяет шаблон заполнения (штриховку).

Режимы рисования


У пера Pen имеется еще одно свойство, которое мы пока не рассматривали. Это свойство — Mode (режим). Возможные значения Mode приведены в справочной части книги в главе 16. По умолчанию значение Mode = pmCopy. Это означает, что линии проводятся цветом, заданным в свойстве Color. Но возможны и другие режимы, в которых учитывается не только цвет Читать далее