4. ОБЩАЯ КОНЦЕПЦИЯ ИНТЕЛЛЕКТУАЛЬНОГО АГЕНТА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ.
АГЕНТНЫЕ ТЕХНОЛОГИИ И МУЛЬТИАГЕНТНАЯ СИСТЕМА
Имитационное моделирование — метод, позволяющий строить модели, описывающие процессы так, как они проходили бы в действительности. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику.
Имитационное моделирование — это метод исследования, при котором изучаемая система заменяется моделью с достаточной точностью описывающей реальную систему и с ней проводятся эксперименты с целью получения информации об этой системе. Экспериментирование с моделью называют имитацией (имитация — это постижение сути явления, не прибегая к экспериментам на реальном объекте).
Имитационное моделирование — это частный случай математического моделирования. Существует класс объектов, для которых по различным причинам не разработаны аналитические модели, либо не разработаны методы решения полученной модели. В этом случае математическая модель заменяется имитатором или имитационной моделью.
Имитационная модель — логико-математическое описание объекта, которое может быть использовано для экспериментирования на компьютере в целях проектирования, анализа и оценки функционирования объекта.
Процесс функционирования сложной системы можно рассматривать как смену ее состояний, описываемых ее фазовыми переменными Z1(t), Z2(t), … Zn(t) в n — мерном пространстве.
Задачей имитационного моделирования является получение траектории движения рассматриваемой системы в n — мерном пространстве (Z1, Z2, … Zn), а также вычисление некоторых показателей, зависящих от выходных сигналов системы и характеризующих ее свойства.
В данном случае «движение» системы понимается в общем смысле — как любое изменение, происходящее в ней.
Известны два принципа построения модели процесса функционирования систем.
Принцип Δt. Рассмотрим этот принцип сначала для детерминированных систем. Предположим, что начальное состояние системы соответствует значениям Z1(t0), Z2(t0), … Zn(t0). Принцип Δt предполагает преобразование модели системы к такому виду, чтобы значения Z1, Z2, … Zn в момент времени t1 = t0 Δt можно было вычислить через начальные значения, а в момент t2= t1 + Δt χ через значения на предшествующем шаге и так для каждого i-го шага
(Δt = const, I = 1 + M).
Для систем, где случайность является определяющим фактором, принцип Δt заключается в следующем:
1. Определяется условное распределение вероятности на первом шаге (t1= t0+ Δt) для случайного вектора, обозначим его (Z1, Z2, … Zn). Условие состоит в том, что начальное состояние системы соответствует точке траектории (Z01, Z02,…X0n).
2. Вычисляются значения координат точки траектории движения системы (t1 = t0+ Δt), как значения координат случайного вектора, заданного распределением, найденным на предыдущем шаге.
3. Отыскиваются условное распределение вектора (Z21, Z22,…Z2n) на втором шаге (t2= t1+ Δt), при условии получения соответствующих значений Z1i(I = 1 + n) на первом шаге и т. д., пока ti = t0 + iΔt не примет значения (tМ = t0 + МΔt).
Принцип Δt является универсальным, применим для широкого класса систем. Его недостатком является неэкономичность с точки зрения затрат машинного времени.
Принцип особых состояний (принцип δz). При рассмотрении некоторых видов систем можно выделить два вида состояний:
обычное, в котором система находится большую часть времени, при этом Zi(t), (i = 1 ÷ n) изменяются плавно; особое, характерное для системы в некоторые моменты времени, причем состояние системы изменяется в эти моменты скачком.
Принцип особых состояний отличается от принципа Δt тем, что шаг по времени в этом случае не постоянен, является величиной случайной и вычисляется в соответствии с информацией о предыдущем особом состоянии.
Примерами систем, имеющих особые состояния, являются системы массового обслуживания. Особые состояния появляются в моменты поступления заявок, в моменты освобождения каналов и т. д.
Для таких систем применение принципа Δt является нерациональным, так как при этом возможны пропуски особых состояний и необходимы методы их обнаружения.
В практике использования имитационного моделирования описанные выше принципы при необходимости комбинируют.
Пример применения принципа Δt.
На рис. 4.1.1 приведена аналоговая схема дифференцирующего фильтра.
Рис. 4.1.1. Аналоговая схема дифференцирующего фильтра
Процесс, происходящий в фильтре, описывается дифференциальным уравнением:
(4.1.1)
В уравнении: K — коэффициент усиления, х(t) — входной сигнал.
Доказано, что
Преобразуем математическую модель фильтра (4.1.1) к виду, позволяющему применить принцип Δt. В простейшем случае достаточно уравнение (4.1.1) аппроксимировать конечно-разностным уравнением:
Zi1Zi K x
i Zi
,
Zi = Z(t0 + Δt), xi
= xi(t0 + iΔt) Что соответ-
t ствует итерационной формуле: Zi + 1 = KΔt(xi – Zi) (4.2)
Задав начальное условие Z(t0) = Z0 можно построить траекторию процесса, происходящего в фильтре, с целью получения текущего значения производной любой детерминированной функции x(t), подаваемой на вход.
В компьютерной науке, интеллектуальный агент — это программа, самостоятельно выполняющая задание, указанное пользователем компьютера, в течение длительных промежутков времени. Интеллектуальные агенты используются для содействия оператору или сбора информации. Одним из примеров заданий, выполняемых агентами, может служить задача постоянного поиска и сбора необходимой информации в Интернете. Компьютерные вирусы, боты, поисковые роботы — все это также можно отнести к интеллектуальным агентам. Хотя такие агенты имеют строгий алгоритм, «интеллектуальность» в этом контексте понимается как способность приспосабливаться и обучаться.
В искусственном интеллекте, под термином интеллектуальный агент понимаются разумные сущности, наблюдающие за окружающей средой и действующие в ней, при этом их поведение рационально в том смысле, что они способны к пониманию и их действия всегда направлены на достижение какой-либо цели. Такой агент может быть как роботом, так и встроенной программной системой. Об интеллектуальности агента можно говорить, если он взаимодействует с окружающей средой примерно так же, как действовал бы человек.
Эти два значения понятия «интеллектуальный агент» достаточно различны, и между ними почти нет связи. Интеллектуальный агент в первом смысле может быть разработан, используя традиционные методы разработки, в нем немногим больше интеллекта, чем в почтовом клиенте или утилите для форматирования жесткого диска. Однако интеллектуальный агент во втором смысле может быть полностью независимым, выполняя свои задачи.
Динамика поведения большой активной системы в условиях неопределенности и конфликта в большинстве случаев непредсказуема и конечное ее состояние не может быть прогнозируемо из начального аналитически или путем логического анализа, так как оно является результатом многошагового взаимодействия активных элементов системы.
Любая программа нужна для того, чтобы решать определенную задачу. Управление атомными реакторами и электрическими зубными щетками. Стимуляция работы сердца и системы электронного шпионажа. Денежные переводы и спекуляции на финансовых рынках. Трехмерное моделирование будущих реальных товаров и порождения больной фантазии дизайнеров компьютерных игр.
Представьте себе, что вам нужно решить глобальную задачу. В одиночку сделать этого вы ее не можете, т. к. ваши ресурсы одного человека весьма ограничены. В технических системах все обстоит точно так же. Сложные задачи не могут быть решены средней руки компьютером. Это всегда будет так, не зависимо от роста общего технологического уровня человечества. Если задачу может решить один среднестатистический человек или компьютер, то ее уже нельзя считать сложной. Так возникает мультиагентная система или многоагентная система (МАС, англ. Multi-agent system) — это система, образованная несколькими взаимодействующими интеллектуальными агентами.
Многоагентные системы могут быть использованы для решения таких проблем, которые сложно или невозможно решить с помощью одного агента или монолитной системы. Примерами таких задач являются онлайн-торговля, ликвидация чрезвычайных ситуаций, и моделирование социальных структур.
Многие МАС имеют компьютерные реализации, основанные на пошаговом имитационном моделировании. Компоненты МАС обычно взаимодействуют через и матрицу ответов. Модель «Запрос — Ответ — Соглашение» — обычное явление для МАС — схема реализуется за несколько шагов.
Для последнего шага обычно требуется еще несколько (более мелких) актов обмена информацией. При этом принимаются во внимание другие компоненты, в том числе уже достигнутые «соглашения» и ограничения среды.
МАС также относятся к самоорганизующимся системам, так как в них ищется оптимальное решение задачи без внешнего вмешательства. Под оптимальным решением понимается решение, на которое потрачено наименьшее количество энергии в условиях ограниченных ресурсов.
Главное достоинство МАС — это гибкость. Многоагентная система может быть дополнена и модифицирована без переписывания значительной части программы. Также эти системы обладают способностью к самовосстановлению и обладают устойчивостью к сбоям, благодаря достаточному запасу компонентов и самоорганизации.
Многоагентные системы применяются в нашей жизни в графических приложениях, например, в компьютерных играх. Агентные системы также были использованы в фильмах. Теория МАС используется в составных системах обороны. Также МАС применяются в транспорте, логистике, графике, геоинформационных системах и многих других. Многоагентные системы хорошо зарекомендовали себя в сфере сетевых и мобильных технологий, для обеспечения автоматического и динамического баланса нагруженности, расширяемости и способности к самовосстановлению.
4.4. Агентно-ориентированные технологии ситуационного моделирования больших систем
Агентно-ориентированные имитационные модели можно реализовать в различных системах и программных продуктах. Рассмотрим пример реализации агентных моделей в универсальной имитационной системе Simplex3, предоставляющей среду экспериментирования с обработкой результатов имитации и компонентно-ориентированный язык описания моделей Model
Description Language (Simplex-MDL). Модель системы составляется из базисных MDL-компонентов, описывающих состояние и динамику поведения элементов системы, организационных компонентов, задающих структуру взаимосвязей между базисными компонентами, и мобильных компонентов — для описания сообщений, размещаемых в накопительных массивах и образующих очереди на обслуживание. Описания базисных компонентов включает разделы переменных состояния и динамики поведения агентов в виде алгебраических и дифференциальных уравнений, временных и условных событий, описывающих суть конфликта.
Рассмотрим агентные технологии моделирования на примере процедуры торга (переговорного процесса, где в качестве агентов выступают агенты-продавцы и агенты-покупатели). Продавцы и покупатели представлены в виде массивов базисных компонентов, соответственно, классов Seller и Buyer. Диалог между компонентами осуществляется через мобильный компонент Dialog, содержащий сообщения переговорного процесса, и базисный компонент Connect, направляющий сообщения Dialog конкретному получателю (продавцу или покупателю).
Поведение агента описывается как некоторая итерационная процедура переработки данных о состоянии агентов и мотиваций его действия. Каждой операции присущ свой алгоритмический и программный модуль:
1. Восприятие информации и накопление знаний в среде взаимодействия.
2. Связь с механизмом взаимодействия и обработки данных от противников-агентов.
3.Анализ собственного состояния и состояния противникаагента с выбором или корректировкой мотиваций в виде целевых функций.
4. Принятие локальных решений и выбор стратегий.
Состояние агента можно описать с интеллектуальных, эмоциональных, психофизиологических и функциональных позиций.
Формализация эмоционального состояния интеллектуального агента в многомерном эмоциональном пространстве и использование его в принятии решения.
Базисные компоненты объединяются в мультиагентную модель компонентом верхнего уровня Market в следующем MDLописании:
HIGH LEVEL COMPONENT MarketSUBCOMPONENTSAR- RAY [16] Buyer, ARRAY [2] Seller, ConnectCOMPONENT CON- NECTIONSBuyer{ALL j}. Buy --> Connect.Buys[j]; Seller{ALL i}. Sell --> Connect.Sells[i]; Connect.SellB{ALL j} --> Buyer[j]. Sell; Connect.BuySl{ALL i} --> Seller[i]. Buy;Seller{ALL i}.P --> Buyer{ALL}. P[i];Seller{ALL i}. U --> Buyer{ALL}. U[i]; Seller{ALL i}. Z{ALL j} --> Buyer{ALL}. Z[i][j]; INITIALIZE- Buyer{j OF 1..16}. NumB := j;Seller{i OF 1..2}. NumS := i; END OF Market
При описании связей между компонентами в разделе COMPONENT CONNECTIONS в левой части указывается базисный компонент и экспортируемая переменная, а в правой — базисный компонент с сенсорной импортируемой переменной. Так, все элементы компонента Buyer передают из накопительного массива Buy сообщения в соответствующий массив Buys базисного компонента Connect: Buyer.Buy-->Connect. Buys, а компонент
Seller — из своего накопительного массива Sell — мобильные компоненты соответствующему массиву Sells компонента Connect: Seller.Sell--> Connect. Sells и обратно. Наряду с этим базисный компонент Seller передает значение цены P, объем предложений U и значения факторов предложения ARRAY Z в базисный компонент Buyer.
События маркетингового периода составляют фазу транзакции с выбором покупателями продавца и совершением покупки и фазу ценообразования с подведением итогов предыдущего периода и определением цены на следующий период. Мультиагентная модель конфликтной ситуации представляет воспроизведение переходного процесса движения к согласию и разрешению конфликта путем имитации тактического взаимодействия его участников в заданной среде.
Алгоритм переговорного процесса (процедуры торга) в транзактивной фазе включает цикл перебора конфликтующих элементов j = 1,m с выбором переговорного партнера по критерию выбора или предпочтения и разыгрыванием согласия или отказа j-го агента с одной стороны от предложений i-го агента i = 1, n с другой конфликтующей стороны. При взаимных уступках в переговорном процессе стороны все более склоняются к согласию так, что на каждом следующем шаге переговоров вероятность согласия увеличивается на определенную величину. При достижении согласия на том или ином этапе следует разрешение конфликта.
Моделирование поведения продавцов-конкурентов в фазе ценообразования связано со стратегиями эластичного ценообразования и в простейшем случае по завершению транзактивной фазы сводится к определению агентом-продавцом новой цены по формуле:
(4.4.1)
где pik , pik1, pik3 — текущая цена k-го периода имитации, и цены за k-1-го и k-2-го периода соответственно i-го продавца; vik1,vik2 — спрос покупателей за k-1-го и k-2-го периода соответственно у i-го продавца; uik1— предложение i-го продавца за предыдущий период.
Другой моделью эластичного ценообразования является стратегия симплексного планирования эксперимента с поиском дрейфующего экстремума функции прибыли в условиях неопределенной конфликтной ситуации. Сравнивая значения функции отклика в различных точках факторного пространства, например, цена и предложение, агент оценивает предпочтительное направление желательного смещения рабочей точки к оптимуму. В общем случае многомерное факторное пространство наряду с ценой и объемом предложений может включать все множество характеристик конкурентов и среды как, например, текущая доля рынка, объем продаж, доставка, реклама, качество и т. д. Стратегия каждого продавца сводится к решению на очередном шаге задачи оптимизации с выбором вектора изменения состояния в направлении экстремума целевой функции прибыли или доли рынка. При этом успех одного продавца — олигополиста и улучшение его целевой функции ведет к неудаче конкурента и его соответствующей реакции на следующем шаге. Таким образом, стратегии конкурирующих агентов строятся с учетом состояния друг друга и в результате многошаговой имитации их поведения приводят к воспроизведению некоторого стабилизированного состоянию рынка. Результаты моделирования, основанные на стратегии симплексного ценообразования для двух продавцов однородного продукта в среде Simplex3, позволяют представить в графической форме (подробное описание работы в имитационной системе Simplex3 представлены в методических указаниях [1]).
Любая работа (можно предположить) в системе совершается путем выполнения активностей. То есть активность является наименьшей единицей работы и ее рассматривают как единый дискретный шаг. Следовательно, активность является, единым динамическим объектом, указывающим на совершение единицы работ.
Процесс — это логически связанный набор активностей.
Пример: активность установки головки жесткого диска, активность передачи информации с жесткого диска.
Активности проявляются в результате свершения событий.
События — это мгновенное изменение состояния некоторого объекта системы. Рассмотренные объекты (активности, процессы, события) являются конструктивными элементами для динамического описания поведения системы. На их основе строятся языки моделирования системы. В то время, когда динамическое поведение системы формируется в результате выполнения большого числа взаимодействующих процессов, сами эти процессы образуют относительно небольшое число классов. Чтобы описать поведение системы, достаточно описать поведение каждого класса процессов и задать значение атрибутов для конкретных процессов.
Задачи построения модели
Построение модели состоит из решения двух основных задач:
1. Первая задача сводится к тому, чтобы описать правила, описывающие виды процессов, происходящих в системе.
2. Вторая задача заключается в том, чтобы описать правила задания атрибутов или задать правила генерации этих значений. При этом система определяется на конкретном уровне детализации в терминах множества описаний процессов, каждый из которых в свою очередь включает множество правил и условий возбуждений активности. Такое описание системы может быть детализировано на более подробном или более иерархическом уровне представления с помощью декомпозиции процессов (в идеальном случае в активности). Это обеспечивает многоуровневое исследование системы.
Так как система в общем случае служит для описания временно´го поведения, то язык моделирования дискретных систем должен обладать средствами, отображающими время.
В реальной системе совместно выполняются несколько активностей, принадлежащим как связанным, так и не связанным процессам. Имитация их действий должна быть строго последовательной. Таким образом, модель системы можно рассматривать как модель описаний, активностей, событий или процессов. Отсюда и деление языков моделирования.
4.6. Базисные, мобильные и структурные компоненты имитационных моделей
Базисные, мобильные и структурные компоненты описываются на примере построения и реализации объектно-ориентированной мультиагентной модели логистической системы на примере мясоперерабатывающего предприятия АПК в универсальной имитационной системе Simplex3, и представляющей собой:
• банкмоделей пользователя;
• среду экспериментирования с обработкой результатов имитации;
• компонентно-ориентированный язык описания моделей Simplex-МDL (Model Description Language) и язык описания эксперимента Simplex-EDL (Experiment Description Language).
Каждый агент описывается базисным MDL-компонентом с именем-идентификатором, декларированием переменных состояния и связей с другими компонентами и описанием динамики временного поведения агента с помощью алгебраических и дифференциальных уравнений или последовательности событий. Базисные компоненты объединяются в общую мультиагентную модель системы с помощью структурных компонентов, задающих структуру взаимосвязей между базисными компонентами, и мобильных компонентов — для описания сообщений или потоков между агентами.
Мультиагентная имитационная модель логистической системы мясоперерабатывающего предприятия АПК, представленная на рис. 4.6.1, включает базисные компоненты интеллектуальных агентов (ИА), описывающих:
• потоки поступления различных видов с/х животных от различных поставщиков (компонент SkotoBazi_High) и блочного мясного сырья (компонент Block);
• разветвляющиеся материальные потоки цеха убоя и первичной переработки с/х животных UboiRazd с двумя стратегиями: по заданным планам выпуска первичной продукции и по результатам структурной оптимизации материальных потоков по минимальному отклонению от заданной структуры ассортимента (процедура SferaRazb);
• процесс загрузки/выгрузки продукции в соответствующие камеры производственного холодильника (компонент KamHladZum, объединяющий базисные подкомпоненты, имитирующие работу камер охлаждения HladKam, замораживания ZumKam основной продукции (мяса) и замораживания сопутствующей продукции ZumKamSub;
Рис.4.6.1. Мультиагентная имитационная модель логистической системы перерабатывающего предприятия АПК
• работу цехов переработки сырья с сетевой структурой материальных потоков (компонент Pererab) с двумя моделями поведения: выпуск готовой продукции по заданному плану и результатам структурного перераспределения материальных потоков с минимизацией отклонения от заданной структуры ассортимента (процедура SferaSbora);
• загрузку/выгрузку продукции в соответствующие камеры хранения и очереди WaitM на обслуживание автомобилей с заказами торгующих организаций (компонентKamHranSbit, имитирующий семь различных вариантов обслуживания заказов в зависимости от их количества, объемов и состава); поступление и обслуживание транспортных средств в очереди WaitM перед погрузочными рампами (базисный компонентExpidiciya).
Базисные MDL‐компоненты объединяются в мультиагентную имитационную модель (рис. 4.6.1) с помощью структурного компонента Holod_High1, задающего структуру взаимосвязей между базисными компонентами описаниями вида SkotoBazi_High. WaitGov1-->UboiRazd. WaitGov2.1 и т. п., указывающими в данном случае, что очередь WaitGov1 из базисного компонента SkotoBazi_High передается в базисную компоненту UboiRazd в очередь WaitGov2.1.
HIGH LEVEL COMPONENT Holod_High1SUBCOMPONENTSS
kotoBazi_High, Block, UboiRazd, KamHladZum_High,
HranKamRampi,Expidiciya, PererabCOMPONENT CONNECTIONSSkoto
Bazi_High.WaitGov1--
>UboiRazd.WaitGov2.1;SkotoBazi_High.WaitGov2->UboiRazd.WaitGov2.2;……UboiRazd.WaitPar-----------
>HranKamRampi.KH4;KamHladZum_High.KO3->HranKamRampi.KH1;…KamHladZum_High.UpSub->HranKamRampi.KH3;Expidiciya.WaitProm--
>HranKamRampi.WaitM;END OF Holod_High1
Перемещающиеся и размещаемые в накопительных массивах (Location) в очередях на обслуживание материальные потоки описываются в мобильных компонентах в виде описания передвижных объектов.
4.7. Инструментальные средства и системы имитационного моделирования в объектно-ориентированных языках программирования в среде WINDOWS
Использование современных ЭВМ и вычислительных комплексов и сетей является мощным средством реализации имитационных моделей и исследования с их помощью характеристик процесса функционирования систем S. В ряде случаев в зависимости от сложности объекта моделирования, т. е. системы S, рационально использование персональных ЭВМ (ПЭВМ) или локальных вычислительных сетей (ЛВС). В любом случае эффективность исследования системы S на программно-реализуемой модели прежде всего зависит от правильности схемы моделирующего алгоритма, совершенства программы и только косвенным образом зависит от технических характеристик ЭВМ, применяемой для моделирования. Большое значение при реализации модели на ЭВМ имеет вопрос правильного выбора языка моделирования.
Моделирование систем и языки программирования. Алгоритмические языки при моделировании систем служат вспомогательным аппаратом разработки, машинной реализации и анализа характеристик моделей. Каждый язык моделирования должен отражать определенную структуру понятий для описания широкого класса явлений. Выбрав для решения задачи моделирования процесса функционирования системы конкретный язык, исследователь получает в распоряжение тщательно разработанную систему абстракций, предоставляющих ему основу для формализации процесса функционирования исследуемой системы S. Высокий уровень проблемной ориентации языка моделирования значительно упрощает программирование моделей, а специально предусмотренные в нем возможности сбора, обработки и вывода результатов моделирования позволяют быстро и подробно анализировать возможные исходы имитационного эксперимента с моделью М.
Основными моментами, характеризующими качество языков моделирования, являются: удобство описания процесса функционирования системы S, удобство ввода исходных данных моделирования и варьирования структуры, алгоритмов и параметров модели, реализуемость статистического моделирования, эффективность анализа и вывода результатов моделирования, простота отладки и контроля работы моделирующей программы, доступность восприятия и использования языка. Будущее языков моделирования определяется прогрессом в области создания мультимедийных систем машинной имитации, а также проблемноориентированных на цели моделирования информационновычислительных систем.
Основные понятия, связанные с алгоритмическими языками и их реализацией на ЭВМ вообще и языками моделирования в частности:
Язык программирования представляет собой набор символов, распознаваемых ЭВМ и обозначающих операции, которые можно реализовать на ЭВМ. На низшем уровне находится основной язык машины, программа на котором пишется в кодах, непосредственно соответствующих элементарным машинным действиям (сложение, запоминание, пересылка по заданному адресу и т. д.). Следующий уровень занимает автокод (язык АССЕМБЛЕРА) вычислительной машины. Программа на автокоде составляется из мнемонических символов, преобразуемых в машинные коды специальной программой — ассемблером.
Компилятором называется программа, принимающая инструкции, написанные на алгоритмическом языке высокого уровня, и преобразующая их в программы на основном языке машины или на автокоде, которые в последнем случае транслируются еще раз с помощью ассемблера.
Интерпретатором называется программа, которая, принимая инструкции входного языка, сразу выполняет соответствующие операции в отличие от компилятора, преобразующего эти инструкции в запоминающиеся цепочки команд. Трансляция происходит в течение всего времена работы программы, написанной на языке интерпретатора.
В отличие от этого компиляция и ассемблирование представляют собой однократные акты перевода текста с входного языка на объектный язык машины, после чего полученные программы выполняются без повторных обращений к транслятору.
Программа, составленная в машинных кодах или на языке АССЕМБЛЕРА, всегда отражает специфику конкретной ЭВМ. Инструкции такой программы соответствуют определенным машинным операциям и, следовательно, имеют смысл только в той ЭВМ, для которой они предназначены, поэтому такие языки называются машинно — ориентированными языками.
Большинство языков интерпретаторов и компиляторов можно классифицировать как процедурно-ориентированные языки. Эти языки качественно отличаются от машинно-ориентированных языков, описывающих элементарные действия ЭВМ и не обладающих проблемной ориентацией. Все процедурно-ориентированные языки предназначены для определенного класса задач, включают в себя инструкции, удобные для формулировки способов решения типичных задач этого класса. Соответствующие алгоритмы программируются в обозначениях, не связанных ни с какой ЭВМ.
Язык моделирования представляет собой процедурноориентированный язык, обладающий специфическими чертами. Основные языки моделирования разрабатывались в качестве программного обеспечения имитационного подхода к изучению процесса функционирования определенного класса систем.
Особенности использования алгоритмических языков. Рассмотрим преимущества и недостатки использования для моделирования процесса функционирования систем языков имитационного моделирования (ЯИМ) и языков общего назначения (ЯОН), то есть универсальных и процедурно-ориентированных алгоритмических языков. Целесообразность использования ЯИМ вытекает из двух основных причин:
1) удобство программирования модели системы, играющее существенную роль при машинной реализации моделирующих алгоритмов;
2) концептуальная направленность языка на класс систем, необходимая на этапе построения модели системы и выборе общего направления исследований в планируемом машинном эксперименте. Практика моделирования систем показывает, что именно использование ЯИМ во многом определило успех имитации как метода экспериментального исследования сложных реальных объектов.
Языки моделирования позволяют описывать моделируемые системы в терминах, разработанных на базе основных понятий имитации. До того как эти понятия были четко определены и формализованы в ЯИМ, не существовало единых способов описания имитационных задач, а без них не было связи между различными разработками в области постановки имитационных экспериментов.
Высокоуровневые языки моделирования являются удобным средством общения заказчика и разработчика машинной модели Мм. Несмотря на перечисленные преимущества ЯИМ, в настоящее время выдвигаются основательные аргументы как технического, так и эксплуатационного характера против полного отказа при моделировании от универсальных и процедурно-ориентированных языков. Технические возражения против использования ЯИМ: вопросы эффективности рабочих программ, возможности их отладки и т. п.
В качестве эксплуатационных недостатков упоминается нехватка документации по существующим ЯИМ, сугубо индивидуальный характер соответствующих трансляторов, усложняющий их реализацию на различных ЭВМ, и трудности исправления ошибок. Снижение эффективности ЯИМ проявляется при моделировании задач более разнообразных, чем те, на которые рассчитан конкретный язык моделирования. Но здесь следует отметить, что в настоящее время не существует и ЯОН, который был бы эффективен при решении задач любого класса.
Серьезные недостатки ЯИМ проявляются в том, что в отличие от широко применяемых ЯОН, трансляторы с которых включены в поставляемое изготовителем математическое обеспечение всех современных ЭВМ, языки моделирования, за небольшим исключением, разрабатывались отдельными организациями для своих достаточно узко специализированных потребностей.
Соответствующие трансляторы плохо описаны и приспособлены для эксплуатации при решении задач моделирования систем, поэтому, несмотря на достоинства ЯИМ, приходится отказываться от их практического применения в ряде конкретных случаев.
При создании системы моделирования на базе любого языка необходимо решить вопрос о синхронизации процессов в модели, так как в каждый момент времени, протекающего в системе (системного времени), может потребоваться обработка нескольких событий, то есть требуется псевдопараллельная организация имитируемых процессов в машинной модели Мм. Это является основной задачей монитора моделирования, который выполняет следующие функции: управление процессами (согласование системного и машинного времени) и управление ресурсами (выбор и распределение в модели ограниченных средств моделирующей системы).
Классификация языков для программирования моделей систем имеет вид, приведенный в табл. 4.7.1.
Таблица 4.7.1
Классификация языков для программирования моделей систем
Аппаратно-программные средства |
Типовые схемы |
Ориентация языков |
Язык |
||
Моделирование систем |
Аналоговые |
|
|||
Гибридные |
|
||||
Цифровые |
Языки имитационного назначения |
Непрерывные |
На прямое использование дифференциальных уравнений |
MIMIC |
|
На блочную имитацию дифференциальных уравнений |
DYNAMO |
||||
Комбинированные |
На состояние и время |
CAPS |
|||
Дискретные |
На действия |
FORSIM |
|||
На транзакты |
GPSS |
||||
На процессы |
SIMULA |
||||
На события |
MIMSCPIPT |
||||
Языки общего назначения |
|
Многоцелевая |
PL/1 |
||
На расчеты |
FORTRAN |
||||
На обработку данных |
COBOL |
1. Чем отличаются языки имитационного моделирования от языков общего назначения?
3. Какие основные требования предъявляются к языкам имитационного моделирования?
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.