5.1. Основные понятия
В повседневной жизни, на производстве, в научно-исследовательской, инженерной или любой другой деятельности человек постоянно сталкивается с решением задач. Задачи, которые мы решаем, по своему назначению можно разделить на две категории:. вычислительные задачи целью которых является определение неко-торой величины, и функциональные задачи, предназначенные для создания некого аппарата, выполняющего определенные действия — функции. Например, проектирование нового здания требует реше-нияя задачи расчета прочности его фундамента, несущих опорных конструкций, расчета финансовых затрат на строительство, определение оптимального числа работников и т.д. Для повышения производительности труда строителей создано немало машин функционального назначения (решены функциональные задачи), такие как экскаватор, бульдозер, подъемный кран и др.
История развития средств вычислительной техники повествует о том, что мощным толчком для создания первых вычислительных машин стала вторая мировая война. Для успешного ведения войны требовалось решать множество вычислительных задач. Немецкий инженер Конрад Цузе сконструирован вычислительную машину Z2 (1941 г.) для выполнения необходимых расчетов при проектировании самолетов и баллистических снарядов. Английские инженеры создали вычислительную машину «Колосс» (1943 г.) для дешифровки перехваченных сообщений вражеской армии. Американский инженер Говард Эйкен для выполнения баллистических расчетов создал компьютер «Марк I» (1944 г.). Компьютеры первого и второго поколения использовались для решения вычислительных задач, для инженерных, научных, финансовых расчетов, для обработки больших объемов данных. Начиная с третьего поколения, область применения ЭВМ включает и решение функциональных задач: это обработка баз данных, управление, проектирование. Современный компьютер может выполнять практически любые задачи, а массовое
использование персональных компьютеров и повсеместное применение новых информационных технологий отводит ему особую роль для решения любых задач.
С точки зрения информатики, решение любой задачи представляет замкнутую технологическую последовательность (рис. 5.1):
Рис. 5.1. Этапы решения задачи
В этом ряду каждый элемент играет свою особую роль.
Объектом (от лат. objectum — предмет) называется все то, что противостоит субъекту в его практической и познавательной деятельности, все то, на что направлена эта деятельность. Под объектами понимаются предметы и явления, как доступные, так и недоступные чувственному восприятию человека, но имеющие видимое влияние на другие объекты (например, гравитация, инфразвук _или электро-магнитные волны). Объективная дальность, существующая независимо от нас, является объектом для человека в любой его деятельности и взаимодействует с ним. Поэтому объект всегда должен рассматриваться во взаимодействии с другими объектами, с учетом их взаимовлияния.
Деятельность.человека обычно идет по д вум направлениям:Ис -следование _ свойств объекта с целью их использования (или нейтра-лизации) создание новых обьектов,имеющих полезныесвойства. Первое направление относится к научным исследованиям и большую роль при их проведении имеет г ипотеза, т.е. предсказание свойств объекта при недостаточной его изученности. Второе направление относится к инженерному проектированию. При этом важную роль играет понятие аналогии- суждение о каком-либо сходстве известного и проектируемого объекта. Аналогия может быть полной или частичной. Это понятие относительно и определяется уровнем абстрагирования и целью построения аналогии. Любой аналог (образ) _ какого-либо объекта, процесса или явления. используемый в качестве заменителя (представителя) оригинала, называется моделью (от лат, modulus - образец).
Исследование объектов, процессов или явлений путем построения и изучения их моделей для определения или уточнения характеристик оригинала называется моделированием. Моделирование может
быть определено как представление объекта моделью для получения
информации об этом объекте путем проведения экспериментов с его
моделью. Теория замещения объектов-оригиналов объектом-моделью
называется теорией моделирования.
Если результаты моделирования подтверждаются и могут служить основой для прогнозирования поведения исследуемых объектов, то говорят, что модель адекватна объекту. Степень адекватности зависит от цели и критериев моделирования.
Все многообразие способов моделирования, рассматриваемого теорией моделирования, можно условно разделить на две группы: / аналитическое и имитационное моделирование. Аналитическое моделирование заключается в построении модели, основанной на описании поведения объекта или системы объектов в виде аналитических выражений — формул. При таком моделировании объект описывается системой линейных или нелинейных алгебраических или дифференциальных уравнений, решение которых может дать представление о свойствах объекта К полученной аналитической модели, с учетом вида и сложности формул применяются аналитические или приближенные численные методы., Реализация численных методов" обычно возлагается на вычислительные машины, обладающие большими вычислительными мощностями. Тем не менее, применение аналитического моделирования ограничено сложностью получения и анализа выражений для больших систем.
Имитационное моделирование предполагает построение модели с характеристиками, адекватными оригиналу на основе какого-либо его физического или информационного принципа. Это означает, что внешнее воздействие на модель объект вызывают идентичные изменения свойств оригинала и модели. При таком моделировании отсутствует общая аналитическая модель большой размерности а объект представлен системой, состоящей из элементов, взаимодействующих между собой и с внешним миром. Задавая внешние воздействия, можно получить характеристики системы и провести их анализ...В последнее время имитационное моделирование все больше ассоциируется с моделированием: объектов на Компьютере, что позволяет в интерактивном режиме исследовать модели самых разных по природе объектов.
5.2. Системный подход в моделировании систем
Классический (или индуктивный ) подход к моделированию рассматривает систему, переходя от часного к общему, и синтезирует ее путем слияния компонент, разрабатываемых отдельно. Системный подход предполагает последовательный переход от общего к часному,. когда в основе рассмотрения лежит цель, при этом объект выде-ляется из окружающего мира.
' При создании нового объекта с полезными свойствами (например, системы управления) задаются критерии, определяющие степень полезности полученных свойств. Так как любой объект моделирования представляет собой систему взаимосвязанных элементов, введем
понятие системы. Система S есть целенаправленное множество взаимосвязанных элементов любой природы. Внешняя среда Е представляет собой множество существующих вне системы элементов любой природы, оказывающих влияние на систему или находящихся под ее воздействием.
При системном подходе к моделированию прежде всего четко
определяется цель моделирования. Создание модели полного аналога оригинала дело трудоемкое и дорогое, поэтому модель создается под определенную цель.
Важным для системного подхода является определение структуры системы совокупности связей между элеметами системы отражающих их взаимодействие. Существует ряд походов к исследованию систем и ее свойств, к которым следует отнести структурный и функциональный. При структурном подходе выявляется состав выделенных элементов системы S и связи между ними. Совокупность элементов и связей позволяет судить о свойствах выделенной части системы. При функциональном подходе рассматриваются функции (алгоритмы поведения системы, причем, каждая функция описывает поведение одного свойства при внешнем воздействии Е. Такой подход не требует знания структуры системы, а ее описание состоит из набора функций ее реакции на внешние воздействия.
Классический метод построения модели использует функциональный подход, при котором в качестве элемента модели принимается компонента, описывающая поведение одного свойства и не отображающая реальный состав элементов. Кроме этого компоненты системы являются изолированными друг от друга, что плохо отражает моделируемую систему. Такой метод построения модели приме -ним лишь для простых систем, так как требует включения в состав функций, описывающих свойства системы, отношения между свойствами, которые могут быть плохо определены или неизвестны.
С усложнением моделируемых систем, когда невозможно учесть все взаимовлияния свойств, применяется системный метод, основанный на структурном подходе. При этом система S разбивается на ряд подсистем Ss со своими свойствами, которые, естественно, проще описать функциональными зависимостями, и определяются связи между подсистемами. В этом случае система функционирует в соответствии со свойствами отдельных подсистем и связей между ними. Это избавляет от необходимости описывать функционально взаимосвязи между свойствами системы 5, делает модель более гибкой, так как изменение свойств одной из подсистем автоматически изменяет свойства системы.
5.3. Классификация видов моделирования
В зависимости от характера изучаемых процессов в системе S и цели моделирования существует множество типов моделей и способов их классификации, например по цели использования наличию случайных воздейвий, отношению ко времени, возможности реализации, облости применения и др. (таблица)
По цели использования модели классифицируются на научный эк сперимент, в котором осуществляется исследование модели с применением различных средств получения данных об объекте, возможности влияния на ход процесса, с целью получения новых данных об объекте или явлении; комплексные испытания и производственный эксперимент, использующие натурное испытание физического объекта для получения высокой достоверности о его характеристиках; оп- тимизационные, связанные с нахождением оптимальных показателей системы (например, нахождение минимальных затрат или определение максимальной прибыли).
По наличию воздействий на систему модели делятся не детерминированные (в системах отсутствуют случайные воздействия) и с moхастические (в системах присутствуют вероятностные воздействия). Эти же модели некоторые авторы классифицируют по способу оценки
Классификации видов моделей
По цели ис- | По наличию | По | По | По области |
воздействий | отношению | возможности | ||
пользования | применения | |||
на систему | ко времени | реализации | ||
Научный | Детермини- | Статические. | Мысленные | Универсаль- |
эксперимент. | рованные. | Динамиче- | (наглядные, | ные. |
Комплексные | Стохастиче- | ские (дис- | символиче- | Специализи- |
испытания и | ские | кретные, не- | ские, матема- | рованные |
производст- | прерывные) | тические). | ||
венный экс- | Реальные | |||
перимент. | (натурные, | |||
Оптимизаци- | физические). | |||
онные моде- | Информаци- | |||
ли | онные |
параметров системы: в детерминированных системах параметры модели оцениваются одним показателем для конкретных значений их исходных данных; в стохастических системах наличие вероятностных характеристик исходных данных позволяет оценивать параметры системы несколькими показателями.
.По отношению ко времени модели разделяют на статические, описывающие систему в определенный момент времени, и динамические, рассматривающие поведение системы во времени. В свою очередь, динамические модели подразделяют на дискретные, в которых все события происходят по интервалам времени, и непрерывные, где все события происходят непрерывно во времени.
По возможности реализации модели классифицируются как мыс ленные, описывающие систему, которую трудно или невозможно моделировать реально, реальные, в которых модель системы представлена либо реальным объектом, либо его частью, и» информационные, реализующие информационные процессы (возникновение, передачу, обработку и использование информации) на компьютере. В свою очередь, мысленные модели разделяют на наглядные(при которых моделируемые процессы и явления протекают наглядно) символические (модель системы представляет логический объект, в котором основные свойства и отношения реального объекта выражены системой знаков или символов) и математические (представляют системы математических объектов, позволяющие получать исследуемые характеристики реального объекта). Реальные модели делят на натурные (проведение исследования на реальном объекте и последующая обработка результатов эксперимента с применением теории подобия) и физические (проведение исследования на установках, которые сохраняют природу явления и обладают физическим подобием).
По области применения модели подразделяют на универсальные, предназначенные для использования многими системами, и специализированные, созданные для исследования конкретной системы.
5.4, Математические модели
Наиболее важным этапом при построении модели является переход от содержательного описания к формальному, что объясняется участием на этом этапе специалистов в предметной области, где существует моделируемая система, и специалистов в области моделирования систем. Наиболее удобным языком для их общения, целью которого является построение адекватной модели системы, обычно, является язык математических описаний. Математическое описание системы компактно и удобно для дальнейших реализаций на компьютере, с целью проведения статистических испытаний, поэтому рассмотрим эти модели в первую очередь.
5.4,1. Построение математической модели системы
Систему S можно представить в виде множества величин, описывающих процесс функционирования реальной системы и образующих следующие подмножества:
подмножество входных воздействий:
(или вектор входящих воздействий х = {х],х2)...>хп }); подмножество воздействий внешней среды:
или вектор воздействия внешней среды );
подмножество собственных параметров системы:
(или вектор внутренних параметров );
подмножество выходных характеристик системы:
(или вектор выходных характеристик ).
Подмножества X, V и H являются независимыми (экзогенными), Y является зависимым (эндогенным) подмножеством. Процесс функционирования системы описывается во времени оператором F, который преобразует экзогенные переменные в эндогенные в соответствии с соотношением
Эта зависимость называется законом функционирования системы S. Закон функционирования F может быть задан в виде функции, функционала, логических условий, алгоритмически или таблично, а также в видесловесного набора правил соответствия. Совокупность зависимостей выходных характеристик системы от времени
называется выходной траекторией y(t). Соотношение (*) является математическим описанием поведением системы во времени, поэтому модели такого типа называются динамическими моделями.
Если закон функционирования у не содержит параметра времени, то такие модели называются статическими и отображают связь
между подмножеством у и подмножествамии записывается
как .
Если в динамической модели дискретизировать время, то в каждый момент времени можно определить состояние системы
. Множество Z всех возможных состояний системы называется пространством состояний системы. Процесс функционирования системы, изменяющей свое состояние в фиксированные моменты времени, можно описать векторными уравнениями
Первое уравнение по начальному состоянию z° и экзогенным переменным определяет следующее состояние, а второе по значению состояния z определяет эндогенные переменные на выходе системы.
5.4.2. Примеры построения динамических моделей
При моделировании непрерывных динамических объектов в качестве моделей обычно выступают дифференциальные уравнения, связывающее поведение объекта со временем. Положительным свойством дифференциальных уравнений является то, что одно и то же уравнение моделирует системы различной физической природы.
В качестве независимой переменной в динамических системах обычно выступает время, от которого зависят неизвестные значения искомой функции, определяющие поведения объекта. Математическое описание модели в общем виде:
— n-мерные векторы и непрерывна
Например, процесс малых колебаний маятника описывается обыкновенным дифференциальным уравнением
Процесс в электрическом колебательном контуре
Очевидно, что если положить
описывающее состояние во времени обеих систем
Общая математическая модель позволяет исследовать одну систему, моделируя работу другой.
Рассмотрим пример построения дифференциальной модели объекта.
Имеется сосуд, площадь горизонтального сечения которого является функцией расстояния сечения от дна сосуда. В начальный момент времени t = 0 высота уровня жидкости равна h метров. Площадь сечения сосуда на высоте х равна S(x), В дне сосуда имеется отверстие площадью s. Определить зависимость уровня воды в сосуде от времени x(t).
Из физики известно, что скорость истечения жидкости v в тот момент, когда высота ее уровня равна х, определяется равенством
где к ~ коэффициент скорости истечения жидкости из отверстия. На бесконечно малом промежутке времени dt истечение жидкости можно считать равномерным, а поэтому за время dt вытечет столбик жидкости, высота которого v dt и площадь сечения s, что, в свою очередь, вызовет понижение уровня жидкости в сосуде на - dx. Приравнивая объем жидкости, вытекшей из отверстия и из сосуда, получим
Полученное дифференциальное уравнение дает зависимость уровня воды в сосуде от времени x(t). Решим теперь конкретную задачу, выбрав сосуд с известным S(x). Пусть имеется цилиндрический сосуд радиусом R с круглым отверстием в дне радиусом г, наполненный водой.
Площадь поперечного сечения сосуда постоянна и не зависит от , площадь отверстия в дне Для воды коэффициент к = 0,6. Подставив эта значения в уравнение, получим
Это уравнение может быть решено аналитически или одним из численных методов.
Модели динамических систем на основе дифференциальных уравнений нашли широкое применение в теории управления различными техническими объектами. Под влиянием неизвестных заранее возмущений фактическое поведение системы отклоняется от желаемого, задаваемого алгоритмом и для приближения ее поведения к необходимому значению, в состав системы вводится автоматическое управление системой. Оно может быть встроено в саму систему, но при моделировании блок управления отделяется от самой системы. В общем виде структура многомерной системы автоматического управления (САУ) представлена на рис. 5.2.
Рис. 5.2. Структура многомерной системы автоматического управления
Эндогенные переменные: — вектора входных и возмущающих воздействий, а также - вектора ошибок и
управляющих воздействий, соответственно. Экзогенные переменные: z(t) — вектор состояния системы, который обычно совпадает с век-
тором выходных переменных, т.е. . (Более подробно о мо-
делировании САУ см.: «Теория автоматического управления»: Учебник для машиностроит. спец. вузов/ Под ред. Ю.М. Соломенцева. М.: Высшая школа, 1999.)
5.5. информационные модели
5,5.1, информационные объекты и связи
Информационные модели во многих случаях опираются на математические модели, так как при решении задач математическая модель исследуемого объекта, процесса или явления неизбежно преобразуется в информационную для ее реализации на компьютере. Определим основные понятия информационной модели.
Информационным объектом называется описание реального объекта, процесса или явления в виде совокупности его характеристик (информационных элементов), называемых реквизитами. Информационный объект определенной структуры (реквизитного состава) образует тип (класс), которому присваивают уникальное имя. Информационный объект с конкретными характеристиками называют экземпляром. Каждый экземпляр идентифицируется заданием ключевого реквизита (ключа). Одни и те же реквизиты в различных информационных объектах могут быть как ключевыми, так и описательными. Информационный объект может иметь несколько ключей.
Пример. Информационный объект СТУДЕНТ имеет реквизитный
состав: номер (номер зачетной книжки — ключевой реквизит), фамилия, имя, отчество, дата рождения, код-места обучения. Информационный объект ЛИЧНОЕ ДЕЛО: номер студента, домашний адрес, но
мер аттестата о среднем образовании, семейное положение, дети.
Информационный объект МЕСТО ОБУЧЕНИЯ включает реквизиты: код (ключевой реквизит), наименование вуза, факультет, группа.
Информационный объект ПРЕПОДАВАТЕЛЬ: код (ключевой реквизит), кафедра, фамилия, имя, отчество, ученая степень, ученое звание,
должность.
Отношения, существующие между реальными объектами, определяются в информационных моделях как связи. Существует три вида связей: один к одному один ко многим и многие ко многим
Связь один к одному определяет соответствие одному экземпляру информационного объекта X не более одного экземпляра информационного объекта Y, и наоборот.
Пример. Информационные объекты СТУДЕНТ и ЛИЧНОЕ ДЕЛО будут связаны отношением один к одному. Каждый студент имеет определенные уникальные данные в личном деле.
При связи один ко многим одному экземпляру информационного объекта X может соответствовать любое количество экземпляров информационного объекта Y, но каждый экземпляр объекта Y связан не более чем с одним экземпляром объекта X.
Пример. Между информационными объектами МЕСТО ОБУЧЕНИЯ и СТУДЕНТ необходимо установить связь один ко многим. Одно и то же место обучения может многократно повторяться для различных студентов.
Связь многие ко многим предполагает соответствие одному экземпляру информационного объекта X любое количество экземпляров объекта Y, и наоборот.
Пример. Информационные объекты СТУДЕНТ и ПРЕПОДАВАТЕЛЬ имеют связь многие ко многим. Каждый студент обучается у множества преподавателей, а каждый преподаватель учит множество студентов.
5.5.2. Примеры информационных моделей
Определим информационную модель как связанную совокупность информационных объектов, описывающих информационные процессы в исследуемой предметной области. Существующие информационные модели разделим на универсальные и специализированные. Универсальные модели предназначены для использования в различных предметных областях, к ним относятся: базы данных и системы управления базами данных, автоматизированные системы управления, базы знаний, экспертные системы. Специализированные модели предназначены для описания конкретных систем, являются уникальными по своим возможностям, более дорогостоящими.
Рассмотрим некоторые универсальные модели.
Базы данных представляют связанную совокупность структурированных данных, относящихся к определенному процессу или явлению, в конкретной предметной области.
Система управления базами данных представляет собой программный комплекс для создания, организации необходимой обработки, хранения и передачи баз данных.
Ядром любой БД является модель представления данных. Модель данных представляет множество структур данных и взаимосвязи между ними.
Различают иерархическую, сетевую и реляционную модели данных.
Иерархическая модель представляет связи между объектами (данными) в виде дерева.
К основным понятиям иерархической модели относятся:
• узел — набор атрибутов данных, описывающих объект;
• связь - линия, связывающая узлы нижнего уровня с одним уз
лом вышележащего уровня. При этом узел вышележащего
уровня называют предком для соответствующих ему узлов ниж
него уровня, в свою очередь, узлы нижнего уровня называют
потомками связанного с ними вышележащего узла (например,
на рис. 5.3. узел ВЗ - предок для узлов С1, С2, а узлы С1,
С2 — потомки узла В1);
• уровень - номер слоя узлов, отсчитанный от корня.
Рис. 5.3. Иерархическая модель данных
Количество деревьев в БД определяется числом корневых записей. К каждому узлу существует единственный путь от корня.
Сетевая структура имеет те же составляющие, что и иерархическая, но каждый узел может быть связан с любым другим узлом (рис. 5.4). Сетевой подход к организации данных является расширением иерархического. В иерархических моделях запись-потомок должна иметь только одного предка; в сетевых — потомок может иметь любое число предков.
Рис. 5.4. Сетевая модель данных
Обе эти модели не получили широкого распространения из-за сложности реализации графов в виде машинных структур данных, кроме того, в них сложно осуществить операции поиска информации.
Набольшее распространение получила третья модель данных - реляционная, она может так же описывать иерархическую и сетевую модель. Реляционная модель ориентирована на организацию данных в виде двумерных таблиц и подробно рассмотрена в 4.4.3.
искусственный интеллект
Идеи моделирования человеческого разума известны с древнейших времен. Впервые об этом упоминается в сочинении философа и теолога Раймунда Луллия (ок.1235 - ок.1315) «Великое искусство», который не только высказал идею логической машины для решения разнообразных задач, исходя из всеобщей классификации понятий (XIV в.), но и попытался ее реализовать. Рене Декарт (1596—1650) и Готфрид Вильгельм Лейбниц (1646-1716) независимо друг от друга развивали учение о прирожденной способности ума к познанию и всеобщих и необходимых истин логики и математики, работали над созданием универсального языка классификации всех знаний. Именно на этих идеях базируются теоретические основы создания искусственного интеллекта. Толчком к дальнейшему развитию модели человеческого мышления стало появление в 40-х гг. XX в. ЭВМ. В 1948 г. американский ученый Норберт Винер (1894-1964) сформулировал основные положения новой науки - кибернетики. В 1956 г. в Стенфордском университете (США) на семинаре под названием «Artificial intelligence» (искусственный интеллект), посвященном решению логических задач, признано новое научное направление, связанное с машинным моделированием человеческих интеллектуальных функций и названное искусственный интеллект. Вскоре эта отрасль разделилась на два основных направления: нейрокибернетику и кибернетику «черного ящика».
Нейрокибернетика обратилась к структуре человеческого мозга как единственно мыслящему объекту и занялась его аппаратным моделированием. Физиологи давно выявили нейроны — связанные друг с другом нервные клетки как основу мозга. Нейрокибернетика занимается созданием элементов, аналогичных нейронам, и их объединением в функционирующие системы, эти системы называют нейросетями. В середине 80-х гг. XX в. в Японии был создан первый нейрокомпьютер, моделирующий структуру человеческого мозга. Его основная область применения — распознавание образов.
Кибернетика «черного ящика» использует другие принципы, структура модели не главное, важна ее реакция на заданные входные данные, на выходе модель должна реагировать как человеческий мозг. Ученые этого направления занимаются разработкой алгоритмов решения интеллектуальных задач для имеющихся вычислительных систем. Наиболее значимые результаты:
• Модель лабиринтного поиска (конец 50-х гг.), в которой рассматривается граф состояний объекта и в нем происходит поиск оптимального пути от входных данных к результирующим. На
практике эта модель не нашла широкого применения.
• Эвристическое программирование (начало 60-х гг.) разрабатывало
стратегии действий на основе заранее известных заданных правил (эвристик). Эвристика — теоретически не обоснованное правило, позволяющее, уменьшить количество переборов в поиске
оптимального пути.
• Методы математической логики. Метод резолюций, позволяющий на основе определенных аксиом автоматически доказывать
теоремы. В 1973 г. создан язык логического программирования
Пролог, позволяющий обрабатывать символьную информацию
С середины 70-х гг. реализуется идея моделирования конкретных знаний специалистов-экспертов. В США появляются первые экспертные системы. Возникает новая технология искусственного интеллекта, основанная на представлении и использовании знаний. С середины 80-х гг. искусственный интеллект коммерциализируется. Растут капиталовложения в эту отрасль, появляются промышленные экспертные.системы, повышается интерес к самообучающимся системам.
При изучении интеллектуальных систем необходимо выяснить, что представляют собой знания и в чем их отличие от данных. Понятие знания определяют по-разному, но какого-либо исчерпывающего определения нет.
Приведем некоторые из определений:
Знания — выявленные закономерности предметной области (принципы, связи, законы), позволяющие решать задачи в этой области.
Знания — хорошо структурированные данные, или данные о данных, или метаданные.
Знания - совокупность сведений, образующих целостное описание, соответствующее некоторому уровню осведомленности об описываемом вопросе, объекте и т.д.
С точки зрения искусственного. интеллекта знания определяют как формализованую информацию, на которую ссылаются.в.процессе,
логического вывода. Для хранения знаний используют базы знаний. База. знаний -основа любой интеллектуальной системы.
С точки зрения решения задач в некоторой предметной области
знания удобно разделить на две категории -факты эвристику.
Первая категория описывает известные в данной области обстоятельства, знания этой категории иногда называют текстовыми, подчеркивая их достаточное описание в литературе. Вторая категория знаний опирается на практический опыт специалиста-эксперта данной
предметной области.
Кроме того, знания делят на процедурные и декларативные .. Исторически первыми появились процедурные знания, «рассыпанные» в алгоритмах. Они управляли данными. Для их изменения требовалось вносить изменения в программы. С развитием искусственного
ОБРАТНЫЙ ВЫВОД: Подтвердить выбранную цель с помощью
имеющихся правил и данных-. 3-й проход:
Шаг 1. Цель - «электронная коммерция»:
Проверяем Пр. 1, данных «знакомство с Интернет» нет, они
становятся новой целью, и есть правило, где она в правой
части. Шаг 2. Цель — «знакомство с Интернет»:
Пр. 2 подтверждает цель и активизирует ее. 2-й проход:.
Шаг 3. Пр. 1 подтверждает искомую цель.
Продукционная модель привлекает разработчиков наглядностью, модульностью, легкостью внесения дополнений и изменений, простотой механизма логического вывода, чаще всего используется в промышленных экспертных системах.
Семантика - это наука, исследующая свойства знаков и знаковых систем, их смысловую связь с реальными объектами. Семантическая сеть - это ориентированный граф, вершины которого есть понятия, а дуги - отношения между ними (рис. 5.5). Это наиболее общая модель знаний, так как в ней имеются средства всех характерных для знаний свойств: внутренней интерпретации, структурированности, семантической метрики и активности.
Рис. 5.5. Семантическая сеть Достоинствами сетевых моделей являются: большие выразительные возможности; наглядность системы знаний, представленной графически; близость структуры сети, представляющей систему знаний, семантической структуре фраз на естественном языке; соответствие современным представлениям об организации долговременной памяти человека. К недостаткам отнесем то, что сетевая модель не содержит ясного представления о структуре предметной области, которая ей соответствует, поэтому ее формирование и модификация затруднительны; сетевые модели представляют собой пассивные структуры, для их обработки используется специальный аппарат формального вывода. Проблема поиска решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети поставленной задачи, что, в свою очередь, говорит еще об одном недостатке модели — сложность поиска вывода на семантических сетях.
Сетевые модели являются наглядным и достаточно универсальным средством представления знаний. Однако их формализация в конкретных моделях представления, использования и модификации знаний представляет достаточно трудоемкий процесс, особенно при наличии множественных отношений между понятиями.
Термин фрейм (от англ. frame — каркас, рамка) предложен для обозначения структуры единицы знаний, которую можно описать некоторой совокупностью понятий, для ее пространственного восприятия. Фрейм имеет определенную внутреннюю структуру, состоящую из совокупности элементов, называемых слотами. Каждый слот, в свою очередь, представляется определенной структурой данных, процедурой, или может быть связан с другим фреймом. Фреймовая модель представляет собой систематизированную в виде единой теории технологическую модель памяти человека и его сознания. В отличие от других моделей, во фреймах фиксируется жесткая структура. В общем случае фрейм определяется следующим образом:
{ИМЯ ФРЕЙМА: (имя 1-го слота: значение 1-го слота); (имя 2-го слота: значение 2-го слота);
(имя N-ro слота: значение N-ro слота)}.
Важным свойством фреймов является наследование свойств, заимствованное из теории семантических сетей. Наследование происходит по АКО-связям (от A Kind Of, что означает «эт.е.»). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуется, т.е. переносятся значения аналогичных слотов. Например, в сети фреймов на рис. 5.6 «конструктор» наследует свойства фреймов «инженер» и «человек», которые стоят на более высоком уровне иерархии.
Рис. 5.6. Сеть фреймов
Модель фрейма достаточно универсальна, позволяет отобразить все многообразие знаний о мире через:
• фреймы-структуры, для обозначения объектов и понятий (лекция, конспект, кафедра);
• фреймы-роли (студент, преподаватель, декан);
• фреймы-сценарии (сдача экзамена, празднование именин, получение стипендии);
• фреймы-ситуации (тревога, рабочий режим учебного дня) и др.
Основным преимуществом фреймов как модели представления
знаний является их способность отражать концептуальную основу организации памяти человека, а также гибкость и наглядность.
Обобщая анализ моделей представления знаний, можно сделать следующие выводы:
• Нельзя дать универсальных рекомендаций по выбору модели.
Этот выбор определяется возможностью и удобством представления исследуемой предметной области с учетом необходимости использования знаний.
Наиболее мощными являются смешанные модели представления
знаний.
Экспертные системы
Предназначены для анализа данных, содержащихся в базах знаний, и выдачи рекомендаций по запросу пользователя. Используются в тех случаях, когда исходные данные хорошо формализуются, но для принятия решения требуются специальные обширные знания. Экспертные системы - это сложные программные комплексы, аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифицированных пользователей.
Предметные области: медицина, фармакология, химия, геология, экономика, юриспруденция и др., в которых большая часть знаний является личным опытом специалистов высокого уровня (экспертов), нуждаются в экспертных системах. Те области, где большая часть знаний представлена в виде коллективного опыта (например, высшая математика), не нуждаются в них.
Экспертная система определяется набором логически взаимосвязанных правил, формирующих знания и опыт специалиста данной предметной области, и механизмом решения, позволяющим распознавать ситуацию, давать рекомендации к действию, ставить диагноз.
Современные экспертные системы способны:
—по совокупности признаков заболевания установить диагноз,
назначить лечение, дозировать медикаменты, выработать программу курса лечения;
—выполнять задачи диагностических систем в исследовании явлений и процессов (например, для анализа крови; управления производством; изучения состояния недр земли, нефтяных полей,
залежей угля и т.п.);
—распознавать речь, на данном этапе в ограниченной области применения;:
—распознавать человеческие лица, отпечатки пальцев и др.
На рис. 5.7 изображены основные компоненты модели экспертной системы: пользователь (специалист предметной области, для которого данная система предназначена), инженер по знаниям (специалист по искусственному интеллекту — промежуточное звено между экспертом и базой знаний), интерфейс пользователя (приложение, реализующее диалог пользователя и системы), база знаний — ядро экспертной системы, решатель (приложение, моделирующее рассуждения эксперта на основе имеющихся в базе знаний), подсистема разъяснения (приложение, позволяющее разъяснять на основании чего экспертная система дает рекомендации, делает выводы, какие знания при этом используются),. интеллектуальный редактор базы знаний (приложение, дающее инженеру по знаниям возможность создания базы знаний в диалоговом режиме).
Рис. 5.7. Структура модели экспертной системы
Характерной особенностью любой экспертной системы является способность к саморазвитию. Исходные данные хранятся в базе знаний в виде фактов, между которыми установлены определенные логические связи. Если при тестировании выявлены некорректные рекомендации или заключения по конкретным вопросам, либо заключение не может быть сформулировано, это означает, или отсутствие важных фактов в ее базе, или нарушения в логической системе связей. В любом случае система сама может сформировать достаточный набор вопросов к эксперту и автоматически повысить свое качество.
Системе управления
Представляет совокупность взаимосвязанных структурных моделей подсистем, осуществляющих следующие функции:
• планирование (стратегическое, тактическое, оперативное);
• учет - отображает состояние объекта управления в результате
выполнения производственных процессов;
• контроль — определяет отклонение учетных данных от плановых
целей и нормативов;
• оперативное управление ~ осуществляет регулирование всех процессов с целью исключения возникающих отклонений от плановых и учетных данных;
• анализ — определяет тенденцию в работе системы и резервы,
которые учитываются при планировании на следующий времен
ной период.
Использование моделей в составе информационных систем началось с применения статистических методов и методов финансового анализа, которые реализовывались командами обычных алгоритмических языков. Позже были созданы специальные языки, позволяющие моделировать различные ситуации. Такие языки дают возможность построения моделей определенного типа, обеспечивающих нахождение решения при гибком изменении переменных.
• оперативное управление ~ осуществляет регулирование всех процессов с целью исключения возникающих отклонений от плановых и учетных данных;
• анализ — определяет тенденцию в работе системы и резервы,
которые учитываются при планировании на следующий времен
ной период.
Использование моделей в составе информационных систем началось с применения статистических методов и методов финансового анализа, которые реализовывались командами обычных алгоритмических языков. Позже были созданы специальные языки, позволяющие моделировать различные ситуации. Такие языки дают возможность построения моделей определенного типа, обеспечивающих нахождение решения при гибком изменении переменных.
5.6. Моделирование информационных процессов
В традиционных инженерных дисциплинах всегда использовались последние достижения прикладной математики, гарантирующие, что проект будет отвечать поставленным требованиям. Основываясь на оценках, полученных с помощью математической модели, можно достаточно уверенно приступать, например, к конструированию здания. Однако применительно к программному обеспечению (ПО) проектирование оказывается преимущественно неформальным процессом, для которого зачастую нет моделей и методов прогнозирования результата. С этой точки зрения можно сравнить эволюцию программного и аппаратного Обеспечения на протяжении нескольких последних десятилетий. Если аппаратные устройства со временем становились миниатюрнее, быстрее и дешевле, то программы, напротив, оказывались все более объемными, медленными, дорогими и менее надежными. Одна из причин такого положения состоит в том, что в основе проектирования современной аппаратуры лежит использование прогностических моделей.
Отсутствие фундаментальных инженерных принципов в практике разработки ПО можно отчасти объяснить изменчивой, хаотичной природой программ, что сильно затрудняет математическое моделирование. Тем не менее имеется немало полезных аналитических методик. Любое ПО имеет свой жизненный цикл — период от начала проектирования и до его модернизации или замены более современной, версией. В конце 60-х гг. появился термин software engineering (инженерное проектирования программ), которым обозначали совокупность административных и технических методов, процедур и инструментальных средств, необходимых для эффективного написания крупных программных систем. Были разработаны разные подходы для проектирования алгоритмов и программ, которые появлялись и развивались под влиянием увеличивающейся потребности в скорости и качестве разработки ПО.
5.6.1. Модели разработки программного обеспечения
Для инженерного подхода к проектированию ПО были предложены модели процесса его разработки. Первым по времени и наиболее популярным можно считать метод «водопада». Эта модель идеализирует процесс проектирования, предполагая, что каждый этап проекта завершается до начала следующего и не осуществляется возврата
Рис. 5.8. Моделирование методом «водопадах
к предыдущему этапу (рис. 5.9). Учитывая важность для дальнейшей разработки первых этапов проектирования, а стоимость исправления допущенных на этих этапах ошибок наиболее высокой, метод «водопада» был улучшен введением временных прототипов (см. рис. 5.9). Например, прототипов интерфейса, анализ которых пользователем может дать дополнительные сведения до разработки основных программных конструкций следующих этапов.
Рис. 5.9. Метод «водопада» с введением временных прототипов
Еще одна модель жизненного цикла - спиральная модель управления рисками (рис. 5.10). В этой модели жизненный цикл ПО не заканчивается, а продолжается его модернизация, на что и указывает спираль. Анализ рисков состоит в определении затрат, в случае ошибок, допущенных на первом этапе. Для снижения рисков предлагаются дополнительные работы, например создание временных прототипов
Рис. 5.10. Спиральная модель
5.6,2. Методы проектирований программного обеспечения
Один из наиболее популярных методов проектирования ПО — метод нисходящего проектирования: Он предполагает последовательное разложение общей функции обработки данных на простые (для данного уровня) функциональные элементы. В результате получается иерархическая модель, отражающая состав и взаимоподчиненность отдельных функций. Эта схема носит название функциональной структуры алгоритма (ФСА) приложения. Недостатком ФСА является то, что каждый ее уровень является единым целым и не может разрабатываться параллельно группой разработчиков.
Следующий метод — модульное проектирование. Этот метод предполагает разбиение исходной функции обработки данных на ряд программных модулей, которые характеризуются следующими параметрами:
• один входной и один выходной поток данных;
• все операции, необходимые для преобразования входного пото
ка в выходной, выполняются внутри модуля;
• результат работы модуля зависит только от входного потока и не
зависит от работы других модулей.
Состав и вид программных модулей в значительной мере определяется инструментальными средствами разработки, например, для Access набор модулей может быть таким: экранные формы, отчеты, меню и т.д.
Оба эти метода относятся к стратегии проектирования ПО, получившей название структурное проектирование или проектирование на основе потоков данных. В этой стратегии не учитывались сущность и связи объектов предметной области. Для нее характерно преобразование входной информации в выходную способами, не учитывающими физическую сущность модели предметной области.
В начале 80-х гг. появился новый подход, который был основан на моделировании реального мира изнутри наружу, т.е., моделируя все элементы системы и связи между ними, получаем модель предметной области, преобразование информации в которой происходит так же, как и в реальной моделируемой системе. Этот подход был назван методом объектно-ориентированного проектирования (ООП). При ООП на первом этапе выявляются объекты реального мира, их свойства и действия, на следующих — эти объекты и их поведение отображаются на объекты программы.
Для любого метода проектирования ПО очень важным являются документирование и нотация, т.е. запись операций условным стандартизованным способом. Для структурного проектирования наиболее часто использовалась нотация схем алгоритмов. Для ООП в настоящее время используется нотация UML (Unified Modeling Language) - унифицированный язык моделирования, используя который в качестве нотации, мы будем моделировать информационные системы с помощью современных средств автоматизации программирования.
5.7, Унифицированый язык моделирования UML
В начале 90-х гг. из всего множества языков объектно-ориентированного анализа и проектирования выделились три, наиболее часто используемых при разработке систем: Booch, созданный Грейди Бучем, OOSE (Object-Oriented Software Engineering), разработанный А йваром Джекобсоном, и ОМТ (Object Modeling Technique), автором которого является Джеймс Рамбо. Каждый из этих методов является вполне законченным языком ООП, однако метод ВООСН особенно удобен на этапах проектирования модели, OOSE — на этапе анализа и формулирования требований, а ОМТ — удобен при проектировании СУБД. Создание языка, объединяющего достоинства этих трех методов, началось в начале 1995 г., когда эти три автора объединили свои методы для создания унифицированного языка для фирмы Rational Software. В 1997 г. была принята версия UML 1.1, взятая на вооружение всеми компаниями — производителями систем автоматизированного проектирования. В 2001 г. появилась версия 2.0. В настоящее время идет утверждение UML в качестве стандарта ISO,
5.7.1, Концептуальная модель UML
Словарь UML включает три основных блока:
• сущности;
• отношения;
• диаграммы.
Сущность - это основные структурные блоки языка. UML имеет четыре типа сущностей:
• структурные;
• поведенческие;
• группирующие;
• аннотационные.
Структурные сущности - это имена существительные, представляющие статические части модели, соответствующие физическим элементам системы. Среди них можно выделить следующие.
Класс - описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой.
Интерфейс — совокупность операций, которые определяют набор услуг (сервис), предоставляемый классом или компонентом. Он определяет только спецификацию операций, но не их исполнение. Обычно изображается с реализующим его классом или компонентом.
Кооперация определяет взаимодействие. Она представляет собой совокупность ролей и других элементов, которые, работая совместно, производят некоторый кооперативный эффект, не сводящийся к простой сумме слагаемых. Кооперация имеет как структурный, так и поведенческий аспект. Один и тот же класс может принимать участие в нескольких кооперациях. Кооперация является реализацией образцов поведения, формирующих систему.
Прецедент - это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат для какого-нибудь актера. Прецедент применяется для структурирования поведенческих сущностей модели, Прецеденты реализуются посредством кооперации.
Активный класс - класс, объекты которого вовлечены в один или несколько процессов или нитей (нить — процесс, создаваемый внутри другого процесса как его часть, но получающий свой квант времени процессора) и поэтому могут инициировать управляющие воздействия. Активный класс подобен обычному классу, кроме того, что его объекты представляют собой элементы, которые осуществляют свою деятельность одновременно с деятельностью других элементов.
Компонент — физическая заменяемая часть системы, которая соответствует некоторому набору интерфейсов и обеспечивает его реализацию. Компонент, как правило, представляет собой упаковку таких элементов, как классы, интерфейсы, кооперации.
Узел — это вычислительный ресурс, обладающий обычно объемом памяти и способностью обработки. Совокупность компонентов может размещаться в узле или мигрировать с одного узла на другой.
Для вышеперечисленных сущностей существуют разновидности:
• классы - актеры, сигналы, утилиты;
• компоненты — приложения, документы, файлы, страницы, таблицы.
Поведенческие сущности представляют собой глаголы языка, они описывают поведение модели во времени и пространстве.
Взаимодействие — поведение, заключающееся в обмене сообщениями.
Автомат — алгоритм поведения, определяющий последовательность состояний объекта в зависимости от событий и своего текущего состояния. Автомат — это граф, состоящий из состояний и переходов. Переходы — линии с указанием события.
Группирующие сущности являются организующими частями модели. Это блоки, на которые можно разложить модель.
Пакет: его основное назначение — сгруппировать на этапе проектирования сущности так, чтобы яснее была видна концептуальная
схема системы. В UML существуют также разновидности пакетов: каркасы, модели и подсистемы.
Аннотационнце сущности используются для дополнительного описания или замечания к любому элементу.
57.2. Отношения в UML
В UML определены четыре типа отношений:
• зависимость;
• ассоциация;
• обобщения;
• реализация.
Отношения являются связующими элементами для объединения сущностей.
Зависимость ~ это семантическое (смысловое) отношение между двумя сущностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой.
Ассоциация - структурное отношение, описывающее совокупность связей между объектами. Графически изображается прямой линией (иногда со стрелкой или меткой), рядом с которой могут присутствовать дополнительные обозначения, например, кратность или имена.
Обобщение — это отношение «родитель — потомок».
Реализация — это семантическое отношение между интерфейсами и реализующими их классами или между прецедентами и реализующими их кооперациями.
5.7.3. Диаграммы
Диаграмма — это графическое представление набора элементов с отношениями между ними. Обычно представляет собой ориентированный граф, описывает систему визуально с какой-либо точки зрения. Всего существует девять типов диаграмм.
Диаграмма классов — включает классы, интерфейсы, объекты и кооперации, а так же отношения между ними. Эта диаграмма соответствует статическому виду системы с точки зрения проектирования.
Диаграмма объектов — представляет объекты и отношения между ними. Она дает статический слепок экземпляров сущностей, показанных на диаграмме классов.
Диаграмма прецедентов — включает прецеденты и актеров (внешние, по отношению к данной системе, лица или другие системы), а также отношения между ними.
Диаграмма последовательностей — представляет связи между объектами, в частности сообщения, и отражают их временную упорядоченность.
Диаграмма коопераций — представляет структурную организацию объектов, обменивающихся сообщениями.
Диаграмма состояния - представляет собой автомат, включающий состояния, переходы, события и все виды действия. Они относятся к динамическому виду системы и наиболее часто используются при моделировании работы интерфейса, класса или кооперации.
Диаграмма деятельности — разновидность диаграммы состояния, показывает потоки управления между объектами.
Диаграмма компонентов — представляет организацию компонентов и существующих между ними зависимостей. Относится к статическому виду системы.
Диаграмма развертывания - представляет конфигурацию обрабатывающих узлов системы и размещенных в них компонентов. Относится к статическому виду системы.
5.7.4, инструментарий проектирования программного обеспечения
Многие продукты, реализующие CASE-технологии (Computer Aided Software Engineering — автоматизированное проектирование и создание программ), в настоящее время поддерживают нотацию UML. Такие пакеты, как Paradigm Plus, System Architect, Microsoft Visual Modeler, Delphi и др., поддерживают нотацию UML. Наиболее мощный пакет проектирования, разработанный компанией Rational Software - Rational Rose (RR), позволяет использовать при разработке все возможности языка UML.
Процесс проектирования ПО должен представлять собой итерационный процесс. В RR определены четыре фазы проектирования, которые, повторяясь, могут постепенно улучшать проект на всех cnflbz[. Каждая стадия является законченным этапом. Она документирована и может быть предъявлена заказчику и. верифицирована.
Первая фаза: определение свойств системы. На этом этапе задается идея нового ПО, определяются варианты разработки, круг лиц, взаимодействующих с ПО, круг задач (варианты использования Use Case), время и стоимость разработки. RR в первой фазе позволяет отображать диаграммы прецедентов (варианты использования) для нескольких вариантов разработки, документировать эти варианты с описанием действующих лиц и прецедентов. Эти диаграммы можно показать заказчикам, чтобы убедиться в полном представлении свойств ПО.
Вторая фаза: уточнение. В этой фазе производится планирование, анализ и проектирование архитектуры для каждого варианта разработки. Она включает в себя следующие этапы: кодирование прототипов, разработка тестов и выбор варианта разработки. На основании анализа проводится разработка технического задания для ПО. RR позволяет на этом этапе, при помощи построения диаграммы последовательности и кооперативных диаграмм, проиллюстрировать поток обработки данных и детализировать проект. Результаты этого этапа передаются разработчикам, которые начинают конструировать ПО.
Третья фаза: конструирование. Это фаза разработки и тестирования ПО. В этой фазе проект уже представлен в виде отдельных частей, которые можно разрабатывать параллельно. RR позволяет на этом этапе построить диаграммы компонентов, по которым она генерирует «скелетный код» системы на заданном языке высокого уровня. После уточнения кода вручную можно произвести обратное проектирование полученного кода с целью уточнения исходной модели.
Четвертая фаза: ввод в действие. Эта фаза наступает, когда готовый продукт, откомпилированный в среде выбранного языка высокого уровня, передают пользователю. В этой фазе RR не используется.
Основы алгоритмизации