Модели решений функциональный и Вычислительных задач

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 определяет эндогенные переменные на выходе системы.

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 не исполь­зуется .

 

Основы алгоритмизации